TI中文支持网
TI专业的中文技术问题搜集分享网站

PCA9539 IIC无法读取问题

为什么写寄存器命令就一个字节?是有两个口,为什么不是16位?读取到的数据一直是0xff,输入无法改变

Kailyn Chen:

写时序如图,command byte为8bit,有什么问题吗?读取到的0xFF,那么您的I2C从机地址配置的多少?

guang zhang:

回复 Kailyn Chen:

command是8位,如何设置端口0和1 的输入输出呢?应该是后面的data也只能是一个字节吧?从机是0,A1,A0接地了

guang zhang:

回复 Kailyn Chen:

u16 temp=0; IIC_Start(); IIC_Send_Byte(0x74<<1);  IIC_Wait_Ack(); IIC_Send_Byte(0x00); IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte((0x74<<1)+1); IIC_Wait_Ack(); temp=IIC_Read_Byte(1); //不产生ack IIC_Stop();//产生一个停止条件 return temp;

Kailyn Chen:

回复 guang zhang:

从datasheet中给的写时序来看,当发送一个command byte之后,收到ACK之后紧跟着写的data是这个command 对应的data。

比如command byte设置的是port 0.那么时序对应的是这样的:

start+7bit slave address/W+ACK+command byte(port 0)+ACK+ data to Port 0+ACK+ data to Port1 + ACK

或者如果command byte先定义port 1的话,那么紧跟着command后的data对应的是data 1,后面继续写port 0.

不需要重新启动restart开始。

您可以试试,看这样是否没问题。 

guang zhang:

回复 Kailyn Chen:

我自己试了试,一个命令对应一个数据能正常使用,按照datasheet上那样好像不行。谢谢了

赞(0)
未经允许不得转载:TI中文支持网 » PCA9539 IIC无法读取问题
分享到: 更多 (0)