# FreeDSP (ADAU1701) isn't working - what is the issue?

I had FreeDSP PCB soldered recently and for the last two days I've been struggling to make it work. FreeDSP basically consists of ADAU1701 DSP, 24LC256 EEPROM, 12 MHz oscillator, IO circuits and Arduino Nano that transfers firmware from PC to EEPROM and vice versa.

The problem is, ADAU1701 seems to ignore the firmware located at the EEPROM and doesn't pass anything to the outputs. I have a multimeter and Hantek 6022be oscilloscope and I'd like to check if anything haven't been burnt during soldering and testing.

What's done so far:

1. All pins that should be driven to ground of 3.3v are fine.

2. Current consumption of powered ADAU1701 is 106 mA (quartz enabled) or 60 mA (quartz disabled). The numbers fall in normal range from datasheet.

3. Firmware can be written to EEPROM and can be read by Nano.

Questions:

1. Writing to EEPROM was accidentally done with 4V signals instead of 3.3V. 4V is an absolute maximum for IO as per ADAU1701 datasheet. Was it able to damage the DSP?

2. Pins 13 (1.8V digital supply) and 14 (general purpose IO) were short-circuited for some time. Was it able damage the DSP?

3. Should I be able to verify the quartz using the oscilloscope? Some signal is present, but it's pretty much random.

• Have you hooked up the scope to the (SPI?) data lines between the DSP and the EEPROM to see if the DSP starts reading the data? – JimmyB Apr 4 '16 at 14:04
• @HannoBinder I wasn't able to see anything interesting there. The firmware for ADAU1701 is small (8KB max) and I suspect the data is transferred too fast to notice on the screen. Or there's indeed no transfer. However, Nano to EEPROM write is much slower. Signals of writing are noticeable, malformed rectangular pulses. – Vovanrock2002 Apr 4 '16 at 14:31
• "transferred too fast to notice on the screen" - Isn't your scope able to record samples for later inspection? – JimmyB Apr 4 '16 at 14:57
• @Vovanrock2002 Post scope traces of anything that looks suspicious, we might be able to narrow down a possible issue. Also, what sort of scope are you using? – uint128_t Apr 4 '16 at 15:31
• @HannoBinder thanks for the tip, there's no recording, but it can be triggered. I'll try to use this feature. – Vovanrock2002 Apr 4 '16 at 15:38

## 2 Answers

It appeared to be an EEPROM issue.

In the user guide, "Transfer your program using an Arduino programmer" part is wrong. SigmaStudio's hex file isn't actually a hex file, it's rather a plain text file of comma separated hexadecimal numbers:

0x00 , 0x04 , 0xFF , 0x00 ,
0x0c , 0xC2 , 0xA0 , 0x01 ,
...


So in order to transfer your firmware to EEPROM, this file should first be converted to a real binary file.

As for me, I ended up using a separate EEPROM writer. The writer supported only Intel hex formatted files, so I used this program for conversion.

It appears you didn't use the Arduino Sketch provided by freeDSP and therefore uploaded corrupted values to your EEPROM.

In the user guide, "Transfer your program using an Arduino programmer" describes how to upload your desired EEPROM content using this Arduino-Sketch.

All you need is TeraTerm to transfer the SigmaStudio EEPROM-HEX-File, no additional conversion required in advance.

The conversion is done automatically on the Arduino Nano while uploading. It converts the text-based EEPROM-HEX-File provided by SigmaStudio and transfers the binary values to the freeDSP's EEPROM.

• I did use that sketch, but it didn't work as expected. But I must admit I haven't checked my Nano's I2C or soldering of Nano-to-E2PROM path. – Vovanrock2002 May 15 '16 at 16:03