用CH552玩USB开发!0x00 引言
原同学
编辑于 2024年02月22日 01:04
收录于文集
共17篇

什么玩意,怎么这玩意还有引言的,写论文写的是吧


USB(Universal Serial Bus,通用串行总线),自1994年问世以来至本文写作时已有近30年历史。如今,USB成为消费电子设备中最流行的接口总线之一,广泛用于计算机、数字移动电话机(人话:手机)、便携闪存存储器(人话:U盘)等设备。  

我们折腾电子设备开发时,当设备需要与计算机通信,最容易想到也最容易实现的是什么?串口(指异步串口,有时也称UART或16550串口,下文通称串口)。但是串口存在诸多不便,包括但不限于:  

  • 现代计算机大多已不具备串口接口,即使是较旧的型号,其串口使用的RS-232标准的电平一般与TTL或CMOS电平的器件串口不兼容;

  • 使用USB转串口芯片需要引入额外的组件,且往往需要安装专用VCP(Virtual COM Port,虚拟串行口)驱动才能达到较好的传输性能;

  • 传输速度受限于串口速度;

同时,若要开发HID(Human Interface Device,人体学接口设备)等USB类型设备,无法依靠串口实现,或只能使用诸如南京沁恒CH9328等专用芯片转换,增加成本。  

不过就在笔者去年折腾某国产8051时,一位友人赠送了我100片南京沁恒CH552芯片。这正是我涉足USB开发的起点。  

在本系列教程中,笔者将以基于CH552G的一个单按键USB开发板为硬件基础,进行USB开发的入门讲解。CH552是由南京沁恒出品的一款增强1T 8051内核单片机,支持高达24MHz主频,片内256+1K RAM和16K ROM的容量虽然不算丰富,但也足以入门使用。以下内容引用自其官网产品说明:

增强型E8051内核CPU,速度比标准MCS51快8-15倍,特有XRAM数据快速复制指令; 内置16KB Code Flash、1KB XRAM和内部256B iRAM、128B DataFlash,支持字节方式读写; 内置2KB BootLoader,支持USB和串口ISP,提供ISP下载库; 内嵌USB控制器和USB 收发器,支持USB-Device 设备模式,支持USB type-C主从检测,支持USB 2.0 全速12Mbps或者低速1.5Mbps。支持最大64 字节数据包,内置FIFO,支持DMA; 内嵌USB控制器和USB收发器,支持USB2.0全速和低速主机或设备模式。支持最大64字节数据包,内置FIFO,支持DMA; 提供3组定时器/计数器,支持2路信号捕捉和2路PWM输出; 提供2个全双工异步串口,全部支持高波特率通讯,UART0为标准MCS51 串口; 提供1个SPI通信接口,内置FIFO,支持Master/Slave主从模式; ……太多了,我不列了,再列本文查重率炸了(不是(←就是写论文写的

并且CH552还有一个我认为很喜欢的小细节:只要在上电时将D+数据线接高电平,即可进入USBISP下载模式,可以很方便的更新固件,省去购买专用下载器和设计时预留下载接口的麻烦。(甚至如果是全新出厂的空芯片,在首次烧录前每次上电都会自动进入USBISP下载模式。)  

总之,本系列教程将带你进入USB开发的大门,与你一起制作你的第一个USB HID设备!

咕(小声(逃