# 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.
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í.
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.
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
Zatím žádné komentáře.