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

Multiple 1701 chips with only one self-boot EEPROM?

SigmaDSP & SigmaStudio chmed Dec 10, 2015 00:00 3 replies Original on forum ↗
Subscribe
chmed Question
Dec 10, 2015 00:00

I'm looking at a design using four 1701 chips on one board that all need to run the same "programming". I'm curious if there is a way to use one EEPROM chip for all the devices without adding a micro-controller to the fray. The two reasons would be A) save space on the board (both the EEPROMs as well as possibly the connector headers for the usbi connector) B) only one eeprom to program when/if changes are necessary. Secondly, am I asking for trouble with 4 units on one board with regard to interaction between the parts?

Audio Signal Processors

eeprom

SigmaDSP Audio Processors

adau1701

DaveThib Reply
Dec 11, 2015 00:00

Hello Warren,

That is a good question and I had to think about this for a bit. What have done in the past here in the lab was to program about 8 or 10 eval boards all at one time using a USBi. It actually works quite well using I2C. It sends out the commands to all the boards then when it is time for an ACK as long as one of them provides the ACK then the programming continues. Every once in a while one will mess up and not receive the entire program but it is not often. This is no big deal for us, we just try again, but for a product, that would not be a good situation. So this is I2C where the ACK is a pull down of the line. So no contention is going on.

So if you had one controller you could boot up all of them at once and then poll a GPIO pin on each DSP to see if they all got it then repeat if it did not but there are no guarantees that it would work reliably. Understand that you are on your own here, ADI's official response will be not to do this.

So now to turn this around and have the DSP be the master, which is what you are wanting to do,... now we have issues. If they all got the same MCLK and were powered up at exactly the same time, then maybe they would be in sync and all try to write a command to the EEPROM at the exact time. In reality, I don't see that happening. I suppose you could only hook up one of the clock lines to the EEPROM and have only one DSP drive. Then run the data out of the EEPROM to all the DSP SDA pins. Then you will not see clock contention but internally, the DSP serial clock will have to be in sync.

So you could try it but I think it will not work.

I think you will need to have four EEPROMs.

I think another way to deal with this may be to use a small uC to only boot up the parts then go to sleep. I had written an APP note doing this for a Codec, AN-1365, but it was not as complicated as loading in a DSP program but it can be done.

Now regarding the interaction between parts on the same board.

This is always something to watch out for. You should be clocking them all off of the same clock. Having them all run off their own crystals will cause beating issues with the clocks. So if they are all running off of the same MCLK then that will help. Having the LRCLK synchronized is not as important but probably not a bad idea.

What will be important it proper power and ground planes, at least a four layer board. Proper transmission line terminations of the clock lines to prevent signal integrity issues. This will all help reduce the problems of having four of these on one board.

Dave T

jon71 Reply
Dec 11, 2015 00:00

At least you shouldn't need multiple headers. If you use extra pins on a single header as SDA/SCL jumpers (or use a physical or logical jumper switch), then you should be able to program all of the EEPROMs from a single header. I think that is doable with a single 14 pin header, because the USBi doesn't use all 10 pins on the stock header to program the ADAU1701. It could be done with fewer pins with logic switching; I think just six.

Then when you remove the custom header/USBi cable, all of the EEPROMs/1701s will be independent for the self-boot function.

That's if the programs are completely identical. Otherwise, you'd also need a mechanism for temporarily switching the EEPROM addresses while programming.

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin