前言
CW32 微控制器片上 FLASH 存储器有一部分区域用于存储 BootLoader 启动程序,在芯片出厂时已编程,用户可利用 BootLoader 启动程序提供的 ISP 模式,通过 UART 串口方便地实现对 CW32 微控制器片上 FLASH 主存储器的擦除和烧写。本应用笔记将介绍如何进入 CW32 微控制器 ISP 模式,以及所使用的 ISP 协议,并详细介绍支持的每个命令。
01
目标芯片进入 ISP 模式的方法
▼ 芯片有 BOOT 脚的流程
- 使芯片处于 RESET 状态
- 向芯片的 BOOT 引脚提供高电平
- 释放芯片的 RESET 状态
- 芯片进入 ISP 模式
▼ 芯片无 BOOT 脚的流程
- 使芯片处于 RESET 状态
- 向芯片的 RXD(SWDIO)提供 50KHz 的方波
- 释放芯片的 RESET 状态并延时 5ms
- 芯片进入 ISP 模式
02
ISP 模式工作流程
▼ ISP 模式工作流程图

当 CW32 微控制器进入 ISP 模式后,系统将等待串口接收命令。系统接收到命令后,将根据命令类型执行相 应的程序操作。
03
ISP 通信协议格式
▼ 数据传输要求
采用异步半双工通信方式,8 个数据位、1 个停止位、无校验位,初始速率为 115200BPS。
▼ 数据格式
协议以数据帧的形式进行交互,一个完整的数据帧由帧头单元、数据长度单元、数据体单元、CRC 校验单元 4 部分组成,如下图所示:
▼ 数据帧格式

• 帧头单元
1 字节长度,表示一个数据帧的开始,固定为 16 进制数 0x65。
• 数据长度单元
1 字节长度,表示数据体单元有多少个字节,取值范围为 0-255。
• 数据体单元
长度不固定,为实际的应用层数据 / 指令。
• 校验单元
2 字节长度,为帧头单元、数据长度单元及数据体单元所有数据的校验值。采用 CCITT 推荐的 16 位的 CRC-16/X25 算法 x16+x12+x5+1(0x1021),生成 2 字节的 CRC 校验和(低字节收发在前,高字节收发在后)。发送方必须根据要发送的数据生成 2 字节的 CRC 检验和,接收方收到完整的数据帧后,根据接收的数 据生成新的 CRC 检验和,如果新的 CRC 校验和与收到的校验和相等则表明该数据帧有效,否则向发送 方回送“校验错”的应答。
▼ 应答标志
本协议采用半双工方式通讯,作为命令的主动发起方,需要收到被动接收方返回的应答标志后,才可进行后 续的操作。接收方发送应答的数据体单元的第一个字节为应答标志。应答标志编码如下表所示:
▼ 应答标志编码定义

▼ 收发数据示例
收发数据示例:

04
ISP 模式命令集
下面的表 4-1 列出了支持的 ISP 命令:
▼ ISP 命令集


以上是武汉芯源CW32自举程序中使用的ISP协议
-
微控制器
+关注
关注
49文章
8890浏览量
165855 -
单片机
+关注
关注
6078文章
45589浏览量
673916 -
mcu
+关注
关注
147文章
19160浏览量
404645 -
武汉芯源
+关注
关注
2文章
67浏览量
755
发布评论请先 登录
CW32系列微控制器的时钟源和定时器选项介绍
关于CW32 互补PWM 程序调试的疑问求解
使用芯源CW32 MCU来实现低功耗模式下的RTC定时唤醒功能
基于芯源CW32 MCU的LED闪烁示例及代码分析
基于武汉芯源CW32F030C8T6直流无刷电机评估开发板的设计方案
基于芯源CW32 MCU智能家居照明控制系统设计与实现
【活动评测】基于CW32的wegui实验+代码
祝贺武汉芯源半导体CW32生态社区荣获立创开源硬件平台"优质合作社区"荣誉!
武汉芯源半导体CW32L010在两轮车仪表的应用介绍
应用笔记(二)| 武汉芯源CW32自举程序中使用的ISP协议
评论