0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SDK中的B85m_ble_remote例程的使用及注意事项

泰凌微电子 来源:泰凌微电子 作者:泰凌微电子 2022-07-20 16:34 次阅读
在泰凌Wiki网站上提供了多种应用场景的软件SDK,供客户选择使用。本系列的几篇文章主要讲述"Bluetooth LE Single Connection",此SDK是单连接应用的SDK,所谓的单连接就是蓝牙芯片做从机跟主机(一般是手机)建立点对点连接,或者蓝牙芯片做主机跟其他的从机建立点对点连接的应用场景。


本篇文章详细讲述此SDK中的B85m_ble_remote例程的使用及注意事项,以便客户尽快熟悉起来,加快项目开发进度。

1ble_remote例程说明

单连接SDK中B85m_ble_remote适用825x芯片和827x芯片,所以编译选项中又分为了825x_ble_remote和827x_ble_remote(下文统称ble_remote)。

ble_remote例程是较复杂的从机例程,是蓝牙语音遥控器的源码例程。

该例程主要功能:蓝牙连接并枚举为HID设备,矩阵按键扫描,语音采集并BLE传输,IR功能,电池电量检测,低功耗,OTA升级等。

2开发板选择

基于TLSR825x和TLSR827x芯片的遥控器的相关资源(软件SDK,硬件参考设计等)。

基于TLSR825x和TLSR827x的语音遥控器Audio RCU如下图所示:

351f0c14-0803-11ed-ba43-dac502259ad0.png

3使用演示

Audio RCU有两种使用方式,一种是直接跟智能电视进行蓝牙连接,并控制电视。另一种是配合kma master dongle一起使用(在kma master dongle的文章中进行演示说明)。下面主要讲述第一种使用方式,并用手机替代智能电视。

  1. 编译ble_remote例程,并把生成的固件download到Audio RCU板中,重新上电或者reset一次。

  2. 在手机-->设置-->蓝牙 页面,扫描到“VHID”,点击连接并选择配对。蓝牙连接后,手机上会显示“VRemote”的名称。

  3. 点击Audio RCU上的按键,手机上会有相应的显示。比如按“音量+”,手机界面会弹出音量增加的提示。

注意1:ble_sample例程是HID设备,不需要在手机app中使用。如果使用手机app连接,是看不到上面的按键的效果。

注意2:RCU上的部分按键,手机不一定支持。因为RCU是蓝牙语音遥控器,可以蓝牙连接智能电视,机顶盒等设备,当作遥控器使用。手机和智能电视上对一些按键的解析不同导致的。

4主要功能

在ble_remote的app_config.h文件中,有主要功能的宏定义开关。

1、低功耗

默认使能了低功耗功能,宏定义为:

#define BLE_REMOTE_PM_ENABLE 1

#definePM_DEEPSLEEP_RETENTION_ENABLE 1

另外,针对遥控器闲置的情况做功耗优化,广播超过60s会自动进入深睡眠(deepsleep模式)而停止广播。建立连接,60s内无按键事件,会断开连接并进入deepsleep模式。代码如下图所示,在blt_pm_proc()中代码如下图所示。

352f920a-0803-11ed-ba43-dac502259ad0.png

注意:当蓝牙处于连接状态时,必须先主动断开连接并收到对方的ack后,再进入低功耗模式。

2、按键扫描

遥控器有较多的按键,Telink提供了行列式扫描按键的代码,此部分请用户根据handbook的“按键扫描”章节以及例程代码来理解,本文不再赘述。

3、语音采集和语音传输

语音采集支持16K和32K的采样率,语音传输是使用BLE的方式来传输压缩的语音。实现原理和机制请用户参考handbook的“Audio”章节,本文不再赘述。宏定义开关为:

#define BLE_AUDIO_ENABLE 1

另外例程支持多种语音流的压缩格式,可使用宏定义选择:

#define TL_AUDIO_MODE TL_AUDIO_RCU_ADPCM_GATT_TLEINK

4、低电量检测

使用ADC采集电池电量,是较为常用的应用场景。该例程有提供了代码实现,原理和使用的说明,请用户参考handbook的“低电检测”章节。宏定义开关为:

#define BATT_CHECK_ENABLE 1

5、红外遥控

该例程也支持红外遥控器的功能,实现原理和机制请用户参考handbook的“IR”章节。默认没有使能,宏定义的开关为:

#define REMOTE_IR_ENABLE 0

6、OTA升级

默认支持OTA升级,OTA升级的原理和机制,请用户参考handbook的“OTA”章节。宏定义开关为:

#define BLE_REMOTE_OTA_ENABLE 1

7、固件检查

firmware check有两种,一种是通过CRC32校验的方式来确认firmware是否完整。在firmware的末尾有CRC32校验值,在初始化的时候从flash中读取frimware固件计算CRC32并比较。如不一致,则认为firmware损坏。详情请参考handbook的“14.4 Firmware完整性自检”章节的说明。

宏定义开关为:

#define FIRMWARE_CHECK_ENABLE 0

