ΣSigmaStudio Ask AI Русский Log in

Selfboot / Non-Selfboot Addresses

SigmaDSP & SigmaStudio tomcarlson Apr 16, 2012 00:00 1 replies Original on forum ↗
Subscribe
tomcarlson Question
Apr 16, 2012 00:00

I'm using the ADAU1446

I have a board up and running. Everything seems fine, except that what I am doing to make it work doesn't seem to jive with the datasheet.

I have selfboot pulled high through a 10K resistor. I do not wish to selfboot. I wish to load the program from my MCU, which is what I'm doing. However, to make it work, I had to pull selfboot high. When I pull selfboot low, I can't load my program.

My procedure is as follows.

My MCU is in control of the DSP reset line

The MCU holds reset .low for a second, to wait for power to stabilize.

The MCU then sets reset to 1

The MCU waits 500msec to wait for DSP to stabilize out of reset

The MCU writes the the program to the DSP at address 0x70

Later, the MCU successfully writes and reads parameters from the DSP with no problems, at addresses 0x70 and 0x71

Why is this working? According to the datasheet, if selfboot is high when the DSP comes out of reset, then it is in selfboot mode and can later be addressed at 0x68 and 0x69. Is this correct? Since my selfboot pin is high, I would not expect 0x70 and 0x71 to work, but those are the addresses that are working. Is there a problem with the datasheet for the ADAU1446?

Audio Signal Processors

adau1446

SigmaDSP Audio Processors

ADIApproved Reply
Apr 17, 2012 00:00

Hello,

I reviewed the datasheet and everything looks to be correct.

You shouldn't need to pull selfboot high in order to access the chip over the control port. Please try grounding selfboot.

The default addresses for the ADAU144x are as follows:

7-bit addresses 0x38 through 0x3B (plus read/write bit)

ADDR0 = GND, ADDR1 = GND

Address 0x38

01110000 write, 01110001 read

0x70 write, 0x71 read

ADDR0 = 3.3 V, ADDR1 = GND

Address 0x39

01110010 write, 01110011 read

0x72 write, 0x73 read

ADDR0 = GND, ADDR1 = 3.3 V

Address 0x3A

01110100 write, 01110101 read

0x74 write, 0x75 read

ADDR0 = 3.3 V, ADDR1 = 3.3 V

Address 0x3B

01110110 write, 01110111 read

0x76 write, 0x77 read

When the ADAU144x is self-booting, and only when it is self-booting, it is accessible at 0x68 write, 0x69 read.

However, that is a special mode, and you shouldn't be manually attempting to write at 0x68.

Do you have a USBi that came with the evaluation board? Try connecting its SDA and SCL lines to the I2C bus on your target board and then use SigmaStudio to write and read the DSP. That should be a good sanity check that the addressing is correct.