Post Go back to editing

no lineout output

Category: Hardware
Product Number: ADAU1761

Hello,

I have some trouble getting a signal out of my ADAU1761.

What I just try is to get a signal generated in the DSP out to DAC0 and then routed to LoutP.
The hardware is setup to use LoutP as single-ended output LoutN is not connected. I use a oscilloscope to measure AC between GND and a 10uF cap after LoutP.
When I turn on my custom board, a mcu is sending I2C signals to write the registers of the ADAU1761.
I can confirm the writing with an logic analyzer, pll is locked, reading out the registers with I2c gives my written registers correctly back.

I tried also to get a signal from all other outputs with no success.

I can confirm VDD/2 when I measure DC before the cap and I can see the voltage jumping high when I measure AC after the cap when I power the board. It looks like a discharging curve of the cap.
Same but inverted, when I power off the board.(Sorry, can´t provide a picture of that, hope you can imagine what I mean)

In an earlier board version with a diffrent layout the ADAU1761 was running fine. I use the same MCU with the same code (a few adjustmens were needed) to run a ADAU1787 successfuly.

I also tried swapping the ADAU on the board itself and populated a second board. All in all I tried is with 3 diffrent silicones on two boards to excloude a hardware defect.

So now is the point, I don´t know how to go on, maybe it´s a simple thing I just don´t see, cause I stared too long on this project.

I want to share it with you, maybe you hava a clou.

Attached you can find following:

1.SigmaStudio Project

ADI_Project_Adau1761.zip

2. Screenshot of the Schematic

3. Screenshot of the logic analyzer an the decoder output

