2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Predslov
Nedávno som vyvíjal niekoľko projektov IoT založených na ESP8266 a zistil som, že jadrový procesor bojuje s vykonávaním všetkých úloh, ktoré som potreboval na správu, a preto som sa rozhodol distribuovať niektoré menej dôležité činnosti do iného mikrokontroléra (ov) v týmto spôsobom sa uvoľní ESP8266, aby mohol pokračovať v úlohe zariadenia IoT.
Keďže som chcel zverejniť svoj projekt čo najširšiemu publiku, rozhodol som sa použiť Arduino IDE ako vývojovú platformu, pretože má tak široko podporovanú komunitu.
Dizajnové obmedzenia
Aby som poskytol primeraný rozsah cieľových zariadení, ktoré umožňujú výber vhodného mikrokontroléra pre danú aplikáciu, rozhodol som sa pre nasledujúce časti Atmel; ATMega328P, ATTiny84 a ATTiny85. Aby som obmedzil zložitosť potrebného programátora, obmedzil som výber hodín na interné pre všetky zariadenia a na 16 MHz externé iba pre ATMega328P a ATTiny84.
Nasleduje zbierka poznámok k programovaniu pomocou Arduina a popis toho, ako som pre tieto zariadenia zostavil jednoduchý programátor založený na Arduino Uno (obrázky vyššie).
Aké diely potrebujem?
Na zostavenie programátora budete potrebovať nasledujúce diely
- 1 zľava na Arduino Uno
- 2 vypnuté 28 -kolíkové zásuvky DIP s nulovou vložkou (ZIF) (na uchytenie ATMega328P, ATTiny85, ATTiny84)
- 1 z štítu prototypu Arduino (svoj som dostal tu;
- 2 vypnuté 5MM diódy LED
- 2 off 1K odpory
- 1 off 10K odpor
- 4 vypnuté 22pF keramické kondenzátory
- 2 vypnuté kryštály 16 MHz
- 3 vypnuté 0,1uF keramické kondenzátory
- 1 off 47uF elektrolytický kondenzátor
- 1 vypnutý 10uF elektrolytický kondenzátor
- Drôt na ovíjanie rôznych dĺžok.
Aký softvér potrebujem?
Arduino IDE 1.6.9
Aké zručnosti potrebujem?
- Znalosť Arduino IDE
- Niektoré znalosti elektroniky a spôsobu spájkovania
- Veľká dávka manuálnej zručnosti
- Veľa trpezlivosti a dobrého zraku
Témy pokryté
- Všeobecný úvod do programovania mikrokontrolérov Atmel
- ISP alebo bootloader: Je to všetko trochu mätúce
- Prehľad obvodov
- Nastavenie vášho programátora
- Použitie vášho programátora ISP Arduino
- Vývoj kódu vo vašom cieľovom systéme
- Gotchas
- Záver
- Použité referencie
Vylúčenie zodpovednosti
Ako vždy, tieto pokyny používate na vlastné riziko a nie sú podporované
Krok 1: Všeobecný úvod do programovania mikrokontrolérov Atmel
Na programovanie mikrokontrolérov Atmel sú k dispozícii dve metódy;
- V programovaní systému (ISP),
- Vlastné programovanie (prostredníctvom bootloadera).
Prvá metóda (1) priamo programuje mikrokontrolér prostredníctvom rozhrania SPI po prvom uvedení zariadenia do stavu reset. Pokiaľ nie je uvedené inak, je zostavený spustiteľný zdrojový program zapísaný do zariadenia postupne do pamäte kódu, odkiaľ je spustený pri štarte. Existuje mnoho zariadení ISP schopných programovať zariadenia Atmel, z ktorých niektoré sú (obr. 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Obrázok 2 ukazuje, ako sa zariadenie ISP pripája k ATMega328P (zvláštne označené ICSP) na doske Arduino Uno R3 (obrázok 3 zobrazuje pin ISP). Je tiež možné naprogramovať mikrokontrolér Atmel prostredníctvom rozhrania SPI pomocou Arduino Uno ako ISP (obrázok 4), tu sa Uno používa na programovanie ATMega328P.
Druhá metóda (2) používa malý záporný kód známy ako „bootloader“, ktorý je trvalo uložený v pamäti spustiteľných kódov (zvyčajne uzamknutý, aby sa zabránilo náhodnému prepísaniu, obrázok 5). Tento kód sa vykoná ako prvý po zapnutí alebo resetovaní zariadenia a umožní mikrokontroléru preprogramovať sa novým kódom prijatým prostredníctvom jedného zo svojich rozhraní zo zdroja, ktorý je sám na sebe. Metódu bootloader používa Arduino IDE na preprogramovanie Arduinos mapovaných ako USB komunikačný port na PC (alebo MAC, Linux atď., Obrázok 6) a v prípade Arduino Uno komunikuje so zariadením Atmel prostredníctvom sériové rozhranie na piny IC 2 a 3 ATMega328P. Tiež Arduino Uno (s odstráneným mikrokontrolérom ATMega328P) je možné použiť na programovanie ATMega328P pomocou metódy bootloadera, ktorá efektívne funguje ako zariadenie s adaptérom USB na sériový adaptér (obrázok 7).
Čo je to adaptér USB na sériový port?
Adaptér USB na sériový port je hardvér, ktorý sa pripája k portu USB vášho počítača a vyzerá ako sériový port (odkaz z minulosti, keď počítače používali sériový komunikačný štandard známy ako EIA-232, V24 alebo RS232), ktorý vám umožňuje odosielať a prijímať sériové údaje na rovnakých elektrických úrovniach mikrokontroléra. Keď v IDE Arduino vyberiete Nástroje -> Port -> COMx, pripojíte/prepojíte počítač s Arduino.
Takéto zariadenie sa niekedy označuje ako FTDI (obrázok 8, čo je v skutočnosti obchodná značka) alebo CH340G atď. USB na sériové pripojenie na zariadení Arduino uno sa dosahuje pomocou ATMega16U2-MU (R) IC ZU4 ako v schéme Arduino nižšie.
Pre lepšiu prehľadnosť obrázok 9 identifikuje dve zariadenia Atmel a ich príslušné ISP konektory na Arduino Uno R3.
Poznámka 1: Ak sa rozhodnete ísť cestou zariadenia FTDI, uistite sa, že nakupujete u renomovaného predajcu, pretože na trhu je veľa lacných falšovaných zariadení, ktoré pri použití aktualizácie systému Windows zlyhali.