ADAU1466 and I2C Operation

I would like to find someone that operates an ADAU1466 via the I2C, instead of the SPI interface, to answer a few basic questions.  For example, if a design is created in SigmaStudio, then loaded into the flash on the Eval board with the SPI interface and the Eval board re-booted in "self-boot" mode, can the switch on the Eval for "Master Port Mode Select" then be moved from SPI to I2C to allow control over, e.g., a volume control in the design with the I2C (not SPI) interface?

Patrick

  • 0
    •  Analog Employees 
    on Jan 7, 2020 8:39 PM over 1 year ago

    Hello Patrick,

    On the 72 pin parts the master SPI and master I2C cannot be split off onto different pins. So you have the issue of trying to use two bus standards at the same time. This does NOT work unless you go through a lot of effort to make the transition. So for a product design I would be very reluctant to try this. If you are only using the eval board for a proof of concept then you may be able to make this work but it will be a bit ugly to do it. 

    The switch on the board will lower the MP pin to a low which will cause the DSP to boot up in I2C mode so this is not what you want. However, it does isolate the Chip Select on the EEPROM so that the EEPROM will tri-state its outputs. 

    Now I am not certain this will work since I have not tried to do this but I think it will. 

    If you boot up in SPI mode from the EEPROM. Then after booting you manually flip the switch and then connect the I2C bus to the SCL and SDA pins you should be able to communicate via I2C. The I2C pullups will have to reside off the board elsewhere since you cannot have the pull-ups there when booting in SPI mode. 

    The other assumption I am making is that the SigmaStudio GUI for runtime I2C control will setup the port for I2C. It should do that after the DSP has booted using the firmware built into the DSP. I am reasonably certain this happens. The part will wake up and see the switch in SPI mode and the internal firmware will setup the port for SPI mode and boot up off of the EEPROM. Then once the program starts running, the code will setup the master port for I2C runtime use. Then you have to physically flip the switch and connect the I2C bus. 

    So you cannot have the I2C lines connected when you boot up. So you will need to rig up a switch or manually place some clip leads for the I2C bus lines onto the test points. 

    If you are planning to do this in your product then you would have to do this with bus isolators or switches and I think there will be hardware issues if you try to do that. In the product I recommend to use an I2C EEPROM. If you need the faster bootup speed then step up to the 88 pin parts where you can split the SPI and I2C ports out onto separate pins. 

    Let me know if this works... no guarantee. 

    Dave T