最近遇到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

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

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

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

CSR蓝牙初始化流程相关推荐

  1. Android博通BCM libbt-vendor.so 分析蓝牙初始化流程

    一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍. 第二篇:Transp ...

  2. 微信小程序使用蓝牙连接设备流程

    微信小程序使用蓝牙连接设备流程 小程序使用蓝牙连接设备介绍 使用到的api 流程: 初始化蓝牙模块 wx.openBluetoothAdapter wx.openBluetoothAdapter({ ...

  3. 经典蓝牙 蓝牙连接 - 从AIR LOG和HCI LOG分别分析蓝牙连接流程

    1.目录 文章目录 1.目录 2.LMP连接 3.从HCI LOG分析蓝牙连接流程 1.HCI_Inquiry 1.1 命令参数解析 1.1.1 LAP IAC 1.1.2 Inquiry_Lengt ...

  4. Linux内核网络栈1.2.13-网卡设备的初始化流程

    参考资料 <<linux内核网络栈源代码情景分析>> 网卡设备的初始化 本文主要描述一下网卡设备的整个初始化的过程,该过程主要就是根据设备的硬件信息来获取与传输网络数据,注册相 ...

  5. 开机流程简介--init 处理系统初始化流程 (/etc/rc.d/rc.sysinit)

    init 处理系统初始化流程 (/etc/rc.d/rc.sysinit) 还记得上面提到 /etc/inittab 里头有这一句' si::sysinit:/etc/rc.d/rc.sysinit ...

  6. 关于Flutter初始化流程,我必须告诉你的是...

    作者:闲鱼技术-然道 1. 引言 最近在做性能优化的时候发现,在混合栈开发中,第一次启动Flutter页面的耗时总会是第二次启动Flutter页面耗时的两倍左右,这样给人感觉很不好.分析发现第一次启动 ...

  7. linux csr蓝牙驱动,csr4.0蓝牙适配器驱动下载

    csr4.0蓝牙适配器驱动是一款非常好用的蓝牙驱动程序,它可以帮助用户轻松解决蓝牙无法正常连接的问题,如果你的电脑没有蓝牙的支持,将会造成所有功能都无法正常使用的情况,这款驱动正好能够帮助你解决麻烦. ...

  8. AB1601蓝牙初始化注意事项

    在使用中碰到生成二维码时死机的现象,经发现是由于开机时,后台进行了蓝牙初始化操作,初始化操作的完成是异步事件通知的.在初始化完成之前,调用了二维码生成的代码,导致在二维码生成的过程中,又进行了蓝牙初始 ...

  9. SpringMVC源码剖析(三)- DispatcherServlet的初始化流程

    我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面.为了更好的理解上面这个过程,你需要学习关于Servlet生命周期的三个阶段,就是所谓的"init-servic ...

最新文章

  1. Spring Boot 2.x基础教程:多文件的上传
  2. Spring Security实现登录权限控制,记住我等功能
  3. 算法 | RASAC 入门
  4. SPCS 2021 开启征稿 | 第二届信号处理与计算机科学国际学术会议
  5. python入门html_python-html入门
  6. 用fuser或者lsof解决无法umount问题(device is busy)
  7. python主线程执行_python主线程与子线程的结束顺序实例解析
  8. 计算机应用可分为哪两类,计算机应用简答题
  9. python4.2_python4.2参数传入
  10. rvm,ruby的安装
  11. 电池供电设备增加高精度库仑计
  12. a标签点击中文文件名乱码_a标签文件下载文件名乱码问题
  13. TestStand自定义报表生成-添加列
  14. 对文件生成MD5文件配置表
  15. 怎么看计算机的硬盘容量,Win7怎么看硬盘大小 如何看电脑硬盘大小
  16. 资源教程[外贸人zencart自助建站视频教程]:第四课(5)zencart更换模板
  17. 走进音视频的世界——剖析exo播放器架构
  18. 计算机键盘灯光怎么关闭,笔记本怎么关键盘的灯_笔记本电脑关闭键盘背光的步骤-win7之家...
  19. 《大象:thinking in uml 》(第二版) 11章 系统分析 3-4节 用例实现、软件架构和框架
  20. mac——清理磁盘空间

热门文章

  1. android分辨率选择,安卓Android手机屏幕壁纸分辨率选择技巧
  2. godaddy mysql不存在_Godaddy免费空间问题及解决方案总结
  3. 利用Django创建简单app
  4. [机器学习] 衡量线性回归效果的评价指标: R-squared 和调整R方
  5. kws 命令词唤醒介绍
  6. java实现黄金队列
  7. 信用卡有很多好处,远不止解决你燃眉之急这么简单
  8. 国内首部创业纪实电影《燃点》进校园:如何靠近成功的2%...
  9. 【猿码】java swing实现喜羊羊与灰太狼推箱子游戏附带视频开发教程可做为Java毕设大作业
  10. unity简单技能系统