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.

[参考译文] AFE4300:写读取操作问题

Guru**** 2536790 points
Other Parts Discussed in Thread: AFE4300

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/718258/afe4300-write-read-operation-issue

器件型号:AFE4300

您好!

我将 AFE4300与 STM32L0搭配使用。 我阅读了数据表、并尝试通过向器件控制寄存器和重量控制寄存器写入数据来打开 AFE4300及其体重链、以便能够在 VLDO 引脚上获得电压、从而在连接称重传感器后获得重量值。 但是、当我读取寄存器时、我写入这些寄存器的值不同。 AFE 未以理想的方式作出响应。 我能否获得有关如何解决此问题的建议? 由于它是一个24位数据帧、所以我将发送3个部分要写入的位、并且由于16位数据被读取、所以我将分2个部分对其进行读取。 我们将感谢您的任何帮助。  

谢谢

Abhinav Nagaraj   

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

    尊敬的 Abhinav:

    假设 SPI 写入操作成功、以下是 SPI 读取失败的可能原因。
    1) 1) SPI 数据的 D21设置为0:要读取寄存器、必须设置数据的 D21=1。 有关更多详细信息、请参阅数据表的第7.5.1节。

    此致、
    Prabin

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

    e2e.ti.com/.../stmspi.pdfhelloPrabin Yadav、

    感谢您的建议。 是的、我已将 D21设置为1以执行读取操作。 但是、由于我将 STM32L0与 AFE4300配合使用、因此两者的数据帧都非常不同。 AFE4300中的操作码是 D21、它决定了读取或写入操作、D22和 D23将为0。 但在 STM32L0中、操作码由 D22和 D23决定。 我随函附上了 STM32的技术文档。 请参阅随附文件中的第2.2节。 我担心这是否会导致任何问题、因为我已经尝试了所有可能的方法、将数据传输到多个部分、但这些方法似乎都不起作用。 每次我读取该寄存器时、都会读取相同的随机值。 欢迎提出任何建议。  

    谢谢、此致

    Abhinav Nagaraj

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

    我不是 STM 编程方面的专家、所以我的回答将有限。
    解决问题的一种方法是将 STM 置于写入模式、以便将 D22和 D23设置为0。
    然后、您可以将 D21设置为1作为寄存器地址的一部分、并将完整的数据包发送到 AFE、这样 AFE 就会认为它是读取操作。
    例如、如果您想从 AFE 读取0x00寄存器、则对 MCU 进行编程、将全0写入寄存器0x20。 这使得 AFE 认为它是寄存器0x00的读取操作。

    要读取数据、您必须在写入寄存器0x20时对 SDOUT 采样。

    希望这能解决您的问题。

    此致、
    Prabin