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 下载. 输出记录:

Build started: Project: x
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'x'
".\Objects\1101_tx.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
Load "D:\\WorkMDK\\WorkHC32\\hc32l110_prj\\Objects\\1101_tx.axf"
Erase Done.
Programming Done.
Verify OK.
Application running ...
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烧录, 输出记录为

Build started: Project: x
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'x'
".\Objects\1101_tx.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
Load "D:\\WorkMDK\\WorkHC32\\hc32l110_prj\\Objects\\1101_tx.axf"
* JLink Info: Device "CORTEX-M3" selected.
* JLink Info: Device "CORTEX-M3" selected.
Set JLink Project File to "D:\WorkMDK\WorkHC32\hc32l110_prj\JLinkSettings.ini"
* JLink Info: Device "CORTEX-M3" selected. JLink info:
------------
DLL: V6.30h, compiled Mar 16 2018 18:02:51
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware: V7.00
S/N : 20090928
Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDB * JLink Info: Found SW-DP with ID 0x0BC11477
* JLink Info: Scanning AP map to find all available APs
* JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
* JLink Info: AP[0]: AHB-AP (IDR: 0x04770031)
* JLink Info: Iterating through AP map to find AHB-AP to use
* JLink Info: AP[0]: Core found
* JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
* JLink Info: CPUID register: 0x410CC601. Implementer code: 0x41 (ARM)
* JLink Info: Found Cortex-M0 r0p1, Little endian.
**JLink Warning: Identified core does not match configuration. (Found: Cortex-M0, Configured: Cortex-M3)
* JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
* JLink Info: CoreSight components:
* JLink Info: ROMTbl[0] @ E00FF000
* JLink Info: ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
* JLink Info: ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
* JLink Info: ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
ROMTableAddr = 0xE00FF000
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ. Target info:
------------
Device: HC32L110C4UA
VTarget = 3.300V
State of Pins:
TCK: 0, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 0
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
Watchpoints: 2
JTAG speed: 4000 kHz Erase Done.
Programming Done.
Verify OK.
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
Application running ...
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>之前增加这几行

  <Device>
<ChipInfo Vendor="HDSC" Name="HC32L110x4" WorkRAMAddr="0x20000000" WorkRAMSize="0x800" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="Flash_16K" BaseAddr="0x0" MaxSize="0x4000" Loader="Devices/HDSC/HC32L110B4_C4.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
<Device>
<ChipInfo Vendor="HDSC" Name="HC32L110x6" WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="Flash_32K" BaseAddr="0x0" MaxSize="0x8000" Loader="Devices/HDSC/HC32L110B6_C6.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</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. 如何为Java面试准备项目经验

    1 提出问题 应届生朋友或Java程序员在找Java方面的工作时,一定会需要准备Java项目经验,但事实上不少求职者,是没有项目经验,或者只具有开源社区等的学习项目经验,这样的话,就很有可能在面试时无 ...

  2. MTK 虚拟 sensor bring up (pick up) sensor1.0

    pick up bring up sensor1.0 1.pick up对比 2.SCP 1.添加驱动文件 2.添加编译环境(打开开关) 注:编译过程中如果显示内存不够 3.修改底层数据上报方式 3. ...

  3. Go微服务框架go-kratos实战03:使用 gorm 实现增删改查操作

    一.简介 在上一篇文章 go-kratos实战02 中,详细介绍了用 kratos 编写项目代码的步骤.这篇就在上篇基础上,再结合 Go 数据库操作库 gorm 一步一步来实现一个简单的增删改查操作. ...

  4. c++ 超长整数加法 高精度加法

    c++ 超长整数加法 高精度加法 实现思路 不能直接使用加法,因为int和long long都已超出最大数据表示范围 数据读入采用string类型,读入后将数据的每一位存储到vector中 vecto ...

  5. dubbo容错机制

    dubbo的容错机制 Failover Cluster(默认) 失败自动切换,当出现失败,重试其它服务器.通常用于读操作,但重试会带来更长延迟. Failfast Cluster 快速失败,只发起一次 ...

  6. Go写文件的权限 WriteFile(filename, data, 0644)?

    本文来自博客园,作者:阿伟的博客,转载请注明原文链接:https://www.cnblogs.com/cenjw/p/go-ioutil-writefile-perm.html 前言 go iouit ...

  7. Vue3.0系列——「vue3.0性能是如何变快的?」

    前言 先学习vue2.x,很多2.x内容依然保留: 先学习TypeScript,vue3.0是用TS重写的,想知其然知其所以然必须学习TS. 为什么学习vue3.0? 性能比vue2.x快1.2-2倍 ...

  8. SAP PP- OPK8生产订单打印 配置Smart form.

    OPK8 正常情况下是不可以配置Smart form 的 OPK8进入工单打印配置界面,选择Forms, 你会发现只有Script form 和PDF form(Adobe form)可选的,没有配置 ...

  9. 7.Spark SQL

    1.分析SparkSQL出现的原因,并简述SparkSQL的起源与发展. SparkSQL出现是因为关系数据库已经不能满足各种在大数据时代新增的用户需求.首先,用户需要在不同的结构化和非结构化数据中执 ...

  10. NC15975 小C的记事本

    NC15975 小C的记事本 题目 题目描述 小C最近学会了java小程序的开发,他很开心,于是想做一个简单的记事本程序练练手. 他希望他的记事本包含以下功能: 1.append(str),向记事本插 ...