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

应用STM32F205 USB host 遇到的疑问(大神请进)

[复制链接]
whwshiyuan 提问时间:2014-10-28 18:44 /
请大神们点化!!!

本人自定义一个HID从设备(端点描述符中指出:中断传输查询间隔为1ms,IN端点最大包大小为0x40,此设备既不是鼠标键盘也不是摇杆,是自定义的),此从设备插上PC后,bushound能够抓到PC每1ms读一次,并能正确读到HID从设备回的数据。
现在我不用PC与此HID从设备相连,想用STM32F205中的OTG_HS中的HOST与之相连,STM32F205配置以及与从设备的连接结果如下:
配置:
1.STM32F205固件采用ST官网上的“STM32_USB-Host-Device_Lib_V2.1.0”固件库,选取其中的USB_Host_Examples中的HID工程。
2.宏定义了USE_USB_OTG_HS与USE_EMBEDDED_PHY,即采用支持高速的OTG core以及内部的PHY。
3.内部DMA使能,配置如库函数配置一样。
4.OTG_HS设置为强制HOST模式,OTG_HS_DP与OTG_HS_DM复用给OTG_HS用,而OTG_HS_ID与OTG_HS_VBUS作为GPIO。
结果:
1.枚举过程全部完成。
2.HID类请求过程完成,即库中USBH_HID_ClassRequest函数所举出的状态机处理完成(这里的HID_REQ_SET_IDLE与HID_REQ_SET_IDLE状态处理过程被我屏蔽,这里的两个状态过程屏蔽与否对本次测试结果没有影响)。
3.处理类数据传输,即处理USBH_HID_Handle函数时出现问题,在执行USBH_InterruptReceiveData函数后,HOST一次都没有读到数据。
4.仿真分析,USBH_InterruptReceiveData函数->HCD_SubmitRequest函数->USB_OTG_HC_StartXfer函数中的如下语句
  hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR);
  hcchar.b.oddfrm = USB_OTG_IsEvenFrame(pdev);       
  /* Set host channel enable */
  hcchar.b.chen = 1;
  hcchar.b.chdis = 0;
  USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32);(这些语句本应该是使能主机通道,开始IN token的)
   A: 在执行上面代码之前OTG_HS_HCCHAR2=0x204c8840(打开通道时设置的), OTG_HS_HCTSIZ2=0x00080040, OTG_HS_HCDMA2=0x200008cc      (为我定义的用于存储接受数据的指针),这里定义的是主机通道2用于接受HID从设备数据。
   B: 单步执行上面代码之后,OTG_HS_HCCHAR2=0xe04c8840, OTG_HS_HCTSIZ2=0x80080040, OTG_HS_HCDMA2=0x200008cc,由此可见                      OTG_HS_HCCHAR2中的CHDIS也是为1的(应该由硬件 强制置1的,因为后面任何时候我通过调试窗口来让此位清0,都是无效的),之后继续走,          这三个寄存器的值一直不变。
   C:在控制通道中,在设置OTG_HS_HCCHAR中CHENA位时,CHDIS位并没有置1(由硬件),所以枚举过程能顺利完成。
   D:用逻辑分析仪抓DP与DM上的波形,发现再执行完上面语句后,HOST并没有发IN token(一次都没发),而只是在发SOF包(通过分析抓捕数据得          知)。
5.断电再上电,多次重复后,有时能正确接HID从设备数据,几率大概1/20。

根据上面的结果,本人有如下疑问:
1.为什么本实例中应用IN端点的主机通道,在置OTG_HS_HCCHAR中CHENA位时,会导致硬件置CHDIS位?所以HOST不发IN token。
2.为什么又会偶尔成功呢?

主要是第一个问题,请大神帮忙解释下,不胜感激!!!!!!!!!!!!!


收藏 评论0 发布时间:2014-10-28 18:44

举报

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