| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> AM57x 多核SoC开发板——GPMC的多通道AD采集综合案例手册(下) -> 正文阅读 |
|
[系统运维]AM57x 多核SoC开发板——GPMC的多通道AD采集综合案例手册(下) |
本文档适用开发环境: Windows开发环境:Windows 7 64bit、Windows 10 64bit Linux Processor SDK:ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05 RTOS Processor SDK:ti-processor-sdk-rtos-am57xx-evm-04.03.00.05 CCS:CCS7.4 本案例主要是通过GPMC接口采集AD7606或ADS8568模块输入的AD信号,由DSP端对AD信号进行FFT处理,并由ARM端对AD信号进行Qt波形绘制、数据保存等,其中使用到的测试板卡为创龙科技的TL570x-EVM工业开发板。 创龙科技TL570x-EVM是一款基于TI Sitara系列AM5708 ARM Cortex-A15 + 浮点DSP C66x处理器设计的异构多核SoC评估板,由核心板和评估底板组成。典型应用在运动控制、工业PC、机器视觉、智能电力、视频监测等领域。 核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。开发板接口资源丰富,引出双路PRU百兆网口、千兆网口、USB 3.0、CAMERA、GPMC、HDMI、PCIe等接口,方便用户快速进行产品方案评估与技术预研。 接下来给大家分享案例编译和ARM(Host)端、DSP(Slave)端)的关键代码部分, 案例编译请按照IPC异构多核开发手册搭好建基于Linux的IPC开发环境,并使能环境变量,然后按照如下方法编译案例。 将案例目录拷贝到Ubuntu,并将lib目录下的QWT库文件压缩包libqwt-6.1.3.tar.gz解压到lib目录下。 图 31 进入src目录并打开products.mak文件,根据实际情况配置libqwt-6.1.3的目录路径。 Host# vim products.mak 图 32 图 33 修改完毕后保存退出,执行如下命令加载Linux Processor SDK环境变量,编译程序并安装程序镜像文件。 Host# source /home/tronlong/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/environment-setup Host# make -j 8 && make install 图 34 命令执行完毕后,将在“install/tl-gpmc-ad-fft/debug/”目录下生成ARM端和DSP端可执行文件,分别为app_host和server_dsp1.xe66。 图 35 关键代码ARM(Host)端关键代码图 36 Qt程序框架
图 37 host/main.cpp
图 38 host/app.c
图 39 host/app.c 图 40 host/app.c
当运行“./app_host 0x01000000 6 10000 /home/root 7606”命令时,程序循环次数设置为10000,则总采样点个数为:4096*10000=40960000。 图 41 host/app.c
图 42 host/app.c
图 43 host/app_thread.cpp
图 44 host/plot.cpp
图 45 host/file.cpp DSP(Slave)端关键代码
根据消息携带的“msg->cmd”参数来判断不同的消息类型,从而进入相应的处理函数。处理结束后,返回消息至ARM端。 图 46 dsp1/Server.c
图 47 dsp1/Server.c ad_init()主要实现Timer、GPIO、GPMC等和AD芯片硬件相关的程序初始化。 图 48 dsp1/ad_test.c 图 49 dsp1/ad_test.c ad_test_init()主要用于程序运行环境的准备,如信号量、内存申请、EDMA3初始化、FFT初始化等。 图 50 dsp1/ad_test.c
定时器创建后,将以固定的时间间隔进入定时器中断服务函数。在中断服务函数中通过CONVST引脚触发AD信号采集来控制采样频率。每次采集转换完成后,AD芯片的Busy引脚将触发GPIO2的下降沿中断,从而触发EDMA传输。 图 51 dsp1/ad_test.c
图 52 dsp1/ad_test.c
备注:测试采集周期为6us,采集满ADC_SAMPLING_FFT_NUM(512)个点后置位信号量,通知任务进行数据处理,所以设置Semaphore_pend超时时间为10ms,若用户设置采集周期过长,如60us,则采集满512个点需60 * 512 = 30.72ms,则需要对应增加下图Semaphore_pend超时时间。 图 53 dsp1/ad_test.c 图 54 dsp1/ad_test.c 补充说明
① 修改dsp1/ad_test.c文件,唤醒指定定时器的时钟。 图 55 ② 修改dsp1/Dsp1.cfg文件,timerSetting[5]代表为timer6,可修改为用户指定定时器。8代表绑定定时器中断至CPU Int8,该编号一般无需改动。 图 56 ③ 修改dsp1/ad_test.c文件,下图中的Timer_create()的参数5可修改为用户指定的定时器。 图 57
图 58 图 59 好了,本期的案例分享就到这里了,想要查看关于TL570x-EVM开发板(异构多核SoC)的规格书,详细参数资料更多内容,欢迎评论区留言。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:58:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |