DR1 评估板 PL 端 FPGA 开发完全指南:基础案例与 ADC 采集模块详解(二)

ad7616_capture案例

案例说明

案例功能:通过创龙科技TL7616P模块采集16通道数据(采样率为200KSPS),并使用TD软件的ChipWatcher工具,将采集的数据转换成电压值并保存为.csv文件。程序功能框图如下所示。

本案例使用创龙科技TL7616P-A1.1模块,硬件配置为并行模式,支持核芯互联CL1616(国产)和ADI AD7616采样芯片。

图 36

管脚约束请查看案例工程"project\constraints\"目录下的.adc文件。

操作说明

(1)硬件连接

请将TL7616P模块连接至评估板的EXPORT2接口,请将TL7616P模块的VXX通道正确连接至信号发生器A通道。同时使用下载器连接评估板JTAG接口至PC端USB接口。硬件连接如下图所示。

备注:本次演示通过TL7616P模块的V0A通道进行数据采集,其他通道的数据采集方法同理。

图 37

信号发生器设置A通道输出频率为1KHz、峰峰值为5.0Vpp(即幅值为2.5V)的正弦波信号,如下图所示。TL7616P模块默认量程为±10V,待测信号电压请勿超过模块量程,否则可能会导致模块损坏。

图 38

(2)运行测试

打开案例对应的TD工程,在工程编译成功后,点击"Hierarchy Navigation"栏"ChipWatcher"选项下的.cwc文件。

图 39

将评估板上电,点击图标,直至"Device"栏出现器件信息。在"Bite File"栏中,选择案例对应的.bit镜像文件。

图 40

点击图标,加载bit镜像文件。

图 41

图 42

点击图标,进行单次采集,并等待采集完成。

图 43

图 44

采集完成后,点击"Setup",选中要查看的数据,鼠标右键依次选择"Set Bus/Group Radix... -> signed DEC"设置波形格式为"signed DEC"(有符号十进制)。

图 45

点击当前窗口右上角"File",选择"Export Wave Date",导出波形数据.csv文件。导出完成后,会弹出窗口显示导出文件的路径以及名称。

图 46

图 47

(3)结果验证

请将生成的.csv文件使用Excel打开,如下图所示。其中,第C列数据为TL7616模块V0A通道的采集数据,第J列数据为TL7616P模块V7A通道的采集数据,第K列数据为TL7616模块V0B通道的采集数据,第R列数据为TL7616P模块V7B通道的采集数据。

图 48

由于本次演示通过TL7616P模块的V0A通道进行数据采集,因此请选中表格中的第C列,点击"插入"选项,选择"折线图",将采集数据显示为更加直观的波形图,如下图所示。

图 49

图 50

根据折线图确定波峰值为:8040,波谷值为:-8156

图 51 波峰值

图 52 波谷值

根据以上波峰值和波谷值,套用计算公式:CODE = VIN x VREF / 2n,计算可得约为4.94V,与信号发生器设置峰峰值:5.00Vpp接近。

参数解析:

VIN:输入电压,即波峰值和波谷值之和,为8040 + 8156 = 16196;

VREF:量程电压值,即为:+10V - ( -10V ) = 20V;

n:数据有效位,此处为16位,即:n = 16。

IP核配置说明

设置输入的时钟频率为50MHz。

图 53 PLL IP核配置

使能CLK0,配置输出频率为60MHz。

图 54 PLL IP核配置

关键代码

(1)顶层模块

顶层模块的源码位于案例目录"project\hdl\"下的"ad7616_capture.v"。

  1. 端口定义。

图 55

b) 仿真调试信号定义。

图 56

c) 实例化ad7616_capture_bd模块,该模块负责从PS端产生时钟,提供给PL端。

图 57

d) 使用PLL IP核输出100MHz ADC时钟。

图 58

e) 实例化AD7616模块。

图 59

(2)AD7616模块

AD7616模块的源码位于案例目录"project\hdl\"下的"ad7616.v"。

a) 生成100KSPS采样率时钟;60MHz作为AD7616模块运行时钟。

图 60

b) 定义状态机。

图 61

c) 保持时间信号。

图 62

d) 配置ADC信号线。

图 63

e) 以60MHz时钟分频技术生成100KHz采样率的clk_convst信号。

图 64

f) 配置状态机。

图 65

每个状态的功能如下表所示:

g) 状态机控制逻辑。

图 66

图 67

图 68

备注:保持时间需满足时序图的需求,如下图。

图 69

h)控制信号赋值逻辑。

图 70

  1. 寄存器说明:TL7616P模块的AD芯片软件模式的开启是通过配置HW_RNGSEL0/HW_RNGSEL1引脚为低电平。如下图TL7616P模块的原理图所示。

备注:寄存器详细说明请参考TL7616P模块的AD芯片手册。

图 71

本案例通过配置0x02、0x20-0x27寄存器,将AD芯片设置为BURST Sequencer模式。

图 72

图 73

图 74

j) 处于空闲状态时,判断下一状态的跳转。

图 75

跳转条件与跳转状态对应关系如下表所示:

k) 在adc_rd_n上升沿读取ADC数据,分离各通道数据。

adc_rd_p是adc_rd_n上升沿标志。在read_data_done高电平第一个周期,通道V7B数据的寄存器处于跳变和稳定的边缘状态。因此延迟时间直至IDLE状态结束,产生adc_data_vaild标志。当adc_data_vaild高电平代表采样16通道数据完成。

图 76

相关推荐
普中科技8 小时前
【普中 51-Ai8051 开发攻略】-- 第 3 章 Ai8051U 介绍
单片机·嵌入式硬件·开发板·普中科技·ai8051u·aicube
wotaifuzao10 小时前
从128-bit到16-bit:BLE UUID背后的带宽战争与架构设计
性能优化·蓝牙·uuid·低功耗蓝牙·架构设计·嵌入式开发·ble
ShiMetaPi2 天前
从帧触发到事件驱动:RGB+EVS多模态融合下的无人机识别重构
嵌入式硬件·计算机视觉·嵌入式开发·无人机避障·事件相机
Deepoch3 天前
Deepoc具身模型开发板:重塑银发科技关怀的智慧核心
人工智能·科技·开发板·智能·具身模型·deepoc·居家机器人
岩中竹3 天前
芯茂微 LP9961 全集成 LLC 谐振控制器技术详解与方案应用
硬件开发·国产替代·llc·电源技术·llc谐振
Tronlong创龙4 天前
RK3562 单板机多媒体开发完全手册:视频输入输出与 GStreamer 案例详解(一)
开发板·嵌入式开发·硬件开发·工业控制
CodeCraft Studio4 天前
构高可靠嵌入式软件开发环境:Green Hills嵌入式IDE、编译器与JTAG调试工具全面解析
ide·嵌入式硬件·嵌入式开发·c++编译器·嵌入式开发工具·green hills·jtag调试
BackCatK Chen7 天前
TMC2240 芯片数据手册解读 开篇+完整目录
嵌入式开发·电机驱动·tmc2240·tmc2240 数据手册解读·步进电机驱动 ic·芯片解读
CodeCraft Studio9 天前
从车载HMI到数字座舱平台:基于Qt与Qtitan UI组件的汽车嵌入式软件界面开发方案
qt·ui·汽车·嵌入式开发·ui组件·ui框架·数字座舱
普中科技9 天前
【普中STM32F1xx开发攻略--标准库版】-- 第 34 章 RTC 实时时钟实验
stm32·单片机·嵌入式硬件·开发板·rtc·实时时钟·普中科技