SMBus总线是根据I2C总线改进而来的,很多单片机提供了硬件SMbus总线接口,STM32单片机听说硬件接速可以使用高速时有中断干扰时会死掉,这点STM32有个硬伤,其他单片机还好,下面是介绍中颖的79f329单片机的SMBus总线做这个介绍。
首先它和I2c先发起始位,器件地址,从机应答,读写地址,再应答。
START Addr MSB AddrMSB R/W ACK
起始位 地址 地址 读写 应答
____________________________________________________________________________________________________
每次数据字节或从地址传输都产生 SMBus 中断。发送数据时在 ACK 周期后产生中断,
使软件能读取接收到ACK值;接收数据时在ACK周期之前产生中断,使软件能确定要发出的ACK值
主器件产生起始条件时也会产生一个中断,指示数据传输开始;
从器件在检测到停止条件时产生一个中断,指示数据传输结束。
软件应通过读 SMB0CN( SMBus 控制寄存器)来确定 SMBus 中断的原因。
主发送器、主接收器、从发送器或从接收器四种模式
SMBus 在产生起始条件时进入主方式,并保持在该方式直到产生一个停止条件或在总线竞争中失败。
设置P0OS P0.5 P0.6
___________________________________________________________________________________________________
主发送器方式
SDA发数据,SCL输出时钟。<