Zpět na domů

Chyby ladění mikrokontrolérů: SWD a hardwarové chyby

Článek rozebírá reálné případy chyb při vývoji mikrokontrolérů: hardwarové chyby jako nečistoty v konektorech a konflikty pinů, softwarové — konfigurace Flash a FPU. Praktická řešení pro spolehlivé ladění STM32, TI CC, nRF.

Epické chyby MCU: od SWD po ESD a krystaly
Advertisement 728x90

# Typické hardwarové a softwarové chyby při ladění mikrokontrolérů

Firmware mikrokontroléru zamrzne: heart beat LED přestane blikat, UART konzole nereaguje. Standardní příznak. Nenechte se rozrušit – systematicky kontrolujte stack trace, logy a periferii. Často je příčina v obyčejných věcech: špíně v konektorech, konfliktech pinů nebo špatné konfiguraci.

Hardwarové pasty: od špíny po pájení

Vývoj telemetrické desky v CAN síti: auto nenastartuje, startér točí naprázdno. Tři hodiny diagnostiky – a příčina v OBD-II konektoru: kousek fólie zkratoval tři piny. Odstranění špíny problém vyřešilo.

Hustá rozloha desky s Tag-Connect: konektor pro programování je nepřístupný kvůli blízko umístěnému stabilizátoru Traco Power. Svorka se nezachytí – prsty se nedostanou. Řešení: zapojit kolegy s jemnými prsty nebo přepracovat layout.

Google AdInline article slot

USB napájení bliká a zhasíná. Podezření na pokles od BLE/UWB odpadlo. Příčina – vadné USB-A hnízdo: plné zasunutí zástrčky nedává kontakt, vysunutí o půl milimetru funguje. Závěr: používejte kvalitní kabely a konektory.

SWD spoj se ztrácí na kabelu 90 cm přes slip-ring v otočné věži. Pakety neprocházejí. Krátký kabel 12 cm funguje. Museli jsme programovat desky na navěšených prvcích.

Konflikty pinů a ladění

JTAG/SWD se nespustí: 'No device found'. Bat skript pro firmware vyžaduje manuální reset v STM32 ST-LINK Utility. Příčina – LED na pinu PA13 (TMS/SWDIO). SWD piny (PA13, PA14) nelze použít pro GPIO. Přesun LED na PA15 obnovil ladění.

Google AdInline article slot

Deska s FC7300: J-Link oranžový (reset state), J-Flash hlásí 'Could not download file'. Připájení MCU nepomohlo. Dočasný fix – výměna USB portu nebo programátoru.

Konfigurace MCU a bootloadery

CC26x2 zamrzne po power-cycle, i když pod debuggerem funguje. Příčina – chybí zápis do customer configuration sectoru na poslední stránce Flash. Pro TI CC26x4 je nejdřív třeba prošít blinky_backdoor_select_btn26x2.bin pomocí SmartFR Flash Programmer 2, pak vlastní firmware.

Bootloader STM32F413ZGJ6 neskočí do aplikace: kontrola MSP ve vektorové tabulce >128 kB. MCU má 320 kB RAM, ale bootloader je sestaven pro STM32F205VC. Kompatibilita Cortex-M4/M3 maskovala chybu pět let.

Google AdInline article slot

Statická elektřina a spolehlivost

Týdenní test: logy v RAM se vymažou jiskrou ESD při dotyku. Řešení – NVRAM nebo SD karta pro logy.

Audio a periferie

I2S od BT1026 (Bluetooth classic): chraplavý hlas na nRF5340. WS 50 kHz, ale modul FSC-BT1026C vydává sample jen do 48 kHz – nuly způsobují chrapot. Fix: BT1026 jako I2S master.

Schémové chyby

Zapomněli napájet MCU – MĎTS drátik to napravil. Nebo kvarc Ethernet PHY 23 MHz místo 25 MHz: auto-negotiation neprojde. Olimex-STM32-H407: UART krakmajzry kvůli kvarcu 12 MHz místo 25 MHz ve firmware.

Prototyp SPI-NAND W25M02GV: boční piny kratují thermal pad na breadboardu. Připájení na zelenou desku vyřešilo.

VNQ7E100AJ high-side driver: falešný proud při open-load (V_SENSEH pull-up). ADC to interpretuje jako přetížení. Výměna čipu v revizi ECU.

FPU a chyby knihoven

snprintf() na Cortex-M33 spadne do Default Handler kvůli FPU problémům při formátování float.

Co je důležité

  • Kontrolujte SWD/JTAG piny před přiřazením GPIO.
  • Konfigurujte customer sectors TI MCU před uživatelským firmwarem.
  • Používejte ESD ochranu a NVRAM pro logy.
  • Validujte kvarcy a konektory na prototypech.
  • Čtěte datasheet: funkce jako open-load detection zachrání před falešnými spuštěními.

— Editorial Team

Advertisement 728x90

Číst dál