Een volledige starter gids voor AVR's (4 / 10 stap)

Stap 4: USART als een seriële poort



De perifere USART die wordt geleverd met vele AVR micros is een flexibele poort die als veel verschillende protocollen fungeren kan.
Sommige micros hebben een UART die terwijl gelijkaardig, kan alleen worden uitgevoerd als een standaard seriële poort.

Terwijl het zo veel verschillende soorten seriële poort fungeren kan, gaan wij enkel te gebruiken als een standaard seriële poort, die ons toelaten zal om gemakkelijk gebruik de radio XBee later.
U kunt ook deze seriële poort verbinding maken met een oude computer, of via een FTDI chip te geven u een USB-Serial verbinding naar een nieuwe computer.
Dit is eigenlijk hoeveel arduinos werken, zij een FTDI chip gebruiken om een USB-seriële verbinding met de microcontroller.

In dit voorbeeld gaan we programma twee ATtimy2313 micros tekens verzenden via serieel aan elkaar.
Het breadboard opbouwen zoals in de afbeelding.
Laten we noemen het links micro A en het tweede B.

Pin 2 van A verbinden met pin 3 van B.
Pin 3 van A verbinden met pin 2 van B.

Pin 2 is de RXD (ontvangen) en pin 3 is TXD (Transmit).

Sluit een LED aan B op pin 11 (PD6) en een knop op een PIN 19 (PB7).

Gebruik de bijgevoegde code voor het programmeren van het twee-chips.
Instellen van de klok van elk 1MHz
Uncomment op Chip A deze regel:
#define zenden
en commentaar op deze regel:
#define ontvangen

Op chip B het tegenovergestelde te doen:
#define zenden
#define ontvangen

Nu, wanneer u op de knop op A drukt, zal de LED op B weer op!

Aanvankelijk het lijkt misschien niet erg indrukwekkend, maar u kunt dit om te praten met chips ver weg via een XBee radio, of naar een computer die kan handig zijn om te helpen debuggen uw code.

Dus, hoe werkt het?
Laat kijken naar de interessante lijnen:

UBRRH = 0;
UBRRL = 12;

Neem een kijkje in het gegevensblad van het UBRR-register.
Dit is een 12 bit te registreren, zodat er verschijnt een bericht als de 2313 een 8-bit micro is, dit is opgesplitst in twee bytes, hoge (UBRRH) en lage (UBRRL).
Het hoge register is niet een volledige register, met het bovenste gedeelte (4 bits) gereserveerd (niet gebruikt, maar moet niet worden aangeraakt voor toekomstige compatibiliteit).

Als u Ga naar de volgende pagina, ziet u een handige tabel voor verschillende baud-rates afhankelijk van uw micro's klok.
Voor dit voorbeeld willen we 9600 baud (nuttig later voor de XBee).
Kijkend naar de tabel voor 1MHz krijgen we een waarde van 6 voor de UBRR.
Het heeft echter een -7% tarief van de fout, die een beetje te hoog is.
Maar als je kijkt één kolom op er is een met 0,2% foutenmarge.
Wat is er anders?
De vlag U2X is ingesteld, en de UBRR is ingesteld op 12.

Wij gebruiken en stelt u de markering U2X.
Vervolgens hebben we verschillende instellingen kunnen worden geconfigureerd:
UCSRA = (1 << U2X);
UCSRB = (1 << RXEN) | (1 << TXEN);
UCSRC = (1 << UCSZ1) | (1 << UCSZ0);

Deze 3 registers worden beschreven in het gegevensblad, dus we naar hen slechts kort kijken zullen.
U2X wordt beschreven als "dubbele de UART transmissiesnelheid"
RXEN vertelt de USART ontvangen modus in te schakelen en TXEN is het inschakelen van zenden
UCSZ1 & UCSZ0 worden ingesteld op basis van de tabel op pagina 133, instellen van de tekengrootte van het als 8-bits.

Vervolgens aan de verzend kant hebben we deze lijn van code:
terwijl (! () UCSRA & (1 << UDRE)));
Dit is het controleren van de "USART gegevens registreren leeg" bit van de "USART controle en Status Register A".
Wanneer deze is ingesteld op 1, de lus wordt afgesloten en de volgende lijn van code kunt uitvoeren:
UDR = 'F';

Dit is in het teken van de 'F' doorgeven aan de buffer zenden, dit kan alleen worden geschreven wanneer het is duidelijk, en daarom hebben we de lus wachten voordat het.

Aan de kant van de ontvangen is op dezelfde manier:
terwijl (! () UCSRA & (1 << RXC)));

Hier wachten we de ontvangstbuffer leeg te zijn, en dan lezen we UDR om te zien welke waarde het heeft:
Als (UDR == 'F')

Je kon gewoon net zo gemakkelijk zet deze in een variabele als zo:
char x = UDR;

U moet lezen UDR Schakel het, en kunt u alleen het lezen een keer (na die het wist en kan een nieuwe teken in), dus als de waarde belangrijk voor u is, zorg ervoor dat u een kopie van de waarde op de eerste lezen!

Nu, in dit voorbeeld is opgesplitst in zenden en ontvangen, maar u kunt beide in een, ik wilde alleen maar het maken van een eenvoudig voorbeeld

Gerelateerde Artikelen

Een volledige Video-gids voor het kweken van erfstuk tomaten: Start to Finish!

Een volledige Video-gids voor het kweken van erfstuk tomaten: Start to Finish!

Deze video toont de geschiedenis van de gehele groei van een plant een "Black Krim" heirloom tomaat. Het zal u tonen:Hoe te planten tomatenHoe te bouwen van hot-house kooien (voor vroege aanplant)Hoe te snoeien uit sukkelsHoe maak je een ziekte
Een Super vaag gids voor het brouwen van bier

Een Super vaag gids voor het brouwen van bier

Een Super vaag gids voor het brouwen van bierGeen bijzonderheden maar als u op zoek bent voor een algemeen idee van wat er in huis brouwen van bier dan deze video is voor jou
Volledige idioten gids voor rc vliegtuigen

Volledige idioten gids voor rc vliegtuigen

In deze instructables, ik zal u tonen hoe te en wat u zult moeten om te bouwen van een modelvliegtuigen. Ik zal u vertellen hoe te bouwen en repareren van een rc vliegtuig. Laat nu begin met de theorie, vliegtuig kan vliegen is vanwege zijn vleugels
Mijn gids voor AVR Transistortesters

Mijn gids voor AVR Transistortesters

Als u een elektronica-hobbyist zijn AVR Transistortesters de grootste ding sinds gesneden brood! Waarom als Ron Popiel nog in leven was hij zou worden hawking deze dag en nacht op het winkelen netwerk. Maar soms is er zulk een ding als teveel van het
Hoe maak je een magnetische slijpen gids (voor verscherping beitels & Hand vliegtuigen) | DIY houtbewerking Tools #5

Hoe maak je een magnetische slijpen gids (voor verscherping beitels & Hand vliegtuigen) | DIY houtbewerking Tools #5

"Wanneer het [hout] graan tranen uit, ik wil mijn haren uit te scheuren."- GmoonTerwijl dit probleem niet vanwege Trichotillomanie optreedt, zeker gebeurt omdat u uw Hand-vliegtuigen correct zijn niet verscherping.Een gemakkelijke manier om een
Een COMPLETE beginners gids voor airsoft

Een COMPLETE beginners gids voor airsoft

deze handleiding is niet zoals andere instructables, deze handleiding bevat alles wat u weten om te gaan moet en plezier hebben. Nu, dankzij enkele tips heeft gereageerd op deze pagina, ik zal het toevoegen van wat nieuwe spullen... Controle het uit!
Een klimmer van gids voor de cijfer-acht volgen via knoop

Een klimmer van gids voor de cijfer-acht volgen via knoop

Rock klimmers hebben meestal een arsenaal van knopen, ze weten hoe om te binden, maar geen zo vaak wordt gebruikt als de figuur-acht doortasten. De cijfer-acht volgen door beveiligt de klimmer aan het touw via hun harnas en fungeert als hun beschermi
Baileigh combinatie Shear rem Roll: Een Quick Start Guide voor Pier 9

Baileigh combinatie Shear rem Roll: Een Quick Start Guide voor Pier 9

De Baileigh combinatie Shear/rem/Roll is gelegen aan de Autodesk Pier 9 Workshop in de Studio van metaal. Als u werken met plaatwerk op Pier 9 wilt, is dit hulpprogramma voor jou.De Baileigh Combiwerktuig kunt schuintrekken milde plaatstaal tot 16ga.
Mes slijpen met een whetstone: een eenvoudig hoek-gids voor de perfecte blade.

Mes slijpen met een whetstone: een eenvoudig hoek-gids voor de perfecte blade.

Mes, whetstone, & telefoon. Perfecte blade.Een mes met behulp van een steen slijpen kan lastig zijn als je net begint en u daadwerkelijk met een saai mes eindigen kunt. Het basisconcept van een mes te slijpen is gelijke hoeken aan beide zijden. 17-17
Een Maker's gids voor ATX-voedingen

Een Maker's gids voor ATX-voedingen

Er zijn tonnen van Instructables op welke manier voor kappen een afgedankte ATX (computer)-voeding met ventilator (PSU) in de voeding van een lab-Bank. Dit is niet een van hen.Mijn waarneming is dat de meeste makers, hackers en gekke wetenschappers n
Een arme iemands gids voor het kopen van een gitaar

Een arme iemands gids voor het kopen van een gitaar

elke websight die ik heb gezien dat u vertelt hoe te selecteren en een gitaar te kopen zijn gericht op volwassenen met geld. Ik ben niet zelfs op de middelbare school, dus geen van deze help me! Ik pakte een flink aantal kneepjes van het vak van mijn
De altijd actuele gids voor Ubuntu

De altijd actuele gids voor Ubuntu

Hi Guys!  Dit is het altijd Up-to-Date gids voor Ubuntu.  Deze zal worden bijgewerkt met elke nieuwe release van Ubuntu.  De huidige versie is Ubuntu 13.04 Raring oostelijke.  De volgende release, 13.10 Saucy Salamander is verschuldigde 17 oktober of
Maken van een aangepast formaat box voor afdrukken in 3D met OpenSCAD

Maken van een aangepast formaat box voor afdrukken in 3D met OpenSCAD

Op hybrislabs, we hebben onderzocht IoT hele hijs zootje en op een gegeven moment onze prototypes werd zo klein en geïntegreerde, dat we de noodzaak hadden te creëren van aangepaste vakken voor deze. Aanvankelijk gebruikten we 123D voor het maken van
Steeds een Maker: de complete gids voor een volledig functionele minishop: tools

Steeds een Maker: de complete gids voor een volledig functionele minishop: tools

Wat is een maker? Een maker is een DIY'er, recycle en reuse'er en een crafter. Zij nemen wat niet, en er wat Is. Makers hebben niet alleen Behendigheid, maar ook als de bepaling over zijn of haar project. Wat is er nodig om een maker? Ook de eerste s