Mikroprocesory i Mikrosterowniki Wykład 1 Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com.
Konsultacje Pn, 11-13, 143/M11 Śr, 11-13, 143/M11
Materiały http://www.w12.pwr.wroc.pl/pmarkowski/
Warunki zaliczenia odpowiedź ustna termin 0: test wyboru (warunek pozytywny wynik kartkówek)
Treść kursu Mikroprocesory i mikrokontrolery Programowanie mikrokontrolerów na przykładzie 8-bitowego układu ATmega8535 (ATMEL) Asembler
Literatura R. Pełka Mikrokontrolery architektura, programowanie, zastosowania P. Górecki Mikrokontrolery dla początkujących J.M. Sibigtroth Zrozumieć małe mikrokontrolery J. Doliński Mikrokontrolery AVR w praktyce R. Baranowski Mikrokontrolery AVR ATmega w praktyce www.atmel.com (dokumentacja!)
Plan wykładu Mikroprocesory i mikrokontrolery Architektura mikrokontrolera na przykładzie AVR Lista instrukcji AVR Urządzenia peryferyjne AVR Wybrane interfejsy komunikacyjne Wybrane układy zewnętrzne
Mikrokontroler (mikrosterownik) definicja MCU (MicroController Unit) Jest scalonym układem cyfrowym, który oprócz wbudowanej jednostki centralnej CPU posiada zintegrowaną pamięć oraz układy wspomagające. Mikrokontroler stanowi całkowicie autonomiczny system mikroprocesorowy, który do pracy nie wymaga układów zewnętrznych. Ma rozbudowany system komunikacji z otoczeniem.
Mikrokontroler - zastosowania Mikrosystem Magistrala komunikacyjna Czujniki Mikrokontroler Magistrala komunikacyjna Aktuatory
Mikrokontroler - budowa CPU Central Processing Unit mikroprocesor jednostka centralna serce MCU mogą być różne CPU: architektury magistrale (8,16-bit...) rodziny MCU Pamięć: - programu - danych
Mikrokontroler - budowa Pamięć programu (dysk twardy MCU) program Pamięć danych (RAM) rejestry + RAM np. 8 kb 32 kb H A R V A R D np. 32 rej. uniwersalne 8-bitowe np. 64 rej. specjalne 8-bitowe np. 512 bajtów SRAM RAZEM 608 B
Mikrokontroler - budowa Porty WE / WY do komunikacji z otoczeniem np. 32 nóżki podzielone na 4 porty (4 x 8)
Mikrokontroler - budowa Układy peryferyjne Magistrala danych Magistrala instrukcji Magistrala sterująca ADC czujniki komparator obsługa przerwań interfejsy komunikac. pamięć ROM liczniki RTC WDT
Mikrokontroler - budowa RESET Układ taktujący K W A R C ZASILANIE
ATmega8535
Specyfikacja ATmega8535 Mikrokontroler 8-bitowy Architektura RISC 132 instrukcje w większości wykonywane w 1 cykl zegarowy 32 rejestry uniwersalne, 8-o bitowe - 64 rejestry specjalne do 16 MIPS przy 16 MHz wbudowany układ mnożący RISC (Reduced Instruction Set Computer) - architektura typu Harvard (oddzielone szyny danych i rozkazów) - przetwarzanie potokowe - zredukowana lista instrukcji - instrukcje mogą operować na dowolnym rejestrze uniwersalnym - ograniczenie komunikacji między pamięcią, a procesorem
Specyfikacja ATmega8535 c.d. Nieulotna pamięć programu i danych 8 KB pamięci Flash EEPROM Wytrzymałość: 10.000 cykli zapis/odczyt Obszar pamięci boot-owalnej 512 bajtów EEPROM Wytrzymałość: 100.000 cykli zapis/odczyt 512 Bytes Internal SRAM Programowalne zabezpieczenie kodu programu (Lock Bits) 32 programowalne wejścia/wyjścia (porty I/O)
Specyfikacja ATmega8535 c.d. Urządzenia peryferyjne Dwa 8-o bitowe liczniki (Timer/Counters) 2^8 Jeden licznik 16-o bitowy 2^16 Programowalny Watchdog (licznik specjalny) PWM (Pulse Width Modulation) 10-o bitowy konwerter analogowo-cyfrowy (ADC) Komparator analogowy Magistrala szeregowa Two-wire (I2C) Magistrala szeregowa USART Magistrala szeregowa SPI (tryby Master/Slave)
Specyfikacja ATmega8535 c.d. Opcje specjalne Brown-out Detector Wewnętrzny oscylator RC Możliwość taktowania ze źródła zewnętrznego Przerwania wewnętrzne i zewnętrzne Sześć trybów uśpienia Napięcia zasilania: 2.7-5.5V dla ATmega8535L 4.5-5.5V dla ATmega8535
Rejestry
Rejestry Podstawowe elementy mikrokontrolera. Każde urządzenie wewnętrzne µc ma przypisane do siebie specjalne rejestry sterujące jego pracą.
Rejestry Przykładowy rejestr specjalny: start/stop prescaler ExaReg 1 1 0 1 0 0 - - on/off przerwanie on/off SREG = Status Register DDRA = Data Direction Register TCCR0 = Timer/Counter Control Register 0 GICR = General Interrupt Control Register
Rejestry uniwersalne Brak bezpośredniego dostępu do rej. specjalnych Dostęp pośredni przez dowolny rejestr uniwersalny 1 0 0 1 1 0 0 1 rej. specjalny rej. uniwersalny 1 0 0 1 1 0 0 1 wartość R0 R31 dowolny rejestr uniwersalny TCCR0 wybrany rejestr specjalny
Rejestry Rejestry specjalne: do sterowania urządzeniami wewnętrznymi - 64 szt. (str. 299) - nazwy to skróty (SREG = Status Register) Rejestry uniwersalne: - do wykonywania operacji (arytmetycznych, logicznych itp.) - 32 szt. - nazwy: R0 R31
Programowanie
Programowanie KOD MASZYNOWY 11100100010101 01110010010101 11010110010001 00101011100101 ASEMBLER LDI R16, 100 LDI R17, 50 ADD R16, R17 OUT PORTA, R16 JĘZ. POZIOMU ŚRED. / WYS. PORTA:= R16+R17 (C, BASCOM) LISTA INSTRUKCJI µp.... asemblacja kompilacja
Programowanie PROGRAM (PC) Kompilacja Asemblacja µc FLASH EEPROM ELECTRICAL ERASABLE PROGRAMABLE READ ONLY MEMORY PAMIĘĆ PROGRAMU
Programowanie 1110010001010110 0111001001010111 1101011001000101 0010101110010100 1000110011010101 0001011101010010 1011110001001001 1100101010010111 Kod op. 0111 001001 010111 Arg. 1 (9) Arg. 2 RAM 11010001
Porty I/O
Porty I/O A: B: C: D: DDRA DDRB DDRC DDRD PORTA PORTB PORTC PORTD PINA PINB PINC PIND PA0 PA7,, PD0 PD7 DDR Data Direction Register ( 1 =WY, 0 =WE) PORT gdy WY (wysyłanie 1 lub 0 ) PIN gdy WE (tylko do odczytu)
Jak to zrobić, żeby: 1) wysłać z µc na zewnątrz sygnał 10101010 (port C)? DDRC: PORTC: PINC: 2) sczytać sygnał podany z zewnątrz na port C? DDRC: PORTC: PINC: 3) ustawić 6 najstarszych jako WY, reszta jako WE; wysłać 000111 i sczytać PC0, PC1? DDRC: PORTC: PINC: 11111111 10101010-00000000 - zajrzeć do środka 11111100 000111xx zajrzeć do środka
Porty I/O Port wejściowy (DDR 0) minimalna wydajność prądowa pobiera informacje wymaga zabezpieczenia przed zakłóceniami Port wyjściowy (DDR 1) wydajność prądowa 20 ma wysyła informacje
PULL-UP Wejścia są podciągnięte do 1 logicznej C: Vcc DDR 0 PORT 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 DDRC PORTC pull-up register MCU PINC I/O logic
Lista instrukcji AVR (zob. wykład Instrukcje, tryby adresowania )
Przykładowe zagadnienia sprawdzające 1. Mikrokontroler definicja. 2. Mikrokontroler vs. Mikroprocesor różnice. 3. Mikrokontroler ogólna budowa wewnętrzna. 4. Rodzaje pamięci półprzewodnikowych (RAM, ROM, EEPROM, itp.), podstawowe cechy. 5. Podział pamięci w mikrokontrolerze: p. danych, p. programu, rejestry funkcje. 6. Rejestry mikrokontrolera podział, funkcje, cechy, sposoby dostępu, stos. 7. Funkcje wybranych rejestrów specjalnych (PC, SP, SREG, DDRx, PORTx, PINx). 8. PULL-UP. 9. Konwersja kodów liczbowych: NKB, U2, szesnastkowo-dziesiętny.