你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F407 USB 的FIFO究竟有多少空间?

[复制链接]
Kim20240616 提问时间:2024-6-24 22:07 / 已解决

在STM32F4xx参考手册时,介绍USB系统性能部分,有说**OTG_FS 模块能够高效填充1.25 KB RAM缓冲区,并且在USB框图里,也有写 RAM总线与 1.25KB USB数据 FIFO 连接。但是另一方面,在CSR存储器映射图中,一个主机通道的 FIFO地址范围为 0x1000 (4KB),并且主机模式下有8个这样的通道。所以真搞不明白究竟 FIFO真正有多少空间?

收藏 评论3 发布时间:2024-6-24 22:07

举报

3个回答
xmshao 回答时间:2024-6-25 10:41:17
可以肯定STM32F4系列 FS OTG的FIFO总共就1.25KB.


不管主机通道还是设备端点,FIFO就这么多,大家共用。


还有就是,内存映射不等于实际物理内存,即可能多个地址空间映射到同一物理内存块。
Kim20240616 回答时间:2024-6-25 14:00:59

xmshao 发表于 2024-6-25 10:41
可以肯定STM32F4系列 FS OTG的FIFO总共就1.25KB.</p>
<p>

虽然内在映射不等于实际内在空间,但还是不明白,在手册对以下三个寄存器介绍中

OTG_FS 接收FIFO 大小寄存器 (OTG_FS_GRXFSIZ)

OTG_FS主机非周期性发送 FIFO 大小寄存器 (OTG_FS_HNPTXFSIZ)

OTG_FS 主机周期性发送 FIFO 大小寄存器 (OTG_FS_HPTXFSIZ)

前两个寄存器FIFO的存储深度最大值为256,单位为32位字(4字节)。按这样算,这两个FIFO的总容量已经为2KB,都大于1.25KB 了。加上第三个寄存器的容量不就更大了。

另外,前两个寄存器的复位值为 0x0000 0200,已经大于它们的最大值256。并且,对于RX FIFO,手册还说这个上电复位值为最大RX数据FIFO深度。一时说最大值为256,一是说复位值(0x0200)为最大深度,这不是有矛盾吗?

xmshao 回答时间:2024-6-25 16:53:04

Kim20240616 发表于 2024-6-25 14:00
虽然内在映射不等于实际内在空间,但还是不明白,在手册对以下三个寄存器介绍中</p>
<p>OTG_FS 接收FIFO 大 ...

[md]嗯。这个地方看起来是有点别扭。

但在我们应用时,都会根据需求针对接收或发送端点做具体配置。

打个可能不太恰当的比方,5个人去某商场买米,商场总共就500斤了,原则上每个人可以买走200斤。最终那500斤米怎么分配,看具体需求来定。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版