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.

[参考译文] TPS65930:向 MEMORY_DATA 寄存器写入数据无效:

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1278361/tps65930-writing-data-to-the-memory_data-register-is-invalid

器件型号:TPS65930

我想将数据写入指定的存储器、指定的存储器将使用 MEMORY_ADDRESS 和 MEMORY_DATA 寄存器。 MEMORY_ADDRESS 是一个8位字寄存器、用于向存储器写入地址、MEMORY_ADDRESS 寄存器的前6个 MSB 定义了要访问的序列字(有64个序列、如下图5-24的 MSB 地址列所示)、 最后2个 LSB 决定要访问哪个字(如下面的图5-24所示、MSG-M、MSG_L、Delay、Next Address)。 要写入由 MEMORY_ADDRESS 寄存器寻址的存储器中的数据由 memory_data 寄存器提供。  每次写入/读取 MEMORY_DATA 寄存器时、MEMORY_ADDRESS 的值都会增加。

现在、我要向一个指定的序列写入四个数据。 从下面的图5-24可以看出、这四个数据存储器地址(MEMORY_ADDRESS)是相邻的、TPS65930支持 IIC 突发写入访问。 因此、我可以在写入器件地址和寄存器地址后一次输入全部四个数据、而不是每次在写入数据之前写入器件地址和寄存器地址。 例如、如果我要将四个数据21、E、32和2E 写入到序列地址为2B (101011)的序列、首先我要将它们写入 MEMORY_Write MEMORY ADDRESS 寄存器的 MEMORY ADDRESS 10101100、 然后我开始在数据寄存器中写入 MEMORY_WRITE 数据21、E、32、2E、

这是我读取数据的顺序:

因为每次我写入/读取 MEMORY_DATA 时、MEMORY_ADDRESS 寄存器的值都会自动增加。 因此、在写入四个 MEMORY_DATA 寄存器数据后、MEMORY_ADDRESS 的值会自动增大、因此 MEMORY_ADDRESS 寄存器的值首先写入10101100、然后开始从 DATA 寄存器读取数据。

以上是我写入和读取 MEMORY_DATA 寄存器顺序的方式。 但当我写完这些数据后、当我读出来的时候、我发现我读出的数据与我写的数据不一致。 我读取的数据是0、0、0、3F、这是对应于这些存储器地址的默认值。 或者、我可以假定我没有成功写入、或者从其他存储器位置读取数据。

您能帮助我确认 我写入或读取的 memory_data 寄存器的逻辑 是正确还是错误吗? 如果正确、是什么导致我向 MEMORY_DATA 寄存器写入与读取的内容不一致的内容?

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

    您好!

    感谢您使用 E2E。设备所有者将查看这些信息并在接下来的2-3个工作日内提供更新。  

    谢谢。

    布伦达

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

    Hi liguidong、  

    您是否能够解决您几周前提出的问题?  https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1272701/tps65930-through-the-i2c-configuration-register-after-writing-the-corresponding-device-address-and-register-address-the-reading-of-data-bits-is-inconsistent-with-what-it-wrote

    此器件开发于17年前、因此已经没有专家能够针对此类调试问题提供很多帮助了。 您是否正在使用此器件开发新的应用?

    此致、

    马特

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

    尊敬的 Matt Sunna:

    是的、我已经成功解决了过去几周的问题。 我目前正在使用 TPS65930芯片开发一个新应用、但在写入 MEMORY_ADDRESS 和 MEMORY_DATA 寄存器时遇到问题、并且写入 MEMORY_DATA 寄存器的数据无效。
    现在我有两个问题、希望您能帮我回答:
    MEMORY_ADDRESS 和 MEMORY_DATA 寄存器的写入过程的逻辑是否正确?


    从 MEMORY_DATA 寄存器说明表中、我们可以得出结论:无论是写入数据还是读取数据到 MEMORY_DATA、MEMORY_ADDRESS 寄存器的值都将增加。 但在进行 IIC 通信测试时、我发现在向 MEMORY_DATA 寄存器写入数据时、MEMORY_ADDRESS 寄存器会自动增加2;当我从 MEMORY_DATA 寄存器读取数据时、MEMORY_ADDRESS 寄存器会自动增加1。 我认为这有点奇怪。 我认为、无论我写入 MEMORY_DATA 寄存器还是从该寄存器读取、MEMORY_ADDRESS 寄存器都应该自动增加1、以便能够将数据写入相邻的 MEMORY_ADDRESS 寄存器。
    我期待您的来信、帮助我回答这两个问题。

    此致、

    利格东

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

    Hi liguidong、

    我真的没有办法测试它来帮助您、因为这是一个非常旧的器件。 在您的新应用中、您使用的是 OMAP 处理器? 如果是、OMAP 器件的产品页面包含横幅、表明不再为这些器件提供设计支持。 例如、 https://www.ti.com/product/OMAP3530 

    此致、

    马特