Electronics > Projects, Designs, and Technical Stuff
Debugging and/or flashing multiple microcontrollers
Dr_Neoo:
Hello,
I'm working on a system which will exsist of multiple microcontroller (STM32). The boards will not be easily accessible once installed and I have been considering different solution on how to program or debug each one after installation. Some of the ideas I have considered so far are:
* Simply breaking out each SWD header to a connector and using this with an external debugger. Biggest downside is need for a large connector.
* Using a bootloader via uart/can/usb. Downside is loosing debugger functionality and is not guranteed to reduce wiring.
* Creating an internal PCB with an embedded usb hub and one ST-Link or similar debugger for every microcontroller in the system. Seems like the best solution but I'm unsure how running through a hub will affect the debuggers?
The system is a one-off and will be used for development so cost isn't the main consern. The focus is getting something that can be integrated in a small space without large amount of time needed to develop it.
How would you go about solving this? I'm sure there are a lot of possible solutions I have not considered so I look forward to hear your thoughts!
Prehistoricman:
How about having a tristate buffer on each micro that gets switched on when you want to talk to that specific micro? The enable signal can go via a shift register to achieve only 2 wires for n devices.
Scrts:
AFAIK normal JTAG requires a 10 pin header? Just route as a normal daisy chained JTAG going from TDI to TDO and routing TCK and TMS to each device...
SiliconWizard:
--- Quote from: Scrts on February 27, 2020, 04:09:27 pm ---AFAIK normal JTAG requires a 10 pin header? Just route as a normal daisy chained JTAG going from TDI to TDO and routing TCK and TMS to each device...
--- End quote ---
That would work for normal JTAG, but not for SWD. There is no easy way to daisy-chain SWD. But you can handle this with some extra logic.
Pack34:
Isn't this what bootloaders are for? Program through the UARTs and chain all of them together. Then when you doing a programming cycle, just target the one at the end of the chain and then work your way back.
Navigation
[0] Message Index
[#] Next page
Go to full version