设计要求

系统连接如图:0-3.3V的直流电压加在串行ADC的模拟输入端,串行ADC将直流电压转换为8位的数字量,0-3.3V的直流模拟电压得到0-255的数字量;小脚丫FPGA通过内部产生的SPI时序将ADC转换的数据读取到FPGA内部的寄存器,并将串行的二进制数据转换成8位并行的数据。转换后数据的显示有三种: 通过点亮8个LED显示电压的相对强度 通过扩展板上连接的4个7位数码管以二进制的形式(0-255)或直流电压的方式(0-3.300)的方式显示 通过扩展板上连接的LCD显示屏,在LCD上显示电压值 通过8位串行ADC测量外部电压

系统实现

  1. ADC:采用TI公司的ADC081S101,该芯片为单通道、低功耗8位模数变换器,详细规格如下:
    1. 低功耗、单通道
    2. 8位
    3. 6-Lead WSON和SOT-23两种封装
    4. 单电压供电,电压范围:2.7V-5.25V
    5. 采样频率:500ksps to 1Msps
    6. 兼容SPI™/QSPI™/MICROWIRE/DSP接口
    7. 逐渐逼近型转换结构,内置取样保持电路

  1. FPGA:采用Lattice Semiconductor的XO2-1200器件,其管脚连接如图所示
  2. 8个LED连接:
  3. 4个7段数码管连接
  4. LCD连接:

程序设计

  1. top.v:顶层文件
  2. clockgen.v:基于系统25MHz的主时钟,产生每个模块所需要的时钟 - spiadc.v:通过SPI接口同ADC进行通信,启动ADC工作并读取ADC取样后的数据,并将串行数据转变为并行数据
  3. 8leddisp.v:驱动8个LED灯显示采集到的信号的相对幅度,可以让每个LED对应ADC的一位 - 2bcdconv.v:将0-255的二进制数转变为0-3.3v对应的代码
  4. 7segdisp.v:在4个7段数码管上显示0-3.3V的直流电压信息 - spilcd.v:通过SPI接口将要显示的信息显示在LCD上

代码实现

实现的结果及资源报告

参考文档