Komunikacja w mikrokontrolerach Laboratorium



Podobne dokumenty
TECHNIKA MIKROPROCESOROWA

Komunikacja w mikrokontrolerach Laboratorium

Programowanie mikrokontrolerów. 15 stycznia 2008

Układ transmisji szeregowej AVR

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

Instytut Teleinformatyki

Komunikacja w mikrokontrolerach Laboratorium

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Mikroprocesory i Mikrosterowniki Laboratorium

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

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

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

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

MIKROPROCESORY architektura i programowanie

Instytut Teleinformatyki

TECHNIKA MIKROPROCESOROWA II

Komunikacja w mikrokontrolerach Laboratorium

Podstawy Techniki Mikroprocesorowej Laboratorium

TECHNIKA MIKROPROCESOROWA II

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

TECHNIKA MIKROPROCESOROWA

Kod produktu: MP-BTM222-5V

Kod produktu: MP01611

Hardware mikrokontrolera X51

Instrukcja Obsługi. Modułu wyjścia analogowego 4-20mA PRODUCENT WAG ELEKTRONICZNYCH

Przemysłowy odtwarzacz plików MP3

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

Spis tre 1. Przedstawienie standardu Opis sprz towy AVR+MAX Wykorzystanie USARTa Przykładowe programy obsługi w j

Programowanie mikrokontrolerów. 8 listopada 2007

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

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Programator procesorów rodziny AVR AVR-T910

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

Kod produktu: MP01611-ZK

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

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

Kod produktu: MP01105T

dokument DOK wersja 1.0

Architektury Komputerów - Laboratorium Informatyka III rok studia dzienne

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

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

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

Instrukcja obsługi czytnika MM-R32

Wbudowane układy peryferyjne cz. 2 Wykład 8

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Mikroprocesory i Mikrosterowniki Laboratorium

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

SML3 październik

2. Architektura mikrokontrolerów PIC16F8x... 13

INSTRUKCJA OBSŁUGI PROGRAMU DO ODCZYTU PAMIĘCI FISKALNEJ DATECS OPF

Komunikacja szeregowa UART:

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Kod produktu: MP01105

Modem Bluetooth MBL-232/UK

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

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

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

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

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Kod produktu: MP-BT-RS232

MIKROKONTROLERY I MIKROPROCESORY

Moduł licznika położenia LP 2.

Instrukcja do oprogramowania ENAP DEC-1

Czujnik zbliżeniowy indukcyjny

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

CM Konwerter ModBus RTU slave ModBus RTU slave

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

STEROWNIK ŚWIATEŁ i SZLABANÓW SWS-4/485K/UK

Kod produktu: MP01611-ZK

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

TRB-0610 Konwerter USB RS 232/422/485 Instrukcja obsługi

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows XP

Przemysłowy odtwarzacz plików MP3 SD

Programowanie w językach asemblera i C

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

GRM-10 - APLIKACJA PC

Konwerter Transmisji KT-02

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows 2000

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

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 4

ALNET USB - RS Konwerter USB RS 232/422/485 Instrukcja obsługi

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

W.J WIELICZKA

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

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

SYSTEM PRZERWAŃ ATmega 32

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

Odbiór i dekodowanie znaków ASCII za pomocą makiety cyfrowej. Znaki wysyłane przez komputer za pośrednictwem łącza RS-232.

Instytut Teleinformatyki

Kod produktu: MP-BT-USB

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

Site Installer v2.4.xx

Konfiguracja parametrów sondy cyfrowo analogowej typu CS-26/RS/U

Transkrypt:

Laboratorium Ćwiczenie 2 Magistrala UART Program ćwiczenia: konfiguracja transmisji danych między komputerem PC a mikrokontrolerem przy użyciu magistrali UART. Zagadnienia do przygotowania: podstawy programowania mikrokontrolerów w języku C, obsługa magistrali UART w mikrokontrolerach AVR, licznik T/C1 w trybie pracy normalnym obsługa, konwerter analogowo-cyfrowy obsługa. Literatura: [1] Wykład [2] Dokumentacja mikrokontrolera ATmega8535, www.atmel.com. [3] Mikrokontrolery AVR ATmega w praktyce, R. Baranowski, BTC 2005. [4] AVR i ARM7. Programowanie mikrokontrolerów dla każdego, P. Borkowski, Helion 2010. [5] Mikrokontrolery AVR Język C. Podstawy programowania, M. Kardaś, Atnel 2011. Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski 2015

