TM Kolos 2 Cennik 05/10

Podobne dokumenty
LABORATORIUM TM Cel laboratorium

WPROWADZENIE Mikrosterownik mikrokontrolery

dokument DOK wersja 1.0

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

Szkolenia specjalistyczne

Architektura komputerów

E-TRONIX Sterownik Uniwersalny SU 1.2

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Parametryzacja przetworników analogowocyfrowych

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

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

Wstęp Architektura... 13

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

Organizacja typowego mikroprocesora

MIKROKONTROLERY I MIKROPROCESORY

Instytut Teleinformatyki

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

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

System mikroprocesorowy i peryferia. Dariusz Chaberski

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

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

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

LEKCJA TEMAT: Zasada działania komputera.

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

LABORATORIUM TM 5. Piotr Błędowski Maciej Pawlak. 1. Cel laboratorium

ARCHITEKTURA PROCESORA,

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Kod produktu: MP01105T

Kod produktu: MP01105

Obsługa kart pamięci Flash za pomocą mikrokontrolerów, część 1

LOW ENERGY TIMER, BURTC

MultiTool instrukcja użytkownika 2010 SFAR

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Karta katalogowa JAZZ OPLC JZ20-R31

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

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

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

Wbudowane układy peryferyjne cz. 3 Wykład 9

Technika mikroprocesorowa. Konsola do gier

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

2.1 Porównanie procesorów

TERMOSTAT Z WYŚWIETLACZEM LED - 50,0 do +125,0 C

Pomoc do programu ISO Manager

Rejestratory Sił, Naprężeń.

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

STACJA PAMIĘCI SP2005

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

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

Uproszczony schemat blokowy konwertera analogowo-cyfrowego przedstawiony został na rys.1.

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

Systemy wbudowane. Paweł Pełczyński

Temat: Pamięci. Programowalne struktury logiczne.

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

Kod produktu: MP01611

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Urządzenia zewnętrzne

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Programowanie w językach asemblera i C

Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca)

MANIPULATOR LED CA-10 KLED-M

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Hardware mikrokontrolera X51

JAZZ OPLC JZ20-R10 i JZ20-R16

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

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

Instytut Teleinformatyki

Karta katalogowa JAZZ OPLC. Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Instytut Teleinformatyki

Bufor danych USB jednorazowego użytku EBI 330-T30/EBI 330-T85 Nr produktu

Moduł temperatury TMB-880EXF Nr produktu

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

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

Instrukcja obsługi programatora AVR Prog USB v2

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Układy zegarowe w systemie mikroprocesorowym

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

STEROWNIKI PROGRAMOWALNE PLC

Ćwiczenie 7 Matryca RGB

Układy czasowo-licznikowe w systemach mikroprocesorowych

Metody obsługi zdarzeń

Kompilator języka C na procesor 8051 RC51 implementacja

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

PL B1. Akademia Górniczo-Hutnicza im. St. Staszica,Kraków,PL BUP 24/01. Wiesław Wajs,Kraków,PL

Samba OPLC SM35-J-T20

Interfejs analogowy LDN-...-AN

Instrukcja obsługi programatora AVR Prog USB v2

2. Architektura mikrokontrolerów PIC16F8x... 13

Transkrypt:

TM Kolos 2 Cennik 05/10 1) moc obliczeniowa / adresowanie 2 obsługa WE/WY 2 przerwania 2 zarządzanie energią 2 inne (bezpieczeństwo, gabaryty, programowanie, reprogramowanie itp) 2 -------razem: 10 2) sterowanie ROM 2 sterowanie RAM 3 dekodowanie pamięci 3 szybki zapis RAM 3 sterowanie WE/WY 2 implementacja WE/WY 2 -------razem: 15 3) przypisanie portów 2 podłączenie klawiatury / wyświetlacza 3 podłączenie UART 2 inicjowanie systemu 3 obsługa UART 3 obsługa klawiatury / wyświetlacza 4 przetwarzanie / dekompozycja 3 zarządzanie energią 5 -------razem: 25

1A. Sformułować założenia projektowe dla systemu mikroprocesorowego sterującego działaniem automatu z napojami albo bankomatu (do wyboru). Bankomat: - układ oparty będzie na paru współpracujących ze sobą mikrokontrolerach MSP430, ze względu na złożoność operacji wyświetlania, autoryzacji i komunikacji poprzez łącze modemowe z centralą. - układ posiada zasilanie stałe z sieci oraz zasilanie awaryjne, tak aby w przypadku trwającej transakcji mógł ją dokończyć oraz wysłać informacje do centrali o zaniku zasilania - system powinien posiadać watchdoga, który monitorować będzie poprawność działania systemu oraz stabilny poziom zasilania. - obsługa monitora, przycisków, czytnika kart oraz modemu do łączności z centralą zostanie zaimplementowana sprzętowo. Jednak logika autoryzacji, przetwarzanie danych wysyłanych i odbieranych, wyświetlany pulpit i przypisanie przycisków do konkretnych działań zostanie przeniesione na płaszczyznę programową, aby urządzenie mogło być wykorzystywane przez różne banki. - układ powinien posiadać możliwość prostej aktualizacji oprogramowania, która ściągana byłaby bezpośrednio z centrali przez łącze modemowe. - pamięć flash musi zostać jak najlepiej zabezpieczona, tak aby niemożliwa była jakakolwiek nieautoryzowana ingerencja w zapisany kod - ze względu na skomplikowanie samego programu, środowiskiem programowym powinno być c++ 1B Sformułować założenia projektowe dla systemu mikroprocesorowego sterującego działaniem cyfrowego dyktafonu lub pilota RTV. Pilot RTV: - układ oparty będzie na mikrokontrolerze MSP430 - zasilanie układu stanowić będą dwie baterie AA. Zasilanie awaryjne jest zbędne, ponieważ przerwanie działania układu w trakcie nie powoduje żadnych negatywnych konsekwencji - układ powinien posiadać watchdoga który w przypadku zawieszenia się programu, zrestartuje urządzenie - za logikę działania urządzenia odpowiadać będzie w większosci sprzęt, program powinien być jak najprostszy - przypisanie klawiszy powinno być zachowane na pamięci nieulotnej flash - zw względu na prostotę programu, środowiskiem programowym będzie assembler 1C. sformułować założenia projektowe dla systemu mikroprocesorowego sterującego działaniem aparatu fotograficznego lub alarmu samochodowego. Alarm samochodowy: - układ oparty będzie na dwóch mikrokontrolerach MSP430, gdzie jeden będzie w stanie aktywnym, a drugi będzie występował w roli jednostki zapasowej w przypadku wykrycia błędu bądź uszkodzenia jednostki głównej - układ powinien być zasilany bezpośrednio z akumulatora samochodowego, jednak posiadać własną, pojemną baterię ładowaną przez akumulator, tak aby w przypadku ocięcia głównego źródła zasilania alarm mógł samodzielnie działać jeszcze przez dłuższy czas, co ze względu na przeznaczenie systemu jest wymogiem krytycznym - układ musi uniemożliwiać jakąkolwiek ingerencję w program, a w przypadku naruszenia dostępu do pamięci powinien uruchomić alarm. Aktualizacja oprogramowania wiązałaby się z wymianą jednostki centralnej w autoryzowanym serwisie, jednak takie postępowanie zapewnia większe bezpieczeństwo. - system musi posiadać sprawną diagnostykę, monitorującą sprawność wszystkich swoich komponentów. - w przypadku wykrycia błędu lub zaniku zasilania, układ powinien zablokować komputer pokładowy w samochodzie i oczekiwać na wpisanie specjalnego kodu przez właściciela

2A. Zaprojektować i opisać system z procesorem Z80, pamięcią EPROM 16KB+32KB oraz pamięcią RAM 4x8KB. Należy zapewnić przełączanie fragmetów RAM w przestrzeni adresowej pamięci o rozmiarze 16KB Adresy zostały poddane stronnicowaniu na 4 strony: jedna dla EPROM 32 KB, druga dla EPROM 16 KB, trzecia i czwarta dla dwóch kolejnych par kostek RAM po 8 KB. W pierwszym cyklu należy wykonać operacje zapisu do adresu większego bądź równego 0x8000 ( A15 = 1 ) i w zapisywanych danych wskazać stronę: 0x01 dla EPROM 32 KB, 0x2 dla EPROM 16 KB, 0x4 dla pierwszej pary RAM, 0x8 dla drugiej pary RAM. Rozróżnienie między dwoma kostakami w parze zapewnia A13.

2A. Rozwiązanie alternatywne

2A. rozwiązanie alternatywne'

