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

How do I self-boot multiple SigmaDSPs in a single system?

SigmaDSP & SigmaStudio ADIApproved Dec 7, 2010 00:00 2 replies Original on forum ↗
Subscribe
ADIApproved Question
Dec 7, 2010 00:00

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

ADIApproved Reply
Dec 7, 2010 00:00

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.

EZAdministrator Reply
Apr 29, 2019 00:00

This question has been closed by the EZ team and is assumed answered.