Tipi di microcontrollori AVR: Atmega32 e ATmega8

Prova Il Nostro Strumento Per Eliminare I Problemi





ATmega32 - Microcontrollore AVR a 8 bit

I microcontrollori AVR sono basati sull'architettura RISC avanzata. ATmega32 è un microcontrollore CMOS a 8 bit a bassa potenza basato sull'architettura RISC avanzata AVR. AVR può eseguire 1 milione di istruzioni al secondo se la frequenza del ciclo è 1MHz.

DIP a 40 pin Fotografia di ATmega32

DIP a 40 pin Fotografia di ATmega32



Caratteristiche principali:


  • 32 x 8 registri per scopi di lavoro generali.
  • 32K byte di memoria flash programmabile nel sistema
  • 2K byte di SRAM interna
  • EEPROM da 1024 byte
  • Disponibile in DIP a 40 pin, QTFP a 44 conduttori, QFN / MLF a 44 pad
  • 32 linee I / O programmabili
  • 8 canali, 10 bit ADC
  • Due timer / contatori a 8 bit con prescaler separati e modalità di confronto
  • Un timer / contatore a 16 bit con prescaler separato, modalità di confronto e modalità di acquisizione.
  • 4 canali PWM
  • Nella programmazione del sistema tramite programma di avvio su chip
  • Timer watch dog programmabile con oscillatore separato su chip.
  • USART seriale programmabile
  • Interfaccia seriale SPI master / slave

Caratteristiche speciali del microcontrollore:

  • Sei modalità di sospensione: inattiva, riduzione del rumore ADC, risparmio energetico, spegnimento, standby e standby esteso.
  • Oscillatore RC calibrato interno
  • Fonti di interrupt esterne e interne
  • Ripristino all'accensione e rilevamento di interruzione di corrente programmabile.
DIP a 40 pin di ATmega32

DIP a 40 pin di ATmega32



Tutti i 32 registri sono direttamente collegati all'Unità Logica Aritmetica (ALU), consentendo l'accesso a due registri indipendenti in un'unica istruzione eseguita in un ciclo di clock.

Lo spegnimento salva il contenuto del registro ma congela l'oscillatore. Tutte le altre funzioni del chip saranno disabilitate fino a quando non si verificherà il successivo interrupt esterno. Il timer asincrono consente all'utente di mantenere un timer basato sulla modalità di risparmio energetico mentre il resto del dispositivo sta dormendo.

La modalità di riduzione del rumore ADC arresta la CPU e tutti i moduli I / O eccetto ADC e il timer asincrono. In modalità standby, ad eccezione dell'oscillatore a cristallo, il resto del dispositivo è in standby. Sia l'oscillatore principale che il timer asincrono continuano a funzionare in modalità standby estesa.

ATmega32 è un potente microcontrollore grazie al suo flash auto programmabile nel sistema su un chip monolitico, fornisce una soluzione altamente flessibile ed economica per molte applicazioni di controllo integrate.


TQFP / MLF a 44 pastiglie

TQFP / MLF a 44 pastiglie

Descrizioni dei pin:

VCC: Alimentazione di tensione digitale

GND: Terra

Porta A (PA7-PA0): Questa porta serve come ingressi analogici al convertitore A / D. Serve anche come porta I / O bidirezionale a 8 bit se il convertitore A / D non viene utilizzato.

Porta B (PB7-PB0) e Porta D (PD7-PD0): È una porta I / O bidirezionale a 8 bit. I suoi buffer di uscita hanno caratteristiche di azionamento simmetriche con capacità sia high sink che source. Come ingressi, questi sono estremamente ridotti se le resistenze di pull-up sono attivate. Serve anche varie funzioni speciali di ATmega32.

Porta C (PC7-PC0): È una porta I / O bidirezionale a 8 bit. Se l'interfaccia JTAG è abilitata, verranno attivate le resistenze di pull-up sui pin PC5 (TDI), PC3 (TMS) e PC2 (TCK).

Interfacciamento di JTAG utilizzando la porta C di ATmega32

Interfacciamento di JTAG utilizzando la porta C di ATmega32

Ripristina: È un input.

XTAL1: È un ingresso per l'amplificatore dell'oscillatore invertente e un ingresso per il circuito operativo dell'orologio interno.

XTAL2: È un'uscita dall'amplificatore dell'oscillatore invertente.

AVCC: È il pin della tensione di alimentazione per la porta A e il convertitore A / D. Dovrebbe essere collegato a VCC.

AREF: AREF è il pin di riferimento analogico per il convertitore A / D.

Ricordi di ATmega32:

Ha due spazi di memoria principale, la memoria dati e lo spazio di memoria del programma. Inoltre dispone di una memoria EEPROM per l'archiviazione dei dati.

Nella memoria di programma flash programmabile di sistema:

ATmega32 contiene 32 Kbyte su chip nella memoria flash riprogrammabile del sistema per l'archiviazione del programma. Flash è organizzato come 16k X 16 e la sua memoria è divisa in due sezioni Sezione del programma di avvio e sezione del programma applicativo.

Schema elettrico del programmatore ISP

Schema del circuito del programmatore ISP

Memoria dati SRAM:

Il file di registro, la memoria I / O e la SRAM dei dati interni vengono indirizzati dalle 2144 posizioni di memoria dati inferiori. Le prime 96 posizioni indirizzano il file di registro e la memoria I / O e la SRAM dei dati interni viene indirizzata dalle successive 2048 posizioni. Diretto, indiretto con displacement, indiretto, indiretto con pre-decremento e in-direct con post decremento sono le 5 diverse modalità di indirizzamento per la copertura della memoria dati. I 32 registri per uso generico, 64 registri I / O e 2048 byte di dati interni SRAM sono accessibili utilizzando queste modalità di indirizzamento.

Schema a blocchi di ATmega32

Schema a blocchi di ATmega32

Memoria dati EEPROM:

Contiene 1024 byte di memoria EEPROM di dati. È possibile accedervi come uno spazio dati separato in cui è possibile leggere e scrivere singoli byte.

Memoria I / O:

Tutti gli I / O e le periferiche vengono posizionati nello spazio I / O. Si accede alle posizioni di I / O dalle istruzioni IN e OUT, trasferendo i dati tra i 32 registri di uso generale e lo spazio di I / O. I registri I / O con indirizzo 00-1F sono direttamente accessibili tramite bit utilizzando le istruzioni SBI e CBI.

ATmega8

introduzione

È un microcontrollore CMOS a 8 bit della famiglia AVR (sviluppato da Atmel Corporation nel 1996) ed è costruito sull'architettura RSIC (Reduced Instruction Set Computer). Il suo vantaggio fondamentale è che non contiene alcun accumulatore e il risultato di qualsiasi operazione può essere memorizzato in qualsiasi registro, definito dall'istruzione.

Architettura

Architettura

Architettura

Memoria

Consiste di 8 KB di memoria flash, 1 KB di SRAM e 512 byte di EEPROM. Il flash 8K è diviso in 2 parti: la parte inferiore utilizzata come sezione del flash di avvio e la parte superiore utilizzata come sezione del flash dell'applicazione. La SRAM contiene 1K byte insieme a 1120 byte di registri di uso generale e registri di I / O. Le 32 posizioni degli indirizzi inferiori vengono utilizzate per 32 registri a 8 bit per uso generico. I successivi 64 indirizzi vengono utilizzati per i registri I / O. Tutti i registri sono collegati direttamente all'ALU. La EEPROM viene utilizzata per memorizzare i dati definiti dall'utente.

Porte di ingresso / uscita

Consiste di 23 linee I / O con 3 porte I / O, denominate B, C e D. La porta B è composta da 8 linee I / O, la porta C è composta da 7 linee I / O e la porta D è composta da 8 I / O Linee.

I registri corrispondenti a qualsiasi portaX (B, C o D) sono:

DDRX : Registro della direzione dei dati della porta X.

PORTX : Registro dati della porta X.

PINX : Registro di ingresso della porta X.

Timer e contatori

Consiste di 3 timer con modalità comparabili. Due di loro sono a 8 bit mentre il terzo è a 16 bit.

Oscillatori

Incorpora reset interno e oscillatore che consente di eliminare la necessità di qualsiasi input esterno. L'oscillatore RC interno è in grado di generare un clock interno che può funzionare a qualsiasi frequenza di 1MHz, 2MHz, 4MHz o 8MHz come programmato. Supporta anche un oscillatore esterno con una frequenza massima di 16 MHz.

Comunicazione

Fornisce schemi di trasferimento dati sia sincroni che asincroni tramite USART (Universal Synchronous and Asynchronous Receiver Transmitter), ovvero comunicazione con modem e altri dispositivi seriali. Supporta anche SPI (Serial Peripheral Interface) utilizzato per la comunicazione tra dispositivi in ​​base al metodo master-slave. Un altro tipo di comunicazione supportato è la TWI (Two Wire Interface). Consente la commutazione tra due dispositivi qualsiasi utilizzando 2 fili insieme a una connessione di terra comune.

