跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

主机发送/接收过程中即便总线处于空闲状态(SCL/SDA均为“高”电平),BBSY仍为1而不变为0。如何将BBSY清0?

最新更新:10/31/2008

Question:

(I2C总线) 在主机发送/主机接收的过程中,即便总线处于空闲状态(SCL/SDA均为“高”电平),总线忙标志(BBSY)仍为“1”而不会变为“0”。对BBSY 写“0”或者产生停止条件(将BBSY和SCP均设置为“0”),BBSY也不能被清“0”。请问如何将BBSY清“0”?

Answer:

总线忙标志(BBSY)在检测出符合停止条件的实际波形时才清“0”。
即使直接对BBSY写“0”,也不能对该标志位清“0”。
即使产生停止条件(将BBSY和SCP均设置为“0”)也不能清“0”的原因可能是通信方自身或通信对方将SCL和SDA固定在了“低”电平,而不能产生符合停止条件的实际波形。
由于通信方自身原因而将SCL/SDA固定在“低”电平的情况,请按照以下顺序解除BBSY。

1.IICRST=“1”(解除通信方自身SCL/SDA的输出锁定)
2.IICRST=“0”(解除内部复位)
3.确认SCL/SDA =“高”电平(检查复用引脚的端口输入)
4.产生开始条件(将BBSY设置为“1”,将SCP设置为“0”)
5.确认已产生开始条件(确认SCLO=“0”)
6.产生停止条件(将BBSY和SCP均设置为“0”)
7.确认已产生停止条件(确认STOP=“1”)
8.清除STOP标志(将STOP设置为“0”)

Suitable Products
R8C/1A
R8C/1B
R8C/20
R8C/21
R8C/22
R8C/23
R8C/24
R8C/25
R8C/26
R8C/27
R8C/28
R8C/29
R8C/2A
R8C/2B
R8C/2C
R8C/2D
R8C/32C
R8C/33C
R8C/35C
R8C/36C
R8C/38C
R8C/3GC
R8C/3JC
R8C/38A