嘉兴市网站建设_网站建设公司_图标设计_seo优化
2025/12/28 2:32:31 网站建设 项目流程

2.主模式

通过设置UCMODEx=11、USCYNC=1,置位UCMST控制位,eUSCI_B模块将被配置为I2C主模式。若当前主机是多主机系统的一部分时,必须将UCMM置位,并将其自身地址编程写入UCBxI2COA寄存器。UCA10=0时,选择7位寻址模式; UCA10=1时,选择10位寻址模式。UCGCEN控制位选择eUSCI模块是否对全呼做出反应。

注意:在启用自身地址检测(UCOAEN=1)的主机模式下,尤其是在多主机系统中,不允许在自己的地址和从机地址寄存器(UCBxI2CSA=UCBxI2COAx)中指定相同的地址。在软件中必须确保不会发生这种情况。这种情况没有硬件检测,结果使eUSCI_B的值不可预测。

(1)I2C主机发送模式

初始化之后,主发送模式通过下列方式启动:将目标从地址写入UCBxI2CSA寄存器,通过UCSLA10控制位选择从地址大小,置位UCTR控制位将主机设置为发送模式,之后置位UCTXSTT控制位产生起始条件。

eUSCI_B模块首先检测总线是否空闲,然后产生一个起始条件,发送从机地址。当产生起始条件时,UCTXIFG0中断标志位将会被置位,此时可将需发送的数据写入UCBxTXBUF发送缓冲寄存器中。一旦有从机地址对地址做出应答,UCTXSTT控制位将立即被清零。在发送从机地址的过程中,如果总线仲裁没有丢失,那么将发送写入UCBxTXBUF中的数据。一旦数据由发送缓冲寄存器移入发送移位寄存器,UCTXIFG0将再次被置位,表明发送缓冲寄存器UCBxTXBUF为空,可写入下次需传送的新字节数据。如果在应答周期之前,没有数据装载到UCBxTXBUF中,那么总线将在应答周期内挂起,SCL保持低电平状态,直到数据写

入UCBxTXBUF中。只要UCTXSTP控制位或UCTXSTT控制位没有置位,将一直发送数据或挂起总线。

主机置位UCTXSTP控制位,可在接收到从机下一个应答信号后,产生一个停止条件。如果在从机地址的发送过程中,或者当eUSCI模块等待UCBxTXBUF写入数据时,UCTXSTP控制位置位,即使没有数据发送到从机,也会产生一个停止条件。如果发送的是单字节数据,在字节发送过程中或数据发送开始后,没有新数据写入UCBxTXBUF,必须置位UCTXSTP控制位,否则将只发送地址。当数据由发送缓冲寄存器移到移位寄存器时,UCTXIFG0将会置位,这表示着数据传输已经开始,可以对UCTXSTP控制位进行置位操作。

置位UCTXSTT控制位将会产生一个重复起始条件,在这种情况下,为了配置发送器或者接收器,可以复位或者置位UCTR控制位,需要时可将一个不同的从地址写入UCBxI2CSA寄存器。

如果从机没有响应发送的数据,未响应中断标志位UCNACKIFG将置位。主机必须产生停止条件或者重复起始条件。如果已有数据写入UCBxTXBUF缓冲寄存器中,那么将丢弃当前数据。如果这个数据必须在重复起始条件后发送,必须重新将其写入UCBxTXBUF中。UCTXSTT的设置也将被丢弃,为了触发重复起始条件,UCTXSTT控制位必须再次置位。

(2)I2C主机接收模式

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询