Obsah:

AVR/Arduino bliká s Raspberry Pi: 3 kroky (s obrázkami)
AVR/Arduino bliká s Raspberry Pi: 3 kroky (s obrázkami)

Video: AVR/Arduino bliká s Raspberry Pi: 3 kroky (s obrázkami)

Video: AVR/Arduino bliká s Raspberry Pi: 3 kroky (s obrázkami)
Video: MKS SGEN L V1.0 - Optical Endstop 2024, November
Anonim
AVR/Arduino bliká s Raspberry Pi
AVR/Arduino bliká s Raspberry Pi

Systémový programátor (ISP) je zariadenie, ktoré môžete použiť na programovanie mnohých mikrokontrolérov, napríklad ATMega328p, ktorý je mozgom Arduino Uno. Môžete si kúpiť niečo ako USBtinyISP, alebo môžete dokonca použiť Arduino. Tento návod vám ukáže, ako používať Raspberry Pi ako ISP.

Program avrdude, ktorý Arduino IDE používa pod kapotou na flashovanie čipov, je možné použiť s mnohými programátormi. Jednou z jeho možností je použiť piny SPI na rozširujúcom porte Pi. Vysvetlím, ako vytvoriť vhodné pripojenia, zostaviť jednoduchý obvod na doske, aby ste nemuseli prepájať káble zakaždým, keď budete chcieť blikať čipom, a ako nainštalovať a používať avrdude. Tiež vám ukážem, ako pomocou tejto metódy dostať programy zostavené pomocou Arduino IDE na čip AVR, ako je ATmega alebo ATtiny.

Potrebné veci:

  • Raspberry Pi s nainštalovaným najnovším Raspbianom
  • 40-kolíková zásuvka konektora (alebo 26-kolíková, ak máte starší Pi)
  • Kábel IDE na pripojenie k vášmu Pi
  • 16 MHz kryštálový rezonátor
  • 22 pF kondenzátory (2)
  • LED (1) indikuje stav programátora
  • 8, 14 a/alebo 28 kolíkových zásuviek IC podľa toho, aký tvar čipov chcete blikať
  • Nejaký perfboard, drôty, spájka

Krok 1: Budovanie ševcovského príslušenstva

Stavebný ševcovský nástavec
Stavebný ševcovský nástavec
Stavebný ševcovský nástavec
Stavebný ševcovský nástavec
Stavebný ševcovský nástavec
Stavebný ševcovský nástavec

Sériové periférne rozhranie (SPI), tiež nazývané štvorvodičové sériové rozhranie, je spôsob komunikácie medzi jedným hlavným zariadením a jedným alebo viacerými podradenými zariadeniami. Toto použijeme na flashovanie čipov, pričom Pi ako hlavný a čip ako otrok. Medzi Pi a svojim čipom vytvoríte nasledujúce prepojenie (rôzne AVR a rozširujúce porty Pi, kde nájdete informácie o tom, ktoré piny sú ktoré), nájdete na vyššie uvedených pinoch:

  • Spojte kolíky MOSI (master-out-slave-in)
  • Spojte kolíky SCLK (zdieľané hodiny) dohromady
  • Pripojte piny MISO (master-in-slave-out) spolu s odporom 220 Ohm, aby ste chránili Pi pred akýmkoľvek neočakávane vysokým napätím z čipu
  • Pripojte GPIO 25 na Pi priamo ku kolíku RESET na čipe. Pi pri programovaní ťahá tento kolík nízko, preto používame 10K odpor, aby bol pri programovaní vysoký, a LED s ochranným odporom 1K beží na kladné napätie, aby nám pri programovaní poskytla príjemnú vizuálnu spätnú väzbu.

Medzi Pi a čipy, ktoré chceme naprogramovať, spájame uzemňovacie a silové (3,3 V) piny. Ak to ešte neviete, kolíky Raspberry Pi nie sú odolné voči 5 V - poškodia sa, ak sa na nich objaví viac ako 3,3 V. Ak programované čipy z nejakého dôvodu potrebujú napájanie 5 V, mohli by sme na ochranu kolíkov Pi použiť čip s posunovačom úrovne, ale pri použití 3,3 V som nenarazil na žiadne problémy - preto odporúčam hrať bezpečne a šetriť na komponentoch.

Nakoniec pripojíme 16MHz kryštálový oscilátor cez piny XTAL na čipe, ktoré tiež spojíme so zemou pomocou niekoľkých 22pF kondenzátorov. Čipy AVR je možné nastaviť tak, aby bežali na rôznych frekvenciách, a tiež je možné nastaviť používanie interného alebo externého zdroja na určenie tejto frekvencie. Ak je váš čip nastavený na používanie externého kryštálu ako zdroja frekvencie, nebudete môcť bez neho preprogramovať. Inak je jedno, či tam je.

Schému zapojenia na poslednom obrázku môžete použiť ako návod na zostavenie svojho ševcovského nástavca na perfboarde. Môžete mať toľko alebo málo rôznych tvarov zásuviek IC, koľko chcete, stačí pripojiť príslušné kolíky súbežne s Pi a kryštálom. N. B. Ak použijete obrázok môjho prototypu ako sprievodcu, všimnite si, že som pridal niekoľko ďalších kolíkov a zásuviek záhlavia, aby som mal z nesúvisiacich dôvodov prístup k kolíkom na Pi.

Krok 2: Inštalácia a používanie programu Avrdude

Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude
Inštalácia a používanie programu Avrdude

Ak chcete nainštalovať avrdude na svoj Pi, stačí napísať

sudo apt-get install avrdude

Potom budete musieť povoliť rozhranie SPI, ak ešte nebolo zapnuté. Existuje spôsob, ako to urobiť v príkazovom riadku, ale je oveľa jednoduchšie použiť konfiguračný nástroj Raspberry Pi. Napíšte

sudo raspi-config

a v časti Možnosti rozhrania zapnite SPI.

Aby ste mohli čip čipovať, zapojte plochý kábel z počítača Pi do konektora v obvode perfboard a vložte čip do príslušnej zásuvky IC (uistite sa, že smeruje správnym smerom).

Pri prehrávaní programu sa musíte uistiť aj o správnom nastavení poistiek v čipe. Sú to skutočne iba bity v čipe, ktoré nastavíte, aby ste mu povedali, pri akej rýchlosti má bežať, či má byť pri zápise čipu vymazaná EEPROM atď. Môžete si prečítať úplnú špecifikáciu AVR a zistiť, ako nastaviť každý bit, ale je oveľa jednoduchšie použiť kalkulačku poistiek uvedenú na engbedded.com/fusecalc. Vyberte názov časti AVR, ktorý používate, a v oblasti „Výber funkcií“zvoľte požadované možnosti. Obvykle sa len uistím, že nastavenia hodín sú správne, a ostatné veci ponechám predvolené. Takmer vždy budete chcieť nechať „Sériové programovanie povolené“KONTROLOVANÉ a „Obnoviť deaktivované“NEKONTROLOVANÉ - inak nebudete môcť čip preprogramovať. Keď máte správne nastavenia, môžete sa posúvať nadol v oblasti „Aktuálne nastavenia“a skopírovať argumenty AVRDUDE, ako je znázornené na obrázku.

Ak chcete nastaviť poistky, zadajte príkaz

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

kde názov časti zodpovedá čipu, ktorý používate. Zoznam názvov dielov nájdete zadaním typu sudo ardude -c linuxspi -p ?. Ak chcete program flashovať, uistite sa, že je vo vašom aktuálnom adresári, a zadajte ho

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i

Po obidvoch príkazoch sa dióda LED rozsvieti počas úpravy čipu.

Krok 3: Získanie programov Arduino k AVR

Získanie programov Arduino na AVR
Získanie programov Arduino na AVR
Získanie programov Arduino na AVR
Získanie programov Arduino na AVR
Získanie programov Arduino na AVR
Získanie programov Arduino na AVR

Hlavným zameraním tohto pokynu je presunutie už kompilovaných programov na čipy, nie spôsob ich zápisu alebo kompilácie. Chcel som však vysvetliť, ako môžete pomocou Arduino IDE kompilovať binárne súbory a pomocou tejto metódy ich dostať na čisté AVR čipy, pretože Arduino sa učí pomerne ľahko a existuje veľa návodov a príkladov.

Najprv budete musieť pridať informácie o AVR čipoch, ktoré budete blikať, aby IDE vedel, ako ich skompilovať. James Sleeman veľmi užitočne zostavil niektoré inštalačné súbory, ktoré sú k dispozícii na github. Ak ich chcete použiť, otvorte v IDE Arduino ponuku „Predvoľby“a kliknite na políčko vedľa poľa „Adresy URL ďalších správcov dosiek“. Skopírujte a prilepte nasledujúce adresy URL do zobrazeného dialógového okna:

Potom prejdite do ponuky „Nástroje“a v podponuke „Doska“vyhľadajte možnosť „Správca dosiek …“. V dialógovom okne Správca dosiek prejdite nadol na koniec zoznamu a nainštalujte dosky DIY ATmega a DIY ATtiny.

Ak chcete zostaviť svoje programy, najskôr sa uistite, že ste v ponuke „Procesor“vybrali správny čip a správnu rýchlosť procesora. Vyberte možnosť „Použiť bootloader: nie“, pretože budeme nahrávať priamo pomocou Pi, a tak môžeme využiť ďalší priestor, ktorý by za normálnych okolností zaberal bootloader Arduino. Teraz kliknite na tlačidlo „Overiť“(značka začiarknutia). Program sa tak skomplikuje bez toho, aby ste sa ho pokúšali nahrať (pretože tento krok robíte sami).

Za predpokladu, že všetko pôjde dobre, musíte teraz dostať skompilovaný program do svojho Pi. IDE ich skrýva na dočasnom mieste, pretože je určené na samotné nahrávanie programov. V systéme Windows je v AppData/Local/Temp vo vašom používateľskom adresári v priečinku, ktorý začína na „arduino_build“. Vyhľadajte súbor.hex - to je váš program! Odošlite ho na svoj Pi cez FTP alebo pomocou USB kľúča, a ste na rade.

Na to je potrebné mať počítač so systémom Windows alebo Mac na kompiláciu programov, ktoré potom odošlete do zariadenia Pi. Bolo by naozaj jednoduché to urobiť na samotnom Pi, ale bohužiaľ oficiálna verzia Arduino IDE dostupná v úložisku Raspbian je dosť stará a nemá správcu dosky. Bez toho je pridanie príslušných nastavení na kompiláciu pre holé AVR o niečo zložitejšie. Existujú návody na zostavenie novšej verzie Arduina na vašom Pi - ak je to to, čo chcete robiť, choďte ich nájsť! Tiež mám pocit, že by malo byť možné prinútiť IDE používať programátora linuxspi na flashovanie čipu priamo z IDE (tj pomocou tlačidla "stiahnuť"), ale to je mimo mojej trpezlivosti a úrovne znalostí - ak viete o spôsob, pošlite to do komentárov! Nakoniec by ste mohli písať programy priamo do AVR-C a kompilovať ich na Pi pomocou avr-gcc, čo vám poskytne kompletnú vývojovú platformu AVR v Raspberry Pi. Trochu som toho urobil a ak chcete ísť touto cestou, pozdravujem vás. Začnite blikať!

Odporúča: