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

STM32F407 作USB host 驱动 声卡 问题

[复制链接]
Kim20240616 提问时间:2024-6-23 21:53 / 未解决

我用STM32F407 作USB host, 配置为FS。用它接声卡。如果STM32F407 单向给 声卡传送音频,输出声音正常。或者 407单向接收声卡的音频,工作也正常。但是同时发送和接收声音(即同时作同步IN和OUT),USB就会出错,具体出错中断信号为 未完成周期性传输中断 或 Tx FIFO 空中断。

因为ST 对USB host 提供的 audio class例程只有stream out, 没有stream in。不知道是不是407对于同步双向传输处理速度不够造成?

收藏 评论3 发布时间:2024-6-23 21:53

举报

3个回答
STMCU-管管 回答时间:2024-6-25 09:47:41
有可能的,你换个主控试试验证下
Kim20240616 回答时间:2024-6-25 15:13:32

STMCU-管管 发表于 2024-6-25 09:47
有可能的,你换个主控试试验证下

但是,我用示波器测量STM32F4 USB host 同步传输时,一帧内In 288Bytes, Out 288 Bytes, 所需要的时间也<500us, 它完全有足够时间处理的。

并且,按照STM32F4中文参考手册上关于USB系统性能说的,“凭借大容量 RAM 缓冲区、高度可配置的 FIFO 大小、通过 AHB 压栈/出栈寄存器进行 32 位FIFO 快速访问。。。。。。

由于 OTG_FS 模块能够高效填充1.25 KB RAM 缓冲区且 1.25 KB 发送/接收数据足以满足一个全速帧所能容纳的数据量,因此USB 系统在一帧之内可以无需应用程序干预达到最大USB 带宽。”

既然一帧内都能够处理1.25KB的数据,现在实际处理576Bytes, 应该不成问题。

如果我遇到这个问题,真的是由于STM32F4处理速度跟不上,那就跟手册上说的有矛盾。

Kim20240616 回答时间:2024-6-25 20:02:31

STMCU-管管 发表于 2024-6-25 09:47
有可能的,你换个主控试试验证下

我做了这样的测试,第一帧只做同步OUT, 第二帧只做同步IN,即一帧只做一种同步传输,如此循环。但它依然会产生未完成周期性传输(Incomplete periodic transfer)中断。所以应该不是STM32F4速度不够。但为什么IN 和 OUT 通道都打开就会出现这样的问题?

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