测试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)的空间。
测试STC8H8K64U-AD转换相关推荐
- 单片机ad转换测电压c语言,大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了...
大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了 [复制链接] #include"ADC电压表.H" #include uchar value; void adc_in ...
- 电压越低采集的ad值反而变大_80多条关于AD转换设计的经验总结
1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最根本的原则就是信号调理引起的噪声和误差要在ADC的1个LSB之内.根据这个目的,可以需要选择指标合 ...
- ad如何选中当前层上的器件_82条AD转换设计经验总结!
看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 了解数据转换器错误及参数 1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理, ...
- 定时器0 定时器2波特率发生器 AD转换
/***定时器0 定时器2波特率发生器 AD转换***/ /***程序测试 2021 3 19*******************/ #include " ...
- 关于AD转换设计中的基本问题
1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最根本的原则就是信号调理引起的噪声和误差要在ADC的1个LSB之内.根据这个原则,可以选择指标合适的 ...
- 关于AD转换设计经验总结82条
看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 了解数据转换器错误及参数 1如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最 ...
- AD转换设计中的基本问题整理
原贴:http://blog.eccn.com/space.php?uid=170730&do=blog&id=3836 1.如何选择高速模数转换之前的信号调理器件:如何解决多路模数转 ...
- 转一篇很好的AD转换设计中的基本问题整理
弟看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 原文地址 http://blog.eccn.com/space.php?uid=170730&do=blog& ...
- 一篇很好的AD转换设计中的基本问题整理
原文:点击打开链接 1.如何选择高速模数转换之前的信号调理器件;如何解决多路模数转换的同步问题? ADC之前的信号调理,最根本的原则就是信号调理引起的噪声和误差要在ADC的1个LSB之内.根据这个目的 ...
- 关于AD转换设计的一些经验总结(转载)
关于AD转换设计的一些经验总结 2017-04-01 12:51 看到一片关于AD转换设计中的基本问题整理博文,特地转载过来和大家共分享. 了解数据转换器错误及参数 1.如何选择高速模数转换之前的信号 ...
最新文章
- SSM商城项目(八)
- javascript之基本概念
- kohana task 编写计划任务
- 关于程序变式中动态选择的一点说明
- ExtJs window(一)使用API以及window常用属性和方法
- android8.1新功能,Android 8.1新特性:烦人的“正在后台运行”,拜拜
- laydate根据开始时间或者结束时间限制范围
- 中关村-DIY电子书之Nook2 Root 完全操作手册
- mysql产生大量数据_mysql语句批量产生大量测试数据
- 55岁自学python编程-热门专业三年一换?奥鹏教育解析编程还能火多久
- 项目管理九大知识领域
- mysql hash索引_mysql hash索引
- 我们该怎么把图片转文字呢?智能提取文字软件有哪些?
- java调用 火眼臻睛,火眼臻睛车牌识别SDK评测
- PS初学者(非设计专业人士)的碎碎念
- CSS绝对定位使用left:50%实现水平居中偏左问题
- 硬核科普 | 关于半导体行业IGBT晶圆发展及应用技术详解
- 1GB等于2的多少次方
- 佳沛奇异果猕猴桃扫盲
- 《Windows核心编程》读书笔记四 进程