STM32F373CCT6之SDADC试用平凡的阳光想使用stm32的sdadc,但看到网上有人说,stm32的sdadc不准确,在0.5V以上时偏差较大;甭管怎么说,先试试看。使用外部电压基准,测量dac输出电压,dac为无缓冲模式,后接洞洞板上的ad8629跟随,ad8629的输出接adc与sdadc;此外还监测了stm32F373内部温度传感器,纽扣电池电压,参考电压;数据通过串口输出,经Excel处理成图。由于纽扣电池没安装,测到的是Vcc经过2个二极管后的电压,它经内部分压后测其半电压值;Vref默认也为分压后测其半电压。Dac输出0-4095,每个电平经adc与sdadc各取3个样点。想知道sdadc在不同增益下的表现,故将各增益分别列出。由于sdadc结果有正负,在0V时会有负值出现,对此做了绝对值处理;在增益为0.5时,等于Vref的电平输出结果为32767。为方便比对,将sdadc取值范围由(0-32767)换算到(0-4095)。不同增益下的测试数据,成图如下:增益=0.5:增益=1:增益=2:增益=4增益=8增益=16增益=32当外部温度变化时,它们会怎么样,用热风枪吹芯片,使其温度变化,可以见见温度的影响,顺便瞧瞧内部温度传感器的表现。测试数据是连续的,但Excel不支持太多的数据成图,便把数据1分为3,分别成图;大体对应变温的三个阶段:1:热风枪加温---吹热风2:自然冷却3:加速冷却---吹常温风,约22摄氏度关于sdadc的增益,共有7级:0.5、1、2、4、8、16、32其中16与32为数字增益,何为数字增益,据说是用的滤波器增益,这部分增益有何不同:本次测试在0V附近测不准,应是地处理不当;在32倍增益时,测量的电压在0.05V以下,地电平影响较大,数据量小且不可靠,无法判别数字增益的差异。差分测量,似乎与共模电平有关连,还没找到解决办法。想拿它直接测热电偶,就目前来看欠妥,须在其前端加信号处理电路。增益=0.5_1:增益=0.5_2:增益=0.5_3:增益=4_1:增益=4_2:增益=4_3:增益=16_1:增益=16_1:增益=16_1:增益变化时,噪声会如何变化,可以换算sdadc值,使之与adc值靠近比对。增益=1_增益噪声:增益=8_增益噪声:增益=32_增益噪声:归结:诚如网友所说,sdadc在测量电压0.5V时,偏差较大;但就以上的测试数据,可以看出这个偏差是由于斜率不同造成的,也就是说这个偏差容易修正。还可以看到,sdadc确实比adc稳定度高一些,温度传感器,对于测外温度而言,可能靠不住。由于Vref使用了外部3V基准电压源,没有看到温度对sdadc有显著的影响。