2019-02-16 10:02 AM
I need to program a large array of STM32F730s from a single master STM32F730. ST seems to have lots of applications notes on using bootloaders to pull code into these devices, and also on using STM-LInk to push code in.
But what I need to do is push the code from the master to the slaves. The only thing I can find is using a JTAG port on each device which would be prohibitive from the number of connections. Is it possible to push code into Flash using the USART which I think is what some of the Discovery boards do, and if so can someone point me to the application note on it please.
2019-02-16 10:32 AM
Use the System Loader via the USART, see AN2606 and AN3155
Protocol isn't particularly complex, and probably an assortment of open source versions if you Google hard enough, I wrote my own from the docs.
You could push something into RAM and do some more interesting things too.
2019-02-16 12:37 PM
Thanks. But these again seem to be using the bootloader which is a pull process controlled by the target device. I want to send a bitstream pushed from the master device and have it programmed into all (many tens) of the slave devices in parallel, so they effectively need to be a dumb 'do as I'm told' mode. For Atmel devices you just prod the UPDI single line port with the bit stream and it all works so really after something similar. Obviously you have to check they all programmmed successfully individually afterwards but that's a few milliseconds as I just have them do a checksum calculation and signal true or false.
Writing to SRAM as an intermediate might work though - can the device flash an image from its own RAM ? Can't see that in any of the docs but doesn't mean it can't be done.
2019-02-16 12:45 PM
Sound like a Gang programmer ?
What are the targets preloaded with initially in flash?
If they are, IAP (in application programming)?
2019-02-16 12:47 PM
The host can push the target ROM boot loader through it's sequences, you could write to multiple chips at once, and listen to the response of one, or mux at your discretion.
You can put you own small loader in RAM/FLASH, and it can do anything you want with the hardware. FLASH is programmed through a peripheral interface to the array controller.
2019-02-16 12:49 PM
They are on the same PCB and running at the time so its a gang programming IAP :)
The master has a large flash on the QuadSPI ports and needs to send images to each of the slaves depending on what they need to be doing at the time. That's the downside of these low cost devices only having 64k. But each module only takes about 20 to 40k so it does make econonic sense if I can make it work.
2019-02-16 12:51 PM
Thanks Clive - I'll have another read as writing to RAM and then sending to Flash is probably what I want. Indeed wondering if I even need to use Flash at all. Why have these devices got so much RAM and not much Flash - most other manufacturers it's the other way around.
2019-02-16 01:45 PM
Suspect the die has 1 or 2MB on it. Likely minimally tested as the FLASH takes a lot of tester time, might be fused out of view, or just hiding in the shadows.
2019-02-16 01:47 PM
Possible. But at $3 a time these are an absolute bargain in bang/buck.
2019-02-16 02:20 PM
The F750 looks based on the F746 core, and the F740 off the F722
The H750 is also quite a beast, that will clock north of 500 MHz