27.6.2 基本操作
27.6.2.1 初始化
以下寄存器有写保护使能,意味着它们能被写只有当I2C接口是禁止的时候(CTRLA.ENABLE是0):
。控制寄存器A(CTRLA),除了使能(CTRLA.ENABLE)和软件复位(CTRLA.SWRST)
。控制寄存器B(CTRLB),除了应答行为(CTRLB.ACKACT)和命令(CTRLB.CMD)
。波特率寄存器(BAUD)
。当从机操作时,地址寄存器(ADDR)
当I2C接口使能或正在使能(CTRLA.ENABLE是1)任何写这些比特或者寄存器将禁止。写这些寄存器当I2C接口当
禁止I2C完成后可以写入。
使能写保护在寄存器描述中的使能写保护属性中指示。
在I2C接口使能之前,它必须它必须按以下大致步骤配置:
I2C模式是主机或从机必须在控制寄存器A中的(CTRLA.MODE)的操作模式比特组通过写入0x4或0x5选择。
。SCL低电平暂停时间能通过向控制寄存器A(CTRLA.LOWTOUT)的SCL低电平暂停比特写来使能
。在主机操作中,不活动总线暂停时间能被设置在控制寄存器A(CTRLA.INACTOUT)中的不活动暂停时间
比特组写来实现
。SDA等待时间能通过向控制寄存器B中的SDA等待比特组写来实现
。Smart操作能通过向控制寄存器B中的Smart模式使能比特写来使能
。在从机操作,地址匹配设置必须被设置在控制寄存器B中的地址模式比特组。
。在主机操作中,波特率寄存器(BAUD)必须被写入期忘的波特率
27.6.2.2 使能,失能,和复位
I2C接口的使能是通过向控制寄存器A(CTRLA.ENABLE)使能比特写1.I2C接口的禁止是向CTRLA.ENABLE写
0来实现的。I2C接口的复位是通过向控制寄存器A的软件复位比特写1(CTRLA.SWRST)。I2C的所有寄存器除了
DBGCTRL将要被复位到它们的初始状态,并且I2C接口将禁止。请参考CTRLA的描述。
27.6.2.3 I2C总线的状态逻辑
总线状态逻辑包括几个逻辑块连续监视在所有休眠模式I2C总线上的活动。开始和停止的检测和比特记
数都以检测当前总线状态为基本过程。总线状态检测是依据状态图如下图所示。软件可以通过读状态寄存器
中的主机总线状态比特位来得到当前总线状态。STATUS.BUSSTATE的值是二进制展示的。
|