No I2C communications DAC <-> Adruino until reset of the DAC - Page 1
Forum section: electronics / beginners

author: voyager1
author_rank: Newbie
timestamp: August 04, 2014, 08:27:53 pm
content: Hi guy'sI have a bit of a problem here and I am out of idea's how to solve this.I have build a DAC it's a ES9018 the board is from diyinhk. This DAC IC has a I2C interface and a someone wrote a nice piece of code for it so that it communicates with a Arduino.See this link.http://hifiduino.wordpress.com/introduction-and-guide-to-hifiduino/It allows you to control volume, chance settings, switch inputs and so on.The DAC works and sounds wonderful, but when I connect it to the Arduino board and I power up it mutes the DAC, this is by default to mute "the power on pop" on the output.But after that it does Notting. This DAC has a reset, if I reset the board every thing works, I can control volume see the used sampling rate etc.Why only after a reset? I don't understand it.I took the whole thing out of it's case so you could see what I have build more clearlyI don't use a in-line picture because it's kinda bigWhat we see here, are 2 R-core transformers and 2 regulator boards using the TPS7A4700 4.17uV ultralow noise regulators.The top board does -12 +12v and 2x 3.3 for avcc L and avcc R The bottom one does 3.3v for the DAC IC it self and the 5v for the Adruino and display.Don't mind the strange symbols on the screen this display is clearly not 100% compatible.I use a level converter between the DAC and the Adruino. It's not 100% sure if the ES9018 is 5v tolerant.I have tried 2 adruino boards, different psu, tried it without the level converter, and always get the same result, it only works after a reset of the DAC it self. Resetting the Adruino does nothing.This software is made for a different DAC pcb but uses the same ES9018. The SDA and SCL pin's go direct to the IC it self.And this is the point were I am lost, and don't know what to do, or how to find out what the problems is.I tried to get support from DIYINHK but no reply, I have tried the maker of the software for the controller but again no reply.I was thinking about buying a bus pirate to log the I2C lines, but that will do me no good because I can't interpreted the data that it gives me.Any ideas on how to move forward?Kind RegardsSebastianSome hires picturesDAC board backDAC board front

author: w2aew
author_rank: Super Contributor
timestamp: August 05, 2014, 12:14:51 am
content: My first suspicion would be that the DAC is hanging the I2C bus. Are both the SDA and SCL lines resting at the high state? Maybe the simplest brute force solution is to use an additional line from the Arduino to pulse the Reset line on the DAC after power up.

author: voyager1
author_rank: Newbie
timestamp: August 05, 2014, 02:42:43 pm
content: First of all thank you for helping me.I have 3,84v on both lines, but I have that also when the thing is running correctly.Also I found out that if I power on the system and THEN connect the I2C lines it also works fine.The is something @ power-up that locks the bus.The problems is that I don't have the tools to diagnose this problem. I build this dac on a shoe sting budget , and it so frustrating that I can't get it to work.I can buy a bus pirate of ebay for 20 euro's do you think it would help?There is one thing that keeps going true my head and thats the duo transformer setup, do I create A ground loop somewhere?I also what to try pull up resistors, do you know what the correct value would be for that?Still.. this setup works for a lot of people, but not for me, the only thing I can think of is that dual rcore transformer.

author: ncoonrod14
author_rank: Contributor
timestamp: August 05, 2014, 02:47:57 pm
content: I've had similar problems with a different system. I have a motor driver that communicates via I2c connected to two arduinos. The motor driver and arduinos never seem to establish a connection on startup but as soon as I reset the two arduinos the connection is fine. Almost as if it isnt "in sync." Not a huge problem for me, I can use the arduinos to automatically pull the others reset line low to establish communication.

author: mij59
author_rank: Frequent Contributor
timestamp: August 05, 2014, 04:32:24 pm
content: Hi,Never used the thing.Could it be that the dac is waiting for configuration data via the i2c bus ?

author: voyager1
author_rank: Newbie
timestamp: August 05, 2014, 05:53:59 pm
content: I believe the DAC it self waits for noting, it has a default configuration it works in.On power up the Arduino sends the data to the register of the DAC.So even if I make a reset function it will not work, yes there is communication but it has to write the config data again to the DAC also.I think I will put this on hold for now because I need more data on what's going on.I ordered A I2C sniffer, so I can see what it's doing.