硬件TWI使用及案例说明

i2c通讯协议具有运行可靠、成本低廉、占用io资源少等优点,广泛应用于多级通讯中;中颖芯片硬件twi(两线串行接口)接口完全兼容i2c总线协议。
中颖芯片硬件twi支持功能:
开漏输出,通讯电平不受vdd影响;
支持主机模式和从机模式;
各个模式均支持发送和接受;
支持多级通讯的仲裁功能;
具有scl低电平/高电平超时判断;
器件地址可编程,带多个地址屏蔽位,支持广播功能;
支持标准模式(100k)和快速模式(400k);
支持clock stretch功能
支持内部上拉电阻功能
中颖芯片硬件twi注意事项:
硬件twi在传输ack/nack响应信号时,在scl由低跳高后产生twi中断标志(twint),并在scl由高跳低时拉低scl,在twi中断标志清除后释放scl;
twi中断标志(twint)在被清除前,twi通讯会暂停,应用程序必须在twi中断标志(twint)清除前决定后续的动作;
硬件twi规定通讯过程中scl总线维持高电平超过tfree定义的时钟个数时为“空闲”状态,释放总线;此功能无法关闭。
硬件twi规定参与传输的所有器件,将时钟线scl维持低电平超过cnt定义的时钟个数时为“总线超时”,释放总线;此功能无法关闭。
硬件twi通讯注意事项:
twi中断标志(twint)置起后,软件配置twi即将执行的动作(如发送数据、回应ack/nack、发送sto/清除sta信号等)后方可清除twi中断标志(twint);
硬件twi作为从机时,在每次通讯开始前,提前将应答信号准备好(aa=1);
为了增强通讯抗干扰能力,程序中建议增加scl高电平超时判断、总线超时判断、特殊状态机(00h)判断;
硬件twi操作流程示意图:
硬件twi出错案例:
硬件twi通信错误(从机)
原因:外界存在干扰。
当从机twi状态机为b8时,从机继续向主机发送数据,且准备nack信号,此时若外接干扰造成从机识别主机回传的信号非正常信号,则从机状态机会跳到非正常状态机中,此时程序中未对应答信号做处理,造成当此轮通讯结束后,在开始下一轮通讯时,从机无ack信号造成无法响应主机通讯。
twi默认开启sck高电平超时功能,待发送完最后一个字节,此时aa清零;此时若存在因主机通讯或干扰造成sck高电平超时时,twi模块会自动释放总线,此时aa仍然保持为之前的nack状态,造成在下一轮通讯时无法响应主机通讯,通讯异常;
改善方案: 在传输完成最后一个字节数据后aa置位,这样即使发生异常情况,待下一组时序到来时,从机仍能够正常响应主机;在程序其他异常状态下置位aa,即使通信受到干扰,跳转到异常状态,仍能进行下一次的通讯响应。下图列出twi中断代码改善前后的代码。
图1改善前
图2改善后


一种基于GPRS通信的车辆检测器的设计与实现[图]
TDA16850各引脚功能及电压
狄耐克智能家居荣获“2019年度中国智能建筑行业十大匠心产品品牌企业”奖项
电动机保护断路器的瞬时脱扣电流值如何整定?
只见收并购,不见大整合,移动机器人市场未来如何发展?
硬件TWI使用及案例说明
LM3102同步整流降压转换器
Renesas仪表放大器的主要特征
NSFConverter软件的工作原理
工业网关数据采集方式是怎样的?
ICT及ICT测试原理
FPGA拆解FPGA芯片,带你深入了解其原理
生物神经元和M-P神经元模型简介
罗技UEWonderboom蓝牙音箱评测 运动场上好伴侣
Python的面向对象编程详解
2021年1月份动力电池月度数据公布
村田薄型及大容量470µF电容器介绍
工厂智能化 工业以太网成突破要点
这个物联网处理器号称全世界体型最小
AI预测龙卷风 只有极少数系统投入了使用