硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5618|回复: 3
收起左侧

[有问必答] V5 模拟I2C 驱动AT24C02,写入失败疑问

[复制链接]

2

主题

58

回帖

64

积分

初级会员

积分
64
发表于 2018-6-27 16:53:47 | 显示全部楼层 |阅读模式
模拟IIC写入AT24C02D不成功!?
使用的【V5-103_串行EEPROM读写例程】修改为外部时钟8Mhz(我板子是407VET6,IAR编译环境),使用的时PC0:clk,PC1:sda 主频168Mhz
IIC clock:384KHz左右;
测试能够正确读取,但是写入显示成功,
实际再读取时没有真确写入(换了块AT24C02D也不行,我的上拉电阻是2.0K):

  1. 【2 - 写 EEPROM 测试】
  2. 写eeprom成功!
  3. 写耗时: 13ms, 写速度: 19692B/s

  4. 【1 - 读 EEPROM 测试】
  5. 读eeprom成功,数据如下:
  6. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  7. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  8. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  9. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  10. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  11. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  12. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  13. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  14. 读耗时: 7ms, 读速度: 36571B/s
复制代码



V5-103_串行EEPROM读写例程(修改,写入失败).rar

10.33 MB, 下载次数: 339

实测文件

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2018-6-28 01:51:44 | 显示全部楼层
使用我这个驱动,下面三个型号都支持了,在头文件里面选择相应的宏定义
//#define AT24C02
#define AT24C04
//#define AT24C128

https://forum.anfulai.cn/forum.ph ... 05&highlight=eeprom


回复

使用道具 举报

2

主题

58

回帖

64

积分

初级会员

积分
64
 楼主| 发表于 2018-6-28 15:14:57 | 显示全部楼层
eric2013 发表于 2018-6-28 01:51
使用我这个驱动,下面三个型号修支持了,在头文件里面选择相应的宏定义
//#define AT24C02
#define AT24C ...

驱动更新且 Stop维持时间加长解决问题(2K上拉电阻 停止时间太短导致写入不成功,当然eeprom驱动也要改成最新的);写入时间为123ms(256字节)
  1. /*
  2. *********************************************************************************************************
  3. *        函 数 名: i2c_Start
  4. *        功能说明: CPU发起I2C总线停止信号
  5. *        形    参:  无
  6. *        返 回 值: 无
  7. *********************************************************************************************************
  8. */
  9. void i2c_Stop(void)
  10. {
  11.         /* 当SCL高电平时,SDA出现一个上跳沿表示I2C总线停止信号 */
  12.         I2C_SDA_0();
  13.         I2C_SCL_1();
  14.         i2c_Delay();
  15.         I2C_SDA_1();
  16.        i2c_Delay(); /* 添加保持时间 */
  17. }
复制代码
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2018-6-29 01:35:37 | 显示全部楼层
补充bsp_i2c_gpio.c文件中的一个点
QQ截图20180629013447.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-17 12:54 , Processed in 0.040655 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表