fpga设计中dac7512控制的verilog实现

fpga设计中dac7512控制的verilog实现

ID:20458909

大小:236.00 KB

页数:6页

时间:2018-10-13

fpga设计中dac7512控制的verilog实现_第1页
fpga设计中dac7512控制的verilog实现_第2页
fpga设计中dac7512控制的verilog实现_第3页
fpga设计中dac7512控制的verilog实现_第4页
fpga设计中dac7512控制的verilog实现_第5页
资源描述:

《fpga设计中dac7512控制的verilog实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、FPGA设计中DAC7512控制的Verilog实现-,概述DAC7512是一个12-BIT,串行接口的DAC。低功耗,RAIL-TO-RAIL输出,SOT23-6封装。3线串行端II最高工作频率可以达到30MHZ,井兼各SPI,QSPI,MICROWIRE等总线。DAC7512没有专用的基准电压输入,直接把VDD和GND作为基准电压,12BIT的分辨率,其输山电压为VOUT=VDD*D/4096。其中D是12BIT电压数值。SOT23-6封装的DAC7512的引脚图如卜‘。TopViewSOT23-6▽OUT1O6SYNCGND2DAC75125SCLKVoo34D

2、NDAC7

3、512具冇3线串行端口,其信号定义如下所示:SerialDataInput.Dataisclockedintothe16-bitinputshiftregisteronIh©fallingedgeoftheserialclockinput.SerialClockInput.Datacanbetransferredalratesupto30MHz.Leveltriggeredcontrolinput(activeLOW).ThisisIheframesychronizationsignalfortheinputdata.WhenSYNCgoesLOW.itenablestheinp

4、utshiftregisteranddataistransferredinonthefallingedgesofIhefollowingclocks.TheDACi$updatedfollowingthe16thclockcycleunlessSYNCistakenHIGHbeforethisedge,inwhichcasetherisingedgeofSYNCactsasaninterruptandthewritesequenceisignoredbytheDAC7512.对DAC7512来讲,在总线上只会接收控制器发出的16BIT的数字信号(2BIT无效数据,2bit控制数据

5、和12bit(信号幅值数裾)。所以对亍控制器来讲,在总线操作上,只需要串行写这-种操作。总线串行写操作在SYNC的下降沿开始。16bit的数据在SCLK的下降沿被依次送入到DAC7512内部的移位寄存器中。从功耗的角度上讲,如果SYNC在空闲状态保持低电平,则有利于功耗的降低,但从总线操作的角度上讲,需要SYNC的下降沿来启动一次传输。vw>ZVlo♦&$V.滅specie濾iom40X1*♦IttSXotmceMMnaraM二,总线控制器的设计根据总线控制器的特性,采用状态机来实现总线控制器的设计。从上面DAC7512的操作时序上来看,用一个三状态的状态机实现总线控制器是比较好

6、的选择。在系统初始化或者没宥数据传输时,系统处于空闲状态(DAC_IDLE),为了降低功耗,在这个状态下,SYNC信号为低电平;当冇数据需要传输时,先进入DAC_PRE状态,在这个状态下,使SYNC信号为高电平,DAC_PRE状态保持的时问最短为SYNC需要保持为高电平的时问,即上图的T8,在VDD为3.6V〜5.5V的时候,为33ns;当DAC_PRE状态结束时,进入DAC_DATA状态,在这个状态卜依次把16bit数据送到总线上去。卜*图是状态机状态转换图。系统初始化或者数据传输结束时,进入DACJDLE状态。当冇数据需要传输吋,进入DAC_PRE状态。在DAC_PRE状态

7、保持的吋间,根据SYNC保持高电平的吋间来决定,采用一个计数器来实现保持时问。系统进入DAC_DATA时,开始传输数据,当16bit数据全部传输完毕后,系统回归到IDLE状态。DAC_DATA状态下,送往总线的数据由计数器来控制,DAC_DATA状态保持的时问也由计数器控制。由于总线上,数据在SCLK的下降沿被DAC7512锁存,所以控制器需要在SCLK的十*降沿之前把数据送到总线上,并且要保证数据SETUPTIME的要求。为了便于控制,我们采用一个比SCLK的频率高一倍,且相位相同的吋钟(CLK_IN)来控制总线上数据的转换。DAC_DATA状态计数器也工作在这个吋钟频率下。下

8、面是状态机部分的verilog实现:regDA_SCLK;//串口时钟,由CLK_IN二分频得到,本例中CLK_IN为50MHz时钟,DA_SCLK为25MHzalways@(posedgeCLK_INornegedgeRESET)beginif(〜RESET)DA_SCLK<=1*b0;elseDASCLK<=〜DASCLK;endparameterDACJDLE=3’bOOl,//系统空闲DAC.PRE=3’b010,//系统数据预传输状态DAC_DATA=3*blOO;//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。