AnsweredAssumed Answered

ADAU1701 Microcontroller I2C issue

Question asked by JAllen on Dec 8, 2011
Latest reply on Dec 14, 2011 by BrettG



I have downloaded a program to the ADAU1701 chip via SigmaStudio so that it self-boots from EEPROM.


In the SigmaStudio schematic there is a mulitplexer block that I'm using to switch between various audio effects. This works fine when connected to the computer and running SigmaStudio but I have an embedded controller that I'm using as a demonstration for a school project and the I2C won't work. The embedded controller is set up to essentially copy what SigmaStudio is doing. That is to say that when I select a given input, the embedded controller performs the exact same I2C transaction that SigmaStudio would.


I have configured the I2C in the embedded controller to be the same as SigmaStudio. Below is an example of what I'm trying to accomplish.


I click on "position1" of my multiplexer block and the following takes place:


(start condition) -> (0x68 address + write bit + ack bit)  -> (param_addr_MSB + ack bit) -> (param_addr_LSB + ack bit) -> (data1 + ack bit) -> (data2 + ack bit) -> (data3 + ack bit) -> (data4 + ack bit) -> (stop condition)


The embedded controller program does the exact same thing except for the obvious difference of the acknowledge bit being pulled high. I've even compared them bit by bit. I can't think of any issues why the chip will not acknowledge the I2C writes. I'm 100% certain I'm on the correct pins. I've had to lower my pull-up resistors from the embedded controller side due to a high capacitance line from our bi-level translator. The only issue I can think of is the logic level. The pull-ups on the SigmaDSP are pulled up to approximately 3.1 volts and not 3.3. Could this be an issue?


Anyways, I'm basically asking for confirmation with the I2C transaction as well as if there are any issues I may be overlooking. The goal is to use the embedded controller to copy what SigmaStudio does.