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.

[参考译文] ADS1235:用于读取 ADS1235的 MCU

Guru**** 2387830 points
Other Parts Discussed in Thread: ADS1235, ADS1261
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/997429/ads1235-mcu-to-read-the-ads1235

器件型号:ADS1235
主题中讨论的其他器件: ADS1261

你(们)好,先生

我使用 MCU 读取 ADS1235数据、

请帮助您检查以下源代码、或者您是否有任何源代码供我参考、谢谢

if (!GPIO_ReadInputDataBit (GPIOC、GPIO_Pin_11))) // Jonathan。 SD0下降到指示新转换数据的可用性。
 {
  my_ubyte k[5]={0};
  
  SPI_START ();   //读取数据
  SPI_WRITE (0x12);
  SPI_WRITE (0x00);
  // SPI_WRITE (0x00);
  // SPI_WRITE (0x00);
  // SPI_WRITE (0x00);
  
  // hwDelayM(5);

 

  // k[4]= SPI_Read ();
  // k[3]= SPI_Read ();
  k[byte_2]= SPI_read ();
  k[byte_1]= SPI_read ();
  k[byte_0]= SPI_read ();
  SPI_STOP();
  }

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

    尊敬的 Alex:

    ADS1261是一款非常相似的器件、可针对 ADS1235进行调整。 根据您的代码、很难判断在各种函数中应该发生什么。  通过与逻辑分析仪或示波器快照进行比较来验证您的通信和数据非常有用。  如果您可以发送这些图、将会非常有帮助。

    当您读取数据时、返回的第一个字节是最高有效字节、因此请确保在将数据重新汇编为32位整数时、格式被保留并正确进行符号扩展。  此外、CS 必须在整个通信事务期间保持低电平。  如果 CS 在各种 SPI 功能之间切换、则通信将复位、并且命令未正确传输。

    此致、

    Bob B

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

    在初始阶段、根据 您的建议、我在整个通信事务中将 CS 设置为低电平。

    和、我只将输入多路复用器(0x11)设置为0x87、因为 S+/S-分别连接到 AIN5/AIN4、

    并 将其余寄存器保持为默认值。

     

     

     

    然后、发出 START 命令(0x0800)。(第二个字节尚未触发。)

     

     

    然后、我继续监控 DOUT/DRDY 引脚以等待数据就绪。

     

    但 DOUT/DRDY 永远不会下降。

     

    我是否错过了任何必要的步骤?

     

    谢谢、

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

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

    尊敬的 Alex:

    我不清楚为什么 DRDY 不会变为低电平。  让我首先对寄存器写入(WREG)命令寻址。  寄存器写入基址命令为0x40。  如果您希望写入输入寄存器、则需要将0x40和/或寄存器地址(0x11)写入第一个命令字节。  因此、在返回高电平之前、您应该发送0x51 (第一个字节) 0x87 (第二个字节)、并且 CS 在发送的两个字节都保持低电平。

    Start 命令还需要传输2个字节。  因此、Start 命令需要0x08 0x00 (第二个字节值是任意的、但我使用了0x00、正如您所说的那样)、以便在 CS 恢复高电平之前同时传输两个字节的 CS 保持低电平。  

    总之、我相信您在发送正确的命令和序列时遇到了通信问题。  以上假设寄存器已解锁(默认设置)、CRC 未启用。

    如果仍有问题、我建议尽可能使用四通道示波器来查看所有 SPI 信号。

    此致、

    Bob B