95

主题

5

好友

1179

积分
     

侠之大者 当前离线

论坛傻逼多

Rank: 6Rank: 6

UID
577648
帖子
1089
精华
0
经验
1179 点
金钱
958 ¥
注册时间
2013-3-26
发表于 2019-1-12 13:36 | 显示全部楼层
cnwit 发表于 2019-1-12 13:04
ADR1 ADR0 是接地的,所以pcm1792地址应该为0x98


读应该是0x99,写是0x98

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 13:48 | 显示全部楼层
BH7KQK 发表于 2019-1-12 13:36
读应该是0x99,写是0x98

是的,我要写,所以是0x98

2

主题

0

好友

446

积分
     

业余侠客 当前离线

Rank: 4

UID
528501
帖子
451
精华
0
经验
446 点
金钱
440 ¥
注册时间
2012-9-15
发表于 2019-1-12 13:51 | 显示全部楼层
读书不认真!12P=SCL,13P=SDA。

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 13:55 | 显示全部楼层
ylc358 发表于 2019-1-12 13:51
读书不认真!12P=SCL,13P=SDA。

是的,我接线时这样的,

95

主题

5

好友

1179

积分
     

侠之大者 当前离线

论坛傻逼多

Rank: 6Rank: 6

UID
577648
帖子
1089
精华
0
经验
1179 点
金钱
958 ¥
注册时间
2013-3-26
发表于 2019-1-12 14:17 | 显示全部楼层
本帖最后由 BH7KQK 于 2019-1-12 14:21 编辑

楼主用的是不是STM32,是的话改成软件模拟。
另外先试试读,成功了再写。因为你也不确定写的东西有没有生效,读出来看就知道了。

66

主题

44

好友

1万

积分
     

贵宾 当前在线

Rank: 3Rank: 3

UID
111707
帖子
12352
精华
3
经验
12763 点
金钱
12223 ¥
注册时间
2009-6-14

社区贡献 论坛贵宾

发表于 2019-1-12 14:20 来自手机端 | 显示全部楼层
cnwit 发表于 2019-1-12 12:53
我的上拉电阻值是10K,可以吗?

上拉电阻 换330R

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 14:54 | 显示全部楼层
BH7KQK 发表于 2019-1-12 14:17
楼主用的是不是STM32,是的话改成软件模拟。
另外先试试读,成功了再写。因为你也不确定写的东西有没有生 ...

不是STM32

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 14:55 | 显示全部楼层

那么小

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 15:00 | 显示全部楼层

51单片

2

主题

0

好友

446

积分
     

业余侠客 当前离线

Rank: 4

UID
528501
帖子
451
精华
0
经验
446 点
金钱
440 ¥
注册时间
2012-9-15
发表于 2019-1-12 15:34 | 显示全部楼层
cnwit 发表于 2019-1-12 13:48
是的,我要写,所以是0x98

你的单片机用的是哪两脚模拟的I2C?单片机的具体型号?问题可能出在ACK信号没返回,后面再写什都是无效操作。

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 16:07 | 显示全部楼层
ylc358 发表于 2019-1-12 15:34
你的单片机用的是哪两脚模拟的I2C?单片机的具体型号?问题可能出在ACK信号没返回,后面再写什都是无效操 ...

我调试时必须等slave发送ACK才能到下一步,否则不会前进,我的波形也显示SDA线没有拉底,明显和pcm1792有关,与51无关

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 16:12 | 显示全部楼层

刚才把电阻换小了,但也不行

66

主题

44

好友

1万

积分
     

贵宾 当前在线

Rank: 3Rank: 3

UID
111707
帖子
12352
精华
3
经验
12763 点
金钱
12223 ¥
注册时间
2009-6-14

社区贡献 论坛贵宾

发表于 2019-1-12 16:33 来自手机端 | 显示全部楼层
本帖最后由 jacksl528 于 2019-1-12 16:40 编辑
cnwit 发表于 2019-1-12 16:12
刚才把电阻换小了,但也不行


有时候 我们在做问题排查的时候  ,依然忽略掉了 一些自认为最不会出错的地方,   往往最终会绕一圈又绕回来,才发现哪里搞错了。     

上拉电阻建议维持1-3K  不宜太大, 因为它会影响时序, 开始喊你把它换小就是想看看是不是阻值太大导致驱动电流不足, 然后再把其它问题挨着 梳理一遍。 你不在我身边  我只能靠你提供的现象 “猜”问题

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 16:44 | 显示全部楼层
jacksl528 发表于 2019-1-12 16:33
有时候 我们在做问题排查的时候  ,依然忽略掉了 一些自认为最不会出错的地方,   往往最终会绕一圈又 ...

是的,谢谢您的耐心指教,受益匪浅.

2

主题

0

好友

446

积分
     

业余侠客 当前离线

Rank: 4

UID
528501
帖子
451
精华
0
经验
446 点
金钱
440 ¥
注册时间
2012-9-15
发表于 2019-1-12 16:56 | 显示全部楼层
cnwit 发表于 2019-1-12 16:07
我调试时必须等slave发送ACK才能到下一步,否则不会前进,我的波形也显示SDA线没有拉底,明显和pcm1792有关, ...

查一下SDA脚的端口配置及读端口的要求、换一片PCM1792?PCM1792的I2C应用是肯定没问题的。

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-12 17:00 | 显示全部楼层
ylc358 发表于 2019-1-12 16:56
查一下SDA脚的端口配置及读端口的要求、换一片PCM1792?PCM1792的I2C应用是肯定没问题的。

我也是这么想,可能是PCM1792的问题,明天换一片试试

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-13 13:16 | 显示全部楼层
ylc358 发表于 2019-1-12 16:56
查一下SDA脚的端口配置及读端口的要求、换一片PCM1792?PCM1792的I2C应用是肯定没问题的。

今天换了一片板,还是不行,看样子是我的问题了

2

主题

0

好友

446

积分
     

业余侠客 当前离线

Rank: 4

UID
528501
帖子
451
精华
0
经验
446 点
金钱
440 ¥
注册时间
2012-9-15
发表于 2019-1-13 14:29 | 显示全部楼层
cnwit 发表于 2019-1-13 13:16
今天换了一片板,还是不行,看样子是我的问题了

检查一下单片机的读引脚部分的代码,有的需要先将所要读的端口置“1”,然后再读。

5

主题

0

好友

102

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
838295
帖子
98
精华
0
经验
102 点
金钱
92 ¥
注册时间
2017-9-16
 楼主| 发表于 2019-1-13 14:34 | 显示全部楼层
ylc358 发表于 2019-1-13 14:29
检查一下单片机的读引脚部分的代码,有的需要先将所要读的端口置“1”,然后再读。

我用万用表测sda脚是搞电平,pcm1792没有在第九个SCL脉冲拉底电平,我也想不出什么办法

2

主题

0

好友

446

积分
     

业余侠客 当前离线

Rank: 4

UID
528501
帖子
451
精华
0
经验
446 点
金钱
440 ¥
注册时间
2012-9-15
发表于 2019-1-13 14:41 | 显示全部楼层
cnwit 发表于 2019-1-13 14:34
我用万用表测sda脚是搞电平,pcm1792没有在第九个SCL脉冲拉底电平,我也想不出什么办法

你用的哪家的单片机?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部