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的手工焊接尝试

有没有点赛博朋克的感觉?

Win10 环境

HC32L110 (以及其他的Cortex M0华大MCU) 在 Windows 下可以选择的烧录选项比较多, 以下说明如何配置 DAP-Link, ST-Link, J-Link 的烧录环境

硬件准备

  • 开发板, 可以用泽耀的2.4G模块开发板AS06-VTB07H, 这个开发板最早的版本使用的是STM8S, 现在都改成 HC32L110C4UA 了
  • CMSIS DAP-Link 或 J-Link 或 ST-Link 都已经验证可以烧录

软件

  • HC32L110_DDL_Rev1.1.4.zip 这个是带项目模板和例子的程序包
  • HC32L110_IDE_Rev1.0.3.zip IDE开发的型号支持

安装环境支持包

将 HC32L110_IDE_Rev1.0.3.zip 解压, MDK_IDE下的 HDSC.HC32L110.1.0.3.pack 就是给 Keil MDK 用的芯片型号库, 双击导入, 或者通过 Keil MDK 的 Package Installer 导入. 导入之后, 在 Keil MDK 中新建项目选择芯片时, 就能看到 HC32L110 系列芯片, 选择芯片型号后, 在Debug Download下面就有对应的算法文件. 算法文件的默认路径是 C:\Keil_v5\ARM\PACK\HDSC\HC32L110\1.0.3\Flash

使用 DAP-Link

  1. 在项目中点开编译选项, 选择正确的芯片型号, 例如 HC32L110C4UA
  2. 到Debug标签页选择下载设备为CMSIS-DAP Debugger,
  3. 打开 Settings, 应该能看到识别出的设备为 0x0BC11477 Arm Core Sight SW-DP
  4. Max Clock 选择10MHz (初始化时经常会自动选择1MHz, 这样下载时最后一步会出错).
  5. 到Flash Download 标签页, 勾选 Reset and Run, 并且确认下方的Programming Algorithm中已经设置了算法.

之后F7编译, F8下载, 设置正确的话就能看到烧录校验完成的信息

使用 ST-Link V2

如果DAP-Link已经设置正确, ST-Link可以直接使用,

  1. 在Debug中切换设备为ST-Link Debugger
  2. 打开 Settings, 能看到识别出的设备 0x0BC11477 Arm Core Sight SW-DP. Port 如果设成了JTAG需要改为SW, Clock设为4MHz
  3. Flash Download 勾选 Reset and Run

也是 F8 下载. 输出记录:

  1. Build started: Project: x
  2. *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
  3. Build target 'x'
  4. ".\Objects\1101_tx.axf" - 0 Error(s), 0 Warning(s).
  5. Build Time Elapsed: 00:00:00
  6. Load "D:\\WorkMDK\\WorkHC32\\hc32l110_prj\\Objects\\1101_tx.axf"
  7. Erase Done.
  8. Programming Done.
  9. Verify OK.
  10. Application running ...
  11. Flash Load finished at 20:46:34

使用J-Link

J-Link 使用方式和 DAP-Link 基本一致, 如果DAP-Link已经设置正确, J-Link可以直接使用, 在Debug中切换设备为J-Link, 打开 Settings 能看到识别出的设备 0x0BC11477 Arm Core Sight SW-DP. Port 如果设成了JTAG需要改为SW, Clock设为5MHz

Flash Download 勾选 Reset and Run, F8烧录, 输出记录为

  1. Build started: Project: x
  2. *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
  3. Build target 'x'
  4. ".\Objects\1101_tx.axf" - 0 Error(s), 0 Warning(s).
  5. Build Time Elapsed: 00:00:00
  6. Load "D:\\WorkMDK\\WorkHC32\\hc32l110_prj\\Objects\\1101_tx.axf"
  7. * JLink Info: Device "CORTEX-M3" selected.
  8. * JLink Info: Device "CORTEX-M3" selected.
  9. Set JLink Project File to "D:\WorkMDK\WorkHC32\hc32l110_prj\JLinkSettings.ini"
  10. * JLink Info: Device "CORTEX-M3" selected.
  11. JLink info:
  12. ------------
  13. DLL: V6.30h, compiled Mar 16 2018 18:02:51
  14. Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
  15. Hardware: V7.00
  16. S/N : 20090928
  17. Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDB
  18. * JLink Info: Found SW-DP with ID 0x0BC11477
  19. * JLink Info: Scanning AP map to find all available APs
  20. * JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
  21. * JLink Info: AP[0]: AHB-AP (IDR: 0x04770031)
  22. * JLink Info: Iterating through AP map to find AHB-AP to use
  23. * JLink Info: AP[0]: Core found
  24. * JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
  25. * JLink Info: CPUID register: 0x410CC601. Implementer code: 0x41 (ARM)
  26. * JLink Info: Found Cortex-M0 r0p1, Little endian.
  27. **JLink Warning: Identified core does not match configuration. (Found: Cortex-M0, Configured: Cortex-M3)
  28. * JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
  29. * JLink Info: CoreSight components:
  30. * JLink Info: ROMTbl[0] @ E00FF000
  31. * JLink Info: ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
  32. * JLink Info: ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
  33. * JLink Info: ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
  34. ROMTableAddr = 0xE00FF000
  35. * JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
  36. * JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
  37. Target info:
  38. ------------
  39. Device: HC32L110C4UA
  40. VTarget = 3.300V
  41. State of Pins:
  42. TCK: 0, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 0
  43. Hardware-Breakpoints: 4
  44. Software-Breakpoints: 8192
  45. Watchpoints: 2
  46. JTAG speed: 4000 kHz
  47. Erase Done.
  48. Programming Done.
  49. Verify OK.
  50. * JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
  51. * JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
  52. Application running ...
  53. Flash Load finished at 19:21:41

单独使用 J-Flash

从 segger 官网 https://www.segger.com/ 下载 JLink 整合安装包 JLink_Windows_V770a_i386.exe, 安装完是不带 HC32L110 系列型号的, 需要单独添加

先添加设备, 将 C:\Keil_v5\ARM\PACK\HDSC\HC32L110\1.0.3\Flash 下面的两个算法文件, HC32L110B4_C4.FLM 和 HC32L110B6_C6.FLM 复制到

C:\Program Files (x86)\SEGGER\JLink\Devices\HDSC ,

修改 C:\Program Files (x86)\SEGGER\JLink\JLinkDevices.xml

在结尾的</DataBase>之前增加这几行

  1. <Device>
  2. <ChipInfo Vendor="HDSC" Name="HC32L110x4" WorkRAMAddr="0x20000000" WorkRAMSize="0x800" Core="JLINK_CORE_CORTEX_M0"/>
  3. <FlashBankInfo Name="Flash_16K" BaseAddr="0x0" MaxSize="0x4000" Loader="Devices/HDSC/HC32L110B4_C4.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  4. </Device>
  5. <Device>
  6. <ChipInfo Vendor="HDSC" Name="HC32L110x6" WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
  7. <FlashBankInfo Name="Flash_32K" BaseAddr="0x0" MaxSize="0x8000" Loader="Devices/HDSC/HC32L110B6_C6.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  8. </Device>

然后打开J-Flash, 在设备列表里就能找到 HC32L110了, 连接后打开要烧录的hex, F7就可以烧录了

待更新

HC32L110 系列 M0 MCU 的介绍和Win10下DAP-Link, ST-Link, J-Link的烧录的更多相关文章

  1. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  3. Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  4. Java 集合系列 05 Vector详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  5. Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  6. Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  7. N3292系列资料之RTC介绍

    N3292系列资料之RTC介绍 1 RTC特性 Ø 拥有时间计数器(秒,分,时)和日历计数器,用来计算时间 Ø 绝对定时功能(秒,分,时,日,月,年) Ø 相对定时功能 Ø 支持12小时/24小时模式 ...

  8. 智能合约语言Solidity教程系列2 - 地址类型介绍

    智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你 ...

  9. 搜索引擎ElasticSearchV5.4.2系列一之ES介绍

    相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x- ...

随机推荐

  1. Spring Authorization Server(AS)从 Mysql 中读取客户端、用户

    Spring AS 持久化 jdk version: 17 spring boot version: 2.7.0 spring authorization server:0.3.0 mysql ver ...

  2. 配置中心的设计-nacos vs apollo

    简介 前面我们分析了携程的 apollo(见 详解apollo的设计与使用),现在再来看看阿里的 nacos. 和 apollo 一样,nacos 也是一款配置中心,同样可以实现配置的集中管理.分环境 ...

  3. 数据分析工具Metabase--Metabase安装(最详细的安装教程)

    Meatabase介绍 Metabase 是一款开源的BI工具.主要可以实现在线的可视化分析,单独生成分析图标,定时刷新数据集,权限管理,报告分享等一系列功能. Metabase支持多种市面上主流的数 ...

  4. (持续更新)虚树,KD-Tree,长链剖分,后缀数组,后缀自动机

    真的就是讲课两天,吸收一个月呢! \(1.\)虚树 \(2.\)KD-Tree \(3.\)长链剖分 \(4.\)后缀数组 后缀数组 \(5.\)后缀自动机 后缀自动机

  5. Docker容器固定ip

    Docker容器固定IP 必须停止docker服务才能创建网桥 查看docker服务状态 停止docker服务 启动docker服务 [root@docker Tools]# systemctl st ...

  6. 2022年Web前端开发流程和学习路线(详尽版)

    前言 前端侧重于人机交互和用户体验,后端侧重于业务逻辑和大规模数据处理.理论上,面向用户的产品里,所有问题(包括产品.设计.后端.甚至看不见的问题)的表现形式,都会暴露在前端,而只有部分问题(数据问题 ...

  7. 基于MybatisPlus代码生成器(2.0新版本)

    一.模块简介 1.功能亮点 实时读取库表结构元数据信息,比如表名.字段名.字段类型.注释等,选中修改后的表,点击一键生成,代码成即可提现出表结构的变化. 单表快速转化restful风格的API接口并对 ...

  8. 手把手教你实现一个Vue无限级联树形表格(增删改)

    前言平时我们可能在做项目时,会遇到一个业务逻辑.实现一个无限级联树形表格,什么叫做无限级联树形表格呢?就是下图所展示的内容,有一个祖元素,然后下面可能有很多子孙元素,你可以实现添加.编辑.删除这样几个 ...

  9. sap 调用Http 服务

    REPORT ZMJ_GETAPI. DATA: LEN TYPE I, "发送报文长度 LEN_STRING TYPE STRING, URL TYPE STRING, "接口地 ...

  10. netty系列之:在netty中使用native传输协议

    目录 简介 native传输协议的依赖 netty本地传输协议的使用 总结 简介 对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NIO,比如 ...