Configurazione USART per comunicazione seriale con microcontrollore AVR (Atmel 8)

Prova Il Nostro Strumento Per Eliminare I Problemi





Il microcontrollore è un dispositivo di controllo che contiene una serie di periferiche come RAM, ROM TIMER, comunicazione seriale dei dati , ecc., necessari per eseguire alcune attività predefinite. Al giorno d'oggi, tipo avanzato di microcontrollori sono utilizzati in un'ampia varietà di applicazioni in base alla loro capacità e fattibilità per eseguire alcune attività desiderate e questi controller includono 8051, microcontrollore AVR e PIC . In questo articolo, impareremo a conoscere il microcontrollore avanzato della famiglia AVR e la sua programmazione .

Microcontrollore AVR

L'AVR è un tipo di dispositivo di controllo prodotto dalla Atmel Corporation nel 1996. L'AVR non rappresenta nulla, è solo un nome. L'AVR i microcontrollori sono costituiti dall'architettura di Harvard e quindi il dispositivo funziona molto velocemente con un numero ridotto di istruzioni a livello di macchina (RISC). I microcontrollori AVR sono costituiti da caratteristiche speciali rispetto ad altri microcontrollori come modalità 6-sleep, ADC integrato, oscillatore interno e comunicazione dati seriale, ecc. Microcontrollori AVR sono disponibili in diverse configurazioni di 8 bit, 16 bit e 32 bit per eseguire varie operazioni.




Microcontrollore AVR

Microcontrollore AVR

Comunicazione seriale dei dati USART nel microcontrollore AVR

USART sta per ricevitore e trasmettitore sincrono e asincrono universale. È una comunicazione seriale di due protocolli. Questo protocollo viene utilizzato per trasmettere e ricevere i dati bit per bit rispetto agli impulsi di clock su un singolo filo. Il Microcontrollore AVR ha due pin: TXD e RXD, che sono usati specialmente per trasmettere e ricevere i dati in modo seriale. Qualsiasi microcontrollore AVR è costituito dal protocollo USART con le proprie caratteristiche.



Comunicazione USART nel microcontrollore AVR

Comunicazione USART nel microcontrollore AVR

Le caratteristiche principali di AVR USART

  • Il protocollo USART supporta il protocollo full-duplex.
  • Genera baud rate ad alta risoluzione.
  • Supporta la trasmissione di bit di dati seriali da 5 a 9 ed è costituito da due bit di stop.

Configurazione pin USART

L'USART di AVR è costituito da tre Pin:


  • RXD: pin del ricevitore USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: pin del trasmettitore USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: pin dell'orologio USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Modalità di funzionamento

Il microcontrollore AVR del protocollo USART funziona in tre modalità che sono:

  • Modalità normale asincrona
  • Modalità asincrona a doppia velocità
  • Modalità sincrona
Modalità di funzionamento

Modalità di funzionamento

Modalità normale asincrona

In questa modalità di comunicazione, i dati vengono trasmessi e ricevuti bit per bit senza impulsi di clock dalla velocità di trasmissione predefinita impostata dal registro UBBR.

Modalità asincrona a doppia velocità

In questa modalità di comunicazione, i dati trasferiti al doppio del baud rate vengono impostati dal registro UBBR e impostati i bit U2X nel registro UCSRA. Questa è una modalità ad alta velocità per la comunicazione sincrona per la trasmissione e la ricezione dei dati rapidamente. Questo sistema viene utilizzato laddove sono richieste impostazioni accurate della velocità di trasmissione e dell'orologio di sistema.

Modalità sincrona

In questo sistema, la trasmissione e la ricezione dei dati rispetto all'impulso di clock è impostato UMSEL = 1 nel registro UCSRC.

Configurazione USART nel microcontrollore AVR

USART può essere configurato utilizzando cinque registri come tre registri di controllo , un registro dati e un registro di selezione della velocità di trasmissione, come UDR, UCSRA, UCSRB, UCSRC e UBRR.

7 passaggi per la composizione del programma

Passo 1: Calcola e imposta la velocità di trasmissione

La velocità di trasmissione di USART / UART è impostata dal registrar UBRR. Questo registro viene utilizzato per generare la trasmissione dei dati alla velocità specifica. L'UBRR è un registro a 16 bit. Poiché l'AVR è un microcontrollore a 8 bit e qualsiasi dimensione di registro è di 8 bit. Quindi, qui il registro UBRR a 16 bit è composto da due registri a 8 bit come UBRR (H), UBRR (L).

