STMCU小助手
发布时间:2022-2-22 20:34
|
问题: 该问题由某客户提出,发生在 STM32F103VDT6 器件上。据其工程师讲述:在其产品中,需要使用STM32 的 ADC 对多路模拟信号进行同步采样。在具体的实现上,采用了 ADC 常规通道的扫描模式来完成这一功能。然而,在调试中过程中发现一个奇怪的现象:当将各路模拟信号的电平设置成相同时,ADC 对各路模拟信号的转换结果相同,用 A 来表示。改变其中一路模拟信号的电平,并保持其各路模拟信号的电平不变,则 ADC 对该路信号的转换结果变为 B。然而,此时与其在扫描次序上相邻的下一路模拟信号的转换结果也发生了变化,记作 C。经多次实验发现,B 和 C 在数值上相对于 A 有相同的变化方向。于是,怀疑 ADC 的相邻通道间存在着某种串扰。 调研: N4 U% Q" [0 a- q6 I) ^- f 重复试验,确认现象如其所述。检查其硬件设计,在与 VDD、VDDA、VSS、VSSA、Vref+、Vref-相关的电路中未发现异常。修改软件,增大 ADC 各个通道的采样保持时间 Ts 。重新测试,发现 C 相对于 A的变化量有所减小。进一步增大 ADC 各个通道的采样保持时间 Ts,发现 C 相对 A 的变化量进一步减小。 结论: 对 ADC 所设置的采样保持时间 Ts偏小,导致相邻通道之间透过采样电容发生了藕合。, R4 C n* D3 S \ 4 E1 U' P' P! n! l 处理: 根据公式:
由该公式计算出的采样保持时间 Ts,可以保证采样电容上的采样值,相对于信号源的电平的偏差不大于 1/4LSB。 . @3 x: W2 m! Z5 v& b; X6 t' y 建议:$ O4 z/ J: T. C! m: c+ s( j/ v 当 ADC 的采样电容在两个通道之间进行切换时,其电路如图(一)所示: 3 z+ z' Y) p4 g7 P
其中, Cs 是 ADC 的采样电容,Rs 是 ADC 的采样电阻。两路信号源 A 和 B 的电平分别为 Ua 和 Ub,其内阻分别是 Ra 和 Rb。为了简化问题,假定两路信号的扫描次序是由信号源 B 到信号源 A,且信号源B 接入的时间足够长,以至在通道切换时采样电容 Cs 上的电压可以近似的等于 Ub ,于是,在通道切换到信号源 A 后,采样电容 Cs 上的电压将按如下曲线变化: & ?0 n0 D4 S1 P8 g9 o
3 ^" X% L- g6 w$ g2 D$ ~ 随着时采样保持时间 t 的增长,采样电容 Cs 上的电压逐渐趋近于 Ua ,而其与 Ua 之间的误差为: ; |& K. o0 z1 F: }8 l* }
* f3 L' H8 d" ?; J1 J$ }* s 该误差
1. 通过增加采样保持时间 t,使 获得更多的衰减时间;: U {4 B- c6 L5 j( ~ 2. 通过减小信号源的内阻 Ra,使 具有更快的衰减速率;8 w( y8 v' Y" X7 h ! u5 @ a+ n: L# e1 v4 ?
6 |1 Y6 ~6 P {8 x- E# ] 以上两点可以作为消除 ADC 不同通道之间通过采样电容 Cs 产生寄生藕合的理论依据。在实际运用时,在增加采样保持时间方面可以通过修改 ADC 的设置参数来实现,而在降低信号源内阻方面可以通过在信号源与 ADC 之间加入跟随器进行隔离来实现。; O$ b: b8 R8 [1 u4 n) R7 D |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版