I'm using the ADAU1761 and Sigma Studio v3.11. I have done several successful Sigma designs over the years, but this has me befuddled.
I have custom hardware which seems to work fine when using the USBi interface. Using a simple pass-thru program with only a single fader, I can pass audio and change parameters no problem.
In previous designs, I have always been able to take the Sigma Studio capture data output and use it to get my custom firmware control code working. However, in this case I am running into some difficulty. If I load the dsp program using the USBi interface, then copy all the register values and writing sequence into my MCU firmware, it appears to work as long as my HW is not power cycled. I can even reset my MCU, which has its own power-up sequence for turning on the dsps, and all is well. But if I kill the power supply, I cannot get audio to pass even though the code has not changed. For the reset case, it's as though the dsps are retaining their program even though they've been powered down. Bizarre...
So in troubleshooting, I noticed that the Sigma capture output has 5 sections of code labeled "program clear block" which are numbered 0 thru 4. Each block is all zeros, starting at address 0x0800, written in 4x 1020-byte chunks (each corresponding to 204 5-byte instructions) and 1x 15-byte chunk (equiv of 3 instructions). If I've done my arithmetic correctly, this adds up to 819 40-byte null instructions.
So here are my questions:
1. Why doesn't the program clear all 1024 instructions?
2. What prompted this feature to be added to Sigma Studio?
3. As I have never needed to do this before, is it necessary? When should it be used?
4. Could my issue possibly be related to NOT including these clearing blocks in my code?
Appreciate any help you can offer.