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

ads1158读取数据的问题

我现在用的ads1158在读取数据的时候,通道号是可以正常读取的,但是后面两个字节的数据读不到,不管输入信号怎么变化,读到的两个字节数据始终是一个固定值不变。这是为什么??

Carter Liu:

初始化配置程序没有问题吧

wang longfei:

回复 Carter Liu:

这个应该没问题。通道号能读取,我换不同的通道号都可以正确读取,这是否可以说明初始化没问题?

wang longfei:

回复 wang longfei:

在读数据的时候,按理说new位应该为“1”,我的始终都是“0”,

Carter Liu:

回复 wang longfei:

读之前有没有检测DRDY是否有效

wang longfei:

回复 Carter Liu:

我是在每个drdy为低的时候开始读取,示波器显示结果,从上至下一次是adc的输出,sck,cs,drdy,

这样有问题吗?

 

wang longfei:

回复 Carter Liu:

下面是原理图

wang longfei:

回复 Carter Liu:

这是程序
 
always @(posedge clk or negedge rst_n)beginif(!rst_n)beginnum_reset_cmd<=8'd0;num_reg_wr<=8'd0;num_reg_rd<=8'd0;num_dat_rd<=8'd0;num_wait <=8'd0;state <=reset_spi;cs <=1'd1;flag <=2'd0;start <=1'd0;cscnt <=32'd0;rst_ad_cnt<=32'd0;init_cnt<=32'd0;flag_sclk <=1'd0;rst_ad <=1'd0;endelse case(state )reset_spi: begin //reset_spi;if(cscnt == 32'd600000)begin//cs <=1'd0;//flag_sclk<=1'd1;//rst_ad<=1'd1;state <=reset_ad;endelse begin//rst_ad<=1'd0;cs <=1'd1;flag_sclk<=1'd0;cscnt <=cscnt+1'd1;endend //reset_spireset_ad: begin //reset_spi;if(rst_ad_cnt == 32'd600000)begin//600000//cs <=1'd0;//flag_sclk<=1'd1;//rst_ad<=1'd1;rst_ad<=1'd1;state <=reg_wr;endelse beginrst_ad<=1'd0;rst_ad_cnt <=rst_ad_cnt+1'd1;endend //reset_spireg_wr: begin // reg_wr;//cs <=1'd0;//flag_sclk<=1'd1;flag <=2'd1;//if(SCK_risingedge)beginnum_reg_wr<=num_reg_wr+1'd1;case (num_reg_wr)8'd0:begincs <=1'd0;//flag_sclk<=1'd1;end//8'd1:flag_sclk<=1'd1;//cmd for write register8'd1: beginflag_sclk<=1'd1;mosi <=1'd0;end8'd2: mosi <=1'd1;8'd3: mosi <=1'd1;8'd4: mosi <=1'd1;8'd5: mosi <=1'd0;8'd6: mosi <=1'd0;8'd7: mosi <=1'd0;8'd8: mosi <=1'd0;//config08'd9: mosi <=1'd0;8'd10: mosi <=1'd0;8'd11: mosi <=1'd0;8'd12: mosi <=1'd1;8'd13: mosi <=1'd0;8'd14: mosi <=1'd0;8'd15: mosi <=1'd1;8'd16: mosi <=1'd0;//cmd for muxsg0/*8'd18: mosi <=1'd0;8'd19: mosi <=1'd1;8'd20: mosi <=1'd1;8'd21: mosi <=1'd0;8'd22: mosi <=1'd0;8'd23: mosi <=1'd1;8'd24: mosi <=1'd0;8'd25: mosi <=1'd0;*///config18'd17: mosi <=1'd0;8'd18: mosi <=1'd1;8'd19: mosi <=1'd0;8'd20: mosi <=1'd0;8'd21: mosi <=1'd0;8'd22: mosi <=1'd0;8'd23: mosi <=1'd0;8'd24: mosi <=1'd0;//muxsch8'd25: mosi <=1'd0;8'd26: mosi <=1'd0;8'd27: mosi <=1'd0;8'd28: mosi <=1'd0;8'd29: mosi <=1'd0;8'd30: mosi <=1'd0;8'd31: mosi <=1'd0;8'd32: mosi <=1'd0;//cmd for muxsg1/*8'd34: mosi <=1'd0;8'd35: mosi <=1'd1;8'd36: mosi <=1'd1;8'd37: mosi <=1'd0;8'd38: mosi <=1'd0;8'd39: mosi <=1'd1;8'd40: mosi <=1'd0;8'd41: mosi <=1'd1;*///muxdif8'd33: mosi <=1'd0;8'd34: mosi <=1'd0;8'd35: mosi <=1'd0;8'd36: mosi <=1'd0;8'd37: mosi <=1'd0;8'd38: mosi <=1'd0;8'd39: mosi <=1'd0;8'd40: mosi <=1'd0;//muxsg08'd41: mosi <=1'd0;8'd42: mosi <=1'd0;8'd43: mosi <=1'd0;//8'd44: mosi <=1'd0;8'd45: mosi <=1'd0;8'd46: mosi <=1'd0;8'd47: mosi <=1'd0;8'd48: mosi <=1'd0;//muxsg18'd49: mosi <=1'd0;8'd50: mosi <=1'd0;8'd51: mosi <=1'd0;//8'd52: mosi <=1'd1;8'd53: mosi <=1'd0;8'd54: mosi <=1'd0;8'd55: mosi <=1'd0;8'd56: mosi <=1'd0;//sysred8'd57: mosi <=1'd0;8'd58: mosi <=1'd0;8'd59: mosi <=1'd0;//8'd60: mosi <=1'd0;8'd61: mosi <=1'd0;8'd62: mosi <=1'd0;8'd63: mosi <=1'd0;8'd64: mosi <=1'd0;//gpioc8'd65: mosi <=1'd0;8'd66: mosi <=1'd0;8'd67: mosi <=1'd0;//8'd68: mosi <=1'd0;8'd69: mosi <=1'd0;8'd70: mosi <=1'd0;8'd71: mosi <=1'd0;8'd72: mosi <=1'd0;//gpiod8'd73: mosi <=1'd0;8'd74: mosi <=1'd0;8'd75: mosi <=1'd0;//8'd76: mosi <=1'd0;8'd77: mosi <=1'd0;8'd78: mosi <=1'd0;8'd79: mosi <=1'd0;8'd80: mosi <=1'd0;//id8'd81: mosi <=1'd1;8'd82: mosi <=1'd0;8'd83: mosi <=1'd0;//8'd84: mosi <=1'd1;8'd85: mosi <=1'd1;8'd86: mosi <=1'd0;8'd87: mosi <=1'd1;8'd88: mosi <=1'd1;8'd89: begincs <=1'd1;flag_sclk<=1'd0;mosi<=1'd0;start <=1'd1;state <=reg_rd;enddefault:;endcase//endend //reg_wr;reg_rd: begin // reg_rd;if(init_cnt == 32'd5000)beginstate <=wait_sck;endelse begininit_cnt <=init_cnt+1'd1;end/*else if(SCK_risingedge)begin*//*num_reg_rd=num_reg_rd+1'd1;case (num_reg_rd)//cmd8'd0: ;//mosi <=1'd0;8'd1: ;//mosi <=1'd1;8'd2: ;//mosi <=1'd0;8'd3: ;//mosi <=1'd1;8'd4: ;//mosi <=1'd0;8'd5: ;//mosi <=1'd0;8'd6: ;//mosi <=1'd0;/*8'd7: ;//mosi <=1'd0;8'd8: ;//mosi <=1'd1;8'd9: ;//mosi <=1'd0;8'd10: ;//mosi <=1'd1;8'd11: ;//mosi <=1'd0;8'd12: ;//mosi <=1'd0;8'd13: ;//mosi <=1'd0;8'd14: ;//mosi <=1'd0;8'd15: ;//mosi <=1'd1;*//*8'd7: beginstate <=wait_sck;//mosi <=1'd0;end//8'd8:	state <=dat_rd;default: ;endcase*/end //reg_rd;wait_sck: begincase(num_wait)//flag<=2'd0;8'd0:beginif(drdy==1'd0)begin//cs <=1'd0;//flag_sclk <=1'd1;//state <=dat_rd//flag<=2'd2;num_wait=num_wait+1'd1;endelse num_wait<=8'd0;//state <=wait_sck;end8'd1:begincs <=1'd0;//flag_sclk <=1'd1;//flag<=2'd2;num_wait=num_wait+1'd1;end8'd2:begin//flag<=2'd2;flag_sclk <=1'd1;num_wait=num_wait+1'd1;end8'd3:begin//flag_sclk <=1'd1;//mosi<=1'd0;flag<=2'd2;num_wait=num_wait+1'd1;end8'd4: begin//mosi<=1'd0;num_wait=num_wait+1'd1;end8'd5: begin//mosi<=1'd1;num_wait=num_wait+1'd1;end8'd6:begin//mosi<=1'd0;num_wait=num_wait+1'd1;end8'd7:begin//mosi<=1'd0;num_wait=num_wait+1'd1;end8'd8: begin//mosi<=1'd0;num_wait=num_wait+1'd1;end8'd9: begin//mosi<=1'd0;num_wait=num_wait+1'd1;end8'd10:begin//mosi<=1'd0;num_wait=num_wait+1'd1;	//end8'd11:num_wait=num_wait+1'd1;8'd12:num_wait=num_wait+1'd1;8'd13:num_wait=num_wait+1'd1;8'd14:num_wait=num_wait+1'd1;8'd15:num_wait=num_wait+1'd1;8'd16:num_wait=num_wait+1'd1;8'd17:num_wait=num_wait+1'd1;8'd18:num_wait=num_wait+1'd1;8'd19:num_wait=num_wait+1'd1;8'd20:num_wait=num_wait+1'd1;8'd21:num_wait=num_wait+1'd1;8'd22:num_wait=num_wait+1'd1;8'd23:num_wait=num_wait+1'd1;8'd24:num_wait=num_wait+1'd1;8'd25:num_wait=num_wait+1'd1;8'd26:num_wait=num_wait+1'd1;/*8'd26:num_wait=num_wait+1'd1;8'd27:num_wait=num_wait+1'd1;8'd28:num_wait=num_wait+1'd1;8'd29:num_wait=num_wait+1'd1;8'd30:num_wait=num_wait+1'd1;8'd31:num_wait=num_wait+1'd1;8'd32:num_wait=num_wait+1'd1;8'd33:num_wait=num_wait+1'd1;*/8'd27:begincs<=1'd1;flag_sclk<=1'd0;num_wait<=8'd0;flag<=2'd0;endendcaseend

Zhong JianFu:

回复 Carter Liu:

你好,我遇到一个问题

发现CLKIO无输出,晶振工作正常,看了手册,默认是用了外部晶振的话就会在CLKIO口的引脚输出,可是用示波器测不到

是我的芯片没有正常工作吗?

求指出问题

赞(0)
未经允许不得转载:TI中文支持网 » ads1158读取数据的问题
分享到: 更多 (0)