RAM. MIKROPROCESOR wielki inwalida" MIKROKONTROLER - przykł. AVR

Podobne dokumenty
MIKROKONTROLERY I MIKROPROCESORY

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

Programowanie mikrokontrolerów (CISC)

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

2. Architektura mikrokontrolerów PIC16F8x... 13

architektura komputerów w 1 1

Podstawy Techniki Mikroprocesorowej

Mikroprocesory i Mikrosterowniki

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Lista rozkazów mikrokontrolera 8051

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Mikroprocesory i Mikrosterowniki

CPU architektura i rejestry

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

architektura komputerów w 1 1

Programowanie mikrokontrolera 8051

Systemy wbudowane Mikrokontrolery

Asembler - język maszynowy procesora

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Mikrokontrolery w systemach pomiarowo sterujących

Wstęp Architektura... 13

WPROWADZENIE Mikrosterownik mikrokontrolery

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

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Mikroprocesory i mikrosterowniki

Mikrokontrolery AVR ATmega

LABORATORIUM nr 1. Temat: Wstęp do mikrokontrolerów rodziny MCS-51

Szkolenia specjalistyczne

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Architektura komputerów

Wykład 2. Mikrokontrolery z rdzeniami ARM

Mikrokontroler AVR ATmega32 - wykład 9

Maszyny liczace - rys historyczny

Mikrokontroler Intel dr inż. Wiesław Madej

Struktura i działanie jednostki centralnej

Budowa Mikrokomputera

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

Programowanie Mikrokontrolerów

Organizacja typowego mikroprocesora

Architektura mikroprocesorów TEO 2009/2010

Techniki mikroprocesorowe i systemy wbudowane

Wykład 6. Mikrokontrolery z rdzeniem ARM

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

MIKROPROCESORY architektura i programowanie

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Architektura komputerów

MIKROPROCESORY architektura i programowanie

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

Budowa komputera Komputer computer computare

Układy zegarowe w systemie mikroprocesorowym

Instytut Teleinformatyki

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

Charakterystyka mikrokontrolerów


Wykład Mikroprocesory i kontrolery

1. Struktura urządzeń z wykorzystaniem mikrokontrolerów...13

Mikroprocesory i mikrosterowniki

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Podstawy Techniki Mikroprocesorowej

Architektura typu Single-Cycle

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

LEKCJA TEMAT: Zasada działania komputera.

Projektowanie. Projektowanie mikroprocesorów

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Pracownia elektryczno-elektroniczna klasa IV

Mikroprocesory i Mikrosterowniki

ARCHITEKTURA PROCESORA,

Architektura mikrokontrolera MCS51

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Programowanie mikrokontrolerów 2.0

Architektura mikrokontrolera MCS51

Mikrokontrolery czyli o czym to będzie...

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Technika mikroprocesorowa I Wykład 2

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Mikrokontroler 80C51

Technika Mikroprocesorowa

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Mikrokontrolery 8 bit - wprowadzenie

Logiczny model komputera i działanie procesora. Część 1.

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Architektura systemów komputerowych

KAŻDY Z 8-MIO BITOWYCH PORTÓW MIKROKONTROLERÓW RODZINY 51 MA JEDYNIE REJESTR PORTU: P0, P1, P2, P3, PEŁNIĄ ONE ROLĘ REJESTRÓW DANYCH WE/WY.

IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

Transkrypt:

RAM MIKROPROCESORY I MIKROKONTROLERY RAM TEMAT TEGO WYKŁADU OBEJMUJE OBSZAR GDZIE INFORMATYK SPOTYKA SIĘ Z PODSTAWOWYMI PROBLEMAMI BUDOWY KOMPUTERÓW. POZNAMY ELEMENTY JEDNOSTKI CENTRALNEJ CPU (CENTRAL PROCESSOR UNIT) ORAZ ELEMENTY SKŁADAJĄCE SIĘ NA KOMPLETNY SYSTEM KOMPUTEROWY. TYTUŁOWE ROZRÓŻNIENIE MIKROPROCESORA I MIKROKONTROLERA DOTYCZY WŁAŚNIE DWU RÓŻNYCH TYPÓW OBWODÓW SCALONYCH: UKŁAD MIKROPROCESORA ZAWIERA PRAWIE WYŁĄCZNIE CPU (ZWYKLE O POTĘŻNEJ MOCY OBLICZENIOWEJ) GDY MIKROKONTROLER TO JEDNOUKŁADOWY, W PEŁNI AUTONOMICZNY, KOMPLETNY SYSTEM KOMPUTEROWY WYPOSAŻONY W PAMIĘCI DANYCH I PROGRAMÓW ORAZ ZNACZNĄ LICZBĘ UKŁADÓW WEJŚCIA/WYJŚCIA TAKICH JAK LICZNIKI/CZASOMIERZE, PRZETWORNIKI ANALOGOWO-CYFROWE I CYFROWO-ANALOGOWE, INTERFEJSY KOMUNIKACYJNE OBSŁUGUJĄCE RÓŻNE PROTOKOŁY TRANSMISJI DANYCH, KOMPARATORY NAPIĘĆ, STEROWNIKI WYŚWIETLACZY LCD, ORAZ WIELE PORTÓW (GRUP LINII WE/WY). MIKROPROCESOR wielki inwalida" MIKROKONTROLER - przykł. AVR Piotr MALECKI 1/24

