How do I self-boot multiple SigmaDSPs in a single system?
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?
i2c
eeprom
microcontroller
SigmaDSP
selfboot
self-boot
Show More
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:
EEPROM2’s address pin (such that, when grounded, it sets the address to 0xA0)
DSP1’s reset line
EEPROM1’s address pin (such that, when grounded, it sets the address to 0xA0)
DSP2’s reset line
Now, there are five steps in the boot sequence:
Bring EEPROM2’s address pin high.
Bring DSP1’s reset line high. It will self-boot from EEPROM1.
Bring EEPROM1’s address pin high.
Bring EEPROM2’s address pin low.
Bring DSP2’s reset line high. It will self-boot from EEPROM2.
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:
An address pin on EEPROM2 (such that, when grounded, it sets the address to 0xA0)
The second GPIO, “GPIO2,” should connect to:
The reset line on DSP1 (active low)
The third GPIO, “GPIO3,” should connect to:
An address pin on EEPROM1 (such that, when grounded, it sets the address to 0xA0)
and
The reset line on DSP2 (active low)
When the microcontroller first boots, the GPIOS should be held low so that both DSPs are disabled. Then, follow this sequence:
Bring GPIO1 high. This will change the address on EEPROM2 so it is no longer 0xA0.
Bring GPIO2 high. This will bring DSP1 out of reset. It will self-boot using EEPROM1.
Bring GPIO1 low. This will change the address on EEPROM2 so it is 0xA0.
Bring GPIO3 high. This will set the address of EEPROM1 to something other than 0xA0. DSP2 will self-boot from EEPROM2.
This question has been closed by the EZ team and is assumed answered.
Please log in to reply.