I2C usage with differing voltage rails

My design team is using the R5F10BBGKNA#x5.32 pin micro in an application where there is an I2C BUS communIcating with devices using 2.8V as their reference voltage. The micro itself will run at 3.3V. Is it feasible for the micro I2C SDA and SCL pins to be on  universal pull-up structure to 2.8V without violating logic levels to the micro?

Parents
  • Hello,

    If you need to make an I2C slave interface on R5F10BBGK MCU, then you must use IICA0 port on P60(SCL00)/P61(SDA00) with PIOR left to default state (all zeroes) or IICA port remapped to P62/P63.    IICA00 port can be slave or master mode

    If you need to make an I2C master interface on R5F10BBGK MCU, then you can use IICA0 on P60(SCL00)/P61(SDA00) or P62/P63, or you can use any of the simplified I2C ports of IIC00 (pins P10/P11), IIC01 (pins P13/P14), or IIC10 (pins P16/P17).  Simplified I2C ports can only be used for I2C master mode.

    In all cases of using either IICA00, or IIC00, IIC01, or IIC10, you must program the outputs to N-ch Open Drain mode for both the I2C clock and data lines.  Then, add a pullup resistor from each clock and data lines to 2.85Volt supply voltage.  Also, program the I2C input buffers (both Clock and data) to Schmitt1 or TTL input buffer mode.  (Do not use the Schmitt3 input mode).

    Registers:

    PIM1x sets CMOS (Schmitt) input or TTL input mode for IIC00, IIC01, IIC10

    POM1x sets CMOS output or N-ch Open Drain output mode for IIC00, IIC01, IIC10

    PITHL1x sets CMOS Schmitt1 or CMOS Schmitt3 input mode for for IIC00, IIC01, IIC10

    PIM6x sets CMOS (Schmitt) input or TTL input mode for IICA0

    POM6x sets CMOS output or N-ch Open Drain output modes for IICA0

    PITHL6x sets CMOS Schmitt1 or CMOS Schmitt3 input mode for for IICA0

    The main idea is to make the VIH minimum threshold less than 2.85V on I2C clock and data line inputs, by using Schmitt1 or TTL input mode.

    And use N-channel Open drain output mode with pullup resistors to 2.85Volts.

    Regards,

    Mike

Reply
  • Hello,

    If you need to make an I2C slave interface on R5F10BBGK MCU, then you must use IICA0 port on P60(SCL00)/P61(SDA00) with PIOR left to default state (all zeroes) or IICA port remapped to P62/P63.    IICA00 port can be slave or master mode

    If you need to make an I2C master interface on R5F10BBGK MCU, then you can use IICA0 on P60(SCL00)/P61(SDA00) or P62/P63, or you can use any of the simplified I2C ports of IIC00 (pins P10/P11), IIC01 (pins P13/P14), or IIC10 (pins P16/P17).  Simplified I2C ports can only be used for I2C master mode.

    In all cases of using either IICA00, or IIC00, IIC01, or IIC10, you must program the outputs to N-ch Open Drain mode for both the I2C clock and data lines.  Then, add a pullup resistor from each clock and data lines to 2.85Volt supply voltage.  Also, program the I2C input buffers (both Clock and data) to Schmitt1 or TTL input buffer mode.  (Do not use the Schmitt3 input mode).

    Registers:

    PIM1x sets CMOS (Schmitt) input or TTL input mode for IIC00, IIC01, IIC10

    POM1x sets CMOS output or N-ch Open Drain output mode for IIC00, IIC01, IIC10

    PITHL1x sets CMOS Schmitt1 or CMOS Schmitt3 input mode for for IIC00, IIC01, IIC10

    PIM6x sets CMOS (Schmitt) input or TTL input mode for IICA0

    POM6x sets CMOS output or N-ch Open Drain output modes for IICA0

    PITHL6x sets CMOS Schmitt1 or CMOS Schmitt3 input mode for for IICA0

    The main idea is to make the VIH minimum threshold less than 2.85V on I2C clock and data line inputs, by using Schmitt1 or TTL input mode.

    And use N-channel Open drain output mode with pullup resistors to 2.85Volts.

    Regards,

    Mike

Children
No Data