Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

implementing vhdl I2C MUX in CPLD VHDL

hi all ,

i need to implement i2c mux that consists of:

4 i2c masters

8 i2c slaves

external hardwre can configure with master is going to be connected to one of the 8 slaves.

The problem is that I2C signal ( SDA) is bidirectional, which makes

I2C mux within an CPLD hard to implement.

thans

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The I2C allows 2 masters and 8 slaves on the same bus. Do your really need to have a "mux"?

    Anyway, if you really do need, you can do it by making the CPLD logic track the state of the I2C transaction, so it can known what direction to use for SDA.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    The I2C allows 2 masters and 8 slaves on the same bus. Do your really need to have a "mux"?

    Anyway, if you really do need, you can do it by making the CPLD logic track the state of the I2C transaction, so it can known what direction to use for SDA.

    --- Quote End ---

    on each bus is going to be one master and one slave.

    external hardwre configures whitch master is going to be connected to one of the 8 slaves.

    how can the cpld track the state of the I2C transaction?

    do you have ref design of guidelines ?

    thanks