probedog 发表于 2025-3-9 19:20

M24C04和pcf8563共用总线冲突

60s2下挂着FM24C04和pcf8563,共用IIC总线。我把24c04的A1脚接VCC,那么它的地址应该是0xA4(写)0xA5(读),而8563地址是0xA2,0xA3,理论上不会冲突,但实际上写24c04时会写把8563时间改掉。希望大神指教一下。

捉虫天师 发表于 2025-3-21 16:24

地址配置错误:确认FM24C04的A1脚确实接VCC,且A0和A2脚接地,确保地址为0xA4/0xA5。PCF8563的地址固定为0xA2/0xA3,检查是否有其他配置影响。

I²C总线问题:检查总线上的上拉电阻是否合适(通常4.7kΩ),确保信号质量良好。信号干扰可能导致通信错误。

时序问题:I²C通信对时序敏感,尤其是起始和停止条件。如果时序不当,可能导致数据写入错误设备。检查代码中的时序设置是否符合规范。

代码逻辑错误:检查代码中是否有逻辑错误,确保在写入FM24C04时不会误操作PCF8563。调试时可以逐步检查每一步的地址和数据。

硬件故障:检查硬件连接,确保没有短路或虚焊。必要时更换芯片或重新焊接。

捉虫天师 发表于 2025-3-21 16:24

建议:
使用逻辑分析仪或示波器监控I²C总线,确认实际发送的地址和数据是否符合预期。

单独测试每个设备,确保它们能独立正常工作。

逐步调试代码,确保每个步骤都正确执行。

g36xcv 发表于 2025-3-27 15:28

你的 EEPROM 地址是正确的 (0xA4, 0xA5),不会和 PCF8563(0xA2, 0xA3)发生冲突。

g36xcv 发表于 2025-3-27 16:51

理论上,您将这两个设备的地址与各自的 A1 引脚配置无冲突,因此应该可以独立地与它们通信。

g36xcv 发表于 2025-3-27 16:52

它们的 I2C 地址不冲突,但实际操作中可能会出现写操作错误

twinkhahale 发表于 2025-4-17 14:15

FM24C04(EEPROM)和PCF8563(RTC)共用I²C总线,理论上地址不冲突(FM24C04写地址0xA4、读地址0xA5;PCF8563写地址0xA2、读地址0xA3)。但实际写入FM24C04时,PCF8563的时间数据被修改,可能硬件连接问题

suiziq 发表于 2025-4-17 15:22

A1/A2引脚配置错误吧,比如说FM24C04的硬件地址由A2、A1、A0引脚决定。若A1接VCC(高电平),A2和A0未接(默认悬空为低电平),地址应为0b10100100(0xA4写,0xA5读)。

ewyu 发表于 2025-4-17 16:51

确认A2和A0是否正确接地或悬空,避免误接高电平导致地址偏移

nqty 发表于 2025-4-17 18:02

总线电容或上拉电阻问题,I²C总线电容过大或上拉电阻不匹配(如4.7kΩ vs 10kΩ),可能导致信号畸变,触发从设备误响应。

teaccch 发表于 2025-4-17 19:14

建议一定要测量总线电容(建议<400pF),确保上拉电阻匹配设备手册要求。

canfeil 发表于 2025-4-17 21:03

重复起始条件误用,若在写入FM24C04后未正确发送停止条件(P),而是直接发送重复起始条件(Sr),可能导致PCF8563误判为自身地址。

tiakon 发表于 2025-4-18 09:21

若主设备未正确处理从设备的ACK/NACK信号,可能导致地址误判。例如,PCF8563在非预期地址下返回NACK,但主设备未检测到

wamed 发表于 2025-4-18 10:44

FM24C04支持页写操作(每页16字节),若写入时跨越页边界,可能导致数据错误。虽然此问题通常表现为数据丢失,但极端情况下可能引发总线冲突。

yuliangren 发表于 2025-4-18 13:05

PCF8563的CLKOUT引脚若未正确配置(如输出频率过高),可能干扰I²C总线。

一切D都好 发表于 2025-4-18 15:01

捕获I²C波形,确认地址、数据和ACK/NACK信号是否正确。重点检查:写入FM24C04时,PCF8563是否响应错误地址。停止条件(P)是否正确发送。
页: [1]
查看完整版本: M24C04和pcf8563共用总线冲突