2B. Zaprojektować i opisać system z procesorem Z80, pamięcią EPROM 2x16KB, pamiecią RAM 3x8KB i czterema 8 bitowymi portami wyjściowymi. Układy RAM są mapowane zarówno w przestrzeni pamięci, jak i w przestrzeni we/wy Z80 posiada tylko 8 bitów adresowych. Pamięć EPROM adresujemy A0-A13, a do wyboru kości używamy A14. Aby wybrac EPROM należy zaadresować zatrzask ( A15 = 1) a następnie D7 ustawić na 0. Dla D7 = 1, D6, D5 = 0 wybrane są porty wyjściowe, a dla innych kombinacji D6, D5 konkretne kostki pamięci RAM. Pamięć RAM jest adresowana bitami A0-A7 adresu oraz D0-D4 danych.

2B - rozwiązanie alternatywne Chcemy zamapować 3x8kB RAMu i 2x16kB ROMu = 56kB. Pozostaje nam 8kB wolnej przestrzeni adresowej, w którą możemy zmapować porty wyjściowe. Nie potrzebujemy stronicowania. W zadaniu jest wskazane, że RAM ma być mapowany zarówno w pamięci jak i IO. Pamięci EPROM mapujemy tylko w MEM. Ponieważ w ROMie będzie zapisany program, wg mnie adresy 0066h i 0038h, adresujące w Z80 procedury obsługi przerwań, powinny mapować się w ROM: 00xxxxxxxxxxxxxx E16.0 01xxxxxxxxxxxxxx E16.1 Pamięci RAM mapujemy w MEM i IO: 100xxxxxxxxxxxxx R8.0 101xxxxxxxxxxxxx R8.1 110xxxxxxxxxxxxx R8.2 Porty wyjściowe - możemy zamapować albo tylko w IO albo w MEM + IO (nie wiem którą opcję Chrząszcz by wolał). Jeśli wybierzemy opcję "MEM + IO": Ponieważ pod adresami zaczynającymi się od '0' znajduje się EPROM, do którego na pewno nie będziemy pisać, to możemy te adresy wykorzystać dla portów wyjściowych, z których z kolei nie będziemy czytać. Jeśli wybierzemy opcję "tylko IO", nic nie stoi na przeszkodzie żeby również takie adresowanie zastosować. Zysk względem skorzystania z wolnego obszaru przestrzeni adresowej (adresy 111xxxxxxxxxxxxx) jest taki, że wystarczy nam dekodowanie 3ech, nie 5ciu bitów adresu. 000xxxxxxxxxxxxx P0 001xxxxxxxxxxxxx P1 010xxxxxxxxxxxxx P2 011xxxxxxxxxxxxx P4 Sposób podłączenia CS: Wystarczą nam pamięci z pojedynczym wejściem CS + bramki OR4. Jeśli użyjemy pamięci z podwójnym CS wystarczą bramki OR2. E16.0::CS = OR(A15, A14, MREQ, 0) E16.1::CS = OR(A15,!A14, MREQ, 0) R8.0::CS = OR(!A15, A14, A13, 0) (mapujemy zarówno w IORQ jak i MREQ, więc te dwa sygnały olewamy) R8.1::CS = OR(!A15, A14,!A13, 0) R8.2::CS = OR(!A15,!A14, A13, 0)

Sposób podłączenia portów: Opcja "tylko IO". Sygnały WR oraz IORQ (oba są ustawiane jednocześnie) chcemy mieć jak najbliżej układu buforującego, żeby po ustaleniu się linii adresowych, a następnie IORQ,WR = 0, zapis nastąpił jak najszybciej, więc rozwiązanie z pdf było nietrafione. Konstrukcja poniższa zużywa więcej bramek, niż gdybyśmy inaczej rozłożyli sygnały, za to działa najszybciej. Jeśli byśmy mapowali porty zarówno w MEM jak i IO, to pod sygnał LE podpinamy dla powyższego 573: NOR4(A15, A14, A13, WR).

