I have multiple mcu's that are configured to communicate with bus topology. I have 10 pins (4 of them is occupied by now)

I need to debug (update firmware online, etc) all of these mcu's. I read this article but I didn't understand how to achieve the goal.

Question: How can I daisy chain these mcu's?


Debug protocol: SWD

  • \$\begingroup\$ Your development tools need to support it. \$\endgroup\$ – Leon Heller Mar 8 '14 at 12:24
  • \$\begingroup\$ I need the algorithm, I can build the development tool. \$\endgroup\$ – ceremcem Mar 8 '14 at 16:26
  • \$\begingroup\$ I think that you need to license that from ARM. \$\endgroup\$ – Leon Heller Mar 8 '14 at 17:06

How can I daisy chain these mcu's? MCU: STM32F407VG Debug protocol: SWD

These MCUs support JTAG and SWD. While JTAG supports a daisy chain configuration, SWD does not. There is a multi drop extension in SWD 2.0 protocol, but I am pretty sure your MCU does not implement this.

If you really want to debug multiple chips in a daisy chain, use JTAG. Beware: Tool configuration(s) may be non-trivial to do.

Note that you might want to separate a firmware update from your debugging scenario. Firmware updates can be done in multiple ways using a bootloader, so SWD or JTAG is not required in this case.

  • \$\begingroup\$ I need to be sure that I can not brick the device after a firmware update. I can fall back to the previous firmware if anything happens as far as I would use a debug port (JTAG or SWD). I'm not sure if bootloader option gives me that opportunity. My emergency plan is as follows: I can create point to point routes between mcu's and use every mcu as a proxy. \$\endgroup\$ – ceremcem Mar 8 '14 at 19:27
  • \$\begingroup\$ Here is the last solution we have: github.com/aktos-io/stm-flasher This is a command line utility that loads the firmware over uart. \$\endgroup\$ – ceremcem Apr 15 '16 at 0:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.