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 |
©2024 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Rdzeń AVR łączy bogaty zbiór instrukcji z 32 roboczymi rejestrami ogólnego przeznaczenia. Wszystkie 32 rejestry są bezpośrednio połączone z Jednostką Arytmetyczno Logiczną JAL (ang. Arithmetic Logic Unit ALU), umożliwiając jednoczesny dostęp do dwóch niezależnych rejestrów w pojedynczej instrukcji wykonywanej w ciągu jednego cyklu zegarowego. Wynikowa architektura jest bardziej efektywna, a jednocześnie osiąga wydajność do dziesięciu razy większą od typowych mikrokontrolerów CISC (ang. Complex Instruction Set Computer – komputer o liście złożonych rozkazów).
ATmega48A/PA/88A/PA/168A/PA/328/P posiada następujące cechy: 4KB/8KB/16KB/32KB pamięci FLASH programowanej poprzez ISP z możliwością jednoczesnego programowania i odczytywania kodu, 256/512/512/1024 bajty EEPROM, 512/1024/1024/2048 bajty SRAM, 23 linie we/wy ogólnego przeznaczenia, 32 robocze rejestry ogólnego przeznaczenia, licznik czasu rzeczywistego (ang. Real Time Counter, RTC), trzy elastyczne timery/liczniki z trybami porównań i PWM, układ USART, zorientowany na bajty 2-przewodowy interfejs szeregowy, 6-kanałowy (8-kanałowy w obudowach TQFP i QFN/MLF) 10-bitowy przetwornik A/C, programowalny licznik zegarowy (ang. Watchdog Timer) z wewnętrznym oscylatorem, port szeregowy SPI i pięć 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.
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 ATmega48A/PA/88A/PA/168A/PA/328/P staje się potężnym mikrokontrolerem dostarczającym wysoko elastycznego i efektywnego kosztowo rozwiązania dla wielu wbudowanych w urządzenia aplikacji sterujących.
Mikrokontrolery ATmega48A/PA/88A/PA/168A/PA/328/P są wspierane przez komplet narzędzi do tworzenia systemów oraz ich oprogramowywania, łącznie z makroasemblerami, kompilatorami języka C oraz zestawami uruchomieniowymi.
Mikrokontrolery ATmega48A/PA/88A/PA/168A/PA/328/P różnią się jedynie rozmiarami pamięci, wsparciem boot-loadera oraz rozmiarem wektorów przerwań, co podsumowuje poniższa tabelka.
Mikrokontroler | FLASH | EEPROM | RAM | Rozmiar wektorów przerwań |
ATmega48A | 4KB | 256B | 512B | 1 słowo instrukcji na wektor |
ATmega48PA | 4KB | 256B | 512B | 1 słowo instrukcji na wektor |
ATmega88A | 8KB | 512B | 1KB | 1 słowo instrukcji na wektor |
ATmega88PA | 8KB | 512B | 1KB | 1 słowo instrukcji na wektor |
ATmega168A | 16KB | 512B | 1KB | 2 słowa instrukcji na wektor |
ATmega168PA | 16KB | 512B | 1KB | 2 słowa instrukcji na wektor |
ATmega328 | 32KB | 1KB | 2KB | 2 słowa instrukcji na wektor |
ATmega328P | 32KB | 1KB | 2KB | 2 słowa instrukcji na wektor |
Mikrokontrolery ATmega48A/PA/88A/PA/168A/PA/328/P wspierają prawdziwy mechanizm samoprogramowania z odczytem podczas zapisu (ang. Read-While-Write Self-Programming mechanism). Istnieje oddzielna sekcja Boot Loadera, a instrukcja SPM może być wykonywana tylko z niej. W mikrokontrolerach ATmega48A/48PA nie ma obsługi odczytu przy zapisie oraz nie występuje osobna sekcja Boot Loadera. Instrukcja SPM może być wykonywana w całym obszarze pamięci FLASH.
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. Nie wszystkie mikrokontrolery AVR zawierają rozszerzoną pamięć we/wy.
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 ©2024 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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.