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, Juli
Anonim
Vodič za AVR asembler 8
Vodič za AVR asembler 8

Dobro došli u Vodič 8!

U ovom kratkom vodiču ćemo se malo odvratiti od uvođenja novih aspekata programiranja na asemblerskom jeziku kako bismo pokazali kako premjestiti naše komponente za izradu prototipa na zasebnu "tiskanu" ploču. Razlog je taj što se u ovom trenutku naša glavna prototipna ploča pretrpava sa toliko čipova, žica, dugmadi 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 su vjerojatno već vješti u stvarima koje ćemo pokriti u ovom vodiču, pa na ovaj vodič možete gledati samo kao na opuštajući odmor od kodiranja.

Zato ć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 unutrašnjeg rada.

Veći dio ovog vodiča provest ćemo radeći fizičke zadatke poput projektiranja kola, 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 "master" kontrolera i svih "slave" 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 Morzeove azbuke 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 komunikacije koji sam odlučio koristiti jer je u to vrijeme bilo prerano za uvođenje u dvožilnu serijsku komunikaciju. Sada smo skoro spremni zaroniti u duboki kraj serijske komunikacije, a to ćemo učiniti u Tutorijalu 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.

Ovo 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 zato što su olakšali kodiranje i lakše ožičenje LED dioda na ploči), sada ćemo morati izmijeniti svoj kôd i ponovo ga povezati oslobodite ove igle za buduću komunikaciju.

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

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

  1. Standardne stvari koje vam uvijek trebaju i prestat ću ih ponavljati cijelo vrijeme: vašu ploču za izradu prototipa, vašu kopiju podatkovnog lista i skup uputa i 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 šta drugo za držanje stvari itd. Itd. Itd. Od sada ću prestati nabrajati i ove stvari. Ako ste zaista došli dovde u ovim vodičima, onda vjerovatno već imate sve ove stvari.

Evo veze do kompletne 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 to što ako odvojite malo vremena i mapirate stvari na početku, možete uštedjeti mnogo žica na kraju. Zato ćemo početi 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 lako, ali rezultat je vrlo lijepa kompaktna ploča s minimalnim neredom zamršenih žica. Prvo što moramo učiniti je dizajnirati našu strujno kolo 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-j.webp

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 krug na ploči. Tj. nacrtajte linije koje predstavljaju žice. 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 sa 4 susjedne rupe s obje strane ploče, tako da su sve rupe na ploči povezane jedna s drugom kada započnete. Zato morate presjeći obje strane svake žice kako biste ih izolirali. Najčešći način rezanja je Exacto nožem. Ali sisam Exacto noževe i vjerojatno bih se posjekao. Stoga koristim Dremel s tankim nastavkom za rezni alat. Volio bih da imam neku vrstu brusnog nastavka koji je došao do oštre tačke jer bi to najbolje funkcioniralo - ali ja nemam takvo pa sam upotrijebio nastavak za reznu pilu. (Napomena dodano: Nakon završetka ovog projekta otkrio sam da manje glave za velike rezne ploče za Dremels najbolje funkcioniraju, 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 prema svjetlu i provjeriti jesu li žice zapravo presječene. Možda ćete biti ljuti zbog činjenice da postoje veze 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 grešaka pri rezanju žica koje nije trebalo presijecati, a ispostavljanje druge strane još uvijek je lijepo.

Biće potrebno dosta vremena i strpljenja da se strujno kolo preseče na ploču, ali biće zabavno kada to dobro učinite.

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 pojedinačne 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 odvojene jedna od druge i da rade.

Slično s drugom matricom.

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

Zatim priključite kristalni oscilator, poklopce od 22 pf, tipke i ATmega328P. Možda ćete htjeti lemiti utičnicu za čip, a zatim u nju ugraditi svoj ATmega328P, tako da ga možete ukloniti ako želite i ponovo upotrijebiti u nečem drugom. Upravo sam zalemio svoj čip na ploču jer znam šta na kraju gradimo sa svim ovim vodičima 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 tako da ne strše s ploče. To je tako da na kraju mogu pokriti ploču do nivoa gumba i LED dioda spremnikom i da mi zaglavlja ne smetaju. Imamo zaglavlje za Tx, Rx tako da možemo programirati čip, imamo zaglavlje za SDA, SCL tako da kasnije možemo koristiti 2-žičnu komunikaciju. a sa druge strane ploče imamo 3 -pinsko zaglavlje za AVCC, AREF, GND. Imam sve uzemljene i VCC igle spojene na čip pa nam je potreban 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 matičnoj 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 zapis

Priložio sam kôd sklapanja i video zapis valjka za kockice u radu. 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 ponovo razbiti našu tastaturu i naučiti kako kontrolirati 7-segmentne zaslone. Vidimo se!

Preporučuje se: