打印
[单片机芯片]

CH32FMCU系列产品应用手册--模拟CDC设备

[复制链接]
1107|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyyyy|  楼主 | 2020-7-1 17:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
CH32F1系列是基于32位Cortex-M3内核设计的通用微控制器。片上集成了时钟安全机制、多级电源管理、通用DMA控制器等。此系列具有2路USB2.0接口(USB Device & USB Host/Device)、多通道TouchKey、12位DAC转换模块,多通道12位ADC、多组定时器、CAN 通讯控制器、I2C/USART/SPI 等丰富的外设资源。
本次应用主要用到USB Device接口,通过软件编程实现一个CDC设备,将电脑端下传的数据完全回传至电脑,可通过电脑端串口助手验证。USB 的 CDC 类是 USB 通信设备类(Communication Device Class Specification )的简称。可以通过 USB CDC 协议来将 USB 接口虚拟为其他通讯接口如串口,以太网接口,ISDN 接口等等。本应用主要实现在电脑端模拟一个CDC虚拟串口。Win10系统自带了CDC设备的驱动,所以电脑端无需装驱动便可实现通讯。
流程图如下图所示:

软件编程过程如下:
    CH32F103EVT中的USB Device工程中,跟USB相关是USB Core和USB Config文件夹下包含的.C文件。其中USB Core是USB驱动的底层文件,一般不做修改。重点修改的是USB Config文件夹下的.C文件。下面重点介绍USBCONFIG文件夹下的几个文件:
hw_config.c 文件,该文件用于硬件的配置,比如初始化 USB 时钟、USB 中断、低功耗模
式处理等。
usb_desc.c 文件,该文件用于描述符的处理。
usb_endp.c 文件,该文件用于非控制传输,处理正确传输中断回调函数。
usb_istr.c 文件,该文件用于处理 USB 中断。
usb_prop.c 文件,该文件用于处理设备的相关事件,包括设备的初始化、复位等等操作。
usb_pwr.c 文件,该文件用于 USB 控制器的电源管理;。
usb_desc.c里面定义了设备描述符、配置描述符、字符串描述符,需要将其修改成CDC设备对应的描述符,需要注意的是要在usb_desc.h里面修改描述符对应的长度,否则会枚举出错。其次在usb_endp.c里面增加设备端点的中断回调函数,实现将批量下传端点3收到的数据完全透传至批量上传端点1,实现回传效果,如图所示:
usb_prop.c中首先需要加上CDC设备修改波特率的类命令的代码支持,其次需要在USBD_Reset() 函数中把端点1、端点3修改成批量端点。以上修改完,整个的功能就已经完成了,实际效果如下图所示:


源码见附件如下:
CH32F103模拟CDC设备.rar (4.67 MB)


使用特权

评论回复
沙发
zeshoufx| | 2020-7-1 19:54 | 只看该作者
谢谢分享【模拟CDC设备】demo

使用特权

评论回复
板凳
copower| | 2020-8-12 22:45 | 只看该作者
这个芯片单价多少钱?

使用特权

评论回复
地板
WoodData| | 2020-9-3 17:12 | 只看该作者
谢谢分享

使用特权

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

本版积分规则

5

主题

65

帖子

0

粉丝