OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15929|回复: 22

stm32F4 usb host CDC类调试

[复制链接]

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
发表于 2016-3-11 14:09:38 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 天之痕 于 2016-3-11 15:25 编辑

概述
在调试stm32F4的usbhost与华为me909进行通信,还没有找到stm32 与 华为通信模块通过USB通信的例子,本贴直播调试usb host的全过程,如果有搞过的请跟帖帮忙分析一下。
已经知道的东西

1.华为me909 usb属于usb device,是cdc类。
2.stm32F4具备usb host功能,可以使用官方提供的usb库进行设计,最新的usb库为2.2.0版本。

3.移植了usb hid的例子,stm32F4作为host 与鼠标进行通信,完成。使用的是PA11 和 PA12脚,FS(全速模式)。

4.华为me909为自供电usb设备,因此当usb出现故障的时候不能通过插拔usb接口对usb进行复位,好在me909有复位引脚,经测试,通过模块本身的复位引脚对模块进行复位后,usb可以重新与stm32建立连接,相当于重新插拔USB接头。对于后期调试准备了下下策。


正在进行的工作

移植了官方usb host CDC的例子,结合原子提供的hid的例程进行调试,未果,只能进行到“USBH_USR_DeviceAddressAssigned(从机分配地址成功)“这一步,后续还没进展。现在怎么突破枚举的问题正在开展,阅读源码是必要的。

##截止至2016/3/9/17:43
设备已经枚举成功,终于迈出了第一步,调试过程:跟踪调试,发现程序在 usbh_stdreq.c 第479行时if ( cfg_desc->bNumInterfaces <= USBH_MAX_NUM_INTERFACES) 解析描述信息后会检查接口数是否在设定的范围内,华为的接口数为6个大于在 usbh_conf.h设置的例程中的 2个接口,所以枚举失败。改为6后,并把最对endpoint(端点数) 设置为3(在华为的 USB Interface Descriptor Guide文件中说明)。枚举成功!
但是提示的是不支持的设备,正在进一步调试,趁热打铁!

##截止至2016/3/9/18:03
打印出各个接口的信息
bInterfaceClass: 00FFh,bInterfaceSubClass: 0006h,bInterfaceProtocol: 0010h
bInterfaceClass: 00FFh,bInterfaceSubClass: 0006h,bInterfaceProtocol: 0013h
bInterfaceClass: 00FFh,bInterfaceSubClass: 0006h,bInterfaceProtocol: 0012h
bInterfaceClass: 00FFh,bInterfaceSubClass: 0006h,bInterfaceProtocol: 0016h
bInterfaceClass: 00FFh,bInterfaceSubClass: 0006h,bInterfaceProtocol: 0006h
bInterfaceClass: 00FFh,bInterfaceSubClass: 0006h,bInterfaceProtocol: 001Bh

##截止至2016/3/11/12:03
将端点 按照华为模块手册说明进行设置。有时可以接收到数据,但是概率很低,调试时发现在
CDC_ProcessReception(USB_OTG_CORE_HANDLE *pdev, USBH_HOST *phost)  函数中
URB_STATE URB_StatusRx =   HCD_GetURB_State(pdev , CDC_Machine.CDC_DataItf.hc_num_in);时


URB_StatusRx  的值为 URB_ERROR


查找发生这个错误的原因 在一个中断处理函数中
    else if((pdev->host.HC_Status[num] == HC_XACTERR) ||
            (pdev->host.HC_Status[num] == HC_DATATGLERR))
    {
      pdev->host.ErrCnt[num] = 0;
      pdev->host.URB_State[num] = URB_ERROR;
    }

引用香水城的描述
同样查看XACTERR和DATAEGLERR的置位原因,找到对应的寄存器,即OTG_FS_HCINTx中的【TXERR】和【DTERR】位被硬件置位。
【TXERR】:Transaction error,可能是CRC校验错误、超时、比特填充错误、或者错误的EOP
【DTERR】:Data toggle error,表示收、发双方的数据同步位不再同步,可能是主机处理不当,也有可能是设备处理不当。最直观的方法是使用USB分析仪,看出错前的总线通信来判断是谁没有正确处理数据同步位的翻转。

##截止至2016/3/11 15:24
确定为XACTERR错误,等待进一步调试

说明
如果有感兴趣的朋友可以帮助我一下,或者帮我一起调试一下。我会把这个工程发到论坛上


问题

