En komplett starter guide till AVRs (4 / 10 steg)

Steg 4: USART som en seriell port




USART kringutrustningen som kommer med många AVR micros är en flexibel port som kan agera som många olika protokoll.
Vissa micros har en UART som medan liknande, kan bara utföra som en vanlig seriell port.

Medan det kan agera så många olika typer av seriell port, kommer vi bara att använda det som en grundläggande seriell port, vilket gör det möjligt att enkelt använda XBee radion senare.
Du kan också använda denna seriell port för att ansluta till en gammal dator eller via en FTDI chip att ge dig en USB-seriell anslutning till en ny dator.
Det är faktiskt hur många arduinos fungerar, de använder en FTDI chip för en USB-seriell anslutning till mikrokontroller.

Det här exemplet ska vi programmet två ATtimy2313 micros skicka tecken över följetong till varandra.
Bygga upp på bakbord som visas i bilden.
Låt oss kalla vänstern micro A och den andra en B.

Anslut stift 2 a till stift 3 b.
Anslut stift 3 a till stift 2 b.

Stift 2 är RXD (ta emot) och pin 3 är TXD (överför).

Anslut en LED till B på stift 11 (PD6) och ansluta en knapp på A till pin 19 (PB7).

Använd den bifogade uppförandekoden för att programmera två marker.
Ställa in klockan varje 1MHz
På Chip A avkommentera den här raden:
#define sändnings
och kommentera bort den här raden:
#define får

Chip B gör motsatsen:
#define sändnings
#define får

Nu, när du trycker på knappen på A, LED på B tänds!

Först det kanske inte verkar mycket imponerande, men du kan använda detta för att tala till marker långt bort över en XBee radio, eller en dator som kan vara användbar för att felsöka din kod.

Så, hur fungerar det?
Låt oss titta på de intressanta linjerna:

UBRRH = 0;
UBRRL = 12;

Ta en titt i databladet för UBRR registret.
Detta är lite 12 registrera, så som 2313 är en 8-bitars mikro, detta delas i två byte, hög (UBRRH) och låg (UBRRL).
Det höga registret är inte ett fullständigt register, med den övre halvan (4 bitar) reserverade (inte används, men bör inte vidröras för framtida kompatibilitet).

Om du bläddrar ner till nästa sida, kommer du se en praktisk tabell för olika överföringshastigheter beroende på din micro klocka.
Det här exemplet vill vi 9600 baud (användbart senare för XBee).
Titta på tabellen för 1MHz får vi ett värde av 6 för UBRR.
Men det har en -7% felfrekvens, som är lite för hög.
Men om du ser en kolumn över finns en med 0,2% felfrekvens.
Vad är annorlunda?
U2X-flaggan är angiven, och UBRR är inställd på 12.

Vi kommer att använda det och ange U2X-flaggan.
Nästa vi har olika inställningar för att konfigurera:
UCSRA = (1 << U2X);
UCSRB = (1 << RXEN) | (1 << TXEN);
UCSRC = (1 << UCSZ1) | (1 << UCSZ0);

Dessa 3 register beskrivs i databladet så ska vi titta på dem endast kort.
U2X beskrivs som "dubbel UART överföringshastigheten"
RXEN berättar USART för att ta emot läge och TXEN är att möjliggöra sändnings
UCSZ1 & UCSZ0 anges baserat på tabellen på sidan 133, anger tecknet som 8 bitar.

Nästa på sändnings sida har vi denna kodrad:
medan (! () UCSRA & (1 << UDRE)));
Detta kontrollerar "USART Data registrera tomma" lite "USART kontroll och Status Register A".
När det är 1, slingan avslutar och nästa rad i koden kan köras:
UDR = "F";

Detta går i karaktären "F" till sändnings bufferten, detta kan endast skrivas när det är klart, varför måste vi vänta slingan innan det.

Det är ungefär samma på sidan och ta emot:
medan (! () UCSRA & (1 << RXC)));

Vi vänta här på mottagningsbufferten vara tom, och då vi läser UDR för att se vilket värde den har:
om (UDR == "F")

Du bara kunde lika gärna sätta detta i en variabel som så:
char x = UDR;

Du måste läsa UDR för att klara det, och du kan bara läsa den en gång (efter som det rensar och gör en ny karaktär i), så om värdet är viktigt för dig, se till att du sparar en kopia av värdet på den första Läs!

Nu, detta exempel är uppdelad i sända och ta emot, men du kan ha båda i en, jag ville bara göra ett enkelt exempel

Se Steg
Relaterade Ämnen

Min Guide till AVR Transistortesters

Om du är en elektronik hobby sedan är AVR Transistortesters den största sak sedan skivat bröd! Varför om Ron Popiel levde han skulle hawking dessa natt och dag på Shopping nätverket. Men ibland finns det något sådant som för mycket av goda. Sortering...

Kompletta idioter guide till rc flygplan flyger

i detta instructables, jag kommer att visa dig hur till och vad du kommer att behöva bygga en modellflygplan. Jag ska berätta hur man bygger och reparerar ett rc plan. Nu kan börja med teorin, flygplan kan flyga på grund av sina vingar form, de är of...

Quick Start Guide till 3Doodler 2.0

