[前言]
本文記錄WCH 的CH57系列 CH58 系列的上手,資料獲取等.
本文乃至於本Blog只探討SOC類型的芯片,就是直接進行二次開發,或者說能同時跑用戶代碼的芯片,對於預燒firmware的芯片(如wch CH914x系列的芯片),不在本blog討論范疇
[芯片選型]
官網的選型表在http://www.wch.cn/products/category/63.html 這里只做個簡單的羅列,細節具體看官網的.
| P.N. | Core | Freq/Max | Flash | Ram | Dataflash | BLE | USB | ETH | ADC | UART | SPI | I2C | GPIO | VDD | Package | 備注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CH579 | ARM-M0 | 40Mhz | 250KB | 32KB | 2KB | 4.2 | 1H/D | 10M | 14*12bit | 4 | 1M/S+1M | / | 40 | 2.2-3.6 | QFN48_5x5/QFN28_4x4 | |
| CH578 | ARM-M0 | 40Mhz | 160KB | 32KB | 2KB | 4.2 | 1H/D | 10M | 6*12bit | 2 | 1M/S | / | 40 | 2.2-3.6 | QFN48_5x5/QFN28_4x4 | CH578F 沒有USB pin |
| CH577 | ARM-M0 | 40Mhz | 128KB | 16KB | 2KB | 4.2 | x | / | x | 2 | 1M/S | / | 20 | 2.2-3.6 | QFN28_4x4 | |
| CH573 | RISC-V | 60Mhz | 448KB | 18KB | 32KB | 4.2 | 1H/D | / | 10*12bit | 4 | 1M/S | / | 22 | 2.3-3.6 | QFN32_4x4/QFN28_4x4 | |
| CH571 | RISC-V | 60Mhz | 192KB | 18KB | 32KB | 4.2 | 1D | / | 6*12bit | 2 | 1M/S | / | 20 | 2.3-3.6 | QFN28_4x4 | |
| CH583 | RISC-V | 60Mhz | 448KB | 32KB | 544kB | 5.1 | 2H/D | / | 14*12bit | 4 | 1M/S+1M | 1M/S | 40 | 1.7-3.6 | QFN48_5x5 | |
| CH582 | RISC-V | 60Mhz | 448KB | 32KB | 32KB | 5.1 | 2H/D | / | 14*12bit | 4 | 1M/S | 1M/S | 40 | 2.3-3.6 | QFN48_5x5/QFN28_4x4 | |
| CH581 | RISC-V | 60Mhz | 192KB | 32KB | 32KB | 5.1 | 1D | / | 6*12bit | 2 | 1M/S | x | 20 | 2.3-3.6 | QFN28_4x4 | BLE5.0的協議棧比4.2的大一些,做OTA空間有些緊湊 |
參數備注:
- CH573/571/583/582/581 主頻跟官方手冊這里有差異,這里是官方例程代碼的實際CPU主頻,官方的手冊里面的20Mhz是由於flash比較慢,代碼放到flash里面運行時,綜合下來的運行速度;
- 不是所有手冊宣稱的型號實際都有貨,選用之前建議跟wch的業務溝通好,實際的供貨版本和封裝;
- 上述同樣封裝的芯片通常是可以Pin2Pin相互替換的,但是涉及到一些外設的引腳復用時,最好再三確認復用的引腳是否是兼容的,一個典型的就是PWM的引腳兼容.
- CH57*系列沒有I2C,如果要用,要軟件模擬.
芯片的軟件兼容性
在每一代的芯片中,其代碼是通用的,如果沒有用到一些某些芯片沒有的外設,固件是可以相互燒錄的:
- 如CH577的代碼可以直接燒錄在CH579中運行,不用做任何修改,同樣CH571里面正常運行的代碼燒錄到CH573上一定也能運行.
- 但是CH579的代碼想燒錄到CH577中運行,則必須保證程序中沒有用到一些僅僅在CH579才有CH577上沒有的外設.
[資料獲取]
直接官網搜索對應的型號:http://www.wch.cn/ ,再其官網的搜索框直接搜索芯片的對應型號,就會彈出相關的資料,WCH在這方面還是比較開放的,不像個別公司普通人連完整型號都拿不到.
獲取資料時候,要選用最高配置的芯片型號來獲取資料,比如CH577/CH578建議找CH579的;同樣CH571,建議找CH573的,本質上芯片沒有太大區別.
[開發環境]
CH577/578/579
- 官方的SDK僅提供KEIL的,至於其他環境的例程並沒有,原則上一切支持ARM-M0開發的環境都可自行適配,只是看自己去投入值不值得.
CH571/573/582/583
[工程創建]
工程的創建,也是從內部模板里面拷貝出來的代碼,維護IDE的人不可能總是有最新的代碼.所以無論如何,始終不建議自己創建新的工程,哪怕IDE說其多么的厲害.
建議大家直接使用wch官網下載的工程,找一個比較合適的工程修改即可,如果不知道如何選,聯系他們,跟他們說清楚你要做什么產品之類,讓他們幫你選,或者他們發一個給你.
[硬件設計]
參見CH579/CH57x 硬件設計 https://www.cnblogs.com/iot-fan/p/13458627.html
也可以按照上面資料獲取里面,在WCH官網搜索對應的型號然后下載.
[固件燒錄]
參見CH579/CH57x固件下載,燒錄 https://www.cnblogs.com/iot-fan/p/13498088.html
關於在線調試
對於BLE/USB相關的工程,如果你想要快點開發,建議先扔掉在線仿真工具,轉而使用串口日志的方式, 這幾乎是任何一家BLE的供應商的慣用調試方法.
WCH 的CH57x,CH58x系列例程里面,默認的串口日志輸出在UART1 PA9, 115200 波特率
[用於調試的APP]
BLE技術屬於標准的技術,通用的調試工具(能夠遍歷出所有的uuid並且)都可使用
- 安卓:
1.沁恆官網提供了一個安卓上的APP :http://www.wch.cn/downloads/BLEAssist_ZIP.html
2.當然很多人可能更習慣於使用Nordic的nrf-connect: https://github.com/NordicSemiconductor/Android-nRF-Connect/releases - IOS:
1.推薦lightblue - Windows:
1,如果是僅僅為了調試,那就別浪費時間了