Zawartość instrukcji 1. Wstęp...1 2. Magistrala UART...1 3. HyperTerminal...3 4. Układ scalony MAX232...5 5. Licznik T/C1...5 6. Konwerter analogowo-cyfrowy...5 7. Przykładowe zadania...5 UWAGA! Do poprawnej obsługi mikrokontrolera niezbędne jest korzystanie z jego dokumentacji. Instrukcja zawiera pewne uproszczenia w stosunku do rzeczywistych możliwości mikrokontrolera oraz języka C. 1. Wstęp W trakcie ćwiczenia należy nawiązać połączenie między komputerem PC a mikrokontrolerem. Następnie przesyłać pakiety danych w obu kierunkach. Danymi będą znaki alfanumeryczne (kod ASCII) lub wyniki generowane przez urządzenia peryferyjne mikrokontrolera, takie jak liczniki, konwerter analogowo-cyfrowy. Do komunikacji zostanie wykorzystana magistrala RS232 komputera PC oraz odpowiadająca jej magistrala UART mikrokontrolera. Należy pamiętać, że obie zasadniczo się różnią poziomami napięć logicznych, dlatego konieczne jest zastosowanie scalonego konwertera napięć MAX232. Programem obsługującym komunikację po stronie mikrokontrolera będzie HyperTerminal, aplikacja znajdująca się w podstawowym pakiecie systemu Windows XP. Stworzenie programu obsługi komunikacji po stronie mikrokontrolera będzie tematem ćwiczeń. 2. Magistrala UART Magistrala UART jest magistrala szeregową. Komunikacja odbywa się za pośrednictwem dwóch wyprowadzeń RxD oraz TxD. TxD służy do wysyłania, RxD do odbioru danych. Są one połączone krzyżowo, tzn. TxD_1 RxD_2 oraz RxD_1 TxD_2. Z punktu widzenia mikrokontrolerów AVR nawiązanie komunikacji wymaga: konfiguracji magistrali; wystawienia danych do wysłania (jeśli nadajemy); oczekiwania na zakończenie transmisji; odczytaniu otrzymanych danych (jeśli odbieramy). 1 dr inż. Piotr Markowski 2015

Magistrala UART w mikrokontrolerach AVR jest zaimplementowana w bardzo elastyczny sposób, tzn. umożliwia dostosowanie do potrzeb użytkownika wielu detali (np. długość ramki danych, bity stop oraz parzystości, praca synchroniczna, prędkość transmisji). W trakcie laboratorium będzie wykorzystywana najbardziej podstawowa wersja ramki danych, co znacząco upraszcza konfigurację magistrali. 2.1. Konfiguracja magistrali Konfiguracja magistrali polega na odpowiednim ustawieniu rejestrów specjalnych UCSRA, UCSRB, UCSRC, UBRRH, UBRRL. Rejestr kontrolny UCSRA: jest to głównie rejestr flag informacyjnych. Najprostsza, podstawowa konfiguracja magistrali nie wymaga wpisu do tego rejestru. Pomijamy. Rejestr kontrolny UCSRB: umożliwia aktywację przerwań, zmianę rozmiaru ramki. W kontekście zajęć laboratoryjnych istotne są tylko 2 bity (białe tło w tab. 1). Tab. 1. Bity rejestru UCSRB 7 6 5 4 3 2 1 0 nr bitu RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 UCSRB 0 0 0 0 0 0 0 0 stan pocz. RXEN aktywuje odbiornik UART ( 1 jeśli chcemy odbierać dane). TXEN aktywuje nadajnik UART ( 1 jeśli chcemy nadawać dane). Rejestr kontrolny UCSRC (tab. 2): głównie ustala szczegóły ramki danych. W kontekście laboratorium ustalamy warunki jak w opisie poniżej. Tab. 2. Bity rejestru UCSRC 7 6 5 4 3 2 1 0 nr bitu URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL UCSRC 1 0 0 0 0 1 1 0 stan pocz. URSEL umożliwia modyfikację rejestru UCSRC. Należy ustawić na 1. UMSEL wybieramy pracę asynchroniczną (zob. opis rejestru w dokumentacji). UPM1, UPM2 wybieramy brak bitu parzystości (zob. opis rejestru w dokumentacji). USBS wybieramy 1 bit stopu (zob. opis rejestru w dokumentacji). UCSZ1, UCSZ0 wybieramy 8 bitów danych (zob. opis rejestru w dokumentacji). UCPOL wybór polaryzacji sygnału zegarowego, ustawiamy 0. Rejestr baud rate UBRR (UBRRH, UBRRL): 15 14 13 12 11 10 9 8 nr bitu URSEL - - - bity UBRR [11:8] UBRRH 0 0 0 0 0 0 0 0 stan pocz. 7 6 5 4 3 2 1 0 nr bitu bity UBRR [7:0] UBRRL 0 0 0 0 0 0 0 0 stan pocz. 2 dr inż. Piotr Markowski 2015