La formula del baud rate è

BAUD = Scuro / (16 * (UBBR + 1))

La formula del registro UBRR è

UBRR = Scuro / (16 * (BAUD-1))

La frequenza del microcontrollore AVR è di 16 MHz = 16000000 Supponiamo che la velocità di trasmissione sia di 19200 Bps, quindi

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51,099

Alla fine trova il baud rate

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230 bps

Passo 2: Selezione della modalità dati

La modalità di trasmissione dei dati, i bit di avvio e di arresto e la dimensione dei caratteri vengono impostati dal registro di controllo e stato UCSRC.

Selezione della modalità dati

Selezione della modalità dati

Step3: Selezione della modalità di trasmissione dei dati

La modalità sincrona e asincrona viene selezionata dal bit UMSEL del registro dello stato di controllo. Se diamo UMSEL = 0, l'USART funziona in modalità asincrona, altrimenti funziona in modalità sincrona.

Selezione della modalità di trasmissione dei dati

Selezione della modalità di trasmissione dei dati

Step4: Bit di avvio e bit di stop

I bit di inizio e di fine sono un modo per inviare e ricevere i dati in modo seriale. Generalmente qualsiasi data fame consiste in un bit stat e un bit di stop, ma il microcontrollore AVR ha un bit di avvio e due bit di stop per l'elaborazione dei dati. Il bit di stop extra può essere utile per aggiungere un po 'di tempo di elaborazione in ricezione in più. È particolarmente utile per velocità di trasferimento dati elevate, mentre la velocità di trasferimento dati è molto elevata, quindi non otteniamo dati corretti. Pertanto, possiamo aumentare il tempo di elaborazione utilizzando due bit di stop per ottenere i dati corretti.

Bit di avvio e bit di stop

Bit di avvio e bit di stop

Il numero di bit di stop è selezionato dal bit USBS di UCSRC - il registro dello stato di controllo. USBS = 0, per un bit di stop, e USBS = 1, per due bit di stop.

Passaggio 5: Imposta la dimensione del carattere

Come nel caso di microcontrollori di base inviando e ricevendo il byte di dati (8 bit) alla volta, sia in un microcontrollore AVR, possiamo scegliere un formato di frame di dati in ogni frame dal bit UCSZ del registro UCSRC.

Formato frame dati

Formato frame dati

Step6: Memorizza i dati ricevuti

Il microcontrollore AVR è costituito da un registro buffer UDR per la trasmissione e la ricezione dei dati. L'UDR è un registro buffer a 16 bit in cui vengono utilizzati 8 bit per ricevere (RXB) i dati e altri bit vengono utilizzati per la trasmissione dei dati (TXB). La trasmissione del registro del buffer dei dati sarà la destinazione del registro UDR per i dati scritti nella sua posizione. La ricezione del registro del buffer di dati restituirà il contenuto del registro UDR.

Step7: Abilitazione trasmettitore e ricevitore

I dati trasmessi e ricevuti saranno consentiti dai pin RXC e TXC del microcontrollore che sono impostati dal registro UCSRA del microcontrollore. Questo bit flag impostato dal microcontrollore per i dati è completato dalla ricezione e dalla trasmissione (TXC = RXC = 1).

Raddoppia la velocità di trasmissione

Possiamo raddoppiare la velocità di trasferimento della comunicazione USART dell'AVR microcontrollore da 16 bit a 8 bit efficacemente dal bit U2X nel registro UCSRA. Questo bit ha effetto solo sul funzionamento asincrono. Se possiamo impostare questo bit (U2X = 1), ridurrà la velocità di trasmissione da 16 bit a 8 bit raddoppiando effettivamente la velocità di trasferimento per la comunicazione sincrona.

Questa è una funzionalità avanzata del microcontrollore AVR per un'elaborazione rapida dei dati.

Programma USART

Ogni microcontrollore è predefinito con un IDE specifico e, in base a questo IDE, i microcontrollori sono programmati con C incorporato o linguaggio assembly. La programmazione del microcontrollore AVR è sviluppata dallo studio AVR. Inoltre, se desideri ulteriori informazioni su passaggi per costruire progetti basati su microcontrollore , o informazioni dettagliate su questo argomento, puoi contattarci commentando di seguito.