CPU JEDNOSTKA CENTRALNA TO ZŁOŻONY UKŁAD ELEKTRONICZNY ZDOLNY DO WYKONYWANIA INSTRUKCJI (KOMEND, ROZKAZÓW), KTÓRYCH REPERTUAR POZNAMY W TRAKCIE WYKŁADU. - INSTRUKCJA ZAWIERA KOD OPERACJI, PRZY POMOCY KTÓREJ CPU PRZETWARZA DANE ARGUMENTY INSTRUKCJI - CIĄG INSTRUKCJI (PROGRAM) MAGAZYNOWANY JEST W PAMIĘCI PROGRAMÓW, SKĄD JEST POBIERANY DO WYKONANIA Z CZĘSTOTLIWOŚCIĄ ZEGARA TAKTUJĄCEGO PRACĘ CPU. PRAKTYCZNE POZNANIE MIKROKONTROLERA OZNACZA UMIEJĘTNOŚĆ JEGO PROGRAMOWANIA. W TYM CELU NALEŻY POZNAĆ REPERTUAR INSTRUKCJI, ZNACZENIE REJESTRÓW ORAZ FUNKCJE UKŁADÓW WEJŚCIA/WYJŚCIA ZWANYCH TEŻ WEWNĘTRZNYMI UKŁADAMI PERYFERYJNYMI ZNACZĄCY ROZWÓJ MIKROKONTROLERÓW TRWA OD LAT 80-TYCH XX WIEKU. ISTNIEJE SZEREG RODZAJÓW MIKROKONTROLERÓW. SKONCENTRUJEMY SIĘ NA TRZECH TYPACH MIKROKONTROLERÓW: RODZINIE 81, RODZINIE AVR ORAZ NA GRUPIE OBECNIE NAJLICZNIEJ PRODUKOWANYCH MIKROKONTROLERÓW ARM. Piotr MALECKI 2/24

RÓŻNE CECHY BUDOWY TYCH GRUP OKREŚLA SIĘ ICH PRZYNALEŻNOŚCIĄ DO PEWNYCH ARCHITEKTUR. RODZINA 51 NALEŻY DO ARCHITEKTURY CISC, RODZINY AVR I ARM TO ARCHITEKTURA RISC CISC a RISC Complex Instruction Set Computer a Reduced Instruction Set Computer DOSŁOWNE ROZWINIĘCIE TYCH AKRONIMÓW JEST DOSYĆ MYLĄCE, ALE RÓŻNICE TYCH ARCHITEKTUR RZECZYWIŚCIE DOTYCZĄ INSTRUKCJI. INTRUKCJE (ROZKAZY, KOMENDY, OPERACJE) MIKROKONTROLERÓW WSZYSTKIE ROZKAZY ZAWIERAJĄ KOD OPERACJI ARGUMENTY (ADRESY ARGUMENTÓW I ADRES WYNIKU) I, EWENTUALNIE, MODYFIKATORY KODU BĄDŹ ADRESÓW ROZKAZY (PO PRZETWORZENIU PRZEZ ASEMBLER) ŁADOWANE SĄ DO PAMIĘCI PROGRAMÓW Przykłady : ADD A, R4 ; dodaj zawartość rejestru R4 do A ( akumulator ) i wynik umieść w A ; rozkaz dla 51 w2: sublt r1,r1,r0 ; odejmij r0 od r1, tylko jeśli warunek LT jest spełniony. Linia kodu została ; opatrzona wizytówką Piotr MALECKI 3/24

FUNDAMENTALNĄ RÓŻNICĄ ARCHITEKTUR CISC / RISC JEST ROLA I FUNKCJONALNOŚĆ REJESTRÓW ROBOCZYCH CPU W RODZINIE 51 SZCZEGÓLNĄ ROLĘ MA AKUMULATOR, JEDYNY REJESTR CPU O PEŁNEJ FUNKCJONALNOŚCI. WSZYSTKIE REJESTRY ROBOCZE CPU MIKROKONTROLERÓW RISC MAJĄ FUNKCJE CISC-owego AKUMULATORA MIKROKONTROLERY RISC OKREŚLA SIĘ JAKO MASZYNY REJESTROWE PONIEWAŻ POZWALAJĄ WYKONYWAĆ WIĘKSZOŚĆ OPERACJI NA REJESTRACH OGRANICZAJĄC TRANSFERY DO / Z PAMIĘCI DO MINIMUM REJESTRY CPU rodzina 51 AVR ARM 8 bit 8 bit 32 bit A akumulator B akumulator pomocniczy R0 R7 rejestry robocze (x 4) R0 R31 R0 R15 PSW rejestr wskaźników SREG CPSR (SPSR) PC licznik rozkazów PC PC = R15 SP wskaźnik stosu SP SO = R13 Piotr MALECKI 4/24

OPERACJE (rozkazy) PROCESORÓW CYFROWYCH TWORZĄ GRUPY: OPERACJE ARYTMETCZNO-LOGICZNE OPERACJE TRANSFERU DANYCH OPERACJE WARUNKOWE OPERACJE STERUJĄCE 8051 FAMILY ARITHMETIC and LOGIC INSTRUCTIONS Code Addressing flags cycles ADD A,Rr A,direct A,@Ri A.#data C,N,V 1 ADC A,Rr A,direct A,@Ri A,#data C,N,V 1 SUBB A,Rr A,direct A,@Ri A,#data C,H,V 1 INC A Rr direct @Ri DPTR 1 DEC A Rr direct @Ri 1 MUL AB C,V 4 DIV AB C,V 4 DA A C 1 ANL A,Rr A,direct A,@Ri A,#data direct,a direct,#data 1(2) ORL A,Rr A,direct A,@Ri A,#data direct,a direct,#data 1(2) XRL A,Rr A,direct A,@Ri A,#data direct,a direct,#data 1(2) CLR A CPL A SWAP A Where: r = 0 : 7, i = 0,1 #data = 0 : 255 W DALSZEJ CZĘŚCI KURSU POZNAMY SZCZEGÓŁY INSTRUKCJI. POWYŻSZE TABELE ILUSTRUJĄ ISTOTNE RÓŻNICE TRYBÓW ADRESOWANIA CISC I RISC AVR ARITHMETIC and LOGIC INSTRUCTIONS Code arguments affected flags cycles ADD Rd,Rs Z,C,N,V,H,S 1 ADC Rd,Rs Z,C,N,V,H,S 1 ADIW RR,c63 Z,C,N,V,S 2 SUB Rd,Rs Z,C,H,N,V,S 1 SUB Rh,c255 Z,C,N,V,S,H 1 SBIW RR,c63 Z,C,N,V,S 2 SBC Rd,Rs Z,C,N,V,S,H 1 SBC Rd,c255 Z,C,N,V,S,H 1 AND Rd,Rs S,V,N,Z 1 ANDI Rh,c255 S,V,N,Z 1 OR Rd,Rs S,V,N,Z 1 ORI Rh,c255 S,V,N,Z 1 EOR Rd,Rs S,V,N,Z 1 COM Rd S,V,N,Z,C 1 NEG Rd H,S,V,N,Z,C 1 SBR Rh,c255 S,V,N,Z 1 CBR Rh,c255 S,V,N,Z 1 INC Rd S,V,N,Z 1 DEC Rd S,V,N,Z 1 TST Rd S,V,N,Z 1 CLR Rd S,V,N,Z 1 SER Rh 1 MUL Rd,Rs Z,C 2 MULS Rh,Rh Z,C 2 MULSU Rh,Rh Z,C 2 FMUL Rhd,Rhs Z,C 2 FMULS Rhd,Rhs Z,C 2 FMULSU Rhd,Rhs Z,C 2 Where: d,s = 0 : 30, h = 16 : 30, hd, hs = 16:23 c63 = 0 : 63, c255 = 0 : 255 Piotr MALECKI 5/24

CISC a RISC c.d. PRZYKŁADOWE PORÓWNANIE GRUP OPERACJI ARYTMETYCZNYCH PROCESORA 51 ORAZ AVR ILUSTRUJE NAJBARDZIEJ ISTOTNE RÓŻNICE TYCH ARCHITEKTUR: ZNACZNIE WIĘCEJ REJESTRÓW RISC MOŻE BYĆ DOWOLNYMI ARGUMENTAMI OPERACJI WIĘKSZOŚĆ OPERACJI RISC WPŁYWA NA USTAWIENIA ZNACZNIKÓW ( FLAG ) WIĘKSZOŚĆ OPERACJI ODNOSI SIĘ DO REJESTRÓW PAMIĘĆ DANYCH TRAKTOWNA JEST JAK URZĄDZENIE WEJŚCIA/WYJŚCIA RÓŻNICE TE ZNACZNIE USPRAWNIAJĄ I UŁATWIAJĄ PROGRAMOWANIE; POZWALAJĄ SKRÓCIĆ KOD PROGRAMU. PRZYKŁAD DODAWANIA DWÓCH LICZB CAŁKOWITYCH 16-BITOWYCH DLA BITOWYCH PROCESORÓW: [R8,R7] = [R8,R7] + [R6,R5] CISC RISC MOV A, R7 ADD R7, R5 ADD A, R5 ADDC R8, R6 MOV R7, A MOV A, R8 ADDC A, R6 MOV R7, A Piotr MALECKI 6/24

JESZCZE JEDEN PODZIAŁ: O PROCESORACH, KTÓRYCH PAMIĘCI PROGRAMÓW I PAMIĘCI DANYCH SĄ ODRĘBNYMI URZĄDZENIAMI MÓWIMY, ŻE NALEŻĄ DO ARCHITEKTURY HARWARDZKIEJ. JEŚLI PAMIĘĆ DANYCH I PAMIĘĆ PROGRAMÓW RÓŻNI SIĘ TYLKO PRZESTRZENIĄ ADRESOWĄ, TO MÓWIMY O ARCHITEKTURZE VON NEUMANNA RODZINY 51 I AVR NALEŻĄ DO ARCHITEKTURY HARWARDZKIEJ, WCZEŚNIEJSZE KONSTRUKCJE ARM ( NP. MODELE CORTEX-M0, CORTEX-M1) BUDOWANE BYŁY W ARCHITEKTURZE VON NEUMANN A. Piotr MALECKI 7/24

CECHY ARCHITEKTURY HARWARDZKIEJ: ODRĘBNOŚĆ PAMIĘCI DANYCH I PAMIĘCI KODU OZNACZA, ŻE MAGISTRALE CPU PAMIĘĆ SĄ NIEZALEŻNE, MOGĄ MIEĆ RÓŻNE SZYBKOŚCI I SZEROKOŚCI. W ARCHITEKTURZE ARM TRANSFERY DANYCH I INSTRUKCJI MOGĄ NAWET ODBYWAĆ SIĘ JEDNOCZEŚNIE. RODZINA 51 JEST PRZYKŁADEM RYGORYSTYCZNEJ ARCHITEKTURY HARWARDZKIEJ. OZNACZA TO, ŻE PROGRAMISTA POZBAWIONY JEST MOŻLIWOŚCI INGERENCJI W PAMIĘĆ PROGRAMU W TRAKCIE JEGO WYKONYWANIA. PAMIĘĆ PROGRAMÓW MOŻNA ZMIENIĆ JEDYNIE W TRYBIE ŁADOWANIA. PRZESYŁANIE DANYCH (przykład instrukcji rodziny 51 - regorystyczny Harward ) kod dozwolone adresowanie Kopiuj A <- MOV A,Rr A,direct A,@Ri A,#data Kopiuj Rr <- MOV Rr,A Rr,direct Rr,#data Kopiuj direct <- MOV direct,a direct,rr direct,direct direct,@ri direct,#data Kopiuj @Ri <- MOV @Ri,A @Ri,direct @Ri,#data Kopiuj DPTR <- MOV DPTR,#data16 Pamięć programu MOVC A,@A+DPTR A,@A+PC Zewn. pamięć danych MOVX A,@Ri A,@DPTR @Ri,A @DPTR,A Zamień XCH A,Rr A,direct A,@Ri Zamień 4 młodsze bity XCHD A,@Ri Zapisz na stos PUSH direct (SP=SP+1 (SP) <- direct) Odczytaj ze stosu POP direct (direct <- (SP) SP=SP-1) Piotr MALECKI 8/24

MOVC A,@A+DPTR A,@A+PC Z POPRZEDNIEJ TABELI TO KOMENDA PRZENIESIENIA BAJTU Z PAMIĘCI KODU DO AKUMULATORA. TYLE I NIC WIĘCEJ HARWARDZKIE AVR NIE SĄ JUŻ TAK RYGORYSTYCZNE: SPM (Z) <= R1:R0 STORE PROGRAM MEMORY! Każdy rozkaz AVR zajmuje 2 bajty pamięci kodu. Starszy bit to zawartość R1, młodszy R0. Nie wszystkie modele AVR pozwalają na zapis pojedynczego słowa (2-bajtowego). W niektórych można wyzerować całą stronę (64K) pamięci kodu i całą załadować za pomocą STM. ORGANIZACJA PAMIĘCI ARM JEST BARDZO ORYGINALNA - NIEZALEŻNIE OD FIZYCZNEGO, SPRZĘTOWEGO ROZRÓŻNIENIA TYPÓW I MAGISTRAL PAMIĘCI DANYCH I PROGRAMÓW SĄ ONE OBJĘTE JEDNĄ WSPÓLNĄ PRZESTRZENIĄ ADRESOWĄ! Piotr MALECKI 9/24

ZALECANA ORGANIZACJA PAMIĘCI ARM-CORTEX M3 MOŻNA UMIEŚCIĆ KOD W PRZESTRZENI DANYCH (!) ALE PRODUCENT ODRADZA Piotr MALECKI 10/24

Organizacja wewnętrznej pamięci RAM μkontrolerów rodziny 51 0FFH 80H 128 bajtów górnego obszaru wewnętrznej pamięci RAM 0FFH 80H Obszar rejestrów SFR 07FH 00H 128 bajtów dolnego obszaru wewnętrznej pamięci RAM Adresowanie bezpośrednie i pośrednie Adresowanie pośrednie zawartością rejestrów Adresowanie bezpośrednie Piotr MALECKI 11/24

Struktura dolnego obszaru pamięci RAM µkontrolerów Pamięć ogólnego zastosowania 7FH 7F 78 07 Bajty z adresowalnymi bitami BANK 3 BANK 2 30H 00 18H - 1FH 10H - 17H R7 R6 R5 R4 R3 R2 R1 R0 BANK 1 8H - 0FH 7H Bank 0 0H Piotr MALECKI 12/24

SFR obszar rejestrów specjalnego przeznaczenia wykorzystuje się: Jako zapis wszelkich rejestrów sterujących pracą CPU takich jak ACCakumulator, B akumulator pomocniczy, PSW - rejestr wskaźników stanu, SP wskaźnik stosu... (poza licznikiem rozkazów (PC) i bankami GPR, Jako interfejs pomiędzy CPU a urządzeniami peryferyjnymi....sterowanie urządzeniami peryferyjnymi poprzez operacje na odpowiadających im rejestrach pamięci należy do genialnych rozwiązań w konstrukcji procesorów cyfrowych... Stan wszystkich rejestów SFR po RESET (lub po uruchomieniu procesora) jest zdefiniowany. Jest też udokumentowany w danych technicznych kontrolera. Programista może zmienić pierwotne (default niejawne) ustawienia SFR. Np. wskaźnik stosu SP ustawiany jest pierwotnie na (adres) 07H, wskazuje na R0 pierwszego banku rejestrów ogólnego zastosowania GPR i zwykle przestawiany na odległą lokację. Piotr MALECKI 13/24

TAKTOWANIE MIKROKONTROLERA Cykl maszynowy mikrokontrolerów rodziny 51 składa się z sześciu stanów (S1 S6). Każdy stan trwa dwa okresy sygnału taktującego. Więc jeden cykl maszynowy trwa 12 taktów (okresów) sygnału zegarowego. Mikrokontrolery mają wbudowany generator sygnału zegarowego i zewnętrzny rezonator kwarcowy. Dobór rezonatora wyznacza częstotliwość taktowania. Zwykle od kilku do kilkudziesięciu MHz. Później poznamy powody dla popularnej częstości 11.059 MHz. Czas wykonywania instrukcji mikrokontrolerów rodziny 51 wynosi jeden, dwa lub 4 cykle maszynowe. (Te 4 cykle odnoszą jedynie do dwóch instrukcji: mnożenie i dzielenia). Podział cyklu maszynowego na stany i fazy wynika z potrzeby generacji sygnałów sterujących poszczególnymi etapami wykonywania instrukcji (pobranie z pamięci, zdekodowanie instrukcji, pobranie argumentów, zapis wyniku itp). Np.: stan wyprowadzenia RESET jest testowany w każdym cyklu maszynowym w stanie S5P2. Piotr MALECKI 14/24

51 AKUMULATOR ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 PSW PROGRAM STATUS WORD CY AC F0 RS1 RS0 OV F1 P 7 6 5 4 3 2 1 0 CY carry flag AC aux. Carry F0, F1 general purpose RS1, RS0 reg. bank select OV overflow flag P parity bit Piotr MALECKI 15/24

ARM Piotr MALECKI 16/24

Piotr MALECKI 17/24

Endianess (Jonathan Swift (1726) satyryczna powieść Podróże Guliwera ) Stos - SP 51, AVR i ARM! Specjalny sposób używania części pamięci danych Wyposażenie - c.d. Zasilanie Narzędzia programistyczne Keil, IAR, MCU 8051 IDE, wstępny przykład Piotr MALECKI 18/24

Piotr MALECKI 19/24

Przykład wyposażenia ADuC812 Analog Devices Warto zwrócić uwagę co dla Firmy jest dumą Piotr MALECKI 20/24

STM32L152RB PRZYKŁAD ARM CORTEX M3 Ultra-low-power platform 1.65 V to 3.6 V power supply -40 C to 85 C/105 C temperature range 0.3 μa Standby mode (3 wakeup pins) 0.9 μa Standby mode + RTC 0.57 μa Stop mode (16 wakeup lines) 1.45 μa Stop mode + RTC 9 μa Low-power Run mode 214 μa/mhz Run mode 10 na ultra-low I/O leakage < 8 μs wakeup time Core: ARM 32-bit Cortex -M3 CPU From 32 khz up to 32 MHz max 33.3 DMIPS peak (Dhrystone 2.1) Memory protection unit Reset and supply management Ultra-safe, low-power BOR (brownout reset) with 5 selectable thresholds Ultra-low-power POR/PDR Programmable voltage detector (PVD) Piotr MALECKI 21/24

STM32L152RB PRZYKŁAD ARM CORTEX M3 c.d. Clock sources 1 to 24 MHz crystal oscillator 32 khz oscillator for RTC with calibration High Speed Internal 16 MHz factory-trimmed RC (+/- 1%) Internal Low Power 37 khz RC Internal multispeed low power 65 khz to 4.2 MHz PLL for CPU clock and USB (48 MHz) Pre-programmed bootloader USART supported Development support Serial wire debug supported JTAG and trace supported Up to 83 fast I/Os (73 I/Os 5V tolerant), all mappable on 16 external interrupt vectors Memories Up to 128 KB Flash with ECC Up to 16 KB RAM Up to 4 KB of true EEPROM with ECC 80 Byte Backup Register Piotr MALECKI 22/24

STM32L152RB PRZYKŁAD ARM CORTEX M3 c.d. LCD Driver for up to 8x40 segments Support contrast adjustment Support blinking mode Step-up converter on board Rich analog peripherals (down to 1.8 V) 12-bit ADC 1 Msps up to 24 channels 12-bit DAC 2 channels with output buffers 2x Ultra-low-power-comparators(window mode and wake up capability) DMA controller 7x channels 8x peripherals communication interface 1x USB 2.0 (internal 48 MHz PLL) 3x USART (ISO 7816, IrDA) 2x SPI 16 Mbits/s 2x I2C (SMBus/PMBus) 10x timers: 6x 16-bit with up to 4 IC/OC/PWM channels, 2x 16-bit basic timer, 2x watchdog timers (independent and window) Up to 20 capacitive sensing channels supporting touchkey, linear and rotary touch sensors CRC calculation unit, 96-bit unique ID Piotr MALECKI 23/24

MATERIAŁY DYDAKTYCZNE: Tomasz Starecki Mikrokontrolery 8051 w praktyce BTC Warszawa 2002 Andrzej Pawluczuk Sztuka programowania mikrokontrolerów AVR BTC Warszawa2006 Krzysztof Paprocki Mikrokontrolery STM32 w praktyce BTC Warszawa 2011 Paweł Borkowski ARM & AVR programowanie mikrokontrolerów Helion 2009 Marek Galewski STM32 Aplikacje i ćwiczenia w języku C INTERNET LINKI DO PRODUCENTÓW!!! mars.iti.pk.edu.pl/~malecki slajdy powstające na bieżąco oraz archiwalne Piotr MALECKI 24/24