2C. Zaprojektować i opisać system z mikroprocesorem Z80, pamięcią EPROM 4x8KB, pamięcią RAM 32KB i czterema 8-bitowymi portai wejściowymi dekodowanymi w przestrzeni adresowej pamięci. Pamięć EPROM jest podłączona w taki sposób, że kolejne kilobajty są przechowywane w różnych układach. EPROM + RAM + 4 Porty dają w sumie więcej adresów, niż Z80 jest w stanie zaadresować. Dlatego użyto tutaj stronnicowania. Zatrzask stronnicuje dostępne adresy. Wymaga to dwóch cykli dostępu: pierwszy to zapis na adres równy lub większy 0x8000 ( A15 bit aktywny ) danych które wskażą docelowe urządzenie: 0x1 pamięć EPROM, 0x2 pamięć RAM, 0x4 porty wejściowe. Układ kombinacyjny przy pamięci EPROM zapewnia odczyt każdego kolejnego kilobajtu z innej kości pamięci. Porty wejściowe są zbudowane w czterech trójstanowych buforów 541. Dostępne adresy to 0x0000 dla pierwszego, 0x0001 dla drugiego, 0x0002 dla trzeciego, 0x0003 dla czwartego

2C. Rozwiązanie alternatywne

2D. zaprojektować i opisać system z procersorem z80, pamięcią eprom 4x8kB oraz pamięcią ram 128kb. należy zapewnić przełącznie fragmentów ram w oknie przestrzeni adresowej o rozmiarze 32kb. Podział na 5 stron: 4 dla RAMu 128 KB oraz 1 strona dla wszystkich EPROM. Aby zaadresować EPROM należy w pierwszym cyklu napisać pod adres większy bądź równy 0x8000 ( A15 musi być = 1 ) wartość w której pierwszy najmniej znaczący bit musi być równy 0, a następnie wykonać cykl dostępu do tej pamięci. Aby zaadresować którąś ze stron RAMu należy w pierwszym cyklu napisać pod adres większy bądź równy 0x8000 ( A15 musi być = 1 ) wartość w której pierwszy najmniej znaczący bit musi być równy 1, a dwa następne określają w kodzie NKB numer strony. Drugi i trzeci najmniej znaczący bit idą jako bity uzupełniające na wejście adresowe pamięci RAM.

2D. Rozwiązanie alternatywne

3A. Zaprojektować i opisać system z kontrolerem MSP430, 9 wejściam (styki zwierne) i 3 wyjściami sterującymi diody LED. Zwarcie styku na wyróżnionym wejściu strującym powoduje zgłoszenie przerwania. Napisać program, który co 5 sekund lub po uaktywnieniu wejście sterującego aktualizuje na wyjściach informacje o liczbie zwartych styków na pozostałych 8 wejściach, przy czym zwarcie wszystkich styków należy sygnalizować w szczególny sposób int counter = 200; // tykamy 40/s czyli musimy zliczyc do 200, aby miec 5 sek int special_mode = 0; int specjal_tick = 0; int switch_enable = 0; void main(void) WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR = 0x00; // 8 styków zwieranych jako dane wejściowe P2DIR = 0x07; // wejście 4 jako zgłaszający przerwanie styk, 3 diody na wyjściu P2IE = 0x08 // tylko 4 styk może zgłaszać przerwanie P2IES = 0x08 // zglasza przerwanie przy narastajacym zboczu zegara CCTL0 = CCIE; // Timer może zgłaszać przerwania CCR0 = 819; // zegar 32768Hz, zlicza do 819, czyli tyka 40/s TACTL = TASSEL_1 + MC_1; // ACLK, upmode _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt #pragma vector=timera0_vector interrupt void Timer_A (void) // odszumianie przycisku if(switch_enable >= 10) UpdateOutput(); switch_enable = 0; else if(switch_enable > 0) if(!(p2in & 0x08)) switch_enable = 0; else switch_enable++; counter--; if(counter > 0 ) return; counter = 200; UpdateOutput(); #pragma vector=port2_vector _interrupt void Port_2(void) switch_enable = 1; void UpdateOutput() char count = 0; char c = P1IN; for(int i=0;i<7;i++) if(c & 0x1) count++; c >>= 1; if(count == 8) special_mode = 1; else special_mode = 0; if( special_mode == 1) if(tick == 0) P2OUT = 0x0; tick = 1; else(tick == 1) P2OUT = 0x07; tick = 0; else P2OUT = count;

