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.

ADS131M04: 读取不到通道数据

Part Number: ADS131M04

 这是我的电路,在AIN0P输入0-1V模拟电压信号,AD读取数据时,response值0X0500,CRC:0X007B8D00,其余各通道数据一直是0

  • 您好,

    你上电后直接读取的AD转换数据吗?是否进行了寄存器配置?目前寄存器可以正常写入和读取吗?配置了哪些寄存器,配置的什么值?

    在 ADS131M04产品首页如下链接有 ADS131M0x Example C Code,你是否已知道?

    https://www.ti.com.cn/product/cn/ADS131M04

  • 我就是参考的ADS131M04产品首页链接有下的ADS131M0x Example C Code,只不过我用的Stm32L431,这是我的代码,您帮我看看

  •  这是ADC初始化部分,读数数据函数如下:

    能读取到response值为0x0500,CRC值为0x7B8D,通道数据全部是0

  • 代码看不出来什么,建议你使用示波器或逻辑分析仪抓取时序波形来看下时序波形是否异常。

    你现在寄存器可以正常写入和读取了是吗?你可以附上你的寄存器配置吗?

  • 我的CAP电压是1.77V,不知道是否正常?,我的寄存器配置如下,寄存器可以正常写入和读取。

    我改用软件SPI方式读写ADC,AIN0P端接模拟电压0-1.2V,AIN0N端接AGND,结果输出固定如下:所有通道的值:FF808000,response值:0x8080,CRC值:0x8080,不知道哪里出现了问题,求您帮我看看,多谢!,我的SPI模拟读写程序如下:

  • datasheet 没有说明CAP输出电压精度,你测量的1.77V符合以下供电范围,不影响ADS131M04的正常工作。

    从上述代码我看不出来配置的寄存器值是什么?或者你可以读出配置后的寄存器值吗?每个寄存器对应的值是什么这样附上来。

    建议你使用示波器或逻辑分析仪抓取读取转换结果的时序波形来看下时序波形是否异常。

  • 我的寄存器可以正常写入,也可以正常读取出来,只是我在readData(&ADC_data)之前,设置了DRDY下降沿中断,但是DRDY引脚一直不能变低

  • 其他寄存器数据读写都正常,MODE_ADDRESS,模式寄存器写入0x0509,读出来就是0509,写入0x0510,始终读出来是0x0511,一直有问题,不知道哪错了,另外,我在readData(&ADC_data)之前,设置了DRDY下降沿中断,但是DRDY引脚一直不能变低,还请帮忙看下

  • 您好,看了下面用户的分享,你的问题是否有进展,是否得以解决?

    ADS131M04: CAP引脚是否应该有1.8V输出呢

  • 还是不行,我的设置及读取寄存器都可以(除了MODE_ADDRESS,写入0x0510,始终读出来是0x0511,写入其他值,读出来就没问题了,因此在初始化中,我把写入MODE_ADDRESS语句删了,采用默认值,读出来是0510),我测了CLK引脚波形(电压32mV左右浮动),如下图所示:

  • 这是我读写寄存器的代码,我已测试过读操作,全部正常:

    我的问题是:DRDY引脚不能变低,不知道为什么?即使使用HAL_GPIO_WritePin(GPIOB, nDRDY_PIN, GPIO_PIN_RESET)强制设置后,立马读取DIO1_GetState(),都是高电平,不知道为什么?,下面是DRDY引脚配置:

  • 希望您帮忙看下,多谢了

  • 您好,

    明天或后天我会具体看下你的问题,若给你带来不便很抱歉。

  • 非常感谢

  • 今天没时间看了,明天我会具体看下

  • 好的,多谢了,等您

  • 除了MODE_ADDRESS,写入0x0510,始终读出来是0x0511,写入其他值,读出来就没问题了,

    这一点很奇怪,DRDY_FMT bit的值如果你写入0 的话,它自己不会改变读出来还是0。因为它默认是0,上电后不进行寄存器写入,你读mode 寄存器最低位还是1吗?如果是1,建议你通过reset 命令或RESET pin 复位一下将寄存器值复位值默认值,再进行读取看是否为0x0510?如果还不是的话,建议你换一个板子或换一个ADS131M04 芯片再进行测试。

    我测了CLK引脚波形(电压32mV左右浮动)

    CLK 信号是被干扰了吗?ΔΣADC 调制频率是由CLKIN 产生的,我想CLKIN信号上的这个下跌会影响ADC转换的进行,建议你先解决这个问题再看DRDY信号的问题。

  • 您的联系方式有没有?白天等您空时咨询下您,可以吗?

  • 三种情况测试:

    1.上电后,没复位之前,读mode 寄存器值为:0x0000。

    2.上电后,复位,不进行寄存器写入,读mode 寄存器值为:0x0510

    3.上电后,复位,mode寄存器写入0x0510,读mode 寄存器值为:0x0511

  • ADS131M04上电后,直接读取DRDY引脚,值为:高电平

  • 3.上电后,复位,mode寄存器写入0x0510,读mode 寄存器值为:0x0511

    这里比较奇怪,你有没有测试mode寄存器写入和读取通信时序波形,看有没有异常?

    ADS131M04上电后,直接读取DRDY引脚,值为:高电平

    CLKIN 时钟信号不好会影响AD转换,AD能够转换完成DRDY信号才会拉低,因此我建议你先解决CLKIN 信号异常的问题。

  • 我的时钟是外部8.192M晶振提供,是不是这个电路有问题?

    这个图是时钟CLKIN引脚频率,是不是也有问题?

  • 上电后,复位,mode寄存器写入0x0510,读mode 寄存器值为:0x0511,原因在上面这段代码,把data(0510)转成了0511

  • 上电后,复位,mode寄存器写入0x0510,读mode 寄存器值为:0x0511,原因在上面这段代码,把data(0510)转成了0511

    好的,感谢分享原因。

    建议你检查下X3晶振的连接,OE管脚是接低电平吗?

  • 问题已解决,感谢您这么长时间的关心,就是晶振的问题

  • 我把OE接3.3V后,采用软件SPI读取数据正常了,DRDY也可以变低了。

  • 再次感谢您的关心与帮助

x 出现错误。请重试或与管理员联系。