当前位置:首页 > 新闻资讯 > FPGA之家动态 >

基于FPGA和LTC2308模数转换芯片的数字电压表设计

时间:2025-08-18      来源:FPGA_UCY 关于我们 0

1本教程重点

介绍模数转换原理。

介绍SPI通信协议。

介绍LTC2308工作原理。

学习Verilog代码设计。

学习ModelSim仿真。

学习Matlab生成正弦信号。

2实验任务

通过FPGA对模数转换芯片(LTC2308)的采样控制,实现一个简易的数字电压表。具体功能如下:

设计一个数字电压表,通过拨码开关 SW选择 LTC2308 的不同 ADC 通道;按下 KEY触发 LTC2308 启动采样与转换;转换结束后,点亮一颗 LED 作为状态指示;最终转换结果以十进制形式在 HEX数码管上显示。

88123c04-7658-11f0-a18e-92fbcf53809c.png

3实验原理分析

关于模数转换原理请参考:

02-基于FPGA和LTC2308的数字电压表设计——模数转换原理(后期发布)

关于LTC2308芯片解读请参考:

03-基于FPGA和LTC2308的数字电压表设计——LTC2308数据手册解读(后期发布)

关于DE10-Standard 开发板LTC2308电路图设定如下:

88242eb4-7658-11f0-a18e-92fbcf53809c.png

该实验的功能设计框图如下:

88378ce8-7658-11f0-a18e-92fbcf53809c.png

4Verilog 代码

工程最终的RTL Viewer图如下:

8848e204-7658-11f0-a18e-92fbcf53809c.png

digital_voltmeter.v: 工程top文件,里面例化了各个模块。

pll_40 IP: 板载50M晶振分频出40M给其他子模块。

adc_ltc2308.v:实现SPI协议去控制LTC2308器件。关于SPI协议详解请参考:04-基于FPGA和LTC2308的数字电压表设计——SPI协议详解(后期发布)。关于代码讲解请参考:05-基于FPGA和LTC2308的数字电压表设计——FPGA实现SPI协议(后期发布)。

bin_to_bcd.v:将二进制数转换成十进制数。

seg_display.v: 将十进制数转换成能在数码管上显示的信号。数码管原理解说请参考往期文章:基于FPGA的贪吃蛇游戏设计(二)——数码管驱动模块

每个模块的源代码参见本文文末的资源下载连接。

5LTC2308控制模块功能仿真

关于LTC2308控制模块的仿真请参考连接:

06-基于FPGA和LTC2308的数字电压表设计——ModelSim仿真与Matlab模拟信号产生(后期发布)。

6实验准备工作

硬件平台:DE10-Standard 开发板

(或者是DE1-SOC、DE25-Standard、C5G、TSP开发板也都支持,DE10-Nano、ADC-SOC、DE0-Nano-SOC 、TSOM(ADC在TSOM-BB底板上)这四种开发板上虽然有LTC2308器件,但是没有数码管显示,所以工程不能直接套用。 另外,针对DE25-Standard开发板需要Quartus Pro v24.1及以上版本才行)

开发和调试工具:Quartus17.1

7实验步骤

1. 在开始菜单里面点击Quartus软件打开它:

8855936e-7658-11f0-a18e-92fbcf53809c.png

2. 按照文章基于DE1-SOC的My_first_fpga去创建一个新的digital_voltmeter工程,top文件Verilog代码直接拷贝digital_voltmeter.zip里面的。

3. 继续创建2个Verilog 文件(seg_display.v和adc_ltc2308.v),代码直接拷贝digital_voltmeter.zip里面的。

4. 在IP Catalog里面输入PLL,并双击打开Altera PLL IP:

8867f3a6-7658-11f0-a18e-92fbcf53809c.png

5. 保存路径选择digital_voltmeter工程下,PLL 模块命名为pll_40:

88760a22-7658-11f0-a18e-92fbcf53809c.png

6. 设置PLL 的参数如下:

888821e4-7658-11f0-a18e-92fbcf53809c.png

7. 对工程进行分析和综合:

8. 进行引脚分配:

根据DE10-StandardManualDE10-Standard_User_manual.pdf手册的引脚分配表或者直接查看DE10-StandardSchematicDE10-Standard.pdf电路图完成以下引脚分配:

88a4c114-7658-11f0-a18e-92fbcf53809c.png

9. 进行工程全编译,生成sof文件:

88ca5b18-7658-11f0-a18e-92fbcf53809c.png

10. 下板验证

没有电位器的话也可以用一根杜邦线完成测试,具体测试如下:

(1)连接开发板的Blaster口到PC,然后连接开发板电源给开发板供电。

(2)继续参考基于DE1-SOC的My_first_fpga将digital_voltmeter.sof配置到FPGA 开发板当中。

(3)切换SW=00,选择通道0。

(4)通道0 连接到GND引脚(参考下图找到GND引脚是pin10)

88d6c2b8-7658-11f0-a18e-92fbcf53809c.png

(5)按KEY0复位,按KEY1触发LTC2308进行测量,测得结果如下:

88fb365c-7658-11f0-a18e-92fbcf53809c.jpg

(6)继续选择通道0去连接到3.3V引脚(按照下图找到3.3V对应GPIO插针槽的pin29):

8910bb08-7658-11f0-a18e-92fbcf53809c.png

(7) 按KEY1测得结果如下:

891f94c0-7658-11f0-a18e-92fbcf53809c.jpg

备注:DE10-Standard的数码管没有小数点显示位,所以电路当中没有对小数点进行处理。


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言