AD7616高速ADC采集系统详解--米尔基于全志T153处理器 点击:5 | 回复:0



米尔电子

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:79帖 | 1回
  • 年度积分:0
  • 历史总积分:155
  • 注册:2018年8月31日
发表于:2026-03-02 17:46:01
楼主

PART 01  项目概述

1.1 技术背景

米尔MYD-YT153开发板搭载全志T153处理器,提供LocalBus(LBC)并行总线接口,适合连接高速外设。AD7616是ADI公司推出的16位高精度并行ADC,具有16通道差分输入,广泛应用于工业数据采集、仪器仪表等领域。

1.2 项目目标

  • 验证MYD-YT153 LocalBus与AD7616的硬件兼容性

  • 提供完整的软件驱动实现方案

  • 评估系统在实际应用中的性能表现


PART 02  硬件平台架构

2.1 核心硬件组件

MYD-YT153开发板和localbus接口


2.2 硬件连接要点

  • 引脚一一对应:AD7616模块通过J23接口直连开发板

  • 电源连接:需外接5V电源至模块供电引脚

  • 信号完整性:并行总线长度应尽量短,避免信号衰减


J23 localbus接口定义


MYD-YT153接入AD7616模块


2.3 引脚冲突

注意T153处理器的LocalBus与RGMII2网络接口存在引脚复用冲突:
  • 必须选择编译支持LocalBus的镜像(LVDS或DSI显示配置)

  • 同一时间只能使用一种功能


Localbus与RGMII2冲突


PART 03  软件环境配置


3.1 镜像选择

根据存储介质选择相应镜像:



:所有镜像均支持LocalBus功能。


3.2 驱动架构

// 驱动层次
应用层:platformallwinnerindustrylocalbuslbc_ad7616_testlbc_ad7616_test.c (用户空间测试程序)
驱动层:bsp/drivers/lbc/sunxi_lbc_v2_drv.c(内核驱动)
硬件层:LocalBus控制器(T153内置)


PART 04  AD7616工作模式解析


4.1 测试代码是否能正常工作

直接运行代码,看下是什么现象:


Lbc_ad7616_test程序运行结果


可以看到一共分三部分:
模式设置,设置了SEL[0-2]以及CS0片选,做了寄存器映射。
寄存器设置,针对0x02,0x04…0x27先写后度。

获取结果,读取每路通路结果,小数点后两位。


4.2 AD7616模块分析

结合芯片手册《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模式寄存器


map_shared_reg_region 和map_chip_region 都是为了读写寄存器做内存映射。

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


adc写寄存器和获取结果流程


通过查询寄存器可以得到如下信息:
adc_cmd_write_readback(ctx,i,0x2,0x60);



同样方式,进行总结:



总结一下就是设置burst模式和启用Sequencer模式,±5V量程。

好了,接着看测试逻辑发送一次CMD_SET_CONVST_IO 后,开始读取每个通道的值:



这个逻辑就比较清晰了,16个通道轮询方式读取,然后判断最高位是否是1还是0做区别,最后做一个5V量程转换后输出小数点后2位。
结合上面寄存器分析,量程处理代码比较随意,应该要把2.5V,5V,10V 用宏控制,并和量产转换形成对于关系。
那么它的实际精度是多少,作为一个16bitADC,理论精度是−32768~+32767,
当sample_range=5(±5V)时:
满量程:10V
码值范围:65536个码
1 LSB=10V/65536≈0.0001526V
也就是:
≈152.6µV/LSB
那释放一下它的精度,不再控制输出,把%6.2f改成%f即可。
printf("tsa: %p ch: %2d, data:0x%04x, voltage: %fn", tsa, ch, data[ch], voltage_data);

接下来就涉及另一个问题,采样率到底是多少,其实就统计一下每秒这个读取测试次数就知晓。



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



此时可以看到每秒有接近9000次,由于每次采样通道16,9000x16=144,000 samples/second,相当于单通道144kSPS水平。

PART 05  总结


通过本次测试,得出以下结论:
  1. 精度验证:AD7616在±5V量程下实际分辨率达到152.6 µV,满足16位ADC标称性能。

  2. 速率验证:系统实际采样率达到144 kSPS(单通道等效),虽未达到理论极限250 kSPS,但已满足大多数应用需求。

  3. 优化效果:通过减少软件开销,性能提升显著,证明系统瓶颈主要在软件层面。

  4. 实用价值:MYD-YT153 + AD7616组合为嵌入式高速数据采集提供了经济高效的解决方案,适合工业自动化、测试测量等应用。



楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师