最近做了一个C6748与aic3104的采集驱动,在向aic3104寄存器写值时不成功,使用的是I2C1接口(输入时钟为主频四分频),2.2K电阻上拉,100k通信速率,从机地址0x18,;用示波器观察,SCL10us一个周期,说明100k通信速率正确,程序开始后,能看到起始位和0011000的地址以及r/w(为0,说明是发),然后SDA一直为高,说明没有收到ACK,请问是什么原因?
noaming:
一般I2C slave地址正确,且slave挂在总线上,会有反应,发送ACK信号的
你这个应该是aic3104芯片的问题吧
Zheng Qu:
回复 noaming:
谢谢您的回答,是这样的,我之前用的是i2c0和aic3104通信,是没有问题的,现在因为用到的别的外设和i2c0的管脚冲突,就把电路和程序都改到了i2c1,i2c0和i2c1应该只有输入时钟不一样吧,还有别的区别吗?
noaming:
回复 Zheng Qu:
没有其他区别。而且你现在的I2C接口,master确实发送出了信号,是slave没有响应。