测试STC8H8K64U-AD转换

举报
tsinghuazhuoqing 发表于 2021/12/27 01:02:51 2021/12/27
【摘要】 简 介: 本文给出了基于 STC8H8K 64设计的AD转换电路板。使用快速制版完成模块制作。给出了相应的测试结果。 关键词: * STC8H8K *,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

▲ 测试电路板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的脉宽波形

▲ 测量P0.3的脉宽波形

  上述转换时间是在 ADC CFG=0x20的情况下,转换速度。此时 ADC 的时钟频率为SYSClock /2.

  将 ADC CFG=0x2f,按照数据手册中的数据,此时 ADC 的时钟应该是SYSCLOCK//16。 ADC 的转换时间应该是前面时间的16倍。下面显示了此时对应的P0.3的波形, ADC Convert的时间为34us左右。仅仅是前面的时间的10倍左右。
▲ 测量P0.3的脉宽波形

▲ 测量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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。