本文主要是对于wch ch57x,ch58x系列芯片的固件烧录方式进行说明

本文使用以下芯片

  • CH577/CH578/CH579
  • CH571/CH573
  • CH581/CH583
  • 其他CH5xx 系列芯片,仅供参考

阅读本文时建议同时参考 CH579/CH57x/CH582/CH573/CH571 硬件设计

固件烧录

ISP烧录

ISP支持的方式

  • USB
  • UART

ISP工具获取

工具说明

下载步骤

USB下载连接和步骤

ISP下载模式通过USB下载

  • USB识别需要装驱动,用到的是CH372的驱动,在安装WCHISPTool_Setup_exe时候,会自动安装该驱动,在isp识别后,设备管理器通常会出现一个USB Module 设备
  • 使用USB进行ISP是WCH 推荐的方式,包括批量生产.
USB下载上位机不识别?
  • 设备管理器没有"USB Module"设备: 重新安装wchisptool 工具,安装过程中会安装对应的驱动,或者直接安装CH372的驱动.
  • 设备管理器有"USB Module"设备,但是叹号: 在win7下可能会有设备管理器出现黄色叹号的问题,这通常是是win7没有打microsoft新版本数字签名补丁导致的,可下载相关的补丁安装:win7_64bit_update_KB3033929,或者关闭数字签名;
  • 描述符错误/无法识别的USB设备: 检查硬件设计,如USB是否有短路,晶体是否贴错(CH573/CH571/CH58x/CH59x 必须32M晶体),以及供电是否有按照官方的原理图进行设计,尤其要看VINTA引脚是否在1.05v附近.
  • 设备管理器没有任何动静:
    1. 上电时候ISP 没有检测到有效的 进入ISP模式的标志.
    2. 数据线可能是只能充电,不能当数据线用,一些劣质的"数据线",只有电源不能用于传输数据;
    3. 硬件要能够满足进bootloader下载的条件,比如CH577/578/579 bootloader>=2.8的情况下, 外部复位引脚的电容不能大于10nF,CH573/CH583系列必须要焊接高频32M晶体等.具体可参考ch579/ch573/ch57x 硬件设计

串口下载连接和步骤

image

ISP下载模式通过UART下载

  • 默认波特率为115200
    • CH577/CH578/CH579在bootloader2.8版本开始,支持1M和2M波特率下载
    • 新版本的CH571/CH573也支持1M和2M波特率下载
  • 如果选择了"串口免按键下载",芯片在上电时候 会额外等待40ms 等待串口下载握手,如果握手成功,就会继续等待下载
UART下载上位机不识别?
  • 跟usb下载一样,上电时候需要触发,如CH573F,默认是上电检测PB22,低电平有效,其他芯片见上面: 上电进入ISP升级的方式
  • UART 的TX 没有数据时候是高电平,通常是push-pull输出,这就存在对外部设备供电的可能, 而芯片进入isp模式又是上电时候检测,如果引文这种串口TX灌电,导致芯片没有有效断电产生上电复位,这就会导致进不去ISP下载模式,这种情况,临时可以TX,RX端串联2K的电阻,大大降低这种风险.
  • 检查硬件设计,如晶体是否贴错(CH573/CH571/CH58x/CH59x 必须32M晶体),以及供电是否有按照官方的原理图进行设计,尤其要看VINTA引脚是否在1.05v附近.
  • UART一定要是 TTL的电平,切记不能使用RS232,虽然这是比较常识的问题,写这里就当凑字数吧,虽然大家应该不会犯这种低级错误.
高波特率烧录失败
  • 低版本bootloader的芯片,不支持高波特率,只支持115200
  • 实际选用的串口不支持高波特率,比如CP2102 设置1Mbps的波特率,实际上是921600bps
  • 条件允许下,尽可能的用高性能的烧录串口芯片如CH343,CH910x,CP2102N等

ISP的原理

  • ISP烧录就是,芯片通过某些方式进入芯片内部预置的ISP升级程序,开启升级功能,然后与外部通信,然后通过相关的协议,完成程序区的擦除,写入,校验和相关的配置等一些列操作的过程.
  • wch的芯片,上电复位后,都会默认进入ISP,进行检测,是否进入ISP.

上电进入ISP升级的方式

芯片 USB下载IO 串口下载IO(注1) 默认进ISP模式 IO 进入ISP检测时机 可选进ISP IO(默认不支持,需要烧录时候选择,重新上电后才生效) 备注
CH577F/579F/573F/571F/571R/582F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
CH578F 不支持 PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
CH578M/579M/582M/583M PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平 CH58x 的USB2 也支持USB ISP
CH571K 不支持 PA15_RX/PA14_TX 不支持 不支持 不支持 串口免按键下载,上电时候默认等待40ms等待下载握手

注1: 芯片亦支持 在ISP检测时候,通过串口的命令检测(所谓的 "串口免按键下载"),但是这个过程非常短暂,通常只有几十ms.
注2: WCH的芯片,在flash 的0地址为0xffffffff时候(通常是空白的芯片),则上电会停留在ISP中,而不会跳转,所以全新的芯片上电后第一次会进bootloader,即使没有控制ISP io.

WCHISP 工具注意事项

  1. HEX文件和bin文件的处理问题:
  • wchisptool 工具可以下载bin文件和hex文件,但是最终都是转换为bin文件下载
  • 涉及到hex转bin 就存在当hex描述的内容不连续时候,数据填充问题, 对于ch57x/ch58x系列的芯片下载时候 wchisptool的处理方式是:其hex转bin在不连续的地方是填充是0x00,这和大多数的hex转bin的实现方式可能不太一样.
  • 仍然是wchisptool 的hex转bin下载的问题,对于hex如果不是从0地址开始的,wchisp的逻辑是从0地址开始填充0x00转成bin后再下载.
  • 鉴于上面两种方式, 建议客户在做ota,或者分布固件时候,用自己的工具,转换成从0地址起始的bin文件进行下载,从而避免不同的填充方式导致可能带来的校验问题.

其他下载方式

CH578M/CH579M使用 ARM-SWD下载

(仅支持ARM内核的CH579M/578M,不支持RISC-V的CH573/CH571)
其他诸如调试,或者在keil里面下载参考 https://www.cnblogs.com/iot-fan/p/14922920.html
芯片支持兼容ARM-SWD协议的一些工具已经测试的工具包括:

已经测试过的支持的工具
  • jlink
  • daplink
  • st-link
ARM-SWD下载注意事项
  • 对于ch577/ch578/ch579 只有芯片直接的bootloader版本在2.5以后,才能开启swd 成功,之前的版本不行
  • SWD可以用官方的ISP工具(需要V2.8版本以上)去手动打开,点击打开后,芯片之前的flash会被清空,然后芯片会自动软重启
  • SWD打开后,对应的IO不能被程序控制
  • 使用USB/UART下载后 SWD下载会自动关闭,如需要使用需要再次打开
  • 低功耗下,SWD会被禁用,导致芯片不能响应SWD,从而下载失败
  • 不是所有的芯片SWD引脚都被引了出来

其他资源:

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/iot-fan/p/13498088.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!