主题中讨论的其他器件: TCA9544A
大家好!
我们将在设计中使用 TCA9554A、并需要将 P0配置为输入、以便在将其拉至低电平时、INT 将发生变化。 我已经成功使用 I2C 接口和 Raspberry PI Pico W 对 TCA9554APWR 进行编程、以重复打开和关闭 P0-P7作为输出、 当我将与输入相同的引脚配置并将它们下拉时、发现引脚上没有变化、这真的是一个惊喜。
为了使对话和调试这个主题,我试图使我的程序简单,它看起来像这样:
#包含
int i2cDeviceAddress = 0x3F;// TCA9554A I2C 器件地址
void setup(){
Wire.begin();
//将引脚5 (P1)配置为输出
Wire.beginTransmission(i2cDeviceAddress);
Wire.write (0x03);//配置寄存器
Wire.write (0b11111111);
Wire.endTransmission ();
}
void loop(){
延迟(500);
//读取输入状态
// Wire.beginTransmission(i2cDeviceAddress);
wire.requestFrom (i2cDeviceAddress、1);//请求输入端口状态
if (Wire.available()){
byte inputState = Wire.read ();//读取输入端口状态
serial.print ("输入状态:");
for (int i = 0;i < 8;i++){
serial.print ((inputState >> I)和0x01);//打印每个输入状态
}
serial.println ("L");
}
//Wire.endTransmission ();
}
无论我做什么、串行控制台中的输出对于所有引脚位置都报告为高电平。 由于它是我的 PCA 上最容易接触的、因此我的主要测试是将连接到 P1的引脚拉至 COM、此时我期望左侧第二个位置有一个零。
更奇怪的是、TCA9554APWR 认为其引脚全部为高电平、我通过观察 I2C 的范围输出确认了这一点。 通道1 (黄色)是时钟、通道3 (蓝色)是数据。
相关迹线的原理图附在后续图像中。
很高兴获得一些帮助、这将允许该芯片读取输入、并将改变该产品的功能和多功能性。 通过读取 P0 (ex0)何时变为低电平、我可以通过检测接地故障来告诉我们的微控制器何时执行和执行操作。 这对我们的项目非常重要。
谢谢、我期待与您交谈。
亲切友好
丹尼尔·科达
硬件工程师
Megger
德克萨斯州达拉斯4545 West Davis Street 达拉斯75211
5163121767