PCA9538 I2C IO Expander

This 8-bit I/O expander for the two-line bidirectional bus (I2C) is designed for 2.3-V to 5.5-V VCC operation. It provides general-purpose remote I/O expansion for most microcontroller families via the I2C interface [serial clock (SCL), serial data (SDA)].

Features

  • Low Standby Current Consumption of 1 µA Max
  • I2C to Parallel Port Expander
  • Open-Drain Active-Low Interrupt Output
  • Active-Low Reset Input
  • Operating Power-Supply Voltage Range of 2.3 V to 5.5 V
  • 5-V Tolerant I/O Ports
  • 400-kHz Fast I2C Bus
  • Two Hardware Address Pins Allow up to Four Devices on the I2C/SMBus
  • Input/Output Configuration Register
  • Polarity Inversion Register
  • Noise Filter on SCL/SDA Inputs

#include "mbed.h"
#include "PCA9538.h"

//PCA9538 MyExpand(p9,p10,0x70,p21);
DigitalOut myled(LED1);
DigitalOut myled2(LED2);
PCA9538PinOut myled3(exp_p4,p9,p10,0x70);
PCA9538PinOut myled4(exp_p7,p9,p10,0x70);
PCA9538PinIn  mypuls(exp_p0,p9,p10,0x70);
//void vISRExpand(void);

int main() {
    //MyExpand.vInit(0x0F,&vISRExpand);
    //MyExpand.vWrite(0x00);
    while(1) {
        if(mypuls==0){
            myled2=1;
            wait(0.3);
            myled2=0;
            wait(0.3);
        }else{
            myled3=1;
            myled4=1;
            myled=myled3;
            wait(0.5);
            myled = 0;
            myled3=0;
            myled4=0;
            wait(0.5);
        }
    }
}


/*void vISRExpand(void){

    myled2=!myled2;
    MyExpand.vWrite(MyExpand.cRead()<<4);
}*/

Import programPCA9538_example

Example PCA9538 I2C Expander

/media/uploads/Suky/pca9538.png

Library:

Import libraryPCA9538_Expander

PCA9538 I2C Expander