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.

[参考译文] BQ34110EVM-796:读取错误的 I2C 数据闪存。 需要偏移一个?

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/588056/bq34110evm-796-wrong-i2c-data-flash-read-need-to-offset-by-one

器件型号:BQ34110EVM-796
主题中讨论的其他器件: BQ34110BQ35100

您好!

我目前正在测试 MSP430的 I2C 接口和 BQ34110EVM-796板上的 bq34110、我正在读取/写入数据闪存(DF)。 我无法写入制造商信息块 A01并从中读取相同数据、因此我只是尝试从 DF 中的另一个寄存器读取数据。

按照  slua790 (bq34110和 bq35100的数据闪存访问部分)中的步骤、我尝试读取了内部 COeff 3寄存器(地址0x41C5)。 由于我尚未对芯片进行任何修改、我应该读取默认值、即0xCFDC (-12324)。 但是、我得到0xDC17。 下面是 I2C 序列:

我发现0x17是下一个寄存器默认值的第一个字节、因此我尝试从0x41C4 (而不是0x41C5)读取、并且得到了正确的值:

这是错误还是 I2C 序列中出现了错误? 在写入 DF 和写入校验和+ LEN 时、我是否需要应用此偏移?

谢谢、

Fred

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

    此外、我尝试分别将0x55、0x54写入制造商信息块 A01 (0x4042)和 A02 (0x4043)并将其读回、但器件每次返回0x00 0x00。 下面是我的 I2C 序列:

    //写入 DF

    • 将0x42 0x40写入 Manufacturer_access_control (0x3E)
    • 将0x55 0x54写入 MAC_DATA_0 (0x40)
    • 将0xD4写入 MAC_DATA_SUM (0x60) (0xD4 =~((0x42 + 0x40 + 0x55 + 0x54)& 0xFF)
    • 向 MAC_DATA_LENGTH (0x61)写入6 (nData = 2 + 4)

    //从 DF 读取

    • 将0x42 0x40写入 Manufacturer_access_control (0x3E)
    • 从 MAC_DATA_0 (0x40)读取2个字节

    我是否遗漏了什么?

    Fred

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

    您好!

    我们遇到了同样的问题。 解决了(在您的第一个示例中)在0x41 + ACK 和0x40 + ACK 之间以及在0x40 + ACK 和0xDC + ACK 之间添加延迟(1ms)的问题