LTC1196ADC输出串并转换电路.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文档。上传文档
查看更多
LTC1196ADC输出串并转换电路

实验二 LTC1196ADC输出串并转换电路 实验要求 利用状态机等设计将LTC1196(ADC)的串行输出数据转换成并行数据的转换电路,ADC的时钟由转换电路提供,CS信号由转换电路处理后提供给ADC,以保证LTC1196的时序要求。 实验原理 利用状态机的方法设计,通过资料得知LTC1196的工作频率为1MHz,同时把系统时钟也设置为1MHz,2个片选信号之间间隔为12个工作频率,因此将状态在内的12个状态,在初始状态st0中将所有的信号量初始化,在st1-st4中为采集模拟量时间,转换电路空操作,在st5-st12状态中将ADC转换的串行数字量保存给中间变量。 图1 LTC1196-2B时序图 从时序图可以知道:采样时间tSMPL至少为2.5个fCLK,单次转换时间不少于12个fCLK;片选下降沿离上一CLK上升沿至少13ns,离下一CLK上升沿,建立时间至少26ns;时钟频率fCLK不高于12MHz。转换关系为 下图为该状态机的状态图 下面第程序中的参数作简要的介绍: enable:转换电路使能端,由FPGA控制 start:LTC1196使能端 din:LTC1196的串行数字端 dout:并行输出端 rst:异步复位端 fclk:系统时钟接入端,1MHz busy:转换工作中,当采集模拟量的时候为高电平 adok:转换结束,可以通知FPGA取数 实验程序 library ieee; use ieee.std_logic_1164.all; entity adc is port (fclk,enable,din,rst:in std_logic; dout:out std_logic_vector(7 downto 0); busy,start,adok:out std_logic); end entity adc; architecture behav of adc is type states is (st0,st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11); --12个状态 signal count: integer range 0 to 49; --50分频的常量 signal current_state:states; signal next_state:states; signal data:std_logic_vector(7 downto 0); --传输数据的中间量 signal rise:std_logic; --rise通知FPGA可以取数上升沿有效 signal serok:std_logic; --LTC1196模拟量采样完毕信号 signal sample:std_logic; --模拟变换数字后的中间量 begin sam: process (serok,fclk) --模拟采样进程 begin if serok=1 then if fclk=0 then sample=din; end if; end if; end process sam; adc: process (current_state,enable) --AD转换电路进程 begin if (rst=1) then next_state=st0;--异步清零,高电平有效,复位后回复到st0状态 else case current_state is when st0=start=1; rise=1; busy=0;serok=0; if (enable=1) then next_state=st1; else next_state=st0; end if; when st1=start=0; rise=0; busy=1;serok=0; next_state=st2; when st2=start=0; rise=0; busy

文档评论(0)

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

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

1亿VIP精品文档

相关文档