好的,针对 STM32 微控制器 与 ADS1247 高精度 24 位 ADC(模数转换器) 的应用,以下是关键信息的中文说明:
核心概念:
-
ADS1247 是什么?
- 德州仪器 (TI) 生产的一款高精度、低噪声、24 位分辨率的 Delta-Sigma (ΔΣ) 型模数转换器 (ADC)。
- 主要设计用于低频、高精度测量应用,如:
- 工业过程控制(温度、压力、称重传感器)
- 医疗仪器
- 科学仪器
- 精密电源监控
- 任何需要精确测量微弱直流或低频信号 (<10Hz) 的场合。
- 关键特性:
- 24 位分辨率:提供极高的测量精度。
- 低噪声:极低的 RMS 噪声(在低增益和低数据速率下可达纳伏级)。
- 可编程增益放大器 (PGA):增益可选 1, 2, 4, 8, 16, 32, 64, 128 倍,能直接放大微小信号(如热电偶、应变片)。
- 低功耗:有多种省电模式。
- 集成式:包含激励电流源 (IDACs)、低噪声 PGA、内部振荡器、基准电压缓冲器、温度传感器等,减少外部元件需求。
- 灵活输入:4 路差分输入或 7 路单端输入(通过多路复用器 MUX 选择)。
- SPI 接口:与 STM32 等微控制器通信的标准串行接口。
-
STM32 的角色:
- 主控制器 (Master):STM32 是整个系统的核心,负责控制 ADS1247 的操作和数据采集。
- 通过 SPI 通信:STM32 使用其内置的 SPI 外设 (如 SPI1, SPI2, SPI3) 与 ADS1247 连接和通信。
- 配置寄存器:STM32 通过 SPI 向 ADS1247 写入命令和数据,配置其工作模式(数据速率、增益、输入通道、激励电流等)。
- 读取转换数据:STM32 通过 SPI 从 ADS1247 读取转换完成的 24 位数字量。
- 数据处理与计算:STM32 接收到的原始 ADC 数据需要经过处理(如补码转换、缩放、滤波、校准)才能转换成有物理意义的工程单位(如 mV, °C, g)。
- 触发转换:STM32 可以控制转换的启动/停止。
- 中断处理:通常连接 ADS1247 的
DRDY(Data Ready) 引脚到 STM32 的一个外部中断 (EXTI) 引脚,当转换完成时触发 STM32 中断,STM32 在中断服务程序 (ISR) 中读取数据,提高效率。
硬件连接要点:
-
电源 (Power):
- 为 ADS1247 提供极其纯净、稳定的模拟电源 (
AVDD,AVSS) 和数字电源 (DVDD)。通常建议使用 LDO 稳压器。 - 模拟地和数字地 (
AGND,DGND) 在靠近芯片处单点连接。 - 旁路电容至关重要:在
AVDD/AVSS和DVDD/DGND引脚靠近芯片处放置高质量的陶瓷去耦电容(如 0.1μF 和 10μF)。
- 为 ADS1247 提供极其纯净、稳定的模拟电源 (
-
基准电压 (Reference Voltage -
VREF):- 这是 ADS1247 精度的心脏。必须使用超低噪声、低温漂、高稳定性的基准电压源芯片(如 REF5025, REF5040)。
- 基准电压的稳定性和噪声直接影响 ADC 的精度。确保
REF+和REF-引脚连接正确,并靠近芯片放置合适的滤波电容。
-
SPI 接口 (SPI Interface):
- 连接 STM32 的 SPI 引脚到 ADS1247:
SCLK(SPI 时钟) -> STM32 SPISCKDIN(数据输入,STM32 -> ADS1247) -> STM32 SPIMOSIDOUT(数据输出,ADS1247 -> STM32) -> STM32 SPIMISOCS(片选) -> STM32 任意 GPIO (用作软件片选)
- 注意电平匹配:确保 STM32 和 ADS1247 的 I/O 电压 (
DVDD) 兼容(通常都使用 3.3V)。
- 连接 STM32 的 SPI 引脚到 ADS1247:
-
数据就绪信号 (
DRDY/DOUT):DRDY/DOUT引脚在数据转换完成后会拉低(电平变化)。强烈建议将此引脚连接到 STM32 的一个外部中断 (EXTI) 引脚和一个GPIO 输入引脚。EXTI 用于高效通知转换完成,GPIO 用于读取DOUT状态(如果复用为数据输出)或轮询DRDY。
-
复位引脚 (
RESET):- 连接到 STM32 的一个 GPIO 输出引脚。在硬件上电或需要强制复位 ADC 时,STM32 可以拉低此引脚一段时间 (>40ns) 来复位 ADS1247。
-
模拟输入 (Analog Inputs -
AINPx,AINNx):- 连接你的传感器信号。确保传感器信号的地与 ADS1247 的
AGND正确连接。 - 对于高阻抗源或长导线,考虑输入滤波(RC 低通滤波)和适当的防护/屏蔽措施以减少噪声。
- 连接你的传感器信号。确保传感器信号的地与 ADS1247 的
软件驱动要点 (STM32 侧):
-
初始化:
- 配置 SPI 外设:
- 模式:主机模式 (Master)。
- 时钟极性 (CPOL) 和时钟相位 (CPHA):ADS1247 要求 Mode 1 (CPOL=0, CPHA=1)。务必确认!
- 数据大小 (Data Size):设置为 8 位 (SPI 通常按字节传输)。
- 时钟速率 (Baud Rate):参考 ADS1247 手册的最大 SPI 时钟限制 (通常可达 5MHz 或更高)。
- 片选 (NSS):设置为软件管理 (Software NSS Management),使用 GPIO 控制
CS线。
- 配置 GPIO:
CS引脚:配置为推挽输出,初始置高。DRDY引脚:配置为带上拉或下拉(根据 ADS1247 的默认状态)的输入,并使能其 EXTI 中断。RESET引脚:配置为推挽输出,初始置高。
- 复位 ADS1247 (可选但推荐): 拉低
RESET引脚一段时间 (如 1ms),然后释放。 - 发送初始化命令序列 (
RESET命令): 发送0x06复位命令。 - 延时等待稳定: 复位后或上电后,给 ADC 内部电路足够的稳定时间(手册有说明)。
- 配置寄存器: 通过
WREG(写寄存器) 命令配置关键寄存器(按需):MUX0:选择输入通道和增益 (AINP,AINN,PGA增益)。SYS0:选择数据速率 (DR)、传感器烧断检测电流使能、内部温度传感器使能等。IDAC0,IDAC1:配置电流源输出 (如果用于激励传感器如 RTD)。VBIAS:配置偏置电压发生器 (如果用于共模电压偏移)。MUX1:配置内部基准缓冲器使能/旁路等。- ... (根据具体应用需求配置)
- 配置 SPI 外设:
-
读取转换数据 (常用方法):
- 中断驱动法 (推荐):
- 启动连续转换模式 (发送
START命令0x08或配置为连续转换)。 - 等待
DRDY下降沿触发 STM32 EXTI 中断。 - 在
DRDY中断服务程序 (ISR) 中:- 拉低
CS片选。 - 发送
RDATA命令 (0x12)。 - 连续读取 3 个字节 (24 位数据)。注意字节顺序 (通常是 MSB 先出)。
- 拉高
CS。 - 将读取的 3 个字节组合成一个 24 位整数。
- 处理符号位: ADS1247 输出的是二进制补码格式。24 位最高位 (MSB) 是符号位。需要将其转换为有符号的 32 位整数(符号扩展)。
- 存储或处理数据(可能需要滤波、单位转换等)。
- 拉低
- 启动连续转换模式 (发送
- 轮询法:
- 启动转换 (单次
START命令或连续)。 - 在主循环中轮询查询
DRDY引脚状态 (配置为输入)。 - 当检测到
DRDY变低时,执行与中断法中相同的读取数据流程 (CS低 ->RDATA-> 读 3 字节 ->CS高 -> 组合 -> 符号处理)。
- 启动转换 (单次
- 中断驱动法 (推荐):
-
数据处理:
- 符号扩展:
int32_t raw_value = ((int32_t)(adc_data[0] << 16) | (adc_data[1] << 8) | adc_data[2]) >> 8;(适用于 MSB 对齐左移的 24 位数据)。更安全的方式是判断符号位后再扩展。 - 电压计算:
Voltage (V) = (raw_value * V_ref) / (2^(23) - 1)或(raw_value * V_ref) / (2^(23))(取决于你如何考虑满量程)。raw_value:转换后的有符号 32 位整数。V_ref:实际施加在 ADS1247REF+和REF-引脚之间的基准电压(伏特)。2^23:因为最高位是符号位,有效位是 23 位 +/- 满量程。
- 考虑 PGA 增益: 如果使用了 PGA (
GAIN> 1),计算公式为:Voltage (V) = (raw_value * V_ref) / (GAIN * (2^(23) - 1))。注意:输入电压范围被缩小了GAIN倍。 - 工程单位转换: 根据传感器特性(如应变计的灵敏度系数、热电偶的分度表、RTD 的电阻-温度关系)将计算出的电压转换为最终需要的物理量(力、温度等)。
- 符号扩展:
重要注意事项:
- 数据手册为王: 务必仔细阅读 STM32 参考手册 (关于 SPI、GPIO、EXTI 配置) 和 ADS1247 数据手册 (关于时序、寄存器定义、电气特性、布局建议)。这是开发的基础。
- 电源和接地: 这是高精度 ADC 应用成败的关键。糟糕的电源和接地会引入噪声,显著降低实际性能。务必使用 LDO、大量高质量去耦电容、遵循星型接地或单点接地原则。
- 基准电压: 选择与精度要求匹配的高质量基准源。
- 布局: 模拟部分(输入信号、基准源、电源)和数字部分(SPI、STM32)的布局要分开。避免数字信号线跨越模拟区域。使用铺铜地平面。缩短模拟信号走线。
- 输入滤波: 在 ADC 输入端添加合适的 RC 低通滤波器 (截止频率略高于关心的信号频率) 可以滤除高频噪声。
- 校准: 为了实现最高精度,需要考虑零漂 (Offset) 和增益误差 (Gain Error) 的校准。ADS1247 内部有校准寄存器 (
OFC,FSC),STM32 可以控制校准流程 (SYS0寄存器相关位) 并存储校准系数。 - SPI 时序: 严格遵循 ADS1247 手册规定的 SPI 时序图 (片选建立/保持时间、数据建立/保持时间、时钟高低电平时间)。STM32 SPI 配置要与之匹配。逻辑分析仪是调试 SPI 通信的利器。
DRDY处理: 使用 EXTI 中断是最有效率的方式,避免主循环忙等。- 数据有效性: 在读取数据后,可以检查状态寄存器 (
STATUS命令0x24) 以确认数据是否有效(没有上溢、下溢、ADC 是否准备好等)。
总结:
使用 STM32 驱动 ADS1247 的核心在于:
- 正确的硬件连接 (纯净电源、优质基准、匹配 SPI、
DRDY连接)。 - 精确的 SPI 配置 (Mode 1, 8位传输)。
- 遵循 ADC 的通信协议 (命令字、寄存器读写时序、读取 3 字节数据)。
- 合理的数据处理 (24 位组合、二进制补码转换、基于基准电压和增益的工程值计算)。
- 严谨的 PCB 布局和电源设计。
如果你有 STM32 和 SPI 的基础知识,结合 ADS1247 的数据手册,仔细编写和调试代码,就能实现高精度的数据采集功能。祝你成功!如果有具体问题(如某个寄存器配置、调试遇到的问题),可以进一步提问。
如何去实现一种基于ADS1247的PT100测温设计
基于ADS1247的PT100测温设计总结前言本人做嵌入式开发,之前很多资源都是从博客上看到,本次因为工作项目涉及到ADS1247设计的温度采集,需要设计硬件开发,网上找了很多资料走了不少弯了,现在
hfgsd
2022-02-25 06:20:41
请问ADS1247的SPI最高速率是多少?
您好!ADS1247的SPI最高速率是多少?目前我使用AVR的单片机控制ADS1247,SPI的速率为4M时,可以读出采集的24位数据,但是用数据转换的电压值与实际值相差很大?
ju978779
2019-06-18 09:58:33
为什么我的ADS1247读数不正常?
朋友们好 ,我最近在做 ads1247 这个芯片我的SPI通讯是正常的 能够正确都出我写入的寄存器的值,但是读的书不正确附上我的电路图和 测试波形请问 这种情况 是怎么回事 啊 我测了差分输入和电压
cmlzm
2019-08-14 04:35:56
ADS1247驱动不能将值写入寄存器
我在些ADS1247驱动的时候,发现不能将值写入寄存器,能够读取寄存器中的值,但是一直是复位的值,而事先写的值并没有写进去。想请教下各位是怎么回事,以下是一段测试代码。SPI_CS_CLR
xlong97
2019-06-25 14:56:04
ADS1247 ISSUE怎么改变电位差
目前使用TI-M4對ADS1247在讀資料上有一些問題請教,在DOUT回傳24Bit(MSB-Mid-Byte-LSB)時量到的前二個Byte是一模一樣的,不管怎麼改變電位差,DOUT回傳前二個
hytgab
2019-06-14 12:14:09
ADS1246/47/48模数转换器的特点和主要性能特性分析
ADS1246采用小型TSSOP-16封装的ADS1247可在一个TSSOP-20封装,并采用TSSOP-28封装的ADS1248。所有三款器件的额定扩展规定的温度范围为-40°C至+ 105°C。
2020-10-28 11:02:04
请问有人能帮忙推荐一款TI的电压基准芯片吗?
最近打算用ADS1247芯片进行小信号(0-20mV)采集 ,工作电压5V,为避免干扰,不想采用运放进行信号放大,而是想直接进行采集,请问TI专家,在利用ADS1247设计电路时应该注意哪些方面呢?还有,能不能帮忙推荐一款TI的电压基准芯片呢?非常感谢!另外,不知道REF5020能否满足要求呢?
1234kkk
2019-06-12 07:49:48
ADS1246 24位,2kSPS,1路口Delta-SigmaADC技术手册
ADS1246、ADS1247和ADS1248高度集成、精准,都是24位 模数转换器(ADC)。这些设备配备了板载、低噪声、可编程增益 放大器(PGA),一种具有单周期稳定数字滤波器的高精度
2025-11-24 10:25:17
请问以上是什么原因造成的?
我现在测试的ADS1247写入数据寄存器的数据读出验证是正确的,但是配置的1mA电流无法在AIN0输出,采集的数据寄存器中的数据也不正常,数据位0xFF8000-0X000000。请问以上是什么原因
60user13
2019-06-19 08:12:02
ADS1247|ADS1246|ADS1248
ADS124x 24-Bit, 2-kSPS, Analog-To-Digital Converters With Programmable Gain Amplifier (PGA) For Sensor Measurement datasheet (Rev. H)
2022-11-04 17:22:44
模数转换器 SIG24132 国产替代 ADS1248
and Reference Compatible Parts ADS1220/ADS1247/ADS1248 (10nV/℃ and 3ppm/℃) Features Programmable Gain: 1
jf_01750610
2023-12-13 09:55:52
MAX1247BCEE+T 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BCEE+T相关产品参数、数据手册,更有MAX1247BCEE+T的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BCEE+T真值表,MAX1247BCEE+T管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-10 18:21:35
TI模数转换器 (ADC)ADS1247
2022-12-02 14:39:05
MAX1247CCEE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247CCEE相关产品参数、数据手册,更有MAX1247CCEE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247CCEE真值表,MAX1247CCEE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-09 18:59:27
MAX1247BEPE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BEPE相关产品参数、数据手册,更有MAX1247BEPE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BEPE真值表,MAX1247BEPE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-05 20:58:23
MAX1247BEPE+ 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BEPE+相关产品参数、数据手册,更有MAX1247BEPE+的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BEPE+真值表,MAX1247BEPE+管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-06 20:37:37
MAX1247ACEE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247ACEE相关产品参数、数据手册,更有MAX1247ACEE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247ACEE真值表,MAX1247ACEE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-11 18:22:34
MAX1247BCEE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BCEE相关产品参数、数据手册,更有MAX1247BCEE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BCEE真值表,MAX1247BCEE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-11 18:25:14
MAX1247BCPE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BCPE相关产品参数、数据手册,更有MAX1247BCPE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BCPE真值表,MAX1247BCPE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-11 18:25:29
MAX1247AEEE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247AEEE相关产品参数、数据手册,更有MAX1247AEEE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247AEEE真值表,MAX1247AEEE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-09 19:18:54
MAX1247BEEE+T 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BEEE+T相关产品参数、数据手册,更有MAX1247BEEE+T的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BEEE+T真值表,MAX1247BEEE+T管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-10 18:28:29
MAX1247BCPE+ 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247BCPE+相关产品参数、数据手册,更有MAX1247BCPE+的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247BCPE+真值表,MAX1247BCPE+管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-06 20:25:37
MAX1247ACPE+ 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247ACPE+相关产品参数、数据手册,更有MAX1247ACPE+的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247ACPE+真值表,MAX1247ACPE+管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-06 20:31:47
MAX1247ACEE+ 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247ACEE+相关产品参数、数据手册,更有MAX1247ACEE+的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247ACEE+真值表,MAX1247ACEE+管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-05 20:04:16
MAX1247AEPE 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247AEPE相关产品参数、数据手册,更有MAX1247AEPE的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247AEPE真值表,MAX1247AEPE管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-05 20:50:07
MAX1247ACEE+T 数据采集 - 模数转换器(ADC)
电子发烧友网为你提供Maxim(Maxim)MAX1247ACEE+T相关产品参数、数据手册,更有MAX1247ACEE+T的引脚图、接线图、封装手册、中文资料、英文资料,MAX1247ACEE+T真值表,MAX1247ACEE+T管脚等资料,希望可以帮助到广大的电子工程师们。
2023-01-10 18:46:51