write to 0x38 ack data: 0x40 0xEB 0x7F 
write to 0x38 ack data: 0x40 0xF6 0x00 
write to 0x38 ack data: 0x40 0x00 0x0F 
write to 0x38 ack data: 0x40 0x02 0x00 0x01 0x00 0x00 0x20 0x01 
write to 0x38 ack data: 0x40 0x02 
read to 0x38 ack data: 0x00 0x01 0x00 0x00 0x20 0x01
write to 0x38 ack data: 0x40 0x15 0x00 0x00 
write to 0x38 ack data: 0x40 0x11 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x40 0x08 0x00 
write to 0x38 ack data: 0x40 0x09 0x14 0x00 0x00 0x00 0x00 0x58 0x58 0x00 
write to 0x38 ack data: 0x40 0x19 0x33 0x00 0x00 
write to 0x38 ack data: 0x40 0x1C 0x61 0x00 0x61 0x00 0x15 0x14 0x00 0xE4 0xE4 0xFE 0xFC 0xE4 0x00 0x03 
write to 0x38 ack data: 0x40 0x17 0x00 0x00 
write to 0x38 ack data: 0x40 0x2A 0x07 0x00 0x00 
write to 0x38 ack data: 0x40 0x2D 0xAA 
write to 0x38 ack data: 0x40 0x2F 0xAA 0x00 
write to 0x38 ack data: 0x40 0x31 0x08 
write to 0x38 ack data: 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE0 0x00 0x00 0x00 0xFF 0x34 0x00 0x00 0x00 0xFF 0x2C 0x00 0x00 0x00 0xFF 0x54 0x00 0x00 0x00 0xFF 0x5C 0x00 0x00 0x00 0xFF 0xF5 
write to 0x38 ack data: 0x08 0x20 0x08 0x20 0x00 0xFF 0x38 0x00 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x0C 0x00 0x00 0xFE 0x30 0x00 0xE2 
write to 0x38 ack data: 0x08 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 
write to 0x38 ack data: 0x08 0x60 0xE8 0x07 0x20 0x08 0x00 0x00 0x06 0xA0 0x00 0xFF 0xE0 0x00 0xC0 0x00 0xFF 0x80 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFE 0xC0 0x22 
write to 0x38 ack data: 0x08 0x80 0x00 0x27 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x1E 0x00 0x00 0xFF 0xE8 0x01 0x20 0x00 0xFF 0xD8 0x01 0x03 0x00 0x00 0x07 0xC6 0x00 0x00 0xFF 0x08 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xA0 0xFF 0xF4 0x00 0x20 0x00 0xFF 0xD8 0x07 0x02 0x00 0x00 0x1D 0x1F 0x20 0x00 0x00 0x0D 0x08 0x22 0x00 0x00 0x00 0x09 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xC0 0x08 0xA0 0x00 0x00 0x10 0x00 0xEA 0x00 0x00 0x20 0x00 0xF2 0x00 0x00 0x10 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 
write to 0x38 ack data: 0x08 0xE0 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 0x00 0xE2 0x00 0x00 0x20 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0A 0x20 0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x5D 0x1F 0x20 0x00 0x00 0x4D 0x08 
write to 0x38 ack data: 0x09 0x20 0x22 0x00 0x00 0x00 0x0C 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 0x0B 0xA0 0x00 0x00 0x50 0x00 0xEA 0x00 0x00 0x60 0x00 0xF2 0x00 0x00 0x50 0x00 0xC0 0x00 
write to 0x38 ack data: 0x09 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 
write to 0x38 ack data: 0x09 0x60 0x00 0xE2 0x00 0x00 0x60 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0D 0x20 
write to 0x38 ack data: 0x09 0x80 0x00 0x00 0x40 0x00 0xE2 0x00 0x00 0x00 0x0E 0x20 0x00 0x00 0x68 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x45 0x08 0x20 0x00 0xFD 0xB8 0x00 0xE2 0x00 0x00 
write to 0x38 ack data: 0x09 0xA0 0x6D 0x08 0x20 0x00 0xFD 0xB0 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xC0 0x0F 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0xC0 0x00 0x00 
write to 0x38 ack data: 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE0 0x00 0x00 0x00 0xFF 0x34 0x00 0x00 0x00 0xFF 0x2C 0x00 0x00 0x00 0xFF 0x54 0x00 0x00 0x00 0xFF 0x5C 0x00 0x00 0x00 0xFF 0xF5 
write to 0x38 ack data: 0x08 0x20 0x08 0x20 0x00 0xFF 0x38 0x00 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x0C 0x00 0x00 0xFE 0x30 0x00 0xE2 
write to 0x38 ack data: 0x08 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 
write to 0x38 ack data: 0x08 0x60 0xE8 0x07 0x20 0x08 0x00 0x00 0x06 0xA0 0x00 0xFF 0xE0 0x00 0xC0 0x00 0xFF 0x80 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFE 0xC0 0x22 
write to 0x38 ack data: 0x08 0x80 0x00 0x27 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x1E 0x00 0x00 0xFF 0xE8 0x01 0x20 0x00 0xFF 0xD8 0x01 0x03 0x00 0x00 0x07 0xC6 0x00 0x00 0xFF 0x08 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xA0 0xFF 0xF4 0x00 0x20 0x00 0xFF 0xD8 0x07 0x02 0x00 0x00 0x1D 0x1F 0x20 0x00 0x00 0x0D 0x08 0x22 0x00 0x00 0x00 0x09 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xC0 0x08 0xA0 0x00 0x00 0x10 0x00 0xEA 0x00 0x00 0x20 0x00 0xF2 0x00 0x00 0x10 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 
write to 0x38 ack data: 0x08 0xE0 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 0x00 0xE2 0x00 0x00 0x20 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0A 0x20 0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x5D 0x1F 0x20 0x00 0x00 0x4D 0x08 
write to 0x38 ack data: 0x09 0x20 0x22 0x00 0x00 0x00 0x0C 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 0x0B 0xA0 0x00 0x00 0x50 0x00 0xEA 0x00 0x00 0x60 0x00 0xF2 0x00 0x00 0x50 0x00 0xC0 0x00 
write to 0x38 ack data: 0x09 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 
write to 0x38 ack data: 0x09 0x60 0x00 0xE2 0x00 0x00 0x60 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0D 0x20 
write to 0x38 ack data: 0x09 0x80 0x00 0x00 0x40 0x00 0xE2 0x00 0x00 0x00 0x0E 0x20 0x00 0x00 0x68 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x45 0x08 0x20 0x00 0xFD 0xB8 0x00 0xE2 0x00 0x00 
write to 0x38 ack data: 0x09 0xA0 0x6D 0x08 0x20 0x00 0xFD 0xB0 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xC0 0x0F 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0xC0 0x00 0x00 
write to 0x38 ack data: 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE0 0x00 0x00 0x00 0xFF 0x34 0x00 0x00 0x00 0xFF 0x2C 0x00 0x00 0x00 0xFF 0x54 0x00 0x00 0x00 0xFF 0x5C 0x00 0x00 0x00 0xFF 0xF5 
write to 0x38 ack data: 0x08 0x20 0x08 0x20 0x00 0xFF 0x38 0x00 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x0C 0x00 0x00 0xFE 0x30 0x00 0xE2 
write to 0x38 ack data: 0x08 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 
write to 0x38 ack data: 0x08 0x60 0xE8 0x07 0x20 0x08 0x00 0x00 0x06 0xA0 0x00 0xFF 0xE0 0x00 0xC0 0x00 0xFF 0x80 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFE 0xC0 0x22 
write to 0x38 ack data: 0x08 0x80 0x00 0x27 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x1E 0x00 0x00 0xFF 0xE8 0x01 0x20 0x00 0xFF 0xD8 0x01 0x03 0x00 0x00 0x07 0xC6 0x00 0x00 0xFF 0x08 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xA0 0xFF 0xF4 0x00 0x20 0x00 0xFF 0xD8 0x07 0x02 0x00 0x00 0x1D 0x1F 0x20 0x00 0x00 0x0D 0x08 0x22 0x00 0x00 0x00 0x09 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xC0 0x08 0xA0 0x00 0x00 0x10 0x00 0xEA 0x00 0x00 0x20 0x00 0xF2 0x00 0x00 0x10 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 
write to 0x38 ack data: 0x08 0xE0 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 0x00 0xE2 0x00 0x00 0x20 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0A 0x20 0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x5D 0x1F 0x20 0x00 0x00 0x4D 0x08 
write to 0x38 ack data: 0x09 0x20 0x22 0x00 0x00 0x00 0x0C 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 0x0B 0xA0 0x00 0x00 0x50 0x00 0xEA 0x00 0x00 0x60 0x00 0xF2 0x00 0x00 0x50 0x00 0xC0 0x00 
write to 0x38 ack data: 0x09 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 
write to 0x38 ack data: 0x09 0x60 0x00 0xE2 0x00 0x00 0x60 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0D 0x20 
write to 0x38 ack data: 0x09 0x80 0x00 0x00 0x40 0x00 0xE2 0x00 0x00 0x00 0x0E 0x20 0x00 0x00 0x68 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x45 0x08 0x20 0x00 0xFD 0xB8 0x00 0xE2 0x00 0x00 
write to 0x38 ack data: 0x09 0xA0 0x6D 0x08 0x20 0x00 0xFD 0xB0 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xC0 0x0F 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0xC0 0x00 0x00 
write to 0x38 ack data: 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE0 0x00 0x00 0x00 0xFF 0x34 0x00 0x00 0x00 0xFF 0x2C 0x00 0x00 0x00 0xFF 0x54 0x00 0x00 0x00 0xFF 0x5C 0x00 0x00 0x00 0xFF 0xF5 
write to 0x38 ack data: 0x08 0x20 0x08 0x20 0x00 0xFF 0x38 0x00 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x0C 0x00 0x00 0xFE 0x30 0x00 0xE2 
write to 0x38 ack data: 0x08 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 
write to 0x38 ack data: 0x08 0x60 0xE8 0x07 0x20 0x08 0x00 0x00 0x06 0xA0 0x00 0xFF 0xE0 0x00 0xC0 0x00 0xFF 0x80 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFE 0xC0 0x22 
write to 0x38 ack data: 0x08 0x80 0x00 0x27 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x1E 0x00 0x00 0xFF 0xE8 0x01 0x20 0x00 0xFF 0xD8 0x01 0x03 0x00 0x00 0x07 0xC6 0x00 0x00 0xFF 0x08 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xA0 0xFF 0xF4 0x00 0x20 0x00 0xFF 0xD8 0x07 0x02 0x00 0x00 0x1D 0x1F 0x20 0x00 0x00 0x0D 0x08 0x22 0x00 0x00 0x00 0x09 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xC0 0x08 0xA0 0x00 0x00 0x10 0x00 0xEA 0x00 0x00 0x20 0x00 0xF2 0x00 0x00 0x10 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 
write to 0x38 ack data: 0x08 0xE0 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 0x00 0xE2 0x00 0x00 0x20 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0A 0x20 0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x5D 0x1F 0x20 0x00 0x00 0x4D 0x08 
write to 0x38 ack data: 0x09 0x20 0x22 0x00 0x00 0x00 0x0C 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 0x0B 0xA0 0x00 0x00 0x50 0x00 0xEA 0x00 0x00 0x60 0x00 0xF2 0x00 0x00 0x50 0x00 0xC0 0x00 
write to 0x38 ack data: 0x09 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 
write to 0x38 ack data: 0x09 0x60 0x00 0xE2 0x00 0x00 0x60 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0D 0x20 
write to 0x38 ack data: 0x09 0x80 0x00 0x00 0x40 0x00 0xE2 0x00 0x00 0x00 0x0E 0x20 0x00 0x00 0x68 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x45 0x08 0x20 0x00 0xFD 0xB8 0x00 0xE2 0x00 0x00 
write to 0x38 ack data: 0x09 0xA0 0x6D 0x08 0x20 0x00 0xFD 0xB0 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xC0 0x0F 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0xC0 0x00 0x00 
write to 0x38 ack data: 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE0 0x00 0x00 0x00 0xFF 0x34 0x00 0x00 0x00 0xFF 0x2C 0x00 0x00 0x00 0xFF 0x54 0x00 0x00 0x00 0xFF 0x5C 0x00 0x00 0x00 0xFF 0xF5 
write to 0x38 ack data: 0x08 0x20 0x08 0x20 0x00 0xFF 0x38 0x00 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x0C 0x00 0x00 0xFE 0x30 0x00 0xE2 
write to 0x38 ack data: 0x08 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 
write to 0x38 ack data: 0x08 0x60 0xE8 0x07 0x20 0x08 0x00 0x00 0x06 0xA0 0x00 0xFF 0xE0 0x00 0xC0 0x00 0xFF 0x80 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFE 0xC0 0x22 
write to 0x38 ack data: 0x08 0x80 0x00 0x27 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x1E 0x00 0x00 0xFF 0xE8 0x01 0x20 0x00 0xFF 0xD8 0x01 0x03 0x00 0x00 0x07 0xC6 0x00 0x00 0xFF 0x08 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xA0 0xFF 0xF4 0x00 0x20 0x00 0xFF 0xD8 0x07 0x02 0x00 0x00 0x1D 0x1F 0x20 0x00 0x00 0x0D 0x08 0x22 0x00 0x00 0x00 0x09 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xC0 0x08 0xA0 0x00 0x00 0x10 0x00 0xEA 0x00 0x00 0x20 0x00 0xF2 0x00 0x00 0x10 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 
write to 0x38 ack data: 0x08 0xE0 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 0x00 0xE2 0x00 0x00 0x20 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0A 0x20 0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x5D 0x1F 0x20 0x00 0x00 0x4D 0x08 
write to 0x38 ack data: 0x09 0x20 0x22 0x00 0x00 0x00 0x0C 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 0x0B 0xA0 0x00 0x00 0x50 0x00 0xEA 0x00 0x00 0x60 0x00 0xF2 0x00 0x00 0x50 0x00 0xC0 0x00 
write to 0x38 ack data: 0x09 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 
write to 0x38 ack data: 0x09 0x60 0x00 0xE2 0x00 0x00 0x60 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0D 0x20 
write to 0x38 ack data: 0x09 0x80 0x00 0x00 0x40 0x00 0xE2 0x00 0x00 0x00 0x0E 0x20 0x00 0x00 0x68 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x45 0x08 0x20 0x00 0xFD 0xB8 0x00 0xE2 0x00 0x00 
write to 0x38 ack data: 0x09 0xA0 0x6D 0x08 0x20 0x00 0xFD 0xB0 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xC0 0x0F 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0xC0 0x00 0x00 
write to 0x38 ack data: 0x40 0xF5 0x01 
write to 0x38 ack data: 0x40 0xC0 0x0E 0x3B 0x7F 0x7C 0x01 
write to 0x38 ack data: 0x40 0xC6 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x40 0xE9 0x10 0x00 
write to 0x38 ack data: 0x40 0xD0 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x40 0xEB 0x7F 
write to 0x38 ack data: 0x40 0xF2 0x00 
write to 0x38 ack data: 0x40 0xF3 0x00 
write to 0x38 ack data: 0x40 0xF4 0x00 
write to 0x38 ack data: 0x40 0xF7 0x00 
write to 0x38 ack data: 0x40 0xF8 0x00 
write to 0x38 ack data: 0x40 0xF9 0x7F 0x03 
write to 0x38 ack data: 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE0 0x00 0x00 0x00 0xFF 0x34 0x00 0x00 0x00 0xFF 0x2C 0x00 0x00 0x00 0xFF 0x54 0x00 0x00 0x00 0xFF 0x5C 0x00 0x00 0x00 0xFF 0xF5 
write to 0x38 ack data: 0x08 0x20 0x08 0x20 0x00 0xFF 0x38 0x00 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x0C 0x00 0x00 0xFE 0x30 0x00 0xE2 
write to 0x38 ack data: 0x08 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 
write to 0x38 ack data: 0x08 0x60 0xE8 0x07 0x20 0x08 0x00 0x00 0x06 0xA0 0x00 0xFF 0xE0 0x00 0xC0 0x00 0xFF 0x80 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFE 0xC0 0x22 
write to 0x38 ack data: 0x08 0x80 0x00 0x27 0x00 0x00 0x00 0x00 0x00 0xFE 0xE8 0x1E 0x00 0x00 0xFF 0xE8 0x01 0x20 0x00 0xFF 0xD8 0x01 0x03 0x00 0x00 0x07 0xC6 0x00 0x00 0xFF 0x08 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xA0 0xFF 0xF4 0x00 0x20 0x00 0xFF 0xD8 0x07 0x02 0x00 0x00 0x1D 0x1F 0x20 0x00 0x00 0x0D 0x08 0x22 0x00 0x00 0x00 0x09 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 
write to 0x38 ack data: 0x08 0xC0 0x08 0xA0 0x00 0x00 0x10 0x00 0xEA 0x00 0x00 0x20 0x00 0xF2 0x00 0x00 0x10 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 
write to 0x38 ack data: 0x08 0xE0 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 0x00 0xE2 0x00 0x00 0x20 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0A 0x20 0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x5D 0x1F 0x20 0x00 0x00 0x4D 0x08 
write to 0x38 ack data: 0x09 0x20 0x22 0x00 0x00 0x00 0x0C 0xA0 0x00 0xFF 0xE5 0x18 0x22 0x00 0x00 0x00 0x0B 0xA0 0x00 0x00 0x50 0x00 0xEA 0x00 0x00 0x60 0x00 0xF2 0x00 0x00 0x50 0x00 0xC0 0x00 
write to 0x38 ack data: 0x09 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xEC 0x01 0x21 0x00 0x00 0x04 0x00 0xA1 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xE5 0x08 0x22 0x40 0x00 0x28 
write to 0x38 ack data: 0x09 0x60 0x00 0xE2 0x00 0x00 0x60 0x00 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2F 0xFF 0x20 0x00 0xFF 0xE5 0x08 0x22 0x00 0x00 0x30 0x00 0xE2 0x00 0x00 0x30 0x0D 0x20 
write to 0x38 ack data: 0x09 0x80 0x00 0x00 0x40 0x00 0xE2 0x00 0x00 0x00 0x0E 0x20 0x00 0x00 0x68 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x45 0x08 0x20 0x00 0xFD 0xB8 0x00 0xE2 0x00 0x00 
write to 0x38 ack data: 0x09 0xA0 0x6D 0x08 0x20 0x00 0xFD 0xB0 0x00 0xE2 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFE 0xC0 0x0F 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x09 0xC0 0x00 0x00 
write to 0x38 ack data: 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
write to 0x38 ack data: 0x00 0x20 0x00 0x00 0x00 0xFF 0x00 0x05 0x55 0x55 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0xFF 0x00 0x05 0x55 0x55 0x00 0x80 0x00 0x00 0x07 0xFF 0xE7 0xE1 
write to 0x38 ack data: 0x40 0xEB 0x71 
write to 0x38 ack data: 0x40 0xF6 0x01 
write to 0x38 ack data: 0x40 0x36 0x00 
write to 0x38 ack data: 0x40 0x36 0x03 

