ADC的硬件采集平均功能

B站影视 2024-12-19 15:22 2

摘要:设计测试电路板。听说这款AI8H的ADC有一个特色,也就是可以自行完成采集平均功能。这里测试一下这个功能。使用它的 USB 接口直接完成程序下载和调试。外部增加一个SPI接口的RAM,顺便测试一下它的SPI接口。也就是将相应的应用的子程序编写好,已备之后应

一、前言

  刚刚收到 STC 发送过来的 AI8H单片机,封装为 LTQP48。下面初步测试一下这个单片机的开发工具链。

二、测试电路

  设计测试电路板。听说这款AI8H的ADC有一个特色,也就是可以自行完成采集平均功能。这里测试一下这个功能。使用它的 USB 接口直接完成程序下载和调试。外部增加一个SPI接口的RAM,顺便测试一下它的SPI接口。也就是将相应的应用的子程序编写好,已备之后应用。设计单面PCB,使用一分钟制板方法制作测试版。一分钟之后获得测试电路板。下面进行焊接测试。

  拷贝之前已经编写的软件,首先加入从网络下载的 USB库函数。这里是增加普通 data 版本。 程序最后链接过程中出现了错误。下面设置使用外部链接 LX51,此时,链接结果正常。不过在增加了 printf 函数之后,发现只能使用 xdata 版本的库函数才行。为什么有这样的限制,具体原因不详。

  之前使用SPI 编写过访问SPI RAM 的子程序,将其拷贝过来,修改一下接口定义。便可以实现对它的读写。在这个过程中,单片机的时钟选择 45MHz,发现,如果 SPI的时钟频率设置为单片机时钟的一半,单片机无法正确读写RAM,只要将频率降低到 系统时钟的四分之一以下,RAM的读写就正常了。这是读取32个字节所需要的时间,大约消耗120个微妙。

  对比之前实验中的数据,可以看到,现在读取 32个字节中,平均每个字节消耗3.75微秒,比起单独读取两个字节所需要的时间要小。未来进一步降低访问时间,可以采用 4 数据线的方式完成访问即可。

四、AD转换

  很遗憾,直到开始调试ADC端口的时候,才发现,开始设置的这个端口不是ADC0 端口,实际上,ADC0应该在 P1.0,好在现在制作测试电路板非常方便,修改电路板,一分钟之后重新得到测试电路板。下面重新焊接测试。

  通过 ISP 界面,接收下位机采集到的数据。这是一个输入1Hz的信号,可以看到,采集信号中的噪声非常小,由此,验证了现在 ADC 转换的功能正常。

  下面,测试一下ADC本身的采集平均的功能,选择采集16个数据进行平均的方式,这是采集到的1Hz 正弦信号,还是能够在一定程度上看到它对应的数据波形非常光滑细腻。

▲ 图1.4.1 采用16次平均的方式采集到的数据

  本文对于AI8H8K单片机进行了初步测试,使用它的 SPI 访问了外部串口RAM,测试了它内部ADC采集平均的功能。

[1]

??32KRAM?STC8H8K ?:

[2]

23LC1024 ??:

单片机外串行RAM:

来源:TsinghuaZhuoqing

相关推荐