• CH579/CH573/CH53/CH57x/CH58x 固件下载,烧录


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

    本文使用以下芯片

    • CH577/CH578/CH579
    • CH571/CH573
    • CH581/CH583

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

    固件烧录

    ISP烧录

    ISP支持的方式

    • USB
    • UART

    ISP工具获取

    ISP的原理

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

    上电进入ISP升级的方式

    芯片 USB下载IO 串口下载IO(注1) 默认进ISP模式 IO 进入ISP检测时机 可选进ISP IO
    CH577F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH578F 不支持 PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH578M PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH579F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH579M PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH573X PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH573F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH571F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电时候 PB11 高电平
    CH571D PB10_D- /PB11_D+ PA8_RX/PA9_TX PB7 低电平 上电时候 PB11 高电平
    CH571K 不支持 不支持 不支持 不支持

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

    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是否有短路,短路现象,以及是否有按照官方的原理图进行设计.
    • 设备管理器没有任何动静:
      1. 上电时候ISP 没有检测到有效的 进入ISP模式的标志.
      2. 数据线可能是只能充电,不能当数据线用,一些劣质的"数据线",只有电源不能用于传输数据;
      3. 硬件要能够满足进bootloader下载的条件,比如CH577/578/579 bootloader>=2.8的情况下, 外部复位引脚的电容不能大于10nF,CH573/CH583系列必须要焊接高频32M晶体等.具体可参考ch579/ch573/ch57x 硬件设计

    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的电阻,大大降低这种风险.
    • UART一定要是 ttl的电平,切记不能使用RS232,虽然这是比较常识的问题,写这里就当凑字数吧,虽然大家不会犯这种低级错误.

    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引脚都被引了出来

    其他资源:

  • 相关阅读:
    20170809--JS操作Select备忘
    20160711--C# 委托的三种调用示例(同步调用 异步调用 异步回调)【转载】
    C# 内存建表备忘
    富文本编辑器 CKeditor 配置使用
    20160520—JS打分控件
    20160513--js 弹出窗口带有iframe控件 备忘
    chart 简单应用
    mvc 简单整理
    ObjectDatasourse 的绑定及显示
    GridView 详述
  • 原文地址:https://www.cnblogs.com/iot-fan/p/13498088.html
Copyright © 2020-2023  润新知