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.

[参考译文] ADS1262:SPI命令无响应

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS1262

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/621659/ads1262-no-response-on-spi-commands

部件号:ADS1262

您好,

我正在尝试通信(读取ADS1262的接口寄存器,但我只获得随机值(可能是数据寄存器的内容)。

通过读取接口Register,我期望值为0x05h,但我得到了toggeling radom值。

此处我的代码:

#定义接口(0x02)

ADS126x读寄存器(接口,1,&value);

void ADS126xReadRegister (int StartAddress,int NumRegs,unsigned char *pdata)

   Set_ADC_CS (0);
   ADS126xXferByte(0x20+ StartAddress);
   ADS126xXferByte (NumRegs -1);
   对于(int i=0;i<NumRegs;i++)
   {
      pddata[i]= ADS126xXferByte(0x00);
   }
   Set_ADC_CS (1);
}

无符号字符ADS126xXferByte (无符号字符CDATA)
{   字节tempValAddc;
   tempValAdc=SPI_SendReceiveByte(_HWDEFS_AD7190_SPI, CDR);
   返回tempValAdc;
}

void set_ADC_CS (字节状态)

   如果(0 ==状态)
   {
      ADS1262_SELECT0;
      用于(_byte i=0;i<8;i++){
            ;
         }

   }
   否则,如果(1 ==状态)
   {
      用于(_byte i=0;i<8;i++){
                  ;
               }
      ADS1262_SELECT1;

   }

图1:CS与SCLK

图2:MOSI (DIN) VS SCLK

图3:味增(DOUT) VS SCLK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Thomas:

    首先,欢迎参加TI E2E论坛!

    您使用哪种微控制器与ADS1262进行通信?

    从示波器屏幕截图中,我没有发现任何问题。 SCLK信号上有一些振铃,这可能会影响REG结果,但很难确定。 您可以尝试在SCLK信号中添加一个50欧姆系列电阻,以帮助减少此振铃。 您是否偶然在ADC引脚处进行探测? 在MCU上,您探测的位置可能会生成difference...probing,这可能会显示有效数据,但在另一端,可能存在信号完整性问题(或者可能是SPI迹线上的系列电阻器未正确焊接)。

    发送和接收数据时,是否确保清除SPI外围缓冲区,并在读取缓冲区之前允许SPI TX和RX中断? 这可能是因为您在SPI缓冲区中积累了一些垃圾(即使您似乎读取了每个TX操作的缓冲区),或者计时已关闭,因此您不会返回与寄存器数据关联的数据字节。 "随机"结果是否与您在示波器上观察到的任何DOUT字节相关?

    您还应仔细检查MCU是否正在使用SPI模式1 (CPOL=0;CPHA=1)。

    另外,我建议应用已知的输入信号(例如,短路输入),以查看REG操作是否实际返回转换数据结果。 如果是这样,则说明ADS1262没有解码“0x22 0x00 0x00”命令。

    此致,
    Chris