Here's a second issue from a troubled mixer prototype. Posting my first issue resulted in some real help, so here goes:
The mixer uses a dsPIC booting six ADAU1701s on two I2C buses (Snow White and nearly seven dwarfs?). It's got the usual jumper arrangement pictured, allowing three DSPs at a time to load either from SigmaStudio, or from the uC. Booting from SigmaStudio, everything works consistently. Booting via the microcontroller, it runs about 90% of the time. We can reset the thing a dozen times, then on the next boot-up one or two of the DSPs fail to run properly. It appears quite random.
Originally the first -1701 to get loaded never came up properly -- this was fixed when we had the uC wait sufficiently before booting the DSPs. Thus we have been adding more delays in various spots within the I2C process, but so far reliability has remained elusive.
Our first product with a PIC-18 uC and one -1701 has proved quite reliable, so both my friend (who writes the uC code) and I are surprised to have so much trouble with this one. We did find out that the PIC-18's I2C port is double-buffered while the dsPIC's ports are not -- but our CCS C compiler has coded their respective I2C routines accordingly. We get ACKs back after each I2C write, but that may not mean much. The I2C buses look clean on a scope. Likely the info I've provided won't point to a solution unless someone has run into similar circumstances -- which is what I'm hoping for. In the meantime we'll just keep guzzling coffee and banging our heads against the wall.
Best regards,
Bob