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

Podobne dokumenty
Mikroprocesory i Mikrosterowniki Laboratorium

Komunikacja w mikrokontrolerach Laboratorium

TECHNIKA MIKROPROCESOROWA

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

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

Programowanie mikrokontrolerów. 15 stycznia 2008

Komunikacja w mikrokontrolerach Laboratorium

Układ transmisji szeregowej AVR

Instytut Teleinformatyki

Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Instytut Teleinformatyki

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

16. Szeregowy interfejs SPI

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

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Programowanie w językach asemblera i C

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

Instrukcja MM-717 Tarnów 2010

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

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

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

Opis procedur asemblera AVR

Interfejsy szeregowe TEO 2009/2010

TECHNIKA MIKROPROCESOROWA II

Programowalne układy logiczne kod kursu: ETD Układy sekwencyjne W

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

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

2. Architektura mikrokontrolerów PIC16F8x... 13

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

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

Organizacja typowego mikroprocesora

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Czujnik zbliżeniowy indukcyjny

interfejs szeregowy wyświetlaczy do systemów PLC

Technika Mikroprocesorowa

Procesory osadzone ETD 7211 W

Komunikacja w mikrokontrolerach Laboratorium

Hardware mikrokontrolera X51

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

(przykład uogólniony)

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Mikrokontrolery AVR ATmega

dokument DOK wersja 1.0

Mikrokontrolery AVR ATmega

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Politechnika Białostocka Wydział Elektryczny

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Ćwiczenie 7 Matryca RGB

Współpraca procesora z urządzeniami peryferyjnymi

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Konwerter DAN485-MDIP

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

Moduł uruchomieniowy mikrokontrolera MC68HC912B32

Komunikacja z urzadzeniami zewnętrznymi

4. Karta modułu Slave

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Kod produktu: MP-BTM222-5V

Programowanie mikrokontrolerów. 8 listopada 2007

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

Współpraca procesora z urządzeniami peryferyjnymi

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MIKROPROCESORY architektura i programowanie

SML3 październik

TECHNIKA MIKROPROCESOROWA

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

UKŁADY CYFROWE. Układ kombinacyjny

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

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

Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (2) SPI, I 2 C

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

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

Inne układy peryferyjne AVR

Charakterystyka mikrokontrolerów

Kod produktu: MP-BT-RS232

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

Politechnika Wrocławska

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Mikrokontrolery AVR techniczne aspekty programowania

Problematyka sieci miejscowej LIN

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

WYŚWIETLACZ UNIWERSALNY

Programowanie Mikrokontrolerów

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

MSP430 w przykładach (8)

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

Metody obsługi zdarzeń

Wstęp Architektura... 13

Standard transmisji równoległej LPT Centronics

Interfejs urządzeń peryferyjnych

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Transkrypt:

1 Ćwiczenie nr 4 Program ćwiczenia: Interfejs szeregowy SPI obsługa sterownika ośmiopozycyjnego, 7-segmentowego wyświetlacza LED Interfejs szeregowy USART, komunikacja mikrokontrolera z komputerem PC. Zagadnienia do przygotowania: Specyfika magistrali SPI układu ATmega8535 Rejestry specjalne wpisywanie wartości Specyfika układu MAX7219 Wywołania podprogramów Inicjalizacja stosu System przerwań Programy obsługi przerwań 1

2 1. Wprowadzenie podstawowe informacje o module SPI w ATmega8535 Moduł SPI (ang. Serial Peripheral Interface) umożliwia szybką, dwukierunkową, synchroniczną, szeregową transmisję danych między mikrokontrolerem a urządzeniami peryferyjnymi. Blokowy schemat modułu SPI przedstawiony został na rys.1. Magistrala SPI umożliwia łączenie jednego nadrzędnego układu (Master) z wieloma urządzeniami podrzędnymi (Slave). Rys.1. Schemat blokowy modułu SPI, [1] Modułowi SPI przyporządkowane są cztery wyprowadzenia o oznaczeniach: MOSI (ang. Master Output, Slave Input), MISO (ang. Master Input, Slave Output), SCK (ang. Serial Clock) i SS (ang. Slave Select). Na rys.2 zaprezentowano sposób połączenia linii magistrali SPI w układzie Master-Slave. Protokół transmisji wymaga dwóch 8-bitowych rejestrów przesuwnych, połączonych tak, by wyjście jednego było połączone z wejściem drugiego. W układzie nadrzędnym generowany jest sygnał zegarowy, odseparowany od sygnału danych. Sygnał zegara nie jest ciągły, nadawany jest tylko w trakcie trwania transmisji. 2

3 Rys.2 Schemat blokowy wzajemnego połączenia linii modułu SPI w konfiguracji Master-Slave, [1] Kontrola nad transmisją danych przy użyciu modułu SPI możliwa jest za pośrednictwem trzech rejestrów SPDR (ang. SPI Data Register) rejestr przesuwny danych, SPSR (ang. SPI Status Register) przechowuje informacje o aktualnym stanie modułu SPI oraz SPCR (ang. SPI Control Register) sterowanie modułem SPI. Poniżej znajdują się schematy organizacji wewnętrznej tych rejestrów. Szczegółowy opis bitów należy odnaleźć w nocie katalogowej mikroprocesora ATmega8535. Tabela 1. Organizacja rejestru SPDR SPI Data Register SPDR MSB LSB Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O X X X X X X X X Tabela 2. Organizacja rejestru SPSR SPI Status Register SPSR SPIF WCOL - - - - - SPI2X Zapis/Odczyt Z Z Z Z Z Z Z Z/O 0 0 0 0 0 0 0 0 Tabela 3. Organizacja rejestru SPCR SPI Control Register SPCR SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O 0 0 0 0 0 0 0 0 3

4 Jak wspomniano wyżej, możliwa jest praca modułu SPI w dwóch trybach nadrzędnym (Master) oraz podrzędnym (Slave). W zależności od wyboru trybu pracy, kierunek działania lini przyporządkowanych SPI zmienia się zgodnie z Tabelą 4. Tabela 4. Działanie wyprowadzeń podporządkowanych modułowi SPI Kierunek Wyprowadzenie Tryb Master Tryb Slave MOSI Definiowane przez użytkownika Wejście MISO Wejście Definiowane przez użytkownika SCK Definiowane przez użytkownika Wejście SS Definiowane przez użytkownika Wejście W wypadku trybu Master, moduł SPI musi generować sygnał taktujący na linii SCK należy ustawić żądaną prędkość transmisji (rejestr SPCR i SPSR): 4

5 2. Układ scalony MAX7219 MAX7219 to scalony sterownik ośmiu 7-segmentowych wyświetlaczy LED ze wspólną katodą. Układ jest wyposażony: w sterownik segmentów i poszczególnych wyświetlaczy jednocyfrowych, rejestry sterujące pracą wyświetlacza, dekoder BCD kod B, układy multipleksowania wyświetlaczy, dwuportową pamięć SRAM 8 8 przechowującą dane do wyświetlenia. W trakcie zajęć laboratoryjnych układ MAX7219 będzie wykorzystany do sterowania ośmiocyfrowym wyświetlaczem LED we współpracy z mikroprocesorem ATmega8535. Przykład takiego podłączenia został przedstawiony na rys.3. Rysunek 1. Schemat połączenia układu MAX7219 z mikroprocesorem, [2] W Tabeli 5 przedstawiono organizację 16-bitowego rejestru przesuwnego, do którego przesyłane są dane z wyprowadzenia DIN układu. Bity o oznaczeniach D8-D11 określają adres rejestrów, zaś D0-D7 zawierając przesyłaną informację. Ponadto, korzystając z dokumentacji technicznej MAX7219 należy ustawiając odpowiednie bity tego rejestru, określić tryb pracy urządzenia, tryb kodowania (BCD lub 7-segmentowy), intensywność świecenia wyświetlacza, tryb wyświetlania (normalny lub test) oraz określić limit wyświetlanych pól. Sposób zaświecania odpowiednich segmentów wyświetlacza również należy odnaleźć w dokumentacji technicznej układu. 5

6 Tabela 5. Organizacja rejestru przesuwnego układu MAX7219 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 X X X X ADRES MSB DANE LSB 3. Moduł USART mikrokontrolera ATmega8535 Moduł USART (ang. Universal Synchronous and Asynchronous serial Receiver and Transmitter) jest układem służącym do szeregowej transmisji danych. Charakteryzuje się dwukierunkową, synchroniczną lub asynchroniczną transmisją danych, w zależności od wyboru trybu pracy, między mikrokontrolerem a urządzeniami peryferyjnymi. W trybie asynchronicznym, układ nie wymaga żadnych lini taktujących. Inaczej niż w trybie synchronicznym, gdzie moduł wymaga dodatkowej lini taktującej (XCK). Tryb ten zapewnia większą dokładność transmisji, jednak ze względu sposób sterowania jest żadziej wykorzystywany. Przesyłane i odbierane przez USART dane nazywa się ramką transmisyjną. Jej budowa jest dość dowolna konfiguracja rejestru UCSRC. Ramka składa się z bitu startu bit rozpoczynający transmisję, bitów przesyłanego słowa, bitu parzystości (nie jest konieczny) oraz bitu stopu zakończenie transmisji. Najważniejszym rejestrem modułu USART jest UDR (ang. USART I/O Data Register). Transmisja ramki zaczyna się przez zapisanie tego rejestru, zaś odczyt jego zawartości pozwala uzyskać odebraną przez moduł wiadomość. Przy odczycie rejestru, należy zwrócic uwagę na to, że powoduje ona wyczyszczenie bufora, w którym znajduje sie przesyłane słowo. Do sterowania USART wykorzystuje się rejestry UCSRA, UCSRB oraz UCSRC (ang. USART Control and Status Register A/B/C). W tabeli 6, 7 oraz 8 przedstawiono schematyczną organizację bitów w tych rejestrach. Tabela 6. Organizacja rejestru UCSRA USART Control and Status Register A UCSRA RXC TXC UDRE FE DOR PE U2X MPCM Zapis/Odczyt O Z/O O O O O Z/O Z/O 0 0 1 0 0 0 0 0 6

