This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS127L01 菊花链连接是否有问题, CS一直拉低。读8个寄存器值不对,是否是有时序问题。

读8个寄存器:

时序如下:

  • CS一直拉低

    可能是有问题的, 每次数据读写完成, 要置高 CS. 以通知通信命令的结束

  • 但是手册上可以一直为低呀。

  • CS一直为low 没问题。
    读取值不对,应该还是时序的问题,DAISYIN这个引脚的建立时间和保持时间都满足Spec要求吗?
    还是建议要测量下Daisy chain模式下的SPI时序是否没问题。
  • 怎么解决的,我也遇到同样的问题, 不同采样率下有的有有的没有,能把你的这块给我看下吗,谢谢
    finelei2002@163.com
  • 我的做法是:
    1>写配置寄存,使其SPI接口超时复位功能打开;
    2>读写寄存器间隔一定时间,使相邻时刻间隔大于SPI接口复位时钟数;

    代码:
    case (ctrl_state_r)
    CTRL_STATE_IDLE : begin
    if(wait_cnt_r < CTRL_WAIT_TICKS) begin
    wait_cnt_r <= wait_cnt_r + 32'd1;
    end
    else begin
    wait_cnt_r <= 32'd0;
    req_wr_pulse_r <= 1'b0;
    req_rd_pulse_r <= 1'b0;
    ctrl_state_r <= CTRL_WR_REG_STATE;
    end
    end

    CTRL_WR_REG_STATE : begin
    if (req_clk_cnt_r < 16'd1) begin
    req_wr_pulse_r <= 1'b1;
    req_clk_cnt_r <= req_clk_cnt_r + 4'd1;
    end
    else begin
    req_wr_pulse_r <= 1'b0;
    if(wait_cnt_r < CTRL_WAIT_TICKS) begin
    wait_cnt_r <= wait_cnt_r + 32'd1;
    end
    else begin
    wait_cnt_r <= 32'd0;
    req_clk_cnt_r <= 4'd0;
    ctrl_state_r <= CTRL_RD_REG_STATE;
    end
    end
    end
    CTRL_RD_REG_STATE : begin
    if (req_clk_cnt_r < 16'd1) begin
    req_rd_pulse_r <= 1'b1;
    req_clk_cnt_r <= req_clk_cnt_r + 4'd1;
    end
    else begin
    req_rd_pulse_r <= 1'b0;
    if(wait_cnt_r < CTRL_WAIT_TICKS) begin
    wait_cnt_r <= wait_cnt_r + 32'd1;
    end
    else begin
    wait_cnt_r <= 32'd0;
    req_clk_cnt_r <= 4'd0;
    ctrl_state_r <= CTRL_RD_DATA_STATE;
    end
    end
    end
    CTRL_RD_DATA_STATE: begin
    if(adc_reload) begin
    ctrl_state_r <= CTRL_STATE_IDLE;
    end
    else begin
    ctrl_state_r <= ctrl_state_r;
    end
    end
    default: begin
    req_wr_pulse_r <= 1'b0;
    req_rd_pulse_r <= 1'b0;
    ctrl_state_r <= CTRL_STATE_IDLE;
    req_clk_cnt_r <= 4'd0;
    wait_cnt_r <= 32'd0;
    end
    endcase
  • 我的ADC工作时钟为16MHZ,SPI CLK 也为16MHZ
  • 谢谢分享,我的设计上CS是直接接地的,SCLK是一直有的,测试中发现会出来有时正常,有时不正常,在512K及256K采样率下正常,小于256K采样率就会出来时而有输出数据时而没有。我需要很多采样率,可以在线更改的。