3B. zaprojektować i opisać system z kontrolerem msp430 obsługujący 8 wejść (styki zwierne) i 8 wyjść sterujących diody led. napisać program, który co 2 sekundy wyświetla informację o liczbie zmian stanów styków wkyrytej wciągu ostatnich 5 sekund, z nasyceniem na wartości 255. program powinien w możliwie jak najmniejszym stopniu obciążać procesor. int counter_a = 200; // tykamy 40/s czyli musimy zliczyc do 200, aby miec 5 sek int counter_b = 80; // tykamy 40/s czyli musimy zliczyc do 80, aby miec 2 sek char switch_counter = 0; char switch_status = 0; int switch_enable = 0; void main(void) WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR = 0x00; // 8 styków zwieranych jako dane wejściowe P2DIR = 0xFF; // 8 wyjsc sterujacych diody P1IE = 0xFF // wszystkie 8 stykow moze zglaszac przerwanie P1IES = 0xFF // zglasza przerwanie przy narastajacym zboczu zegara CCTL0 = CCIE; // Timer może zgłaszać przerwania CCR0 = 819; // zegar 32768Hz, zlicza do 819, czyli tyka 40/s TACTL = TASSEL_1 + MC_1; // ACLK, upmode _BIS_SR(LPM0_bits + GIE); #pragma vector=port1_vector _interrupt void Port_1(void) switch_enable = 1; switch_status = P1IN; // Enter LPM0 w/ interrupt #pragma vector=timera0_vector interrupt void Timer_A (void) if(switch_enable > 10) switch_enable = 0; switch_counter++; if( switch_counter >=255) witch_counter = 0; else if( switch_enable > 0) if(!( switch_status & P1IN)) switch_enable = 0; else switch_enable++; counter_a--; counter_b--; if(counter_b <= 0) counter_b = 80; P2OUT = switch_counter; if(counter_a <= 0 ) switch_counter = 0; counter_a = 200;

Zad3-2010L) Zaprojektować i opisać system z kontrolerem MSP430 obsługujący 64 styki zwierne i port UART. Napisać energooszczędny program sterujący, który monitoruje stan styków i po wykryciu zwarcia trwającego dłużej niż 30 sekund wysyła przez łącze szeregowe bajt zawierający numer styku. (...) Mamy 64styki do obsłużenia, wepniemy je poprzez AND'y do portu P1 generującego przerwania chcemy go wykorzystać, żeby układ był najbardziej energooszczędny kosztem skomplikowania metody dostępu do portu, więc: 64 / 8bit = 8 niezależnych zestawów styków dla portu P2 Sposób podłączenia AND-ów między stykami a P1: ANDujemy wszystkie styki nr 0 z 8miu zestawów styków i wpinamy wyjście AND'a do pinu 0 portu P1 ANDujemy wszystkie styki nr 1 z 8miu zestawów styków i wpinamy wyjście AND'a do pinu 1 portu P1, itd... UWAGA: Należy koniecznie narysować schemat połączeń. Za opis bez schematu: 2/6pkt. Do portu P2 podpinamy wyjścia zestawu 8 x MUX[8->1](151). Sygnały sterujące: A,B,C - wybór wejścia MUXa, (G == L) - 151 zachowuje się jak MUX, (G == H) -> 151 wypluwa L na wyjście niezależnie od wejść Pozostałe połączenia: PORT3 - piny UART PORT4 - dane UART PORT5 - słowo wybierające zestaw styków dla P2: xxxxg1,a1,b1,c1 PORT6 - nieużywany Kolejne zwarcia danego styku oraz wszystkie zwarcia styków odczytanych jako zwarte bezpośrednio po starcie systemu są ignorowane. Zapewnimy to, korzystając z maski bitowej: char port_mask[8]; - char dla każdego z 8miu zestawów styków. Jeśli bit == 1, to zwarcie styku ma jeszcze szansę zostać zdekodowane i wysłane. Procedura obsługi przerwania portu 1: i = 0; wake_app = 0; while (wake_app == 0) if (!P1IN & port_mask[i]) //jesli zwarty styk i jest zezwolenie port_mask[i] &= P1IN; // skasuj zezwolenie candidate_mask2 = P1IN; _BIS_SR(LPM0_EXIT); wake_app = 1; i++;

