OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11848|回复: 43

AT24C02 读正常 写不了 而且写保护WP已经接地 用的是原子的程序

[复制链接]

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
发表于 2018-3-19 21:25:00 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 wgh1990 于 2018-3-24 18:01 编辑

如题。还有什么需要注意的地方吗?     能帮我测试一下吗?  我的真的只能读不能写

实验24 IIC实验.rar

3.57 MB, 下载次数: 184

最佳答案

查看完整内容[请看2#楼]

解决了 太久了 忘记怎么解决了 好像是延时的问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-19 21:25:01 | 显示全部楼层
dwt 发表于 2018-10-15 08:54
请问楼主这个问题解决了吗  我也遇到和你同样的问题

解决了  太久了 忘记怎么解决了 好像是延时的问题
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-3-19 22:11:46 | 显示全部楼层
本帖最后由 学习stm32f4 于 2018-3-19 22:28 编辑

正好今晚看这一实验,按照原子哥的例程,探索板能毫无压力的读写。硬件连接不复杂,你的是不是有管脚虚焊了?
另外,使用PB9作为输入、输出前,要先配置成in或out,即原子哥的例程中有:
[mw_shl_code=c,true]//IO方向设置
#define SDA_IN()  {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}        //PB9输入模式
#define SDA_OUT() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;} //PB9输出模式[/mw_shl_code]
2.jpg
1.jpg
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
发表于 2018-3-20 08:29:31 | 显示全部楼层
同意楼上的观点,注意引脚是否有虚连得地方。
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-20 11:11:19 | 显示全部楼层
学习stm32f4 发表于 2018-3-19 22:11
正好今晚看这一实验,按照原子哥的例程,探索板能毫无压力的读写。硬件连接不复杂,你的是不是有管脚虚焊了 ...

已经焊了不止十次了  IC都换好几个了   读出数据都是正常的  就是无法写入 而且写保护引脚我还特意再飞线到地 还是无法写入 只能读出
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10562
金钱
10562
注册时间
2014-6-12
在线时间
1022 小时
发表于 2018-3-20 11:22:02 | 显示全部楼层
wgh1990 发表于 2018-3-20 11:11
已经焊了不止十次了  IC都换好几个了   读出数据都是正常的  就是无法写入 而且写保护引脚我还特意再飞线 ...

写不进去怎么知道读正常。
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-3-20 11:38:01 | 显示全部楼层
同意5楼。
24C02的读时序,前半部分是DUMMY WRITE,就是先往24C02里写。既然读正常的,就说明这个DUMMY WRITE是正常的,即说明能写入。将你的程序下载到原子哥的板子里试试,看看能不能写入。
(买到假芯片了吗?)

1.jpg
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-20 11:39:20 | 显示全部楼层
xuyaqi 发表于 2018-3-20 11:22
写不进去怎么知道读正常。

我有别的板子 先写进去 再焊到这个板子上读出来  那不就知道读正常了
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-20 11:40:59 | 显示全部楼层
学习stm32f4 发表于 2018-3-20 11:38
同意5楼。
24C02的读时序,前半部分是DUMMY WRITE,就是先往24C02里写。既然读正常的,就说明这个DUMMY WR ...

我也郁闷啊 芯片都是好的  确定能写入的
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-3-20 11:43:43 | 显示全部楼层
wgh1990 发表于 2018-3-20 11:40
我也郁闷啊 芯片都是好的  确定能写入的

用的是STM32读写24C02吗?
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-20 12:02:19 | 显示全部楼层
学习stm32f4 发表于 2018-3-20 11:43
用的是STM32读写24C02吗?

是  我之前做的STM32F1 是没有问题的 这次板子用的是STM32F407就不行了 原理图都是参考原子的  代码用我之前的写也不行 用原子的例程写也不行  就只有读正常 不然我也不会在这里问了
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-24 17:32:38 | 显示全部楼层
太见鬼了吧  怎么都调不出来  STM32F407 PD12 PD3接的24C02  怎么都是可读不可写  24C02 WP脚已经接地
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-24 18:03:17 | 显示全部楼层
学习stm32f4 发表于 2018-3-20 11:43
用的是STM32读写24C02吗?

有空帮我看看吗  我用自己的板子真的就只能读不能写入
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-3-24 21:26:56 | 显示全部楼层
本帖最后由 学习stm32f4 于 2018-3-24 21:30 编辑
wgh1990 发表于 2018-3-24 18:03
有空帮我看看吗  我用自己的板子真的就只能读不能写入

我把引脚修改成探索板对应的引脚,再将main.c被注释的部分恢复,下载到探索板后,可正常读写。可能是修改后的main.c有问题(printf ???)。硬件仿真一下吧。
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-26 08:30:47 | 显示全部楼层
学习stm32f4 发表于 2018-3-24 21:26
我把引脚修改成探索板对应的引脚,再将main.c被注释的部分恢复,下载到探索板后,可正常读写。可能是修改 ...

好吧  估计就只有我能遇到这么奇怪的问题了  按道理能读说明我硬件还有配置都是对的  不能写入只能是写入保护  但是明明已经把WP写入保护拉低了  却依然是只读  百思不得其解
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-3-26 08:40:39 | 显示全部楼层
学习stm32f4 发表于 2018-3-24 21:26
我把引脚修改成探索板对应的引脚,再将main.c被注释的部分恢复,下载到探索板后,可正常读写。可能是修改 ...

因为打印我改成串口3了 原子哥用的是串口1
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2018-10-12
在线时间
2 小时
发表于 2018-10-15 08:54:55 | 显示全部楼层
请问楼主这个问题解决了吗  我也遇到和你同样的问题
回复

使用道具 举报

0

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2018-9-27
在线时间
15 小时
发表于 2018-10-16 09:55:21 | 显示全部楼层
最后是怎么解决的呢?
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 10:27:28 | 显示全部楼层
我晕哦,我还以为是我一个人遇到这种奇怪的现象,没想到还有这么多人遇到这种类似的问题。我的现象是在STM32F103的板子,配置任何引脚作为I2C都可以读写AT24C02,但是唯独在STM32F407板子的时候,只能读不能写入,琢磨了还几天都没解决,请问一下原子哥和大神们,你们有遇到这种问题吗?帮忙解决一下。
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 10:28:09 | 显示全部楼层
dwt 发表于 2018-10-15 08:54
请问楼主这个问题解决了吗  我也遇到和你同样的问题

我晕哦,我还以为是我一个人遇到这种奇怪的现象,没想到还有这么多人遇到这种类似的问题。我的现象是在STM32F103的板子,配置任何引脚作为I2C都可以读写AT24C02,但是唯独在STM32F407板子的时候,只能读不能写入,琢磨了还几天都没解决,请问一下原子哥和大神们,你们有遇到这种问题吗?帮忙解决一下。
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 10:29:10 | 显示全部楼层
学习stm32f4 发表于 2018-3-24 21:26
我把引脚修改成探索板对应的引脚,再将main.c被注释的部分恢复,下载到探索板后,可正常读写。可能是修改 ...

我晕哦,我还以为是我一个人遇到这种奇怪的现象,没想到还有这么多人遇到这种类似的问题。我的现象是在STM32F103的板子,配置任何引脚作为I2C都可以读写AT24C02,但是唯独在STM32F407板子的时候,只能读不能写入,琢磨了还几天都没解决,不信你拿个STM32F407的板子试试,看有没有这个现象?
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 10:29:42 | 显示全部楼层
xuyaqi 发表于 2018-3-20 11:22
写不进去怎么知道读正常。

我晕哦,我还以为是我一个人遇到这种奇怪的现象,没想到还有这么多人遇到这种类似的问题。我的现象是在STM32F103的板子,配置任何引脚作为I2C都可以读写AT24C02,但是唯独在STM32F407板子的时候,只能读不能写入,琢磨了还几天都没解决,不信你拿个STM32F407的板子试试,看有没有这个现象?
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 10:30:09 | 显示全部楼层
小c小c 发表于 2018-3-20 08:29
同意楼上的观点,注意引脚是否有虚连得地方。

我晕哦,我还以为是我一个人遇到这种奇怪的现象,没想到还有这么多人遇到这种类似的问题。我的现象是在STM32F103的板子,配置任何引脚作为I2C都可以读写AT24C02,但是唯独在STM32F407板子的时候,只能读不能写入,琢磨了还几天都没解决,不信你拿个STM32F407的板子试试,看有没有这个现象?
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 10:38:06 | 显示全部楼层
我用了STM32F407自带的AT24C02,另外还单独买了一个AT24C02,分别接在了  PB6_SCL,PB7_SDA(板子上的); PB8_SCL,PB9_SDA(自己买的EEROM小板子),供电在3.3V,WP都是接地拉低。输入输出脚配置的时候 改了一下:
#define SDA_IN()  {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<(7*2);}
#define SDA_OUT() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<(7*2);}
#define IIC_SCL    PBout(6) //SCL
#define IIC_SDA    PBout(7) //SDA         
#define READ_SDA   PBin(7)  

#define SDA_IN1()  {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<(9*2);}
#define SDA_OUT1() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<(9*2);}  
#define IIC_SCL1    PBout(8) //SCL
#define IIC_SDA1    PBout(9) //SDA         
#define READ_SDA1   PBin(9)  

其他配置代码略过,现在的现象是质检都能过,能读,但是写不进去!!!很奇怪,你们不信拿个407的板子试试看。有解决的大神们,分享一下,谢谢
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 10:44:41 | 显示全部楼层
jiangyy 发表于 2018-10-19 10:38
我用了STM32F407自带的AT24C02,另外还单独买了一个AT24C02,分别接在了  PB6_SCL,PB7_SDA(板子上的); PB8_ ...

能读,一般配置没问题,不要在配置上下工夫了,注意下AT24c02的IIC读取速率,400K还是1M,,。另外F1和F4的主频不一样,修改IIC驱动程序里的延时,延时增加几微秒试下
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 11:02:20 | 显示全部楼层
Timing 发表于 2018-10-19 10:44
能读,一般配置没问题,不要在配置上下工夫了,注意下AT24c02的IIC读取速率,400K还是1M,,。另外F1和F4 ...

昨天也和你的想法一样,增加了延迟,还是不行。你有试过吗?或者你遇到这种问题没?
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 11:04:13 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:02
昨天也和你的想法一样,增加了延迟,还是不行。你有试过吗?或者你遇到这种问题没?

我遇到过,是AT24C02的批次不一样,其IIC速率不一样,该延时就好了
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 11:07:03 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:02
昨天也和你的想法一样,增加了延迟,还是不行。你有试过吗?或者你遇到这种问题没?

这个是我用过的IIC驱动,在407上可以用的,你试一下

Desktop.zip

4.84 KB, 下载次数: 145

回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 11:30:53 | 显示全部楼层
Timing 发表于 2018-10-19 11:07
这个是我用过的IIC驱动,在407上可以用的,你试一下

哇塞,这是你自己写的驱动吗?可以了,那说明还是原子哥本身底层驱动有BUG。STM32F407主频不一样,导致的问题吧。
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 11:47:24 | 显示全部楼层
Timing 发表于 2018-10-19 11:07
这个是我用过的IIC驱动,在407上可以用的,你试一下

你这个是硬件的I2C,有没有软件模拟的I2C驱动呢?
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 12:05:58 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:47
你这个是硬件的I2C,有没有软件模拟的I2C驱动呢?

这个就是软件模拟的IIC驱动
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 12:08:36 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:30
哇塞,这是你自己写的驱动吗?可以了,那说明还是原子哥本身底层驱动有BUG。STM32F407主频不一样,导致的 ...

问题在 IIC驱动 每个时序中的延时
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 12:08:39 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:30
哇塞,这是你自己写的驱动吗?可以了,那说明还是原子哥本身底层驱动有BUG。STM32F407主频不一样,导致的 ...

问题在 IIC驱动 每个时序中的延时
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 12:08:40 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:30
哇塞,这是你自己写的驱动吗?可以了,那说明还是原子哥本身底层驱动有BUG。STM32F407主频不一样,导致的 ...

问题在 IIC驱动 每个时序中的延时
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 12:09:31 | 显示全部楼层
jiangyy 发表于 2018-10-19 11:30
哇塞,这是你自己写的驱动吗?可以了,那说明还是原子哥本身底层驱动有BUG。STM32F407主频不一样,导致的 ...

问题在IIC每个时序中的延时
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 14:10:34 | 显示全部楼层
Timing 发表于 2018-10-19 12:09
问题在IIC每个时序中的延时

引用你的部分代码,在原子代码的基础上改动了几下,可以用了。一次性写255个字节,有点小慢,大概要一秒多时间,还需要优化一下。
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 14:37:26 | 显示全部楼层
jiangyy 发表于 2018-10-19 14:10
引用你的部分代码,在原子代码的基础上改动了几下,可以用了。一次性写255个字节,有点小慢,大概要一秒 ...

  延时可能太长了
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2018-10-19 14:44:05 | 显示全部楼层
Timing 发表于 2018-10-19 14:37
延时可能太长了

我调了一下时间,延迟800us,写入255个字节,大改200ms
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-7-28
在线时间
37 小时
发表于 2018-10-19 15:06:10 | 显示全部楼层
jiangyy 发表于 2018-10-19 14:44
我调了一下时间,延迟800us,写入255个字节,大改200ms

可以的,加油
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1596
金钱
1596
注册时间
2012-12-30
在线时间
240 小时
 楼主| 发表于 2018-10-22 11:10:56 | 显示全部楼层
jiangyy 发表于 2018-10-19 10:27
我晕哦,我还以为是我一个人遇到这种奇怪的现象,没想到还有这么多人遇到这种类似的问题。我的现象是在ST ...

时序延时问题 我也是调了很久  
回复

使用道具 举报

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-10-23
在线时间
11 小时
发表于 2020-2-11 15:57:26 | 显示全部楼层
现在原子,也没有改例程程序吗,我直接使用时,也是有这个问题
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2020-5-3
在线时间
10 小时
发表于 2020-7-16 10:43:10 | 显示全部楼层
留个脚印,以后有机会回来看看
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-7-15
在线时间
12 小时
发表于 2020-7-22 18:05:39 | 显示全部楼层
我用硬件IIC驱动PCF8563的时候也遇到了只能读不能写的情况,PCF8563数据手册上没有提到写保护,大佬们有知道的吗?
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2019-9-4
在线时间
78 小时
发表于 2023-9-16 20:24:38 | 显示全部楼层
精华帖
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 05:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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