This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

bootloader and SPI

Hi, 

 I try to flash an application and booting from SPI flash.

This works well when there is only C5535 board plugged.

When I plug our  SPI module and doing a boot (unplug/plug the USB connector), the program does not work.

I suspect a SPI problem so:

I probe on oscilloscope SPI_CS0 (flash), SPI_CS1 and SPI_CS2. During the boot procedure, I saw that every SPI_CS goes on high level, that introduce some conflicts when my SPI module is plugged (CS active on high state) 

 

My question is: why every CS is going on high level during the bootloader procedure, can we only activate SPI_CS0 during the boot procedure ?

Any idea ?

  • C5535 uses only SPI CS0 for boot and the device must act as an SPI slave. You can refer to the bootloader apps note.

    Regards.

  • Hi,

    The SPI chip select from the DSP assumes active low logic. We recommend pull-ups on each of the SPI CS pins.

    During boot, the SPI_CS0 signal goes low, and you should see SPI_CLK and SPI_TX and SPI_RX toggle. After boot is complete SPI_CS0 goes high.

    Can you verify this behavior, and verify that SPI CS1, CS2, CS3 are high during this boot access?

    Do you actually have an active high chip select input for your SPI module? Maybe you can gate the chip select other CS signals until after booting with some off-chip logic.

    The polarity of each chip select is configurable in SPIDCR1 and SPIDCR2. But you cannot write to the register to change polarity until booting has begun...

    Hope this helps,
    Mark