827677504 发表于 2018-4-28 21:56

AD5761驱动问题

大家好!我遇到AD5761的驱动问题,首先将工程分为发送数据模块,AD5761时序控制模块。数据发送模块在SYNC变为高电平才发送指令或者数据


always@(posedge clk)
begin
         temp1 <= sync ;
       temp2 <= temp1 ;
end
always@(posedge clk)
newcome <= (~temp1)&temp2 ;

检测newcome上升沿,用newcome做触发,一旦newcome变为高电平,则发送数据


寄存器数据按下面规则发送:
1.写软件完全复位命令,
2写控制寄存器命令,配置输出范围,内部基准源等
3写入和更新DAC寄存器命令(后面跟十六位数据)。


always @( posedge newcome )
begin
        case(began)
        3'd0:
        begin
   began <= 3'd1 ;       
          dout <=12'b0000_1111_0000_0000_0000_0000 ;//软件完全复位命令
   end
        3'd1:
        begin
   began <= 3'd2 ;       
          dout <= 24'b0000_0100_0000_0010_0000_1000 ;//写入控制寄存器命令
   end
        3'd2:
        begin
   began <= 3'd3 ;       
          dout <= 24'b0000_0100_1100_0010_0000_1000 ;//写入和更新DAC寄存器命令,后面接16位数据
   end
        endcase
end


4测试输出引脚电压,但是电压还是无法从Vout脚测到。而且无论我发什么数据都能实时在SD0脚检测到,但是我没有选择回读。发送的数据是按一帧一帧从SDI口子输入,同时sclk,SYNC,SDI,LDAC,都严格按照时序图写得,不知道我的问题出在哪里?


这是我在quartus上自带的SignalTAP上运行时序图:

https://ezchina.analog.com/servlet/JiveServlet/showImage/2-55363-21945/pastedImage_1.png

ROUROU2016 发表于 2023-5-15 15:27

<p>我也遇到了同样的问题,你的这个问题解决了吗?<br />
&nbsp;</p>
页: [1]
查看完整版本: AD5761驱动问题