Innholdsfortegnelse:

AVR Assembler Opplæring 8: 4 trinn
AVR Assembler Opplæring 8: 4 trinn

Video: AVR Assembler Opplæring 8: 4 trinn

Video: AVR Assembler Opplæring 8: 4 trinn
Video: LDmicro 10: Регулятор температуры инкубатора (лестничное программирование ПЛК микроконтроллера с помощью LDmicro) 2024, Juli
Anonim
AVR -opplæringsopplæring 8
AVR -opplæringsopplæring 8

Velkommen til opplæring 8!

I denne korte opplæringen skal vi ta litt avvik fra å introdusere nye aspekter ved montering av språkprogrammering for å vise hvordan vi flytter våre prototypekomponenter til et eget "trykt" kretskort. Grunnen er at på dette tidspunktet blir vårt viktigste prototypebrødbrett stappfullt med så mange sjetonger, ledninger, knapper og lysdioder at det blir vanskelig å teste nye ting, og siden vi til slutt må flytte komponentene til sine egne brett uansett, vi kan like godt begynne nå. Mange av dere er sannsynligvis allerede dyktige på tingene vi vil dekke i denne opplæringen, og så kan du se på denne opplæringen som bare en avslappende pause fra koding.

Så i dag vil vi flytte terningrullen ATmega328P og det medfølgende terningparet til et eksternt brett med tilkoblinger til hovedkortet for kommunikasjon til det og for å drive det. Bortsett fra det, vil kabling og funksjon av terningene være selvstendig i den komponenten.

Du kan sannsynligvis forutsi fra dette at vårt endelige mål er å gjøre dette med hver av komponentene vi konstruerer underveis, slik at når vi er ferdige kan vi gjemme dem alle bort til en flott pakke som fungerer via knappetrykk uten å se alle av ledningene og det interne arbeidet.

Vi vil bruke mesteparten av denne opplæringen på å gjøre fysiske oppgaver som å designe en krets, kartlegge et prototypebrett og lodde ting sammen, men det er litt programmering vi må gjøre på slutten etter at vi har flyttet ting. Årsaken er at vi til slutt kommer til å bruke det 2-leders serielle grensesnittet til å kommunisere mellom vår viktigste "master" -kontroller og alle "slave" -kontrollerne som utgjør komponentene i vårt overordnede prosjekt i denne opplæringsserien og, som du husker, oppdaget vi i opplæring 6 en slags morse -kode -metode for å kommunisere terningkastene våre fra terningrullen (opplæring 4) til registeranalysatoren (opplæring 5) som viste resultatet av terningkastet i binær på 8 lysdioder. Vel, det var bare en "rull din egen" kommunikasjonsmetode som jeg bestemte meg for å bruke fordi det på det tidspunktet var for tidlig å komme i 2-leders seriell kommunikasjon. Vi er nå nesten forberedt på å dykke ned i den dype enden av seriekommunikasjon, og vi kommer til å gjøre det i veiledning 10, men for nå må vi forutse den fremtidige utviklingen og koble til terningvalse-LED-ene for å frigjøre de to pins som vi trenger for seriell kommunikasjon.

Dette er SCL- og SDA -pinnene på ATmega328P. Du kan se ved pinout-diagrammet at de også kalles ADC5 og ADC4 når de brukes i analoge til digitale konverteringer, de kalles PCINT13 og PCINT12 når de brukes som "Pin Change Interrupt" -nål, og til slutt kaller vi dem vanligvis PC5 og PC4 når det bare blir sett på som pins på PortC. Siden vi brukte disse to pinnene som en del av vår terningvalse av forskjellige årsaker (de viktigste er at det gjorde koding enklere og ledninger til lysdiodene på brettet enklere), må vi nå endre koden og koble den litt til frigjør disse pinnene for fremtidig kommunikasjon.

Så vi begynner med å designe, kutte, koble til og lodde. Deretter skriver vi om terningvalsen for å jobbe med det nye oppsettet vårt og til slutt tester det for å sikre at det fortsatt fungerer.

For å fullføre denne opplæringen trenger du følgende elementer:

  1. Standard tingene du alltid trenger som jeg kommer til å slutte å gjenta hele tiden: prototypetavlen din, din kopi av databladet og instruksjonssettet og hjernen din.
  2. Et prototypende PCB -kort for trådløs krets som dette: https://www.ebay.com/itm/191416297627 Jeg skal bruke Measure Explorer 103RAWD -versjonen av dette kortet: https://www.ebay.com/itm/103RAT -circuit-proto-proto … siden jeg har en haug med dem for hånden, men 103RAW-0-versjonen som jeg linker til ovenfor vil fungere helt fint også.
  3. Clippers, ledninger, loddetinn, loddejern, "hjelpende hender" eller hva som helst for å holde ting osv. Etc. osv. Igjen, herfra skal jeg slutte å liste opp disse tingene også. Hvis du faktisk har kommet så langt i disse opplæringsprogrammene, har du sannsynligvis alt dette allerede.

Her er en lenke til den komplette samlingen av mine AVR assembler-opplæringsprogrammer:

Trinn 1: Utform et koblingsskjema

Lag et koblingsskjema
Lag et koblingsskjema
Lag et koblingsskjema
Lag et koblingsskjema
Lag et koblingsskjema
Lag et koblingsskjema

Det som er kult med Measure Explorer -brettene er at hvis du tar deg tid og kartlegger ting i begynnelsen, kan du spare deg selv for mye ledninger på slutten. Så vi begynner med å bruke litt tid på å designe oppsettet vårt før vi begynner å lodde noe. Med denne typen brett må du kutte en haug med tilkoblingsledninger, noe som ikke er så lett, men resultatet er et veldig fint kompakt brett med et minimum av rot av sammenfiltrede ledninger. Det første vi må gjøre er å designe våre krets slik at den passer på brettet. En fin måte å gjøre dette på er å laste ned kartet over brettet og deretter bruke det til å leke med forskjellige design til du finner en som fungerer. Her er oppsettet for ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600.jpg, og her er oppsettet for ME-PB-103RAW-0 https://www.bluemelon. com/photo/57107/2297363-T8006… Jeg har også vedlagt disse som bilder. Det er en rekke måter å designe kretsen på. Det første er ganske enkelt å skrive ut kartet ovenfor, ta en penn eller blyant og begynne å tegne forbindelser på det. Du vil sannsynligvis ønske å montere lysdiodene og ATmega328P og sette ting på selve kortet først, slik at du vet hvor mye plass de tar, deretter tegner du dem på diagrammet, og derfra kan du prøve forskjellige ledningsopplegg. Den andre måten du kan gjør det er det samme som det første bortsett fra at du finner et dataprogram som vil kartlegge ledningene for deg ved hjelp av de nyeste topologiske algoritmene. Til slutt, måten jeg gjorde det på. Jeg satte komponentene på brettet først, så jeg visste størrelsen på tingene og hvor jeg ville ha ting. Så lastet jeg ned en Android -app som heter "Whiteboard" på min Galaxy Tab4, lastet brettkartet på den og dro deretter til den lokale puben og lekte med design over noen halvliter Black Ghost Oatmeal Stout.:) Jeg viser resultatet av dette på de to siste bildene. Det fine med å tegne det ut på denne måten er at når du ser på det med bildeviseren din, kan du klikke "flip horozontal", og det vil snu bildet og gi deg koblingsskjemaet for den andre siden av brettet! Veldig praktisk for vårt neste trinn.

Trinn 2: Kutt ut kretsen på brettet

Kutt ut kretsen på brettet
Kutt ut kretsen på brettet
Kutt ut kretsen på brettet
Kutt ut kretsen på brettet
Kutt ut kretsen på brettet
Kutt ut kretsen på brettet

Ta først en sharpie, og bruk oppsettet som du kartla i forrige trinn, og tegne kretsen din på brettet. Dvs. tegne linjer for å representere ledningene. Ikke tegn noe når det gjelder komponenter, bare forbindelsestrådene som vist på det første bildet. Legg merke til at når du ødelegger (og hvis du er som meg, vil du skru opp ting mange ganger i disse trinnene) kan du bruke et viskelær og slette linjen. Gjør dette for begge sider av brettet.

Deretter må du kutte forbindelsene rundt linjene. Hvis du ser nøye på brettet, vil du se at hvert pinnehull er koblet til de fire tilstøtende på begge sider av brettet, slik at alle hullene på brettet er koblet til hverandre når du begynner. Så du må kutte langs begge sider av hver av ledningene dine for å isolere dem. Den vanligste måten å skjære på er med en Exacto -kniv. Men jeg suger på Exacto -kniver og ville nok kuttet meg selv. Så jeg bruker en Dremel med et tynt skjæreverktøy. Jeg skulle ønske jeg hadde et slags slipefeste som kom til et skarpt punkt siden det ville fungere best - men jeg har ikke en sånn, så jeg brukte skjæresagen. (Merknad lagt til: Etter å ha fullført dette prosjektet fant jeg ut at de mindre "kraftige skjærehjul" -hodene til Dremels fungerer best, de ser ut som små sirkler av sandpapir, og de fungerer som skjæreverktøyet som vises her bortsett fra at de har mindre diameter og så det er mye lettere å se og kontrollere hvor du kutter)

Underveis er det nyttig å holde brettet opp mot lyset og sørge for at ledningene faktisk er kuttet. Du kan bli irritert over at det er tilkoblinger på begge sider av brettet, så du må gjenta skjæreprosessen igjen med den andre siden, men jeg tror du vil se poenget med dette når du er ferdig. Jeg gjorde mange feil ved å kutte ledninger som ikke burde vært kuttet, og å ha den andre siden fortsatt tilkoblet viser seg å være fint.

Det vil ta ganske lang tid og tålmodighet å kutte kretsen inn i brettet, men det er litt moro når du blir god til det.

Trinn 3: Lodd komponentene og test

Lodd komponentene og test
Lodd komponentene og test
Lodd komponentene og test
Lodd komponentene og test
Lodd komponentene og test
Lodd komponentene og test

Nå som du har isolert alle ledningene i kretskortet, kan du begynne å lodde på de enkelte komponentene.

Jeg loddet først på lysdiodene for en av terningene, så tok jeg positive og negative ledninger fra brødbrettet mitt og testet tilkoblingene for hver LED for å sikre at de er isolert fra hverandre og at de fungerer.

På samme måte som de andre dør.

Led deretter motstanden til hver dør, og 10K motstanden på baksiden av brettet.

Fest deretter krystalloscillatoren, 22pf caps, trykknapper og ATmega328P. Det kan være lurt å lodde en brikkekontakt og deretter passe ATmega328P inn i den, slik at du kan fjerne den hvis du vil og bruke den til noe annet. Jeg loddet akkurat brikken min til brettet siden jeg vet hva vi til slutt bygger med alle disse opplæringsprogrammene, og jeg vet at jeg kommer til å like det nok til at jeg ikke vil ta ut brikken.

Legg merke til måten vi festet topptekstene på baksiden av brettet. Jeg brukte lange pinnehoder og bøyde dem horozontale slik at de ikke stikker opp av brettet. Dette er slik at jeg til slutt kan dekke brettet til nivået på trykknappene og lysdiodene med en beholder og ikke ha hoder som kommer i veien. Vi har en header for Tx, Rx slik at vi kan programmere brikken, vi har en header for SDA, SCL slik at vi kan bruke 2-leder kommunikasjon senere. og vi har en 3 -pins header for AVCC, AREF, GND på den andre siden av brettet. Jeg har alle jordpinnene og VCC -pinnene koblet sammen på brikken, så vi trenger bare en strøminngang.

Til slutt, når alt er kablet, wire vi dør 1 til dø2 slik vi gjorde på brødbrettet, slik at vi kan kontrollere begge terningene med bare 9 pinner.

Nå må vi endre koden vår slik at den skal kontrollere dette nye oppsettet.

Trinn 4: Monteringskode og video

Jeg har lagt ved monteringskoden og videoen av terningvalsen i drift. Alt jeg gjorde var å ta koden for terningrullen vår fra opplæring 6, endre pinnene for å matche det nye oppsettet, og fjerne kommunikasjonssubutinen siden vi skal skrive en ny i opplæring 10. Neste gang skal vi bryte ut tastaturet igjen og lære å kontrollere 7-segmenters skjermer. Vi sees da!

Anbefalt: