微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > PCA9539 IIC无法读取问题

PCA9539 IIC无法读取问题

时间:10-02 整理:3721RD 点击:

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

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

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


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;

从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开始。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top