- 博客(129)
- 资源 (28)
- 收藏
- 关注
原创 BES2300x笔记(34) -- Audio Developer工具详细使用说明
哈喽大家好,这是该系列博文的第三十四篇~ 篇~<<【系列博文索引】快速通道 >>一、 前言在对蓝牙通话相关的回声、降噪等算法进行调试时,有时我们需要把算法处理前后或者整个SCO链路的数据dump出来,对比算法处理前后的效果,再进行分析调试;BES的工程里有一个专用的audio_dump模块,提供了相关的接口,同时搭配Audio Developer工具即可dump出我们需要的数据。二、 使用工具Audio Developer v0.3.5(版本会持续更新);三、 软件对应修改
2021-02-26 20:12:36
2549
16
原创 BES2300x笔记(37) -- 信令模式与非信令模式
哈喽大家好,这是该系列博文的第三十七篇~ 篇~<<【系列博文索引】快速通道 >>一、前言蓝牙测试模式主要分为信令模式(signaling mode)和非信令模式(nosignaling mode):1)信令模式是指通过蓝牙综测仪连接蓝牙进行射频测试,主要的综测仪有agilent n4010,RS CBT ,ANRITSU 8852;2)非信令模式是指通过频谱仪或者其他射频测试仪直接测试蓝牙射频,主要的仪器有cmu200,iqflex pxi3000等;二、BES平台的测试模块
2021-02-25 20:47:50
6450
7
原创 BES2300x笔记(33) -- 通话音量、回声与降噪调试
哈喽大家好,这是该系列博文的第三十三篇~ 篇~一、前言一次心血来潮,使用正在开发的蓝牙耳机跟媳妇交流感情,正说着,媳妇那边却生气了,遂问原因,她说我吐字不清晰,声音又小,没一点子诚意!W.T…我明明诚意满满,难道是耳机的上行通话有问题?我赶紧换回手机,一顿口吐莲花操作,媳妇那头才消了气。 二、言归正传1、声音小打开BES的工程,在tgt_hardware.h中上行通话音量的宏CODEC_SADC_VOL默认是12,也就是对应的22dB;如
2021-02-24 20:35:46
3617
12
原创 BES2300x笔记(31) -- ANC调试环境搭建
哈喽大家好,这是该系列博文的第三十一篇~ 篇~<<【系列博文索引】快速通道 >>以下内容基于原厂提供的文档进行整理0、前言首先,在声学消音室环境下,使用AP搭建好如图的测试平台:
2021-02-02 20:05:17
2758
19
原创 BES2300x笔记(30) -- ANC降噪原理与通道配置
哈喽大家好,这是该系列博文的第三十篇~ 篇~ <<【系列博文索引】快速通道 >>一、前言最近赶项目,一直是996的状态,感觉时间都不够用了,连偷懒的时间都没有~~1024还在加班,今天就把ANC安排上吧,这一篇我们就来说说ANC调试的流程和相关文档。二、调试笔记1. 软件部分
2020-10-24 23:28:29
6380
24
原创 BES2300x笔记(4) -- TWS组对与蓝牙配对(Peer or Pair傻傻分不清)
哈喽大家好,这是该系列博文的第四篇~ 篇~ 转载文章,请注明出处哦<<【系列博文索引】快速通道 >>首先上一个链接:TWS耳机火遍华强北!为何干不过苹果AirPods?一、前言看到有“道友”在评论区留言:对TWS组对、BT配对以及回连流程部分很迷糊,那这第二篇我们就来说说BES平台的相关流程和接口。(PS:蓝牙基础部分就不再赘述了,网上有很多资料可以参考)
2020-09-22 19:43:29
9531
54
原创 QCC300x笔记(0)-- 系列博文索引
博文索引关于作者哈喽大家好,我是书哥Sugar, 从事蓝牙行业风雨数载,接触过BC5/BC7/QCC300x/QCC512x系列芯片,对平台的框架和开发有一些些自己的心得。由于官方提供的文档大多偏概述性,且全是英文,无疑增加了学习与开发的门槛,打击了俺们的自信心。这个【笔记】系列是作者在学习和开发中的调试积累(血泪史T^T),希望能帮助到正在学习或者开发QCC3000系列的“道友”们。该系列会不断更新,如果作者没有偷懒的话~“道友”们,如果有任何问题或者建议,欢迎在评论区留言或者私信哦,我看到了会及
2020-07-03 17:57:59
1000
转载 BES2300x笔记(1) -- SDK代码架构与Battery模块
哈喽大家好,这是该系列博文的第一篇~ 篇~首先上一个链接:参考链接一、前言拿到恒玄的SDK源码之后,结合文档花了一些时间研究,这篇就先介绍下代码的框架和模块之间的解耦处理。
2020-07-03 17:45:36
11437
32
原创 QCC512x/302x笔记(1)-- qcc5124芯片开发入门
哈喽大家好,这是该系列博文的第一篇~ 篇~ <<【系列博文索引】快速通道 >>QCC512x/302x笔记(1)-- qcc5124芯片开发入门
2020-07-03 16:33:31
2832
1
原创 QCC512x/302x笔记(0)-- 调试笔记索引
哈喽大家好,我是书哥Sugar, 从事蓝牙行业风雨数载,接触过BC5/BC7/QCC300x/QCC512x系列芯片,对平台的框架和开发有一些些自己的心得。由于官方提供的文档大多偏概述性,且全是英文,无疑增加了学习与开发的门槛。所以作者希望能通过这个【笔记】系列,帮助到正在学习或者正在开发QCC平台的“道友”。
2020-07-03 16:32:42
2348
原创 QCC512x/302x笔记(3)-- 只改一行代码,实现串口输出调试log
犹记得,在使用CSR/QCC3000系列研发产品的时候,通过配置IDE的属性,可实现在线调试,方便又实用。但是到了QCC3020/512x系列,这种方式并没有被沿用,而是采用了fw_live_log,实际测试发现新的方式不太稳定,特别log比较多的时候。
2020-06-30 23:29:12
3124
1
转载 nRF52832 — __attribute__((section(x))) 使用详解之Nordic观察者模式
1、attribute((section(x))) 使用详解无论是GNU还是ARM的编译器, 都支持 __attribute__所指定的编译属性,这里着重讲解一下在KEIL 环境下__attribute__中的section的使用方法2、BLE事件观察者模式nRF5 SDK从版本14开始,对事件回调机制做了更新,引入了观察者模式,以解耦不同BLE Layer对BLE事件的回调函数。实现这套机制用到了Flash的段(Section),将RAM中的函数调用与Flash中的段操作结合到一起,这个想法很新颖
2020-06-30 21:50:22
1094
原创 CSR867x — 如何修改BLE的蓝牙地址
姐妹篇:CSR867x — 如何修改BLE蓝牙设备名称最近遇到这样一个需求,根据经典蓝牙的地址修改某些字段来设置BLE的蓝牙地址,比如下图这样:实现需求本来以为是很简单的需求,就卡卡一通改:1、 首先获取经典蓝牙的地址;2、 然后修改第一个字节;3、 再通过接口设置回Controller;结果无论怎么设置地址类型和修改接口的传参,BLE的地址总是跟经典蓝牙的地址一样,无法实现上述...
2020-04-28 10:14:44
1468
转载 QCC512x/302x笔记(2)-- usb驱动安装和烧录指引
1、USB debug驱动安装1)准备工作a)WIN7/WIN8/WIN10操作系统(最好是WIN10,实测WIN7会不稳定);b)QCC512x/QCC302x开发板一块,可以从某宝购买,USB Type-C连接线一条;c)安装ADK6.3以上版本[ADK_QCC512x_QCC302x_WIN_6.3.1.154.exe]和Bluesuite 3.0以上版本[InstallBlueSu...
2020-03-07 08:31:07
6177
11
原创 QCC300x笔记(5) -- 外部Flash的读写操作
QCC300x是使用外部Flash片子,使用外部flash的好处就是成本下来了,大家都知道,CSR的片子一直是很贵的,这样的片子就只能对成本要求不高的项目优先,在使用外部Flash时,我们一般默认使用32M(因为官方配置就是这个参数,会让使用方便的多),然而我们在使用过程往往使用不了这么大的空间,现在我们就利用起来,一起来学习对外部Flash的应用。
2019-08-31 12:13:54
1637
5
原创 QCC300x笔记(8) -- 从一个客户需求说说传统蓝牙的PBAP
写在前面:客户提出一个新需求,来电时根据号码获取联系人名称,显示在UI上;1、首先从协议文档中查找,有关的只有VCardList和VCardEntry,协议中有一张图,vCardList的内容中包含了name,如下图:
2019-05-26 12:42:17
1056
原创 CSR867x — 从“吃一堑”中说说我对老外做事的看法
写在前面:笔者负责一个TWS音箱(CSR8670)的项目,需要通过BLE连接IOS版的APP。在项目开发过程中,经历了你来我往,各种需求的添加,各种问题的解决~总算一步步走过来了,包括与项目的IOS版APP(国内开发)的调试对接也都非常顺畅。在项目接近尾声的时候,客户想把软件用到另外一个项目(称为项目B)中,于是直接对接了项目B的IOS版APP(老外开发),发现连接不了~咯咯了。项目B的IOS版APP(老外开发)是跟旧版软件对接的,连接和通信都没有问题,于是笔者就拿到旧版软件,对比新旧软件的差异。结
2019-04-23 09:07:07
1465
原创 CSR867x — 如何修改蓝牙设备名称
写在前面:最近有很多人问到,CSR的ADK中如何修改蓝牙设备名称,这里我针对平时的操作做个简单总结;问:把大象放冰箱需要几步?答:3步。对的,我们这里修改蓝牙设备名称,也是需要3步:1、调用lib库中connection接口,通过HCI指令修改底层协议栈的蓝牙名称:ConnectionChangeLocalName(nameLength, nameData);2、使用PSkey存储该设备名称,下次开机只需从PSkey读取即可:memcpy(at_buff, nameData, nam
2019-03-02 16:49:01
5267
原创 CSR867x — IOS设备搜索到的BLE外设名称与实际名称不相符的问题分析
写在前面:在开发蓝牙音箱时,遇到一个问题,修改BLE的设备名称匹配用户的APP(指定蓝牙名称连接),但是BLE设备名称改变之后不会立即变化,要连接一次才会变化。参考博文1参考博文2问题描述:修改BLE的设备名称,复位后发现IOS设备搜索到的还是之前的名称,优化了代码后还是存在问题,用一部安卓手机和一部IOS手机同时搜索,安卓手机搜索到的设备名称确实是修改之后的,说明广播数据是没问题的,推测应该是IOS手机的缓存问题。
2019-01-16 10:06:55
3415
原创 CSR867x — Source支持一拖二时codec配置的优化
写在前面:CSR的平台做Source,可以支持一拖二的场景;但在一拖二时两个从机必须配置为相同的codec,且只能为SBC, FASTSTREAM和 APTX其中一种。局限于平台的资源,一拖二时两个从机的声音会有不一致,一快一慢。1、参考文档,第5章节有关dual stream的部分;2、Source端会根据自身支持的codec,针对每一个从机协商出对应的codec类型,当两个从机协商的codec不一致时,就需要reconfig;原生代码中,重新配置时还是无法达到从机codec一致的结果,所以就会出
2019-01-16 10:05:36
2160
18
原创 CSR867x — 蓝牙音频发射器方案(支持USB、模拟和SPDIF)
写在前面:使用BC5和CSR8670的芯片,分别实现蓝牙音频发射器方案;1、选择ADK的source工程编译下载,然后参考对应的source用户手册(BC57E687C和CSR8670);2、注意USB模式时,硬件上要把BC5:VDD_USB CSR8670:VBUS_CHG_5V脚接高;3、通过用户手册可以看到BC5支持USB和analogue两种模式,而CSR8670支持USB,analogue和SPDIF(TOSLINK光纤)三种工作模式,如下:
2018-12-19 17:42:24
5325
原创 QCC300x笔记(9) -- 从一个客户问题说说传统蓝牙的AVRCP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 作 者:ZHS(文化人)XX 联系方式:文章末尾Chat快问(或进群:471144274)XX 版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了XX 要说的话:作者水平有限,难免有不足之处,...
2018-11-27 10:54:09
1761
3
原创 CSR867x — 如何添加一个GATT Server
参考链接:https://blog.csdn.net/wzz4420381/article/details/783594811、tools\include\profiles\BlueLab-7.0.3-Release路径下,编写.dbi和.h2、.h文件
2018-10-17 21:10:44
1584
6
原创 CSR867x — 如何实现两种指示状态共存的效果
写在前面:玩过CSR平台的都知道,ConfigurationTool里可以针对不同的状态和事件配置不同的LED指示,非常方便,但是代码里同时只支持一种状态,如果客户有两种同时指示的需求,怎么做呢?且听我慢慢道来~通过对CSR8670的ADK学习,有以下发现:1、处在某种状态时,可以触发事件的指示,事件指示结束后会继续状态,此时会刷新状态,出现短暂显示异常,如下图;(这种情况可以实现短暂的两种指示状态共存的效果,但可能还是满足不了客户的需求)
2018-10-17 12:49:46
790
2
原创 nRF52832 — 基于HID实现鼠标的左击、右击和滚轮
文章索引1:https://blog.csdn.net/Augusdi/article/details/4177221文章索引2:https://blog.csdn.net/dfysy/article/details/5914863文章索引3:https://blog.csdn.net/weixin_40204595/article/details/81179361文章索引4:https://devzone.nordicsemi.com/f/nordic-q-a/7703/what-can-i-
2018-08-26 15:46:51
5201
原创 CSR867x — Speaker Equalizer曲线调试笔记
一般曲线如下图:低频增强,3K~4K是人声(增强),高频是乐器的声音要衰减,不然会很刺耳
2018-08-26 15:21:33
1666
转载 MFC学习笔记 — VC++中自动检测串口热插拔事件
文章出处:(转载文章,如有不妥,通知后我会立即删除)文章索引1文章索引2这里主要利用Cwnd的ON_WM_DEVICECHANGE消息来处理。Windows操作系统发送WM_DEVICECHANGE有些限制:1、只有顶层窗体的程序才能收到这个消息;2、在OnInitDialog中添加注册消息;//注册消息DEV_BROADCAST_DEVICEINTERFACE d...
2018-08-17 20:22:05
1405
转载 BLE蓝牙协议 — BLE连接建立过程梳理(三)
文章出处:iini01的博客(转载文章,如有不妥,通知后我会立即删除)同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快,有时候连起来又很慢?Master是什么?slave又是什么?什么又是Connection event和slave laten...
2018-07-25 13:14:27
4427
1
原创 MFC学习笔记 — C++如何执行.exe文件
写在前面:有时可能会遇到执行.exe文件的需求,或者通过执行.exe+参数实现更多功能,那么如何启动.exe文件呢?这里做一个简单的演示:浏览:打开.exe的文件,包含路径运行:执行.exe文件
2018-07-25 12:49:05
1553
原创 MFC学习笔记 — 看小白如何实现音乐播放器(USB-HID 声卡 wav播放)
1、USB设备的枚举和读写:参考链接1:https://download.csdn.net/download/yan_junm/5245418参考链接2:https://download.csdn.net/download/u014266675/9838900我把代码中PVN改为了usagepage,因为PVN会有多个设备,而usagepage可以确保只有一个;获得usagepage需要添加如下代码:
2018-07-19 21:18:37
2057
原创 QCC300x笔记(4) -- 蓝牙地址的规则
蓝牙地址分为三部分:LAP(24位地址低端部分)、UAP(8位地址高端部分)和NAP(16位无意义地址部分)。其中,NAP和UAP是生产厂商的唯一标识码,必须由蓝牙权威部门分配给不同的厂商。而LAP是由厂商内部自由分配。
2018-07-19 18:52:10
5311
原创 QCC300x笔记(2) -- QCC3007芯片入门进阶(二)
这一篇主要讲解如何使用ADK Configuration Tool修改固件的常用配置一、在线模式Go ConfigurableRead DeviceWrite Device
2018-07-14 17:30:57
5590
2
原创 CSR867x — CSR8670平台开发调试经验
当打开Debug进行调试程序时(可以在print channel0输出log),断开ADK的run,重新上电板子是跑不起来的;因为打开log信息后,板子只能进行在线调试,只有去掉了所有的打印信息输出板子才可以离线运行。3、程序进入调试模式后,Debug窗口显示“The VM cannot run, as it is already running”,崩溃了重新run一次。4、目前发现CSR8670不支持组合按键,当一个按键被按下后,其他按键是不响应的,如果出现多个按键没响应的情况,应该考虑是不是
2018-06-19 18:41:45
8623
15
原创 QCC300x笔记(3) -- QCC3007开发调试经验
写在前面:这篇博客主要记录,在使用QCC300x平台中所遇到的问题以及解决方法,会不定时更新~1、使用的堆栈空间大小超出或者全局变量超出,会报以下错误: 此时要查找是否添加了全局变量或者使用了大数组,还可以试试关闭Properties里不用的功能。
2018-06-08 17:04:08
4871
6
转载 BLE蓝牙协议 — BLE连接建立过程梳理(二)
连接事件在一个连接当中,主设备会在每个连接事件里向从设备发送数据包。一个连接事件是指主设备和从设备之间相互发送数据包的过程。连接事件的进行始终位于一个频率,每个数据包会在上个数据包发完之后等待 150μs 再发送。
2018-06-08 13:10:00
10369
2
转载 BLE蓝牙协议 — BLE连接建立过程梳理(一)
连接建立应付比广播更为复杂的数据传输,或者要在设备之间实现可靠的数据交付,这些都要依赖于连接。连接使用数据信道在两个设备之间可靠地发送信息。它采取了自适应跳频增强鲁棒性,同时使用了非常低的占空比,尽可能地降低功率消耗。
2018-06-08 13:09:49
14047
原创 QCC300x笔记(6) -- QCC3007的OTA流程梳理
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 作 者:ZHS(文化人)XX 联系方式:文章末尾Chat快问XX 版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了XX 要说的话:作者水平有限,难免有不足之处,恳请指正!XXXXXXXX...
2018-05-28 11:32:09
4028
9
转载 nRF52832 — 提高蓝牙BLE的数据传输速率
讲解2点: 为什么 nordic的4.0协议栈中ble只能发送20字节的应用负载数据。 大量数据发送时如何提高发送速率1:为何上层应用负载每次最多20字节首先了解 4.0中链路层的包格式如下: PDU即协议数据单元,即链路层的负载数据。应用层用户发送的数据就是在这里面,但是并不全是用户数据。
2018-05-24 20:11:04
11632
转载 nRF52832 — ANCS协议介绍
1 ANCS综述ANCS即 Apple Notification Center Service。是IOS系统中的一个通知服务。设备连接手机后,设备首先需要先使能IOS系统的通知功能,具体即设备上的GATT 客户端发现IOS上的ANCS,并且使能其 通知源Characteristics 的notify功能。 之后IOS系统就会通过ble 推送消息给设备了。通常推送的消息仅仅是一个简短通知,比如通知有一个社交消息。如果需要获取详细消息,还需要 设备通过 控制点 Characteristics 主动发送控制指
2018-05-24 20:10:47
4478
原创 QCC300x笔记(7) -- Three Way Call和音乐播放Element Attributes
写在前面:验证QCC3007连接手机时,TWC和ID3事件;一、HFP TWC功能 实现HFP中的三路通话,需要设备发送指令:AT+CHLD给手机,进行信息交互;
2018-05-16 20:51:30
1520
BES平台AI语音助手使用文档参考.docx
2021-05-27
CSR867x串口数据收发+GATT+AT指令 V3.0
2018-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