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.

[参考译文] MSP430F5437A:通过 I2C 接口连接 EEPROM M24M02-DWMN3TP/K

Guru**** 2489685 points
Other Parts Discussed in Thread: MSP430F5437A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1554376/msp430f5437a-interfacing-with-eeprom-m24m02-dwmn3tp-k-via-i2c-interface

器件型号:MSP430F5437A


工具/软件:

您好、

我们使用 MSP430F5437A。 并  通过 I2C 接口与 EEPROM M24M02-DWMN3TP/K 连接。

该 EEPROM 需要 5ms 的时间进行页面写入。 发送停止条件后将触发该事件。

一旦提供停止条件、它将启动内部写入周期。 最长需要 5ms。   

如果我在 I2C 操作之间留出 5 毫秒的延迟、则 写入/读取操作将成功运行。

但我们不想等待 5ms。 我们需要按照 EEPROM 数据表的建议轮询 ACK 标志。 您能否请您轮询哪个标志? 我们只能看到 NACK 标志。 但没有 ACK 标志可用。

连接 EEPROM 建议方法的屏幕截图

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

    对于 ACK 轮询、其概念是向器件发送一个零长度(写入)事务、并查看 NACK (UCNACKIFG) 是否产生结果;没有 NACK 指示时、ACK 是隐含的。

    UCNACKIFG 被 Start 清零、因此策略是发出一个 Start (UCTR=1 的 UCTXSTT)、然后在接收到 TXIFG 时发出一个 Stop (UCTXSTP)、并在 Stop 完成时检查 UCNACKIFG。 [参考用户指南 (SLAU208Q) 第 38.3.4.2.1 节第 4 段]

    另一种策略可能是对每个 EEPROM 事务进行编码、以进行一定次数的重试(例如,最多 5ms)、预计可能存在正在进行中的“写入“。 (这与“写后“比“阿克轮询“本身更相似,但它实现了相同的目的。

    应用报告 SLAA208(此处)提供了一个 ACK 轮询函数示例、但我认为其工作原理与我刚才描述的略有不同。 (正如我记得,报告有端口为 F1 和 F2 系列,而不是 F5 ,但我认为移民局的工作基本相同。