
清空记录
历史记录
取消
清空记录
历史记录

RK3506内置FlexBus可编程高速并行总线,最高支持200MHz时钟速率,可配置为 ADC/DAC专用工作模式,原生适配高速并行外设,是对接并行ADC的最优总线方案,带宽与实时性远优于 SPI、I2C 等低速串行总线。
AD7616是ADI 面向工业测控的16位双通道同步采样 ADC。它有串行和并行两种读取模式,其中并行硬件模式具备三个关键优势:双通道同步采样、吞吐速率更高、时序容错性更强,是工业高速采集的首选工作模式。
问题在于:RK3506 的原厂内核长期缺少AD7616并行硬件模式专用驱动。开发者要么走SPI低速读取,要么用软件模拟——两条路都不好走。
在本次方案落地前,工业现场做64路这个量级的同步采集,通常只有三种选择:
实现路线 | 典型结构 | 核心痛点 |
传统FPGA方案 | ARM+FPGA+AD7616 | 需要外挂 FPGA 做时序与缓存,整体物料成本高,开发门槛高、迭代周期长 |
传统MCU方案 | ARM+MCU+AD7616 | 需要外挂 MCU 做采集,多一颗芯片多一层通信,数据搬运链路长、同步性难保证 |
RK3506折中方案 | RK3506+SPI/软件模拟时序 | 采样率低、CPU 占用高、时序不稳定、数据丢包,精度依赖 CPU 调度,稳定性差 |
具体到 RK3506 折中方案的短板,可以归纳为四点:
无硬件时序驱动:仅支持软件模拟时序,采样精度依赖 CPU 调度,稳定性差;
无 DMA 硬件传输:数据读取全程占用 CPU,高频率采样下系统负载飙升;
无异常容错机制:超时、数据溢出、传输错误无检测,极易出现数据异常;
无可配置采样参数:无法动态调节采样频率,适配场景受限。
本次方案要解决的,正是"用主控本身替代外挂芯片"这件事:让RK3506通过 FlexBus直连AD7616,用硬件时序+DMA完成整条采集链路。
结合行业需求与触觉智能方案经验,总结了以下需求,涵盖实时性、精度与抗干扰,并针对现场严苛环境增加了宽温需求维度。
硬件方面,触觉智能RK3506核心板通过了±8KV接触放电与±15KV空气放电的工业高标准。
整套测试与演示链路可以拆成四段:
信号端
采集端
主控端
显示端
这是本方案区别于普通 Linux 单系统采集的关键设计——多核异构(AMP)双系统:
OneOS侧
Linux(BuildRoot+QT)侧
双系统通过RPMsg通信
这样做的好处是"各司其职":实时采集不被Linux调度抖动干扰,界面与应用也不必为采集让路,一套主控同时满足实时性与交互需求。
AD7616单颗为16通道、16位、双通道同步采样结构,采集板用4颗 AD7616BSTZ并联,组成64路(4×16)同步采集能力。
方案在内核侧的核心改动分为两部分,代码精简、逻辑闭环,完全贴合Linux IIO子系统规范,可直接合入RK3506原厂内核:
①新增核心驱动文件
drivers/iio/adc/rockchip-flexbus-ad7616-par-hw.c
基于Linux标准 IIO ADC子系统开发,实现AD7616并行硬件模式的时序配置、DMA传输、中断处理、参数读写、GPIO控制、异常容错全功能适配。
② 内核头文件修正
include/linux/mfd/rockchip-flexbus.h
新增FLEXBUS_CCI中断清除位定义(BIT(31)),补齐FlexBus中断寄存器配置缺失,为驱动中断回调、异常复位提供底层寄存器支撑,解决硬件中断无法清除的底层BUG。
以上是这套方案的整体框架。驱动内部到底怎么把时序、DMA、中断串起来?64 路、1.029µs 的实测数据经不经得起推敲?下篇继续拆解,敬请关注。如需相关资料请关注深圳触觉智能公众号,添加官方客服13423856106,还提供近80个G的软硬件资料与Demo。
