请教I2C的clock stretching问题
答案:2 悬赏:20 手机版
解决时间 2021-03-12 11:51
- 提问者网友:黑米和小志
- 2021-03-11 20:53
请教I2C的clock stretching问题
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-03-11 22:03
1、首先确认你的I2C的速率,软件模拟的话就与MCLK直接相关了,自然单片机的速率下降就会正常;如果是硬件I2C的话需要看时钟来源是不是MCLK并作修改。
2、看你的电路并没有进行上拉也就是SDA和SCL需要接4.7K或者10K的电阻至VCC即可。
3、如果你的I2C是等待延时的话建议修改delay参数或者使用返回ACK查询方式。
4、有问题随时hi我,可以给你传一份调试通过的代码!
2、看你的电路并没有进行上拉也就是SDA和SCL需要接4.7K或者10K的电阻至VCC即可。
3、如果你的I2C是等待延时的话建议修改delay参数或者使用返回ACK查询方式。
4、有问题随时hi我,可以给你传一份调试通过的代码!
全部回答
- 1楼网友:洒脱疯子
- 2021-03-11 23:30
1. 对于某款cpu,比如mpc8378,它的datasheet上说了cpu会等待slave放弃对sck的拉低,然后重新开始toggle。那cpu是无限期的等待,还是说有一个timeout threshold? 如果timeout,cpu会怎么办? 2. 我从datasheet上为什么找不到相应timeout event的状态寄存器? 3. 我们是操作/dev/i2c-0来实现用户态的i2c driver,如果read/write经常return -5(input/output problem),是不是一定就是clock stretching的问题? 4. 还有最后一个问题:如果某个设备只有一个8位寄存器,它的读时序只需一个字节:(device address<<1)|(read bit),写时序只用两个字节:(device address<<1)|(write bit), (value to be written)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