软复位 如上面描述,当通用广播地址后面跟06h字节,就可以使从设备软复位。但这个功能并非所有芯片都支持,具体使用的时候需要仔细阅读芯片手册是否支持该功能。 须采取预防措施以确保设备在施加电源电压后不会拉低SDA或SCL线,因为这些低电平会阻塞总线。 起始START字节单片机/DSP可以用两种方法连接到I2C总线: - 有的单片机/DSP具有片上I2C硬件外设,这就可以直接使用。
- 如果没有或者被其他功能占用,则可以使用GPIO去模拟I2C总线时序。用这个方式去实现,则比较消耗CPU时间,
比如在一个多单片机用I2C总线连一起的系统,其中一个单片机I2C是用IO口模拟的,则快速的硬件设备与依赖软件轮询的相对较慢的单片机之间存在速度差异。这个不难想象,因为依靠轮询则不是硬实时,同时单片机肯定还有其他事物需要处理,那么检测START条件信号就有可能丢失,导致系统不健壮。那么I2C标准已然考虑这种需求了。 这就是起始字节需要解决的需求,前面介绍的就是起始字节设计的背景。那么起始字节究竟是怎样的呢? - START 事件(英文叫condition,我这样叫成一个事件有一点软件原语抽象的意思)
- START字节0000 0001
- ACK
- 重复START事件
在需要访问总线的主机发送了START事件之后,发送START字节(0000 0001)。 另一个单片机/DSP可以以低采样率对SDA线进行采样,直到检测到START字节中的七个零之一为止。 在SDA线上检测到此LOW电平后,微控制器可以切换到更高的采样率,以找到重复的START事件,然后将其用于同步。
|