测试STC8H8K64U-AD转换
简 介: 本文给出了基于
STC8H8K
64设计的AD转换电路板。使用快速制版完成模块制作。给出了相应的测试结果。
关键词
: *STC8H8K
*,AD,快速制版
2020年4月23日,拿到了刚刚出品的 STC8H8K
64U芯片,这款自己带有8K内存,并且有USB接口的芯片,还有12bit ADC
,适应于更多的工业信号采集和控制应用。下面对于其AD功能进行测试。
§01 测试电路板设计
设计测试电路板的原理图如下。仅仅引出了AD0~AD3的引脚。
工程文件:
D:\zhuoqing\AltiumDesigner\Test\2020\STCTest\
STC8H8K
64TSOP48.PcbDoc *
▲ 测试电路板的原理图
▲ 测试电路板PCB
§02 测试软件
工程文件目录:
D:\zhuoqing\window\C51\STC\Test\2020\Test8H8K\Test8H8K.uvproj
▲ 测试电路
1. AD转换精度
使用信号源给出AD采样的正弦波,频率0.877Hz。峰峰值为:0.5V~4.5V。
▲ 测试的正弦波波形
下图显示了对波形采集了1024点的数据波形。其中数据的波动范围是0~4095。反映了AD的有效取值范围是12bit。
▲ 采集到的数据波形
下面是缩小信号幅值之后,对于不同的两个频率信号采集后的波形。其中可以看到混杂有小的尖峰干扰信号。
▲ 采集到的数据波形
▲ 采集的数据波形
对信号源的信号使用一个电容连接到底线,可以看到其中干扰信号消失了。
▲ 采集的数据波形
2. AD转换时间:
测量 ADC
Convert()时间。使用P0.3作为IO输出脉冲波形。在转换前,将P0.3置高电平,在转换后将P0.3置低电平。测量该信号的脉宽,可以获得 ADC
Convert()时间。
下图所展示的 ADC
的时间波形,可以显示进行一个 ADC
的时间大约是3.4us。
▲ 测量P0.3的脉宽波形
上述转换时间是在 ADC
CFG=0x20的情况下,转换速度。此时 ADC
的时钟频率为SYSClock /2.
将 ADC
CFG=0x2f,按照数据手册中的数据,此时 ADC
的时钟应该是SYSCLOCK//16。 ADC
的转换时间应该是前面时间的16倍。下面显示了此时对应的P0.3的波形, ADC
Convert的时间为34us左右。仅仅是前面的时间的10倍左右。
▲ 测量P0.3的脉宽波形
3. AD采集数据缓冲区的长度
8H8K具有8KXRAM。测试该RAM可以允许采集多长的数据;
(1) ADC
_BUFFER = 2048
采集到的数据波形为:
▲ 采集的数据波形
(2) ADC
_BUFFER= 3800
此时程序编译完之后,所占的空间为:
Program Size: data=53.1 xdata=7866 code=2993
▲ 采集的数据波形
设置AD_BUFFER=3900,此时编译完程序的空间为:
Program Size: data=53.1 xdata=8066 code=2993
此时已然能够采集到数据。
▲ 采集的数据波形
Program Size: data=53.1 xdata=8166 code=2993
此时仍然能够采集数据。
但是当AD_BUFFER=4000时,此时程序空间为:
Program Size: data=53.1 xdata=8266 code=2993
然后再输入采集命令,就无法执行程序了。
这是由于SerialTXT的缓冲占用了xdata一部分空间造成的。
然后将serialtxt.中的所有数据都移动到idata,此时采集数据便可以正常进行了。
下面是采集到的4000个数据的波形。
▲ 采集的数据波形
将UART1中的缓冲区也移动到 idata,这样便可以设置AD_BUFFER= 4096了。下面是采集到4096个 ADC
的数据波形。
▲ 采集的数据波形
如果设置AD_BUFFER=4200,超过4096,采集到的数据波形为:
▲ 采集的数据波形
下面是设置AD_BUFFER= 4097,采集到的数据波形。可以看到最后一个数字实际上已经是错误数字了。
▲ 采集的数据波形
§03 结论
通过以上实验,可以得到如下的结论:
1. STC8H8K
单片机的AD转换精度为12Bit
2. 每个通道的转换时间最小为3.4us
3. 内部具有可以使用的xdata空间最大为8192bytes(4096word)的空间。
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/105726444
- 点赞
- 收藏
- 关注作者
评论(0)