4. Code I use to write i2c

void default_download_IC_1() {
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SAMPLE_RATE_SETTING_IC_1_ADDR, REG_SAMPLE_RATE_SETTING_IC_1_BYTE, R0_SAMPLE_RATE_SETTING_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DSP_RUN_REGISTER_IC_1_ADDR, REG_DSP_RUN_REGISTER_IC_1_BYTE, R1_DSP_RUN_REGISTER_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_CLKCTRLREGISTER_IC_1_ADDR, REG_CLKCTRLREGISTER_IC_1_BYTE, R2_CLKCTRLREGISTER_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_PLLCRLREGISTER_IC_1_ADDR, REG_PLLCRLREGISTER_IC_1_BYTE, R3_PLLCRLREGISTER_IC_1_Default );
    wait_for_pll_lock(DEVICE_ADDR_IC_1, REG_PLLCRLREGISTER_IC_1_ADDR, pll_lock);
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SERIAL_PORT_CONTROL_0_IC_1_ADDR , R5_SERIAL_PORT_CONTROL_REGISTERS_IC_1_SIZE, R5_SERIAL_PORT_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_ALC_CONTROL_0_IC_1_ADDR , R6_ALC_CONTROL_REGISTERS_IC_1_SIZE, R6_ALC_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_MICCTRLREGISTER_IC_1_ADDR, REG_MICCTRLREGISTER_IC_1_BYTE, R7_MICCTRLREGISTER_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_RECORD_PWR_MANAGEMENT_IC_1_ADDR , R8_RECORD_INPUT_SIGNAL_PATH_REGISTERS_IC_1_SIZE, R8_RECORD_INPUT_SIGNAL_PATH_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_ADC_CONTROL_0_IC_1_ADDR , R9_ADC_CONTROL_REGISTERS_IC_1_SIZE, R9_ADC_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_PLAYBACK_MIXER_LEFT_CONTROL_0_IC_1_ADDR , R10_PLAYBACK_OUTPUT_SIGNAL_PATH_REGISTERS_IC_1_SIZE,    R10_PLAYBACK_OUTPUT_SIGNAL_PATH_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_CONVERTER_CTRL_0_IC_1_ADDR , R11_CONVERTER_CONTROL_REGISTERS_IC_1_SIZE, R11_CONVERTER_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DAC_CONTROL_0_IC_1_ADDR , R12_DAC_CONTROL_REGISTERS_IC_1_SIZE, R12_DAC_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SERIAL_PORT_PAD_CONTROL_0_IC_1_ADDR , R13_SERIAL_PORT_PAD_CONTROL_REGISTERS_IC_1_SIZE, R13_SERIAL_PORT_PAD_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_COMM_PORT_PAD_CTRL_0_IC_1_ADDR , R14_COMMUNICATION_PORT_PAD_CONTROL_REGISTERS_IC_1_SIZE, R14_COMMUNICATION_PORT_PAD_CONTROL_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_JACKREGISTER_IC_1_ADDR, REG_JACKREGISTER_IC_1_BYTE, R15_JACKREGISTER_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, Program_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, Program_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, Program_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, Program_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, Program_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DSP_ENABLE_REGISTER_IC_1_ADDR, REG_DSP_ENABLE_REGISTER_IC_1_BYTE, R21_DSP_ENABLE_REGISTER_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_CRC_IDEAL_1_IC_1_ADDR , R22_CRC_REGISTERS_IC_1_SIZE, R22_CRC_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_GPIO_0_CONTROL_IC_1_ADDR , R23_GPIO_REGISTERS_IC_1_SIZE, R23_GPIO_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_NON_MODULO_RAM_1_IC_1_ADDR , R24_NON_MODULO_REGISTERS_IC_1_SIZE, R24_NON_MODULO_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_WATCHDOG_ENABLE_IC_1_ADDR , R25_WATCHDOG_REGISTERS_IC_1_SIZE, R25_WATCHDOG_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SAMPLE_RATE_SETTING_IC_1_ADDR, REG_SAMPLE_RATE_SETTING_IC_1_BYTE, R26_SAMPLE_RATE_SETTING_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_ROUTING_MATRIX_INPUTS_IC_1_ADDR, REG_ROUTING_MATRIX_INPUTS_IC_1_BYTE, R27_ROUTING_MATRIX_INPUTS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_ROUTING_MATRIX_OUTPUTS_IC_1_ADDR, REG_ROUTING_MATRIX_OUTPUTS_IC_1_BYTE, R28_ROUTING_MATRIX_OUTPUTS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SERIAL_DATAGPIO_PIN_CONFIG_IC_1_ADDR, REG_SERIAL_DATAGPIO_PIN_CONFIG_IC_1_BYTE, R29_SERIAL_DATAGPIO_PIN_CONFIG_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DSP_SLEW_MODES_IC_1_ADDR, REG_DSP_SLEW_MODES_IC_1_BYTE, R30_DSP_SLEW_MODES_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SERIAL_PORT_SAMPLE_RATE_SETTING_IC_1_ADDR, REG_SERIAL_PORT_SAMPLE_RATE_SETTING_IC_1_BYTE, R31_SERIAL_PORT_SAMPLE_RATE_SETTING_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_CLOCK_ENABLE_REG_0_IC_1_ADDR , R32_CLOCK_ENABLE_REGISTERS_IC_1_SIZE, R32_CLOCK_ENABLE_REGISTERS_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, Program_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PARAM_ADDR_IC_1, PARAM_SIZE_IC_1, Param_Data_IC_1 );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_SAMPLE_RATE_SETTING_IC_1_ADDR, REG_SAMPLE_RATE_SETTING_IC_1_BYTE, R35_SAMPLE_RATE_SETTING_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DSP_RUN_REGISTER_IC_1_ADDR, REG_DSP_RUN_REGISTER_IC_1_BYTE, R36_DSP_RUN_REGISTER_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DEJITTER_REGISTER_CONTROL_IC_1_ADDR, REG_DEJITTER_REGISTER_CONTROL_IC_1_BYTE, R37_DEJITTER_REGISTER_CONTROL_IC_1_Default );
    SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_DEJITTER_REGISTER_CONTROL_IC_1_ADDR, REG_DEJITTER_REGISTER_CONTROL_IC_1_BYTE, R38_DEJITTER_REGISTER_CONTROL_IC_1_Default );
}
#endif

