Pri programovaní nejakej vývojovej dosky alebo Arduina ste sa už určite stretli s tým, že všetko bolo správne zapojené a svietilo, no nie a nie nahrať tam svoj softvér. Tento problém nastáva hlavne pri lacnejších alebo už nepodporovaných vývojových doskách či ovládačoch. V tomto blogu sa zoznámime s rôznymi problémami pri nahrávaní kódu, prevodníkmi a programátormi ako je napríklad USBasp a potrebnými ovládačmi.
Čo je to driver?
Driver, alebo po slovensky ovládač, je softvér v počítači, ktorý umožňuje komunikáciu medzi PC a konkrétnym hardvérom. Existujú ovládače na tlačiarne (pričom každý výrobca tlačiarní alebo dokonca iný typ môže mať iný driver), myšky, klávesnice, monitory atď atď…
Programátor vs prevodník
Programátor je zariadenie, ktoré umožňuje zápis jednotiek a núl skompilovaného programu priamo do FLASH pamäte mikrokontroléra. Ak však používame iba klasický prevodník (napríklad USB prevodník CH340G o ktorom si povieme nižšie), ten len “prevádza” signály USB na signály UART, ktorým mikrokontrolér rozumie. Ak však chceme prostredníctvom prevodníku nahrať do pamäte mikrokontroléra nový kód, je nutné, aby bol v mikrokontroléri predtým nahraný bootloader.
Bootloader je vlastne jednoduchý program, ktorý sa spustí po pripojení Arduino na napájanie a čaká na prijatie nového kódu z PC. Ak takýto kód prijme tak ho zapíše do pamäte. Vďaka tomu môžeme Arduino programovať aj prostredníctvom klasického USB kábla a prevodníku.
Programátor USBasp
USBasp patrí medzi obľúbený spôsob nahrávania kódu do mikrokontrolérov prostredníctvom takzvaného ICSP headera. Vďaka USBasp programátoru môžeme zapísať binárny kód (jednotky a nuly) priamo do FLASH pamäte mikrokontroléra. Označenie môže byť rôzne – ICSP, ISP, AVR ISP či iné, no v podstate sa jedná o tie isté piny. ICSP header môžete nájsť na každom Arduine ako zhluk 6 pinov:
ICSP header má zvyčajne 10 alebo 6 pinov, ak niektoré signály nepotrebujeme (čo je prípad na väčšine dosiek). Preto pri programovaní môžeme často potrebovať okrem samotného programátora aj adaptér:
-
USBasp programozó merőleges csatlakozó + kábel2 195Ft (ÁFA nélkül 1 728Ft )
-
STK500 ISP adapter 10-6 csapos405Ft (ÁFA nélkül 319Ft )
Po vložení takéhoto programátora do počítača, sa môže objaviť chybová hláška, že chýba driver. Prípadne sa objaví až keď sa ho snažíte použiť. Riešenie je však veľmi jednoduché a na pomoc pri inštalovaní drivera môžeme použiť program ZADIG.
LINK: http://zadig.akeo.ie/
Po stiahnutí môžete program spustiť. Aby sme vedeli nainštalovať správny driver, je nutné v menu na hornej lište nájsť položku Options -> List all devices, ktorú zaškrtneme.
V riadku Driver vidíte, aký konkrétny driver je nainštalovaný a na aký je ho možné zmeniť. V našom prípade fungovala verzia libusbK, avšak ak Vám fungovať nebude, môžete vyskúšať aj iné, ak sú v ponuke.
Prevodník CH340G/CH341G
Prevodník CH340G je často používaný na klonoch, NODE MCU alebo iných vývojových doskách a to hlavne vďaka jeho nízkej cene. Čip CH340G je vlastne prevodník medzi USB signálmi z počítača a TTL 5V signálmi, ktorým rozumie mikropočítač. Preto je označovaný aj ako USB na TTL UART pričom UART je spôsob asynchrónnej komunikácie.
Viac o UART a USART odporúčame preštudovať na wiki: https://cs.wikipedia.org/wiki/USART
Inštalovanie správneho drivera pre tento prevodník však môže spôsobiť nemalé vrásky. Väčšina nových driverov nefunguje so starými čipmi a preto nájsť funkčnú verziu môže zabrať nejaký čas. Je to z toho dôvodu, že v Číne okopírovali dizajn čipu a aby pôvodný výrobca nestratil podiel na trhu, nové ovládače nepodporujú niektoré staré čipy.
Počas práce s týmito preovdníkmi som však narazil na ovládač, ktorý mi zatiaľ fungoval vždy a na všetkých PC. Je potrebné postupovať podľa návodu na:
Prevodník CP2102
Prevodník CP2102 je tiež veľmi populárny avšak práca s ním je o poznanie jednoduchšia ako s CH340G. CP2102 je OPEN SOURCE, čiže za istých podmienok ho môže vyrábať prakticky ktokoľvek, preto by pri hľadaní drivera nemal byť žiaden problém. Po pripojení do PC si Windows zvyčajne sám stiahne správny driver automaticky.
Iné prevodníky
V praxi sa môžete samozrejme stretnúť aj s inými prevodníkmi, ďalšími veľmi populárnymi sú napríklad FT232RL či PL2303. Samozrejme, môžete ich nájsť aj v našej ponuke.
Práca s nimi je tiež pomerne jednoduchá, stačí len stiahnuť driver (v prípade že to Windows nezvládne automaticky) a bezproblémov môžete fungovať. Hlavnými rozdielmi medzi takýmito prevodníkmi môže byť rýchlosť prenosu, spotreba, podpora 5V/3.3V zariadení a podobne, avšak pre bežné použitie je nepodstatné, ktorý variant si vyberiete.
-
USB-ről USART-ra átalakító CP2102 chip különböző változatokkal1 320Ft – 1 520Ft
-
CP2102 átalakító Micro USB 5V/3.3V kompakt USB-vel1 610Ft (ÁFA nélkül 1 268Ft )
-
FT232RL átalakító Mini USB 5V/3.3V kompakt USB-vel1 700Ft (ÁFA nélkül 1 339Ft )
-
FT232RL átalakító Mini USB 5V / 3.3V-tal1 320Ft (ÁFA nélkül 1 039Ft )
-
FT232RL átalakító Micro USB 5V / 3.3V csatlakozóval3 110Ft (ÁFA nélkül 2 449Ft )
-
FT232RL átalakító 5V/3.3V-os mini USB-vel1 320Ft (ÁFA nélkül 1 039Ft )