国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—多通道AD采集开发案例
前 言
本文主要介绍基于全志科技T113-i处理器的8/16通道AD采集开发案例,使用的AD芯片为核芯互联CL1606/CL1616(国产)、ADI AD7606/AD7616。适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware15.5.5
Linux开发环境:Ubuntu18.04.4 64bit
U-Boot:U-Boot-2018.07
Kernel:Linux-5.4.61、Linux-RT-5.4.61
LinuxSDK:T113-i_Tina5.0-V1.0(Linux)
无特殊说明情况下,本文默认使用NAND FLASH配置评估板,默认从Linux系统启动卡启动系统(SD启动模式)进行测试。eMMC配置评估板请根据实际情况选择对应目录文件。
本文档对应案例的测试结果说明如下表所示。

备注:
- 创龙科技TL7606I模块使用AD芯片为核芯互联CL1606或ADI AD7606,两者均测试通过,且测试步骤无差别。
- 创龙科技TL7616P模块使用AD芯片为核芯互联CL1616或ADI AD7616,两者均测试通过,且测试步骤无差别。
ad_display案例
案例说明
案例功能:评估板通过SPI总线采集8/16通道AD数据,ARM核心运行Linux应用程序,RISC-V核心运行RTOS程序。RISC-V核心通过rpmsg发送AD数据至Linux应用程序,Linux应用程序接收并转换为电压值,通过Qt显示波形。
系统工作示意框图如下所示。

AD采集数据通过rpmsg传输流程图如下所示。

案例源码位于产品资料“4-软件资料\Demo\platform-demos\ad_display\”目录下,具体目录结构说明如下。

案例支持如下2种模式:
- 单次采集:程序采集1024个数据后,显示静态波形。
- 连续采集:程序将会连续采集数据,并实时显示动态波形。
程序流程如下图所示。

案例测试
TL7606I模块测试
1.硬件连接
请使用HDMI线将评估板HDMI OUT接口与HDMI显示屏连接。
由于评估底板拓展接口未预留SPI总线引脚,因此需参考如下方法进行飞线,并且应尽可能使用短线连接。TL7606I模块使用5V电源供电,J1跳线帽连接至0,使用±5V量程。硬件连接如下图所示。

备注:TL7606I模块默认为并行输出模式。本案例是采用串行接口模式,请先参考如下原理图改为串行接口模式。

将评估底板的R76电阻空贴,避免引脚复用影响SPI_MISO信号。并根据评估底板丝印将SPI1测试点TP25(SPI1 MISO)、TP26(SPI1 MOSI)、TP27(SPI1 CLK)、TP28(SPI1 CS)通过飞线引出。


将SPI1测试点飞线引出的引脚与TL7606I模块的J6接口参照下表对应关系进行连接。

请使用杜邦线或飞线将评估底板TTL UART4(CON10)、TTL UART5(CON11)接口与TL7606I模块的J3、J6接口,参照下表对应关系进行连接,为TL7606I模块提供控制信号。


案例支持TL7606I模块8通道同时采集与显示。本次测试以TL7606I模块V1和V8通道为例,请将TL7606I模块的V1和V8通道分别正确连接至信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为2.0Vpp(即幅值为1.0V)的正弦波信号,B通道输出频率为1KHz、峰峰值为2.0Vpp(即幅值为1.0V)的正弦波信号,如下图所示。待测信号电压请勿超过模块量程,否则可能会导致模块损坏。

2.案例测试
在U-Boot命令行执行如下命令,关闭设备树UART1,UART2,UART4,UART5节点并删除reg_usb0_vbus节点GPIO配置。
备注:此修改方法重启评估板后会失效。
Target# fdt set /soc/uart@2500400 status disabled
Target# fdt set /soc/uart@2500800 status disabled
Target# fdt set /soc/uart@2501000 status disabled
Target# fdt set /soc/uart@2501400 status disabled
Target# fdt rm /usb0-vbus gpio
Target# boot

将本案例"risc-v\bin\"目录下的可执行文件amp_rv0.bin拷贝至评估板系统的"/lib/firmware/"目录下,执行如下命令,启动RISC-V核心并加载工程镜像。
Target# echo amp_rv0.bin > /sys/class/remoteproc/remoteproc1/firmware //指定加载的工程镜像
Target# echo start > /sys/class/remoteproc/remoteproc1/state //启用HiFi4 DSP核心并加载工程镜像

RISC-V核心启动后将自动运行程序,RS232 UART2串口终端将会打印如下类似信息。

评估板上电后,请将案例bin目录下的可执行文件ad_display拷贝至评估板文件系统任意目录下。同时,将案例"qwt\bin\"目录下的压缩包解压,将解压后的文件拷贝至评估板文件系统"/usr/lib/"目录下。
备注:由于"qwt\bin\"目录下的压缩包文件包含链接文件,因此须将该压缩包拷贝至Ubuntu下解压。
执行如下命令,关闭默认运行的Qt GUI显示,使能Qt程序运行环境。
Target# killall Launcher
Target# fbinit

执行如下命令,查询程序命令参数。
Target# ./ad_display --h --platform linuxfb

