CW-HC08 Programowanie mikrokontrolera MC9S08QD4



Podobne dokumenty
CW-HC08 Programowanie mikrokontrolera MC9S08QD4 [2]

Laboratorium Procesorów Sygnałowych

Projektowanie z użyciem procesora programowego Nios II

1.Wstęp. 2.Generowanie systemu w EDK

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

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Instytut Teleinformatyki

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

Instrukcja użytkownika Interfejs MON08 Moduł z mikrokontrolerem MC68HC908GR4

Parametryzacja przetworników analogowocyfrowych

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

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

Programowalne Układy Cyfrowe Laboratorium

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

Rys. 1. Schemat ideowy karty przekaźników. AVT 5250 Karta przekaźników z interfejsem Ethernet

2. Architektura mikrokontrolerów PIC16F8x... 13

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

TECHNIKA MIKROPROCESOROWA II

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

TECHNIKA MIKROPROCESOROWA II

Programator ICP mikrokontrolerów rodziny ST7. Full MFPST7. Lite. Instrukcja użytkownika 03/09

Płytka uruchomieniowa XM64

Konfiguracja pakietu CrossStudio for MSP

MultiTool instrukcja użytkownika 2010 SFAR

Bezpieczeństwo informacji oparte o kryptografię kwantową

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

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

Instytut Teleinformatyki

1.2. Architektura rdzenia ARM Cortex-M3...16

dokument DOK wersja 1.0

Instytut Teleinformatyki

Technika mikroprocesorowa. Konsola do gier

Moduł mikrokontrolera PROTON (v1.1)

Instytut Teleinformatyki

Programowanie procesora Microblaze w środowisku SDK

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Szkolenia specjalistyczne

INFORMATOR TECHNICZNY HORNER. Konfiguracja komunikacji GPRS pomiędzy sterownikiem XLe i oprogramowaniem Proficy HMI/SCADA Cimplicity

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

Układy czasowo-licznikowe w systemach mikroprocesorowych

Płytka laboratoryjna do współpracy z mikrokontrolerem MC68332

Instrukcja programowania systemu IP-DECT NEC w centralach MICRA, SIGMA, OPTIMA, DELTA

Programowanie mikrokontrolerów. 8 listopada 2007

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Electronic Infosystems

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Instytut Teleinformatyki

Windows 10 - Jak uruchomić system w trybie

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

Moduł uruchomieniowy mikrokontrolera MC68HC912B32

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

Instytut Teleinformatyki

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

Wyniki (prawie)końcowe - Elektroniczne warcaby

INSTRUKCJA OBSŁUGI PROGRAMU INSTAR 1.0

1.1. Wymogi bezpieczeństwa Pomoc techniczna TIA Portal V13 instalacja i konfiguracja pakietu...18

Pilot. Instrukcja instalacji

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

Instrukcja do laboratorium Akademii ETI *

T: Instalacja systemu Windows 2008 Serwer w maszynie wirtualnej VirtualBox.

Płytka uruchomieniowa XM32

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

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Politechnika Śląska w Gliwicach

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

TBLCF Interfejs Turbo BDM Light dla ColdFire

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

Product Update Funkcjonalność ADR dla przemienników Częstotliwości PowerFlex 750 oraz 525 6

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

INTEGRACJA CENTRALI ALARMOWEJ SATEL Z HOME CENTER 2 FIBARO

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

B. Kalibracja UNIJIG'a w programie Speaker Workshop. Po uruchomieniu program wygląda następująco:

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

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

1 Badanie aplikacji timera 555

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

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

LABORATORIUM Komputery przemysłowe i systemy wbudowane

Układy czasowo-licznikowe w systemach mikroprocesorowych

Programowanie mikrokontrolerów AVR

Podstawy programowania sterowników SIMATIC S w języku LAD / Tomasz Gilewski. Legionowo, cop Spis treści

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Instytut Teleinformatyki

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

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

Schemat blokowy karty

MikloBit ul. Cyprysowa 7/ Jaworzno. JTAG + ISP dla AVR. rev

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

AsLinkEx instrukcja obsługi

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

Galileo v10 pierwszy program

Transkrypt:

CW-HC08 Programowanie mikrokontrolera MC9S08QD4 Jan Kędzierski Marek Wnuk Wrocław 2009 Dokument stanowi instrukcję do ćwiczenia w ramach kursu Systemy mikroprocesorowe w automatyce II.

