完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
在我们应用我们使用i2chw模块(配置为“主人”)。我们用它来读写EEPROM存储器和I/O扩展。 我们的问题: 有时,由于一个断电,主处理器复位。有时后,I / O扩展或EEPROM保持SDA线低。 现在一个I2C奴隶保持SDA线低,我们主要的处理器不会启动后复位,因为它无法完成一个I2C传输。你怎么判断这样的事情,你如何解决这个问题? 我们的解决方案: 在wiki页面上,我发现: “有一对夫妇的方式从这种情况下恢复。 方案一:为设备复用SCL / SDA引脚GPIO,最简单的事情就是配置引脚GPIO的操作和切换到奴隶释放SDA SCL。在这一点上你应该能够恢复正常运行。 选项2:许多设备不复用SCL / SDA自I2C I/O细胞通常是特殊的开漏细胞GPIO。一个解决方案已上报工作甚至在这些设备上。通过“免费的数据格式”,然后读一个字节I2C将立即开始发送时钟输入的数据配置I2C(而不是试图发送一个地址)。这可以用来免费巴士。” 来源:http://processors.wiki.ti.com/index.php/i2c_tips 我们的应用程序选项1可能是答案。所以我们写了一个解决方案和应用测试。我们现在这个工作,不给任何问题。 你可以在附件中找到它。 问题是: 你看到的东西怎么可能出错而跑步吗? 有更好的解决方案吗?更快/更干净的代码或… 默温 I2C.C.ZIP 913字节 |
|
相关推荐
5个回答
|
|
|
|
|
|
Dana
I2C Slave的力量不是由主处理器门控。它也不可能做到现在。 函数“I2CHWY1BBWrEnEnter”和“I2CHWY1FRADADYBACK”都不返回值,在那里可以看到是否存在错误。返回一些信息的唯一函数是“I2CHWY1BReADI2cStand”。 你的意思是:“I2C规范没有限制,比如SMBuss。” 在软件中实现计时器意味着以下内容: -增加一个额外的计时器。需要一些空间/资源在处理器。 -添加代码来处理定时器/中断,并处理可能的错误状态。 现在该解决方案为我们工作。如果I2C从设备仍然给出错误,在处理程序试图解决错误之后,这意味着硬件问题会出错。对我们来说,添加一个定时器和需要的软件来处理这个错误会有什么好处呢? 这个解决方案的另一个优点是,如果我们需要更新一个软件版本,我们替换I2C.C源文件,重新编译这个项目,我们就完成了。 谢谢你的回答, 默温 |
|
|
|
|
|
|
|
|
|
|
|
我的观点是I2C对时钟拉伸没有限制,所以超时。
机制必须由用户提供。而人们聪明 并将其纳入SMBUs。 我认为你在做什么,好像你被控制了似的。 合理。 问候,Dana。 |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2105 浏览 1 评论
1851 浏览 1 评论
3669 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1786 浏览 6 评论
1536 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
570浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
423浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
437浏览 2评论
384浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
915浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 20:40 , Processed in 1.314396 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号