(1)单次采集
执行如下命令,单次采集1024个数据采样点,本次测试采样率为41998SPS。
Target# ./ad_display -d ad7606 -m 1 --platform linuxfb
参数解析:
-d:指定设备节点;
-m:选择运行模式(1表示单次采集,2表示连续采集)。

同时,HDMI显示屏将会显示静态波形,如下图所示。
备注:由于波形显示窗口全屏显示将占用较多CPU资源,会导致波形显示延迟,因此案例对波形显示窗口进行缩小。

按下"Ctrl + C"可停止程序运行。

(2)连续采集
执行如下命令,以连续采集数据,本次测试采样率为41921SPS。
Target# ./ad_display -d ad7606 -m 2 --platform linuxfb

同时,HDMI显示屏将会实时显示动态波形,如下图所示。
备注:由于采样率的提高会影响波形实时显示,若波形显示窗口全屏显示将会导致波形显示延迟,因此案例对波形显示窗口进行缩小。

程序运行过程中,CPU0占用率为70%,CPU1占用率约48%。

按下"Ctrl + C"可停止程序运行。

TL7616P模块测试
1.硬件连接
请使用HDMI线将评估板HDMI OUT接口与HDMI显示屏连接。
由于评估底板拓展接口未预留SPI总线引脚,因此需参考如下方法进行飞线,并且应尽可能使用短线连接,硬件连接如下图所示。

将评估底板的R76电阻空贴,并根据评估底板丝印将SPI1测试点TP25(SPI1 MISO)、TP26(SPI1 MOSI)、TP27(SPI1 CLK)、TP28(SPI1 CS)通过飞线引出。


将SPI1测试点飞线引出的引脚与TL7616P模块的CON1接口参照下表对应关系进行连接。

请使用杜邦线或飞线将评估底板TTL UART4(CON10)、TTL UART5(CON11)接口与TL7616P模块的CON1接口,参照下表对应关系进行连接,为TL7616P模块提供控制信号。


请通过飞线将评估底板C2电解电容器的正负极引出,并与TL7616P模块CON2接口参照下表对应关系进行连接,为TL7616P模块提供12V直流电源。

案例支持TL7616P模块16通道AD数据同时采集与显示。本次测试以TL7616P模块V3A和V5B通道为例,请将TL7616P模块的V3A和V5B通道分别正确连接至信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为2.0Vpp(即幅值为1.0V)的正弦波信号,B通道输出频率为1KHz、峰峰值为2.0Vpp(即幅值为1.0V)的正弦波信号,如下图所示。待测信号电压请勿超过模块量程,否则可能会导致模块损坏。

2.案例测试
在U-Boot命令行执行如下命令,关闭设备树UART1,UART2,UART4,UART5节点并删除reg_usb0_vbus节点GPIO配置。
备注:此修改方法重启评估板后会失效。
Target# fdt set /soc/uart@2500400 status disabled
Target# fdt set /soc/uart@2500800 status disabled
Target# fdt set /soc/uart@2501000 status disabled
Target# fdt set /soc/uart@2501400 status disabled
Target# fdt rm /usb0-vbus gpio
Target# boot

将本案例"risc-v\bin\"目录下的可执行文件amp_rv0.bin拷贝至评估板系统的"/lib/firmware/"目录下,执行如下命令,启动RISC-V核心并加载工程镜像。
Target# echo amp_rv0.bin > /sys/class/remoteproc/remoteproc1/firmware //指定加载的工程镜像
Target# echo start > /sys/class/remoteproc/remoteproc1/state //启用HiFi4 DSP核心并加载工程镜像

RISC-V核心启动后将自动运行程序,RS232 UART2串口终端将会打印如下类似信息。

评估板上电后,请将案例bin目录下的可执行文件ad_display拷贝至评估板文件系统任意目录下。同时,将案例"qwt\bin\"目录下的压缩包解压,将解压后的文件拷贝至评估板文件系统"/usr/lib/"目录下。
备注:由于"qwt\bin\"目录下的压缩包文件包含链接文件,因此须将该压缩包拷贝至Ubuntu下解压。
执行如下命令,关闭默认运行的Qt GUI显示,使能Qt程序运行环境。
Target# killall Launcher
Target# fbinit

执行如下命令,查询程序命令参数。
Target# ./ad_display --h --platform linuxfb

(1)单次采集
执行如下命令,单次采集1024个数据采样点,本次测试采样率为26449SPS。
Target# ./ad_display -d ad7616 -m 1 --platform linuxfb
参数解析:
-d:指定设备节点;
-m:选择运行模式(1表示单次采集,2表示连续采集)。

同时,HDMI显示屏将会显示静态波形,如下图所示。

按下"Ctrl + C"可停止程序运行。

(2)连续采集
执行如下命令,以连续采集数据,本次测试采样率为26435SPS。
Target# ./ad_display -d ad7616 -m 2 --platform linuxfb

同时,HDMI显示屏将会实时显示动态波形,如下图所示。

程序运行过程中,CPU0占用率为25%,CPU1占用率约为100%。

按下"Ctrl + C"可停止程序运行。

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!