Sadržaj:

AVR asemblerski vodič 8: 4 koraka
AVR asemblerski vodič 8: 4 koraka

Video: AVR asemblerski vodič 8: 4 koraka

Video: AVR asemblerski vodič 8: 4 koraka
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Srpanj
Anonim
Vodič za sastavljač AVR -a 8
Vodič za sastavljač AVR -a 8

Dobro došli u Vodič 8!

U ovom kratkom vodiču malo ćemo se odvratiti od uvođenja novih aspekata programiranja na asemblerskom jeziku kako bismo pokazali kako premjestiti naše komponente za izradu prototipova na zasebnu "tiskanu" ploču. Razlog je taj što se u ovom trenutku naša glavna prototipna ploča pretrpava s toliko čipova, žica, gumba i LED dioda da je sve teže testirati nove stvari i budući da na kraju ipak moramo premjestiti komponente na vlastite ploče, mogli bismo početi i sada. Mnogi od vas vjerojatno su već vješti u stvarima koje ćemo obraditi u ovom vodiču, pa na ovaj vodič možete gledati samo kao na opuštajući odmor od kodiranja.

Stoga ćemo danas premjestiti naš valjak za kockice ATmega328P i pripadajući par kockica na vanjsku ploču s priključcima na našu glavnu ploču za komunikaciju s njom i za napajanje. Osim toga, ožičenje i funkcioniranje kockica bit će samostalni unutar te komponente.

Iz ovoga vjerojatno možete predvidjeti da je naš konačni cilj to učiniti sa svakom od komponenti koje usput konstruiramo tako da ih, kad završimo, sve možemo sakriti u paket lijepog izgleda koji će funkcionirati pritiskom na gumbe bez da vidimo sve žica i unutarnji rad.

Veći dio ovog vodiča provest ćemo radeći fizičke zadatke poput projektiranja kruga, mapiranja ploče za izradu prototipova i lemljenja stvari, ali postoji nešto programiranja koje moramo napraviti na kraju nakon što premjestimo stvari. Razlog je taj što ćemo na kraju koristiti 2-žično serijsko sučelje za komunikaciju između našeg glavnog "glavnog" kontrolera i svih "podređenih" kontrolera koji čine komponente našeg cjelokupnog projekta u ovoj seriji vodiča i, kao što se sjećate, u Tutorijalu 6 izumili smo neku vrstu metode Morseovog koda za prenošenje naših bacanja kockica s valjka za kockice (Tutorial 4) na analizator registra (Tutorial 5) koji je prikazao rezultat bacanja kockica u binarnom obliku na 8 LED dioda. Pa to je bio samo "roll your own" način komuniciranja koji sam odlučio koristiti jer je u to vrijeme bilo prerano za ulazak u 2-žičnu serijsku komunikaciju. Sada smo gotovo spremni zaroniti u duboki kraj serijske komunikacije, a to ćemo učiniti u Vodiču 10, ali za sada moramo predvidjeti taj budući razvoj i ponovno ožičiti LED diode s kockicama kako bismo oslobodili dva pinovi koji su nam potrebni za serijsku komunikaciju.

To su SCL i SDA pinovi na ATmega328P. Po dijagramu pinout-a možete vidjeti da se nazivaju i ADC5 i ADC4 kada se koriste u analogno-digitalnim konverzijama, zovu se PCINT13 i PCINT12 kada se koriste kao pinovi "Pin Change Interrupt", i na kraju ih općenito nazivamo PC5 i PC4 kada se jednostavno smatraju pinovima na PortC -u. Budući da smo ove dvije iglice koristili kao dio našeg kockice za kocke iz različitih razloga (glavni su oni što su olakšali kodiranje i lakše ožičenje LED dioda na ploči), sada ćemo morati izmijeniti svoj kôd i ponovno ga ožičiti kako bismo oslobodite ove iglice za buduću komunikaciju.

Stoga ćemo početi s projektiranjem, rezanjem, ožičenjem i lemljenjem. Zatim ćemo ponovno napisati valjak za kockice kako bismo radili s našim novim postavljanjem i na kraju ga testirati kako bismo bili sigurni da još uvijek radi.

