This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] 【常见问题解答】CC2745R10-Q1:Zephyr 上的 ADC + BLE

Guru**** 2769425 points

Other Parts Discussed in Thread: LP-EM-CC2745R10-Q1, CC2755R10

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1617861/faq-cc2745r10-q1-adc-ble-on-zephyr

器件型号: CC2745R10-Q1
Thread: CC2755R10 中讨论的其他器件

本文介绍了三个示例工程、演示了使用 Zephyr 3.7.0 v3.7.0-ti-9.14.00_ea 的 TI CC2755 微控制器上的增量 BLE 功能。

所有工程使用:

  • 通道 3 上具有 12 位 ADC 分辨率
  • DMA 驱动的 ADC 传输
  • 3.3V 基准电压

 

要求

 - Zephyr TI 下游版本 v3.7.0-ti-9.14.00_ea
 - LP-EM-CC2745R10-Q1 LaunchPad  

 

项目 1:ADC +闪存存储

最简单的项目每秒唤醒一次、读取 ADC、并使用 Zephyr 的 NVS(非易失性存储)子系统将测量结果保留到闪存中。 数据存续重置。

构建步骤:  

  • West build -b LP_em_cc2745r10_cc2755r10
  • 西闪

ADC 配置通过器件树叠加完成:

 &ADC0{
   通道@3{
     reg =<3>;
     Zephyr、gain =“ADC_GAIN_1";“;
     Zephyr、reference =“ADC_REF_VDD_1";“;
     Zephyr、Vref-MV =<3300>;
     Zephyr、采集时间= ;
     Zephyr、分辨率=<12>;
   };
 };

 

项目 2:ADC + BLE 广播

建立在项目 1 的基础上、添加 BLE 广播。 该设备每秒广播一次其存在、从而让 BLE 扫描仪能够检测到它。

构建步骤:  

  • West build -b LP_em_cc2745r10_cc2755r10
  • 西闪

器件广播为“CC2755_ADC",“,广播、广播间隔为 1 秒 (1600 × 0.625ms)。 广播和 ADC 测量无法同步、因为 Zephyr 不提供广播间隔回调。

 

项目 3:ADC + BLE 可连接

最完整的示例。 此示例添加了 BLE 与自定义 GATT 服务的连接支持。 客户端可以连接和读取 ADC 值或订阅通知。

  • West build -b LP_em_cc2745r10_cc2755r10
  • 西闪

 该外设的 GATT 表示例包含一个具有两个特征的自定义服务。

  • 服务 UUID:12345678-1234-5678-1234-56789abcdef0
  • ADC 值特性(读取+通知):12345678-1234-5678-1234-56789abcdef1
  • 测量计数特性(读取):12345678-1234-5678-1234-56789abcdef2

连接间隔设置为 500 毫秒 (400 × 1.25ms)。 这是因为有些手机很难扫描并连接到连接间隔非常大的设备(例如 1 秒)。

 

限制:

BLE 和器件树限制

CC2755 BLE 栈使用具有硬编码器件顺序的预编译控制器库。 目前、向器件树添加节点会移动这些顺序并使用 BLE 控制器库中断链接步骤。 结果是、对于 BLE 项目(即项目 2 和 3):

  • 器件树叠加层必须保持空
  • ADC 通道配置已在代码中完成
  • 器件查找仍使用 DEVICE_DT_GET (DT_NDELABEL (ADC0))

对于非 BLE 项目(即项目 1):

  • 支持完整的器件树 ADC 配置
  • 使用 ADC_DT_SPEC_GET () 和相关 DT 宏

项目的文件: e2e.ti.com/.../4667.adc_5F00_ble_5F00_zephyr.zip