CH579/CH573/CH57x/CH583/CH58x 系列上手指南


[前言]

本文记录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

  • http://www.mounriver.com/

[工程创建]

工程的创建,也是从内部模板里面拷贝出来的代码,维护IDE的人不可能总是有最新的代码.所以无论如何,始终不建议自己创建新的工程,哪怕IDE说其多么的厉害.
建议大家直接使用wch官网下载的工程,找一个比较合适的工程修改即可,如果不知道如何选,联系他们,跟他们说清楚你要做什么产品之类,让他们帮你选,或者他们发一个给你.

[硬件设计]

参见CH579/CH57x 硬件设计
也可以按照上面资料获取里面,在WCH官网搜索对应的型号然后下载.

[固件烧录]

参见CH579/CH57x固件下载,烧录

关于在线调试

对于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,如果是仅仅为了调试,那就别浪费时间了