Dispone inoltre di un modulo comparatore integrato nel chip per fornire il confronto tra due tensioni collegate ai due ingressi del comparatore analogico tramite i chip esterni.

Contiene anche un ADC a 6 canali di cui 4 hanno una precisione di 10 bit e 2 hanno una precisione di 8 bit.

Registro di stato : Contiene informazioni sul set di istruzioni aritmetiche attualmente eseguito.

ATmega Pin Diagram :

ATmega Pin Diagram

ATmega Pin Diagram

Una delle caratteristiche importanti di ATmega8 è che, tranne 5 pin, tutti gli altri pin supportano due segnali.

  • I pin 23,24,25,26,27,28 e 1 sono usati per la porta C, mentre i pin 9,10,14,15,16,17,18,19 sono usati per la porta B e i pin 2,3,4, 5,6,11,12 sono utilizzati per la porta D.
  • Il pin 1 è anche il pin di ripristino e l'applicazione di un segnale di basso livello per un tempo superiore alla lunghezza minima dell'impulso genererà un ripristino.
  • I pin 2 e 3 vengono utilizzati anche per la comunicazione seriale per USART.
  • I pin 4 e 5 vengono utilizzati come interrupt esterni. Uno di questi si attiverà quando il bit di flag di interruzione del registro di stato è impostato e l'altro si attiverà fintanto che prevale la condizione di interruzione.
  • I pin 9 e 10 vengono utilizzati come oscillatori esterni e come oscillatori dei contatori del timer in cui il cristallo è collegato direttamente tra i pin. Il pin 10 viene utilizzato per l'oscillatore a cristallo o l'oscillatore a cristallo a bassa frequenza. Se l'oscillatore RC calibrato interno viene utilizzato come sorgente del clock e il timer asincrono è abilitato, questi pin possono essere utilizzati come pin dell'oscillatore del timer.
  • Il pin 19 è utilizzato come uscita Master Clock, ingresso slave clock per il canale SPI.
  • Il pin 18 viene utilizzato come ingresso orologio master, uscita orologio slave.
  • Il pin 17 viene utilizzato come uscita dati master, ingresso dati slave per il canale SPI. Viene utilizzato come ingresso quando abilitato da uno slave ed è bidirezionale quando abilitato dal master. Questo pin può essere utilizzato anche come uscita di confronto di confronto dell'uscita, che funge da uscita esterna per la corrispondenza di confronto di timer / contatore.
  • Pin16 viene utilizzato come ingresso di selezione slave. Può anche essere utilizzato come corrispondenza di confronto timer / counter1 configurando il pin PB2 come uscita.
  • Il Pin15 può essere utilizzato come uscita esterna per la corrispondenza di confronto timer / contatore A.
  • I pin da 23 a 28 vengono utilizzati per i canali ADC. Il pin 27 può essere utilizzato anche come orologio dell'interfaccia seriale e il pin 28 può essere utilizzato come dati dell'interfaccia seriale
  • I pin 13 e 12 vengono utilizzati come ingressi del comparatore analogico.
  • I pin 11 e 6 vengono utilizzati come sorgenti di timer / contatore.

Modalità di sospensione del microcontrollore

Il microcontrollore funziona in 6 modalità di sospensione.

  • Modalità stand-by: Arresta il funzionamento della CPU, ma consente il funzionamento di SPI, USART, ADC, TWI, Timer / Counter e Watchdog e interrompe il sistema. Si ottiene impostando da SM0 a SM2 i bit del flag di registro MCU su zero.
  • Modalità di riduzione del rumore ADC : Arresta la CPU ma consente il funzionamento di ADC, interrupt esterni, timer / counter2 e watchdog.
  • Modalità di spegnimento : Abilita gli interrupt esterni, l'interfaccia seriale a 2 fili, il watchdog disabilitando l'oscillatore esterno. Arresta tutti gli orologi generati.
  • Modalità risparmio energetico : Viene utilizzato quando il timer / contatore è sincronizzato in modo asincrono. Ferma tutti gli orologi tranne clkASY.
  • Modalità standby : In questa modalità, l'oscillatore può funzionare, interrompendo tutte le altre operazioni.

Applicazioni che coinvolgono Atmega8

LED lampeggiante

Applicazioni che coinvolgono Atmega8

Schema LED lampeggiante

Il programma viene scritto utilizzando il linguaggio C e viene prima compilato come file .c. Lo strumento software ATMEL convertirà questo file in un file oggetto ELF binario. Viene quindi nuovamente convertito in file esadecimale. Il file hex viene quindi passato al microcontrollore utilizzando il programma AVR dude.

Diritti d'autore della foto: