/ STM8 FAQ |
Na tomto místě bude postupně přibývat seznam často kladených dotazů a typických problémů se kterými se setkám při výuce STM8.
- V prostředí STVD nejde spustit debug. - Pokus o spuštění debugu skončí chybovou hláškou gdi-error [40201]: can't access configuration database. ST-Link se ve windows hlásí správně (jako "flash disk") a čtení/programování čipu skrze STVP probíhá také korektně.
1. Spusťte příkazový řádek jako správce
2. Zadejte příkaz Regsvr32 /u "C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\DAO350.DLL" (včetně uvozovek)
3. Zadejte příkaz Regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\DAO350.DLL"
- I2C komunikace (knihovou swi2c) končí chybou 0xAA (170)
Pokud se pokusíte nahrát do MCU nový program zrovna ve chvíli kdy po I2C čtete nějaká data ze slave zařízení tak se může stát, že se slave "zasekne". Slave obvod totiž v té chvíli ovládá SDA linku (aby vám mohl poslat data) a neuvolní ji dokud neodešle zbytek zprávy (kterou jste přerušili programováním MCU). Protože ovládá SDA linku (a očekává že bude moct svou zprávu dokončit) tak blokuje I2C sběrnici a Master (MCU) nemůže zahájit další komunikaci a to vyústí ke zmíněné chybě - knihovní funkce vrátí hodnotu 0xAA (170). Tento problém nastává tím častěji čím více I2C sběrnici provozujete. Pokud váš program třeba neustále něco čte ze slave zařízení, je šance že se trefíte zrovna doprostřed nějakého čtení vysoká a chyba se může stávat často. Možná řešení:
a) Po volání swi2c_init() zavolejte funkci swi2c_recover(). Ta se pokusí postupně generovat pulzy na SCK a sleduje kdy slave uvolní SDA linku (prostě "dokončí" přerušenou zprávu a slave se "uklidní").
b) Nahrajte nový program, zastavte ho ještě před zahájením I2C komunikace a "resetujte" slave obvod (odpojením a zapojením napájení)
c) Předcházet takové situaci tím že po I2C komunikujete jen když je to potřeba. Například pokud čtete stav RTC obvodu, stačí to v podstatě jednou za sekundu. V takovém případě je šance že se s programováním čipu trefíte zrovna doprostřed komunikace se pak pohybuje v řádu 1:1000.
Home
| V1.01 21.1.2023 /
| By Michal Dudka (m.dudka@seznam.cz) /