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.

[参考译文] LMP90100:启用 SPI 复位功能后无法读取 ADC 数据

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/802554/lmp90100-not-able-to-read-adc-data-after-enabling-spi-reset-feature

器件型号:LMP90100

您好!

我能够通过4个通道成功读取数据。 现在、我想通过向 SPI 复位寄存器(ADDR 0x02)写入0x01来启用 SPI 复位功能。 但是、启用此功能后、我从 ADC 获取的只是来自所有4个通道的垃圾值。 由于我无法从数据表中获得任何类似的东西、因此是否有特定的方法来启用此功能。

谢谢、

那曼

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

    您好、Naman、

    向 SPI 复位寄存器(ADDR 0x02)发出0x01后、是否发送73+ 1? 之后是否发送另一条命令以恢复转换?  

    所有后续测量是否都返回无效测量值或仅返回第一个测量值?  

    从 第9.3.9节中、复位并重新启动"在重新启动转换后、第一个采样无效。 要使用有效的第一个样本重新启动、请先发出待机命令、然后发出活动命令。"

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

    我只是启用 SPI 复位功能、以便在需要时复位 SPI 协议状态机。 当我在获取任何 ADC 转换数据之前在开始时启用该功能时、我无法从任何通道获取有效数据。

    我还在读取 SENDIAG_FLAGS 寄存器以读取通道编号和状态。

    从 ADC 获取几个样本后、我尝试启用 SPI 复位功能。 之后、我能够从三个通道(ch0、1和2)获取有效样本、但我仍然从 ch3中获取垃圾。 当我读取 CH3数据和 SENDIAG_FLAGS 寄存器时、它将全部提供1s。

    启用 SPI 复位功能后、我尝试通过发送73 + 1来复位 SPI、但无法正常工作。 然后、我尝试发送其他命令以重新开始转换、然后发出待机命令、后跟活动命令、但也存在相同的问题。

    之后、我尝试使用地址0x00和数据0xC3重置命令。 然后初始化所有寄存器、但也会复位 SPI_RESET 寄存器。 因此、它在这之后工作正常。 然后我启用 SPI 复位功能、将弹出相同的问题。

    我注意到 CH3 (VIN6和 VIN7)的输入信号与 VREFP2和 VREFN2共用同一个引脚。 这可能会导致一些问题。 但是、每次转换时我都会检查 CHX_INPUTCN 寄存器、该值不会改变、并且 VREF_SEL 位被选为0 (默认值):选择 VREFP1和 VREFN1。

    由于这个问题、我将不得不使用 ADC 下电上电、而不是 SPI 复位。 如果我能够解决这个问题、我将不胜感激。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Naman、

    很抱歉耽误你的答复。 这听起来像是调制器范围过大。

    SENDIAG_FLAGS 寄存器读取的 OFLO_FLAGS 部分是什么?

    OFLO_FLAGS = 0x0:正常运行
    OFLO_FLAGS = 0x1:差分输入大于(±VREF/增益)但不大于±(1.3*VREF/增益)导致调制器超范围。
    OFLO_FLAGS = 0x2:调制器的范围超出了+VREF/增益。
    OFLO_FLAGS = 0x3:调制器的范围超出了−VREF/增益。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我能够从 SENDIAG_FLAGS 中读取 CH4的值为0xFF、也是从 ADC DOUT 读取的1s。 我检查信号、这是正常的、因此 ADC 存在一些内部问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Naman、

    您是指 Ch3 (VIN6/VIN7)吗? 这是连接到 VREF 引脚的通道吗? 当器件复位时、由于引脚连接到基准、它会导致调制器超出范围。 尝试从 VREF 引脚断开输入。