打印
[牛人杂谈]

新唐51内核系列单片机的I2C状态寄存器

[复制链接]
686|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
I2CnSTAT状态寄存器中,有两种状态码不归属25种之前所述状态,第一个状态码是F8H 用以标示在每次的传输中没有有效信息,意味着,SI标志位为0且无I2C 中断产生。另一个状态码00H 标示在传输过程中,有总线错误发生。总线错误是指START 或 STOP在传输的过程中出现在错误的位置,例如在地址或数据的第二位或应答位。当总线发生错误,SI标志马上会被置1,工作中的节点设备马上切换到未被定址从机模式,释放SDA 和SCL,并将I2CnSTAT寄存器清0。要恢复总线状态,需要置位STO位并清除SI位,然后STO会由硬件清0,而不需要真正的STOP信号波形,释放总线恢复到正常空闲状态。
有一种特殊情况,当SDA线被强制拉低导致阻塞,START信号或重复起始(repeat START)信号无法成功产生时,从机将失去同步。解决方法是在SCL线上额外多送一个时钟脉冲。通过将STA位置1,总线上产生额外的时钟脉冲,由于SDA始终拉低,SDA线上不会产生START信号。一旦SDA线被释放,正常的START信号送出,状态寄存器上会显示08H,串行传输继续。相同的状况,如果需要发送重复开始(repeated START)信号受阻,也可以采用上述方式。在上述方式完成传输后,状态寄存器显示10H,而不是显示08H。注:软件无法介入上述总线问题传输。




使用特权

评论回复
沙发
yiy| | 2024-1-18 23:14 | 只看该作者
新唐的I2C功能比较多,寄存器比较多。

使用特权

评论回复
板凳
埃娃| | 2024-1-29 10:55 | 只看该作者
iic不都是一样的吗?

使用特权

评论回复
地板
埃娃| | 2024-1-29 10:56 | 只看该作者
还区分不同的功能吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

1300

帖子

2

粉丝