2020 年 4 月 23 日,拿到了刚刚出品的 STC8H8K64U 芯片,这款自己带有 8K 内存,还有 12bitADC,外加丰富的定时器、各种总线接口,更适合的工业信号采集和控制应用。它也会让同学们在制作智能车车模作品更加如虎添翼。

 

▲ 直接上墙的车模

 

现在,可以向宏晶公司申请该芯片样片了。

 

下面对于其该单片机的 12 位 AD 功能做些简单测试。

 

测试电路板设计

设计测试电路板的原理图如下。仅仅引出了 AD0~AD3 的引脚。

 

▲ 测试电路板的原理图

 

▲ 测试电路板 PCB

 

测试软件

 

▲ 测试电路

 

1. AD 转换精度

使用信号源给出 AD 采样的正弦波,频率 0.877Hz。峰峰值为:0.5V~4.5V。

 

▲ 测试的正弦波波形

 

下图显示了对波形采集了 1024 点的数据波形。其中数据的波动范围是 0~4095。反映了 AD 的有效取值范围是 12bit。

▲ 采集到的数据波形

 

下面是缩小信号幅值之后,对于不同的两个频率信号采集后的波形。其中可以看到混杂有小的尖峰干扰信号。

▲ 采集到的数据波形

▲ 采集的数据波形

 

对信号源的信号使用一个电容连接到底线,可以看到其中干扰信号消失了。

▲ 采集的数据波形

 

2. AD 转换时间:

测量 ADCConvert()时间。使用 P0.3 作为 IO 输出脉冲波形。在转换前,将 P0.3 置高电平,在转换后将 P0.3 置低电平。测量该信号的脉宽,可以获得 ADCConvert()时间。

 

下图所展示的 ADC 的时间波形,可以显示进行一个 ADC 的时间大约是 3.4us。

 

▲ 测量 P0.3 的脉宽波形

 

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

 

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

 

▲ 测量 P0.3 的脉宽波形

 

3. AD 采集数据缓冲区的长度

8H8K 具有 8KXRAM。下面是利用这些内存采集到得到 4096 个 AD 转换数据波形。

▲ 采集的数据波形

 

下面是设置 AD_BUFFER= 4097,采集到的数据波形。可以看到最后一个数字实际上已经是错误数字了,这是因为指针寻址已经超过了实际 RAM 地址范围了。

▲ 采集的数据波形

 

结论

通过以上实验,可以得到如下的结论:

  1. STC8H8K 单片机的 AD 转换精度为 12Bit 每个通道的转换时间最小为 3.4us 内部具有可以使用的 xdata 空间最大为 8192bytes(4096word)的空间。