keil 在编译完出线这个警告,没有找到是什么问题,但是结果是 0错误 0警告。有知道什么问题的请回复下。




cdc根据原子修改.rar

6.24 MB, 下载次数: 4237

最佳答案

查看完整内容[请看2#楼]

截止至2016/3/14 结帖:因为根据调试信息看是硬件问题,所以买了一个带usbhost接口的开发板进行调试。今天板子刚到。。。 烧程序,测试成功!果然是硬件问题!!! 问题解决。 原子的板子能退吗 哈哈哈。 留着自己玩,感谢原子的板子让我节省了调试时间
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-3-11 14:09:39 | 显示全部楼层
截止至2016/3/14
结帖:因为根据调试信息看是硬件问题,所以买了一个带usbhost接口的开发板进行调试。今天板子刚到。。。
烧程序,测试成功!果然是硬件问题!!! 问题解决。
原子的板子能退吗 哈哈哈。 留着自己玩,感谢原子的板子让我节省了调试时间
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-3-11 14:23:40 | 显示全部楼层
顶起来
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11476
金钱
11476
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-3-11 14:27:03 | 显示全部楼层

这个有意义,有难度,要顶。


回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-3-11 14:38:00 | 显示全部楼层
xuande 发表于 2016-3-11 14:27
这个有意义,有难度,要顶。

感谢帮顶!
做host的人太少了,如果这个调试成功了 一定要贡献出来,但是需要大家一起呀,我自己力量还是有限的  
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-3-11 15:32:45 | 显示全部楼层
不能沉
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-3-11 17:34:28 | 显示全部楼层
我决定买个原子的板子再调调
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-3-11 22:59:35 | 显示全部楼层
支持楼主
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-3-14 15:14:35 | 显示全部楼层

截止至2016/3/14
结帖:因为根据调试信息看是硬件问题,所以买了一个带usbhost接口的开发板进行调试。今天板子刚到。。。
烧程序,测试成功!果然是硬件问题!!! 问题解决。
回复

使用道具 举报

11

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-3-23
在线时间
32 小时
发表于 2016-7-18 20:38:05 | 显示全部楼层
支持楼主
回复

使用道具 举报

11

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-3-23
在线时间
32 小时
发表于 2016-7-18 20:42:46 | 显示全部楼层
楼主 我想问一下,我也是在调试4G模块,现在已经枚举成功,枚举成功之后要怎么做了,求指导
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2016-8-3
在线时间
0 小时
发表于 2016-8-3 15:10:20 | 显示全部楼层
楼主,PPP拨号能够实现吗
回复

使用道具 举报

20

主题

96

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2016-1-12
在线时间
62 小时
发表于 2016-8-5 16:41:06 | 显示全部楼层
支持楼主
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-8-11
在线时间
1 小时
发表于 2016-8-11 16:40:28 | 显示全部楼层
非常感兴趣和楼主一起完成后续STM32的4G驱动,关注
回复

使用道具 举报

17

主题

465

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2154
金钱
2154
注册时间
2013-1-11
在线时间
509 小时
发表于 2016-8-23 09:50:27 | 显示全部楼层
楼主你真是先驱
知识是你最好的财富
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-3-10
在线时间
1 小时
发表于 2016-10-18 20:51:52 | 显示全部楼层
感谢楼主共享,最近也在搞4G拨号连接,熟悉AT指令中
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
 楼主| 发表于 2016-12-12 14:47:24 | 显示全部楼层
有这么多人回复,其间有很多人加我QQ,大家搞起来
回复

使用道具 举报

Antia 该用户已被删除
发表于 2017-1-19 22:37:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

qy71 该用户已被删除
发表于 2017-1-24 10:02:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2017-3-1
在线时间
5 小时
发表于 2017-3-1 17:30:05 | 显示全部楼层
大神,求带飞
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-2-26
在线时间
3 小时
发表于 2020-4-22 13:44:18 | 显示全部楼层
牛人 赞你
回复

使用道具 举报

21

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2013-4-5
在线时间
19 小时
发表于 2020-6-5 19:18:15 | 显示全部楼层
天之痕 发表于 2016-3-14 15:14
截止至2016/3/14
结帖:因为根据调试信息看是硬件问题,所以买了一个带usbhost接口的开发板进行调试。 ...

有偿项目开发,有意向联系我 2821687106
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-5-22
在线时间
8 小时
发表于 2021-4-21 11:18:13 | 显示全部楼层
楼主是我辈之楷模
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 23:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表