AN4207
应用笔记
STM32F37x/38x SDADC (Sigma-Delta ADC)入门
前言
STM32F37x/38x 系列微控制器整合了带有 DSP 与 FPU 指令、工作频率为 72 MHz 的 32 位
ARM Cortex-M4 内核和高级模拟外设。
此系列是 Cortex-M4 内核和精确 16 位 Sigma-Delta ADC 的结合。
本文概述了 SDADC 的主要特性,并演示了怎样在各种应用案例中使用 SDADC。本文用举
例的方法演示了四个应用案例。
1. 使用 PT100 的温度测量
2. 使用 MPX2102A 的压力测量
3. 录音机
4. 心电图 (ECG)捕获
为帮助您快速上手,四个应用案例都用 C 语言实现,并作为 STM32F37x/38x DSP 和标准外
设库包 stm32f37x_dsp_stdperiph_lib 和 STM32373C-EVAL 演示固件包 stm32373c-eval_fw.
的一部分
请注意,本文并不能取代 STM32F37x/STM32F38x 参考手册 RM0313 中的 Sigma-Delta 模
数转换器 (SDADC)一节。
本文中给出的所有数值仅作参考。请参考相关的数据手册以获取有效的最新数据。
表 1.
微控制器
适用产品
类型
STM32F37x, STM32F38x
部件编号
2012 年 12 月
Doc ID 023945 Rev 1
1/28
www.st.com
目录
目录
1
2
3
4
5
AN4207
sigma-delta 转换器基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
16 位 SDADC 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
时钟选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
输入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
SDADC 电压参考 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
匹配阻抗。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
Sigma-delta (SD) vs. 逐次逼近型 (SAR)
模数转换器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
应用程序示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 温度测量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 压力测量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 录音机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4 心电图 (ECG)捕获 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5 电表应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2/28
Doc ID 023945 Rev 1
AN4207
表格索引
表格索引
表 1.
表 2.
表 3.
表 4.
表 5.
表 6.
表 7.
适用产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
电压步进大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
典型 SDADC 输入通道输入阻抗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
SDADC vs. SAR ADC 特性比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
温度传感器电压范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
压力传感器电压范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
文档修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Doc ID 023945 Rev 1
3/28
图片索引
图片索引
AN4207
图 1.
图 2.
图 3.
图 4.
图 5.
图 6.
图 7.
图 8.
图 9.
图 10.
图 11.
图 12.
图 13.
图 14.
图 15.
图 16.
sigma-delta 模数转换器框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
差分模式中的输入信号范围. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
差分传感器至差分通道的典型连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
单端偏移模式中的输入信号范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
单端零参考模式中的输入信号范围 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
SDADC 中的偏移误差. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
SDADC 中的增益误差. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
使用精确参考电压进行增益校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
SDADC 软件校准步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
输入通道的等效输入电路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
ADC 架构 vs. 分辨率和采样率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
录音机应用框图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
录音机应用的流程图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
心电图 (ECG)捕获应用的框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
ECG 捕获应用的流程图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
使用 STM32F37x/38x 器件的三相电表应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4/28
Doc ID 023945 Rev 1
AN4207
sigma-delta 转换器基础
1
sigma-delta 转换器基础
Sigma-delta 转换器又称过采样转换器,它包含两个基本电路:调制器和数字滤波器(图1)。
在调制器中,输入信号被加至数模转换器 (DAC)输出的负反馈信号。通过集成电路之后,
信号的差值到达比较器的输入 (1 位 ADC),在此与参考电压比较 (比较器作为 1 位量化器
工作)。比较器的输入信号 (1 位 ADC)控制着 1 位转换器,到达数字滤波器的输入。数字
滤波器降低流速,将 1 位的流转换为 16 位的字。使用的滤波器拓扑确保了低通的阶为 Sinc³。
图 1.
sigma-delta 模数转换器框图
Vin
1ADC
1
16
1DAC
MSv31135V1
Doc ID 023945 Rev 1
5/28
16 位 SDADC 概述
AN4207
2
2.1
16 位 SDADC 概述
主要特性
STM32F37x/38x 器件具有三个嵌入式 Sigma-Delta 模数转换器(SDADC)。它们可以同步,
且每一个都有下列主要特性:
● 有效位数 (ENOB)等于 14 位
●
5 个差分输入对,或者 9 个单端输入,或它们的组合
● 高性能数据吞吐量:
– 当在不同通道之间复用时,为 16.6 ksps 输入采样率
– 单通道工作时为 50 ksps 输入采样率
● 可编程增益:x0.5、 x1、 x2、 x4、 x8、 x16 及 x32
● 可选参考电压:VDDSD、 1.22 V、 1.8 V 及 VREF
2.1.1
时钟选择
SDADC 时钟由 SDADCCLK 提供,它按可选的倍数将系统时钟 (SYSCLK)预分频:2、4、
6、 8、 10、 12、 14、 16、 20、 24、 28、 32、 36、 40、 44 和 48。
SDADC 的典型工作频率为快速模式下 6 MHz 及慢速模式下 1.5 MHz。
示例:
如果 SYSCLK 设为 72 MHz,则 SDADC 分频器应设为 SYSCLK/ 典型频率:
快速模式:预分频 = 72 MHz / 6 MHz = 12
低速模式:预分频 = 72 MHz / 1.5 MHz = 48
2.1.2
输入模式
SDADC 有三种可能的输入模式,也可组合使用。
● 差分模式:
● 单端偏移模式
● 单端零参考模式
差分模式
当所用传感器产生的信号非常小,易受噪声影响时,推荐使用差分模式。当使用热电偶和桥
式传感器 (压力传感器)时,尤其如此。
在差分模式中,SDADC 转换的是 SDADCx_AINyP 和 SDADCx_AINyM 的差值。结果可能是
正值或负值,取决于哪个输入电压更高。
SDADC 无法测量负电压,并且每个通道的输入电压都必须在器件的电气极限之内。
输入范围为 [-Vref/(2*gain), + Vref/(2*gain)],转换值范围为 [-32767, +32767]
注:
6/28
Doc ID 023945 Rev 1
AN4207
16 位 SDADC 概述
示例:
对于 1.22V 的参考电压, 1 倍增益,输入范围为 +/- 0.61V
公式为:
Vin = SDADCx_AINyP - SDADCx_AINyM = ReadData * Vref/(2 x gain x 32767)
其中, ReadData 为 SDADC 数据寄存器的两个补充读数据 (SDADCx_JDATAR 或
SDADCx_RDATAR)
图 2.
差分模式中的输入信号范围
SDADCx_AINyP - SDADCx_AINyM
+ Vref/(2x)
- Vref/(2x)
图3 显示了怎样将桥式传感器连接至 16 位 SDADC。
如下所示,正输入 (SDADCx_AINyP)和负输入 SDADCx_AINyM)连至传感器输出。
MSv31128V1
Doc ID 023945 Rev 1
7/28
16 位 SDADC 概述
AN4207
图 3.
差分传感器至差分通道的典型连接
SDADC_VREF+
Vref
SDADCx_INyP
SDADCx_INyM
STM32F37x
SDADC_VREF-
MSv31129V1
单端偏移模式
在单端偏移模式中,通过将负输入内部连至0 V 进行转换,负输入的相应引脚(SDADCx_AINyM)
可用作其它用处。要测量的信号施加于正输入 SDADCx_AINyP。此工作模式与差分模式类
似,只是输出数据范围仅为 0 到 +32767,而不是 –32767 到 +32767,因此有一半的动态范
围损失,导致 SNR 下降。
公式为:
Vin = SDADCx_AINyP = ReadData * Vref/(2 x 增益 x 32767)
其中, ReadData 为 SDADC 数据寄存器的两个补充读数据 (SDADCx_JDATAR 或
SDADCx_RDATAR)
8/28
Doc ID 023945 Rev 1