Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS DIGITAIS 2
ATmega128
Pgina1
AulasSistemasDigitais22012/2013
ATmega128
ATmega128
Pgina2
AulasSistemasDigitais22012/2013
Caractersticas do ATmega128:
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
Arquitectura RISC
133 instrues (a maior parte executada num nico ciclo de execuo)
32 registos de trabalho de 8 bits (arquitectura de registos)
At 16 MIPS (@16MHz) 62.5ns / instruo
64K palavras de programa de 16 bits 128K bytes FLASH
4K bytes de RAM interna
4K bytes de E2PROM de dados
Ciclos de escrita / leitura FLASH=10000, E2PROM=100000
7 Portos de IO
6 x 8 bits (Portos A .. F)
1 x 5 bits (Porto G)
2 x Timer / Counter de 8 bits
2 x Timer / Counter de 16 bits
1 x Real Time Counter ( com oscilador independente)
2 x PWM de 8 bits
6 x PWM de 16 bits
ADC de 10 bits (8 canais)
2 x USART
SPI
TWI (I2C)
Tenso de alimentao:
ATmega128L - 2.7V a 5.5V (0 a 8MHz)
ATmega128 4.5V a 5.5V (0 a 16MHz)
Software de Desenvolvimento:
AVR Studio 4 (http://www.atmel.com)
WINAVR (http://winavr.souceforge.net)
PonyProg (http://www.lancos.com/prog.html)
Boards ATmega128:
FUTURLEC (http://www.futurlec.com)
ATmega128
Pgina3
AulasSistemasDigitais22012/2013
ATmega128
Pgina4
AulasSistemasDigitais22012/2013
Arquitectura de Harvard
Memrias independentes para programa e dados
Barramentos independentes (endereos e dados) para acesso s memrias de
programa e dados
Execuo do programa com sobreposio
ATmega128
Pgina5
AulasSistemasDigitais22012/2013
C
N
S
T
Carry Flag
Negative Flag
Sign Bit
Bit Copy Storage
ATmega128
Z
V
H
I
Zero Flag
Twos Complement Overflow Flag
Half Carry Flag
Global Interrupt Enable
Pgina6
AulasSistemasDigitais22012/2013
Addr
R0
0x00
R1
0x01
R2
0x02
..
R13
0x0D
Registos
R14
0x0E
de uso
R15
0x0F
geral
R16
0x10
R17
0x11
..
ATmega128
R26
0x1A
R27
0x1B
R28
0x1C
R29
0x1D
R30
0x1E
R31
0x1F
Pgina7
AulasSistemasDigitais22012/2013
Memria de Programa
ATmega128
Pgina8
AulasSistemasDigitais22012/2013
Vectores de Interrupo
Vector n
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
ATmega128
Endereo
0x0000
0x0002
0x0004
0x0006
0x0008
0x000A
0x000C
0x000E
0x0010
0x0012
0x0014
0x0016
0x0018
0x001A
0x001C
0x001E
0x0020
0x0022
0x0024
0x0026
0x0028
0x002A
0x002C
0x002E
0x0030
0x0032
0x0034
0x0036
0x0038
0x003A
0x003C
0x003E
0x0040
0x0042
0x0044
Fonte
RESET
INT0
INT1
INT2
INT3
INT4
INT5
INT6
INT7
TIMER2 COMP
TIMER2 OVF
TIMER1 CAPT
TIMER1 COMPA
TIMER1 COMPB
TIMER1 OVF
TIMER0 COMP
TIMER0 OVF
SPI, STC
USART0, RX
USART0, UDRE
USART0, TX
ADC
EE READY
ANALOG COMP
TIMER1 COMPC
TIMER3 CAPT
TIMER3 COMPA
TIMER3 COMPB
TIMER3 COMPC
TIMER3 OVF
USART1, RX
USART1, UDRE
USART1, TX
TWI
SPM READY
Definio
Operao de RESET
Interrupo externa 0
Interrupo externa 1
Interrupo externa 2
Interrupo externa 3
Interrupo externa 4
Interrupo externa 5
Interrupo externa 6
Interrupo externa 7
T/C2 comparao
T/C2 overflow
T/C1 captura
T/C1 comparao A
T/C1 comparao B
T/C1 overflow
T/C0 comparao
T/C0 overflow
SPI, transferncia terminada
USART0, recepo terminada
USART0, registo de dados vazio
USART0, transmisso terminada
ADC, converso terminada
EEPROM ready
Comparador analgico
T/C1 comparao C
T/C3 captura
T/C3 comparao A
T/C3 comparao B
T/C3 comparao C
T/C3 overflow
USART1, recepo terminada
USART1, registo de dados vazio
USART1, transmisso terminada
Two Wire Interface
Store Program Memory Ready
Pgina9
AulasSistemasDigitais22012/2013
ATmega128
Pgina10
AulasSistemasDigitais22012/2013
ATmega128
Pgina11
AulasSistemasDigitais22012/2013
o Oscilador RC externo
o Oscilador interno RC
Frequncias fixas: 1, 2, 4 ou 8 MHz (@5 V, 25C)
Com calibrao possvel conseguir uma preciso de 1% para qualquer valor de Vcc e
de temperatura.
ATmega128
Pgina12
AulasSistemasDigitais22012/2013
Registo de calibrao
d = 0b (XDIV6 .. XDIV0)
ATmega128
Pgina13
AulasSistemasDigitais22012/2013
1 Registo de direo de dados do porto de E/S (DDRx). Para cada um dos bits do porto, a
escrita de um 0 neste registo programa o porto com entrada de dados. A escrita de um 1
programa o bit do porto como sada de dados.
2 Registo de sada de dados do porto de E/S (PORTx). Se o bit do porto estiver
programado como sada de dados, a escrita de um 0 ou um 1 neste registo faz com que
esse valor aparea no pino de sada (5). Se o bit estiver programado como entrada de dados, a
escrita de um 0 desactiva o pull-up interno, a escrita de um 1 activa o pull-up interno.
3 Registo de entrada de dados do porto de E/S (PINx). Se o bit do porto estiver
programado como entrada, os valores presentes no pino exterior (5) podem ser lidos para o
registo PINx.
4 Resistncia de pull-up interna. No caso do bit do porto estar programado como entrada
de dados, podemos optar por inserir esta resistncia de pull-up caso o dispositivo exterior no
consiga definir o valor lgico 1.
5 Pino exterior para entrada / sada de dados.
ATmega128
Pgina14
AulasSistemasDigitais22012/2013
Registos dos Portos (Porto A)
Registo Especial de IO
PUD Pull Up Disable. O valor 1 escrito neste bit desactiva todos os pull up
internos dos diferentes portos do ATmega128
Exemplo 1
Programar o Porto A como entrada de dados, activando os pull-ups internos
Linguagem Assembly
Linguagem C
clr
out
ser
out
DDRA = 0;
r16
DDRA
r16
PORTA
ATmega128
PORTA = 0xFF;
Pgina15
AulasSistemasDigitais22012/2013
Exemplo 2
Programar o Porto C como sada de dados e inicializ-lo com o valor 8(0b00001000)
Linguagem Assembly
ldi
out
ser
out
r16,0b00001000
PORTC
r16
DDRC
Linguagem C
; escreve 8 em PORTC
; programar o porto como sada
; escreve 1s em DDRC para
; programar o porto como sada
PORTA = 0b00001000;
DDRA = 0xFF;
Exemplo 3
Programar os 6 bits sig do Porto A como entrada de dados e os 2 bits +sig como sada de dados.
Desactivar os pull-ups internos das entradas e inicializar os bits de sada com 11
Linguagem Assembly
ldi
out
ldi
out
r16,0xC0
DDRA
r16,0b11000000
PORTA
ATmega128
Linguagem C
; programa o DDRA
DDRA = 0xC0;
PORTA = 0xC0;
Pgina16