验证MYD-YT153 LocalBus与AD7616的硬件兼容性
提供完整的软件驱动实现方案
评估系统在实际应用中的性能表现


MYD-YT153开发板和localbus接口
引脚一一对应:AD7616模块通过J23接口直连开发板
电源连接:需外接5V电源至模块供电引脚
信号完整性:并行总线长度应尽量短,避免信号衰减

J23 localbus接口定义

MYD-YT153接入AD7616模块
必须选择编译支持LocalBus的镜像(LVDS或DSI显示配置)
同一时间只能使用一种功能

Localbus与RGMII2冲突
根据存储介质选择相应镜像:

注:所有镜像均支持LocalBus功能。
直接运行代码,看下是什么现象:

Lbc_ad7616_test程序运行结果
获取结果,读取每路通路结果,小数点后两位。
结合芯片手册《ad7616.pdf》和软件源码lbc_ad7616_test.c

程序运行流程图
init_gpio设置了GPIO_CH_SEL0,GPIO_CH_SEL1,GPIO_CH_SEL2都为0,结合手册可以看到这是通路选择管脚,当软件模式时需要设置为0x000。

CHSEL寄存器
AD7616_Set_Range(Range_0_V)里面设置RANGE_SEL0和RANGE_SEL1 为0,结合手册,发现时设置的软件模式。

RNGSEL模式寄存器
run_ad7616_test 测试代码关键,它一共分两部分,初始化寄存器和读数据。

adc写寄存器和获取结果流程
adc_cmd_write_readback(ctx,i,0x2,0x60);

同样方式,进行总结:

总结一下就是设置burst模式和启用Sequencer模式,±5V量程。
好了,接着看测试逻辑发送一次CMD_SET_CONVST_IO 后,开始读取每个通道的值:

printf("tsa: %p ch: %2d, data:0x%04x, voltage: %fn", tsa, ch, data[ch], voltage_data);
接下来就涉及另一个问题,采样率到底是多少,其实就统计一下每秒这个读取测试次数就知晓。

最后统计出来每秒15帧,那肯定不是真实水平,清空所有打印再试试:

精度验证:AD7616在±5V量程下实际分辨率达到152.6 µV,满足16位ADC标称性能。
速率验证:系统实际采样率达到144 kSPS(单通道等效),虽未达到理论极限250 kSPS,但已满足大多数应用需求。
优化效果:通过减少软件开销,性能提升显著,证明系统瓶颈主要在软件层面。
实用价值:MYD-YT153 + AD7616组合为嵌入式高速数据采集提供了经济高效的解决方案,适合工业自动化、测试测量等应用。
楼主最近还看过


客服
小程序
公众号