Steg 1: Att lära känna 3Doodler 2.0 Steg 2: Slå på den Till vända den på plug in den och sedan flytta växeln till hög eller låg. (PLA/trä) lo (ABS, Flexy) högSteg 3: Vänta för ljus för att indikera den är redo Om du ställer in det för "lo" ljuse...

Guide till få Epic Helander skrivbordsunderlägg

Här är den kompletta Ultimate Guide till att få episka Helander skrivbordsunderlägg (detta är för din dator!) =)Steg 1: Wll behöver du:En dator, mac eller windows är absolut bra, så du kan använda någon jag använder windows men mac är mycket lik så d...

Din kompletta Guide till Minecraft PE

så, naturligtvis, jag gjorde min typiska bläddra-igenom cykel av Instructables, som jag bara om en gång i timmen eller så, när jag såg en av mina favorit medlemmar hade postat nyligen ännu ett Minecraft tutorial (denna medlem var Austydude). Jag klic...

En nybörjares guide till Arduino

Efter några år av experimentera med Arduino, beslutade jag att det är dags att dela den kunskapen har jag fått. Så jag här går, en guide till Arduino, med nakna grunderna för nybörjare och lite mer avancerade förklaringar för personer som är något me...

Alltid aktuell Guide till Ubuntu

Hej killar! Detta är det alltid uppdaterat Guide till Ubuntu. Det kommer att uppdateras med varje ny version av Ubuntu. Den nuvarande utgåvan är Ubuntu 13.04 Raring Ringtail. Nästa utgåva, 13.10 uppkäftig Salamander, beror den 17 oktober eller så. Om...

Arduino VFD Display klocka handledning - en Guide till VFD displayer

... + Lite om VFDsMinns du (fortfarande) visning av din gamla CD-spelare, HiFi system eller bil radio? Har du någonsin märkt displayerna används på din lokala mataffär som visar du skannade objektet och priset för det?Dessa skärmar har en karakterist...

Starta guiden till att bygga ett omvänd osmos hydroponics filter

Hej alla, detta är en grundläggande guide till planering ut en RO (omvänd osmos) och hydroponics vattenfilter. Detta instructable kommer att ge några grundläggande steg, personliga erfarenheter och information du behöver att hjälpa dig bygga ett RO h...

Grundläggande Guide till Flux kärnhus bågsvetsning

Hej och Välkommen till SLO Makerspace guide till Flux kärnhus bågsvetsning! Detta Instructable syftar till att lära dig att använda Lincoln Weld Pak HD flux Metallpulverfylld båge svetsare. Denna maskin är är en av de mest grundläggande svetsare till...

Guide till Nerf

jag vet, jag vet, alla mod NERF vapen att göra dem mer kraftfull och skjuta längre. Dock om du var i ett NERF krig, inte skulle du förmodligen kunna använda dem. Jag skrev detta som en guide till NERF krig sedan bara guider redan ute finns för mods....

En Guide till Raspberry Pi Arduino kommunikation i inbyggda system

Det här är en guide till olika metoder för kommunikation mellan Raspberry Pi och Arduino. Denna guide är skapad av allt jag lärt mig från inrättandet av en kapacitet skog. Inlägget av projektet kan ses, en video av projektet kan ses här, och dokument...

En vetenskapsman Guide till Citizen Science

Den underbara rouzejp var vänlig nog att översätta denna guide till franska. Läs den här!Le merveilleux rouzejp en eu la gentillesse de traduire ce guide sv français. Lisez-le ici!Citizen science är i ropet just nu, som det ska vara!Dock kan det vara...

Nexus 7 Wifi (2013, Flo, Razor) - Guide till firmware installationer och flera ROM

Jag investerat mycket tid och försökte göra det så enkelt som möjligt, så Läs den information som tillhandahålls helt innan du börjar att bråka med din enhet.Infos här kan användas på modeller också, särskilt från Nexus-serien.Men du måste använda mo...

Omfattande Guide till elektroniska brödunderläggen: en Meta Instructable

Brödunderläggen vet ibland som prototyping styrelser eller proto styrelser är ett snabbt sätt att arbeta upp och experimenterar med elektroniska kretsar. Set av brödunderläggen kretsar var ursprungligen kretsar byggd på riktigt trä brödunderläggen. V...

Den samverkande Guide till spela leda gitarr

detta är en guide till att spela gitarr. Eftersom jag är en aktiv medlem, och Danny's instructable är oavslutad (och i något förlägger verkligen innacurate, t.ex.. hans flikar var upp och ner), beslöt jag att göra en av mina egna till höger hans miss...

En Super vaga Guide till brygga öl

En Super vaga Guide till brygga ölInga detaljer men om du letar efter en allmän uppfattning om vad som händer i hem brygga öl sedan denna video är för dig...

En Pissheads Guid till varenda droppe

Steg 1: Saker du behöver 1 box vin1 par sax1 pissheadNär du tror du har slut på vin från ditt vin box tänka igen, snabb och enkel guide till få varenda droppeSteg 2: När vinet inte längre filtrerar från kranen slita öppna upp i rutan och ta bort påse...

A-Z Modding Guide till Nerf natt-Finder

här är en mod guide till om allt du kan mod på en nerf nightfinderMATERIALNight finderskruvmejselEpoxi (eller varmt lim)PVC-rör 1/8hacka sågDrilltångelastiskt bandBuzz bee enda skott våreno-ringarrörmokare tejpdartsmörjmedel (vaseline)skumpermanenta...