====设计要求==== 系统连接如图: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上显示电压值 {{ :fpga_adc.png |通过8位串行ADC测量外部电压}} ====系统实现==== - ADC:采用[[http://www.ti.com.cn|TI]]公司的[[http://www.ti.com/product/ADC081S101?keyMatch=ADC081s101&tisearch=Search-EN-Everything|ADC081S101]],该芯片为单通道、低功耗8位模数变换器,详细规格如下: - 低功耗、单通道 - 8位 - 6-Lead WSON和SOT-23两种封装 - 单电压供电,电压范围:2.7V-5.25V - 采样频率:500ksps to 1Msps - 兼容SPI™/QSPI™/MICROWIRE/DSP接口 - 逐渐逼近型转换结构,内置取样保持电路 {{ :ad801s101timing.png |}} - FPGA:采用Lattice Semiconductor的XO2-1200器件,其管脚连接如图所示 - 8个LED连接: - 4个7段数码管连接 - LCD连接: ====程序设计==== - top.v:顶层文件 - clock_gen.v:基于系统25MHz的主时钟,产生每个模块所需要的时钟 - spi_adc.v:通过SPI接口同ADC进行通信,启动ADC工作并读取ADC取样后的数据,并将串行数据转变为并行数据 - 8led_disp.v:驱动8个LED灯显示采集到的信号的相对幅度,可以让每个LED对应ADC的一位 - 2bcd_conv.v:将0-255的二进制数转变为0-3.3v对应的代码 - 7seg_disp.v:在4个7段数码管上显示0-3.3V的直流电压信息 - spi_lcd.v:通过SPI接口将要显示的信息显示在LCD上 ====代码实现==== ====实现的结果及资源报告==== ====参考文档==== - [[http://www.latticesemi.com/view_document?document_id=38834|XO2系列FPGA数据手册-可以直接下载]] - [[http://www.ti.com/product/ADC081S101?keyMatch=ADC081s101&tisearch=Search-EN-Everything|ADC081S101数据页面]] - [[http://www.ti.com/product/SN74HC595?keyMatch=74hc595&tisearch=Search-EN-Everything|74HC595数据页面]] - [[http://www.eeboard.com/bbs/thread-44647-1-1.html|爱板网关于小脚丫FPGA的使用指南]]