Tipuri de microcontroler AVR - Atmega32 și ATmega8

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





ATmega32 - Microcontroler AVR pe 8 biți

Microcontrolerele AVR se bazează pe arhitectura RISC avansată. ATmega32 este un microcontroler CMOS de 8 biți cu putere redusă bazat pe arhitectura RISC îmbunătățită AVR. AVR poate executa 1 milion de instrucțiuni pe secundă dacă frecvența ciclului este de 1 MHz.

Fotografie DIP cu 40 de pini a ATmega32

Fotografie DIP cu 40 de pini a ATmega32



Caracteristici cheie:


  • 32 x 8 registre cu scop general de lucru.
  • 32K octeți de memorie de program flash auto-programabilă în sistem
  • 2K octeți de SRAM intern
  • 1024 octeți EEPROM
  • Disponibil în 40 pini DIP, 44 plumb QTFP, 44-pad QFN / MLF
  • 32 linii I / O programabile
  • 8 canale, ADC pe 10 biți
  • Două temporizatoare / contoare de 8 biți cu prescalere separate și moduri de comparare
  • Un contor / contor de 16 biți cu prescaler separat, modul de comparare și modul de captare.
  • 4 canale PWM
  • În programarea sistemului prin programul de boot pe cip
  • Temporizator programabil pentru câini de pază cu oscilator separat pe cip.
  • USART serial programabil
  • Interfață serială SPI master / slave

Caracteristici speciale ale microcontrolerului:

  • Șase moduri de repaus: Inactiv, reducerea zgomotului ADC, economie de energie, oprire, standby și standby extins.
  • Oscilator RC calibrat intern
  • Surse de întrerupere externe și interne
  • Resetare la pornire și detectare programabilă a defectării.
40-Pin DIP al ATmega32

40-Pin DIP al ATmega32



Toate cele 32 de registre sunt conectate direct la Unitatea Logică Aritmetică (ALU), permițând accesarea a două registre independente într-o singură instrucțiune executată într-un ciclu de ceas.

Oprirea salvează conținutul registrului, dar blochează oscilatorul. Toate celelalte funcții ale cipului vor fi dezactivate până când apare următoarea întrerupere externă. Temporizatorul asincron permite utilizatorului să mențină un cronometru bazat în modul de economisire a energiei în timp ce restul dispozitivului este în repaus.

Modul de reducere a zgomotului ADC oprește procesorul și toate modulele I / O, cu excepția ADC și a temporizatorului asincron. În modul de așteptare, cu excepția oscilatorului cu cristal, restul dispozitivului este în repaus. Atât oscilatorul principal, cât și temporizatorul asincron continuă să ruleze în modul de așteptare extins.

ATmega32 este un microcontroler puternic datorită blițului său auto-programabil pe sistem pe un cip monolitic, oferă o soluție flexibilă și rentabilă pentru multe aplicații de control încorporate.


44-pad TQFP / MLF

44-pad TQFP / MLF

Descrieri pin:

VCC: Alimentare digitală de tensiune

GND: Sol

Portul A (PA7-PA0): Acest port servește ca intrări analogice la convertorul A / D. De asemenea, servește ca un port I / O bidirecțional pe 8 biți dacă nu este utilizat convertorul A / D.

Portul B (PB7-PB0) și portul D (PD7-PD0): Este un port I / O bidirecțional pe 8 biți. Tampoanele sale de ieșire au caracteristici de acționare simetrice, atât cu capacitate ridicată cât și cu sursă. Ca intrări, acestea sunt extrem de scăzute dacă sunt activate rezistențele de tracțiune. De asemenea, servește diverse funcții speciale ale ATmega32.

Port C (PC7-PC0): Este un port I / O bidirecțional pe 8 biți. Dacă interfața JTAG este activată, vor fi activate rezistențele pull-up de pe pinii PC5 (TDI), PC3 (TMS) și PC2 (TCK).

Interfațarea JTAG utilizând portul C al ATmega32

Interfațarea JTAG utilizând portul C al ATmega32

Resetați: Este o intrare.

XTAL1: Este o intrare la amplificatorul oscilatorului inversor și o intrare la circuitul de funcționare al ceasului intern.

XTAL2: Este o ieșire de la amplificatorul oscilatorului inversor.

AVCC: Este pinul de tensiune de alimentare pentru convertorul Port A și A / D. Ar trebui să fie conectat la VCC.

AREF: AREF este pinul de referință analogic pentru convertorul A / D.

Amintiri ATmega32:

Are două spații principale de memorie de date și spațiul de memorie al programului. În plus, dispune de o memorie EEPROM pentru stocarea datelor.

În memoria programului Flash programabil de sistem:

ATmega32 conține 32Kbytes on-chip în memoria flash sistem reprogramabilă pentru stocarea programului. Flash este organizat ca 16k X 16 și memoria sa este împărțită în două secțiuni Secțiunea programului de boot și secțiunea programului aplicației.

Schema circuitului programatorului ISP

Diagrama circuitului programatorului ISP

Memorie de date SRAM:

Fișierul Register, memoria I / O și datele interne SRAM sunt adresate de locațiile inferioare ale memoriei de date 2144. Primele 96 de locații se adresează fișierului Register și memoria I / O, iar datele interne SRAM sunt adresate de următoarele 2048 de locații. Direct, indirect cu deplasare, indirect, indirect cu pre-decrement și în direct cu post decrement sunt cele 5 moduri de adresare diferite pentru acoperirea memoriei de date. Cele 32 de registre cu scop general, 64 de registre I / O și 2048 octeți de date interne SRAM sunt accesibile prin utilizarea acestor moduri de adresare.

Diagrama bloc a ATmega32

Diagrama bloc a ATmega32

Memorie de date EEPROM:

Conține 1024 octeți de memorie EEPROM de date. Poate fi accesat ca un spațiu de date separat, în care pot fi citite și scrise octeți individuali.

Memorie I / O:

Toate E / S-urile și perifericele sunt plasate în spațiul I / O. Locațiile I / O sunt accesate de instrucțiunile IN și OUT, transferând datele între cele 32 de registre cu scop general și spațiul I / O. Registrele I / O cu adresa 00-1F sunt direct biți accesibil folosind instrucțiunile SBI și CBI.

ATmega8

Introducere

Este un microcontroler CMOS de 8 biți din familia AVR (dezvoltat de Atmel Corporation în 1996) și este construit pe arhitectura RSIC (Reduced Instruction Set Computer). Avantajul său de bază este că nu conține niciun acumulator și rezultatul oricărei operațiuni poate fi stocat în orice registru, definit de instrucțiuni.

Arhitectură

Arhitectură

Arhitectură

Memorie

Acesta constă din 8 KB de memorie flash, 1 KB de SRAM și 512 octeți de EEPROM. Blițul 8K este împărțit în 2 părți - partea inferioară utilizată ca secțiune bliț de încărcare, iar partea superioară utilizată ca secțiune bliț aplicație. SRAM conține 1K octeți împreună cu 1120 octeți de registre de uz general și registre I / O. Cele 32 de locații de adresă inferioare sunt utilizate pentru 32 de registre de 8 biți de uz general. Următoarele 64 de adrese sunt utilizate pentru registrele I / O. Toate registrele sunt conectate direct la ALU. EEPROM este utilizată pentru stocarea datelor definite de utilizator.

Porturi de intrare / ieșire

Este format din 23 de linii I / O cu 3 porturi I / O, denumite B, C și D. Portul B este format din 8 linii I / O, portul C este format din 7 linii I / O și portul D este format din 8 I / O linii.

Registrele corespunzătoare oricărui port X (B, C sau D) sunt:

DDRX : Registrul de direcție de date Port X

PORTX : Registrul de date Port X

PINX : Registrul de intrare Port X

Cronometre și contoare

Se compune din 3 temporizatoare cu moduri comparabile. Două dintre ele au 8 biți, în timp ce al treilea este de 16 biți.

Oscilatoare

Incorporează resetare internă și oscilator, ceea ce face posibilă eliminarea necesității oricărei intrări externe. Oscilatorul RC intern este capabil să genereze ceas intern care poate rula la orice frecvență de 1MHz, 2MHz, 4MHz sau 8MHz așa cum este programat. De asemenea, acceptă oscilator extern cu frecvență maximă de 16 MHz.

Comunicare

Oferă scheme de transfer de date atât sincrone cât și asincrone prin USART (transmițător receptor universal sincron și asincron), adică comunicare cu modemuri și alte dispozitive seriale. De asemenea, suportă SPI (Serial Peripheral Interface) utilizat pentru comunicația între dispozitive pe baza metodei master-slave. Un alt tip de comunicare acceptat este TWI (interfață cu două fire). Permite comutarea între oricare două dispozitive utilizând 2 fire împreună cu o conexiune de masă comună.

De asemenea, are un modul de comparare integrat în cip pentru a oferi comparație între două tensiuni conectate la cele două intrări ale comparatorului analogic prin intermediul cipurilor externe.

