73

主题

3

好友

801

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

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


读应该是0x99,写是0x98

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

0

主题

0

好友

221

积分
     

业余侠客 当前离线

Rank: 4

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

是的,我接线时这样的,

73

主题

3

好友

801

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

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

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

42

主题

4

好友

5421

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
111707
帖子
5359
精华
0
经验
5421 点
金钱
5202 ¥
注册时间
2009-6-14
发表于 2019-1-12 14:20 来自手机端 | 显示全部楼层
cnwit 发表于 2019-1-12 12:53
我的上拉电阻值是10K,可以吗?

上拉电阻 换330R

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

不是STM32

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

那么小

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

51单片

0

主题

0

好友

221

积分
     

业余侠客 当前离线

Rank: 4

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

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

42

主题

4

好友

5421

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
111707
帖子
5359
精华
0
经验
5421 点
金钱
5202 ¥
注册时间
2009-6-14
发表于 2019-1-12 16:33 来自手机端 | 显示全部楼层
本帖最后由 jacksl528 于 2019-1-12 16:40 编辑
cnwit 发表于 2019-1-12 16:12
刚才把电阻换小了,但也不行


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

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

0

主题

0

好友

221

积分
     

业余侠客 当前离线

Rank: 4

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

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

0

主题

0

好友

221

积分
     

业余侠客 当前离线

Rank: 4

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

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

2

主题

0

好友

49

积分

注册会员 当前离线

Rank: 2

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

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

0

主题

0

好友

221

积分
     

业余侠客 当前离线

Rank: 4

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

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

本版积分规则

Archiver|手机版|中国音响DIY ( 鄂ICP备05007555号 ICP证:鄂B2-20130019 公安局网监备:420100007348 邮箱:1294879184@qq.com )

GMT+8, 2019-1-23 05:02 , Processed in 0.047841 second(s), 7 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部