Bblythe 发表于 2025-6-10 07:24

I2C读EEPROM每次都要掉电重启才成功

程序跑起来第二次读就挂住,只有断电后才恢复正常。

Clyde011 发表于 2025-6-10 07:28

上拉电阻要选对,不然时序乱。

公羊子丹 发表于 2025-6-10 07:29

看看是不是停止信号没发好?

周半梅 发表于 2025-6-10 07:30

有的EEPROM要等写完成才能再读。

帛灿灿 发表于 2025-6-10 07:31

I2C线拉太长信号反射严重。

童雨竹 发表于 2025-6-10 07:31

用逻辑分析仪抓一下总线行为更直观。

万图 发表于 2025-6-10 07:32

EEPROM型号是哪一款?有些兼容问题挺多。

Wordsworth 发表于 2025-6-10 07:33

CubeMX生成的代码有坑,我改了不少。

Bblythe 发表于 2025-6-10 07:34

开启ACK检测看看有没有应答失败。

Pulitzer 发表于 2025-6-10 07:35

看下是不是初始化跑了两次。

Uriah 发表于 2025-6-10 07:35

从机地址是不是8位还是7位设错了?

内政奇才 发表于 2025-6-10 16:51

I2C未正确初始化?

flycamelaaa 发表于 2025-6-10 17:00

时钟配置不稳定?

uytyu 发表于 2025-6-15 21:19

缩短走线长度或添加总线缓冲器            

jimmhu 发表于 2025-6-16 09:32

写操作时序:
发送起始信号→设备地址(写)→ACK→内存地址→ACK→数据→停止信号
等待写周期完成(典型 5ms,需延时后再操作)
读操作时序:
发送起始信号→设备地址(写)→ACK→内存地址→ACK
重复起始信号→设备地址(读)→ACK→读取数据→NACK→停止信号

i1mcu 发表于 2025-6-16 10:57

EEPROM 写周期约 5ms,未等待完成即读取

sdCAD 发表于 2025-6-16 12:45

电源不稳定或者电源噪声可能会导致EEPROM工作不正常。

linfelix 发表于 2025-6-16 16:57

优化软件逻辑            

1988020566 发表于 2025-6-16 17:34

断开I2C总线上其他设备            

belindagraham 发表于 2025-6-16 18:03

排查EEPROM状态            
页: [1] 2
查看完整版本: I2C读EEPROM每次都要掉电重启才成功