cc2640 adc
针对 TI CC2640 系列无线 MCU 的 ADC(模数转换器)功能,以下是关键信息的中文解释:
核心要点
-
ADC 类型:
- CC2640 使用的是 24 位 Σ-Δ (Sigma-Delta) ADC。
- 优点: 分辨率高(24位),精度相对较高(尤其在高分辨率下),抗噪性能较好。
- 缺点: 转换速度相对较慢(最大采样率在几十到几百 SPS 级别),不适合高速采样应用。
-
主要用途:
- 传感器接口: 连接温度传感器?️、光敏传感器、压力传感器、模拟麦克风?等输出模拟电压或电流的传感器。
- 电池电压监测: 测量设备电池电压(通常需要分压)。
- 系统状态监测: 测量内部参考电压、温度传感器、电源电压等。
- 通用模拟信号采集: 任何需要将连续模拟信号转换为数字值的场景。
-
关键特性:
- 分辨率: 最高可达 24 位(实际有效位数较低,取决于设置和噪声)。
- 输入通道:
- 多个外部模拟输入引脚(具体数量取决于 CC2640 的具体型号和封装,例如
DIO23,DIO24,DIO25,DIO26,DIO27,DIO28,DIO29,DIO30)。 - 多个内部输入源:
- 内部温度传感器(
ADCCC26XX_TEMP) - 电源电压分压(
ADCCC26XX_VDDS) - 固定参考电压(
ADCCC26XX_FIXED_REFERENCE) - DAC 输出(
ADCCC26XX_DCOUPL) - 电池电压分压(
ADCCC26XX_BATMON) - 等等(详见 SDK 文档)。
- 内部温度传感器(
- 多个外部模拟输入引脚(具体数量取决于 CC2640 的具体型号和封装,例如
- 可编程设置:
- 参考电压: 非常关键!可选:
- 内部固定参考电压(通常
1.4V或2.4V,最常用且噪声较低)。 - VDDS 电源电压(不精确,易受电源噪声影响)。
- 外部差分参考电压(特定型号支持)。
- 内部固定参考电压(通常
- 采样率: 可配置,影响转换时间和有效分辨率(采样率越高,有效分辨率越低)。
- 采样模式: 单次采样(Single-shot)或连续采样(Continuous)。
- 输入模式: 单端输入或差分输入(需要特定外部连接和配置)。
- 采样长度/过采样率: 影响噪声抑制和有效分辨率。
- 参考电压: 非常关键!可选:
️ 驱动与使用(基于 SimpleLink SDK)
在 TI 的 SimpleLink CC13xx/CC26xx SDK 中,ADC 功能通过 ADCBuf 驱动模块提供。这是一个功能丰富的驱动层,简化了配置和使用。
-
关键组件:
ADCBuf驱动 API: 提供初始化、配置、读取采样、关闭等函数。ADCBufCC26xx特定实现: 针对 CC26xx Σ-Δ ADC 的实现细节。ADCBuf_config/ADCBufCC26xx_Params: 用于配置 ADC 参数(参考电压、采样模式、采样率、回调函数等)。- SysConfig 图形化工具(推荐): 在 SDK 中,使用 SysConfig(通常集成在 TI CCS 或 IAR 中)通过图形界面配置 ADC 参数(通道、参考电压、采样率等)是最简单高效的方式,它能自动生成正确的配置代码。??
-
基本使用流程(伪代码):
- 包含头文件:
#include <ti/drivers/ADCBuf.h>#include <ti/drivers/adcbuf/ADCBufCC26XX.h> - 初始化驱动:
ADCBuf_init();(通常在main开始处调用一次)。 - 配置参数:
- 手动填充
ADCBuf_Params和ADCBufCC26XX_Params结构体,或 - (推荐) 在 SysConfig 中配置好,它会生成对应的
ADCBufCC26XX_Params结构体实例(如ADCBufCC26XX_params0)。
- 手动填充
- 打开实例:
adcBufHandle = ADCBuf_open(instanceIndex, ¶ms);(获取操作句柄)。 - 配置转换:
- 创建
ADCBuf_Conversion结构体数组(包含通道 ID、采样缓冲区和采样数量)。 - 重要: 缓冲区必须满足对齐要求(通常是 32 位对齐),使用
ADCBufCC26XX_MEMORY_ALLOCATION_MACRO()宏分配内存最安全。
- 创建
- 启动转换:
- 阻塞模式:
ADCBuf_convert(adcBufHandle, conversions, channelCount);(函数等待转换完成才返回)。 - 回调模式:
ADCBuf_convert(adcBufHandle, conversions, channelCount, callbackFxn, NULL);(注册回调函数,转换完成后异步调用)。
- 阻塞模式:
- 处理结果:
- 24 位值: 驱动返回的是原始 ADC 计数(24 位有符号整数
int32_t)。 - 转换为电压: 需要使用
ADCBuf_convertAdjustedToMicroVolts()函数将其转换为微伏 (uint32_t)。必须使用此函数转换! 它会根据配置的参考电压正确计算电压值。 - 公式原理:
Voltage (microVolts) = (RawSample * ReferenceVoltage (uV)) / ((2^23) - 1)(驱动内部处理符号位等细节)。
- 24 位值: 驱动返回的是原始 ADC 计数(24 位有符号整数
- 关闭实例(可选):
ADCBuf_close(adcBufHandle);。
- 包含头文件:
? 重要注意事项
-
参考电压选择:
- 优先使用内部固定参考源(如
1.4V)。 它相对稳定,噪声较低。这是最常用的配置。 - 避免使用
VDDS作为参考源,除非你非常清楚其影响(噪声大、波动大)。 - 参考电压直接影响转换值和精度。务必在
ADCBuf_convertAdjustedToMicroVolts()中使用与配置匹配的参考电压宏(如ADCBUF_REF_FIXED_1V4)来计算电压。
- 优先使用内部固定参考源(如
-
采样率与分辨率权衡:
- 24 位是最大分辨率。实际的有效位数会随着采样率的提高而降低(因为噪声增加)。对于需要高精度的应用(如温度测量),应使用较低的采样率(如
200 SPS)。 - 查看数据手册或 SDK 文档中的图表,了解不同采样率下的典型有效位数(ENOB)。
- 24 位是最大分辨率。实际的有效位数会随着采样率的提高而降低(因为噪声增加)。对于需要高精度的应用(如温度测量),应使用较低的采样率(如
-
输入范围:
- ADC 输入电压 绝对不允许超过 VDDS + 0.3V 或低于 GND - 0.3V,否则可能损坏芯片!
- 单端模式: 输入电压范围是
0V到Reference Voltage。超过参考电压的值会被钳位或饱和(读取最大值)。 - 差分模式: 输入电压范围是
-Reference Voltage到+Reference Voltage。
-
噪声与稳定性:
- Σ-Δ ADC 固有的高频噪声需要低通滤波。驱动内部和硬件会进行一些滤波。
- 对于高精度应用,通常需要在软件中进行额外的平均滤波(连续采集多个样本求均值)。
- 确保模拟电源 (
VDDS,VDDR) 干净稳定,使用合适的旁路电容。 - 外部模拟信号线应尽可能短,远离数字噪声源(如晶振、高速数字线)。
-
功耗:
- ADC 模块在转换时会消耗电流。在电池供电的低功耗应用中,应在不需要 ADC 时关闭它(通过调用
ADCBuf_close或让驱动进入睡眠状态)。
- ADC 模块在转换时会消耗电流。在电池供电的低功耗应用中,应在不需要 ADC 时关闭它(通过调用
? 如何开始 & 资源
- 使用 SysConfig: 在 SimpleLink SDK 项目中,利用 SysConfig 工具配置 ADC 通道、参考电压、采样率等。这是最简单的方式,能自动生成初始化代码。
- 查阅 SDK 文档:
- SDK 安装目录下的
<SDK_INSTALL_DIR>\docs\drivers\doxygen\html\index.html,重点查看ADCBuf和ADCBufCC26XX模块文档。 - 阅读 SDK 中的 ADC 示例代码(如
adcsinglechannel,adccontinuous),这是最佳实践。
- SDK 安装目录下的
- 参考数据手册: 查阅你所使用的具体 CC2640 型号(如 CC2640R2F, CC2640R2L)的数据手册(Technical Reference Manual),了解 ADC 模块寄存器级细节和电气特性(通常位于 "Analog Peripherals" 或 "ADC" 章节)。
- 应用笔记:
- AN122: Software Design for CC13xx and CC26xx ADC: SimpleLink SDK 中自带的应用笔记,深入讲解 ADC 原理、驱动设计和使用最佳实践。必读!
- AN092: Measuring CC13xx and CC26xx Current Consumption: 如果你想精确测量芯片功耗,会用到 ADC 测量相关电路上的电压。
⚠ 常见问题
- 采样值不稳定/跳动: 检查参考电压配置是否正确(优先用内部固定参考),增加软件平均滤波次数,检查外部电路噪声和电源稳定性。尝试降低采样率。
- 采样值偏差大: 再次确认参考电压类型选择是否正确(驱动配置和
ADCBuf_convertAdjustedToMicroVolts函数调用是否一致)。检查输入电压是否超出 ADC 输入范围。检查分压电阻精度(如果用于电池测量等)。 - 转换不启动/失败: 检查引脚复用配置是否正确(
PINCC26XX_setMux或 SysConfig 配置),确保没有其他外设占用该引脚。检查ADCBuf_Conversion结构体和缓冲区配置是否正确(尤其是内存对齐)。检查是否有未完成的转换(在回调模式中)。 - 功耗过高: 确保在非采样期间通过
ADCBuf_close关闭了 ADC 实例。
? 总结: CC2640 的 24 位 Σ-Δ ADC 非常适合低带宽、高分辨率的传感应用。使用 SimpleLink SDK 提供的 ADCBuf 驱动并结合 SysConfig 工具可以高效开发。正确配置参考电压、理解采样率与分辨率的权衡、注意输入范围限制、进行必要的软件滤波是实现可靠 ADC 应用的关键。务必参考 SDK 示例代码和应用笔记 AN122。?
CC2640 SimpleLink™ Bluetooth® 无线MCU:特性、应用与设计指南
CC2640 SimpleLink™ Bluetooth® 无线MCU:特性、应用与设计指南 在当今的物联网时代,低功耗、高性能的无线微控制器(MCU)对于各种应用的实现至关重要。德州仪器(TI
2026-01-05 15:20:06
浅谈CC2640超低功耗无线MCU
SimpleLink超低功耗无线MCU平台的首批成员是用于Bluetooth Smart的CC2640,以及针对6LoWPAN和ZigBee的CC2630。
2023-08-04 14:35:36
CC2640R2F的各个驱动文件放在哪里比较好
CC2640R2F在开发过程中会增添许多功能,每个功能会对应驱动文件,最好放在蓝牙协议栈的安装目录下(蓝牙协议栈要先安装上),具体是simplelink_cc2640
资料下载
罗星
2021-11-30 10:06:08
cc2640 细节展示
1. 对于 cc2640内部有两个单片机,一个m3负责内核,另一个是一个16位单片机,应该是msp430可以替代主机完成一些数据采集,adc采集,iic等等功能,传感器软件内部可以进行外设配置,并
资料下载
479461
2021-11-30 09:06:08
本文档的主要内容详细介绍的是CC2640无线微控制器的PCB图免费下载
本文档的主要内容详细介绍的是CC2640无线微控制器的PCB图免费下载。
资料下载
ah此生不换
2020-06-10 17:54:00
选择SimpleLink™蓝牙低功耗CC2640无线MCU的5个原因
Other Parts Discussed in Post: CC2640对使用TI最低功耗的低功耗蓝牙®无线微控制器(MCU)进行设计感兴趣吗?以下是您应该选择SimpleLink™蓝牙低功耗
2021-12-15 16:54:53
探究CC2640 CC1310高低温测试
Other Parts Discussed in Post: CC1310, CC2640 作者: TI 工程师 Daniel Fang/Frank Xiao
2021-12-10 10:50:08
请问CC2640能作为配置为主机吗?
现在我用CC2640都是作为从机,然后用手机测试,这样的测试不能自动化;想问一下可以把CC2640配置为主机,然后跟另外一个CC2640从机通讯
请问cc2640与cc2650有什么区别?
我最近准备根据cc2640的方案做个传输传感器数据的设备,官网上的kit上面的芯片都是cc2650的,请问cc2650 和
为什么CC2640会死机?
在使用simple_peripheral例程时,如果用小米note3(Android7.1.1)与CC2640配对,当输入配对密码“123456”之后,就会导致CC2640死机,蓝牙广播信号消失
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机