De asemenea, conține un ADC cu 6 canale, dintre care 4 au o precizie de 10 biți și 2 au o precizie de 8 biți.

Registrul de stare : Conține informații despre setul de instrucțiuni aritmetice executat în prezent.

Diagrama ATmega Pin :

Diagrama ATmega Pin

Diagrama ATmega Pin

Una dintre caracteristicile importante ale ATmega8 este că, cu excepția celor 5 pini, toți ceilalți pini acceptă două semnale.

  • Pinii 23,24,25,26,27,28 și 1 sunt utilizați pentru portul C, în timp ce pinii 9,10,14,15,16,17,18,19 sunt utilizați pentru portul B și pinii 2,3,4, 5.6,11,12 sunt utilizate pentru portul D.
  • Pinul 1 este, de asemenea, pinul Resetare și un semnal de nivel scăzut aplicat pentru un timp mai lung decât lungimea minimă a impulsului va genera o resetare.
  • Pinii 2 și 3 sunt utilizați și pentru comunicații seriale pentru USART.
  • Pinii 4 și 5 sunt folosiți ca întreruperi externe. Unul dintre ele se va declanșa când bitul semnalizator de întrerupere al registrului de stare este setat, iar celălalt se va declanșa atâta timp cât condiția de întrerupere prevalează.
  • Pinii 9 și 10 sunt utilizați ca oscilatori externi, precum și temporizatori, cu oscilatoare în care cristalul este conectat direct între ace. Pinul 10 este utilizat pentru oscilatorul de cristal sau pentru oscilatorul de cristal de joasă frecvență. Dacă oscilatorul RC calibrat intern este utilizat ca sursă de ceas și temporizatorul asincron este activat, acești pini pot fi folosiți ca pini ai oscilatorului temporizator.
  • Pinul 19 este utilizat ca ieșire Master Clock, intrare ceas sclav pentru canalul SPI.
  • Pinul 18 este folosit ca intrare de ceas master, ieșire de ceas sclav.
  • Pinul 17 este utilizat ca ieșire de date master, intrare de date slave pentru canalul SPI. Este utilizat ca intrare atunci când este activat de un sclav și este bidirecțional când este activat de către comandant. Acest pin poate fi, de asemenea, utilizat ca o ieșire de comparare a ieșirii de potrivire, care servește ca o ieșire externă pentru timer / contor de potrivire de potrivire.
  • Pin16 este utilizat ca intrare de selecție slave. Poate fi, de asemenea, utilizat ca meci de comparare a temporizatorului / contorului 1, configurând pinul PB2 ca ieșire.
  • Pin15 poate fi utilizat ca o ieșire externă pentru compararea temporizatorului / contorului A.
  • Pinii 23-28 sunt utilizați pentru canalele ADC. Pinul 27 poate fi folosit și ca ceas de interfață serial, iar pinul 28 poate fi utilizat ca date de interfață serială
  • Pinii 13 și 12 sunt folosiți ca intrări de comparator analogic.
  • Pinii 11 și 6 sunt folosiți ca surse de temporizare / contor.

Moduri Sleep microcontroler

Microcontrolerul funcționează în 6 moduri de repaus.

  • Modul de repaus: Oprește funcționarea procesorului, dar permite funcționarea SPI, USART, ADC, TWI, Timer / Counter și Watchdog și întrerupe sistemul. Se realizează prin setarea SM0 la SM2 biți de semnal de înregistrare MCU la zero.
  • Mod de reducere a zgomotului ADC : Oprește CPU-ul, dar permite funcționarea ADC, întreruperi externe, temporizator / contor2 și câine de pază.
  • Mod de oprire : Permite întreruperi externe, interfața serială cu 2 fire, câine de pază în timp ce dezactivează oscilatorul extern. Oprește toate ceasurile generate.
  • Mod de economisire a energiei : Se utilizează când cronometrul / contorul este asociat sincronizat. Se oprește toate ceasurile, cu excepția clkASY.
  • Mod de asteptare : În acest mod, oscilatorul este permis să funcționeze, oprind toate celelalte operații.

Aplicații care implică Atmega8

LED intermitent

Aplicații care implică Atmega8

Schematic LEd intermitent

Programul este scris folosind limbajul C și este compilat mai întâi ca fișier .c. Instrumentul software ATMEL va converti acest fișier într-un fișier de obiect ELF binar. Este apoi din nou convertit în fișier hex. Fișierul hex este apoi trecut la microcontroler folosind programul AVR dude.

Credit foto: