Model programowy procesora ColdFire

Podobne dokumenty
Urządzenia peryferyjne procesora ColdFire

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

Układy czasowo-licznikowe w systemach mikroprocesorowych

Technika Mikroprocesorowa

Układy czasowo-licznikowe w systemach mikroprocesorowych

Architektura mikroprocesorów z rdzeniem ColdFire

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

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

SML3 październik

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

MIKROPROCESORY architektura i programowanie

Metody obsługi zdarzeń

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

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

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Programowanie mikrokontrolerów. 15 stycznia 2008

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

TECHNIKA MIKROPROCESOROWA

Współpraca procesora z urządzeniami peryferyjnymi

Pamięci i urządzenia peryferyjne Wprowadzenie do przedmiotu

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

MIKROKONTROLERY I MIKROPROCESORY

Współpraca procesora z urządzeniami peryferyjnymi

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wstęp Architektura... 13

Timery w mikrokontrolerach STM32F3

Hardware mikrokontrolera X51

Komunikacja w mikrokontrolerach Laboratorium

Szkolenia specjalistyczne

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

TECHNIKA MIKROPROCESOROWA

Ćwiczenie 7 Matryca RGB

Przerwania, polling, timery - wykład 9

Współpraca procesora z urządzeniami peryferyjnymi

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

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

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Technika mikroprocesorowa I Wykład 3

Liczniki z zastosowaniem

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

Układy czasowe / liczniki (timers/counters)

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

2. Architektura mikrokontrolerów PIC16F8x... 13

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

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

Mikroprocesory i Mikrosterowniki

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

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

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

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Układy zegarowe w systemie mikroprocesorowym

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

Programowany układ czasowy APSC

Przemysłowy odtwarzacz plików MP3

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

AGH Akademia Górniczo- Hutnicza w Krakowie Katedra Elektroniki WIET

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Moduł wspierający diagnostykę i sprzętowe debugowanie

Architektura mikroprocesorów z rdzeniem ColdFire

Kod produktu: MP01611

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Komunikacja w mikrokontrolerach Laboratorium

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Mikroprocesory i Mikrosterowniki Laboratorium

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

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

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

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

Architektura komputerów

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

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

Mikrokontroler AVR ATmega32 - wykład 9

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

Mikroprocesory i Mikrosterowniki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikroprocesor Operacje wejścia / wyjścia

Architektura mikrokontrolera MCS51

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

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

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

Architektura mikrokontrolera MCS51

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Układ transmisji szeregowej AVR

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

Urządzenia peryferyjne RS-232. Wykład 2

Programowany układ czasowy

Enkoder magnetyczny AS5040.

Dodatek D. Układ współpracy z klawiaturą i wyświetlaczem 8279

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Sterowniki Urządzeń Mechatronicznych laboratorium. Ćw. 3: Timer v1.0

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

Programowanie mikrokontrolerów. 8 listopada 2007

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Start Bity Bit Stop 1 Bit Par Rys. 1

Transkrypt:

Model programowy procesora ColdFire 1

Model programowy procesora ColdFire 2

Kolejność bajtów w pamięci (1) Bajt najmniejsza adresowalna jednostka pamięci komputerowej Endianess Big-endian middle-endian od lewej do prawej podobnie jak w języku polskim, angielskim Motorola, SPARC, ARM Little-endian od prawej do lewej liczby zmiennoprzecinkowe podwójnej precyzji VAX and ARM podobnie jak w językach arabskich, hebrajski Intel x86, 6502 VAX Bi-Endian ARM, PowerPC (za wyjątkiem PPC970/G5), DEC Alpha, MIPS, PA-RISC oraz IA64 3

Kolejność bajtów w pamięci (2) Architektura 8-bitowa 7 0 0x0000.0000 Byte 1 0x0000.0001 Byte 2 0x0000.0002 Byte 3 0x0000.0003 Byte 4 0x0000.0004 Byte 5 7 0 0x0000.0000 0x12 0x0000.0001 0x34 0x0000.0002 0x56 0x0000.0003 0x78 0x0000.0004 0x90 4

Kolejność bajtów w pamięci (3) Byte 4... Byte 1 MSB LSB Big-endian 0x0000.0000 Byte 4 Byte 3 Byte 2 Byte 1 0x0000.0004 Byte 8 0x0000.0008 Byte 12 Byte 7... Byte 6... Byte 5... 0x0000.000C 0x0000.0010 Little-endian 0x0000.0000 Byte 1 Byte 2 Byte 3 Byte 4 0x0000.0004 Byte 5 0x0000.0008 Byte 9 Byte 6... Byte 7... Byte 8... 0x0000.000C 0x0000.0010 5

Kolejność bajtów w pamięci (4) Podwójne słowo (DW): 0x1234.5678 Big-endian 0x0000.0000 8 7 24 23 16 15 0x12 0x34 0x56 0x78 0x0000.0004 Byte 5 0x0000.0008 Byte 9 32 Byte 6... Byte 7... 0 Byte 8... 0x0000.000C 0x0000.0010 Little-endian 32 24 23 16 15 0 8 7 0x0000.0000 0x78 0x56 0x34 0x12 0x0000.0004 Byte 8 0x0000.0008 Byte 12 Byte 7... Byte 6... Byte 5... 0x0000.000C 0x0000.0010 6

Kolejność bajtów w pamięci (5) Jak rozpoznać architekturę procesora oraz rozkład bajtów w pamięci? #define LITTLE_ENDIAN 0 #define BIG_ENDIAN 1 int machineendianness() { long int i = 1; const char *p = (const char *) &i; if (p[0] == 1) // Lowest address contains the least significant byte return LITTLE_ENDIAN; else return BIG_ENDIAN; } 7

Model programowy procesora ColdFire 8

Przykład użycia rejestrów danych y = wsp. temp. * ADC + wsp. skalujacy ACC = wsp. temp. ACC = ACC * ADC ACC = ACC + wsp. skalujacy y = ACC D0 = wsp. temp. D1 = wsp. skalujacy D2 = ADC D2 = D0 * D2 y = D2 + D1 9

Przykład użycia rejestrów adresowych (1) Zapisanie tablicy adresów przerwań 4B VBR Adres 1 Adres 2 256 komórek VBR = 0x500.000 A1 = VBR (A1) = adres procedury przerwania A1 = A1 + 1 Adres 256 10

Przykład użycia rejestrów adresowych (2) y = A0 + A1 4B A0 = adres 1 A1 = adres 2 A3 = adres 3 D0 = 0 y Dana 1 Dana 1 Dana 2 Dana 2 n komórek A0, A1 n komórek A = adres 2 ACC = (A) A = adres 1 ACC = ACC + (A) A = adres 3 (A) = ACC 4B Dana n Dana n (A3, D0) = (A1, D0) + (A2, D0) 11

Model programowy procesora ColdFire Rejestry dostępne w trybie superużytkownika 20 0 19 0 0 16 BA31 BA30 VAL IPSBAR INTERNAL PERIPHERAL SYSTEM BASE ADDRESS REGISTER 12

Rejestry mikrokontrolera MCF5282 Liczba ujemna w kodzie U2 U2 przeniesienie/pożyczka NKB przeniesienie/pożyczka 13

Instrukcja dodawania 14

Instrukcja porównująca argumenty 15

Instrukcja skoku warunkowego 16

Moduł arytmetyczny EMAC (1) Enhanced Multiply-ACcumulate Unit 17

Moduł arytmetyczny EMAC (2) 18

Moduł portów wejścia-wyjścia (General Purpose I/O module) 19

Moduł portów I/O (1) 20

Moduł portów I/O (2) Zewnętrzne magistrale danych i adresowe 21

Moduł portów I/O (3) Wyprowadzenie skonfigurowane jako DebugDATA oraz Status bits po restarcie procesora 22

Rejestry sterujące PnPAR - rejestr kontrolujący przeznaczenie portu DDRn - Rejestr kontrolujący kierunek sygnałów portu I/O PORTn - rejestr kontrolujący stan wyprowadzeń wyjściowych PORTnP - rejestr odwzorowujący stan wyprowadzenia I/O SETn/CLRn - Rejestr służący do ustawiania/zerowania przerzutnika wyjściowego 23

Schemat blokowy portu I/O Port I/O PORTn odczyt PORTn zapis D SETn Q D Q DDRn CLRn Clk Clk Clk PORTnP odczyt stanu logicznego wyprowadzenia I/O 24

Przykładowe rejestry sterujące modułu I/O 25

Podłączenie wyświetlacza LCD 26

Port przerwań zewnętrznych (EPORT) 27

Tablica wektorów przerwań 28

Zakresy napięć wejściowych 29

Moduł generatora sygnału zegarowego (Clock Module) 30

Modułu generatora sygnału zegarowego x 4-18 31

Kamerton 32

Generator z zamkniętą pętlą fazową PLL Phase-Locked Loop (PLL) U D 33

Rejestry sterujące modułem PLL Blokada pętli f < 0.0075 * fclk Utrata synchronizacji f > 0.015 * fclk 34

Częstotliwość sygnału zegarowego fsys * 2 ***(MFD 2)+ /2)2RFD 88 Mhz 28 *(MFD / 2RFD fsys == fref Mhz = 64+MHz 35

Moduł transceivera szeregowego UART (Universal Asynchronous Receiver/Transmitter module) 36

Transceiver UART Rejestr przesuwny D0-D7 Nadajnik TxD Clk D0-D7 Odbiornik RxD Clk 37

Ramka danych transmitera UART Mark Space 38

Kabel null modem EIA 232 39

Dodatkowe linie sterujące Hardware Flow Control 40

Pełny kabel null modem 41

Sygnały złącza zgodne ze standardem EIA232 42

Poziomy napięć określone przez standard EIA 232 Wyjście procesora Standard EIA 232 43

Konwerter poziomów napięć MAX 232 (5 V) MAX 3232 (3,3 V) CD Carried Detect RI Ring Indicator 44

Moduł transmitera procesora ColdFire UART 0 UART 2 45

Interfejs modułu transmitera 46

Źródło sygnału zegarowego Nadajnik odpowiedzialny jest za generowanie ramek zgodnych ze standardem EIA232 (bit startu, 5-8 bitów danych, opcjonalny bit parzystości, bity stopu). Odbierane dane są próbkowane na narastającym zboczu zegara. Jeżeli długość ramki się nie zgadza ustawiona jest flaga FE. Jeżeli nie zgadza się parzystość ustawiana flaga jest PE. flaga OE ustawiana jest, gdy przepełni się bufor odbiorczy lub FIFO. flaga RB ustawiana jest, gdy odebrany jest sygnał Receiver Break. 47

Przykład obliczenia dzielnika sygnału zegarowego Baudrate = 19 200 fclk = 66 Mhz Divider = 107,421875 d 0x6B UBG1n = 0x00, UBG2n = 0x6B 48

Rejestry modułu UART UCR[MISC] = 001b 49

Rejestry modułu UART 50

Rejestr sterujący UMR1n 51

Rejestr statusowy USRn 52

Przebiegi sterujące nadajnikiem wyjście TxD '01' tr. wł. UCRn '1' tr. ready wew. syg. sterujące wejście wyjście 53

Przebiegi sterujące odbiornikiem wejście RxD '01' rec. wł. UCRn Flaga RxRDY Flaga FFULL wew. syg. sterujące Flaga OE Flagi RB, FE, PE tracą ważność Reset Error Status (UCRn) 54

Tryby diagnostyczne modułu UART CF PC 55

Rejestr sterujący UMR2n 56

Przerwania generowane przez moduł UART, transmisja DMA (1) wybór przerwania: RxRDY/FFULL narastające zbocze na linii /CTS wykryto sygnał przerwy RxRDY lub FFULL (UMR1x) bufor nadajnika wolny 0 dana w buforze FIFO 1 bufor FIFO zapełniony 57

Tablica wektorów przerwań 58

Wyprowadzenia modułu UART 59

Konfiguracja wyprowadzeń modułu UART 60

Przerwania generowane przez moduł UART, transmisja DMA (2) MISC=0x010 MISC=0x011 IACKLPRn=UART_IRQ, adres IRQ w tab. IRQ COS / DB / FFUL/RxRDY / TxRDY IRQ dla UISRn[cos]? RCS=1101, TCS=1101 IRQ od RxRDY, czy FFULL? Sterowanie flagą ERR PM=10 brak kontroli parzystości B/C=11 ramka 8 bitowa CM=00, tryb normalnej pracy SB=0111, pojedyncza długość TC=01, RC=01 włącz TxD oraz RxD Konfiguracja wprowadzeń TxD/RxD oraz UBG1n/BG2n 61

Timery procesora MCF528x (1) Moduł timera PIT (Programmable Interrupt Time Module) (2) Moduł timera GPT (General Purpose Timer Module) (3) Moduł timera DMA (DMA Timer Module) (4) Moduł licznika WatchDog 62

Moduł timera PIT (Programmable Interrupt Timer Module) 63

Schemat blokowy modułu timera PIT 2-65636 64

Rejestry sterujące PIT0 - PIT3 65

Rejestr sterujący oraz statusowy 66

Tryby pracy timera PIT 67

Automatyczne przeładowanie timera 0xFFFF PMR 0x8FFF 0x0000 PIF=1 jeżeli PITcounter = 0x0000 PCSRn [RLD] = 0 PCSRn [RLD] = 1 PIF=1 jeżeli PITcounter = 0x0000 PIT timer = PMR 68

Czas odmierzany przez timer PIT fclk = 66 MHz => 120 ns 130 s 69

Tablica wektorów przerwań 70

Moduł timera GPT (General Purpose Timer Module) 71

Możliwości timera GPT Input capture pomiar długości sygnałów doprowadzonych do wejścia IOSn. Minimalna długość mierzonego impulsu musi być większa od dwóch taktów zegara. Output compare generacja przebiegów o określonej polaryzacji, częstotliwości lub długości (ustawienie,negacja lub wyzerowanie wyprowadzenia sterującego). Event counter zliczanie zdarzeń (zboczy) o określonej polaryzacji. Gated time accumulation akumulacyjne zliczanie czasu trwania doprowadzonych impulsów 72

Schemat blokowy timera GPT A/B 1-128 Input Capture Output Compare zew. zegar incrementujący licznikgpt 73

Sygnały wejścia/wyjścia timera GPT A/B 74

Rejestr danych portu timera GPT 75

Rejestr kierunku danych portu timera GPT 76

Rejestry sterujące timerami GPTA/GPTB 77

Rejestr stanu timera GPT 78

Rejestr stanu PA 79

Rejestr sterujący GPTSCR1 80

Rejestr sterujący GPTCLT1 81

Rejestr sterujący GPTCLT2 82

Rejestr sterujący GPTSCR2 83

Inne rejestry timera GPT GPTCNT 16-bit GPT Counter Register GPTC0 GPTC3 16-bit GPT Channel Registers GPTPACNT 16-bit Pulse Accumulator Counter GPTPACTL 8-bit Pulse Accumulator Control Register GPTPAFLG 8-bit Pulse Accumulator Flag Register GPTIOS 8-bit GPT IC/OC Select Register GPTCFORC 8-bit Compare Force Register GPTOC3M 8-bit Output Compare 3 Mask Register GPTOC3D 8-bit Output Compare 3 Data Register 84

Tablica wektorów przerwań 85

Generacja przebiegu prostokątnego TOF =1 0xFFFF 0xBFFF 0x7FFF 0x4FFF 0x0000 CnF = 1 OCn 86

Modulacja szerokości impulsów PWM (1) Pulse Width Modulation Wypełnienie D = szerokość impulsu / okres impulsu 87

Modulacja szerokości impulsów PWM (2) Pulse Width Modulation 88

Implementacja PWM z użyciem GPT Kanał 0 modułu GPT A okres D = 100 % OC0 = '1' OC0 = '0' D = 25 % 0x3FFF D = 50 % 0x7FFF 0 D = 75 % 0xBFFF 0xFFFF 89

Moduł timera DMA (DMA Timers) 90

Schemat blokowy timera DMA (DTIM0 - DTIM3) 91

Charakterystyka timera DMA Maksymalny okres timera 266521 s (~74 h) dla fclk=66 Mhz (dzielnik 16-bit, dzielnik 8-bit, licznik 32-bit), Minimalny okres timera 15 ns, Możliwość reakcji na zewnętrzne zdarzenia oraz generacji sygnału o kreślonym okresie, Możliwość zgłaszania przerwań oraz incjowania transferów DMA. 92

Zerowanie licznika DTCNn DTMRn [FRR] Free Run/Restart = 0 0xF...F DTRRn 0x0...0 DTMRn [FRR] Free Run/Restart = 1 93

Rejestry konfiguracyjne 94

Rejestr sterujący timerem DMA 95

Pomocniczy rejestr sterujący 0 => IRQ 1 => DMA 96

Rejestr statusowy 97

Tablica wektorów przerwań 98

Przykład DTMRn[PS] = 0x00-0xFF <= prescaler 1-255 fclk = 66 MHz prescaler wstępny = 16 DTMRn[PS] = 0x7F <= prescaler równy 127 Rejestr porównawczy = 0xFBC5 DMA timer time-out = 1/66 Mhz * 16 * (127+1) * 64453 = 1.999996 99

Moduł sterujący sygnałem resetujący (Reset Controller Module) 100

Schemat blokowy modułu sterującego sygnałem reset min. 4 cykli zegara ok. 512 cykli zegara flagi źródła uaktywniającego dostępne są RSR Jeżeli Vcc < VLVD (2.7 V) 101

Rejestr sterujący 102

Moduł timera Watchdog (Watchdog Timer Module) 103

Timer Watchdog (1) Watchdog (z ang. "Czuwający pies") to urządzenie, najczęściej układ elektroniczny, chroniący system mikroprocesorowy przed zbyt długim przebywaniem w stanie zablokowania (zawieszeniem się). Jego działanie polega na zresetowaniu procesora w przypadku nieotrzymania od niego sygnału w określonym czasie. 16-bitowy licznik dekrementowany sygnałem zegarowym podzielonym przez 8192 (2^13). 66.000.000 Hz / 8192 = 8056 Hz (124 µs 8.13 s) 104

Timer Watchdog (2) 1. wpis 0x5555 2. wpis 0xAAAA 105

Rejestry modułu Watchdog 106