Spis treści 1 Cel ćwiczenia 2 2 Wprowadzenie 2 3 Opis stanowiska do ćwiczeń 4 4 Przebieg ćwiczenia 6 1

1 Cel ćwiczenia Celem ćwiczenia jest ogólne zapoznanie się z 8-bitowym mikrokontrolerem z rodziny HCS08 oraz ze środowiskiem programistycznym CodeWarrior Development Studio firmy Freescale Semiconductors [1]. W ramach ćwiczenia należy wygenerować przy pomocy narzędzia Processor Expert [4] kod inicjujący układ, następnie uzupełnić go tak, aby układ realizował odpowiednie funkcje proponowane w niniejszej instrukcji. 2 Wprowadzenie Układ MC9S08QD4 [2] należy do tanich, wydajnych, 8-bitowych mikrokontrolerów rodziny HCS08. Układy te są dostępne w różnych obudowach, z kilkoma rodzajami pamięci o różnych wielkościach. Programowanie i uruchamianie mikrokontrolera wykonuje się przy pomocy interfejsu BDM (Background Debug Module). Wbudowany w układ system debagowania pozwala na śledzenie pracy układu instrukcja po instrukcji. Diagram blokowy mikrokontrolera przedstawiono na rysunku 1. Rysunek 1: Diagram blokowy MC9S08QD4 Własności mikrokontrolera: 8-bitowa jednostka centralna CPU : Diagram zaczerpnięto z dokumentacji producenta [2] 2

częstotliwość pracy zegara: 16MHz, zestaw instrukcji z HC08 wzbogacony o instrukcje BGND, system debugowania, zasoby pamięciowe: rozmiar pamięci flash: 4096 bajty, rozmiar pamięci RAM: 256 bajty, tryby pracy z oszczędzaniem energii, wewnętrzne źródło zegara (ICS), wbudowane systemy zabezpieczeń: COP watchdog (Computer Operates Properly), wykrycie spadku napięcia zasilającego, wykrywanie nielegalnych instrukcji, wykrywanie nielegalnych adresów, blok zabezpieczeń pamięci flash, 4-kanałowy, 10-bitowy przetwornik analogowo-cyfrowy z funkcją porównanie (compare), 16-bitowy system timerów: 16-bitowy licznik z 7-bitowym preskalerem, 3 kanały (każdy może być IC - Input Capture lub OC - Output Compare), dwa tryby PWM: Edge-Aligned, Center-Aligned, możliwość resetowania licznika modulo, linie wej/wyj: układ przerwań (KBI) dedykowany dla klawiatury (4 wejścia), 4 linie wej/wyj, zewnętrzne źródło przerwań (IRQ), jednoliniowy interfejs uruchomieniowy BDM (Background Debug Mode) z pułapkami sprzętowymi, zasilanie 2,7V - 5V (max 30mA). Mikrokontroler do poprawnej pracy nie wymaga żadnych zewnętrznych elementów. Na rysunku 2 przedstawiono opis poszczególnych linii układu. Rysunek 2: Opis linii układu MC9S08QD4 Opis zaczerpnięto z dokumentacji producenta [2] 3

3 Opis stanowiska do ćwiczeń W skład stanowiska do ćwiczeń wchodzą: płytka testowa, interfejs BDM [3], zasilacz, komputer PC wraz z oprogramowaniem [4] oraz instrukcja. Przed przystąpieniem do ćwiczenia należy sprawdzić kompletność stanowiska. Rysunek 3: Stanowisko do programowania układu MC9S08QD4 Płytka testowa Głównym elementem płytki laboratoryjnej jest układ MC9S08QD4. Umieszczono na niej także zasilacz 5V oraz kilka drobnych elementów pozwalających zwizualizować działanie poszczególnych peryferii mikrokontrolera. Opis płytki testowej: PTA0 - potencjometr 1kΩ, PTA1 - dioda LED czerwona, PTA2 - dioda LED niebieska, PTA3 - klawisz, PTA4, PTA5 - interfejs BDM. Na rysunkach 4 i 5 przedstawiono rozmieszczenie elementów na płytce oraz schemat ideowy płytki. 4

Rysunek 4: Rozmieszczenie elementów na płytce laboratoryjnej Rysunek 5: Schemat płytki laboratoryjnej 5

