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

ADS1292R DOut 乱码

本人正在使用的ADS1292R 数据转换器,配置时序后发现,读取寄存器值乱码,不知什么原因。

原理图

CLK_SEL脚未接

总体波形

SCLK 速率在280K上下,上电未做其他设置。

细节1

细节2

细节3

同一寄存器每次读取的值不一样,不知什么原因

读寄存器部分代码

//Chip enable
ADS1292_Enable();
SPI_I2S_SendData(SPI1,0x20 | 0x00); //Send Address
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI1,0x00); //Send num = 1
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE) == RESET);

SPI_I2S_SendData(SPI1,0x00);
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE) == RESET);
//while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE) == RESET);
retVal = SPI_I2S_ReceiveData(SPI1); //Read SPI

OSTimeDlyHMSM(0,0,0,1);
ADS1292_Disable();

恳请出没于TI论坛诸位大侠帮小弟一把,小弟先行谢过。

Decapton Wang:

你的意思是,原理图上clksel通过10k上拉电阻到DVDD,但是实际PCB上是悬空?这个可能不行,参考手册27页,那个引脚是选择内部时钟源的。

tuo qian:

回复 Decapton Wang:

哦,我是把17脚悬空的,也就是CLK_SEL1悬空,14脚CLK_SEL是好的。

时钟是好的,就是读寄存器不行

tuo qian:

回复 Decapton Wang:

大侠说对了,那个设置确实不对,我后来按照手册P10说明,把CPOL 设置成了 0,CPHA 设置为1,跟手册P10的时序和约束比较了下,没有发现问题。

但是情况还是一样,能循环读出0x00,0xXX,0xff三个值,XX不定,我纳闷的是Dout在输出完数据后应该是置高才对,为什么会变低呢。

附图:

另外,时序不对这个问题还可能什么地方引起,有没有可能是芯片坏了?

Decapton Wang:

回复 tuo qian:

前两幅图没看到~CS有跳低再跳高的波形,第三幅有。

你可以先按照手册38页图45,给32个SCLK,把读寄存器这个功能调通。

tuo qian:

回复 Decapton Wang:

Wang大侠,貌似还不行

我大概统计了一下,是29h,31h,c0h,20h,00h,1bh,42h,8ch,3bh

共6个字节重复出现,是不是要配置什么东西?要不要换片子再试?

tuo qian:

回复 Decapton Wang:

问题找着了,是ADS1292r 进入了默认的连续转换状态,读出的那六个字节值刚好是一帧数据(应该是0xc0打头)。

发了停止连续转换就能读对了。

还是要特别感谢Wang大侠的帮忙。

yao shiang:

回复 tuo qian:

tuo qian大大你好

小弟目前也在使用ADS1292,現在卡住了,前面設定的部分對了,但在讀值的時候怎麼讀回來都會是80開頭,正常不是應該要C0開頭嗎

還請您幫幫忙

tuo qian:

回复 yao shiang:

我写的一个笔记,你先看看

http://www.deyisupport.com/question_answer/analog/data_converters/f/58/p/25566/94621.aspx#94621

赞(0)
未经允许不得转载:TI中文支持网 » ADS1292R DOut 乱码
分享到: 更多 (0)