完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
是否可以在STM32上实现主机(没有硬件支持),只有程序代码将数据写入USB闪存盘?对于这个问题上没有在互联网上找到任何相关信息,有一个实现设备,但不是主机。我正在研究u***规范的答案,但我还是不太明白
|
|
相关推荐
9个回答
|
|
你的意思是USB主机?你想在STM32上没有特殊的frimware启动吗?
|
|
|
|
有数百种不同的STM32
|
|
|
|
是的,但我有一个没有硬件支持
|
|
|
|
是的,我的意思是USB主机。也许功能有限,因为我只需要写入USB驱动器。
|
|
|
|
为什么无法使用仅设备硬件实现主机功能?因为USB在主机和设备方面不对称。
在设备端,USB功能是支持称为“SIE”的基本USB协议,即串行接口引擎。该引擎包括设备接收主机请求的能力,从“默认管道”开始,并通过ACK响应获取数据,或发送数据并等待主机ACK完成事务,正确响应。由于USB时序限制(1.7us响应时间),控制事务的最后阶段不能通过软件方式实现,并且设备SIE引擎的大多数部分是硬件编码的。SIE的其他功能是接受地址分配和接受/启用配置,其结束USB附加协议的枚举阶段。然后,SIE支持基本的IN / OUT /其他管道,在相同的协议约束内。简而言之,设备功能是RESPOND。 由于这些硬件限制,不可能将设备引擎用于主机功能,主要是因为主机功能与设备功能完全相反。总线处理遵循非常不同的状态机。主机必须生成周期性帧数据包,并初始化所有事务。然后提供流畅的数据流,所有这些通常都是使用直接内存访问硬件完成的。主机必须提供端口电源功能和端口复位功能,这在设备实现中不存在。 这些是MCU设计有独立主机硬件和设备硬件控制器的主要原因。 |
|
|
|
更不用说如果有人甚至只是在一个物理层就能用廉价的STM32击败FS USB,它不像你可以用LS来谈论大容量存储设备,对吗?在Cortex-M上做LS(设备)在软件中几乎不可能
|
|
|
|
如果您有通过UTMI / ULPI的外部USB PHY,如果您可以直接访问UTMI端口,则可以使用BYTE-banging制作FS主机。你通常没有。你可以做一些FPGA包装器。是的,在LS速度下没有大容量存储。
|
|
|
|
是的,但是添加一个FPGA只是为了让你不必购买带有UTMI访问或实际专用主控制器硬件的MCU,这是一个令人惊讶的举动,更不用说处理潜在的2所需的智能数量这一事实,混合设备的设备总线可能比“哑”设备需要能够做的更强烈。
|
|
|
|
不太明白你的问题,不过USB里有一个OTG的协议,支持OTG的芯片可以在数据线的选择下做主机或设备端。USB的5脚插座里有一个引脚就是做OTG的主从选择用的。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1049 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1017 浏览 2 评论
2123 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1219 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1639 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 05:15 , Processed in 0.607498 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号