4 Przebieg ćwiczenia Przed przystąpieniem do ćwiczenia należy utworzyć podkartotekę o nazwie EXi g (gdzie: g - oznaczenie grupy A..J, i - numer ćwiczenia) i pozostawić w niej (i tylko w niej!) pliki będące wynikiem (lub ilustracją) poszczególnych etapów zajęć. Opis modyfikacji programów i ich działania należy zamieścić jako komentarz w tekstach źródłowych programów. Proszę pamiętać o podaniu nazwisk. Każdy projekt powinien znajdować się w osobnej podkartotece. Oceniane będą tylko projekty nazwane zgodnie z zrealizowanym zadaniem np. Zad1, Zad2,... Zad1: Oprogramowaniem CodeWarrior Development Studio Otrzymany od prowadzącego przykładowy projekt kopiujemy do katalogu Zad1. Następnie uruchamiamy środowisko programistyczne CodeWarrior Development Studio. Otwieramy skopiowany projekt zad1.mcp. W pierwszej kolejności należy wykonać Make i uruchomić projekt. Prowadzący wyjaśni, jak powinien działać poprawnie uruchomiony przykładowy projekt. Po sprawdzeniu należy zapoznać się z oknami środowiska programistycznego: główne okno projektu, okno Processor Expert, a po uruchomieniu projektu z debugerem. Do oceny należy pozostawić projekt z ustawioną pułapką i dodanym komentarzem w miejscu wskazanym przez prowadzącego. Zad2: Cykliczne przerwanie RTI, moduł obsługi klawiatury KBI W zadaniu 2 należy utworzyć nowy projekt przy użyciu kreatora. Po zamknięciu poprzedniego projektu i utworzeniu katalogu Zad2 w menu Plik, należy wybrać New Project. Pojawi się okno kreatora, w którym należy postępować wg instrukcji: Device and Connection: wybieramy układ MC9S08QD4 i HCS08 Open Source BDM, Project Parameters: wybieramy C, ustawiamy ścieżkę i nazwę projektu, Add Additional Files: nie dodajemy żadnych plików, Processor Expert: wybieramy Device Initialization, C/C++ Options: pozostawiamy bez zmian, PC Lint: wybieramy No. Po wykonaniu powyższych kroków pojawią się podobne okna jak w Zad1. W ćwiczeniu tym, należy skonfigurować dwa moduły. Pierwszy z nich, to cykliczne przerwanie RTI. Częstotliwość przerwania poda prowadzący. Drugi, to moduł obsługujący czteroklawiszową klawiaturę KBI. Aby móc zaprezentować działanie modułów na diodach LED, należy dodatkowo skonfigurować moduł PTA (port A). Konfiguracja modułu PTA: Settings Pins Port control: wybieramy Individual pins, Pinx : konfigurujemy te linie, do których podłączono diody LED i wybieramy Enabled Direction: wybieramy Output, 6

Output value: wybieramy 1, Drive strenght: wybieramy High. Podobnie konfigurujemy PTA dla drugiej diody. Przed przystąpieniem do dalszej, części zadania można przetestować konfigurację PTA. W tym celu, w oknie Device initlization klikamy Generate code i zatwierdzamy klikając Generate. Processor Expert wygeneruje kod odpowiedzialny za poprawną inicjalizację mikrokontrolera. Po zapoznaniu się z wygenerowanym kodem, uruchamiamy Debuger.Jeżeli obydwie diody się zapaliły, można przejść do konfiguracji modułów RTI i KBI. Konfiguracja modułu RTI: Settings Clock settings: Interrupts: Clock select: pozostawiamy Internal oscillator, Prescaler: częstotliwość przerwania wybieramy zgodnie z zaleceniem prowadzącego, Real-Time Interrupt: wybieramy Enabled. Klikamy Generate code i zatwierdzamy klikając Generate. Konfiguracja RTI jest już zakończona. Naturalnie, aby móc oglądać efekt działania cyklicznego przerwania, należy w pliku źródłowym odszukać funkcję wywoływaną przez przerwanie i zapisać instrukcje, które np. będą zaświecały i gasiły dowolną diodę LED. W funkcji tej potwierdzamy obsłużone przerwanie przy pomocy instrukcji: SRTISC =(0x40); //ustaw 1 (RTIACK) w rejestrze SRTISC UWAGA: Device initialization nie generuje kodu obsługującego przerwanie. W każdej funkcji wywoływanej przez dane przerwanie, należy ręcznie zgasić flagę. W przeciwnym wypadku program nigdy nie opuści przerwania. Konfiguracja modułu KBI: Settings Pins Triggering sensitivity: wybieramy edge and level, Pinx : konfigurujemy tę linię, do której podłączono klawisz i wybieramy Enabled, Interrupts: Pull resistor: wybieramy pull up, Keyboard request: Keyboard request interrupt: wybieramy Enabled. Ponownie klikamy Generate code i zatwierdzamy klikając Generate. Konfiguracja KBI jest już zakończona. W pliku źródłowym, należy odszukać funkcję wywoływaną przez przerwanie i zapisać instrukcje, które np. będą zaświecały i gasiły dowolną diodę LED. W funkcji tej, potwierdzamy obsłużone przerwanie przy pomocy instrukcji: 7

