I2C通讯 - 在一次通讯中(transaction) 多次start

重复开始条件(repeated start condition) 

有时master需要在一次通信中进行多次消息交换(例如与不同的slave传输消息,或切换读写操作),并且期间不希望被其他master干扰,这时可以使用“重复开始条件”-----在一次通信中,master可以产生多次start condition,来完成多次消息交换,最后再产生一个stop condition结束整个通信过程。由于期间没有stop condition,因此master 一直占用总线,其他master无法切入。 

为了产生一个重复的开始条件,SDA在SCL低电平时拉高,然后SCL拉高,接着master就可以产生一个开始条件继续新的消息传输(按照正常的7-bit/10bit地址传输时序)。重复开始条件的传输时序如图所示:

 

 

P.S.:

某写ISP (GeoSemi  GW5200),在一次通讯过程中,传输的payload比较长。但是SOC, 支持的payload 会 <= 某值,例如 8155

there is a limitation on the length of bytes that could be written(and may be read) in a single i2c transaction: max 11 bytes.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值