Rodzaje mikrokontrolerów AVR - Atmega32 i ATmega8

Rodzaje mikrokontrolerów AVR - Atmega32 i ATmega8

ATmega32 - 8-bitowy mikrokontroler AVR

Mikrokontrolery AVR oparte są na zaawansowanej architekturze RISC. ATmega32 to 8-bitowy mikrokontroler CMOS małej mocy oparty na rozszerzonej architekturze AVR RISC. AVR może wykonać 1 milion instrukcji na sekundę, jeśli częstotliwość cyklu wynosi 1 MHz.



40-pinowe zdjęcie DIP ATmega32

40-pinowe zdjęcie DIP ATmega32

Kluczowe cechy:






  • 32 x 8 rejestrów ogólnego przeznaczenia.
  • 32 KB pamięci programowalnej programu flash w systemie
  • 2 KB wewnętrznej pamięci SRAM
  • 1024 bajty pamięci EEPROM
  • Dostępne z 40-pinowym DIP, 44-pinowym QTFP, 44-pinowym QFN / MLF
  • 32 programowalne linie I / O
  • 8 kanałów, 10-bitowy przetwornik ADC
  • Dwa 8-bitowe timery / liczniki z oddzielnymi preskalerami i trybami porównania
  • Jeden 16-bitowy zegar / licznik z oddzielnym preskalerem, trybem porównania i trybem przechwytywania.
  • 4 kanały PWM
  • W programowaniu systemu za pomocą programu rozruchowego na chipie
  • Programowalny zegar Watch Dog z oddzielnym wbudowanym oscylatorem.
  • Programowalny szeregowy USART
  • Interfejs szeregowy SPI Master / Slave

Specjalne funkcje mikrokontrolera:

  • Sześć trybów uśpienia: bezczynność, redukcja szumów ADC, oszczędzanie energii, wyłączanie, czuwanie i wydłużony tryb czuwania.
  • Wewnętrzny kalibrowany oscylator RC
  • Zewnętrzne i wewnętrzne źródła przerwań
  • Reset przy włączaniu i programowalne wykrywanie zaniku napięcia.
40-pinowy DIP ATmega32

40-pinowy DIP ATmega32

Wszystkie 32 rejestry są bezpośrednio połączone z jednostką arytmetyczno-logiczną (ALU), umożliwiając dostęp do dwóch niezależnych rejestrów w jednej instrukcji wykonywanej w jednym cyklu zegara.



Wyłączenie zapisuje zawartość rejestru, ale zawiesza oscylator. Wszystkie inne funkcje chipa zostaną wyłączone do następnego zewnętrznego przerwania. Asynchroniczny licznik czasu umożliwia użytkownikowi utrzymanie licznika czasu w trybie oszczędzania energii, podczas gdy reszta urządzenia śpi.

Tryb redukcji szumów ADC zatrzymuje procesor i wszystkie moduły we / wy z wyjątkiem ADC i asynchronicznego timera. W trybie czuwania, z wyjątkiem oscylatora kwarcowego, reszta urządzenia śpi. Zarówno główny oscylator, jak i asynchroniczny licznik czasu nadal działają w rozszerzonym trybie czuwania.

ATmega32 to potężny mikrokontroler ze względu na samoczynnie programowalną pamięć flash na monolitycznym chipie, stanowiący wysoce elastyczne i ekonomiczne rozwiązanie dla wielu wbudowanych aplikacji sterujących.


44-padowy TQFP / MLF

44-padowy TQFP / MLF

Opisy pinów:

VCC: Cyfrowe zasilanie napięciem

GND: Ziemia

Port A (PA7-PA0): Ten port służy jako wejścia analogowe dla przetwornika A / D. Służy również jako 8-bitowy dwukierunkowy port I / O, jeśli konwerter A / D nie jest używany.

Port B (PB7-PB0) i Port D (PD7-PD0): Jest to 8-bitowy dwukierunkowy port we / wy. Jego bufory wyjściowe mają symetryczną charakterystykę napędu z dużą wydajnością pochłaniania i źródła. Jako wejścia są one ekstremalnie obniżone, jeśli rezystory podciągające są aktywowane. Obsługuje również różne funkcje specjalne ATmega32.

Port C (PC7-PC0): Jest to 8-bitowy dwukierunkowy port we / wy. Jeśli interfejs JTAG jest włączony, rezystory podciągające na pinach PC5 (TDI), PC3 (TMS) i PC2 (TCK) zostaną aktywowane.

Łączenie JTAG przez port C ATmega32

Łączenie JTAG przez port C ATmega32

Resetowanie: To jest wkład.

XTAL1: Jest to wejście do wzmacniacza oscylatora odwracającego i wejście do wewnętrznego obwodu roboczego zegara.

XTAL2: Jest to wyjście ze wzmacniacza oscylatora odwracającego.

AVCC: Jest to pin zasilania dla portu A i przetwornika A / D. Powinien być podłączony do VCC.

AREF: AREF to analogowy pin odniesienia dla przetwornika A / D.