KBISC =(0x04); //ustaw 1 (KBACK) w rejestrze KBISC Do oceny należy pozostawić projekt z komentarzami wyjaśniającymi powyższą konfigurację wszystkich modułów. Komentarze powinny znajdować się na początku każdej funkcji, której one dotyczą. Zad3: Funkcje czasowo-licznikowe TPMx, przetwornik analogowo cyfrowy ATD W zadaniu 3 przy pomocy kreatora można utworzyć na nowo projekt lub skopiować dotychczasowy do utworzonego katalogu Zad3. W ćwiczeniu tym należy uruchomić kolejne dwa moduły. Pierwszy z nich konfigurujemy tak, aby pracował jako modulator PWM o częstotliwości i wypełnieniu zadanym przez prowadzącego. Efekt pracy modulatora należy zwizualizować na diodzie LED. Drugi moduł konfigurujemy tak, aby pracował jako 8 - bitowy przetwornik A/C na kanale, do którego podłączono potencjometr. Wartość zmierzoną należy odpowiednio przeskalować i zadać w postaci wypełnienia na wcześniej skonfigurowany kanał PWM. W rezultacie uzyskamy regulację jasności świecenia diody LED przy pomocy potencjometru. Konfiguracja modułu TPM1: Settings Clock settings: Clock source select: pozostawiamy Fixed system clock, Prescaler: wybieramy na podstawie zadanej częstotliwości, Modulo counter: wpisujemy na podstawie zadanej częstotliwości, Aligned: pozostawiamy na left, Channels: ustawiamy 1, Channel: Capture/compare device: wybieramy TPM11, Settings:»Mode: wybieramy PWM,»» PWM output action: wybieramy Set output on compare,»» Channel compare capture: wpisujemy na podstawie zadanego wypełnienia, Pin:»Channel pin: wybieramy PTA1 KBI1P1 TPM1CH1 ADC1P1. Przed przystąpieniem do dalszej części zadania, można przetestować konfigurację TPM1. Konfiguracja modułu ATD: Settings Pins Clock settings: Input clock select: pozostawiamy BusClk, Prescaler: pozostawiamy 1, Conversion mode: wybieramy Continous conversion, Result data format: pozostawiamy 8-bit right, ADC Input Pins: klikamy 1, 8

Initialization Pin: wybieramy pin, do którego podłączono potencjometr, Initial channel select: wybieramy kanał, do którego podłączono potencjometr. Zmierzoną przy pomocy przetwornika A/C wartość podajemy jako wypełnienie sygnału PWM. W tym celu należy np. w programie głównym użyć następujących instrukcji: TPMC1VH=0; // TPMC1V jest 16 bitowy (dwa bajty L i H) TPMC1VL=ADCRL; Do oceny należy pozostawić projekt z komentarzami wyjaśniającymi powyższą konfigurację wszystkich modułów. Komentarze powinny znajdować się na początku każdej funkcji, której one dotyczą. Literatura [1] www.freescale.com, Freescale Semiconductors [2] MC9S08QD4 Datasheet, Rev. 4, 9/2008, Freescale Semiconductors [3] KUCZAJ R. Interfejs OSBDM/TBDML, Wrocław 2008, http://www.konar.ict.pwr.wroc.pl/uploads/download/hc12/osbdm tbdml.pdf [4] CodeWarrior Development Studio for Microcontrollers, Quick Start, Freescale Semiconductors 9