【雅特力开发板 AT32F421 测评】-TEST03 ADC测试
本帖最后由 Gen_X 于 2021-4-30 21:04 编辑<p>条件:雅特力开发板 AT32F421</p>
<p>MCU时钟120Mz, ADC时钟10Mz(最大28MHz,还有很大余量)。</p>
<p>输入:ADC1第一个通道,即 ADC1_0 PA0,内部基准。</p>
<p>测试项目:单次单通道最快采样速度下ADC精度大概范围。</p>
<p>测试环境:雅特力开发板 AT32F421。</p>
<p>单次采样时间 :1.5 + 12.5 = 14 周期 = 1.4 us,采样频率10次/s ,</p>
<p>输出:USART1@256000 ,分别输出采样值和0.5深度的一阶惯性滤波值(便于观察离散度)</p>
<p>ADC 配置:</p>
<p> ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1_5);</p>
<p>采集及滤波:</p>
<p> usAdc = (double)(Get_ADC()) * ADC_VREF / 4096 ;</p>
<p> ADCtemp = (0.5*usAdc + 0.5*ADCtemp ) ; // 0.5 LAG</p>
<p>输出:</p>
<p> printf("%1.4f %1.4f \r\n", usAdc , ADCtemp); <br />
bsp_LED_Toggle();</p>
<p>零点测试结果1: 可以看出第三位小数(mV)离散度不大于±5mV</p>
<p></p>
<p>1.4 V 电池测试结果1: 可以看出第三位小数(mV)离散度不大于±5mV</p>
<p></p>
<p>板子3.3V电源测试结果1: 可以看出第三位小数(mV)离散度不大于±5mV</p>
<p></p>
<p>对于12位ADC,在1.4 us采集速度下,能有这样的精度和稳定性,是非常难得的。</p>
<p>如果采样速度降低,或最高速度下加上简单滤波,可以简单做到±2mV的动态精度。</p>
<p>注:本次测试仅代表本开发板的测试结果,不代表所有芯片和其它开发板的性能。</p>
<p> </p>
<p>以前用别的厂家做过ADC测试,小于ms级的采集速度,小数2位后基本发散,最大加过0.01的L</p>
<p>AG滤波系数,不加无法使用,这就是为什么要做这个测试的原因。</p>
<p>总之,测试结果满意。</p>
<p> </p>
<p> </p>
<p> </p>
<p>恭喜喜提一满意芯片 哈哈,期待后续评测</p>
本帖最后由 Gen_X 于 2021-5-2 15:15 编辑
<p>祝大家劳动节快乐!</p>
<p>今天——劳动节,无意中查看了AT32F421的ADC最高采集时钟,前面为了让测试顺利,我取了10M采集时钟。</p>
<p>根据时钟定义,我提高到了20M,离最大28还有距离,但下一档就超过了,所以,只能做20M试验了。</p>
<p>结果出乎预料:零点和3.3v测试竟然在mv级没有误差,误差在小数点后第4位,这完全超出了我的认知。</p>
<p>总结:不一定ADC采集时钟越慢精度越高!</p>
<p> 期望大家注意,最高采用和MCU较为规整的整数采集频率,例如MCU为120M,则采集时钟取8和12的整数倍,</p>
<p>例如 :3、4、6、8、12、20等,并测试采用误差最小且最稳定的一个时钟。</p>
<p> 仅代表个人、本次测试结果! </p>
谢谢分享
页:
[1]