Wspomnienia ATmega32:

Ma dwie główne przestrzenie pamięci, pamięć danych i przestrzeń pamięci programu. Dodatkowo posiada pamięć EEPROM do przechowywania danych.

W programowanej przez system pamięci Flash Program:

ATmega32 zawiera 32 kilobajty wbudowanej w chip w systemie, programowalnej pamięci flash do przechowywania programów. Flash jest zorganizowany jako 16k X 16, a jego pamięć jest podzielona na dwie sekcje Sekcja programu startowego i sekcja programu aplikacji.

Schemat obwodu programatora ISP

Schemat obwodu programatora ISP

Pamięć danych SRAM:

Plik rejestru, pamięć we / wy i wewnętrzna pamięć SRAM danych są adresowane przez dolne 2144 lokalizacje pamięci danych. Pierwsze 96 lokalizacji adresuje plik rejestru i pamięć I / O, a wewnętrzna pamięć SRAM danych jest adresowana przez kolejne 2048 lokalizacji. Bezpośredni, pośredni z przesunięciem, pośredni, pośredni z dekrementacją wstępną i pośredni z dekrementacją post to 5 różnych trybów adresowania dla pokrycia pamięci danych. 32 rejestry ogólnego przeznaczenia, 64 rejestry we / wy i 2048 bajtów wewnętrznej pamięci SRAM z danymi są dostępne przy użyciu tych trybów adresowania.

Schemat blokowy ATmega32

Schemat blokowy ATmega32

Pamięć danych EEPROM:

Zawiera 1024 bajty danych w pamięci EEPROM. Można uzyskać do niego dostęp jako oddzielną przestrzeń danych, w której można odczytywać i zapisywać pojedyncze bajty.

Pamięć I / O:

Wszystkie wejścia / wyjścia i urządzenia peryferyjne są umieszczone w przestrzeni we / wy. Dostęp do lokalizacji we / wy uzyskuje się za pomocą instrukcji IN i OUT, przesyłając dane między 32 rejestrami ogólnego przeznaczenia a przestrzenią we / wy. Rejestry we / wy o adresie 00-1F są bezpośrednio dostępne bitowo przy użyciu instrukcji SBI i CBI.

ATmega8

Wprowadzenie

Jest to 8-bitowy mikrokontroler zbudowany w technologii CMOS z rodziny AVR (opracowany przez Atmel Corporation w 1996 r.) I jest zbudowany na architekturze RSIC (Reduced Instruction Set Computer). Jego podstawową zaletą jest to, że nie zawiera żadnego akumulatora, a wynik dowolnej operacji może być przechowywany w dowolnym rejestrze określonym instrukcją.

Architektura

Architektura

Architektura

Pamięć

Składa się z 8 KB pamięci flash, 1 KB pamięci SRAM i 512 bajtów pamięci EEPROM. Pamięć flash 8K jest podzielona na 2 części - dolną część używaną jako sekcja flashowania rozruchowego, a górną część używaną jako sekcja flashowania aplikacji. SRAM zawiera 1K bajtów wraz z 1120 bajtami rejestrów ogólnego przeznaczenia i rejestrów I / O. Niższe 32 lokalizacje adresowe są używane dla 32 8-bitowych rejestrów ogólnego przeznaczenia. Kolejne 64 adresy są używane dla rejestrów I / O. Wszystkie rejestry są podłączone bezpośrednio do ALU. Pamięć EEPROM służy do przechowywania danych zdefiniowanych przez użytkownika.

Porty wejściowe / wyjściowe

Składa się z 23 linii we / wy z 3 portami we / wy o nazwach B, C i D. Port B składa się z 8 linii we / wy, port C składa się z 7 linii we / wy, a port D z 8 linii we / wy linie.

Rejestry odpowiadające dowolnemu portowi X (B, C lub D) to:

DDRX : Rejestr kierunku danych portu X.

PORTX : Rejestr danych portu X.

PINX : Rejestr wejściowy portu X.

Timery i liczniki

Składa się z 3 timerów z porównywalnymi trybami. Dwa z nich są 8-bitowe, a trzeci 16-bitowy.

Oscylatory

Zawiera wewnętrzny reset i oscylator, co pozwala wyeliminować potrzebę jakiegokolwiek zewnętrznego wejścia. Wewnętrzny oscylator RC może generować wewnętrzny zegar, który może pracować z dowolną częstotliwością 1 MHz, 2 MHz, 4 MHz lub 8 MHz, zgodnie z zaprogramowaniem. Obsługuje również zewnętrzny oscylator o maksymalnej częstotliwości 16 MHz.

Komunikacja

Zapewnia zarówno synchroniczne, jak i asynchroniczne schematy przesyłania danych poprzez USART (Universal Synchronous and Asynchronous Receiver Transmitter), czyli komunikację z modemami i innymi urządzeniami szeregowymi. Obsługuje również SPI (Serial Peripheral Interface) używany do komunikacji między urządzeniami w oparciu o metodę master-slave. Innym obsługiwanym typem komunikacji jest TWI (interfejs dwuprzewodowy). Umożliwia komutację między dwoma dowolnymi urządzeniami za pomocą 2 przewodów wraz ze wspólnym połączeniem masy.

