da14580 adc差分
好的,关于 DA14580 ADC 的差分模式,以下是详细的中文说明:
DA14580 内置一个 12 位、最高 2.5 MHz 采样率 的 ADC。它支持两种输入模式:
- 单端模式: 测量某个引脚(正输入端)相对于 GND(负输入端)的电压。
- 差分模式: 测量两个特定引脚(正输入端和负输入端)之间的电压差。这是你询问的模式。
差分模式的关键点
-
引脚对: 差分输入需要使用 预先定义好的 ADC 引脚对。DA14580 的差分模式只对特定通道组合有效(通道号与引脚组合紧密相关)。常见的支持差分的通道组合有:
- 通道 0: P0_5 (正) 和 P0_6 (负)
- 通道 1: P0_7 (正) 和 P0_8 (负)
- 通道 2: P0_9 (正) 和 P0_10 (负)
- 通道 3: P0_11 (正) 和 P0_12 (负)
- 通道 4: P0_13 (正) 和 P0_14 (负)
- 通道 5: P0_0 (正) 和 P0_1 (负) (注意:P0_0/P0_1 常用于 UART,使用 ADC 时需谨慎)
- 通道 6: P0_2 (正) 和 P0_3 (负) (注意:P0_2/P0_3 常用于 UART,使用 ADC 时需谨慎)
- 通道 7: P0_4 (正) 和 VBAT (负) (这是一个特殊组合,用于测量 P0_4 相对于 VBAT 的电压)
- 通道 14: VDD_RTC (正) 和 VSS (负) (内置测量 RTC 域电源电压)
- 通道 15: VBAT_3V (正) 和 VSS (负) (内置测量 VBAT 电压)
- 通道 16 - 18: 与通道 0-2 相同,但负输入为内部参考 (非标准差分)
- 通道 19: 内部温度传感器(单端)
- 通道 20: VDD_REF (正) 和 VSS (负) (内置测量参考域电源电压)
- 通道 21: VBAT_3V (正) 和 VDD_REF (负) (内置差分测量)
- 通道 22: VDD_RTC (正) 和 VBAT_3V (负) (内置差分测量)
- 通道 23: VBAT_3V (正) 和 VDD_3V (负) (内置差分测量)
- 通道 24: VDD_3V (正) 和 VBAT_3V (负) (内置差分测量)
- 通道 25: 内部带隙电压参考 (单端)
- 通道 26: GND (用于校准)
- 通道 27: VDCDC (用于调试)
- 通道 28 - 31: 保留
-
输入范围:
- 典型差分输入范围: -0.5V 到 +0.5V (以 1.8V 为共模中心参考点)。
- 绝对范围 (避免损坏): 正输入端和负输入端的电压都必须在 0V 到 VDCDC/VDDRF (通常为 0V 到 1.8V 或 0V 到 3.0V, 取决于电源配置) 之间。
- 共模范围: 两个输入引脚的共同电压 (共模电压) 也必须在此范围内。差分信号应在共模电压附近波动 ±0.5V。
- 超出范围: 如果差分电压 (
Vpos - Vneg) 小于 -0.5V,结果会接近 0x000;如果大于 +0.5V,结果会接近 0xFFF (满量程)。如果共模电压超出范围,测量会不准确甚至损坏 ADC。
-
转换结果:
- ADC 结果是一个 12 位的无符号整数 (
0x000到0xFFF)。 - 差分模式含义: ADC 结果代表了 (
Vpos-Vneg) 的量化值。 - 负数表示: 如果
Vneg高于Vpos(Vpos - Vneg< 0),结果小于0x800(2048) 代表负的差值。- 数值
0x000(0) 代表(Vpos - Vneg) = -0.5V(或接近下限)。 - 数值
0x800(2048) 代表(Vpos - Vneg) = 0V。 - 数值
0xFFF(4095) 代表(Vpos - Vneg) = +0.5V(或接近上限)。
- 数值
- 软件读取结果后需要将其转换为有符号数才能方便地表示正负电压差。常用方法是:
int16_t signed_result = (int16_t)(adc_data & 0x0FFF) - 2048;。这样signed_result的范围大约是 -2048 到 +2047 (对应 -0.5V 到 +0.5V)。
- ADC 结果是一个 12 位的无符号整数 (
-
分辨率:
- 在 ±0.5V 量程下,理论最小可分辨电压步长 (
LSB) 约为:(1.0V) / 4096 ≈ 244µV。
- 在 ±0.5V 量程下,理论最小可分辨电压步长 (
配置差分模式的关键步骤 (代码层面)
-
配置 GPIO 为 ADC 输入:
GPIO_ConfigurePin(P0_5_PORT, P0_5_PIN, INPUT, PID_ADC, false); // 配置正输入引脚 P0_5 为 ADC 功能 GPIO_ConfigurePin(P0_6_PORT, P0_6_PIN, INPUT, PID_ADC, false); // 配置负输入引脚 P0_6 为 ADC 功能 // ... 根据你选用的差分引脚对配置对应的两个引脚 ... -
初始化 ADC (
adc_init或类似函数):- 设置 ADC 时钟 (
adc_set_clk)。 - 可选:配置增益 (
adc_set_gain) - 注意:内部 PGA 增益在差分模式下可能不可用或受限制,需查数据手册。 - 可选:配置偏移 (
adc_set_offset)。
- 设置 ADC 时钟 (
-
配置差分模式和启动单次转换:
adc_config_t cfg; // 清除配置结构体 memset(&cfg, 0, sizeof(cfg)); cfg.input_mode = ADC_INPUT_MODE_DIFF; // !!!关键:设置为差分模式 cfg.channel = 0; // !!!关键:选择你想要使用的差分通道号 (例如此处是通道0对应P0_5/P0_6) cfg.fsm = ADC_FSM_SINGLE_SHOT; // 单次触发模式 (也可选 ADC_FSM_CONTINUOUS) cfg.fsm_clk_div = 0x10; // 设置 FSM 时钟分频,控制采样率和转换速度 (根据所需速度调整) cfg.clk_delay = 0; // 时钟延迟设置 // 启动单次转换 (阻塞方式,轮询等待完成) adc_init(&cfg); // 这个调用同时进行配置并启动一次转换 // 或者使用中断方式,这里以轮询为例 while ((GetWord16(ADC_CONTROL_REG) & ADC_CTRL_REG_ADC_MASK_IRQ) == 0); // 等待转换完成 uint16_t adc_data = GetWord16(ADC_DATA_REG) & 0x0FFF; // 读取12位原始数据 (0x000 - 0xFFF) // 将无符号原始数据转换为有符号差分值 (-2048 到 2047 约等于 -0.5V 到 0.5V) int16_t diff_voltage_code = (int16_t)adc_data - 2048; // !!!关键:转换为有符号数表示电压差- 核心设置是:
cfg.input_mode = ADC_INPUT_MODE_DIFF;和cfg.channel = [你的通道号];。这两项必须正确匹配你想要使用的差分引脚对。 ADC_DATA_REG读取的是 16 位值,最低 12 位 (0x0FFF) 是有效数据,高位可能是状态或其他信息(DA14580/581/583 通常直接是 12 位数据右对齐)。
- 核心设置是:
重要注意事项
- 通道限制: 严格使用手册中定义的差分引脚对组合。试图将不配对的引脚强行配置为差分模式通常不起作用或损坏设备。
- 电压范围: 务必确保输入电压 (
Vpos,Vneg以及它们的共模电压) 绝对不超过芯片电源轨 (0VtoVDCDC/VDDRF),且差分电压尽量在 ±0.5V 范围内以获得最佳精度。使用外部运放或分压电阻是扩展量程或适配传感器输出的常用方法。 - 精度考量: 差分模式抗共模噪声能力强,适合测量小信号。但自身精度(INL/DNL)受限于内部 ADC 性能,并非高精度器件。电源噪声、PCB 布线噪声也会影响结果。
- 校准 (可选但推荐): 如果需要较高精度,执行 ADC 校准 (Offset 和 Gain) 可以显著改善性能。
- 资源冲突: 检查所选引脚是否已被其他功能 (如 UART,PWM) 占用。
- 负电压差解释: 理解转换结果 (
0x000-0x800代表负差) 并将其正确转换为有符号整数的步骤至关重要。
总结
DA14580 的 ADC 支持差分模式,需要配置特定的引脚对 (input_mode = ADC_INPUT_MODE_DIFF) 并选择正确的 channel 号码来匹配你想要的物理引脚。输入范围通常限制在 ±0.5V (共模在 0V 到 VDD 之间),结果需要从无符号的 12 位原始值转换为有符号数以表示正负电压差。仔细注意电压范围限制和通道与引脚的对应关系是成功应用差分模式的关键。
DA14580蓝牙串口透传连接死机怎么解决?
DA14580采用官方SDK 5.15.02版的DSPS为基础,修改广播函数为自己的函数后出现建立连接后,很快连接中断,调试界面键入nmi中断中。
DA14580 RD Tester Electrical 原理图
DA14580 RD Tester Electrical 原理图
资料下载
h1654155275.0032
2023-02-03 18:55:43
DA14580蓝牙硬件系统总览相关资料推荐
DA14580蓝牙硬件系统总览(三)接续上一篇:DA14580蓝牙硬件系统总览(二)3.7 TIMERS3.7.1 Software timerThe Software timer block
DA14580蓝牙硬件系统相关资料分享
DA14580蓝牙硬件系统总览(二)接续上一篇:DA14580蓝牙硬件系统总览(一)3.6 INTERFACES接口3.6.1 UARTS (串口)The UART is compliant
DA14580蓝牙硬件系统包括哪些呢
DA14580蓝牙硬件系统总览The DA14580 contains the following internal blocks:DA14580
有哪些方法可以去启动DA14580芯片
DA14580芯片的启动顺序是怎样的?如何去启动DA14580芯片?有哪些方法?不同启动方式在功耗、工作电压以及启动时间等方面有何不同?
智能穿戴DA14580开发板套件资料分享
今天将为您介绍一款DA14580开发板: 它使用DA14580蓝牙MCU,功耗业界最低,有基本的计步、睡眠监测、卡路里计算,还有心率及体温测量,各种智能提醒,体感游戏,远程遥控拍照,碰碰交友,读写
请问DA14580这个芯片的开发?
目前在学习DA14580这款芯片,以前没有搞过蓝牙的开发,这款芯片的资料比较少,而且全是英文的,对初级学习有点难入门,大家有什么好的学习方法或资料
换一换
- 如何分清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功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机