Programowanie mikrokontrolerów AVR z rodziny ATmega.

Podobne dokumenty
TECHNIKA MIKROPROCESOROWA

Instytut Teleinformatyki

Komunikacja w mikrokontrolerach Laboratorium

Programowanie mikrokontrolerów. 15 stycznia 2008

Podstawy systemów mikroprocesorowych. Interfejs USART. Interfejsy szeregowe w mikrokontrolerach AVR

Układ transmisji szeregowej AVR

Programowanie mikrokontrolerów AVR z rodziny ATmega.

TECHNIKA MIKROPROCESOROWA

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Opis bezprzewodowego układu do pomiaru oporu elektrycznego skóry

Komunikacja szeregowa UART:

Instytut Teleinformatyki

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

1.1 Co to jest USBCOM? Budowa oraz parametry techniczne... 3

Programowanie Mikrokontrolerów. Komunikacja szeregowa w standardzie EIA232 z wykorzystaniem modułu USART.

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

. Rodzaje transmisji sygnału i RS-232

Instrukcja obsługi czytnika MM-R32

Moduł RS232 E054. TAP - Systemy Alarmowe Sp. z o. o. os. Armii Krajowej Poznań tel ; fax:

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Instrukcja do oprogramowania ENAP DEC-1

Kod produktu: MP-BT-RS232

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

MIKROPROCESORY architektura i programowanie

Kod produktu: MP01611

Instytut Teleinformatyki

KERN EW-A01 Wersja /99

Schematy Połączeń Kas Fiskalnych z Wagami Elektronicznymi

RS-H0-05 (K)* Czytnik RFID MHz Mifare. Karta użytkownika

Przemysłowe Sieci informatyczne

Instrukcja obsługi. Terminal SD for DB25 CNC

Hardware mikrokontrolera X51

CM ModBus RTU Slave Danfoss MCD3000 Master

Schematy połączeń dla kas Posnet COMBO i Posnet NEO

Konwerter DAN485-MDIP

Kod produktu: MP01105T

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Start Bity Bit Stop 1 Bit Par Rys. 1

Sterownik silnika krokowego. Aleksander Koreń

Komunikacja w mikrokontrolerach Laboratorium

Mikrokontrolery AVR Wprowadzenie

SML3 październik

Interfejsy systemów pomiarowych

IZOLATOR FOTOELEKTRYCZNY Z INTERFEJSEM SZEREGOWYM RS-232

CR232.S v2 KONWERTER CAN / RS232

CM ModBus RTU slave DMX master

Systemy wbudowane Wykład 6 - transmisje szeregowe: UART i pochodne. Komunikacja szeregowa Notes. Rodzaje transmisji Notes. Rodzaje transmisji Notes

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Przemysłowy odtwarzacz plików MP3

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

interfejs szeregowy wyświetlaczy do systemów PLC

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

INSTRUKCJA UŻYTKOWNIKA PROGRAMU

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Kod produktu: MP-BTM222-5V

Kod produktu: MP01611-ZK

Architektury Komputerów - Laboratorium Informatyka III rok studia dzienne

CM Konwerter SUCOM_A Master - ModBus RTU Slave

Magistrala LIN

dokument DOK wersja 1.0

Programowanie mikrokontrolerów. 8 listopada 2007

CM Konwerter ModBus RTU slave ModBus RTU slave

SYSTEM PRZERWAŃ ATmega 32

Problematyka sieci miejscowej LIN

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

System interfejsu RS 232C opracowali P. Targowski i M. Rębarz

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi

Instrukcje do laboratorium ASK (1)

MIKROPROCESORY architektura i programowanie

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Modem Bluetooth MBL-232/UK

Wstęp: Interfejs portu równoległego 6821 i portu szeregowego 6850 firmy Motorola

Wyświetlacz wolnostojący POS.

Opis procedur asemblera AVR

Instrukcja do konwertera USB-RS232

Aplikacja dla eksperymentu identyfikacyjnego z wykorzystaniem układu PAIO. Wykonał : Marcin Cichorowski Prowadzenie : dr inż.

PROTOKÓŁ MQTT (uzupełnienie do instrukcji obsługi miernika ND30)

Kod produktu: MP01105

Moduł nie może być zasilany z PoE. Nie ma wbudowanej przetwornicy PoE, a posiada tylko wyprowadzenie pinów RJ45 na płytkę PCB

Politechnika Wrocławska

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Komunikacja w mikrokontrolerach Laboratorium

SM211 RS485 - JBUS/MODBUS dla SM103E. Æ Instrukcja obsługi

TECHNIKA MIKROPROCESOROWA II

PUNKTOWE STEROWNIKI VERSAMAX MICRO

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Ogólne zasady zestawiania połączeń modemowych pomiędzy sterownikami serii PCD firmy SAIA- Burgess Electronics oraz komputerem systemu asix

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Transkrypt:

Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora surowo zabronione. Strona1

Port szeregowy o Charakterystyka Port służący do komunikacji szeregowej, w którym dane wysyłane są bit po bicie. Port może pracować w dwóch trybach: synchronicznym i asynchronicznym. Obecnie używany jest niemal wyłącznie ten drugi. Do podstawowej transmisji wystarczą dwie linie RxD i TxD oraz trzecia masa (GND), stanowiąca poziom odniesienia. RxD służy do odbioru danych TxD służy do transmisji danych Jeżeli chcemy połączyć dwa urządzenia wyposażone w port szeregowy należy linię RxD w jednym urządzeniu połączyć z linią TxD w drugim (wykonać tzw. cross) i analogicznie linię TxD pierwszego urządzenia z RxD drugiego. W porcie szeregowym występują również inne linie: DCD, DTR, DSR, RTS, CTS, RI i służą m.in. do sprzętowego sterowania transmisją kontrola przepływu danych (ang. flow control). W tym miejscu należy wspomnieć, że w układach ATmega16/32 nie występuje sprzętowa obsługa sterowania transmisją, a jedynie możliwa jest jej programowa realizacja. o Budowa ramki danych Jeżeli port jest w stanie spoczynku - nie ma transmisji, na linii TxD jest stan wysoki. Ramka rozpoczyna się od bitu startu (stan niski), a następnie transmitowane są bity danych (5-8), opcjonalny jest bit parzystości (typu parzystego lub nieparzystego). Na końcu występuje bit stopu (stan wysoki), którego długość jest konfigurowalna. Powyższy opis został przedstawiony na rysunku 1. [ ] elementy opcjonalne St bit startu P bit parzystości Sp bit stopu Rysunek 1. Budowa ramki Strona2

o Parametry a. prędkość transmisji b. ilość bitów danych od 5 do 8 c. bit parzystości d. długość bitu stopu e. kontrola przepływu danych 1 o Obsługa portu szeregowego w ATmega16/32 UCSRA rejestr statusowy UCSRB rejestr konfiguracyjny (włączanie poszczególnych układów nadajnika, odbiornika, przerwań) UCSRC - rejestr konfiguracyjny (ustawianie parametrów transmisji) UBRR (UBRRH+UBRRL) rejestr konfiguracyjny, złożony z dwóch 8-bitowych rejestrów, służy do ustawienia prędkości transmisji UDR rejestr odczytu/zapisu danych (fizycznie dwa rejestry), zapis do rejestru powoduje transmisję, odczyt pozwala uzyskać odebrane dane W układach ATmega16/32 nie ma kolejki danych. Jeżeli w rejestrze UDR jest bajt danych i odbiornik otrzyma kolejne dane, wówczas zawartość UDR zostanie nadpisana. Podobnie wygląda sytuacja, jeżeli zapiszemy do UDR nowe dane przed wysłaniem starych - zostaną one nadpisane. 1 Jeżeli używamy tylko dwóch linii, to należy wyłączyć tę opcję. Może być stosowana tylko wtedy, gdy korzystamy z pełnego zestawu sygnałów. W układach ATmega16/32 nie ma takiej możliwości (aby obsłużyć kontrolę sprzętowo). Strona3

