简 介: 本文测试了AI8051U单片机的双路ADC DMA功能,旨在验证其八路信号采集能力。通过设计单面PCB测试板,设置外部32MHz晶体时钟,成功验证了单片机运行在外部时钟下的性能。测试显示ADC采集时间与分频系数和DMA通道数相关,八路ADC数据在10kHz时同相,150kHz时出现相位差。实验利用USB直接通讯,但发现添加DMA功能后程序偶发异常,具体原因尚待排查。该方案为后续四通道导航信号采集板设计奠定了基础。 **关键词**: AI8051U
**AD\Test\2026\January\TestAI80512CHDMAADC.SchDoc ***01 AI8051U双路ADC的DMA功能 一、测试目的
后面需要利用 AI8051U单片机设计四通道导航信号的采集板。下面需要对它能够完成八路 ADC信号采集进行测试。完成测试之后,可以将现在的两通道信号采集板移植到 AI8051U单片机。这样便可以完成电磁导航信号双点磁场数据测量的需要了。
![]()
二、测试电路
设计测试电路。将外部的八个通道的 ADC 都连接到同一个外部输入信号端口。此外为了保证采集 150kHz信号的精度,设置了外部的 32MHz的晶体时钟电路。铺设单面PCB,使用一分钟制板方法得到测试电路板。
![]()
![]()
一分钟之后得到测试电路板。电路板制作的非常完美。
![]()
三、焊接测试
焊接电路。使用弹簧夹子将单片机接入计算机USB 端口。单片机可以被计算机识别。下载基础程序,单片机运行正常。后面测试单片机的 ADC的基本功能。
![]()
通过软件设置系统时钟,使用外部 32MHz的晶体时钟。设置内部系统时钟经过八分频之后,从P4.7 端口输出。测量该端口的信号,为 4MHz,正好为内部系统时钟的八分之一。由此验证了 AI8051U 单片机现在能够运行在 外部晶体时钟信号上。
![]()
![]()
四、ADC采集
使用外部LED的高电平指示 ADC 采集时间。设置八个通道的 ADC,利用 DMA 将信号传输到内存。所需要的时间大约为28ms。下面,修改ADC的分频时钟。由原来设置参数 0x20 修改为 0x28。令人感到奇怪的是,ADC转换时间居然没有改变。
![]()
![]()
不过再次测量,改变 ADC 的分频系数。可以看到采集时间随着分频系数的增加逐步增加。也许刚才测试的时候没有能够记录下正确的数值。现在都正常了。此外ADC采集时间也与 ADC设置的DMA 通道数成正比。
![]()
五、读取波形
读取 AI8051U内部 ADC缓冲区。设置输入信号为 10kHz,可以看到 八路 ADC的数据几乎是同相的。当输入信号的频率提高到 150kHz的时候,每一路ADC之间的时间差就造成了他们之间存在的相位差。八个ADC通道相位差是相同的。
![]()
![]()
※ 总 结 ※
本文测试了基于 AI8051U单片机进行八个通道数据采集的方案。利用了 AI8051U 能够直接连接 USB 的特性,可以直接利用 USB对 AI8051U进行程序下载以及数据通讯。但是在添加了 ADC的DMA 功能之后,也出现了程序运行不正常的情况。具体原因现在还不太清楚。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.