前言
本文主要介绍基于全志T3(ARM Cortex-A7)国产处理器的8/16路AD采集开发案例,采用核心互连CL1606/CL1616国产AD芯片,同样适用于ADI AD7606/AD7616 。 CL1606/CL1616与AD7606/AD7616的软件和硬件兼容。
评论:
(1)创龙科技的TL7606I模块采用AD芯片作为核心互连CL1606或ADI AD7606。两者都通过了测试,测试步骤没有任何区别。
(2)创龙科技的TL7616P模块采用AD芯片作为核心互连CL1616或ADI AD7616。两者都通过了测试,测试步骤没有任何区别。
*硬件平台:
创龙科技T3工业评估板
TL7606I多路AD模块
TL7616P多路AD模块
目前,创龙科技已推出T3+FPGA(紫光展锐同创PGL25G/PGL50G)全国一体化工业核心板解决方案,国产化率100%(连接器也国产),通过FPGA可连接多个芯片——侧面扩展接口国产AD,欢迎咨询。
SOM-TLT3F核心板前视图
TLT3F-EVM开发板正视图
案例功能:评估板采用创龙科技TL7606I/TL7616P模块,通过SPI接口采集8通道或16通道数据,并通过Qt显示波形。
该案例支持以下2种模式:
单步模式:程序采集1024个数据后显示静态波形。连续模式:程序将连续采集数据并实时显示动态波形。程序流程如下图所示。
图1 程序流程图
硬件连接。
请使用VGA线将评估板的VGA OUT接口连接到VGA显示器。
由于评估底板扩展接口没有预留SPI总线引脚,飞线需要参考以下方法,尽量使用短线连接。硬件连接如下图所示。
图2
通过飞线将评估基板SPI FLASH(U6)的引脚1(SPI CS)、2(SPI MISO)、5(SPI MOSI)、6(SPI CLK)、4(GND)引出。
图3
将SPI FLASH(U6)飞线的引脚按照下表对应关系连接到TL7606I模块的J6接口。
表格1
SPI闪存(U6)
J6
时钟(引脚6)
引脚10
CS(引脚1)
针16
DI(IO0)(引脚5)
针26
DO(IO1)(引脚2)
针12
接地(引脚4)
针46
请使用杜邦线或飞线将评估基板的CAMERA0(J11)接口与TL7606I模块的J3和J6接口连接。参考下表连接,为TL7606I模块提供5V直流电源和控制信号。
表2
相机0(J11)
J3
J6
引脚1
5V
/
引脚11
接地
/
针23
/
引脚4
针22
/
针脚6
针24
/
引脚3
注:“/”表示无需连接。
图4
该机箱支持TL7606I模块8通道的同时采集和显示。本测试以TL7606I模块的V4和V7通道为例。请将TL7606I模块的V4和V7通道分别正确连接到信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为5Vpp(即幅度为2.5V)的正弦波信号,B通道输出频率为1KHz、峰峰值为2.5V的正弦波信号。频率为1KHz,峰峰值为2Vpp(即幅度为1V)。如下所示。被测信号电压不能超过模块范围,否则可能损坏模块。
图5
案例测试。
为了保证Qt程序的顺利运行,评估板将采用eMMC启动模式进行测试。请确保eMMC已通过最新系统进行固化。
请先取出Linux系统启动卡,根据底板丝印将启动方式选择拨码开关设置为0,给评估板上电,系统将从eMMC启动。
请将案例bin目录中的可执行文件ad_display、'driver\boot_package'目录中的boot_package_vga_ad7606.fex镜像文件以及'driver\bin'目录中的ad76x6.ko驱动文件复制到评估板文件中的任意目录系统。同时将案例‘qwt\libqwt-6.1.3’目录下的所有文件复制到评估板文件系统‘/usr/local/Qt-5.9.0/lib/’目录中。
在评估板文件系统的boot_package_vga_ad7606.fex镜像文件所在路径中,执行以下命令将其固化到eMMC并重启系统。
目标# dd if=boot_package_vga_ad7606.fex of=/dev/mmcblk0eek=32800
目标# dd if=boot_package_vga_ad7606.fex of=/dev/mmcblk0eek=24576
目标#同步
目标#重新启动
图6
评估板系统重启后,进入评估板文件系统,执行以下命令加载驱动程序。加载成功后,会生成设备节点“/dev/ad7606”。
目标# insmod ad76x6.ko
目标# ls /dev/ad7606
图7
执行以下命令,关闭默认运行的Qt GUI显示,启用Qt程序运行环境。
目标#killall 启动器
目标#killall -9 MediaUI
目标#killall -9 CameraUI
目标#fbinit
目标# echo 0,0 /sys/class/disp/disp/attr/fb2ui
目标#源/qt5.9.sh
图8
执行以下命令,查询程序运行参数。
目标# ./ad_display --help
图9
单步模式
执行以下命令以单步方式收集数据。
目标# ./ad_display -d /dev/ad7606 -m 1
参数分析:
-d:指定设备节点;
-m:选择运行模式(1表示单步模式,2表示连续模式)。
图10
同时VGA显示屏会显示静态波形,如下图所示。
图11
按“Ctrl + C”停止程序运行。
图12
连续模式
执行以下命令以连续模式收集数据。
目标# ./ad_display -d /dev/ad7606 -m 2
图13
同时VGA显示屏会实时显示动态波形,如下图所示。
图14
程序运行时,CPU使用率约为26%。
图15
按“Ctrl + C”停止程序运行。
图16
硬件连接。请使用VGA线将评估板的VGA OUT接口连接到VGA显示器。
由于评估底板扩展接口没有预留SPI总线引脚,飞线需要参考以下方法,尽量使用短线连接。硬件连接如下图所示。
图17
通过飞线将评估基板SPI FLASH(U6)的引脚1(SPI CS)、2(SPI MISO)、5(SPI MOSI)、6(SPI CLK)、4(GND)引出。
图18
请使用飞线将TL7616P模块的CON1接口按照下表对应关系连接到SPI FLASH(U6)飞线和CAMERA0(J11)接口的引脚。
其中CAMERA0(J11)接口的pin23~pin24为TL7616P模块提供控制信号。
表3
CON1
相机0(J11)
SPI闪存(U6)
A12
/
时钟(引脚6)
A15
/
CS(引脚1)
C12
/
DI(IO0)(引脚5)
C13
/
DO(IO1)(引脚2)
B8
/
接地
A10
针23
/
A14
针22
/
A16
针24
/
注:“/”表示无需连接。
请将评估板上C2电解电容的正负极通过飞线引出,按照下表对应关系连接至TL7616P模块的CON2接口,为TL7616P模块提供12V直流电源。
表4
C2
CON2
12V
引脚1
接地
引脚2
该案例支持TL7616P模块16路AD数据的同时采集和显示。本测试以TL7616P模块的V1A和V1B通道为例。请将TL7616P模块的V1A和V1B通道分别正确连接到信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为5Vpp(即幅度为2.5V)的正弦波信号,B通道输出频率为1KHz、峰峰值为2.5V的正弦波信号。频率为1KHz,峰峰值为2Vpp(即幅度为1V)。如下所示。被测信号电压不能超过模块范围,否则可能损坏模块。
图19
案例测试。
为了保证Qt程序的顺利运行,评估板将采用eMMC启动模式进行测试。请确保eMMC已通过最新系统进行固化。
请先取出Linux系统启动卡,根据底板丝印将启动方式选择拨码开关设置为0,给评估板上电,系统将从eMMC启动。
请将案例bin目录中的可执行文件ad_display、'driver\boot_package'目录中的boot_package_vga_ad7616.fex镜像文件以及'driver\bin'目录中的ad76x6.ko驱动文件复制到评估板文件中的任意目录系统。同时将案例‘qwt\libqwt-6.1.3’目录下的所有文件复制到评估板文件系统‘/usr/local/Qt-5.9.0/lib/’目录中。
在评估板文件系统的boot_package_vga_ad7616.fex镜像文件所在路径中,执行以下命令将其固化到eMMC并重启系统。
目标# dd if=boot_package_vga_ad7616.fex of=/dev/mmcblk0eek=32800
目标# dd if=boot_package_vga_ad7616.fex of=/dev/mmcblk0eek=24576
目标#同步
目标#重新启动
图20
评估板系统重启后,进入评估板文件系统,执行以下命令加载驱动程序。加载成功后,会生成设备节点“/dev/ad7616”。
目标# insmod ad76x6.ko
目标# ls /dev/ad7616
图21
执行以下命令,关闭默认运行的Qt GUI显示,启用Qt程序运行环境。
目标#killall 启动器
目标#killall -9 MediaUI
目标#killall -9 CameraUI
目标#fbinit
目标# echo 0,0 /sys/class/disp/disp/attr/fb2ui
目标#源/qt5.9.sh
图22
执行以下命令,查询程序命令参数。
目标# ./ad_display --help
图23
单步模式
执行以下命令以单步方式收集数据。
目标# ./ad_display -d /dev/ad7616 -m 1
参数分析:
-d:指定设备节点;
-m:选择运行模式(1表示单步模式,2表示连续模式)。
图24
同时VGA显示屏会显示静态波形,如下图所示。
图25
按“Ctrl + C”停止程序运行。
图26
连续模式
执行以下命令以连续模式收集数据。
目标# ./ad_display -d /dev/ad7616 -m 2
图27
同时VGA显示屏会实时显示动态波形,如下图所示。
图28
程序运行时,CPU使用率约为26%。
图29
按“Ctrl + C”停止程序运行。
图30
案例功能:评估板使用创龙科技TL7606I/TL7616P模块通过SPI接口采集8通道或16通道数据,然后将采集到的数据转换为电压值并保存为一个csv 文件。
程序流程如下图所示。
图31 程序流程图
硬件连接。
由于评估底板扩展接口没有预留SPI总线引脚,飞线需要参考以下方法,尽量使用短线连接。硬件连接如下图所示。
通过飞线将评估基板SPI FLASH(U6)的引脚1(SPI CS)、2(SPI MISO)、5(SPI MOSI)、6(SPI CLK)、4(GND)引出。
图33
将SPI FLASH(U6)飞线的引脚按照下表对应关系连接到TL7606模块的J6接口。
表5
SPI闪存(U6)
J6
时钟(引脚6)
引脚10
CS(引脚1)
针16
DI(IO0)(引脚5)
针26
DO(IO1)(引脚2)
针12
接地(引脚4)
针46
请按照下表对应关系,使用杜邦电缆将评估板的CAMERA0(J11)接口与TL7606I模块的J3、J6接口连接,为TL7606I模块提供5V直流电源和控制信号。
表6
相机0(J11)
J3
J6
引脚1
5V
/
引脚11
接地
/
针23
/
引脚4
针22
/
针脚6
针24
/
引脚3
注:“/”表示无需连接。
图34
该机箱支持TL7606I模块8路AD数据的同时采集和显示。本测试以TL7606I模块的V3和V8通道为例。请将TL7606I模块的V3和V8通道分别正确连接到信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为4Vpp(即幅度为2V)的正弦波信号。 B通道输出频率为1KHz、峰峰值为6Vpp(即幅度为3V)的正弦波信号。如下所示。被测信号电压不能超过模块范围,否则可能损坏模块。
图35
案例测试。
请将case bin目录下的可执行文件ad_capture、driver\boot_package目录下的驱动文件ad76x6.ko和boot_package_vga_ad7606.fex镜像文件复制到评估板文件系统中的任意目录。
在评估板文件系统的boot_package_vga_ad7606.fex镜像文件所在路径中,执行以下命令将其固化到Linux系统启动卡并重启系统。
目标# dd if=boot_package_vga_ad7606.fex of=/dev/mmcblk1eek=32800
目标# dd if=boot_package_vga_ad7606.fex of=/dev/mmcblk1eek=24576
目标#同步
目标#重新启动
图36
评估板系统重启后,进入评估板文件系统,执行以下命令加载驱动程序。加载成功后,会生成设备节点“/dev/ad7606”。
目标# insmod ad76x6.ko
目标# ls /dev/ad7606
图37
执行以下命令,查询程序运行参数。
目标# ./ad_capture --help
图38
执行以下命令,AD模块将采集8192数据并转换为电压值。
目标# ./ad_capture -d /dev/ad7606 -n 1024
图39
按“Ctrl + C”退出程序,将在当前目录中生成data.csv文件。
图40
请将生成的data.csv文件复制到Windows任意目录下,并用Excel打开,如下图所示。其中,C列数据为TL7606I模块V3通道采集数据,H列数据为TL7606I模块V8通道采集数据。默认单位是:V。
图41
请利用Excel的二维折线图将采集到的数据显示成更直观的波形图,如下图所示。
图42
图43
硬件连接。
由于评估底板扩展接口没有预留SPI总线引脚,飞线需要参考以下方法,尽量使用短线连接。硬件连接如下图所示。
图44
通过飞线将评估基板SPI FLASH(U6)的引脚1(SPI CS)、2(SPI MISO)、5(SPI MOSI)、6(SPI CLK)、4(GND)引出。
图45
请使用飞线将TL7616P模块的CON1接口按照下表对应关系连接到SPI FLASH(U6)飞线和CAMERA0(J11)接口的引脚。其中CAMERA0(J11)接口的pin23~pin24为TL7616P模块提供控制信号。
表7
CON1
相机0(J11)
SPI闪存(U6)
A12
/
时钟(引脚6)
A15
/
CS(引脚1)
C12
/
DI(IO0)(引脚5)
C13
/
DO(IO1)(引脚2)
B8
/
接地
A10
针23
/
A14
针22
/
A16
针24
/
注:“/”表示无需连接。
请将评估板上C2电解电容的正负极通过飞线引出,按照下表对应关系连接至TL7616P模块的CON2接口,为TL7616P模块提供12V直流电源。
表8
C2
CON2
12V
引脚1
接地
引脚2
该案例支持TL7616P模块16路AD数据的同时采集和显示。本测试以TL7616P模块的V0A和V0B通道为例。请将TL7616P模块的V0A和V0B通道分别正确连接到信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为4Vpp(即幅度为2V)的正弦波信号。 B通道输出频率为1KHz、峰峰值为6Vpp(即幅度为3V)的正弦波信号。如下所示。被测信号电压不能超过模块范围,否则可能损坏模块。
图46
案例测试。
请将case bin目录下的可执行文件ad_capture、driver\boot_package目录下的驱动文件ad76x6.ko和boot_package_vga_ad7616.fex镜像文件复制到评估板文件系统中的任意目录。
在评估板文件系统的boot_package_vga_ad7616.fex镜像文件所在路径中,执行以下命令将其固化到Linux系统启动卡并重启系统。
目标# dd if=boot_package_vga_ad7616.fex of=/dev/mmcblk1eek=32800
目标# dd if=boot_package_vga_ad7616.fex of=/dev/mmcblk1eek=24576
目标#同步
目标#重新启动
图47
评估板系统重启后,进入评估板文件系统,执行以下命令加载驱动程序。加载成功后,会生成设备节点“/dev/ad7616”。
目标# insmod ad76x6.ko
目标# ls /dev/ad7616
图48
执行以下命令,查询程序运行参数。
目标# ./ad_capture --help
图49
执行以下命令,AD模块将采集16384条数据。
目标# ./ad_capture -d /dev/ad7616 -n 1024
图50
按“Ctrl + C”退出程序,将在当前目录中生成data.csv文件。
图51
请将生成的data.csv文件复制到Windows任意目录下,并用Excel打开,如下图所示。其中,A列数据为TL7616P模块V0A通道采集数据,B列数据为TL7616P模块V0B通道采集数据。默认单位是:V。
图52
请利用Excel的二维折线图将采集到的数据显示成更直观的波形图,如下图所示。
图53
图54