社区
嵌入开发(WinCE)
帖子详情
为什么I2C总线的BUSY位会为一直为忙碌?
mly0904
2009-10-29 07:17:42
如题所示,我这边I2C设置都没有问题,可是在用I2C去读寄存器或者写入值时,首先会先去判断BUSY位是否空闲,不知道什么原因,我那个I2C那边设置好了后,这个BUSY位一直都在忙碌当中,所以无法进行下去,不知道I2C总线的BUSY位一直为忙碌的原因有哪些阿?请各位高手指点一下,我好检查到底是那边有问题啊?,非常感谢!急!急!急!!!
...全文
3943
14
打赏
收藏
为什么I2C总线的BUSY位会为一直为忙碌?
如题所示,我这边I2C设置都没有问题,可是在用I2C去读寄存器或者写入值时,首先会先去判断BUSY位是否空闲,不知道什么原因,我那个I2C那边设置好了后,这个BUSY位一直都在忙碌当中,所以无法进行下去,不知道I2C总线的BUSY位一直为忙碌的原因有哪些阿?请各位高手指点一下,我好检查到底是那边有问题啊?,非常感谢!急!急!急!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuxinxinggg
2011-12-29
打赏
举报
回复
i2c bus still busy 差不多一样的问题,研究中
shellgo
2010-07-23
打赏
举报
回复
现在大家怎么解决的啊?
jerrytung
2010-05-27
打赏
举报
回复
现在也遇到这个问题,就是S3C6410芯片中的I2C,首先也是要判断BUSY位的,那个BUSY位忙,MASTER就死了,还不知道怎样让它活过来
xilangyue
2009-11-04
打赏
举报
回复
用示波器看时序,应该可以确定问题出在哪个步骤
sherlock_lai
2009-10-30
打赏
举报
回复
I2C没有什么BUSY位的,你这个BUSY位是CPU寄存器里的吧,楼主先把问题描述的详细一点
gelu1040
2009-10-30
打赏
举报
回复
就是因为上次通讯失步,使这次通讯一直没能完成。
后面的都使“忙”。忙着处理第一次失败的那各通讯,
JNU_kinke
2009-10-30
打赏
举报
回复
可是在用I2C去读寄存器或者写入值时,首先会先去判断BUSY位是否空闲....
I2C没有busy位的,发送start信号,发送数据,接收方应答,就这三个过程。不知lz是模拟I2C,还是控制器的?
gelu1040
2009-10-30
打赏
举报
回复
其实,除了硬件是原因之外,软件因素不可忽视.
因为 I2C需要应答,所以,当你接收的时候,应答不能按时发出,对方接收不到,于是下次通讯你发死发不出。
现看你都开了什么中断吧,如果中断处理的时间比I2C CLOCK还长,要小心了。
最好先关所有中断再处理
xumercury
2009-10-30
打赏
举报
回复
I2C去读寄存器或者写入值时,首先会先去判断BUSY位是否空闲...
不是纯标准的I2C吧。。。难道是我记错了。貌似I2C没有什么判断busy位。是芯片有特殊要求还是什么?
你可以加一个lock,进I2C通讯的时候lock用完了马上unlock。
具体lock和unlock的实现就按照进去独占出来完全释放i2c bus就可以了。
具体的可用下EnterCriticalSection和LeaveCriticalSection。
或者按照你IC的要求来定制对I2C总线的占用和释放。可能是用了没释放。
硬件上。。。。也可以检查下是否线接错了。。。。汗
个人建议仅供参考
Mercury
ProgrammerNO1
2009-10-30
打赏
举报
回复
跟内存有关么~~
xilangyue
2009-10-30
打赏
举报
回复
时序的问题应该是,好好研究一下时序吧
宇帆
2009-10-30
打赏
举报
回复
看看复位 是不是出问题了
guopeixin
2009-10-30
打赏
举报
回复
如果是模拟的话,时序错误的可能性比较大
使用控制器的话,检查一下寄存器配置吧
xqhrs232
2009-10-29
打赏
举报
回复
硬件没设计好?
ST单片机
I2C
接口复位后进入
Busy
状态不能退出
解决使用ST硬件
I2C
时,单片机复位后概率出现
I2C
总线
忙,单片机不能使用
I2C
总线
的问题。
STM32文档:
I2C
接口进入
Busy
状态不能退出
I2C
接口进入
Busy
状态不能退出
解决STM32
I2C
接口死锁的方法讨论
STM32的
i2c
接口有坑,就是容易出现
总线
锁死需要断电才能恢复。本文档探讨如何绕过这个坑。但不是用软件
I2C
这样的严重降低CPU性能的方法。
嵌入式系统/ARM技术中的模拟
I2C
总线
多主通信的通用软件包
摘要:本文给出软件模拟
I2C
总线
应用在多主机系统中的解决方案。分析多主竞争出现原因及其时段,结合时序图和流程图阐述竞争仲裁的原理及实现方案,并提供通用软件包,用户可将其应用在实际的系统中。 关键词:模拟
I2C
总线
多主机系统 通用软件包引言
I2C
是由Philips公司推出的芯片间串行传输
总线
。它以规范严谨、使用简单灵活、支持的外围器件繁多等特点而被广泛应用。对于不具备
I2C
接口的主器件(通常指MCU),可利用普通的I/O口来模拟
I2C
总线
,但由于无法解决多主竞争问题而只能应用在单主机系统中。本文提供了一种解决方案,可将模拟
I2C
总线
应用在多主机系统中,实现模拟
I2C
的多主通信。1 模拟I
PCF8563定时报警.doc
PCF8563定时报警相关说明。
嵌入开发(WinCE)
19,521
社区成员
41,565
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章