(Sorry, Insert code by the website wasn´t working, so I put it directly into the post)

Best regards,
Contax

  • Hello Contax,

    I have quickly created a passthrough project and tried to boot the 1761 from MCU. It works fine for me, maybe you should try my project (code) and see if it works for you.

    Below is my sigma studio schematic.

    I have three DC cells for reading a known value by uC, just to know if my uC reads/works correctly.

    Then I have two GPIOs which act as an input.

    The GPIO0 is used to choose between the ADC input and oscillator input.

    The GPIO1 is used to choose if the input should go thru or bypass the filter.

    The DAC output is routed to LOUTP, LOUTN, ROUTP, ROUTN, and I can listen to the outputs from the headphone jack of my eval board.

    Below is the code that uses I2C to boot the 1761, my DSP's I2C address is setup for 0x70.

    1761_mcu_boot_arduino.zip

    1761_mcu_boot.dspproj

    Please have a try and let us know about how it goes.

    Regards,

    Harish

  • Hi Harish,

    thanks for your reply.

    I tried your project and modificated it a little bit, cause I don´t use the gpios as gpios.  I exchanged them with simple switches and turned them on. I used diffrent values for the DC 1,2,3 for making it simple.

    so my i2c reading seems to be off:

    11538,1727215400.00,Address write: 70
    11539,1727285600.00,Write
    11540,1727295600.00,ACK
    11541,1727315600.00,Data write: 00
    11542,1727395800.00,ACK
    11543,1727415800.00,Data write: 0C
    11544,1727496000.00,ACK
    11545,1727540600.00,Start repeat
    11546,1727565600.00,Address read: 71
    11547,1727635800.00,Read
    11548,1727645800.00,ACK
    11549,1727655800.00,Data read: 08
    11550,1727735800.00,ACK
    11551,1727745800.00,Data read: 3D
    11552,1727826000.00,ACK
    11553,1727836000.00,Data read: 2D
    11554,1727916200.00,ACK
    11555,1727926200.00,Data read: BF
    11556,1728006200.00,NACK
    11557,1728031400.00,Stop
    11558,1728076000.00,Start
    11559,1728101000.00,Address write: 70
    11560,1728171000.00,Write
    11561,1728181000.00,ACK
    11562,1728201200.00,Data write: 00
    11563,1728281200.00,ACK
    11564,1728301400.00,Data write: 0D
    11565,1728381400.00,ACK
    11566,1728426000.00,Start repeat
    11567,1728451000.00,Address read: 71
    11568,1728521200.00,Read
    11569,1728531200.00,ACK
    11570,1728541200.00,Data read: 09
    11571,1728621400.00,ACK
    11572,1728631400.00,Data read: DF
    11573,1728711400.00,ACK
    11574,1728721400.00,Data read: 49
    11575,1728801600.00,ACK
    11576,1728811600.00,Data read: BB
    11577,1728891800.00,NACK
    11578,1728916800.00,Stop
    11579,1728961400.00,Start
    11580,1728986400.00,Address write: 70
    11581,1729056600.00,Write
    11582,1729066600.00,ACK
    11583,1729086600.00,Data write: 00
    11584,1729166800.00,ACK
    11585,1729186800.00,Data write: 0B
    11586,1729267000.00,ACK
    11587,1729311600.00,Start repeat
    11588,1729336600.00,Address read: 71
    11589,1729406600.00,Read
    11590,1729416600.00,ACK
    11591,1729426800.00,Data read: 0B
    11592,1729506800.00,ACK
    11593,1729516800.00,Data read: A9
    11594,1729597000.00,ACK
    11595,1729607000.00,Data read: 1C
    11596,1729687000.00,ACK
    11597,1729697000.00,Data read: EF
    11598,1729777200.00,NACK
    11599,1729802200.00,Stop

    1. DC 0x000C with values written: 0x00,0x08,0x00,0x00  and I read 0x08,0x3D,0x2D,0xBF

    2.DC 0x000D with written 0x01,0x00,0x00,0x00 and I read 0x09,0xDF,0x40,0xBB

    3.DC 0x000B with written 0x01,0x08,0x00,0x00 and I read 0x=B,0xA9,0x1C,0xEF

    So the DSP isn´t working?

    Regards,

    Contax

  • Hello Contax,

    Sorry for the delay in reply.

    Do you have a USBi module?

    So the DSP isn´t working?

    I don't come to this conclusion this early. we will have to first check if the DSP is programmed and running properly. The chances are most likely that the MCU fails to boot the sigmaDSP and the DSP isn't running at all.

    If you have a USBi then by connecting and using sigma studio we can debug this easily like if the issue is communicating between two parts or some other things.

    So, was this DSP running before or this is first time you are trying to program it?

    Regards,

    Harish

  • Hey Harish,

    unfortunately I don´t have a USBi.

    This DSP was running bevor on another PCB with another task (3 Mics with headphone output) in combination with another MCU(Renesas).

    So now I have two PCBs and a new MCU : 
    1. NRF5340+ADAU1787 working with no problem.
    2. NRF5340 + ADAU1761 not working.


    Basicly the software for writing with I2C is the same on both boards, except that I use the diffrent outputfiles from the diffrent Sigmastudio projects (diffrent registers, diffrent DSPs etc.). Both DSPs have also diffrent I2C adrresses.

    I think the ADAU1761 is running in kind of a way or what is the reason of getting all the ACK and that I can read out the PLL lock?

    Regards,

    Contax

  • Hello Contax,

    Harish and I have been communicating. I am jumping in here to see if I can help out. 

    There are a few details that is tough for me to see if you are doing this upon startup. 

    I cannot tell the actual data values you are sending. 

    Page 45 of the datasheet talks about startup. You are doing most of this but one detail I noticed is that you are doing step 4 and 5 in the opposite order. Like I said above, I do not know what values you are sending. Here is the section of the datasheet:

    The next few details have to do with powerup and again, I have no way to see that on your board. This part has no reset pin so that simplifies things a little. (but I still wish it had a reset pin AND a soft reset! I was not the apps engineer on this part or I would have made some noise in the meetings!) 

    So how long are you waiting before starting to write to the part? Here is the detail in the datasheet on page 24. 

    The PLL lock time is also talked about right after this section but you are just looking for the PLL lock bit to be asserted so I have no issue with that. You should be fine there. 

    Now, on to a few other topics which have nothing to do with the DSP not running but I have to comment on.

    I can sum it up in a simple sentence. You are clipping the HELL out of the Left DAC and both analog outputs!!!

    OK, let's start with the DSP program. Hey, I understand this is just a quick test program but I want you, and others, to be aware of these details. By the way, that said, I REALLY like that you are taking this one step at a time and just sending an osc out of the DAC and trying to get that working first! Yay! get a simple program working first. This aligns with my troubleshooting video. 

    Your program:

    I love that it is simple. You do not have meters which would be handy to try to read but since you are not using a USBi it is a little more difficult but your controller could read a meter. 

    My big issue is the left channel. You are adding 24dB!!!! The oscillator output levels are exactly a full-scale 24 bit signal. In the DSP core this is a 1.23 bit position. There are four headroom bits which is 4 x 6.02dB=  24.08dB of headroom. You are adding 24.082dB which is exactly full scale for the 28 bits in the core. However, the core outputs go through a truncator to truncate the 28 bits to 24 bits to send to the 24 bit DACs. So you are sending a horribly clipped square wave out of the DAC. This is the left DAC. 

    But it gets worse....

    What I am going to show next is for the left channel but both channels are setup the same exact way.

    You are summing BOTH of the DACs into the left channel mixer!! So you are taking this clipped left channel signal and adding even more level to it with the full scale right channel audio. I am fairly certain this will clip the mixer.

    Then it gets worse:

    You take this horribly clipped mixer output and adding 6dB to it! Then you add to it the output of the right channel mixer which is setup the same way, mono of both left and right, and adding 6dB then adding these together!!!

    Then you send that to the line output fader and again, adding 6dB!!! So you will have a lovely 1kHZ square wave output. 

    On both channels!!

    So once you get the core running, then fix all these gain issues. 

    Back to getting the core running. I suggest you put in a DC cell and a Readback. 

    Then have your controller read the readback and see if you get the correct number?

    Then write to the DC cell value and then read the readback again and see if it changed? 

    These blocks are exposed in the parameters list so it is simple to read and write to them.

     

    These are my thoughts for now.

    Dave T

  • Hey Dave,

    thank you for youre reply.

    I can measure 1,5V at DVDOUT so it should´t stuck in POR.
    Startuptime of the nrf5340 is about 300-900 ms so I2C writings starting alot after the startup of the adau.

    I din´t changed the order of the register writings, this comes straight out of SigmaStudio, but I see what you are pointing at.

    40F5 0x71    (48 khz)
    40F6 0x01     (DSP run enable)

    These are both values I´m writing to the rigisters. 
    I change the order of them both, but it made no diffrence for getting a signal from the DSP outputs.

    Sorry, I just recognized now, that the I2C analyzer log from the first post was the log from the adau1787 not from the 1761, thats why the adress is 0x38. You can just ignore that.

    Than I setup a Programm with only the DC and one Readback:

    /* Module DC1_2 - DC Input Entry*/
    #define MOD_DC1_2_COUNT                                1
    #define MOD_DC1_2_DEVICE                               "IC1"
    #define MOD_DC1_2_DCINPALG2_ADDR                       8
    #define MOD_DC1_2_DCINPALG2_FIXPT                      0x00800000
    #define MOD_DC1_2_DCINPALG2_VALUE                      SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1)
    #define MOD_DC1_2_DCINPALG2_TYPE                       SIGMASTUDIOTYPE_FIXPOINT

    /* Module ReadBack1_3 - DSP Readback*/
    #define MOD_READBACK1_3_COUNT                          1
    #define MOD_READBACK1_3_DEVICE                         "IC1"
    #define MOD_READBACK1_3_READBACKALGSIGMA2001_ADDR      9
    #define MOD_READBACK1_3_READBACKALGSIGMA2001_FIXPT     0x00000000
    #define MOD_READBACK1_3_READBACKALGSIGMA2001_VALUE     SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0)
    #define MOD_READBACK1_3_READBACKALGSIGMA2001_TYPE      SIGMASTUDIOTYPE_FIXPOINT
    I set the DC to Value 1.
    At the end of my I2C programming code, I put these lines:
    //READ DC BOCK
        SIGMA_READ_REGISTER_BLOCK(DEVICE_ADDR_IC_1, REG_ENTRY_1_IC_1_ADDR, REG_ENTRY_1_IC_1_BYTE, entry_1);
    //READ READ BLOCK
        SIGMA_READ_REGISTER_BLOCK(DEVICE_ADDR_IC_1, REG_ENTRY_2_IC_1_ADDR, REG_ENTRY_2_IC_1_BYTE, entry_2); 
    //WRITE DC BLOCK
        SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_ENTRY_1_IC_1_ADDR, REG_ENTRY_2_IC_1_BYTE, DC_BLOCK );
    //READ DC BLOCK
        SIGMA_READ_REGISTER_BLOCK(DEVICE_ADDR_IC_1, REG_ENTRY_1_IC_1_ADDR, REG_ENTRY_1_IC_1_BYTE, entry_1);
    //READ READ BLOCK
        SIGMA_READ_REGISTER_BLOCK(DEVICE_ADDR_IC_1, REG_ENTRY_2_IC_1_ADDR, REG_ENTRY_2_IC_1_BYTE, entry_2);
    My I2C analyzer could read this: 
    REG: 0008  READ DATA 0D,5C,E9,6B // READ DC BLOCK
    REG: 0009  READ DATA  09,69,4C,CB //READ READ BLOCK
    REG: 0008 WRITE DATA 00,02,00,00 //WRITE DC BLOCK
    REG: 0008 READ DATA 00,02,00,00 //READ DC BLOCK
    REG: 0009 READ DATA 09,69,4C,CB //READ READ BLOCK


    So I think writing the DC block works, but maybe I use the Read block wrong? Does it stay in continous read ? I left it in the standard setting, because the dot in your screenshot is also blue.

    And thanks for the explanation of the gains, it was just the last desprate outcome of trying to get somthing out of this IC :( .
    It started with just the OSC->DAC0 and the routing from LDAC -> LOUTP  without the other routes activated and no gain block inserted.

    Best regards,
    Contax