1. 本教程重点

  1. 介绍模数转换原理。
  2. 介绍LTC2308工作原理。
  3. 学习Avalon MM接口。
  4. 学习自定义IP设计。
  5. 学习Quartus工程创建。
  6. 学习ModelSim 仿真。
  7. 学习Matlab生成正弦信号。
  8. 学习Nios II应用程序设计。

2. 实验任务

 通过SW0-SW2三个开关切换8个不同的ADC通道,被选中通道的模拟信号被LTC2308采集以后转化为数字信号然后通过SPI总线协议传递给FPGA,最后在Nios 控制台将测量结果打印出来。
0

3. 准备工作

硬件平台 :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

4. 功能模块概述

该实验的功能框图如下:
 

 

 其中ADC Controller是自定义IP,具体设计请参考9-【友晶科技Terasic】LTC2308控制器设计——自定义IP(Avalon MM)(17.1)
 

5. 测试结果

如果手头没有电位器,直接用一根杜邦线也可以完成测试。

 根据电路图DE10-Standard\Schematic\DE10-Standard.pdf知道GPIO接口pin29输出3.3V电压:

 然后看GPIO焊盘(DE10-Standard开发板反面),方形孔焊盘代表pin1:

 

用同样的方式可以找到ADC的各通道对应的pin针。

 

1. 用杜邦线连接ADC通道(下图连接的是通道0)和3.3V电压引脚(也可以是0v的电压引脚,但不要去接开发板上的5v电压引脚,因为DE10-Standard的ADC模拟电压输入范围是0v到4.096v):

2. 连接开发板的Blaster口到PC,然后连接开发板电源给开发板供电。

接下来,先配置FPGA,再跑Nios程序。关于工程DE10_Standard_ADC的硬件设计部分和软件设计部分的设计步骤请参考如下文章:

3. 用Quartus工具打开工程DE10_Standard_ADC,点击Programmer按钮(如下图所示):

4. 点击Hardware Setup...,在Currently selected hardware处选择DE-SoC[USB-1],点击Close:

5. 点击Auto Detect, 选择DE10-Standard开发板上对应的FPGA器件(即5CSXFC6D6器件),选择OK:

6. 弹出图下对话框后,选择Yes:

7. 右击5CSXFC6D6器件,选择Change File:

8.选择文件 DE10_Standard_ADC.sof, 点击Open:

9.  勾选Program/Configure复选框,点击Start 开始配置FPGA, 当Progress显示到100%的时候表示配置完成。

10. 通过Nios II Software Build Tools for Eclipse打开在DE10_Standard_ADC的软件工程。

 11. 在DE10_Standard_ADC处右击选择Run As,然后选择Nios II Hardware

12. 这时候可以看到Nios II Console栏里面有当前测试通道的电压测量结果打印出来:

 

13. 通过SW0-SW2切换ADC通道,可以在Nios II Console栏看到不同ADC通道的打印信息。

 

6. 源码下载

DE10-Standard工程链接:
 

7. 备注:

往期推荐阅读: