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引腳都被引了出來

其他資源:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM