目录
- HC32L110(一) HC32L110芯片介绍和Win10下的烧录
- HC32L110(二) HC32L110在Ubuntu下的烧录
- HC32L110(三) HC32L110的GCC工具链和VSCode开发环境
- HC32L110(四) HC32L110的startup启动文件和ld连接脚本
- HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置
前言
这个系列介绍一个比较小众的MCU, HC32L110系列. 因为小众所以资料少, 一部分内容来源于官方网站, 一部分内容来源于国外硬件玩家的先行资料, 其它的只能靠自己测试和摸索. Windows下Keil开发环境的资料很全不需要锦上添花. 我做的工作主要是在Linux环境下配置可用的烧录和开发环境, 移植GCC的LD和startup代码, 这个代码仓库主要面向GCC ARM工具链的用户.
仓库地址: https://github.com/IOsetting/hc32l110-template
如果转载, 请注明出处.
HC32L110 系列 Cortex M0 MCU
Hackaday 在三月份的时候介绍了一款最小的MCU NEW PART DAY: SMALLEST ARM MCU UPROOTS COMPETITION, NEEDS RESEARCH, 华大的 HC32L110B6YA-CSP16TR, CSP16封装, 尺寸有只1.6mm x 1.4mm, 还不及一粒米大, 从这几张图可以对比看看实物大小
硬件大佬Jeroen Domburg的手工焊接尝试油管视频链接地址 和芯片介绍
- Using a tiny HC32L110 ARM chip - Intro
- Using a tiny HC32L110 ARM chip - Soldering a WCSP package
- Using a tiny HC32L110 ARM chip - Programming the chip
HC32L110 参数
32位Cortex M0内核, 16K/32K Flash, 2K/4K RAM, 外设也很齐全. 缺点也很明显, 作为一个32位M0, 内存有点小, SPI和I2C分别只有一个, 对一些场景会有限制.
- Arm Cortex-M0+ 32-bit core, 32 MHz (内建的时钟源最高是24MHz)
- 2KB to 4KB RAM
- 16K to 32KB flash
- 外设
- 16x GPIOs with 20-pin packages, 12x GPIOs with 16-pin packages
- PWM output
- 2x UART, 1x SPI, 1x I2C
- Up to 9-channel 12-bit SARADC with up to 1Msps sampling
- Buzzer frequency generator
- Timer/Counter
- 3x general-purpose 16-bit timers/counters
- 3x high-performance 16-bit timer/counter
- 1x low power 16-bit timer/counter
- 1x programmable 16-bit timer/counter with comparison support
- RTC
- 2-way voltage comparator VC with integrated 6-bit DAC and programmable reference input
- 时钟
- External high-speed crystal oscillator 4 ~ 32MHz
- External low-speed crystal oscillator 32.768KHz
- Internal high-speed clock 4/8/16/22.12/24MHz
- Internal low-speed clock 32.8/38.4KHz
- Watchdog timer
- Hardware supports internal and external clock calibration and monitoring
- Security – CRC-16 module, unique 10-byte ID number
- Debugging – Embedded debugging solution providing a full-featured real-time debugger
- Power Management
- Operating voltage – 1.8 to 5.5V
- Integrated low voltage detector LVD, configurable 16-level comparison level
- Power consumption
- 0.5μA @ 3V in deep sleep mode (all clocks off, power-on reset valid, IO status maintained, IO interrupt valid)
- 1.0μA @ 3V in deep sleep mode + RTC operation
- 6μA in 32.768KHz low-speed active mode (CPU and peripheral modules run, run programs from flash)
- 20μA/MHz @ 3V @ 16MHz in sleep mode (CPU stops working, peripheral modules run, main clock runs)
- 120μA/MHz @ 3V @ 16MHz while active (CPU and peripheral modules run, run programs from flash)
- Wake-up time – 4μS ultra-low-power wake-up time
- Temperature range – -40 ~ 85C
- Packages
- QFN20 – 3 x 3 mm
- TSSOP20 – 6.5 x 4.4 mm
- TSSOP16 – 5 x 4.4 mm
- CSP16 – 1.59 x 1.436 mm
型号参数表
Win10 环境
HC32L110 (以及其他的Cortex M0华大MCU) 在 Windows 下可以选择的烧录选项比较多, 以下说明 DAP-Link, ST-Link, J-Link 这几种烧录方式的配置步骤.
硬件准备
- 开发板, 可以用
- LilyGo 的 T-HC32 开发板, 这个开发板用的就是 CSP16封装的 HC32L110B6
- 或者用泽耀的2.4G模块套件底板AS06-VTB07H. 套件9.9还送一片Si24R1. 这个底板最早使用的是STM8S, 现在改成 QFN20 的 HC32L110C4UA
- 以上在某宝上都能买到
- 如果自己焊接, 建议用tssop20封装, 其他的封装焊起来太困难了
- 烧录卡建议用JLink, 在Win10下 CMSIS DAP-Link 或 J-Link 或 ST-Link V2 都可以用, 但是在Linux下, 暂时还只能用 JLink.
软件
- HC32L110_DDL_Rev1.1.4.zip 这个是带项目模板和例子的程序包
- HC32L110_IDE_Rev1.0.3.zip IDE开发的型号支持, 带flash算法文件. 算法文件在项目仓库里也已经包含.
- JLink安装包(如果需要单独的 J-Flash), 需要单独安装, 从 Segger官网下载
安装环境支持包
将 HC32L110_IDE_Rev1.0.3.zip 解压, MDK_IDE下的 HDSC.HC32L110.1.0.3.pack 就是给 Keil