我用STM32F407 作USB host, 配置为FS。用它接声卡。如果STM32F407 单向给 声卡传送音频,输出声音正常。或者 407单向接收声卡的音频,工作也正常。但是同时发送和接收声音(即同时作同步IN和OUT),USB就会出错,具体出错中断信号为 未完成周期性传输中断 或 Tx FIFO 空中断。 因为ST 对USB host 提供的 audio class例程只有stream out, 没有stream in。不知道是不是407对于同步双向传输处理速度不够造成? |
外部中断升降沿类型判断
定时器正交编码器功能
STM32F427串口接收和发送中断同时使能,出现接收中断丢数的现象。
为什么生成代码时一直卡在generating user source code 救救孩子吧。
easylogger打印失败
为什么ETH配置中没有Advanced Parameters?
STM32 HID和CDC组合设备无法枚举成功
与HAL_ADC_Start_DMA相关的一个十分怪异的问题
由stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直没有呢
ptp PPS输出
但是,我用示波器测量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处理速度跟不上,那就跟手册上说的有矛盾。
我做了这样的测试,第一帧只做同步OUT, 第二帧只做同步IN,即一帧只做一种同步传输,如此循环。但它依然会产生未完成周期性传输(Incomplete periodic transfer)中断。所以应该不是STM32F4速度不够。但为什么IN 和 OUT 通道都打开就会出现这样的问题?