If there are multiple SigmaDSPs in a system, they will all attempt to boot from an EEPROM at address 0xA0. How can a system with multiple SigmaDSPs use the selfboot function but have unique programs in each SigmaDSP?
Separate I2C Buses
If there is no microcontroller in the system, or if you don’t need to access the DSPs at all from the micro, simply give each SigmaDSP its own I2C bus. It’s as simple as that. The DSPs will simply self-boot from their corresponding EEPROM.
Using GPIOs on the uC to Initiate the Self-Boot Sequence
In the case when your microcontroller actually writes to the SigmaDSPs during the runtime operation of the system (in other words, all devices need to be on the same bus), you can still use self-boot EEPROMs to take the processing load and memory requirements off of the microcontroller. There is a simple solution to this problem, but it requires at least three GPIOs on the microcontroller.
Using 4 GPIOs is the easier method.
Self-Boot Sequence with Four GPIOs:
Connect one GPIO to each of the following:
Now, there are five steps in the boot sequence:
It’s as simple as that.
In case you don’t have many GPIO pins available, I will also describe a similar approach using 3 GPIO pins below.
Self-Boot Sequence with Three GPIOs:
The first GPIO, “GPIO1,” should connect to:
The second GPIO, “GPIO2,” should connect to:
The third GPIO, “GPIO3,” should connect to:
When the microcontroller first boots, the GPIOS should be held low so that both DSPs are disabled. Then, follow this sequence:
Retrieving data ...