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.

[参考译文] TMDS64EVM:TMDS64EVM I2C 数据读写不一致

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1509650/tmds64evm-tmds64evm-i2c-data-read-write-inconsistency

器件型号:TMDS64EVM

工具/软件:

您好、

参考:mcu_plus_sdk_am64x_10_01_00_32、并使用 I2C 示例进行读写验证、特别是

使用文件 i2c_memory_read.c 将 byte_count 修改为513 (从计数为10的原始值)

此外、还可以修改 txBuffer[COUNT]=(unit8_t)(count % 256); //在 count = 256时绕回为0

添加 txBuffer 的调试日志:  

DebugP_LOG ("Write [I2C] Data at address 0x%x:0x%x \r\n"、(i2cEepromMemAddr + count)、txBuffer[COUNT]);

在"读取"部分中、调试日志保持不变:   

DebugP_log ("读取地址0x%x 处的[I2C]数据:0x%x \r\n"、(i2cEepromMemAddr + count)、rxBuffer[COUNT]);

这是写入的输出:   

在地址0x400:0x0处写入[I2C]数据
在地址0x401:0x1处写入[I2C]数据
在地址0x402:0x2处写入[I2C]数据

......

在地址0x4fe:0xFE 写入[I2C]数据
在地址0x4ff:0xff 写入[I2C]数据
在地址0x500:0x0处写入[I2C]数据
在地址0x501:0x1处写入[I2C]数据
在地址0x502:0x2处写入[I2C]数据

......

在地址0x5fe:0xFE 写入[I2C]数据
在地址0x5ff 写入[I2C]数据:0xff
在地址0x600:0x0处写入[I2C]数据

读取的输出:   

读取地址0x400:0x0处的[I2C]数据
读取地址0x401:0x1处的[I2C]数据
读取地址0x402:0x2处的[I2C]数据
读取地址0x403:0x3处的[I2C]数据
读取地址0x404的[I2C]数据:0x4

......

读取地址0x4fd:0xFD 处的[I2C]数据
读取地址0x4fe:0xFE 处的[I2C]数据
读取地址0x4ff:0xff 处的[I2C]数据
读取地址0x500:0xff 处的[I2C]数据
读取地址0x501:0xff 处的[I2C]数据
读取地址0x502:0xff 处的[I2C]数据

......

读取地址0x5fd:0xff 的[I2C]数据
读取地址0x5fe:0xff 处的[I2C]数据
读取地址0x5ff 处的[I2C]数据:0xff
读取地址0x600:0xff 处的[I2C]数据

问题是为什么超过256字节的读取变成了全部0xFF  ???

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

    尊敬的 Huynh:

    我已经听取了您的意见并进行了研究。 请等待一段时间恢复。

    此致、

    Tushar

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

    尊敬的 Huynh:

    您可以尝试一次以256字节的块写入数据吗?

    从0x400写入256字节的数据、然后从0x500写入256字节的数据。 请告知我们结果。

    此致、

    Tushar

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

    这很复杂、因为我尝试将文件内容编程到 I2C 器件中。

    它会在下一个  MCU_PLUS_SDK 版本中修复吗?

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

    尊敬的 Huynh:

    对我来说、在尝试执行页面写入时、它看起来像是设备限制。 对 EEPROM 器件的写入操作只允许在同一周期内写入256字节的数据。

    请参阅 第7.2节页面写入 器件数据表( AT24CM01-I2C 兼容两线制串行 EEPROM 数据表)  以了解详细信息。

    此致、

    Tushar

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

    尊敬的 Huynh:

    这很复杂、因为我尝试将文件的内容编程到 I2C 器件中。

    您可以在 buffer 中读取文件的内容、然后将256字节 chuck 缓冲区逐块写入 EEPROM 存储器、而不是在一个周期内写入。

    此致、

    Tushar