摘要:设计测试的买啥,外部电压信号通过 PADC 引入单片机,还有一个LCD的接口。通过TL431提供参考电压。设计PCB,适合一分钟制版。
一、前言
手边有最近得到的 STC32G 单片机,下面测量一下它的ADC的性能。
设计测试的买啥,外部电压信号通过 PADC 引入单片机,还有一个LCD的接口。通过TL431提供参考电压。设计PCB,适合一分钟制版。
一分钟之后得到测试电路板,电路板制作的非常完美。下面进行焊接测试。
读取ADC数值,可以看到出现了一些尖脉冲噪声信号。有可能,是在电路输入端口没有增加RC滤波电路。
▲ 图1.3.1 读取的ADC数值
在输入端口增加一个RC 滤波电路,重新制版,焊接测量。输入1V电压,读取的1024 个数据,对应的标准方差已经降低到 0.569。
▲ 图1.3.2 修改输入电路之后采集数据
下面测试 ADC的DMA 功能。利用ADC的DMA功能,可以大大减轻CPU 在处理ADC采集过程中的程序负担。下面测试对于通道0 的DMA 传输功能。
编写DMA初始化程序,读取0通道 采集 256个数据。STC32G单片机的DMA还有附加功能,不仅能够对采集的ADC结果进行传输,而且还可以求取采集数据的平均值。这里的0 表示第 0 通道,数据 3d 表示平均数字的余数,最后两位表示256个数据的平均值。
这是绘制出采集到的256个数据。通过计算验证,平均值以及平均值的余数和 DMA 给出的数据 是一致的。
▲ 图1.4.1 绘制出采集到的256个数据
利用DG1062产生一个峰峰值1V,平移量为1V,频率为5kHz 的正弦波,这里给出ADC 通过 DMA 采集到的256个数据。可以看到 DMA所采集的数据是匀速采集到的数据。
▲ 图1.4.2 DMA采集到的正弦波信号
测量ADC的采集速度。通过LED显示 DMA 采集256个数据所消耗的时间,这样,可以使用示波器来测量LED的波形,从而获得采集速率。采集 256个数据所消耗的时间为466微秒,这样平均采集一个数据所消耗的时间为 1.8微秒。
本文测试了 STC32G的ADC功能,12位的ADC采集到的数据非常干净。特别测试了 它的 DMA功能,采集256 个数据只消耗 466微秒。这样可以达到 550kHz的采样率。它的DMA功能还付赠送求数据平均值的功能。使用起来实在是太方便了。
来源:TsinghuaZhuoqing