I have a custom PCB (based heavily on the Nucleo board) using the STM32F767II. I am using Atollic TrueStudio on Windows 10 and programming it through the ST-LINK on the Nucleo board (header CN6). I have set all the jumpers and connected my PCB to the Nucleo.

I was testing some minor firmware changes and re-programming the board three or four times successfully before I suddenly just got the error "USB communication error". I have double-checked that my wiring is the same as on the previous successful times. I get this error in Atollic TrueStudio and when I try to connect to the board from ST-LINK Utility.

To my knowledge I followed the same procedure for programming the board on all my attempts, so I am confused as to why it suddenly fails now. Are there debug settings or configurations in Atollic TrueStudio that could prevent me from being able to reprogram a chip? Is it possible to recover the chip?

I am also powering my board separately from the programming interface, so would it matter if I connect the Nucleo to the board before I power the board? Could I damage it by doing that?


  • \$\begingroup\$ I'm not familiar with Atollic TrueStudio. I have however, spent some time debugging ST-LINK connections... I don't know if "USB Communication error" means that the USB programmer has an error or it is an error to your board. Try downloading the "STM32 Link Utility" -- that's the ST Micro official app. See if you can flash firmware to your ST Link and rule out a USB to ST-LINK connection error. Rule that out, and stage 2 is figuring out why ST-LINK to board doesn't work. Could you have changed the GPIO pins on the STM32, and locked out the programming pins? (I've done it before...). \$\endgroup\$ – Leroy105 Feb 8 '18 at 22:05
  • \$\begingroup\$ Thanks for the advice. I was able to program the board again. It seems that I have to power up the board and connect my computer to the Nucleo before I can connect the ST-Link header on the Nucleo to the programming pins on the STM32. When I connect in that order I am able to program the board just fine. I do not completely understand why I cannot program it if I do not follow that order. \$\endgroup\$ – L. MacKenzie Feb 8 '18 at 22:28

Your Answer

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

Browse other questions tagged or ask your own question.