硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2786|回复: 3
收起左侧

华大HC32F460XXX移植cherryusb协议栈,实现USB CDC ACM

[复制链接]

6

主题

53

回帖

71

积分

初级会员

积分
71
QQ
发表于 2024-9-12 16:26:06 | 显示全部楼层 |阅读模式
本帖最后由 dacongzi 于 2024-9-13 09:09 编辑

第一步:下载cherryusb源代码:https://github.com/cherry-embedded/CherryUSB/tree/master
第二步:找到HC32F460对应的IP:新思科技的dwc2
             这里我在阅读cherryusb源代码的时候,看到有HC32F4A0的片子支持,然后比对了寄存器发现基本上是一致的,下图列了一部分寄存器对应关系,感兴趣的可以自己查阅比对一下
             2.png 1.png 3.png

第三步:因为我们要实现的是CDC ACM类,也就是USB转串口的功能,所以要用到的源代码文件如下图:
             4.png 5.png 6.png 7.png
第四步:实现配置文件usb_config.h,因为我用到了rt_thread_nano,所以,我直接拷贝了作者的文件到cherryusb根目录下
          8.png 9.png
第五步:实现应用代码,直接拷贝作者提供的模板文件,然后根据自己实际应用修改文件名及代码内容:
          10.png 11.png
第六步:实现两个函数:对应初始化usb时钟、引脚复用、usb时钟开启、【串口实体初始化】等硬件功能,因为作者用了__WEAK修饰符,所以可以自己直接重新实现
          usb_dc_low_level_init
          usb_dc_low_level_deinit
          12.png 13.png
第七步:修改对应的FIFO缓存大小,因为作者默认的缓存大小超出了HC32F460的,所以这里需要手动修改。根据芯片手册,HC32F460的FIFO总共只有1.25KB,需要根据自己实际情况修改
         14.png
第八步:如果使用了实体串口,还需要在类请求实现对实体串口的配置,因为作者使用了_WEAK修饰符,所以也可以自己重新实现
         15.png
第九步:调用USB中断服务程序
       微信图片_20240913090717.png 微信图片_20240913090508.png
到此基本结束了,就可以直接使用了,下面是我自己实现的一些截图
       16.png 17.png
       18.png
可以直接代替串口工具使用了
19.png

总结:实际上学习USB协议栈断断续续的也有两年多了,途中反反复复,前面学的知识忘记了,后面又得重新学习,官方文档庞杂、散乱,其中CDC ACM类,要完成一个描述符的内容,需要好多分散的文档才能理解,费老劲了。
          我自己推荐一些自认为有用的学习内容:
          视频(cherryusb作者自己做的视频,前期前面的几集声音有问题,后期重新录过):https://www.bilibili.com/video/B ... 706db96bb8a6aa4fbfd
          网站:https://www.usbzh.com/,站长推荐的一款usb抓包工具力荐:USB Packet view,上面截图就是该工具上位机界面,当然 Wireshark 也是很好用的,但是本人不太会用
          官网:https://www.usb.org/defined-class-codes
          附件是cdc acm用的文档

            21ic下载_USB2.0技术规范(中文).pdf.pdf (2.15 MB, 下载次数: 18)


USB2.0协议.pdf (2.56 MB, 下载次数: 14)


CDC1.2_WMC1.1_012011.zip (3.43 MB, 下载次数: 5)


CDC1.2_WMC1.1_052013.zip (2.42 MB, 下载次数: 6)





回复

使用道具 举报

6

主题

53

回帖

71

积分

初级会员

积分
71
QQ
 楼主| 发表于 2024-9-12 16:50:33 | 显示全部楼层
上位机和源代码,还有我自己抓的数据包,有兴趣的可以自行提取
链接:https://pan.baidu.com/s/1AzkdDiU-iHhxEW8OKGSX2w
提取码:1234

回复

使用道具 举报

2

主题

15

回帖

21

积分

新手上路

积分
21
发表于 2024-10-28 15:38:20 | 显示全部楼层
dacongzi 发表于 2024-9-12 16:50
上位机和源代码,还有我自己抓的数据包,有兴趣的可以自行提取
链接:https://pan.baidu.com/s/1AzkdDiU-i ...

多谢楼主分享这么好的资料。也准备玩下华大的mcu。
回复

使用道具 举报

6

主题

53

回帖

71

积分

初级会员

积分
71
QQ
 楼主| 发表于 2024-11-19 11:26:57 | 显示全部楼层
scarecrow 发表于 2024-10-28 15:38
多谢楼主分享这么好的资料。也准备玩下华大的mcu。

一起探索
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 20:21 , Processed in 0.251211 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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