简介
南京沁恒的CH32F103C8T6对标的是意法半导体的STM32F103C8T6,为保证兼容性,架构基本一致。因为内核一样,目前本人看手册仅发现在外设上进行了增删,总体上和ST结构类似。芯片的手册里的管脚定义也兼容ST芯片。
寄存器、存储器地址映射,这个决定了芯片外设是否兼容,能否可以使用st官方驱动库。不一样的地方、或者有增强的地方、或者省去的地方都可以一目了然,并且按照变化来增加或者删减相关配置。比较后可以看出,基本外设地址都是一致的,部分的器件有功能的增加和减少,这也意味着绝大多数的功能是可以兼容的,但用到一些特定的功能时,需要参考官方例程或者库,或者移植寄存器地址设置。例如CH公司在地址0x4002 3400处增加了自己的USBHD地址映射,这是其他芯片没有的,加之其自有的BOOT,所以能够轻松实现USB下载固件。
系统资源
Cortex-M3内核,72MHz系统主频;
单周期乘法和硬件除法;
20KB SRAM,64KB CodeFlash;
供电范围:2.7V-5.5V,GPIO同步供电电压;
多种低功耗模式:睡眠/停止/待机;
上电/断电复位(POR/PDR);
可编程电压监测器(PVD);
7通道DMA控制器;
12位模数转换ADC,1us转换时间;
16路TouchKey通道检测;
12位数模转换DAC;
7个定时器;
1个USB2.0 FullSpeed主机/设备接口(全速和低速);
1个USB2.0 FullSpeed设备接口(全速和低速);
1个CAN控制器(2.0B主动);
2个I2C接口(支持SMBus/PMBus);
3个USART接口;
2个SPI接口(支持Master和Slave模式);
51个I/O口,所有IO口都可以映射到16个外部中断;
CRC计算单元,96位芯片唯一ID;
串行单线调试(SWD)接口;
封装形式:LQFP64M、LQFP48、QFN48。
串口下载方式
下载前安装WCHISPTool软件,点击官网下载
USB转TTL串口模块与CH32接线如下:Rx—>A9、Tx---->A10、GND–>G、VCC–>3.3,boot0跳线帽置为高电平
下载前若下载选项不能点击,请点选下接触保护选项,有时下载不成功重启下软件。选择一个编译好的STM32F103C8T6的hex文件,PC13闪灯程序。下载完成后boot0设置回低电平,按下复位键观察灯在闪烁,说明程序在运行。
USB下载
CH32F103有2个USB,分别为:
主机HUSB: PB7------>D+、PB6------>D-
设备USB: PA12----->D+、PA11----->D-
boot0跳线帽置为高电平,软件默认下载使用HUSB。核心板上使用的是设备USB,因此需要另外接USB线
下载前若下载选项不能点击,请点选下接触保护选项,有时下载不成功重启下软件。选择一个编译好的STM32F103C8T6的hex文件,PC13闪灯程序。下载完成后boot0设置回低电平,按下复位键观察灯在闪烁,说明程序在运行。
使用ST-LINK(SWD等仿真工具),MDK编译软件下载
安装MDK的CH32F1xx器件安装包
安装完后能在MDK器件选项卡里面看到器件型号
使用SWD接口接线,SWCLK和SWDIO,boot0跳线帽置为低电平
打开PC13闪烁的MDK工程文件,进行相应的设置
Debug选择好下载器的型号,在flash download选项里面添加CH32F1xx的算法
下载接口Port选择SW,可以看到Arm内核
编译并下载工程文件到核心板
总结
CH需要安装器件库包,还需要添加自己的算法,这样在MDK里才可以正常下载,特有的bootloader和ST不一样,也支持串口和usb下载。另外还有其他几款类似的对标ST的芯片如GD32F103c8t6(北京兆易创新)、APM32F103c8t6(珠海极海)、HK32F103c8t6(深圳航顺)、CKSF103c8t6(无锡中科芯)。
GD32、APM32可以用串口通过STM32CubeProgrammer软件下载,其它几种不可以,说明GD32和APM的BootLoader是和STM32兼容的。GD32、APM32、HS32、CSK32可以用ST-LINK下载器通过MDK或STM32CubeProgrammer软件下载,CH32不可以,CH32的flash算法和ST不兼容。