Zurück zur Startseite

Mikrocontroller-Debugging-Fehler: SWD und Hardware-Bugs

Der Artikel analysiert reale Fehlerfälle in der Mikrocontroller-Entwicklung: Hardwarefehler wie Schmutz in Steckverbindern und Pin-Konflikte, Software – Flash-Konfiguration und FPU. Praktische Lösungen für zuverlässiges Debugging von STM32, TI CC, nRF.

Epische MCU-Fehler: von SWD bis ESD und Kristalle
Advertisement 728x90

Häufige Hardware- und Software-Fallen beim Mikrocontroller-Debugging

Mikrocontroller-Firmware friert ein: Heartbeat-LED blinkt nicht mehr, UART-Konsole reagiert nicht. Klassisches Symptom. Keine Panik — systematisch Stack-Traces, Logs und Peripherie prüfen. Der Übeltäter ist oft etwas Simples: Schmutz in Steckern, Pin-Konflikte oder Fehlkonfigurationen.

Hardware-Fallen: Von Schmutz bis Lötfehlern

Telematik-Board-Entwicklung für ein CAN-Netzwerk: Auto springt nicht an, Starter dreht nutzlos durch. Drei Stunden Diagnose — Ursache im OBD-II-Stecker gefunden: Ein Stück Folie kurzschloss drei Pins. Schmutz entfernen, Problem gelöst.

Dichte Board-Bestückung mit Tag-Connect: Programmierstecker unzugänglich wegen nahen Traco Power-Reglers. Clip rastet nicht ein — Finger passen nicht dazwischen. Lösung: Kollegen mit schlanken Fingern einspannen oder Layout umgestalten.

Google AdInline article slot

USB-Strom flackert und bricht ab. Vermuteter Spannungsabfall durch BLE/UWB ausgeschlossen. Übeltäter: defekter USB-A-Buchse — vollständiges Einstecken verliert Kontakt, ein halber Millimeter herausziehen macht es funktionsfähig. Lehre: Auf Qualitätskabel und -stecker setzen.

SWD-Verbindung bricht über 90 cm Kabel durch Schlupfring im Turm ab. Pakete kommen nicht durch. Kurzes 12 cm Kabel funktioniert einwandfrei. Am Ende Boards mit Flugkabeln programmiert.

Pin-Konflikte und Debugging

JTAG/SWD startet nicht: 'No device found'. Firmware-Batch-Skript verlangt manuellen Reset über STM32 ST-LINK Utility. Ursache: LED an PA13 (TMS/SWDIO). SWD-Pins (PA13, PA14) können nicht als GPIO genutzt werden. LED nach PA15 verschieben, Debugging wiederhergestellt.

Google AdInline article slot

Board mit FC7300: J-Link zeigt Orange (Reset-Zustand), J-Flash meldet 'Could not download file'. MCU-Reflow half nicht. Temporärer Fix: USB-Port oder Programmierer wechseln.

MCU-Konfiguration und Bootloader

CC26x2 hängt nach Power-Cycle, obwohl es unter Debugger läuft. Ursache: Kein Schreiben in Customer-Configuration-Sektor auf letzter Flash-Seite. Für TI CC26x4 zuerst blinky_backdoor_select_btn26x2.bin mit SmartFR Flash Programmer 2 flashen, dann eigene Firmware.

STM32F413ZGJ6-Bootloader springt nicht zur App: MSP-Check in Vector Table >128 kB. MCU hat 320 kB RAM, aber Bootloader für STM32F205VC gebaut. Cortex-M4/M3-Kompatibilität maskierte den Bug fünf Jahre lang.

Google AdInline article slot

Statische Elektrizität und Zuverlässigkeit

Wochenlanger Test: Logs im RAM werden durch ESD-Funken beim Berühren gelöscht. Lösung: NVRAM oder SD-Karte für Logs.

Audio und Peripherie

I2S von BT1026 (Bluetooth Classic): Knarrende Stimme auf nRF5340. WS bei 50 kHz, aber FSC-BT1026C-Modul liefert Samples nur bis 48 kHz — Nullen verursachen das Knarren. Fix: BT1026 als I2S-Master.

Schaltungsdesign-Fehler

MCU nicht mit Strom versorgt — Drahtrest behoben. Oder Ethernet PHY-Quarz bei 23 MHz statt 25 MHz: Auto-Negotiation schlägt fehl. Olimex-STM32-H407: UART-Mist wegen 12 MHz Quarz statt 25 MHz in Firmware.

SPI-NAND W25M02GV-Prototyp: Seitliche Pins kurzschließen Thermal Pad auf Lochrasterplatine. Reflow auf grüner PCB behoben.

VNQ7E100AJ High-Side-Treiber: Falsche Strommessung bei Open-Load (V_SENSEH Pull-up). ADC interpretiert als Überlast. Chip-Wechsel in ECU-Revision.

FPU- und Bibliotheksfehler

snprintf() auf Cortex-M33 crasht in Default Handler wegen FPU-Problemen bei Float-Formatierung.

Wichtige Lehren

  • SWD/JTAG-Pins prüfen, bevor sie als GPIO zugewiesen werden.
  • TI MCU Customer-Sektoren vor Flashen eigener Firmware konfigurieren.
  • ESD-Schutz und NVRAM für Logs nutzen.
  • Quarze und Stecker bei Prototypen validieren.
  • Datenblatt lesen: Features wie Open-Load-Erkennung verhindern Fehltrigger.

— Editorial Team

Advertisement 728x90

Weiterlesen