Laboratorium mikrokontrolerów

Podobne dokumenty
TECHNIKA MIKROPROCESOROWA II

Laboratorium Procesorów Sygnałowych

Parametryzacja przetworników analogowocyfrowych

Laboratorium mikrokontrolerów

MARM. Laboratorium 1 system zegarów, porty wejścia/wyjścia. M. Suchenek

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

Instytut Teleinformatyki

TECHNIKA MIKROPROCESOROWA II

Laboratorium mikrokontrolerów

Laboratorium mikrokontrolerów

Układy zegarowe w systemie mikroprocesorowym

Podstawy Elektroniki dla Informatyki. Pętla fazowa

TECHNIKA MIKROPROCESOROWA II

TECHNIKA MIKROPROCESOROWA II

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut.

Programowanie mikrokontrolerów 2.0

Instrukcja obsługi programatora AVR Prog USB v2

Sprzęt i architektura komputerów

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Instrukcja obsługi programatora AVR Prog USB v2

2. Architektura mikrokontrolerów PIC16F8x... 13

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

TECHNIKA MIKROPROCESOROWA II

Sterownik Spid Pant 8 i Ant 8. Podręcznik użytkowania

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Instrukcja obsługi programatora AVR Prog USB v2

TECHNIKA MIKROPROCESOROWA II

Generator funkcyjny. Spis treści. Działanie. Interfejs. Adam Miarka Maksymilian Szczepanik

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

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Projektowania Układów Elektronicznych CAD Laboratorium

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

LABORATORIUM INTELIGENTNYCH SYSTEMÓW ELEKTRYCZNYCH

RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM

DOKUMENTACJA PROJEKTU

Przetwarzanie A/C i C/A

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Przetwarzanie AC i CA

Porty GPIO w mikrokontrolerach STM32F3

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

MultiTool instrukcja użytkownika 2010 SFAR

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Instytut Teleinformatyki

Konfigurowanie sterownika BX9000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy ze sterownikiem BX9000

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

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Komputerowe projektowanie układów ćwiczenia uzupełniające z wykorzystaniem Multisim/myDAQ. Katedra Mikroelektroniki i Technik Informatycznych PŁ

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

TECHNIKA MIKROPROCESOROWA II

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

Electronic Infosystems

Technika Mikroprocesorowa

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

ZL17PRG. Programator ICP dla mikrokontrolerów ST7F Flash

Wzmacniacze napięciowe i ograniczniki dynamiki

Ćwicz. 4 Elementy wykonawcze EWA/PP

Opis ultradźwiękowego generatora mocy UG-500

Instrukcja obsługi programatora AVR Prog USB v2

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

TECHNIKA MIKROPROCESOROWA II

1 Badanie aplikacji timera 555

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Programator procesorów rodziny AVR AVR-T910

Instytut Teleinformatyki

UKŁADY Z PĘTLĄ SPRZĘŻENIA FAZOWEGO (wkładki DA171A i DA171B) 1. OPIS TECHNICZNY UKŁADÓW BADANYCH

Laboratorium Komputerowe Systemy Pomiarowe

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

Instrukcja obsługi. PROGRAMATOR dualavr. redflu Tarnów

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

III. Przebieg ćwiczenia. 1. Generowanie i wizualizacja przebiegów oraz wyznaczanie ich podstawowych parametrów

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

Szybki przewodnik instalacji

Bezpieczeństwo informacji oparte o kryptografię kwantową

FREEboard. Zestaw startowy z mikrokontrolerem z rodziny Freescale KINETIS L (Cortex-M0+) i sensorami MEMS 7 DoF

Badanie działania bramki NAND wykonanej w technologii TTL oraz układów zbudowanych w oparciu o tę bramkę.

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

Mikrokontrolery AVR Wprowadzenie

Szkolenia specjalistyczne

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Temat ćwiczenia: Przekaźniki półprzewodnikowe

Przystawka oscyloskopowa z analizatorem stanów logicznych. Seria DSO-29xxA&B. Skrócona instrukcja użytkownika

Schemat blokowy karty

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

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Centrala alarmowa ALOCK-1

BADANIE ELEMENTÓW RLC

Podstawy budowy wirtualnych przyrządów pomiarowych

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

Laboratorium Komputerowe Systemy Pomiarowe

Transkrypt:

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki WIET Laboratorium mikrokontrolerów Ćwiczenie 3 Fast GPIO, magistrale i zegar Autor: Paweł Russek http://www.fpga.agh.edu.pl/pm ver. 9.11.16 1/12

