近日在调试stm32f746的HS USB,但是出现了同步OUT端点无法接受到数据的问题,历程用的是STM32Cube_FW_F7_V1.3.0中的Projects\STM32746G-Discovery\Applications\USB_Device\AUDIO_Standalone,板子是自己画的(PHY芯片USB3320),例子中部分地方进行了修改。
修改如下:1.使用外部晶振8M作为时钟
2.使用MCO1作为USB3320的始终输入,频率24MHz。
3.stm32F746时钟频率92M
4.始终usbd_audio_if_template代替了usbd_audio_if,故使用之时没有与音频硬件相关的任何东西。
5.电脑可以识别麦克风,但是放声时会卡住,原因是没有USBD_AUDIO_DataOut触发,也没有端点1的中断产生。
usbd_audio.c中的函数调用如下:
..\Src\usbd_audio_if_template.c TEMPLATE_Init
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_Setup
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_Setup
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c AUDIO_REQ_GetCurrent
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_Setup
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_GetCfgDesc
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_GetCfgDesc
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_GetDeviceQualifierDesc
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_GetCfgDesc
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_GetCfgDesc
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_EP0_TxReady
DEBUG : ..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Src\usbd_audio.c USBD_AUDIO_Setup
下图为USBlyzer抓到的数据包,可以看到主机已经发起了同步传输,但是失败了,求大神赐教。
这个可能会是硬件的问题吗??
https://bbs.21ic.com/forum.php?mod=attachment&aid=NzExMzM2fDFkMTk4N2FkMTY2ZGZiNGI1NDgzZDhmZGNjMTE0MjRifDE3MzA3ODk2NTQ%3D&request=yes&_f=.png
|