ADS131A04: ADS131A04的AD转换完成引脚RDRY始终为高电平

Part Number: ADS131A04


你好!我在使用ADS131A04时,RDRY引脚始终为高电平,我跟踪了所涉及的寄存器,没发现有任何错误,请指正我错在哪里?
// 3.3V的IOVCC,5V的AVCC,16.384无源晶振,M0-IOVDD,M1悬空,M2-GND,ADS131A04通过CA-IS3762与MCU隔离。
//复位
    ADReset =0;  //低电平复位AD
    Delay(10);  //延时10us(要求800ns以上)
    ADReset =1;
    Result =0;
    do{
          Result = SendCommand(0x0000,0);  //第2个参数0表示只发送2个命令字节,不读取AD转换值
      }while(Result !=0xFF04);

//复位完成,以下是读写突破口
    Result = SendCommand(0x0000,0);  //Result返回0xFF04
    Result = SendCommand(0x0655,0);  //Result返回0xFF04
    Result = WriteReg(0x0D, 0x04, 0);  //Result返回0x0655, 向0dh寄存器写入0x04,16.384M晶振4分频,第3个参数0表示不读取AD转换结果
    Result = WriteReg(0x0E, 0x21, 0);  //Result返回0x2D04
    for(i=2; i<21; i++) Result = ReadReg(i,0);  //读取02h~14h寄存器,第2个参数0表示不读取AD转换值
    //Result返回{0x2E21, 0x2200, 0x2300, 0x2400, 0x2500,0x2600, 0x2709, 0x2800, 0x2900, 0x2A00, 0x2B60, 0x2C3C, 0x2D04,0x2E21, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300}
    Result = WriteReg(0x0F, 0x0F, 0);  //Result返回0x3400,使能AD转换
//接下来,用下边两行     
    Result = SendCommand(0x0033,0);  //Result返回0x2F0F,第2个参数1表示发送2个命令字节后,接着读取各通道
    Result = SendCommand(0x0555,0);  //Result返回0x0033,第2个参数1表示发送2个命令字节后,接着读取各通道
//或是用下边
    Result = SendCommand(0x0033,1);  //Result返回0x2F0F,第2个参数1表示发送2个命令字节后,接着读取各通道
    Result = SendCommand(0x0555,1);  //Result返回0x0033,第2个参数1表示发送2个命令字节后,接着读取各通道
//都会死在下面这行
    while(RDRY);
    
//我尝试用
     Result = SendCommand(0x0033,0);  //Result返回0x2F0F,第2个参数1表示发送2个命令字节后,接着读取各通道
//或  Result = SendCommand(0x0033,1);  //Result返回0x2F0F,第2个参数1表示发送2个命令字节后,接着读取各通道
   while(RDRY);  //也会死在这一行
    Result = SendCommand(0x0555,1);  //执行不到这一行

读出的各突破口值都正确,可就是没有AD转换完成信号,请帮我找出问题出在哪里,谢谢!
David 2025.12.23