1. Cel ćwiczenia Celem tego ćwiczenia jest zapoznanie studenta z budową i celem stosowania architektury wielomagistralowej mikrokontrolerów z rodziny Kinetis L. Zalety tej architektury zostaną zaprezentowane poprzez porównanie modułów peryferyjnych GPIO i Fast GPIO. Następnie student zapozna się ze sposobem użytkowania wielofunkcyjnego urządzenia laboratoryjnego Analog Discovery. Urządzenie Analog Discovery pozwala na pomiary wartości analogowych i cyfrowych, wizualizację i zapis mierzonych wartości, oraz generowanie zaprogramowanych przebiegów. Na zakończenie student dokona pomiarów mocy elektrycznej i wydajności mikrokontrolerów w różnych trybach konfiguracji zegara systemowego i dla różnych modułów peryferyjnych GPIO. 2. Moduł Fast GPIO Architektura układów ARM składa się z dwóch magistral: APB (Advanced Peripheral Bus) i AHB (Advanced High-Performance Bus). Magistrala AHB jest znacznie szybsza od magistrali APB, ponieważ pozwala CPU na wykonanie cyklu dostępu (zapisu/odczytu) do modułów peryferyjnych w jednym cyklu zegara. Magistrala APB jest wolniejsza i potrzebuje na dostęp dwóch cykli zegara. Magistrala AHB jest bezpośrednio podłączona do CPU, a APB jest połączone z CPU poprzez AHB (patrz rys. poniżej). Schemat blokowy architektury Cortex-M0 wraz z modułami Fast GPIO (Low Latency GPIO), oraz magistralami AHB i APB W Kinetis L każdy z portów we/wy (Porty A-E) posiada dwa modułu poprzez które można się do niego odwoływać. Jeden moduł jest adresowany, jak pozostałe urządzenia peryferyjne, poprzez APB, a drugi przez AHB. 2/12

Zauważ, że w dokumentacji moduły, które są odpowiedzialne za dostęp do GPIO poprzez magistralę AHB są nazwane FGPIO (Fast GPIO). Port A jest nazywany FGPIOA, port B to FGPIOB itd. W nagłówku MKL25Z4.h nazwy odpowiednich struktur to FPTA, FPTB, FPTC, FPTD i FPTE. Ważnym praktycznym wnioskiem, który można wysnuć z tego paragrafu instrukcji jest to, że w prosty sposób można przyśpieszyć działanie aplikacji na Kineti L poprzez prostą zmianę nazw PTAx na FPTAx w kodzie programu. Ćwiczenie 2.1 Wyszukaj adresy bazowe modułów FAST GPIOx w nagłówku MKL25Z4.h FPTA FPTB FPTC FPTD FPTE 3. Zegar systemowy, a wydajność mikrokontrolera Typowo zegar systemowy mikrokontrolera może być generowany na kilku rożnych sposobów. Źródłem zegara mogą być: wewnętrzny oscylator RC, który dostarcza sygnału o nieprecyzyjnej i niestabilnej częstotliwości, ale nie wymaga żadnych elementów zewnętrznych, zewnętrzny oscylator kwarcowy, który oferuje bardzo stabilną i precyzyjną częstotliwość, ale jest rozwiązaniem drogim (w szczególności przy częstotliwościach w okolicy 100 MHz), wewnętrzna pętla fazowa PLL, która jest kompromisowym rozwiązaniem wobec bardzo taniego oscylatora RC i kwarcu o bardzo dobrych parametrach. W tym rozwiązaniu stosuje się niedrogi kwarc jako źródło sygnału o niskiej częstotliwości, który jest następnie powielany za pomocą pętli fazowej. To rozwiązanie jest szeroko stosowane w systemach mikroprocesorowych pracujących z częstotliwościami ponad 20 MHz. Dodatkową zaletą jest to, że PLL pozwala na programowanie wartości częstotliwości zegara. Dzięki temu, można na przykład stosować szybki zegar podczas wykonywania złożonych obliczeniowo zadań, a zegar powolny kiedy można oszczędzać energię. Mikrokontroler na płytce FRDM-KL25Z jest wyposażony w kwarc o częstotliwości 8 MHz, co umożliwia programowanie zegara systemowego na kilka sposobów. Kiedy programista tworzy nowy projekt w Keil uvision5 system automatycznie dodaje kod startowy, który jest wykonywany po uruchomieniu mikrokontrolera, zanim jeszcze zostanie uruchomiona funkcja main(). Częścią kodu startowego jest opisana w pliku system_mkl25z4.c. Plik nagłówkowy system_mkl25z4.h udostępnia rożne tryby konfiguracji zegara poprzez definicję symbolu CLOCK_MODE. 3/12

CLOCK_SETUP MODE Reference clock CPU clock Bus clock 0 FLL Engaged Internal mode (FEI) 32 khz Slow Internal Reference Clock 20.97152 MHz 20.97152 MHz 1 (Max. clock freq.) PLL Engaged External (PEE) 2 Bypassed Low Power Internal (BLPI) 3 Bypassed Low Power External (BLPE) External External crystal 8 MHz 4 MHz Fast Internal Reference Clock External crystal 8 MHz 48 MHz 24 MHz 4 MHz 0.8 MHz 4 MHz 1 MHz Jako domyślny jest ustawiony tryb 0, ale można także wybrać inny tryb zmieniając wartość definicji #define CLOCK_SETUP w pliku system_mkl25z4.h. Wydajność mikrokontrolera zależy od częstotliwości zegara systemowego oraz od pracy kompilatora. Kiedy mikrokontroler współpracuje z urządzeniami peryferyjnymi szybkość pracy zależy również od szybkości magistrali systemowej. W tym ćwiczeniu kompilatorem nie będzie my się zajmować, zbadamy natomiast wpływ zegara. 4. Analog Discovery Urządzenie wielofunkcyjne Analog Discovery firmy Digilent pozwala na przeprowadzanie pomiarów, wizualizację wyników, generowanie przebiegów, zapisywanie zebranych danych i kontrolowanie urządzeń analogowych i cyfrowych różnego rodzaju. Urządzenie jest małe, ale oferuje ogromne możliwości studentom, którzy chcą samodzielnie eksperymentować z układami elektronicznymi. Wejścia analogowe i cyfrowe mogą być podłączane za pomocą krótkich uniwersalnych przewodów, które można łatwo podłączyć do złącz typu goldpin. Komputer PC współpracuje z Analog Discovery za pomocą złącza USB i jest kontrolowany poprzez oprogramowanie WaveForm 2015. WaveForm pozwala na konfigurację urządzenia i prowadzenie eksperymentów. 4/12

Najprostszą metodą korzystania z Analog Discovery jest użycie aplikacji WaveForm. Aplikację należy uruchomić, kiedy urządzenie jest już podpięte do złącza USB komputera. WaveForm automatycznie wykryje urządzenie i się skonfiguruje. Jeżeli uruchomienie przebiegnie poprawnie, to w głównym oknie aplikacji, w pasku statusu po prawej stronie, pojawi się numer seryjny Analog Discovery. 5. Pomiar zużycia energii na płytce FRDM-25Z Złącze J4 na płytce FRDM-KL25Z umożliwia wygodne przeprowadzenie pomiaru prądu pobieranego przez mikrokontroler, a pośrednio także wartości rozpraszanej mocy. 5/12

Pomiar spadek napięcia na zworze J4 jest proporcjonalny do prądu pobieranego przez mikrokontoler. Opornik połączony równolegle do zwory J4 to 10 ohm. Ćwiczenie 5.1 Zapisz wzór na moc rozpraszaną przez mikrokontroler w funkcji napięcia na zworze J4. P(U J4 )=??? 6. Wydajność mikrokontrolera, czas odpowiedzi i moc. W następnym ćwiczeniu zbadamy jak zmienia się wydajność mikrokontrolera. Będziemy mierzyć czas odpowiedzi mikrokontrolera w różnych konfiguracjach częstotliwości zegara. Mikrokontroler będzie wykonywał aplikację, która będzie sprawdzała stan logiczny na jednym z wejść GPIO. W momencie zmiany stanu wejścia z poziomu niskiego na wysoki, aplikacja wykona zmianę stanu na innym wyjściu GPIO. Jako wejście użyjemy pin 0 portu D, a jako wyjście pin 0 portu B. Mierzony czas odpowiedzi to czas pomiędzy zmianą sygnału na wejściu i wyjściu układu. Ćwiczenie 6.1 1. Podłącz FRDM-25Z do Analog Discovery 2 zgodnie z diagramem 2. Uruchom WaveForms i skonfiguruj Analog Discovery. 2A. Ustaw przebieg prostokątny na wyjściu cyfrowym IO1 (podłączone do PTD0). Kliknij Patterns w głównym oknie. 6/12

Wybierz Add channels->signal->dio1 i kliknij Add (Uwaga: Na rysunku pokazano DIO0.) Aby skonfigurować dodane wyjście kliknij ikonę w polu IO sygnału DIO1. Następnie w oknie Edit wybierz Clock w polu Type i 10 khz w polu Frequency. Kliknij Close 7/12

Na końcu kliknij przycisk Run, aby uruchomić przebieg prostokątny na wyjściu DIO1. 2B. Skonfiguruj podgląd stanów logicznych na wejściach cyfrowych IO0 i IO1 (podłączone do PTB0 i PTD0). Wybierz Logic w oknie Welcome. Wybierz Add channels->signal->dio0 i kliknij Add 8/12

