CSR蓝牙初始化流程

最近遇到acc on/off的蓝牙初始化失败:


所以总结下整个蓝牙初始化的流程(基于CSR 8811 module通过uart 和车机连接):

一.芯片上电成功后拉下8811 module reset pin  ->不是每个moudule都需要这么做

二.设置uart band rate为115200,,CSR一般先低速写出错率比较少,通过这个speed 芯片会自动识别出band rate

三.持续发送BCSP link establish建立过程,直到成功(分三个阶段),类似于三次握手

四.如果3 BCSP建立成功后,需要向芯片中写pskey

列举一些常用的pskey:

1.PSKEY_ANA_FTRIM 设置芯片晶振,根据不同芯片制造厂商来决定

2.CSR_PSKEY_ANA_FREQ 配置蓝牙核心固件与一个特殊的始终同一频率



3.PSKEY_UART_CONFIG_BCSP CSR 默认就是走的BCSP,但是要通过配置uart control flow也是通过此pskey


4.CSR_PSKEY_UART_BAUDRATE 此pskey要着重说一下,为什么前面都有了band rate,还需要重新设置呢?原因是:开始芯片会自动识别band rate,但是如果你想改芯片的pskey芯片还会认为是115200(之前的),所以你需要拉高速度,要重新配置pskey

各个速度可以参照我的另一篇文章

http://blog.csdn.net/xiaoxiaopengbo/article/details/50434721


pskey还有很多,不同的功能需要配置不同的pskey


五.写pskey成功后,暂时不会起作用,需要执行一下BCCMD protocol的warm reset command,chip回应ack后才能奏效

六.这时候芯片接受的data speed就按照921600去接收了,所以uart也要重新配置,设置为相应的波特率

七.做好步骤六后还需要重新建立BCSP linker

八.事已至此,下面就是一些交互的过程了

CSR蓝牙初始化流程_第1张图片


顺序可以自己看着调整,还有一堆HCI command的交互,就不在本文章讨论之内了


OK,做完一系列工作,OK,初始化成功

你可能感兴趣的:(初始化,蓝牙,BlueTooth)