Wpisując wartość do tego rejestru ustalamy prędkość transmisji. Jest kilkanaście standardowych wartości baud rate dla magistrali UART/RS232, np. 2400, 4800, 9600, 57600. Należy zdecydować się na jakąś prędkość i dokonać przeliczenia zgodnie ze wzorem: f osc UBRR = 16 BAUD _ RATE 1, gdzie f osc = 1 MHz, BAUD_RATE wybrana prędkość transmisji. Alternatywnie można skorzystać z tabel 69-72 z dokumentacji (s. 168-171) i odczytać wartość, którą należy wpisać jako UBRR. Magistrala jest gotowa do pracy. W momencie wpisania danych do rejestru nadawczego UDR rozpocznie się transmisja. Należy czekać na zakończenie transmisji (kod przykładowy w podrozdziale Data Transmission The USART Transmitter dokumentacji) i obserwować okno dialogowe programu HyperTerminal. W przypadku odbioru danych, po konfiguracji magistrali należy oczekiwać na przesłane dane przykład pętli oczekującej można znaleźć w dokumentacji w podrozdziale Data Reception The USART Receiver. 3. HyperTerminal HyperTerminal jest jednym z programów w prosty umożliwiających komunikację z wykorzystaniem portów szeregowych COM komputera PC. Przy pierwszym uruchomieniu aplikacja może poprosić o podanie informacji o lokalizacji, które nie maja znaczenia w kontekście komunikacji mikrokontroler PC. Po zatwierdzeniu przyciskiem OK pojawi się okno nowego połączenia (rys. 1). Rys. 1. Tworzenie nowego połączenia w programie HyperTerminal. Wybieramy ikonę telefonu (jak na rys. 1) i wpisujemy nazwę (dowolną) połączenia. W następnym oknie wybieramy port COM, z którego chcemy korzystać (rys. 1). W kolejnym oknie ustalamy parametry transmisji konieczne identyczne jak zostały wybrane w rejestrze UCSRC (wybrana prędkość, 8 bitów danych, brak bitu parzystości, 1 bit stopu) oraz wybieramy sterowanie przepływem: brak (rys. 2). Ukaże się okno dialogowe, terminal jest gotowy do użycia. Makietę laboratoryjną należy połączyć z wybranym portem komputera. 3 dr inż. Piotr Markowski 2015

Rys. 2. Tworzenie nowego połączenia w programie HyperTerminal. Mikrokontroler wysyła/odbiera pakiety 8-bitowe, zatem liczby z zakresu 0 255. HyperTerminal odbierane/wysyłane dane interpretuje jako znaki kodu ASCII. Na rys. 3 przedstawiono tablicę kodową ASCII. Rys. 3. Tablica kodów ASCII. 4 dr inż. Piotr Markowski 2015

4. Układ scalony MAX232 Układ scalony MAX232 służy do konwersji poziomów logicznych magistrali UART na poziomy standardu RS232. Pin wyjściowy TxD mikrokontrolera należy połączyć z pinem TxD układu MAX232. Analogicznie piny RxD. 5. Licznik T/C1 Dokładne informacje na temat pracy liczników zawiera dokumentacja mikrokontrolera [2] oraz materiały z wykładu [1]. Na zajęciach laboratoryjnych wykorzystywany będzie tryb pracy normalny lub CTC licznika T/C1. Licznik będzie pracował w trybie zliczania impulsów/odliczania czasu (nie w trybie generowania przebiegu prostokątnego). W związku z tym w ustawieniach rejestrów sterujących pracą licznika (TCCR1A, TCCR1B s. 110 [2]) na bitach COM1xx, FOC1x, ICNC1 oraz ICES1 należy wpisać 0. Bity WGM1x należy ustawić adekwatnie do wybranego trybu pracy. W trakcie laboratorium będzie konieczna znajomość funkcji i sposobu użycia rejestru zliczającego TCNT1 oraz rejestrów porównawczych OCR1A i OCR1B, a także rejestru odblokowującego przerwania liczników (TIMSK). Wyczerpujące informację o wymienionych rejestrach można znaleźć w literaturze do laboratorium [1-5]. 6. Konwerter analogowo-cyfrowy Dokładne informacje na temat pracy konwertera zawiera dokumentacja mikrokontrolera [2] oraz materiały z wykładu [1]. Jako napięcie odniesienia należy wybrać pin AREF lub AVCC (na makiecie są połączone elektrycznie). Konwerter może pracować w trybie pojedyncza konwersja (bit ADATE w rejestrze ADCSRA = 0 ) lub seria konwersji (free running, bit ADATE w rejestrze ADCSRA = 1 ). Prescaler należy tak dobrać, aby po podziale częstotliwości 1 MHz taktującej mikrokontroler otrzymać wartość z przedziału od 50 khz do 200 khz (zalecenia producenta). W trakcie laboratorium będzie konieczna umiejętność uruchomienia konwertera i odczytania wyniku konwersji. 7. Przykładowe zadania a) skonfiguruj połączenie mikrokontroler AVR komputer PC przy użyciu magistrali UART. Wysyłaj i odbieraj pojedyncze bajty; b) przy pomocy licznika T/C0 odlicz 50 impulsów zewnętrznych, doprowadzanych przez wejście T0; c) przy pomocy licznika T/C1 odlicz czas 1 min; d) uruchom konwerter analogowo-cyfrowy w trybie pojedynczej konwersji; konwersja sygnału doprowadzonego do wejścia ADC5 ma się rozpoczynać każdorazowo po naciśnięciu przycisku podłączonego na wejściu PA0; e) napisz program konwertujący liczbę binarną na kod dziesiętny. 5 dr inż. Piotr Markowski 2015