原创 发飙,一天写三篇,回馈观众,把一个简单的DAC贴出来

2009-7-30 12:04 2476 7 12 分类: FPGA/CPLD

DAC使用的LTC2624的产品,个人感觉时序比较简单,这是个好事情,然后发现网上的资料也少,就贴出来给初学者们一个参考吧,FPGA的电压时3.3V的LVCOMS33的io标准,然后只是搞了一个简单的高电平,电压为1/2的3.3V 所以用万用表便可以拿来验证了。


下面就给代码吧。核心代码是一个计数器式的状态机


module DAC_TEST(
                             CLK,
                             SPI_SCK ,
                             DAC_CLR ,
                             DAC_CS ,
                             SPI_MOSI
            );
input          CLK;
output         SPI_SCK;
output         DAC_CLR;
output         DAC_CS;
output         SPI_MOSI;


reg            DAC_CLR = 1;
reg            DAC_CS;
reg            SPI_MOSI;


reg   [3:0]    DAC_C = 4'b0011;
reg   [3:0]    DAC_A = 0;
reg   [11:0]   DAC_V = 12'h800 ;


reg       SPI_CLK = 0;
always @ ( posedge CLK ) begin
   SPI_CLK <= ~SPI_CLK ;
end


reg [15:0]      state_counter = 0;


always @ ( negedge SPI_CLK ) begin
   if ( state_counter == 16'd32 )
     state_counter <= 0;
 else
       state_counter <= state_counter + 1'b1 ; 
end


/*
reg           SPI_SCK_C = 0 ;
always @ ( negedge SPI_CLK ) begin
   case ( state_counter )
 0: SPI_SCK_C <= 1 ;
  32: SPI_SCK_C <= 0 ; 
 endcase
end*/


always @ ( negedge SPI_CLK ) begin
   case ( state_counter )
 0 : DAC_CS <= 0 ;
 32: DAC_CS <= 1 ;
   endcase 
end


always @ ( negedge SPI_CLK ) begin
   case ( state_counter )
 
   8 : SPI_MOSI <= DAC_C[3] ;
   9 : SPI_MOSI <= DAC_C[2] ;
  10 : SPI_MOSI <= DAC_C[1] ;
  11 : SPI_MOSI <= DAC_C[0] ;
  12 : SPI_MOSI <= DAC_A[3] ;
  13 : SPI_MOSI <= DAC_A[2] ;
  14 : SPI_MOSI <= DAC_A[1] ;
  15 : SPI_MOSI <= DAC_A[0] ;
  16 : SPI_MOSI <= DAC_V[11] ;
  17 : SPI_MOSI <= DAC_V[10] ;
  18 : SPI_MOSI <= DAC_V[9] ;
  19 : SPI_MOSI <= DAC_V[8] ;
  20 : SPI_MOSI <= DAC_V[7] ;
  21 : SPI_MOSI <= DAC_V[6] ;
  22 : SPI_MOSI <= DAC_V[5] ;
  23 : SPI_MOSI <= DAC_V[4] ;
  24 : SPI_MOSI <= DAC_V[3] ;
  25 : SPI_MOSI <= DAC_V[2] ;
  26 : SPI_MOSI <= DAC_V[1] ;
  27 : SPI_MOSI <= DAC_V[0] ;
   endcase 
end


assign SPI_SCK = SPI_CLK  ;


endmodule

文章评论5条评论)

登录后参与讨论

用户536736 2009-8-5 11:23

有没有ADC的程序参考一个啊~

用户563816 2009-7-30 23:32

ADC和DAC 的确是AD的好啊,毋庸置疑的。但是Linear的稍微便宜点吧,也不差了,至少我现在做不出来,也弄不清这块芯片怎么构造,所以我还是老实点,继续学习。

用户563816 2009-7-30 23:18

发现自己不会回复评论。。。汗啊 楼上的兄弟的意见是很中肯的。 其实风格贴到这个上面就没了风格了。。。 很乱,呵呵,关于复位问题,简单电路,直接采用, initial reg 寄存器。是寄存器初始化赋值。如果做成电路的话,大哥你的意见是非常重要的,绝对需要一个复位开关。。但是拔电源复位也是个好办法。。。(偶老板说的)

用户146077 2009-7-30 21:47

代码风格改改,还需要学习学习,连复位都没有 还有就是要搞这个就一直搞逻辑,要是软件硬件都想搞的话 我保准你吃不消的,这个只是我的一些建议,希望对你有帮助。

tengjingshu_112148725 2009-7-30 14:40

ADC DAC还是AD公司的好
相关推荐阅读
用户563816 2013-04-19 23:45
我突然间发现EDN的博客还活着啊,哈哈,那我就回来了
重新开始我的技术博客生涯...
用户563816 2010-12-27 11:39
orcad capture 16.3 突然启动不了 未响应 解决方法
最近出现一个特别的问题,就是cadence 其他产品都是好的,就是orcad capture 启动不了 显示未响应,我系统是win 7 1 :找到 注册表 HKEY_CURRENT_USER\Soft...
用户563816 2010-12-17 14:52
对于cadence 16.3的安装与破解
很多朋友在16.3上面的破解都是相当的麻烦,前些日子我找了一个破解方法,利用的是一个文件替换的方法吧,感觉还挺好的,在此贴上给大家享用里面的一个sn文件就是破解的方法,具体就是不要装license m...
用户563816 2010-03-27 01:27
要本科毕业了,说说学校的团队和一些感慨吧
      自己正在混实验室之中,呵呵。但是身边很多朋友都在一个比较出色的团队里面了,自己缺乏的就是一个这样的锻炼,导师给了我很大发挥的空间,而且,重要的是,我收到的是老师直接的教诲,所以感觉这一年的...
用户563816 2010-03-17 19:57
话说昨日BUG以及一个电路的理解失误
昨天的问题中午终于得到解决,首先其一是:一个PL2303引脚的电压在设计PCB中,出现了失误,导致了很大一部分时间的浪费。下面是对于PL2303的一些解释,首先给出datasheet中的一些基本说明吧...
用户563816 2010-03-16 23:53
今天很郁闷
本来打算写一些相关的RF项目的事情,后面发现板子出现了毛病,PL2303与电脑的连接出现问题,同时在相关的电源方面有个小bug被我发现,调试两个小时不见效果。。特此发帖,以示郁闷。争取在这两天搞定这个...
我要评论
5
7
关闭 站长推荐上一条 /2 下一条