AD5761驱动问题

2019-03-25 07:16发布

大家好!我遇到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上运行时序图:

此帖出自小平头技术问答
0条回答

一周热门 更多>