简 介: 本文给出了基于 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)的空间。

测试STC8H8K64U-AD转换相关推荐

  1. 单片机ad转换测电压c语言,大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了...

    大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了 [复制链接] #include"ADC电压表.H" #include uchar value; void adc_in ...

  2. 电压越低采集的ad值反而变大_80多条关于AD转换设计的经验总结

    1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最根本的原则就是信号调理引起的噪声和误差要在ADC的1个LSB之内.根据这个目的,可以需要选择指标合 ...

  3. ad如何选中当前层上的器件_82条AD转换设计经验总结!

    看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 了解数据转换器错误及参数 1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理, ...

  4. 定时器0 定时器2波特率发生器 AD转换

    /***定时器0 定时器2波特率发生器 AD转换***/ /***程序测试 2021 3 19*******************/               #include     " ...

  5. 关于AD转换设计中的基本问题

    1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最根本的原则就是信号调理引起的噪声和误差要在ADC的1个LSB之内.根据这个原则,可以选择指标合适的 ...

  6. 关于AD转换设计经验总结82条

    看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 了解数据转换器错误及参数 1如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最 ...

  7. AD转换设计中的基本问题整理

    原贴:http://blog.eccn.com/space.php?uid=170730&do=blog&id=3836 1.如何选择高速模数转换之前的信号调理器件:如何解决多路模数转 ...

  8. 转一篇很好的AD转换设计中的基本问题整理

    弟看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 原文地址 http://blog.eccn.com/space.php?uid=170730&do=blog& ...

  9. 一篇很好的AD转换设计中的基本问题整理

    原文:点击打开链接 1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最根本的原则就是信号调理引起的噪声和误差要在ADC的1个LSB之内.根据这个目的 ...

  10. 关于AD转换设计的一些经验总结(转载)

    关于AD转换设计的一些经验总结 2017-04-01 12:51 看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 了解数据转换器错误及参数 1.如何选择高速模数转换之前的信号 ...

最新文章

  1. SSM商城项目(八)
  2. javascript之基本概念
  3. kohana task 编写计划任务
  4. 关于程序变式中动态选择的一点说明
  5. ExtJs window(一)使用API以及window常用属性和方法
  6. android8.1新功能,Android 8.1新特性:烦人的“正在后台运行”,拜拜
  7. laydate根据开始时间或者结束时间限制范围
  8. 中关村-DIY电子书之Nook2 Root 完全操作手册
  9. mysql产生大量数据_mysql语句批量产生大量测试数据
  10. 55岁自学python编程-热门专业三年一换?奥鹏教育解析编程还能火多久
  11. 项目管理九大知识领域
  12. mysql hash索引_mysql hash索引
  13. 我们该怎么把图片转文字呢?智能提取文字软件有哪些?
  14. java调用 火眼臻睛,火眼臻睛车牌识别SDK评测
  15. PS初学者(非设计专业人士)的碎碎念
  16. CSS绝对定位使用left:50%实现水平居中偏左问题
  17. 硬核科普 | 关于半导体行业IGBT晶圆发展及应用技术详解
  18. 1GB等于2的多少次方
  19. 佳沛奇异果猕猴桃扫盲
  20. 《Windows核心编程》读书笔记四 进程

热门文章

  1. AndEngine引擎学习之绘制直线
  2. 防止SQL注入解决方案
  3. js 判断一个元素是否存在
  4. 31、如何安装第三方模块?以及用过哪些第三方模块?
  5. 758.6G每秒:阿里云成功防御国内最大规模Memcached DDoS反射攻击
  6. cocos2d-x触摸事件优先级
  7. datatables ajax刷新数据
  8. WinAPI: PtInRect - 判断点是否在矩形中
  9. Python源码剖析学习二
  10. 如果你的男朋友使用linux