TI中文支持网
TI专业的中文技术问题搜集分享网站

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

读8个寄存器:

时序如下:

user151383853:

CS一直拉低

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

qing yang7:

回复 user151383853:

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

Kailyn Chen:

回复 qing yang7:

CS一直为low 没问题。
读取值不对,应该还是时序的问题,DAISYIN这个引脚的建立时间和保持时间都满足Spec要求吗?
还是建议要测量下Daisy chain模式下的SPI时序是否没问题。

qing yang7:

回复 qing yang7:

解决了。

chen lei1:

回复 qing yang7:

怎么解决的,我也遇到同样的问题, 不同采样率下有的有有的没有,能把你的这块给我看下吗,谢谢
finelei2002@163.com

qing yang7:

回复 chen lei1:

我的做法是:
1>写配置寄存,使其SPI接口超时复位功能打开;
2>读写寄存器间隔一定时间,使相邻时刻间隔大于SPI接口复位时钟数;

代码:case (ctrl_state_r)CTRL_STATE_IDLE : beginif(wait_cnt_r < CTRL_WAIT_TICKS) beginwait_cnt_r <= wait_cnt_r + 32'd1;endelsebeginwait_cnt_r<= 32'd0;req_wr_pulse_r<= 1'b0;req_rd_pulse_r<= 1'b0;ctrl_state_r<= CTRL_WR_REG_STATE;endendCTRL_WR_REG_STATE : beginif (req_clk_cnt_r < 16'd1) beginreq_wr_pulse_r <= 1'b1;req_clk_cnt_r<= req_clk_cnt_r + 4'd1;endelse beginreq_wr_pulse_r <= 1'b0;if(wait_cnt_r < CTRL_WAIT_TICKS) beginwait_cnt_r <= wait_cnt_r + 32'd1;endelsebeginwait_cnt_r<= 32'd0;req_clk_cnt_r<= 4'd0;ctrl_state_r<= CTRL_RD_REG_STATE;endendendCTRL_RD_REG_STATE : beginif (req_clk_cnt_r < 16'd1) beginreq_rd_pulse_r <= 1'b1;req_clk_cnt_r<= req_clk_cnt_r + 4'd1;endelse beginreq_rd_pulse_r <= 1'b0;if(wait_cnt_r < CTRL_WAIT_TICKS) beginwait_cnt_r <= wait_cnt_r + 32'd1;endelsebeginwait_cnt_r<= 32'd0;req_clk_cnt_r<= 4'd0;ctrl_state_r<= CTRL_RD_DATA_STATE;endendendCTRL_RD_DATA_STATE: beginif(adc_reload) beginctrl_state_r<= CTRL_STATE_IDLE;endelse beginctrl_state_r<= ctrl_state_r;endenddefault: beginreq_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;endendcase

qing yang7:

回复 chen lei1:

我的ADC工作时钟为16MHZ,SPI CLK也为16MHZ

chen lei1:

回复 qing yang7:

谢谢分享,我的设计上CS是直接接地的,SCLK是一直有的,测试中发现会出来有时正常,有时不正常,在512K及256K采样率下正常,小于256K采样率就会出来时而有输出数据时而没有。我需要很多采样率,可以在线更改的。

赞(0)
未经允许不得转载:TI中文支持网 » ADS127L01 菊花链连接是否有问题, CS一直拉低。读8个寄存器值不对,是否是有时序问题。
分享到: 更多 (0)