27.6.3 附加功能
27.6.3.1 SMBus
I2C硬件结合三个硬SCL低时间溢出,它允许SMBus SCL低电平一个时间溢出,主机延伸的时间溢出,
和从机的时间溢出。这些时间溢出由GCLK_SERCOM_SLOW时钟驱动,GCLK_SERCOM_SLOW时钟被用来确定时间举
出的时间并且必须配置使用32kHz晶振。I2C接口也允许SMBus 兼容SDA延迟时间。
。T TIMEOUT:SCL低电平25-35ms。测量一个单个SCL低电平周期。通过比特CTRLA.LOWTOUTEN。
。T LOW:SEXT:积累的时钟低电平延伸时间25ms-测量累积SCL低延伸时间通过一个从设备单个消息从
初使化开始到停止。通过CTRLA.SEXTTOEN比特使能。
。T LOW:MEXT:积累的时钟低电平延伸时间10ms-测量SCL低延伸时间通过主机设备在单个字节从开始
到应答,从应答到应答,或从应答到停止。通过比特CTRLA.MEXTTOEN使能。
27.6.3.2 Smart模式
I2C接口结合一个特殊的smart模式,简单的应用代码和最小化的用户交互需求来保持I2C的协议运行。
smart模式通过让data.data读自动发出一个ACK或NACK基于CTRLB.ACKACT状态.
27.6.3.3 4线模式
设置控制寄存器A的管脚使用比特(CTRLA.PINOUT),为了主机或从机到4线模式全能操作。如图所示:
在这个模式下,内部I2C三态驱动被旁路,并且当连到I2C总线上,需要外部I2C匹配的三态驱动。
27.6.3.4 快速命令
设置快速命令使能比特在控制寄存器B中(CTRLB.QCEN)使能快速命令,当快速命令被使能,相应的中断
标志在从机应答地址后立刻被设置。在这进,软件可以执行一个停止命令或者通过写CTRLB.CMD或ADDR.ADDR
一个重复开始。
|