Da biste dovršili ovaj vodič, trebat će vam sljedeće stavke:

  1. Standardne stvari koje su vam uvijek potrebne i stalno ću ih prestajati ponavljati: vašu ploču za izradu prototipa, svoju kopiju podatkovnog lista i skup uputa te vaš mozak.
  2. Bežična shema prototipa PCB ploče poput ove: https://www.ebay.com/itm/191416297627 Koristit ću Measure Explorer 103RAWD verziju ove ploče: https://www.ebay.com/itm/103RAT -circuit-proto-proto … budući da imam hrpu njih pri ruci, ali verzija 103RAW-0 na koju se povezujem gore će također dobro funkcionirati.
  3. Aparati za šišanje, žice, lemljenje, lemilica, "ruke za pomoć" ili bilo što drugo za držanje stvari itd. Itd. Itd. Od sada ću prestati nabrajati i ove stvari. Ako ste doista došli ovako daleko u ovim vodičima, onda vjerojatno već imate sve ove stvari.

Evo veze do cijele zbirke mojih vodiča za AVR asembler:

Korak 1: Dizajnirajte shemu ožičenja

Dizajnirajte shemu ožičenja
Dizajnirajte shemu ožičenja
Dizajnirajte shemu ožičenja
Dizajnirajte shemu ožičenja
Dizajnirajte shemu ožičenja
Dizajnirajte shemu ožičenja

Zgodna stvar kod ploča Measure Explorer je da ako odvojite malo vremena i iscrtate stvari na početku, možete si uštedjeti mnogo žica na kraju. Dakle, počet ćemo tako što ćemo odvojiti malo vremena za osmišljavanje našeg izgleda prije nego počnemo bilo što lemiti. S ovom vrstom ploče morate presjeći hrpu spojnih žica, što i nije tako jednostavno, ali rezultat je vrlo lijepa kompaktna ploča s minimalnim neredom zamršenih žica. Prvo što moramo učiniti je dizajnirati naš sklop tako da stane na ploču. Lijep način za to je da preuzmete kartu ploče, a zatim se njome igrate s različitim dizajnom dok ne pronađete onu koja funkcionira. Evo izgleda za ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600.jpg, a ovdje je izgled za ME-PB-103RAW-0 https://www.bluemelon. com/photo/57107/2297363-T8006 … Priložio sam ih i kao slike. Postoji nekoliko načina za projektiranje sklopa. Prvi je jednostavno ispisati gornju kartu, uzeti olovku ili olovku i početi povezivati veze na njoj. Vjerojatno ćete htjeti svoje LED diode i ATmega328P ugraditi i staviti na samu ploču kako biste znali koliko prostora zauzimaju, a zatim ih nacrtati na dijagramu, a odatle možete isprobati različite sheme ožičenja. Drugi način na koji biste mogli učinite isto kao i prvi osim što ćete pronaći računalni program koji će vam preslikati ožičenje pomoću najnovijih topoloških algoritama. Konačno, način na koji sam to učinio. Komponente sam prvo postavio na ploču kako bih znao veličinu stvari i gdje ih želim. Zatim sam na svoj Galaxy Tab4 preuzeo aplikaciju za Android pod nazivom "Whiteboard", učitao mapu ploče na nju, a zatim otišao u lokalni pub i poigrao se s dizajnom na nekoliko pinti Black Ghost Oatmeal Stouta.:) Rezultat ovoga pokazujem na posljednje dvije slike. Zgodna stvar u iscrtavanju na ovaj način je to što kad je pogledate preglednikom slika, možete kliknuti "okreni horozontal" i slika će se preokrenuti dajući vam dijagram ožičenja s druge strane ploče! Vrlo prikladno za naš sljedeći korak.

Korak 2: Izrežite krug na ploči

Izrežite krug na ploči
Izrežite krug na ploči
Izrežite krug na ploči
Izrežite krug na ploči
Izrežite krug na ploči
Izrežite krug na ploči

Prvo uzmite oštricu i, koristeći svoj raspored koji ste zacrtali u prethodnom koraku, nacrtajte svoj krug na ploči. Tj. povucite crte za predstavljanje žica. Nemojte crtati ništa u smislu komponenti, samo spojne žice kao što je prikazano na prvoj slici. Primijetite da kad zeznete (a ako ste išta poput mene, zeznut ćete stvari mnogo puta u ovim koracima) možete koristiti gumicu za brisanje i izbrisati liniju. Učinite to za obje strane ploče.

Zatim morate prekinuti veze oko linija. Ako pomno pogledate ploču, vidjet ćete da je svaka rupa za pin povezana s 4 susjedne rupe s obje strane ploče, tako da su sve rupe na ploči povezane jedna s drugom kada započnete. Stoga morate rezati uz obje strane svake od svojih žica kako biste ih izolirali. Najčešći način rezanja je Exacto nožem. Ali ja sisam Exacto noževe i vjerojatno bih se porezao. Zato koristim Dremel s tankim nastavkom za rezni alat. Volio bih da imam neku vrstu nastavka za brušenje koji je došao do oštre točke jer bi to najbolje funkcioniralo - ali ja nemam takvu pa sam upotrijebio nastavak za reznu pilu. (Napomena dodano: Nakon završetka ovog projekta otkrio sam da manje glave "reznih kotača za teške uvjete" za Dremels najbolje rade, izgledaju kao mali krugovi brusnog papira i rade kao ovdje prikazani alat za rezanje, osim što su manjeg promjera i tako mnogo je lakše vidjeti i kontrolirati gdje režete)

Usput je korisno držati ploču do svjetla i pobrinuti se da su žice doista prerezane. Možda ćete biti ljuti zbog činjenice da postoje spojevi s obje strane ploče pa morate ponoviti postupak rezanja s druge strane, ali mislim da ćete to shvatiti dok završite. Napravio sam mnogo pogrešaka pri rezanju žica koje nije trebalo presijecati, a ispostavljanje druge strane još uvijek spojenom pokazalo se lijepim.

Bit će potrebno dosta vremena i strpljenja da se strujni krug uključi u ploču, ali bit će vam zabavno kad to uspijete.

Korak 3: Lemite komponente i testirajte

Lemite komponente i testirajte
Lemite komponente i testirajte
Lemite komponente i testirajte
Lemite komponente i testirajte
Lemite komponente i testirajte
Lemite komponente i testirajte

Sada kada ste izolirali sve žice na ploči, možete početi lemiti pojedine komponente.

Prvo sam lemio LED diode za jednu od kockica, zatim sam uzeo pozitivne i negativne vodiče sa svoje ploče i testirao veze za svaku LED kako bih se uvjerio da su izolirane jedna od druge i da rade.

Slično s drugim umrijeti.

Zatim spojite otpornik na svaku matricu i 10K otpornik na stražnjoj strani ploče.

Zatim priključite kristalni oscilator, poklopce od 22 pf, gumbe i ATmega328P. Možda ćete htjeti lemiti utičnicu za čip, a zatim u nju umetnuti svoj ATmega328P, tako da ga možete ukloniti ako želite i ponovno upotrijebiti u nečem drugom. Upravo sam zalemio svoj čip na ploču jer znam što na kraju gradimo sa svim ovim tutorialima i znam da će mi se svidjeti dovoljno da ne želim izvaditi čip.

Uočite, gledajući stražnju stranu ploče, način na koji smo pričvrstili zaglavlja. Koristio sam dugačke pin zaglavlje i savijao ih horozontalno kako ne bi stršili s ploče. To je tako da na kraju mogu pokriti ploču do razine gumba i LED dioda spremnikom i da mi zaglavlja ne smetaju. Imamo zaglavlje za Tx, Rx pa možemo programirati čip, imamo zaglavlje za SDA, SCL tako da kasnije možemo koristiti 2-žičnu komunikaciju. i imamo 3 pinski zaglavlje za AVCC, AREF, GND s druge strane ploče. Imam sve uzemljene i VCC igle spojene na čip pa nam treba samo jedan ulaz napajanja.

Konačno, nakon što je sve ožičeno, povezujemo matricu 1 na matricu 2 kao što smo to učinili na ploči, tako da možemo kontrolirati obje kockice sa samo 9 iglica.

Sada moramo izmijeniti naš kôd tako da kontrolira ovu novu postavku.

Korak 4: Kôd montaže i video

Priložio sam kôd montaže i video zapis valjka za kockice. Sve što sam učinio bilo je uzeti kôd za naš valjak za kockice iz Vodiča 6, izmijeniti pinove tako da odgovaraju novom rasporedu i ukloniti komunikacijsku potprogram jer ćemo pisati novi u Vodiču 10. Sljedeći put ćemo ponovno razbiti našu tipkovnicu i naučiti upravljati 7-segmentnim zaslonima. Vidimo se!

Preporučeni: