发新帖我要提问
12
返回列表
打印
[STM32F4]

请教STM32F4的2个USB(Host+Device)是否可以同时使用?

[复制链接]
楼主: yixin1851
手机看帖
扫描二维码
随时随地手机跟帖
21
yixin1851|  楼主 | 2014-8-28 12:33 | 只看该作者 回帖奖励 |倒序浏览
想做大牛的小马 发表于 2014-8-28 09:44
(⊙o⊙)…。。HS和HS无论是软件还是硬件上都是独立的啊。。。看你这个情况,像是相互干扰了一下,
仔细查 ...

感谢回复
只要PC识别usb device,就会触发以下中断:
/* Handle Host Disconnect Interrupts */
    if(__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_DISCINT))
    {
      
      /* Cleanup HPRT */
      USBx_HPRT0 &= ~(USB_OTG_HPRT_PENA | USB_OTG_HPRT_PCDET |\
        USB_OTG_HPRT_PENCHNG | USB_OTG_HPRT_POCCHNG );
      
      /* Handle Host Port Interrupts */
      HAL_HCD_Disconnect_Callback(hhcd);
       USB_InitFSLSPClkSel(hhcd->Instance ,HCFG_48_MHZ );
      __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_DISCINT);
    }
从而导致Host歇菜,拔掉usb host就OK了。

我现在在找为什么PC识别到USB device,为什么会导致以上中断?

使用特权

评论回复
22
想做大牛的小马| | 2014-8-28 17:23 | 只看该作者
yixin1851 发表于 2014-8-28 12:33
感谢回复
只要PC识别usb device,就会触发以下中断:
/* Handle Host Disconnect Interrupts */

额。。是挺奇怪的,这个中断肯定是stm32作为usb host检测到device disconnect才进的,
感觉像是硬件方面的,pc识别你的device后,测一下作为host的那个usb的vbus~

使用特权

评论回复
23
yixin1851|  楼主 | 2014-8-28 18:53 | 只看该作者
想做大牛的小马 发表于 2014-8-28 17:23
额。。是挺奇怪的,这个中断肯定是stm32作为usb host检测到device disconnect才进的,
感觉像是硬件方面 ...

感谢回复
应该不是硬件的问题
我把自定义的HID描述符用鼠标描述符替代,就可以了。
但是又有新的问题,PC可以给设备发送数据,而设备不能给PC发送数据。
我的host是连的鼠标。

使用特权

评论回复
24
yixin1851|  楼主 | 2014-8-28 18:54 | 只看该作者
本帖最后由 yixin1851 于 2014-8-28 18:57 编辑

这是我的自定义的描述符
0x05, 0x8c, /* USAGE_PAGE (ST Page) */
0x09, 0x01, /* USAGE (Demo Kit) */
0xa1, 0x01, /* COLLECTION (Application) */

// The Input report
0x09,0x01, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8bit)
0x96,0x00,0x04, // REPORT_COUNT (64Byte)
0x81,0x02, // INPUT (Data,Var,Abs)
// The Output report
0x09,0x02, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8bit)
0x96,0x00,0x04, // REPORT_COUNT (64Byte)
0x91,0x02, // OUTPUT (Data,Var,Abs)
0xc0 /* END_COLLECTION */

不知道问题出在哪里,请大侠指点一下

使用特权

评论回复
25
leochoi| | 2014-8-28 22:47 | 只看该作者
STM32F405RGT6     超级优惠价格      联系者前十位免费送样,  手机  18665819839   。  qq:20205218  

使用特权

评论回复
26
yixin1851|  楼主 | 2014-8-29 10:14 | 只看该作者
从我的实验来看,HS DEVICE + FS HOST 看来不能同时使用。
更改The Input report 描述符,如将0x96,0x00,0x04,改为0x95,0x00,0x04;host正常,而PC也可以识别device。
但是PC接收不到device的数据。
不懂USB协议栈,玩USB真痛苦!

使用特权