7 Tabela 7. Organizacja rejestru UCSRB USART Control and Status Register B UCSRA RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O O Z/O 0 0 0 0 0 0 0 0 Tabela 8. Organizacja rejestru UCSRC USART Control and Status Register C UCSRA URCEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O 1 0 0 0 0 1 1 0 Dokładny opis rejestrów modułu USART należy odnaleźć w nocie katalogowej mikroprocesora ATmega8535 na stronach 164 169. Jak wspomniano wcześniej praca modułu USART jest możliwa w dwóch trybach: synchronicznym i asynchronicznym. W przypadku trybu asynchronicznego należy ustalić prędkość transmisji oraz określić postać ramki transmisyjnej. Jeśli wybrano dłuższe niż 8- bitowe słowo transmisyjne należy skorzystać z bitów TXB8 i RXB8 w rejestrze UCSRA. Ponadto, jeśli jest to konieczne włączyć obsługę przerwań (RXCIE, TXCIE, UDRIE). Ostatecznie należy poprzez odpowiednie bity rejestru UCSRB uaktywnić nadajnik lub odbiornik modułu USART. W trakcie konfiguracji modułu powinny być zablokowane globalne zezwolenia na przerwania. W przypadku trybu synchronicznego, w przeciwieństwie do asynchronicznego, oprócz lini TxD i RxD korzysta się z lini taktującej XCK. Wybór tego trybu dokonuje się w rejestrze UMSEL (znacznik UMSEL). 7

8 4. Zadania do wykonania 1) Należy zapoznać się i przeanalizować przykładowy kod w języku Asembler inicjalizacji SPI w trybie Master oraz Slave, zamieszczony w dokumentacji technicznej ATmega 8535. Określić procedurę inicjalizacji w obu przypadkach. 2) Zaprogramować moduł SPI, tak aby komunikował się z układem MAX7219 i sterował w ten sposób wyświetlaczami 7-segmentowymi. Należy wyświetlić 2 cyfry, reszta cyfr ma być wygaszona. Moduł SPI mikrokontrolera ma pracować w trybie nadrzędnym (jako Master), a Maxim w trybie podrzędnym (Slave). Należy podłączyć odpowiednio linie MOSI, SCK i SS mikrokontrolera z wyprowadzeniami układu Maxim. Powinny pracować w trybie wyjściowym! W trybie oczekiwania na transmisję na SS powinien panować stan wysoki. Transmisja zaczyna się od manualnego zerowania linii SS oraz dokonania zapisu w rejestrze przesuwnym SPDR. Po przesłaniu całego bajtu (zawartości rejestru SPDR), ustawiana jest flaga SPIF. Zakończenie transmisji jest sygnalizowane poprzez manualne ustawienie stanu wysokiego na linii SS. Do zaprogramowania rejestry SPCR, SPDR. Sprawdzamy rejestr SPSR. Dane do maxima przesyłane są w postaci 16-bitowej (2 bajty): 4 najstarsze bity dowolne, następne 4 adres, kolejne 8 to same dane. Wyłączyć shutdown mode, ustawić jasność świecenia, liczbę wyświetlanych cyfr oraz dekodowanie BCD code B. 3) Należy zapoznać się i przeanalizować przykładowy kod w języku Asembler inicjalizacji modułu USART oraz transmisji danych, zamieszczony w dokumentacji technicznej ATmega 8535. Określić procedurę inicjalizacji i transmisji modułu. 5. Literatura 1) Dokumetacja techniczna mikrokontrolera AVR Atmega 8535 http://www.atmel.com/images/doc2502.pdf 2) Dokumetacja techniczna MAXIM 7219 http://datasheets.maximintegrated.com/en/ds/max7219-max7221.pdf 3) R. Baranowski, Mikrokontrolery AVR Atmega w praktyce, Wydawnictwo BTC, Warszawa 2005 8