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.

[参考译文] ADS1261:读取数据时出现通信问题;转换结果的 LSB 总是返回0xFF

Guru**** 2392905 points
Other Parts Discussed in Thread: ADS1261

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/741208/ads1261-communication-issue-while-reading-data-the-lsb-of-the-conversion-result-always-returns-0xff

器件型号:ADS1261

大家好、

我编写了一段代码来读取 ADS1261数据。

通过 SPI 发送数据为0x12 0x02 0x00 0x00 0x00 0x00 0x00 0x00

响应数据为0xFF 0x08 0x03 0x11 0x88 0xFF 0x00、而第6个字节应为转换结果的 LSB。 但我读了很多次。 LSB 的 ALAWAFF 为0xFF、而 MSB 和 MID 可以相应地改变。

BTW。 每次数据表被解密时、我都尝试发送6个字节、但无法连续启动转换。 当我发送7 个字节时、它起作用。

寄存器读出的数据是  

0x81 0x01 0x04 0x01 0x00 0x00 0x05 0x00 0x00 0x00 0x00 0x00 0x40 0xFF 0x00 0x80 0xBB 0x00

有人能帮我解决这个问题吗?

BR。

稍等。

uint32_t ADS1261_Read_Data ()

uint32_t ADC_Data_Temp = 0;
ADC_Start;
while (HAL_GPIO_ReadPin (AD_DRDY_GPIO_Port、AD_DRDY_Pin)){}
G_aSPI1_TxBuf[0]= 0x12;
G_aSPI1_TxBuf[1]= 0x02;
G_aSPI1_TxBuf[2]= 0x00;
G_aSPI1_TxBuf[3]= 0x00;
G_aSPI1_TxBuf[4]= 0x00;
G_aSPI1_TxBuf[5]= 0x00;
G_aSPI1_TxBuf[6]= 0x00;
mx_SPI1_TxRxData (g_aSPI1_TxBuf、g_aSPI1_RxBuf、7);
ADC_RESULT_Temp[0]= g_aSPI1_RxBuf[3];
ADC_RESULT_Temp[1]=g_aSPI1_RxBuf[4];
ADC_RESULT_Temp[2]=g_aSPI1_RxBuf[5];
ADC_RESULT_Temp[3]=g_aSPI1_RxBuf[6];
ADC_Data_Temp = g_aSPI1_RxBuf[5]+(g_aSPI1_RxBuf[4]* 0x100)+(g_aSPI1_RxBuf[3]* 0x10000);
返回 ADC_Data_Temp;

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

    欢迎访问 TI E2E 论坛!

    我很高兴听到您能够解决您的问题!

    如果您再次遇到类似的问题、请记住、当 ADS1261需要新命令时(在某些不常见的情况下、0xFF 可能也是 CRC 字节)、它始终以0xFF 进行响应、然后器件回传收到的命令。

    在您的情况下、似乎 SPI 模式可能尚未配置为 CPOL = 0、CPHA = 1、因为回送命令与您发送的命令不匹配。

    如果您有任何其他问题、请告知我们。

    此致、
    Chris