评论回复
27
想做大牛的小马| | 2014-8-29 11:02 | 只看该作者
不需要非常懂协议栈。。。多看看例程应该就好了~
肯定可以同时使用的!搞的很混乱。。。。HS FS分别接什么,什么类?pc接收不到,首先要看pc有没有发IN token,
一般枚举成功后都应该会发,然后你的stm32端有没有发数据给pc?看看中断里IN端点的中断有没有进去,看看里面
有没有发送数据给pc

使用特权

评论回复
28
yixin1851|  楼主 | 2014-8-29 14:53 | 只看该作者
想做大牛的小马 发表于 2014-8-29 11:02
不需要非常懂协议栈。。。多看看例程应该就好了~
肯定可以同时使用的!搞的很混乱。。。。HS FS分别接什么 ...

开发环境:STM32F4 discovery开发板+外接USB3300(杜邦线连接的)
HS 作为HID device,连接电脑,一次传输数据1024个字节
FS作为host,连接鼠标,移动鼠标控制LED5亮灭。
以上两个单独使用,是OK的。
两个合到一起,不能同时使用。
虽然没有调试成功,但是依然非常感谢您。

使用特权

评论回复
29
hudi008| | 2014-8-29 23:41 | 只看该作者
可以吗?

使用特权

评论回复
30
hudi008| | 2014-8-29 23:41 | 只看该作者

使用特权

评论回复
31
yixin1851|  楼主 | 2014-9-1 10:31 | 只看该作者
hudi008 发表于 2014-8-29 23:41

能力有限,没有搞定。
和PC通信打算采用串口。

使用特权

评论回复
32
iedxtu| | 2015-4-12 16:06 | 只看该作者
yixin1851 发表于 2014-8-27 15:15
感谢您这个结果
我现在情况是这样的,如果PC识别到USBDEVICE(一个端点输入0x81,一个端点输出0x01),ho ...

我最近也在做这么一个案例,但我更惨了,用SM32CubeMX生成的代码根本就不能枚举成功,SetConfigration error,不知道你是怎么设置的,可否把你的CubeMX工程贴上来研究一下!谢谢!

使用特权

评论回复
33
iedxtu| | 2015-4-12 16:11 | 只看该作者
我最近也在做这么一个案例,但我更惨了,用SM32CubeMX生成的代码根本就不能枚举成功,SetConfigration error,不知道你是怎么设置的,可否把你的CubeMX工程贴上来研究一下!谢谢!

使用特权

评论回复
34
zzwj5120| | 2017-3-7 21:25 | 只看该作者
STM32的问题太多,主要是对USB这块很不认真。
103系列的USB Device Library 还算简洁明了,硬件上有7个端点资源及可以。
后来升级到OTG,还是玩弄花哨了,端点变成5个,库开始写的隐晦,反正是不打算让人看明白。
STM32CubeMX 也没有设置端点序号和配置描述符的操作界面,版本号升级翻来覆去就是瞎折腾。

连一个USB 2.0 HS PHY,折腾很久,还是没有集成到LQFP封装的芯片中。
F407到F413,USB部分是各种阉割。

F407到F723,USB部分各种瞎折腾,工艺不提升,挤牙膏地搞出H7,不实在。

实际需求最大的还是103系列,但ST对这个系列的内核和外设都不升级,万年72MHz。

总而言之,自2013年后,ST再也没什么革新的东西,开始耍滑头,学Intel的办法,不断地玩噱头,挤牙膏。






使用特权

评论回复
35
yongwong99| | 2017-4-8 22:11 | 只看该作者
mark!

使用特权

评论回复
36
kmzuaz| | 2017-4-8 23:18 | 只看该作者
没有用过这个usb。

使用特权

评论回复
37
kmzuaz| | 2017-4-8 23:20 | 只看该作者
不是有评估板上自带的usb驱动程序吗

使用特权

评论回复
38
YYaiPAOFU| | 2017-9-11 11:31 | 只看该作者
楼主您好 想请问下您这个问题怎么解决的。我现在也在做USB HOST和DEVICE  我是用HS接口外接USB3300做host 用来读取鼠标键盘输入数据。然后用FS接口作为Device 枚举成鼠标键盘 链接PC。现在单独分开都是没问题的 但是合在一起后 够通过Host读取鼠标键盘数据 但是Device好像失效了 无法发送数据给PC  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则