I have an EVAL-ADAU144XEB board. I use SigmaStudio 4.2 and USBi to communicate with the board and the board works fine, except that I cannot get self-boot working. When I reset the board, nothing happens except D4 COMMS is flashing.
I can write to the onboard Microchip 24AA256 EEPROM from SigmaStudio and I can read out the contents of the EEPROM. The board has the R164 and R165 2k resistors mounted.
I have set the selfboot pin to "1" using the S2 switch, like shown here:
I have set the page size to 64 and the number of address bytes to 2.
I have tried removing the USBi before booting, like suggested here:
The schematic I have used for testing contains a single high-pass filter between input pin 0 and output pin 0. When the selfboot pin is enabled, "Link Compile Download" in SigmaStudio does not work, i.e. the effect is not audible. Is this functionality and selfboot supposed to be mutual exclusive?
I am wondering if it is not working because:
1) The ADAU1442 chip simply does not read the EEPROM at boot. If this is likely, how can I check it?
2) The stored data on the EEPROM is in a wrong format or something is missing. Should I use another page size and number of address bytes?
Make sure that S2-6 is set to "Off" so that the selfboot pin is high. The "ON" position of the switch grounds the pin.
Also, the two address pins are also on S2, S2-7 and S2-8. Those should be set to "ON" so that both address pins are low and the base address is being used for booting.
It looks like you checked the pull-up resistors. There are also jumpers to connect the EEPROM, LK15 and LK16 on the revision of my eval board. Rev C.
The default page size of 32 bytes should work but the other post mentioned raising it to 64. So I think you have done most of what I can think of that would cause a problem.
You do not have to remove the USBi for the selfboot to work. What you do have to do is make certain that the USBi is not trying to communicate with the DSP. This would be happening if any of the readback cells are set to continuous read or if there are meters in the project that are turned on. This would cause a collision with the bus and when the I2C port changes from a slave to a master for booting it cannot respond as a slave. SO certainly disconnecting the USBi is not a bad thing to do.
Once the part is booted then you can click on Link/Compile/Connect to compile the project and have SigmaStudio just control the program without loading it into the DSP. The project loaded into SigmaStudio MUST be the exact same project that resides on the EEPROM.
Have you placed a scope on the CLK and SDA lines to see if it is trying to boot and if there is other traffic on the bus?
So with this all said, Can you zip up your project and attach it? I can test the project here to see if it loads here and to see if there is an issue with the project itself.
I think all my S2 settings were right and I had LK15 and LK16 jumpers connected. I have not tried placing a scope on CLK and SDA lines yet. Unfortunately, I have run into a new problem. After fiddling around with the S2 selfboot switch and trying various things in SigmaStudio, I no longer have audio output from the board. I can communicate with the DSP and the board seems to work but there is no analog audio out (I have not tried spdif yet). I do not know if the board has become defective or it is a matter of configuring the DSP registers correctly. Do you have any idea what could be wrong?
Do you have a simple step-by-step guide for a configuration that should definitely work?
I have tried following the old QuickStart guide but no luck.
It is actually difficult to kill these eval boards but I do have some bad ones here but then we do tend to beat them up here and modify them!
I just tested this project on my Rev C eval board. Stock, no mods. This project will take audio in from analog input 0,1 and send it out on analog output 0/1. I have audio from my computer and headphones on the output. The project does have an EEPROM in it and it is set to the default settings. I was able to program the EEPROM and boot from it. All while the USBi was connected and then I was able to control the program from SigmaStudio after it selfbooted. There is also an oscillator in the project so you can switch to that internal source to just start with one direction of audio.
ADAU1442 Basic Project.zip
Thank you so much Dave! You have saved my day.
The project you have sent me works as you described: - I get audio through - I am able to program the EEPROM and I can just use the default page size of 32 bytes- Selfboot from the EEPROM is working- I do not need to unplug the USBi and I can change the parameters after boot
The reason there was no audio was that somehow I had modified the DSP registers and all the "Master clk enable" (DSP Register Modes 3 tab) settings had been disabled. I think it happened because at some point I pressed "Read All Registers from DSP", the read failed and I ended up with some bogus register settings that I accidently saved.I am not sure what caused the selfboot functionality to work now but perhaps also some DSP register settings. Of course, this would be nice to know for future reference.
Great, glad you are up and running. You are correct that you may have clicked "Read All Registers" at a time when either power was not applied to the part or some other setting on the eval board was wrong.
However, I usually see this happening when using SPI instead of I2C. Because I2C will only try to communicate the first message and if it gets a NAK it stops. With SPI it happily reads all zeros if there is no power or all "1"s when something like the chip address is wrong. Then ALL of the registers in the part get set to zeros or ones. For parts like these with a lot of registers it is bad. So I only carefully use that command and I make sure the project is saved before I do that. Then I do not save over it if something went wrong.
I learned this because I have done it myself!
What I place in all my projects are a DC cell connected to a readback cell. This can then be used to test communications with the DSP. If you click READ then you should see the value in the DC cell in the readback. If you get garbage then something is wrong. You can also change the DC value and read it and it should also change. It is in the project I sent over. It is on the upper left above the input cell. The only purpose is to test communication and can be deleted if MIPS are needed.
Hope the rest of your project goes well!