蓝牙
文章平均质量分 91
elomio
这个作者很懒,什么都没留下…
展开
-
安卓蓝牙sco vohci设计实现
大家都知道, sco/esco可以分别通过pcm/i2s和vohci来支持. 最近, 某厂因为惯性设计, PCB线路图漏了PCM连接并不改硬件, 所以只能要求支持vohci. 再加上公司自身也要做好这种储备, 所以就在安卓平台上开发了vohci功能. 除了安卓需要开发这个功能外, 蓝牙芯片本身也是需要支持才可以的. 目前验证过博通/RK/AIC蓝牙芯片支持. RTK看驱动代码应该以前是开发过的, 提供的思路也很好. 但不知为何,现在RTK回应是不支持了…原创 2022-10-06 12:52:29 · 2340 阅读 · 1 评论 -
RK3588 EVB1蓝牙休眠唤醒调试
RK3588 EVB1蓝牙休眠唤醒调试rk平台支持二级休眠,即SOC大部分电都关了,只留下唤醒源需要的电.rk3588 evb1因为蓝牙相关的部分大部分IO没有接到PMU电源域,所以调试起来需要另外配置,以方便快速验证.下面,我们以博通AP6275p芯片为例, 分析下快速验证蓝牙休眠唤醒需要的设定(前提是蓝牙已经正常bringup能工作的情况下(废话,默认SDK蓝牙肯定能工作了)).一. DTS全部配置为了方便只要答案的同学, 这里直接给出配置:Subject: [PATCH] dts:arm6原创 2022-05-14 18:04:30 · 4446 阅读 · 2 评论 -
BLE 定向广播和privacy mode的纠缠
bluetooth BLE privacy mode Directed advertising 蓝牙 隐私 定向广播 回连原创 2022-05-07 01:57:13 · 2477 阅读 · 6 评论 -
Rockchip安卓11.0 16k wbs msbc HFP PCM语音通话支持
Rockchip安卓11.0 16k wbs/msbc HFP PCM语音通话支持调试平台: 安卓11.0, rk3328, 博通ap6212芯片, HFP 8K已经调通的情况下.SDK修改支持16k wbs/msbc HFP PCM语音注意点如下:1. bluedroid(system/bt)博通方案中, ESCO_DATA_PATH_PCM 为1代表蓝牙芯片作为pcm master, 6作为pcm slave.因为Host系统作为pcm master, ap6212作为slave. 默认使用H原创 2022-01-10 21:36:32 · 3053 阅读 · 4 评论 -
CSR CVC4.3.1消回声调试向导
3 Tuning Overview Figure 3.1: 调试界面调试步骤:1. Tuning Preparation -》 2.Objective Measurement (optional) -》 3.Receive Path Tuning -》4.Send Path Tuning -》5.Fine-Tuning备注:以下的调...原创 2020-10-08 12:27:08 · 1191 阅读 · 0 评论 -
HCI 流控
HCI 流控这篇主要说明HCI流控(不是串口流控). 内容主要来自core spec V4.2. Vol 2 Part E, 第四节 HCI Flow Control. P770.名词: CT: controler当Remote device不回应ACL数据时, HCI流控是用来避免CT端ACL数据溢出缓冲区(buffer). The Host manages the data buffers of the Controller. 对于Primary Controller, packet based原创 2020-06-02 18:52:58 · 412 阅读 · 0 评论 -
Bluedroid线程封装和reactor原理
Bluedroid线程封装和reactor原理ps:看这篇之前,如果对bluedroid底层数据收发不了解的,可以看这里(我这边是原创,所以就不想抄了):蓝牙重启case之:hardware errorBluedroid协议栈BTU线程处理HCI数据流程分析Bluedroid线程和原始的posix线程有点不一样. posix线程中, 一般使用pthread_create创建一个线程, 然后在线程函数中跑一个while死循环, 处理各自的业务逻辑.传统上, 每个线程处理函数都需要单独编写,并且各不相同原创 2020-06-01 13:15:22 · 275 阅读 · 0 评论 -
Bluedroid HCI初始化流程
Bluedroid初始化流程1. bluedroid init初始化这里主要是从JNI调用下来的, 主要创建了一个stack_manager线程, 然后event_init_stack()就是在stack_manager线程中完成的.主要新增线程: stack_managerbte_main_boot_entry()流程, 这里主要是各个模块回调函数的初始化.2. Bluedroid Enable功能这部分主要是bluedroid使能部分, 也是从JNI调用下来的.主要新增线程:线程:原创 2020-05-26 08:58:28 · 658 阅读 · 0 评论 -
一图读懂BLE4.0广播和连接数据结构
写在前面: 网络上介绍BLE ATT和GATT数据结构的文章的很多, 但大部分都分散在LL,L2CAP,ATT,GATT各层介绍, 各层之间是文本形式串联, 不够直观.所以, 此篇主要目的, 是用一张图表串联各层数据结构, 并给出实例. 以尽量做到简单易懂, 清晰明了.BLE4.2和5.0结构类似, 掌握4.0的基础结构, 后面的版本就容易理解了.如有问题, 请不吝提出!本文参考文章...原创 2019-04-21 13:19:54 · 724 阅读 · 0 评论 -
高通QCC 300x BLE初始化流程图
以下是用纸张画的, 如果大家可以用其他工具, 画类似这种图, 欢迎推荐. 我尝试过用流程图, 脑图, 或者UML图, 都没成功.原创 2019-03-25 23:27:34 · 1560 阅读 · 0 评论 -
高通CSR QCC300x i2s和AudioCodec 输出切换
一. 以A2DP为例, 并仅分析SBC情况lib库中的MusicConnectAudio函数申请local_config内存, 初始化local_config参数InitMultiChannelParams(&(local_config->mch_params));决定采样频率DECODER-&am原创 2018-12-10 21:50:43 · 3455 阅读 · 4 评论 -
高通CSR QCC300x和RDA 5856软件音频流走向和系统架构
前几天有朋友问, CSR和RDA软件, 假设在上次用一个while(1), 会不会死掉; 另外, A2DP音乐流数据是如何到DSP的. 还有CSR和RDA CPU架构是如何? 这些都是不错的问题, 因为这对于学习别人成熟产品系统架构有帮助.1. 上层使用while(1)会不会死掉.分为两方面来讨论, 一方面是CSR, 另一方面是RDA, GO!方法: 当音乐开始播放后, 进入while(...原创 2018-12-11 01:52:02 · 1841 阅读 · 0 评论