W aplikacji musimy zbadać (na porcie P2) który z 8miu zestawów styków wygenerował przerwanie zwarcia styku. candidate_maskx jest stanem portu który następnie sprawdzamy co czas t przez 30sekund (łatwiejsza opcja) albo przełączamy zbocze wyzwalające przerwanie i sprawdzamy czy nie wystąpi przerwanie (trudniejsza opcja). Powyższy opis dotyczy oczywiście sytuacji gdy tylko jeden styk może być jednocześnie zwarty, opcja z wieloma stykami byłaby dużo trudniejsza :] Zad2-2010Z) Zaprojektować i opisać system z procesorem Z80, pamięcią EPROM 32KB z programem sterującym i pamięcią RAM 2x128KB. Układy RAM wymagają wstawiania jednego taktu oczekiwania w cyklach zapisu. komentarz Chrząszcza: kluczowe było zauważenie, że nie potrzeba wstawiać żadnego układu opóźniającego zapisy do RAM. Wystarczyło zamapować RAM w przestrzeń IO, wówczas Z80 sam zapewni odpowiednie opóźnienie. Zad2-2010Z - drugi termin) Zaprojektować i opisać system z procesorem Z80, pamięcią EPROM 32KB z programem sterującym i pamięcią RAM 2x128KB. Oprócz standardowego dostępu należy zapewnić możliwość zastąpienia pamięci EPROM jej kopią przepisaną do RAM. Komentarze Chrząszcza: najważniejsza jest szybkość działania - zamiast stronicować RAM na duże strony w przestrzeni IO i tracić takt oczekiwania WAIT, powinniśmy stronicować RAM przy użyciu mniejszych stron na górnej połowie przestrzeni MEM (dolną połowę zajmuje EPROM wymienialny z RAMem). W przestrzeń IO pakujemy mechanizmy stronicowania. stronicowanie RAMu w przestrzeni MEM ma też drugą zaletę - w zadaniu wspomniana była potrzeba kopiowania zawartości EPROM do RAM. W Z80 istnieje instrukcja LDIR, kopiująca dane bezpośrednio pamięć->pamięć, z szybkością porównywalną z rozwiązaniami wspomaganymi sprzętowo. Umieszczenie EPROM i RAM w przestrzeni MEM umożliwia nam szybkie kopiowanie danych między nimi przy pomocy tej instrukcji. jeśli korzystamy z układów stronicowania, musimy zapewnić że sygnał RESET ustawi je w sposób deterministyczny Zad1-2010Z) Przeanalizować właściwości użytkowe Z80 i MSP430 pod kątem możliwości użycia w urządzeniach przenośnych Dwa rozwiązania na 10 punktów zadania nr1. 1 wersja: Cechy posiadane przez MSP430, a nie posiadane przez Z80: - posiada wbudowane przetworniki A/C - jeśli tylko rozdzielczość uznajemy za wystarczającą, nie ma potrzeby dołączanie zewnętrznych układów, - mniejsze gabaryty fizyczne,

- posiada wbudowaną pamięć trwałą - brak potrzeby rozszerzania układu o dodatkowe kości pamięci - przy oczywistym założeniu, że wbudowane zasoby wystarczą do realizacji pomiaru, - wbudowany układ kontroli zasilania - łatwa realizacja mechanizmu odrzucania pomiarów/wstrzymywanie pracy w warunkach mogących wprowadzić zakłócenia, - wbudowana obsługa interfejsów komunikacyjnych - łatwiejsza i tańsza akwizycja wyników pomiarów, - możliwość kolekcji próbek z przetwornika A/C i ich zapis do pamięci (DMA) w czasie przebywania mikroprocesora w stanie obniżonego poboru mocy - mikroprocesor wykonuje tylko obliczenia natury analitycznej -> mniejszy pobór mocy. Wyróżnione cechy wskazują na MSP430 jako układ lepiej pasujący do użycia w urządzeniach pomiarowych. Z80 nie posiada znaczących cech dających mu przewagę nad MSP430 na polu tych zastosowań. 2 wersja: Z80: Z80 może być zbyt wolny do niektórych pomiarów. Możliwość łączenia urządzeń w łańcuch pomiarów pozwoli na użycie dużej ich liczby. MSP430: - Wbudowane timery MSP430 mogą być bardzo przydatne przy pomiarach okresowych - do wysyłania danych przydatny będzie układ UART - tryby oszczędzania energii pozwala zmniejszyć koszty przy rzadkich pomiarach - w zastosowaniach analogowych, na przykład temperatury, zastosowanie znajdzie konwersja ADC - timer watchdog pozwoli pracować procesorowi w warunkach trudno dostępnych dla konstruktora