I've got a custom board which uses a microcontroller to boot a BF538 (non-F) DSP. I've used this DSP in plenty of other applications with great success, but haven't yet used the SPI slave boot mode. And the thing's giving me grief.
Here's the goods:
- /RESET is driven by the microcontroller.
- A microcontroller GPIO pin is connected to PF0, to be used as the chip select for booting.
- SCK0/MOSI0/MISO0 are connected to the microcontroller's SPI interface.
- PF2 is used as the HWAIT signal, with a 4.7K pulldown resistor. PF2 is set as HWAIT in the VisualDSP loader options.
- CLKIN is a 10MHz CMOS clock.
And my boot sequence:
- I lift /RESET, and wait 500ms. There's no described time delay in the datasheet, so I figure half a second is more than plenty.
- I lower /CS (PF0), wait 10ms.
- I start transferring my LDR file to the DSP. I'm using SPI mode 0 at a 125KHz SPI baud rate.
And it doesn't seem to work. My application doesn't run, and HWAIT never goes high. The data I'm seeing on the SPI interface perfectly matches what's in the LDR file, so I'm sure I'm feeding the DSP the correct data.
The LDR file is pretty simple (blinks a GPIO at 2Hz), but it also has a second stage loader which enables the PLL for 500MHz operation. I'd assume that the boot ROM will set HWAIT high while executing any second stage code, so I don't think it's making it this far into the boot process.
Anyone have any experience successfully getting this to work?