|
Kategorie: Diplomové, bakalářské práce |
Tento dokument chci!
Cílem této práce bylo navrhnout a vytvořit regulátor otáček pro jednosměrné řízení bezkomutátorových střídavých motorů (BLDC) používaných v leteckém modelářství. Celé zapojení je ovládáno mikroprocesorem Atmel AVR. Jako pohonná jednotka promotor je použita akumulátorová sada typu Li–pol. Regulátor je vybaven obvodem BEC pro napájení přijímače a umožňuje monitorování odebíraného proudu a napětí na pohonném akumulátoru. Změřená data je možné uploadovat do PC, kde je možné jepomocí programu Regulátor PC zobrazit v grafické podobě.
2 párového registru UBRRH UBRRL. Obě funkce byly převzaty z
[10].
USART (Univerzal Synchronous and Asynchronous Receiver and Transmitter) je
obvod schopný obousměrné komunikace rychlostmi jednotek desítek kbaud.
UCSRB=(1<<RXEN)|(1<<TXEN);
Tímto jednotka USART připravena komunikaci. Celý zdrojový kód vypadá následovně:
void USART_Send(unsigned char znak) //funkce pro odvysílání znaku
přes USART
{
while(!(UCSRA (1<<UDRE))) //čeká vyprázdnění bufferu
{
}
UDR=znak; //vloží bufferu znak
}
char USART_Receive() //funkce pro příjem znaku přes USART
{
while(!(UCSRA (1<<RXC))) čeká nastavení RXC –
příjem kompletní
{
}
return UDR; //vrací znak bufferu
}
.45
3. Jako první nastavena přenosová rychlost. tomuto účelu přímo
nabízí jednotka USART, kterou mikrokontroler ATmega8 disponuje. Pro asynchronní
přenos zvolenou rychlost BAUD 57600 baud dle [10] platí:
81
5760016
108
1
16
6
=−
⋅
⋅
=−
⋅
=
BAUD
f
UBRR OSC
(3.2)
Dalším krokem nastavení počtu datových bitů, stop bitů případné parity. tomu slouží funkce USART_Init (unsigned
int baud). Zde
bylo vybráno datových bitů, stop bit žádná parita.7 Využití USART pro komunikaci PC
Jedním bodů zadání práce byl požadavek komunikaci mezi regulátorem PC
z důvodu odesílání změřených hodnot napětí proudů PC.1. provede zapsáním hodnoty
vypočtené dle vztahu 3. Odvysílání dat prováděno
vložením znaku vysílacího datového registru (bufferu). zajišťuje funkce
USART_Send( Obdobně pro příjem dat přes USART dispozici funkce
USART_Receive( vrací hodnotu přijímacího bufferu.
Umožňuje jak synchronní, tak asynchronní přenos možností nastavení datových
bitů, nastavení počtu stop-bitů parity. [6]
Před použitím jednotky USART nejprve nutné určit některé parametry
komunikace, neboli provést inicializaci. registru UCSCR tak
zapíšeme hodnotu:
UCSRC=(1<<URSEL)|(3<<UCSZ0);
Nakonec registru USCRB povolíme příjem vysílání zapsáním bitů RXEN TXEN
do hodnoty 1. Umožňuje samozřejmě také multiprocesorovou
komunikaci