Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Starterware/PCF8575: PCF8575 not response

Part Number: PCF8575
Other Parts Discussed in Thread: PCF8574

Tool/software: Starterware

hello  iam working with the i/o expander pcf8574 , and working well ,but in need change to work witht the pcf 8575 but this device not respond , all the pins ports stay in high , i read  the port and all the time respond 0xFF and went write the port do nothing ,the interuption  pin if change when and conmute the pin , i try work with 100Mhz and 400Mhz , and cant see any change . 

  • Hello Andres,
    Do you have schematics for each version of the design? Also, have you captured I2C traffic? Please attach waveforms so I can verify commands and sequences.
    -Francis Houde
  • Hello Francis ,

    Thanks for you response , i am try work with the next schematic .

    with this configuratoin the pcf8574 response and work fine ,but the pcf 8575 response all time 0xff  and the out stay in high .

    the adrres of the device are :

    #define PCF_8575 0x38 
    #define PCF_8574 0x39 

    the configurtion of the port is :

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C2);
    SysCtlPeripheralReset(SYSCTL_PERIPH_I2C2);



    GPIOPinConfigure(GPIO_PE4_I2C2SCL);
    GPIOPinConfigure(GPIO_PE5_I2C2SDA );


    GPIOPinTypeI2CSCL(GPIO_PORTE_BASE, GPIO_PIN_4);
    GPIOPinTypeI2C(GPIO_PORTE_BASE, GPIO_PIN_5);
    HWREG(I2C2_BASE + I2C_O_MCR) = I2C_MCR_MFE ;
    I2CMasterInitExpClk(I2C2_BASE, SysCtlClockGet(), false);

     the function read of the data in the pcf 8575  is : 

    int PCF_8575_portIn(void){


    int dato;
    int dato2;

    I2CMasterSlaveAddrSet(I2C2_BASE,PCF_8575,true);

    I2CMasterControl(I2C2_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START );
    while(I2CMasterBusy(I2C2_BASE))
    {
    }
    dato=I2CMasterDataGet(I2C2_BASE);
    I2CMasterControl (I2C2_BASE, I2C_MASTER_CMD_BURST_RECEIVE_FINISH);
    while(I2CMasterBusy(I2C2_BASE))
    {
    }
    dato2=I2CMasterDataGet(I2C2_BASE);

    return dato2;
    }

     and the function write of the data in the pcf 8575  is : 

    void PCF_8575_PortOut(int data){

    I2CMasterSlaveAddrSet(I2C2_BASE,PCF_8575 , false);
    I2CMasterDataPut(I2C2_BASE, 0xff);
    I2CMasterControl(I2C2_BASE, I2C_MASTER_CMD_BURST_SEND_START);
    while(I2CMasterBusy(I2C2_BASE));
    I2CMasterDataPut(I2C2_BASE, 0x00);
    I2CMasterControl(I2C2_BASE, I2C_MASTER_CMD_BURST_SEND_FINISH);
    while(I2CMasterBusy(I2C2_BASE));

    Thanks for your help .

  • in the past post i put the output pin in constant values only for test ,, but he output not response .
  • Hello Andres,

    I am wondering if you are using the correct address?  I see you have the following:

    #define PCF_8575 0x38 
    #define PCF_8574 0x39 

    I am looking at the pins and the available address and it doesn't seem to match the datasheets

    I would like to see waveforms capturing I2C transactions to make sure it matches what your code is trying to do.

    -Francis Houde

  • hello Francis , Thanks for your answer.


    the address it is ok , in these two IC expander , the numeber its for 7 bits configuration without read/writte bit , example 0X38 => 0b0111000X x=1 read and x=0 Writte .