FPGA设计中A7512控制的Verilg实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA设计中A7512控制的Verilg实现.doc

FPGA设计中DAC7512控制的Verilog实现 -,概述 DAC7512 是一个 12-BIT,串行接口的 DAC。低功耗,RAIL-TO-RAIL 输出, SOT23-6封装。3线串行端I I最高工作频率可以达到30MHZ,井兼各SPI, QSPI, MICROWIRE 等总线。 DAC7512没有专用的基准电压输入,直接把VDD和GND作为基准电压, 12BIT的分辨率,其输山电压为VOUT = VDD*D/4096。其中D是12BIT电压 数值。 SOT23-6封装的DAC7512的引脚图如卜‘。 Top View SOT23-6 ▽OUT 1 O 6 SYNC GND 2 DAC7512 5 SCLK Voo 3 4 D|N DAC7512具冇3线串行端口,其信号定义如下所示: Serial Data Input. Data is clocked into the 16-bit input shift register on Ih? falling edge of the serial clock input. Serial Clock Input. Data can be transferred al rates up to 30MHz. Level triggered control input (active LOW). This is Ihe frame sychronization signal for the input data. When SYNC goes LOW. it enables the input shift register and data is transferred in on the falling edges of Ihe following clocks. The DAC i$ updated following the 16th clock cycle unless SYNC is taken HIGH before this edge, in which case the rising edge of SYNC acts as an interrupt and the write sequence is ignored by the DAC7512. 对DAC7512来讲,在总线上只会接收控制器发出的16BIT的数字信号(2BIT 无效数据,2bit控制数据和12bit (信号幅值数裾)。所以对亍控制器来讲,在 总线操作上,只需要串行写这-种操作。 总线串行写操作在SYNC的下降沿开始。16 bit的数据在SCLK的下降沿被 依次送入到DAC7512内部的移位寄存器中。从功耗的角度上讲,如果SYNC在 空闲状态保持低电平,则有利于功耗的降低,但从总线操作的角度上讲,需要 SYNC的下降沿来启动一次传输。 vw ZVlo ? $V.滅 specie濾iom 40X1* ?IttSX otmceMMnaraM 二,总线控制器的设计 根据总线控制器的特性,采用状态机来实现总线控制器的设计。从上面 DAC7512的操作时序上来看,用一个三状态的状态机实现总线控制器是比较好 的选择。在系统初始化或者没宥数据传输时,系统处于空闲状态(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状 态保持的吋间,根据SYNC保持高电平的吋间来决定,采用一个计数器来实现 保持时问。系统进入DAC_DATA时,开始传输数据,当16bit数据全部传输完 毕后,系统回归到IDLE状态。 DAC_DATA状态下,送往总线的数据由计数器来控制,DAC_DATA状态 保持的时问也由计数器控制。由于总线上,数据在SCLK的下降沿被DAC7512 锁存,所以控制器需要在SCLK的十*降沿之前把数据送到总线上,并且要保证数 据SETUP TIME的要求。为了便于控制,我们采用一个比SCLK的频率高一倍, 且相位相同的吋钟(CLK_IN)来控制总线上数据的转换。DAC_DATA状态计 数器也工作在这个吋钟频率下。 下面是状态机部分的verilog实现: reg DA_SCLK; //串口时钟,由CLK_IN二分频得到,本例中CLK

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档