Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2023 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Moduły
pokolorowane na beżowo są obecne tylko w obudowach
100-nóżkowych.
Przetwornik A/C oraz timery/liczniki 4 i 5 posiadają pełną
funkcjonalność tylko w wersjach mikrokontrolera w obudowach
100-nóżkowych.
Rdzeń AVR® łączy bogaty zbiór instrukcji z 32 rejestrami roboczymi ogólnego przeznaczenia. Wszystkie te 32 rejestry są bezpośrednio połączone z jednostką arytmetyczno-logiczną (ang. Arithmetic Logic Unit, ALU), pozwalając na dostęp do dwóch niezależnych rejestrów w pojedynczej instrukcji wykonywanej e jednym takcie zegara. Wynikowa architektura jest bardziej efektywna dla kodu, dając jednocześnie wydajność do dziesięć razy wyższą od konwencjonalnych mikrokontrolerów CISC.
Mikrokontrolery ATmega640/1280/1281/2560/2561 udostępniają następujące cechy: 64KB/128KB/256KB programowalnej w systemie pamięci FLASH z możliwością odczytu w czasie zapisu (ang. Read-While-Write), 4KB EEPROM, 8KB SRAM, 54/86 linie we/wy ogólnego przeznaczenia, 32 rejestry robocze ogólnego zastosowania, licznik czasu rzeczywistego (ang. Real Time Counter, RTC), sześć elastycznych timerów/liczników z trybami Compare i PWM, cztery moduły USART, zorientowany na bajty 2-przewodowy interfejs szeregowy, 16-kanałowy, 10-bitowy przetwornik analogowo/cyfrowy z opcjonalnym różnicowym stopniem wejściowym o programowanym wzmocnieniu, programowany licznik zegarowy z wewnętrznym oscylatorem, port szeregowy SPI, interfejs testowy JTAG zgodny ze standardem 1149.1 IEEE® , używanym również przy dostępie do wewnętrznego systemu debugowania oraz przy programowaniu i sześć wybieranych programowo trybów oszczędzania energii.Tryb bezczynny (ang. Idle Mode) zatrzymuje mikroprocesor, pozwalając jednak na pracę pamięci SRAM, timerów/liczników, modułu USART, portu SPI, przetwornika A/C i systemu przerwań. Tryb wyłączenia zasilania (ang. Power-down Mode) zachowuje zawartość rejestrów i zatrzymuje oscylator, wyłączając wszystkie funkcje układu aż do momentu następnego przerwania lub sprzętowego resetu. W trybie oszczędzania energii (ang. Power-save Mode) asynchroniczny timer kontynuuje pracę, pozwalając użytkownikowi utrzymać podstawę timera, natomiast reszta mikrokontrolera jest uśpiona. Tryb zmniejszania zakłóceń dla przetwornika A/C (ang. ADC Noise Reduction Mode) zatrzymuje mikroprocesor i wszystkie moduły we/wy za wyjątkiem asynchronicznego timera i przetwornika A/C w celu zminimalizowania szumu od przełączeń w sieciach logicznych mikrokontrolera podczas przetwarzania napięć wejściowych w przetworniku A/C. W trybie gotowości/czuwania (ang. Standby Mode) oscylator kwarcowy/rezonatorowy pracuje, natomiast reszta mikrokontrolera jest uśpiona. Pozwala to na szybkie uruchomienie w połączeniu z niskim poborem prądu. W rozszerzonym trybie gotowości/czuwania (ang. Extended Standby Mode) pracują zarówno główny oscylator jak i timer asynchroniczny.
Microchip oferuje bibliotekę QTouch® do obsługiwania pojemnościowych przycisków dotykowych, suwaków i potencjometrów. Opatentowana technologia pobierania sygnałów z ładunków elektrostatycznych oferuje wydajne czujniki dotykowe oraz zawiera procedury raportowania o dotyku klawiszy z tłumieniem klawiszy sąsiednich (ang. Adjacent Key Suppression®, AKS™) w celu jednoznaczności wykrywania dotyku. Łatwy w użyciu zestaw procedur narzędziowych QTouch Suite pozwala na badanie, rozwijanie i debugowanie własnych aplikacji opartych na dotyku.
Układ mikrokontrolera jest wytwarzany z wykorzystaniem technologii wysokiej gęstości pamięci nieulotnej, którą opracowała firma ATMEL. Wewnętrzna, programowalna poprzez ISP pamięć FLASH pozwala na zaprogramowanie w systemie za pomocą zwykłego programatora pamięci nieulotnych lub za pomocą wbudowanego kodu startowego uruchomionego na rdzeniu AVR. Kod lądujący (ang. boot-loader) może korzystać z dowolnego interfejsu do załadowania programu aplikacji do pamięci FLASH programu. Oprogramowanie w sekcji chronionej FLASH (ang. Boot FLASH Section) może normalnie pracować podczas programowania sekcji kodu aplikacji (ang. Application FLASH Section), cecha ta nosi nazwę Read-While-Write (odczyt podczas zapisu). Przez połączenie 8-bitowego mikroprocesora RISC z samoprogramowalną w systemie pamięcią FLASH w monolitycznym układzie scalonym mikrokontroler ATmega128 staje się potężnym mikrokontrolerem dostarczającym wysoko elastycznego i efektywnego kosztowo rozwiązania dla wielu wbudowanych w urządzenia aplikacji sterujących.
Mikrokontrolery ATmega640/1280/1281/2560/2561 AVR są wspierane przez komplet narzędzi do tworzenia systemów oraz ich oprogramowywania, łącznie z makroasemblerami, kompilatorami języka C oraz zestawami uruchomieniowymi.
Mikrokontroler | FLASH | EEPROM | RAM | końcówki we/wy ogólnego przeznaczenia | kanały PWM o rozdzielczości 16 bitów | Liczba modułów USART | Liczba kanałów przetwornika A/C |
ATmega640 | 64KB | 4KB | 8KB | 86 | 12 | 4 | 16 |
ATmega1280 | 128KB | 4KB | 8KB | 86 | 12 | 4 | 16 |
ATmega1281 | 128KB | 4KB | 8KB | 54 | 6 | 2 | 8 |
ATmega2560 | 256KB | 4KB | 8KB | 86 | 12 | 4 | 16 |
ATmega2561 | 256KB | 4KB | 8KB | 54 | 6 | 2 | 8 |
Napięcie zasilania modułów cyfrowych.
Masa układu.
Port A jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu A posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu A używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu A przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port A udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/1281/2560/2561.
Port B jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu B posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu B używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu B przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port B posiada lepsze możliwości sterowania od pozostałych portów.
Port B udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/1281/2560/2561.
Port C jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu C posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu C używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu C przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port C udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/1281/2560/2561.
Port D jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu D posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu D używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu D przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port D udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/1281/2560/2561.
Port E jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu E posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu E używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu E przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port E udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/1281/2560/2561.
Port F służy jako analogowe wejścia dla przetwornika A/C.
Służy on również jako 8-bitowy, dwukierunkowy port we/wy, jeśli przetwornik A/C nie jest używany. Końcówki portu są zaopatrzone w oporniki podciągające (włączane dla każdego bitu). Bufory wyjściowe portu F mają symetryczne parametry dla prądu wpływającego i wypływającego. Jako wejścia końcówki portu F wysterowane zewnętrznie stanem niskim będą pochłaniały prąd, jeśli zostały aktywowane oporniki podciągające. W czasie resetu końcówki portu F przechodzą w stan wysokiej impedancji, nawet jeśli zegar nie pracuje. Jeśli został włączony interfejs JTAG, to oporniki podciągające na końcówkach PF7(TDI), PF5(TMS) i PF4(TCK) zostaną aktywowane, nawet przy wystąpieniu resetu.
Port F służy również funkcjom interfejsu JTAG.
Port G jest 6-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu G mają symetryczne parametry dla prądu wpływającego i wypływającego. Jako wejścia końcówki portu G wysterowane zewnętrznie stanem niskim będą pochłaniały prąd, jeśli zostały aktywowane oporniki podciągające. W czasie resetu końcówki portu G przechodzą w stan wysokiej impedancji, nawet jeśli zegar nie pracuje.
Port G udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/1281/2560/2561.
Port H jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu H posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu H używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu H przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port H udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/2560.
Port J jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu J posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu J używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu J przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port J udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/2560.
Port K służy jako analogowe wejścia dla przetwornika A/C.
Port K jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu K posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu K używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu K przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port K udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/2560.
Port L jest 8-bitowym, dwukierunkowym portem we/wy z wewnętrznymi opornikami podciągającymi (wybieranymi dla każdego bitu). Bufory wyjściowe portu L posiadają symetryczne parametry obciążeniowe dla prądów wpływających i wypływających. Gdy końcówki portu L używane są jako wejścia i zostały zewnętrznie wysterowane stanem niskim, to będą wyprowadzały prąd po aktywacji wewnętrznych oporników podciągających. Końcówki portu L przechodzą w stan wysokiej impedancji po uaktywnieniu stanu resetu, nawet gdy zegar nie pracuje.
Port L udostępnia również funkcje różnych specjalnych cech mikrokontrolera ATmega640/1280/2560.
Wejście Resetu. Niski poziom na tej końcówce przez czas dłuższy od minimalnej długości impulsu wygeneruje reset, nawet jeśli zegar nie pracuje. Minimalna długość impulsu reset wynosi 2,5 μs. Impulsy krótsze nie gwarantują generacji resetu.
Wejście odwracającego wzmacniacza oscylatora oraz wejście do wewnętrznego obwodu zegara.
Wyjście z odwracającego wzmacniacza oscylatora.
AVCC jest końcówką napięcia zasilania dla portu F i przetwornika A/C. Powinno być zewnętrznie połączone z VCC, nawet jeśli przetwornik A/C nie jest używany. Jeśli przetwornik A/C jest wykorzystywany, to powinno być połączone z VCC poprzez filtr dolnoprzepustowy.
AREF jest końcówką analogowego napięcia odniesienia dla przetwornika A/C.
Do programowania mikrokontrolerów AVR stosowane jest kilka pakietów IDE. Szczególnie polecam Atmel Studio 7, które umożliwia programowanie w języku C oraz w asemblerze. Opis instalacji tego środowiska znajdziesz w tym rozdziale:
Równie popularnym środowiskiem programowania jest Eclipse z uwagi na to, iż może pracować w systemie Linux. Zaletą tego rozwiązania jest to, iż Eclipse pozwala na wykorzystanie tanich programatorów USBasp:
Również środowisko MPLAB X firmy Microchip posiada możliwość programowania mikrokontrolerów AVR:
Dla rejestrów we/wy znajdujących się w rozszerzonej pamięci we/wy należy zastąpić instrukcje IN, OUT, SBIS, SBIC, CBI i SBI instrukcjami, które umożliwiają dostęp do rozszerzonej pamięci we/wy. Zwykle oznacza to instrukcje LDS i STS połączone z SBRS, SBRC, SBR i CBR.
Wykrywanie dotyku (ang. touch sensing) można w prosty sposób dołączyć do dowolnej aplikacji przez połączenie z jej kodem biblioteki QTouch i użycie funkcji interfejsu API udostępnianego przez tę bibliotekę w celu zdefiniowania kanałów dotykowych i czujników dotyku. Aplikacja następnie wywołuje funkcje API do pobrania informacji z kanałów i określania stanu czujnika dotyku.
Biblioteka QTouch jest bezpłatna i można ją pobrać z witryny Microchip'a (w 2016 firma Microchip przejęła swojego konkurenta Atmel i obecnie udostępnia wszystkie materiały pierwotnie udostępniane w sieci przez Atmela), na której znajdziesz również dokumentację oraz przewodniki dla użytkownika.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2023 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.