蓝牙芯片FAQ

前言:

针对蓝牙芯片的功能进行讲解,分为下载烧录外设部分蓝牙功能,包含芯片【CH57x/CH58x/CH59x/CH32V208】;

一、下载烧录

CH57x/CH58x/CH59x标准下载方式有USB/串口。下载的GPIO和BOOT引脚参考:

系列 芯片 USB下载IO 串口下载IO(注1) 默认进ISP模式IO(注3) 进入ISP检测时机 可选进ISP IO(注4) 备注
ch57x_gen1 CH579M/578M/579F/577F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电复位后 PB11 高电平  
  CH578F 不支持 PA8_RX/PA9_TX PB22 低电平 上电复位后 PB11 高电平  
ch57x_gen2 CH573F/571F/571R PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电复位后 PB11 高电平  
  CH571K 不支持 PA15_RX/PA14_TX 不支持 上电复位后 不支持 串口免按键下载,上电时候强制等待40ms下载握手
ch58x_gen1 CH583M/582M/582F PB10_D- /PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电复位后 PB11 高电平 CH58x 的USB2 也支持USB ISP
ch58x_gen2 CH585M/584M PB10_D-/PB11_D+ PA8_RX/PA9_TX,PA15_RX/PA14_TX PB22 低电平 上电复位后 PB11 高电平 ch585 的usb2 也支持烧录
  CH585F/584F PB10_D-/PB11_D+ PB12_RX/PB13_TX,PA15_RX/PA14_TX PB22 低电平 上电复位后 PB11 高电平 ch585 的usb2 也支持烧录
  CH585C PB10_D-/PB11_D+ PB12_RX/PB13_TX,PA15_RX/PA14_TX PB22 低电平 上电复位后 PB11 高电平  
ch59x_gen1 CH592X/592F/592A/591F/591R PB10_D-/PB11_D+ PA8_RX/PA9_TX PB22 低电平 上电复位后 PB11 高电平  
  CH591D PB10_D-/PB11_D+ PA8_RX/PA9_TX PB7 低电平 上电复位后 PB11 高电平  
  CH592D PB10_D-/PB11_D+ PB12_RX/PB13_TX PB15 低电平 上电复位后 PB11 高电平 部分GPIO与CH591D不兼容

SWD功能的下载和仿真一般不建议使用,因为低功耗功能无法使用仿真,且加断点会导致无线部分的运行异常。

BOOT脚默认是PB22,可以选择配置为PB11(CH582),该引脚仅在上电瞬间生效,上电完成后是作为通用GPIO使用。

RST引脚默认是PB23(CH582),配置PB23为RST功能需要在ISP工具进行使用“使能RST作为手工复位输入引脚”,配置后拉低会执行复位操作。如果需要PB23作为通用GPIO,则将下载配置选项取消勾选。

二、基本外设

1、ADC

ADC测试需要根据实际可测电压或者高精度电压选择增益,误差相对比较小,在10mv以内,如果需要更加精确的采集值,可以使用差分方式采集电压。

ADC功能的汇总博客参考:

ADC- - SweetTea_lllpc - 博客园

CH573 CH582 CH579外设ADC例程讲解 - WCH蓝牙应用分享 - 博客园

2、FLASH

Codeflash:

  • 加扰:Codeflash读、写经过内核,会进行加解密(写会加密,读会解密)。擦不会进行加密。因此先擦再读会只解密不加密,这样读出来的数据a9 bd f9 f3,实际上是擦除成功的。

Dataflash:

默认例程占用:OTA标志:0x7000;BLESNV:0x7e00。具体参考:沁恒risc-v蓝牙芯片的flash使用注意点 - JayWell - 博客园

3、GPIO

①中断:可用于GPIO中断引脚:PA0-PA15、PB0-PB15、PB22、PB23。注意点:不建议同时使用PB22、PB23与PB8、PB9的GPIO中断功能。

GPIO中断唤醒可以参考PM例程。

②上电电平:PA12上电会有40ms的高电平,如果对上电GPIO状态有要求,避免使用该引脚。

4、IAP

5、PWM

6、SPI

SPI收发代码建议参考:

CH58x/59x SPI0代码参考 - SweetTea_lllpc - 博客园

7、TMR

捕获:TMR定时器捕捉(Capture) - SweetTea_lllpc - 博客园

8、TOUCH

触摸功能需要硬件支持,同时提供软件和配套上位机,建议跟原厂工程师联系获取。

9、UART

睡眠结合UART运行,需要注意先唤醒再接收数据。芯片通过宏开启睡眠。在接收数据之前将串口模式切换为GPIO,当有数据过来,GPIO会产生由高电平到低电平的信号,可以由这个信号作为判断,触发GPIO中断从而唤醒。唤醒后将GPIO再切换为串口来接收数据,此时需要注意在lowpower函数中置一个标志进行退出睡眠,否则又无法接收到数据了。接收完成后再切换为GPIO进行判断下一次是否有数据过来从而唤醒。

 

三、蓝牙

1、主机

①服务枚举:

建立连接由主机发起,发起后需要根据UUID枚举handle值,根据handle值进行数据的收发,枚举handle值建议参考:

蓝牙BLE主机Central讲解三(服务枚举) - SweetTea_lllpc - 博客园

②数据收发:

数据收发是比较多用户遇到的问题,因此描述具体的流程。

  1. 枚举handle值,见①;
  2. 调用发送接口函数,主机发送接口函数为write,从机发送接口函数为noti。
    • write需要填入需要准备发送通道的handle值,然后直接调用write函数即可。write又分为write commond和write no response,接口函数在库中都有;
    • noti,需要主机先使能cccd,或者从机自己使能cccd,cccd类似一个使能位,使能成功后才可以发送数据。在使能成功后,调用noti函数可以发送数据;
  3. 两端收到数据,会进入回调函数,在回调函数接收数即可:CH573 CH582 CH579蓝牙从机(peripheral)例程讲解五(蓝牙从机使能通知) - WCH蓝牙应用分享 - 博客园
  4.  

 

posted @ 2025-03-19 10:59  SweetTea_lllpc  阅读(12)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示