Posiada również moduł komparatora zintegrowany z chipem, aby zapewnić porównanie dwóch napięć podłączonych do dwóch wejść komparatora analogowego przez zewnętrzne chipy.

Zawiera również 6-kanałowy przetwornik ADC, z których 4 mają dokładność 10 bitów, a 2 dokładność 8 bitów.

Rejestr statusu : Zawiera informacje o aktualnie wykonywanym zestawie instrukcji arytmetycznych.

Schemat pinów ATmega :

Schemat pinów ATmega

Schemat pinów ATmega

Jedną z ważnych cech ATmega8 jest to, że oprócz 5 pinów, wszystkie pozostałe piny obsługują dwa sygnały.

  • Piny 23,24,25,26,27,28 i 1 są używane do portu C, natomiast kołki 9,10,14,15,16,17,18,19 są używane do portu B i pinów 2,3,4, 5,6,11,12 są używane dla portu D.
  • Pin 1 jest również pinem resetowania, a podanie niskiego poziomu sygnału przez czas dłuższy niż minimalna długość impulsu spowoduje reset.
  • Piny 2 i 3 są również używane do komunikacji szeregowej dla USART.
  • Piny 4 i 5 są używane jako przerwania zewnętrzne. Jeden z nich będzie wyzwalany, gdy ustawiony jest bit flagi przerwania rejestru stanu, a drugi będzie wyzwalany tak długo, jak długo będzie obowiązywał warunek przerwania.
  • Piny 9 i 10 są używane jako zewnętrzny oscylator, a także jako oscylatory liczników czasowych, w których kryształ jest podłączony bezpośrednio między pinami. Pin 10 jest używany do oscylatora kwarcowego lub oscylatora kwarcowego o niskiej częstotliwości. Jeśli jako źródło zegara używany jest skalibrowany wewnętrznie oscylator RC, a zegar asynchroniczny jest włączony, kołki te mogą być używane jako kołki oscylatora czasowego.
  • Pin 19 jest używany jako wyjście zegara głównego, wejście zegara podrzędnego dla kanału SPI.
  • Pin 18 jest używany jako wejście zegara głównego, wyjście zegara podrzędnego.
  • Pin 17 jest używany jako wyjście danych Master, wejście danych slave dla kanału SPI. Jest używane jako wejście, gdy jest włączone przez slave i jest dwukierunkowe, gdy jest włączone przez master. Ten styk może być również używany jako wyjście dopasowania porównania wyjścia, które służy jako wyjście zewnętrzne dla dopasowania porównania timera / licznika.
  • Pin16 jest używany jako wejście wyboru slave. Może być również używany jako dopasowanie timera / licznika1, konfigurując pin PB2 jako wyjście.
  • Pin15 może być używany jako wyjście zewnętrzne dla dopasowania timera / licznika A.
  • Piny od 23 do 28 są używane dla kanałów ADC. Pin 27 może być również używany jako zegar interfejsu szeregowego, a pin 28 może być używany jako dane interfejsu szeregowego
  • Piny 13 i 12 są używane jako wejścia komparatora analogowego.
  • Piny 11 i 6 służą jako źródła timera / licznika.

Tryby uśpienia mikrokontrolera

Mikrokontroler działa w 6 trybach uśpienia.

  • Tryb czuwania: Zatrzymuje działanie CPU, ale umożliwia działanie SPI, USART, ADC, TWI, Timer / Counter i Watchdog oraz system przerwań. Osiąga się to przez ustawienie bitów SM0 do SM2 flagi rejestru MCU na zero.
  • Tryb redukcji szumów ADC : Zatrzymuje procesor, ale umożliwia działanie ADC, zewnętrznych przerwań, timera / licznika2 i watchdoga.
  • Tryb wyłączenia : Włącza zewnętrzne przerwania, 2-przewodowy interfejs szeregowy, watchdog podczas wyłączania zewnętrznego oscylatora. Zatrzymuje wszystkie wygenerowane zegary.
  • Tryb oszczędzania energii : Jest używany, gdy Timer / Licznik jest taktowany asynchronicznie. Zatrzymuje wszystkie zegary z wyjątkiem clkASY.
  • Tryb czuwania : W tym trybie oscylator może działać, wstrzymując wszystkie inne operacje.

Aplikacje wykorzystujące Atmega8

Migająca dioda LED

Aplikacje z udziałem Atmega8

Schemat migającej diody LED

Program jest napisany w języku C i najpierw skompilowany jako plik .c. Oprogramowanie ATMEL skonwertuje ten plik na binarny plik obiektowy ELF. Następnie jest ponownie konwertowany do pliku szesnastkowego. Plik hex jest następnie przesyłany do mikrokontrolera za pomocą programu AVR dude.

Kredyt zdjęciowy: