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

ADS1299: 读取寄存器有问题

Part Number:ADS1299

在读取寄存器ID时一直不成功,用示波器检查发现可以正常发送数据,但是接收数据方面一直没反应,DOUT引脚无变化,但是SCLK引脚和DIN引脚都正常,且CS 引脚在命令发送时一直为低,请问这是什么问题呢

Amy Luo:

您好,

y ? 说:但是接收数据方面一直没反应,DOUT引脚无变化

检查下主从SPI 通信电平是否兼容,即主控端发送信号的电压电平,ADS1299是否可以识别:

y ? 说:且CS 引脚在命令发送时一直为低,

对于ADS1299,CS pin 是其输入管脚,因此不是 ADS1299 这边的原因使其一直为低。CS pin 受SPI 主控端控制,建议检查主控端设置。

另外,下面FAQ分享给您,希望对您调试SPI 有帮助:

[FAQ] 【常见问题解答】ADS129x问题咨询

[FAQ] ADS1298: ADS129x:如何验证 ADS129x 器件是否仍然正常工作?

,

y ?:

我检查了sclk和MOSI的引脚状态发现没有问题,主控端发送的电压点评高电平为3.3,低电平为0v,ADS1299应该可以识别,CS引脚是在命令发送时为低,其余时候为高,这证明CS引脚应该没有问题吧

,

Amy Luo:

ADS1299 DVDD是几伏电压供电?是3.3V供电吗?

在 datasheet Figure 67. Initial Flow at Power-Up有初始化顺序,您是按照这个流程初始化的设备吗?

建议您用示波器抓一下SPI 读取一个寄存器值的波形图,我看下读取时序是否有异常。

,

y ?:

是3.3V供电,而且上电时序也符合流程,这是SCLK引脚和MOSI引脚/resized-image/__size/640×480/__key/communityserver-discussions-components-files/58/pastedimage1705910425389v1.jpeg

,

y ?:

这是发送了SDATAC命令,是要先配置好所有寄存器才能读寄存器么,在读寄存器时的START引脚要置1么,希望您能解答我的疑惑

,

Amy Luo:

如果设备处于RDATAC模式,则必须先发出SDATAC命令,然后才能向设备发送任何其他命令。

y ? 说:是要先配置好所有寄存器才能读寄存器么,

不是的,发送了 SDATAC命令就可以读寄存器了,因为上电后设备默认处于RDATAC模式。

y ? 说:在读寄存器时的START引脚要置1么,

不需要。

,

y ?:

你好我又重新焊了板子,但是MISO还是一样的问题,他现在有变化但是都不熟数据,下面是波形,这是为什么呢,蓝色时miso线,黄色是SCLK线,这种波形是什么原因导致的呢

,

Amy Luo:

您可以附上一个完整的SPI 读取一个寄存器值的波形图吗?上面波形图无法看到您输入的命令,也无法对照看输出的数据。datasheet 如下截图部分有寄存器读和写时序图:

,

y ?:

因为示波器只有两通道,不能i显示完整的SPI通信,我在上面的图片里发了MISO和SCLK的波形和MOSI 和SCLK的波形不知道可不可以,另外我想问如果使用内部时钟的话clk引脚有输出么

,

Amy Luo:

y ? 说:我在上面的图片里发了MISO和SCLK的波形和MOSI 和SCLK的波形不知道可不可以,

我没看到您发的这两个波形,最好有CS信号,这样可以看完整的一帧数据是怎样的。

y ? 说:另外我想问如果使用内部时钟的话clk引脚有输出么

寄存器配置上电默认是没有输出的:

,

y ?:

蓝色部分是MISO,黄色部分是SCLK,我目前只是想读芯片ID,所以还没配置其他寄存器,上面的图片您可以看见么

,

y ?:

这张图片蓝色是MOSI,黄色是CS,先发送了SDATAC再发送了RREG的指令,这张图有什么问题么

,

Amy Luo:

读寄存器的话,如下时序图,需要发送两个命令,一个命令: 001r rrrr,r rrrr是开始读的寄存器地址。第二个命令是 000n nnnn,n nnnn是需要读取寄存器的数量-1。发送完这两个命令后,DOUT 会输出相应地址寄存器值。在这整个读取过程中CS是一直拉低的,通过拉低cs启动读时序:

看您第二个图,CS在整个读取过程中不是一直拉低的,因此主控端发送的命令会被忽略:

,

Amy Luo:

第二幅图没有显示,重新附一下:

,

y ?:

你好,我现在可以正常读写寄存器,但是当我配置成内部测试方波后,dout引脚仍然没有任何输出,DRDY的时序也是正常的,在第一个下降沿读取,这是什么原因,如果我配置成了内部方波,那么我可以在模拟输出引脚看到波形么,希望尽快得到回答

,

Amy Luo:

y ? 说:但是当我配置成内部测试方波后,dout引脚仍然没有任何输出,

您可以附上您配置的寄存器值吗,我看下?

同时测量下供电电压、参考电压、VCAPs电压是否正常:

How do I verify that my ADS129x device is still functional? 

y ? 说:dout引脚仍然没有任何输出,DRDY的时序也是正常的,

您是否发送了读取转换数据命令RDATA或者RDATAC?示波器看下读取命令是否正常?

y ? 说:如果我配置成了内部方波,那么我可以在模拟输出引脚看到波形么,

不可以,内部方波是芯片内部产生的模拟输入信号以代替ADC外部模拟输入。使用内部测试方波可以用来排查ADC模拟输入端的问题。

,

y ?:

ADS_REG(WREG|CONFIG1,0x95);  Delay_us(1); ADS_REG(WREG|CONFIG2,0XD0);//测试信号内部产生 Delay_us(1); ADS_REG(WREG|CONFIG3,0XE0); //使用内部参考电压, Delay_us(1); ADS_REG(WREG|CH1SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH2SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH3SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH4SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH5SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH6SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH7SET,0X05); //amplified x1 Delay_us(1); ADS_REG(WREG|CH8SET,0X05); //amplified x1 Delay_us(1);

我发送了RDATAC命令,并且DRDY可以顺利产生中断,但是Dout引脚就是数据一直为零

,

y ?:

您好,我刚才用示波器检查了一下DIN的输入,我发现我=我没有成功写入第八个通道的值,而且发送的RDATA命令也不对,但是我仍然在DRDY引脚上产生了中断,并且SCLK与DRDY的对应也是正确的,这是为什么呢

,

Amy Luo:

在DRDY引脚上产生了中断与是否发送RDATA命令没有关系,只有您发送START命令或拉高START 管脚以启动AD转换,DRDY管脚就会有脉冲信号产生以指示AD转换完成。

发送RDATA命令是用来读取AD转换结果的,启动了AD转换但不去读取AD转换结果也是可以的,这不影响DRDY信号的产生。

,

y ?:

你好,我现在已经可以读取内部测试的方波数据但是我发现它存在漂移,正值为1.23mV,负值为2.51mV左右,这种数据是正常的么

,

Amy Luo:

您将寄存器MUXn[2:0] 配置001,看输出幅值多少?

赞(0)
未经允许不得转载:TI中文支持网 » ADS1299: 读取寄存器有问题
分享到: 更多 (0)