Podstawy systemów mikroprocesorowych

Podobne dokumenty
Wbudowane układy peryferyjne cz. 1 Wykład 7

Programowanie mikrokontrolerów. 8 listopada 2007

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

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

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

Instytut Teleinformatyki

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Przetworniki analogowo-cyfrowe (A/C)

Inne układy peryferyjne AVR

Obsługa przetwornika ADC na mikrokontrolerze ATmega8 CEZARY KLIMASZ OBSŁUGA PRZETWORNIKA ADC NA MIKROKONTROLERZE ATMEGA8

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Układy zegarowe w systemie mikroprocesorowym

Wstęp Architektura... 13

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

2. Architektura mikrokontrolerów PIC16F8x... 13

Mikrokontroler AVR ATmega32 - wykład 9

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR

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

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

MCAR Robot mobilny z procesorem AVR Atmega32

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

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

MIKROKONTROLERY I MIKROPROCESORY

Zastosowania mikrokontrolerów w przemyśle

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Programowanie mikrokontrolerów 2.0

E-TRONIX Sterownik Uniwersalny SU 1.2

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

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

Struktury specjalizowane wykorzystywane w mikrokontrolerach

Układy zegarowe w systemie mikroprocesorowym

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Programowanie mikrokontrolerów 2.0

Mikroprocesory i Mikrosterowniki Laboratorium

Mikroprocesory i Mikrosterowniki

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

Technika Mikroprocesorowa

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

WPROWADZENIE Mikrosterownik mikrokontrolery

Część 6. Mieszane analogowo-cyfrowe układy sterowania. Łukasz Starzak, Sterowanie przekształtników elektronicznych, zima 2011/12

Murasaki Zou むらさきぞう v1.1 Opis programowania modułu LPC2368/LPC1768 z wykorzystaniem ISP

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

SML3 październik

ASTOR IC200ALG320 4 wyjścia analogowe prądowe. Rozdzielczość 12 bitów. Kod: B8. 4-kanałowy moduł ALG320 przetwarza sygnały cyfrowe o rozdzielczości 12

Programowanie mikrokontrolerów 2.0

Hardware mikrokontrolera X51

MODUŁ UNIWERSALNY UNIV 3

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Przetworniki analogowo - cyfrowe CELE ĆWICZEŃ PODSTAWY TEORETYCZNE Zasada pracy przetwornika A/C

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

Programowanie mikrokontrolerów 2.0

Mikroprocesory i Mikrosterowniki

Wstęp. Opis ATMEGA128 MINI MODUŁ VE-APS-1406

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Szkolenia specjalistyczne

Interfejs analogowy LDN-...-AN

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

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

Częstościomierz wysokiej rozdzielczości

To jeszcze prostsze, MMcc1100!

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Systemy wbudowane Mikrokontrolery

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

Wyniki (prawie)końcowe - Elektroniczne warcaby

2. Budowa układów procesorowych rodziny TMS320C

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

Pobór mocy przez układy mikroprocesorowe

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

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

Układy czasowo-licznikowe w systemach mikroprocesorowych

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

Programowanie mikrokontrolerów AVR z rodziny ATmega.

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

. Polski. Dekoder rozjazdów GEODec C1O. DEKODER ROZJAZDÓW ROCO GeoLine. GEODec C1O. Instrukcja obsługi, programowania i budowy dekodera

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

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

Instytut Teleinformatyki

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

Aplikacja czujnika temperatury dla modułu uniwersalnego UNIV 1.0 i procesora UNIV 1.0 (CPU)

Wyjście do drukarki Centronix

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

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Metody obsługi zdarzeń

Mikroprocesory i mikrosterowniki

SYSTEM PRZERWAŃ ATmega 32

Układy czasowo-licznikowe w systemach mikroprocesorowych

Komunikacja w mikrokontrolerach Laboratorium

Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. Wydanie II

Konfigurator Modbus. Instrukcja obsługi programu Konfigurator Modbus. wyprodukowano dla

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

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

Kod produktu: MP01105T

Część 5. Mieszane analogowo-cyfrowe układy sterowania

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Transkrypt:

Podstawy systemów mikroprocesorowych Wykład nr 6 Wszystko, co jeszcze chcielibyście wiedzieć o mikrokontrolerach, ale wolicie nie pytać (bo jeszcze będzie na kolokwium?) dr Piotr Fronczak http://www.if.pw.edu.pl/~agatka/psm.html fronczak@if.pw.edu.pl Pokój 6GF

rozdzielczość 10 bitów 8 kanałów wejściowych (8 źródeł sygnałów) próbkowanie sekwencyjne (jeden kanał na raz) dla standardowego napięcia odniesienia Vref = 5V - kwant pomiaru: 5(V)/1024 = 4.88mV. - dokładność ± 2 LSB = ± 9.76mV Inne moŝliwe źródła napięć odniesienia -źródło wewnętrzne 2,56V - napięcie podane na nóŝkę AREF Tryby pomiarów - ciągły pomiar + generowanie przerwania ADC - na Ŝądanie Przetwornik ADC

Przetwornik ADC Wynik konwersji zapisany jest w dwóch rejestrach ADCH i ADCL Wyrównanie wyniku konwersji do prawej (bit ADLAR = 0) Wyrównanie wyniku konwersji do lewej (bit ADLAR = 1) Jeśli zadowala nas rozdzielczość 8-bitowa, to wystarczy odczytać ADCH.

Przetwornik ADC - konfiguracja Krok 1: Konfiguracja rejestrów ADMUX i ADCSRA. Który kanał ADC? Wyrównać wynik konwersji w rejestrach do prawej, czy lewej? Które napięcie odniesienia? Włączyć samowyzwalanie pomiaru? Włączyć przerwanie? Jaki preskaler?

Przetwornik ADC Krok 2: Uruchomienie konwersji ADC Wpisz 1 do flagi ADSC rejestru ADCSRA. Krok 3: Odczytanie wyniku Czekaj, aŝ flaga ADSC wyzeruje się. Odczytaj wynik z rejestrów ADCL i ADCH. #include<avr/io.h> int main (void){ unsigned char result; ADMUX = 0b01100000; // REFS1:0 = 01 -> AVCC as reference, // ADLAR = 1 -> wyrównanie do lewej // MUX4:0 = 00000 -> kanał ADC0 ADCSRA = 0b10000001; // ADEN = 1: włączamy przetwornik // ADATE = 0: tryb ręczny // ADIE = 0: bez przerwań // ASPS2:0 = 001: prescaler = 2 while(1){ ADCSRA = (1 << ADSC); // krok 2 while (ADCSRA & (1 << ADSC)); // krok 3 result = ADCH; // odczytujemy wynik } }

Przetwornik ADC - przykład

Pamięci równoległe n linii (bitów) danych m linii (bitów) adresowych Linie sterujące: RD Ŝądanie odczytu (ang. read strobe) WR Ŝądanie zapisu (ang. write strobe) ALE Address Latch Enable niezbędna linia do współdzielenia linii adresowych z liniami danych

Pamięci równoległe

Pamięci równoległe

Źródła sygnału RESET ATmega16 posiada pięć źródeł sygnału reset (omówimy cztery, piąty wykorzystywany jest w interfejsie JTAG). Power-on RESET Układ ten odpowiada za resetowanie mikrokontrolera w sytuacji przywrócenia napięcia zasilającego. Układ utrzymuje sygnał RESET w stanie aktywnym przez określony odcinek czasu (poprzez fusebity). Zewnętrzny sygnał RESET Mikrokontroler jest resetowany kiedy na wejściu RESET (zanegowane) jest niski poziom dłuŝej niŝ minimalna długość impulsu. MoŜemy programowo zresetować mikrokontroler podłączając jeden z pinów IO do wejścia RESET.

Źródła sygnału RESET Reset przy obniŝonym napięciu zasilania (Brown-out detector) Układ ten monitoruje napięcie zasialające. Jeśli napięcie spadnie poniŝej pewnego ustalonego poziomu (poprzez fusebity), układ generuje sygnał RESET, aŝ do czasu powrotu napięcia do prawidłowego zakresu. Uwaga: obniŝenie napięcia moŝe skutkować np.uszkodzeniem pamięci EEPROM.

Źródła sygnału RESET Układ Watchdog NiezaleŜnie działający podsystem procesora, posiadający własny niezaleŝny zegar. Po skonfigurowaniu i uaktywnieniu działa jak licznik. Po zliczeniu do określonej wartości generuje sygnał RESET. Aby temu zapobiec, program musi co pewien czas wykonać instrukcję zerującą licznik. Wykorzystanie układu Watchdog krytyczne w układach działających bez ingerencji człowieka. Układ po zadziałaniu moŝe generować równieŝ przerwanie (moŝemy je wykorzystać do obsługi niewłaściwego działania programu).

Zarządzanie poborem energii Aby zredukować pobór energii moŝna wyłączyć część podsystemów mikrokontrolera. Tryb uśpienia wybiera się przy pomocy bitów SM0-SM2 rejestru SMCR. 6 trybów uśpienia: Idle Mode : wyłączany rdzeń (brak generowania sygnału taktowania CPU i FLASH), działają układy peryferyjne SPI, USART, ADC, TWI, liczniki, Watchdog i system przerwań. CPU jest wybudzany przez przerwanie zewnętrzne, przerwanie licznika lub przerwanie USART. ADC Noise Reduction Mode : Wszystkie podsystemy działają normalnie. Wyłączany jest rdzeń procesora, pamięć FLASH i układy portów IO, co zmniejsza zakłócenia, ułatwiając pomiar ADC.

Zarządzanie poborem energii Power-down Mode : Wyłącza większość podsystemów procesora i zewnętrzny oscylator. Działają tylko BOD, Watchdog, TWI i przerwania zewnętrzne. Power-save Mode : j.w. ale działa tylko licznik 2. Standby Mode : identyczny jak Power-down, tyle Ŝe działa oscylator (przyśpiesza to wybudzenie z kilku tysięcy do kilku taktów zegara). Extended Standby Mode : identyczny jak Power-down, tyle Ŝe działa oscylator (przyśpiesza to wybudzenie z kilku tysięcy do kilku taktów zegara). Średnie zuŝycie prądu (zegar 8MHz, Vcc=5V) Active Idle Power-down Power-save Standby 12 ma 6 ma 15 ua 12 ua 140 ua

Zarządzanie poborem energii Ilość zuŝywanej przez układy cyfrowe energii zaleŝy od częstotliwości ich przełączania, dlatego naleŝy wybrać moŝliwie niską częstotliwość zegara (m.in. poprzez fusebity). Stan portów IO powinien być ustalony. Wymusić stan wejść przyłączając je do masy lub zasilania. Pływanie potencjału na wejściu powoduje ciągłe przełączanie stanu i zwiększony pobór prądu. Wyłączyć przetwornik ADC, gdy nie jest uŝywany. Wyłączyć komparator analogowy.

Fusebity bity konfiguracyjne Niektóre parametry dotyczące konfiguracji fizycznej pracy mikrokontrolerów, moŝna ustawiać nie w sposób programowy (bezpośrednio z kodu programu), lecz w trakcie procesu programowania. Sposób generowania sygnału zegarowego (zewn., wewn., rezonator kwarcowy). Częstotliwość taktowania (domyślnie wewn. zegar taktujący jest dzielony przez 8 uwaga na pomyłki) Odblokowanie interfejsów ISP i JTAG (do programowania) uwaga na pomyłki Poziom brown-out detektora Włączenie watchdoga Zabezpieczenie pamięci EEPROM podczas programowania Wydzielenie obszaru pamięci na bootsektor

Bootloader Mikrokontolery serii ATMega wyposaŝone zostały w instrukcje pozwalające programować pamięć Flash z poziomu aplikacji. Dzięki temu istnieje moŝliwość zmiany oprogramowania w mikrokontrolerze poprzez dowolny, wybrany interfejs. Gdy uŝywamy bootloadera, pamięć procesora jest podzielona na dwie części Read While Write (RWW) oraz No Read While Write (NRWW). W przypadku kiedy nie korzystamy z samoprogramowania takiego podziału nie ma. Podczas zapisu RWW praca procesora nie zostaje zatrzymana i moŝliwe jest działanie programu pod warunkiem,ŝe znajduje się on w NRWW. W czasie ładowania programu do RWW nie moŝna odwoływać się do komórek pamięci znajdującej się w tej sekcji, poniewaŝ moŝe to spowodować zawieszenie układu i błąd przy zapisie. Zapis obszaru NRWW wiąŝe się z zatrzymaniem pracy CPU.

Bootloader Za pomocą fusebitów moŝemy przesunąć adres startowy programu z 0x0000 do sekcji bootloadera. Po włączeniu zasilania, program bootloadera moŝe oczekiwać na sygnał z dowolnego interfejsu, np. USART. Gdy dane zaczną napływać, bootloader wgra je w odpowiedniej kolejności do obszaru RWW. Po zakończeniu zapisywania danych, nastapi skok pod adres 0x0000 i rozpocznie działanie normalny program. MoŜemy równieŝ skonfigurować mikrokontroler tak, by przenieść adresy wektorów przerwań w obszar NRWW. Przeniesienie przerwań daje nam pewność,ŝe nie odbędzie się skok do RWW (co moŝe się stać, gdy nie zablokujemy przerwań) podczas jej programowania, co moŝe spowodować błąd zapisu.

Zabezpieczanie kodu programu Wśród bitów konfiguracyjnych są tzw. lock bity. Ich funkcją jest ochrona pamięci mikrokontrolera przed moŝliwością jej odczytania przy pomocy programatora. Przy próbie odczytu zwracane będą adresy komórek (a nie wartości). Aby skasować lockbity, naleŝy skasować całą pamięć FLASH i EEPROM. Inwazyjne metody łamania zabezpieczeń: odsłonięcie struktury układu scalonego i odczytanie danych za pomocą mikrosond przeprogramowanie bitów zabezpieczających (naświetlanie UV) Nieinwazyjne metody łamania zabezpieczeń: Typowe luki w oprogramowaniu Eavesdropping monitorowanie z wysoką rozdzielczością sygnałów analogowych (np. poboru prądu przez procesor). KaŜda instrukcja przełączając inne bramki logiczne zostawia swój odcisk palca w postaci zakłóceń na nóŝkach układu.

Przykład to jest ostatni

Silniki

Sensory 1. Wyjście: 10µs impuls na PC0 2. Wejście: mierzymy czas t mierzy ilość odbitego światła

DEMO