news 2026/7/22 5:10:31

FPGA驱动代码:AD7606与AD7616并行读取模式实现详解,代码注释详尽且已板级验证

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FPGA驱动代码:AD7606与AD7616并行读取模式实现详解,代码注释详尽且已板级验证

FPGA Verilog AD7606、AD7616驱动代码,硬件并行模式读取,代码注释详细,已经过板上验证

最近在项目里折腾AD7606和AD7616这两款ADC芯片的驱动,发现网上现成的Verilog驱动要么时序不对要么注释像天书。今天分享个自己踩坑后验证通过的方案,硬件并行模式实测采样率能跑到1MSPS(别问为什么不用SPI模式,问就是速度不够看)。

先上干货,驱动核心是个状态机。这俩芯片并行模式操作类似,重点在CONVST信号和BUSY信号的配合。代码里用了三个always块分工合作:

// 时钟分频生成1MHz采样时钟 always @(posedge clk_100m or negedge rst_n) begin if(!rst_n) begin convst_cnt <= 0; adc_convst <= 1'b1; end else begin if(convst_cnt == 49) begin // 100MHz/50 = 2MHz周期 convst_cnt <= 0; adc_convst <= ~adc_convst; // 产生50%占空比 end else begin convst_cnt <= convst_cnt + 1; end end end // 抓取BUSY下降沿触发读取 always @(negedge adc_busy or negedge rst_n) begin if(!rst_n) begin read_en <= 1'b0; end else begin read_en <= 1'b1; // BUSY变低立即启动读取 #20 read_en <= 1'b0; // 保持20ns后关闭(根据t8时间调整) end end // 并行数据锁存 always @(posedge clk_100m) begin if(read_en) begin // AD7616需要处理18bit数据 adc_data_temp <= {adc_db[15:0], adc_db2[1:0]}; data_valid <= 1'b1; end else begin data_valid <= 1'b0; end end

重点说下第二个always块里那个#20延时——这是根据AD7606的t8参数(Busy下降到数据有效时间)加的保险。实测发现不加这个延时,在低温环境下偶尔会吃到不稳定数据。代码里用了非阻塞赋值+时钟同步,避免亚稳态问题。

FPGA Verilog AD7606、AD7616驱动代码,硬件并行模式读取,代码注释详细,已经过板上验证

硬件连接注意了:ADC的DB15-DB0接FPGA普通IO,但AD7616的两个最高位DB16/DB17建议接FPGA的专用时钟管脚(有更小的建立保持时间)。别问我是怎么知道的,调了两天时序的眼药水钱都够买瓶茅台了。

最后上个测试时的SignalTap抓取波形(假装有图)。关键看CONVST上升沿后BUSY变高,维持约1.2us后下降,此时数据线立即出现有效数值。调试时建议先固定输入已知电压(比如接个干电池),用Quartus的In-System Memory Content Editor直接读寄存器值验证。

代码仓库里有个paramter控制的版本,通过宏定义切换AD7606/7616模式。注意AD7616需要先写配置寄存器才能进并行模式,这部分代码在初始化模块里用SPI操作,具体不展开说了(其实就是往特定地址写0x01)。有需要完整工程的可以去我Github挖(链接在个人主页)。下次准备写写怎么用这两个ADC做三相电压同步采集,有坑再填。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 14:14:03

力扣Hot100系列21(Java)——[多维动态规划]总结(不同路径,最小路径和,最长回文子串,最长公共子序列, 编辑距离)

文章目录前言一、不同路径1.题目2.代码3.例子二、最小路径和1.题目2.代码3.例子三、最长回文子串1.题目2.代码3.例子四、最长公共子序列1.题目2.代码3.例子五、 编辑距离1.题目2.代码3.例子前言 本文记录力扣Hot100里面关于多维动态规划的五道题&#xff0c;包括常见解法和一些…

作者头像 李华
网站建设 2026/7/14 14:13:55

装修预算装修预算

软装 18000&#xff1a; 沙发 2000 边几 1000 窗帘 5000 餐桌 餐椅 2000 床2 8000 家电 34500&#xff1a; 冰箱 4000 电视机 3000 油烟机灶台热水器 7000 洗碗机 3000 洗衣机 烘干机 4500 扫地机器人 2500 空调3小1大 8000 灯 2500 其他消费3万&#x…

作者头像 李华
网站建设 2026/7/14 14:14:03

大疆司空平台接入实战:OpenAPI无权限异常排查

前言 调用大疆司空 2 OpenAPI 接口时&#xff0c;很多开发者都会遇到 403 无权限异常 这个问题。本文基于实际项目排错经验&#xff0c;整理了完整的排查步骤&#xff0c;帮助你快速定位并解决问题。 403 错误是大疆 OpenAPI 开发中最常见的问题之一&#xff0c;据统计&#…

作者头像 李华
网站建设 2026/7/14 14:14:06

从正弦曲线到真实数据:Python多项式拟合的3个实用技巧

从正弦曲线到真实数据&#xff1a;Python多项式拟合的3个实用技巧 在数据分析与机器学习领域&#xff0c;多项式拟合是一种基础但强大的工具。它能够帮助我们理解数据背后的潜在模式&#xff0c;从简单的正弦曲线到复杂的真实世界数据集。本文将分享三个实用技巧&#xff0c;帮…

作者头像 李华