Для одного проектика на работе купили очередную плату STM32 Discovery. На таких платах стоит какой-нибудь Cortex-M, прошивальщик для него (отдельная микросхема, имеет выход USB), тактовая кнопка, парочка светодиодов. Почти все ножки контроллера выведены на две большие колодки. В зависимости от крутости версии платы на ней дополнительно могут быть сеялки, веялки и комбайн с вертикальным взлётом. Что-то вроде усложнённого Ардуино. Но речь не об этом.

Собрали устройство. Я взял плату, прошил тем, что надо. Проверил -- работает. Ставим в устройство -- не работает. Тут я заметил, что питание на плату подаётся не через USB, а через отдельный штырь. По документации так можно. Но не работает. Подключаем питание по USB -- работает! Агаа! До МК не доходит напряжение!

Но нет, доходит. Не доходит оно до прошивальщика.

ОКАЗАЛОСЬ

что микросхема прошивальщика без питания притягивает сигнал ресета (NRST) микроконтроллера к земле. Поэтому он никак не может выйти из начального состояния. До этого мы никогда с таким не сталкивались, потому что предыдущие штучки на базе таких плат питались не через отдельный источник, а через USB. Проблема решилась при помощи запаивания специальной перемычки (soldering bridge), описание которой было обнаружено в документации.