GPS o Informacje podstawowe System globalnego pozycjonowania wykorzystywany w wielu gałęziach gospodarki, jak i w celach militarnych. Pozwala na określenie aktualnego położenia, wysokości, prędkości, oraz kierunku ruchu, bieżącego czasu oraz daty. Rodzaj, ilość i dokładność informacji jest zależna od wykorzystywanej wersji i przeznaczenia urządzenia. o Protokół komunikacji z urządzeniami GPS Istnieje wiele różnych protokołów komunikacyjnych, wykorzystywanych przez urządzenia GPS, wśród których obecnie najpopularniejszym jest standard NMEA 0183. Jest to standard komunikacji między morskimi urządzeniami elektronicznymi. Dane w tym protokole są transmitowane w postaci kodów ASCII. Każda ramka danych rozpoczyna się znakiem $, po którym występuje identyfikator typu danych, dane, suma kontrolna, a po niej znak powrotu karetki <CR> i nowej linii <LF>. Powyższe oznacza, że dane z modułu możemy bez problemu odczytać w dowolnym terminalu, obsługującym standard RS232, ustawiając uprzednio odpowiednie parametry transmisji. Ramki różnią się zawartością i organizacją danych. W tabeli 1 przedstawiono identyfikatory wiadomości wraz z krótkim opisem zawartości ramek, natomiast w tabeli 2 przedstawiono przykładową ramkę w standardzie NMEA. Nazwa ramki Ważniejsze informacje w ramce GGA GSA GSV RMC VTG Czas, pozycja Tryb pracy odbiornika, aktywne satelity Ilość widocznych satelit, ich numery identyfikacyjne, azymut Czas, data, pozycja, kierunek, prędkość Kierunek i prędkość Tabela 1. Identyfikatory ramki wraz z opisem zawartości. Strona4

Przykładowa ramka $GPRMC,064951.000,A,2307.1256,N,12016.4438,E,0.03,165.48,260406,,,A*55 Parametr Wartość Jednostka Opis Identyfikator wiadomości $GPRMC Nagłówek protokołu Czas UTC 064951.000 Format hhmmss.sss Status A A dane poprawne, V dane niepoprawne Długość 2307.1256 Format ddmm.mmmm Wskaźnik półkuli N N północ, S - południe Szerokość 12016.4438 dddmm.mmmm Wskaźnik kierunku E E wschód, W - zachód Prędkość pozioma 0.03 Mm/h Azymut 165.48 stopnie Data 260406 ddmmyy Deklinacja magnetyczna stopnie E wschód, W - zachód Tryb A autonomiczny, D dyferencyjny, E - estymowany Suma kontrolna *65 <CR> <LF> Koniec ramki Tabela 2. Przykład ramki w standardzie NMEA wraz z opisem Strona5

Materiały pomocnicze o Prosta obsługa portu szeregowego #define F_CPU 1000000ul #define UART_BAUD 2400ul #define UART_CONST (F_CPU/(16ul*UART_BAUD)-1) #include <avr/io.h> int main(void) DDRD=0xfe; PORTD=0xff; //konfiguracja portu szeregowego UBRRH = (unsigned char)(uart_const>>8); UBRRL = (unsigned char)uart_const; UCSRB = (1<<TXEN); //wlaczony nadajnik while(1) while (!( UCSRA & (1<<UDRE)) ); UDR = 'j'; return 0; Strona6

o Obsługa portu szeregowego zrealizowana na przerwaniach #define F_CPU 1000000ul #define UART_BAUD 2400ul #define UART_CONST (F_CPU/(16ul*UART_BAUD)-1) #include <avr/io.h> #include <avr/interrupt.h> // Funkcja wysylajaca ciag znakow void UART_SEND_string(char *s) do while (!( UCSRA & (1<<UDRE)) ); UDR = *s; while(*s++!='\0'); // Przerwanie wywolane zakonczeniem odbioru ISR(USART_RXC_vect) UDR; UART_SEND_string("To ja, Twoj kontroler :)\n\r"); int main(void) DDRD=0xfe; PORTD=0xff; // wlaczenie przerwan SREG=(1<<SREG_I); //konfiguracja portu szeregowego UBRRH = (unsigned char)(uart_const>>8); UBRRL = (unsigned char)uart_const; UCSRB = (1<<RXEN) (1<<TXEN) (1<<RXCIE); odbioru //wlaczony nadajnik, odbiornik, przerwanie od while(1) return 0; o Dane z modułu GPS $GPGGA,064951.000,2307.1256,N,12016.4438,E,1,8,0.95,39.9,M,17.8,M,,*65 $GPGSA,A,3,29,21,26,15,18,09,06,10,,,,,2.32,0.95,2.11*00 $GPGSV,3,1,09,29,36,029,42,21,46,314,43,26,44,020,43,15,21,321,39*7D $GPRMC,064951.000,A,2307.1256,N,12016.4438,E,0.03,165.48,260406,,,A*55 $GPVTG,165.48,T,,M,0.03,N,0.06,K,A*37 Strona7