Powtórz procedurę dodanie sygnału dla sygnału DIO1. 3B. Aby dokonać pomiaru różnicowego na zworze J4, skonfiguruj oscyloskop Wybierz okno Welcome i kliknij przycisk Scope. Wybierz Channel 1 i ustaw wzmocnienie sygnału wejściowego w polu Range na 20mV/div. Uwaga. Podczas wykonywania ćwiczenia dobieraj wartość wzmocnienia w taki sposób 9/12

aby maksymalnie wzmocnić sygnał i aby pomiar był możliwie najdokładniejszy. 3. Według kodu podanego poniżej, uruchom aplikację na płytce FRDM-25Z. /*----------------------------------------------------------------------------- * Name: main.c * Purpose: Toggling_LEDs application * Author: Student *----------------------------------------------------------------------------*/ #include "MKL25Z4.h" /*Device header*/ #define LED_1 0 #define SW_1 0 int main() { //Enable clock for Port B and Port D SIM->SCGC5 =SIM_SCGC5_PORTB(1) SIM_SCGC5_PORTD(1); //Configure Port B pin 0 as GPIO, Output PORTB->PCR[LED_1] =PORT_PCR_MUX(1); PTB->PDDR =(1<<LED_1); //Configure Port D pin 0 as GPIO, Input, Pull-up resistor PORTD->PCR[SW_1] =PORT_PCR_MUX(1) PORT_PCR_PE(1) PORT_PCR_PS(0); PTD->PDDR&=~(1<<SW_1); while(1){ if( (PTD->PDIR & (1<<SW_1))==0){ if(ptb->pdor & (1<<LED_1)) PTB->PDOR&=~(1<<LED_1); else 10/12

FPTB->PDOR =(1<<LED_1); } } } while((ptd->pdir & (1<<SW_1))==0); //Wait for SW_1 release 4. Uruchom pomiar poprzez naciśnięcie przycisku Single w zakładce Logic. Pamiętaj, aby dostosować ustawienie szybkości próbkowania w polu 'Base w taki sposób, aby najlepiej odpowiadała ona spodziewanemu opóźnieniu. Wartość przedstawiona na rysunku poniżej jest jedynie orientacyjna. Na podstawie uzyskanego przebiegu odczytaj opóźnienie. 5. Oblicz moc mikrokontrolera na podstawie odczytu napięcia na zworze J4 w oknie Scope. 6. Zmień konfigurację zegara poprzez edycję definicji CLOCK_MODE w pliku system_mkl25z.h. #define CLOCK_SETUP 1 /* Define clock source values */ #define CPU_XTAL_CLK_HZ 8000000u /* Value of the external crystal or oscillator clock frequency in Hz */ #define CPU_INT_SLOW_CLK_HZ 32768u /* Value of the slow internal oscillator clock frequency in Hz */ #define CPU_INT_FAST_CLK_HZ 4000000u /* Value of the fast internal oscillator clock frequency in Hz */ /* RTC oscillator setting */ /* Low power mode enable */ /* SMC_PMPROT: AVLP=1,ALLS=1,AVLLS=1 */ 11/12

#define SYSTEM_SMC_PMPROT_VALUE 0x2AU /* SMC_PMPROT */ /* Internal reference clock trim */ /* #undef SLOW_TRIM_ADDRESS */ /* Slow oscillator not trimmed. Commented out for MISRA compliance. */ /* #undef SLOW_FINE_TRIM_ADDRESS */ /* Slow oscillator not trimmed. Commented out for MISRA compliance. */ /* #undef FAST_TRIM_ADDRESS */ /* Fast oscillator not trimmed. Commented out for MISRA compliance. */ /* #undef FAST_FINE_TRIM_ADDRESS */ /* Fast oscillator not trimmed. Commented out for MISRA compliance. */ #ifdef CLOCK_SETUP #if (CLOCK_SETUP == 0) #define DEFAULT_SYSTEM_CLOCK 20971520u /* Default System clock value */ #define MCG_MODE MCG_MODE_FEI /* Clock generator mode */ /* MCG_C1: CLKS=0,FRDIV=0,IREFS=1,IRCLKEN=1,IREFSTEN=0 */ 6. Zamiast GPIO użyj Fast GPIO. W tym celu zmień PTB na FPTB i PTD na FPTD w kodzie programu. 7. Powtarzaj czynności 4-6 tak aby wypełnić tablę poniżej. MODE CPU Frequency Bus Frequency Port type Response time Power 0 GPIO Fast GPIO 1 2 GPIO Fast GPIO GPIO Fast GPIO 12/12