ST意法半导体
直播中

h1654155275.5661

7年用户 948经验值
私信 关注
[问答]

我该怎么使用I2C通信去访问EEPROM呢?

大家好
我用的是ST25DV64K。
如果在APP写入EEPROM的过程中使用I2C通信访问EEPROM,会导致APP端出错。
因此,我想在从APP写入时检查NFC标签的状态。
在从APP写入时我不想通过I2C通信访问,我该怎么做?
是否可以通过在某处读取寄存器来找出答案?
我以为在从 APP 写入 NFC 标签的 EEPROM 时,其中一个“IT_STS_Dyn”会被设置为“1”,但它们都保持在“0”。

回帖(1)

李子崴

2022-12-27 09:29:37
你好,

IT_STS_Dyn 的工作方式如您所想。一旦读取 RF_WRITE 位,写操作就已经完成。确切的写入时序只能从 GPO 引脚电平获得。

但无论如何,我认为您的问题不仅在于 RF 写操作。关键是从一个接口(RF 或 I2C)访问 ST25DV 是排他性的,无论您在读还是写。
例如,从 RF 请求的帧开始到应答帧的结束,禁止来自 I2C 的访问,即使 RF 只是读取标签。
同样,从有效的 I2C 设备选择之后到停止条件,I2C 锁定访问并且 RF 无法访问标签。
这一切都在应用笔记“AN5262 如何使用 ST25DVxxK 设备管理同步 I²C 和 RF 数据传输”中进行了解释

有几种方法可以解决您的问题。最简单的方法是通过轮询来检查接口的可用性。在 I2C 端,您还可以通过进入 RF_SLEEP 模式来静音 RF。您还可以使用 GPO 中断 RF_ACTIVITY 检测 RF 活动。您还可以监控 RF 场(您可以使用 RF_FIELD_RISING 和 RF_FIELD_FALLING GPO 中断来实现)。您可以组合这些解决方案以获得更准确的结果。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分