另一种是,基于UID的firmware check,实现机制是:在量产时,量产工具获取芯片端的16字节的uid明文加密得到一段密文,并烧录到flash的固定地址。在程序代码中,初始化时也会根据芯片本身的uid进行加密得到密文,并跟flash中烧录的密文对比,一致则认为ok继续运行,否则停止运行。详情请参考handbook的“14.3 Firmware数字签名”章节的说明。

宏定义开关为:

#define FIRMWARES_SIGNATURE_ENABLE 0

注意,打开FIRMWARES_SIGNATURE_ENABLE宏定义后,编译会报错,提示firmware_encrypt_based_on_uid未定义,如下图所示:

355818a6-0803-11ed-ba43-dac502259ad0.png

解决方法:在proj_lib文件夹中有“libfirmware_encrypt.a”库文件,但是工程没有包含该库文件。具体操作为:点击project --> Properties-->C/C++ Build-->Setting-->Tool Setting的Libraries页面,点击“+”,在窗口输入“firmware_encrypt”,并点击OK。

注意:添加库文件包含的名称不要写错了,库文件名称“libfirmware_encrypt.a”需要去头去尾(即把lib和.a去掉)。

358ddf9a-0803-11ed-ba43-dac502259ad0.png

添加完成的效果如下图,clean后再rebuild即可编译成功。

35b20ba4-0803-11ed-ba43-dac502259ad0.png
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙芯片
    +关注

    关注

    17

    文章

    344

    浏览量

    45471
  • BlueTooth
    +关注

    关注

    3

    文章

    198

    浏览量

    59225
  • Remote
    +关注

    关注

    0

    文章

    11

    浏览量

    9038
  • SDK
    SDK
    +关注

    关注

    3

    文章

    966

    浏览量

    44708

原文标题:【技术专栏】泰凌微电子BLE单连接SDK(三):B85m_ble_remote例程使用演示

文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    高速电路过孔设计注意事项

    高速电路过孔设计注意事项::在高速PCb设计,过孔设计是一个重要因素,它由孔、孔周围的焊盘区电源层隔离区组成,通常分为盲孔、埋孔和通孔三类。在PCb设计过程通过对过孔的寄生电容和
    发表于 08-16 13:33

    Vivado除法IP的注意事项

      第一个注意事项  首先可以在除法IP的定制界面看到被除数、除数、商的位宽有详细的说明:    从上面的位宽信息,我们可以发现被除数有18位整数,除数有18位整数,商有18位整数、11位小数。当然
    发表于 01-08 17:00

    示波器在测量注意事项是是什么?

    上升时间的定义是什么?示波器在测量注意事项是是什么?
    发表于 05-07 06:06

    说明一下代码移植过程注意事项

    STM32F工程移植注意事项文档由来 最近项目用到STM32F429,参考的是正点原子的STM32F4开发板。本文主要说明一下代码移植过程注意事项,记录一下其中最基本的几个改动。方便后续再次做
    发表于 08-04 08:52

    胆机使用的注意事项

    胆机使用的注意事项:胆机使用的注意事项 我是初哥, 现在对胆机感兴趣, 但听说胆机使用麻烦, 请问有什么需要注意的?湖南吉首火车站 范增不必担心, 胆机的使用方法
    发表于 11-29 17:09 46次下载

    傲龙微晶屏的使用技巧和注意事项

    傲龙微晶屏的使用技巧和注意事项
    发表于 02-10 10:03 585次阅读

    钽电解应用注意事项

    钽电解应用注意事项 使用电压---------------------------------------------------------------------------------------------------------------------电容器
    发表于 03-31 15:54 557次阅读

    浅谈PCB板设计注意事项

    在设计PCB板时应注意的一些基本事项:相关PCB设计参数详解以及相关注意事项
    发表于 05-09 16:05 3364次阅读

    H3 SDK1.0 USB模块的配置方法及注意事项

    本文介绍H3 sdk1.0 USB模块配置方法,以及使用注意事项
    发表于 03-26 16:36 6次下载
    H3 <b class='flag-5'>SDK</b>1.0 USB模块的配置方法及<b class='flag-5'>注意事项</b>

    SDK中的B85m_module例程的使用及注意事项

    在泰凌Wiki网站上提供了多种应用场景的软件sdk,供客户选择使用。本系列的几篇文章主要讲述"Bluetooth LE Single Connection",此SDK是单连接
    的头像 发表于 07-12 11:56 1471次阅读

    SDK中的B85m_ble_sample例程的使用及注意事项

    单连接SDK中B85m_ble_sample适用825x芯片和827x芯片,所以编译选项中又分为了825x_ble_sample和827x_ble_sample(下文统称
    的头像 发表于 07-13 16:21 1264次阅读

    使用注意事项

    使用注意事项
    发表于 03-17 20:14 0次下载
    使用<b class='flag-5'>注意事项</b>

    使用注意事项

    使用注意事项
    发表于 07-07 19:04 0次下载
    使用<b class='flag-5'>注意事项</b>

    中8位MCU EEPROM使用注意事项

    中颖8位MCU EEPROM使用注意事项
    的头像 发表于 09-27 15:34 505次阅读
    中8位MCU EEPROM使用<b class='flag-5'>注意事项</b>

    展频IC布板注意事项

    展频IC布板注意事项
    发表于 04-14 10:12 4次下载