以前遇到过这样一个问题,不知道注意到没有
曾经使用cygnal单片机操作iic时钟(不是8563),遇到一个问题,很折腾了好几天。我也是使用的单片机内置的总线模块。如果恰好处在iic总线操作过程中系统断电,可能此时时钟正处于某一输出过程中,将sda线拉低,当再次上电时,由于时钟有后背电池,其状态维持不变,正等待scl的进一步变化以完成剩余的操作。此时如单片机进行iic操作,必须先发出起始条件,即必须要等到sda线为高(硬件上决定了),但始终又得不到这个状态,于是死在这里。
我当时的解决方法是上电后先人为在scl上送出一组脉冲,然后操作总线,顺利解决。
我看iic总线协议,器件对于一条命令,如一定时间内没有完成,应该自动复位,不应出现以上问题的。
发表时间:2004年8月3日15:06:59