Documente Academic
Documente Profesional
Documente Cultură
/ &
5. ATMEL AVR
AVR ATMEL.
. o
60 .!
:
5V, 2.7V ( L)
1.8V ( V).
"
(interrupt) ,
# (ADC), (oscillator)
(counters),
USART, SPI . . "
LCD
USB interface.
" AVR
Flash
(firmware), eeprom ,
RAM $ .%
AVR $
.
&
AVR .
' $
. (, RAM ,
. %
. !
40 MHz AVR.
"
AVR AT90S2313
ATmega169.
137
. / &
5.1 AT90S2313
• RISC ) 118
.
• 32x8bit .
• 10 MIPS 10MHz.
• 2Kbytes Flash.
• 128 bytes RAM.
• 128 bytes EEPROM.
• 8-bit 16-bit / (timer/counter) Watchdog
timer.
• (analog comparator).
• ! .
• SPI bus .
• UART .
• 15 2 (Port B D).
• & 2.7-6V ( AT90S2313-4) 4-6V (
AT90S2313-10).
• " 4 MHz ( AT90S2313-4) 10 MHz (
AT90S2313-10).
" 5-1. *
+ " 5-1. )
.+
" 5-2.
138
. / &
5.2 AT90S2313
" $
AT90S2313. 32
8 bits ) , & (ALU)
. - (Status), &
( (Program Counter – 10bits)
Flash
.
139
. / &
" 8-bit
/ , EEPROM,
(interrupt unit), SPI UART interfaces .
D .
5.3
" XTAL1/XTAL2
(crystal resonator) 4 MHz
10 MHz .+
" 5-4. !
XTAL1. "
XTAL2 .
5.4 H
" 5-6. 0
" 5-
6. 1
SBCI, SUBI, CPI, ANDI, ORI
R16-R31. R26-R31
16-bit 2,3,4
(indirect addressing)
/ (auto increment/decrement)
.
+ EEPROM EEPROM Address, Data,
Control . "
141
. / &
. '
. / (
5-1
( 5-1. + & ! /!
142
. / &
5.5 !
16 bits
(" 5-7 ).
• * ! (Data Indirect with Displacement). '
3 4
("
5-7 ).
• * (Data Indirect). ' $
X,Y, Z (" 5-7 ).
• * & ) * (Data Indirect with Pre-
decrement or post –increment. " (2,3 4)
1
." ,
1 (" 5-7 /7 ).
• " & ( (Constant using LPM).
2 LPM byte
.+ $ 15 bits 4
bit byte
(" 5-7 ).
• ( (Program Indirect). 4
& ( .
2 IJMP, ICALL (" 5-7 ).
• " & ( (Relative Program). '
, & ( .2
RJMP, RCALL (" 5-7 ).
143
. / &
( ) ($)
( ) ( )
( ) ( )
( ) ( )
( ) ()
144
. / &
( )
" 5-7. ' * AVR
5.6 " # # $
& "
! (RISC)
pipelining. AVR , RISC ,
#
,
«& ! 0 / ». (" 5-8).
" 5-8. ! # 2
' RAM
" 5-10. 1 ’
WR RD
" 5-11. 0 0
• C (Carry): * #
.
5.9 $ # ( (Reset
and Interrupt Handling)
O AT90S2313 10
& (
(Interrupt Service Routine – ISR).
( * (Interrupt Vector)
( 5-2.
( 5-2. ( *
147
. / &
ISR
:
INT0/INT1. 4
/ T1 T0. 3
UART.
5.9.1
Reset ! 0. 0
148
. / &
. Reset
$. Reset
. Reset
" 5-12
& !
Watchdog Timer 1 MHz.
$ ! . *
(timeout period) $
Reset.
5.9.2
AT90S2313 2
(Global Interrupt Masking-GMSK, Timer Interrupt Masking-TIMSK)
2
(Global Interrupt Flags Register-GIFR, Timer Interrupt Flags Register-TIFR).
" 5-13. 0
3 .
1 68'0/68'1
,
.'
MCUCR ( 0x35). !
68'0/68'1 . )
$ ,
GIMSK 6
0 0 . ) *
, (Software Interrupts).
5.9.3 Sleep
AT90S2313
sleep
SE MCUCR . (SM)
sleep idle
(power down). " sleep
.
) sleep idle KME $ $
/ , Watchdog timer,
.
"
(reset) Watchdog timer.
5.10 /
AT90S2313 2 / (timer/counter). 8-
bit T/C0 16-bits T/C1. 0
. 0
/8, /64, /256,
/1024 prescaler " 5-14.
151
. / &
152
. / &
/
16-bits. + " 5-16. !
TIMSK, TIFR, 6 T/C1
TCCR1A, TCCR1B, OCR1A (H L), ICR1 (H L).
153
. / &
T/C1 T/C0
,
TCNT1 OCR1A
OC1, ICR
ICP. ' T/C1
(Pulse Width
Modulation – PWM). & OC1 8, 9
10 bits. " , T/C1 0 ' /
(255, 511, 1023 8, 9 10 bits ). 1
0. " , ,
8, 9 10 LSBits
OCR1A, OC1 .+
glitch (" 5-17).
154
. / &
5.11 EEPROM
' AVR 128 bytes EEPROM
/ $ 100000 .
2.5 4 ms Vcc.
155
. / &
" #
,
Reset
. 5
EEPROM power
down sleep
Flash $
$ .
1
.
3 EEPROM,
(EEAR), (EEDR)
(EECR). ' " 5-19.
" 7 (EEAR)
128 bytes EEPROM, EEDR
.
EECR.
' EEWE EEDR
EEAR. ) 9 EEMWE
1 . +
$ :
1. ( EEWE 0.
2. ( # EEAR.
3. ( # EEDR.
4. % # EEMWE 1 EEWE 0.
5. & 4 # EEWE 1,
hardware EEMWE 0.
156
. / &
% EEAR
EERE 0, 1. 1 bit
0. ( ( bit
!!WE) .
AT90S2313
. '
" 5-20 5-21.
" , (UDR)
Shift Register
byte ,
Start Bit, bit. 1 Shift
157
. / &
1 UART Receiver,
PD0/RXD # . 1 Start bit
, bits Shift Register
Stop bit. ' UDR
bit RX Complete USR 1, byte
.) # byte $
byte UDR
158
. / &
159
. / &
( 5-3. UBBR
5.13 *
) " )680
(/.0) )681 (/.1). )
)681, 1
Input Compare / T/C1, .+
$ 0 1, 1
0 $ .' "
" 5-23.
160
. / &
161
. / &
5.14 ,+ + +
1 ,
, Reset
/ (general purpose I/O). )
1 0
" 5-26. . D
AT90S2313 2 ,
. 8 (/.0-/.7) D 7 (PD0-PD6). 0
162
. / &
2 ,
(Data Direction Register: DDRB, DDRD) (PORTB
PORTD) .) ,
bit PORTB PORTD
.% 1 bit DDRB DDRD
0 .
+ /.2 /.4
/ " 5-27.
#
(UART, ) " , 2 /& , !
* SPI – bus )
163
. / &
.' byte
BS=0. 0 , Low Byte ( 2)0=1, 2)1=0,
BS=0) data bus AT90S2313
XTAL1. : byte
WR. ' RDY/BSY
165
. / &
+ EEPROM
byte (BS=0). 0
flash EEPROM $
, ( byte EEPROM
Flash). " Flash low byte data bus
!, BS 1 ! $
high byte. " EEPROM byte $
!.
Flash EEPROM
166
. / &
1. ; 2)0=0, 2)1=1
2. BS=0
3. Data=1000 0000 (chip erase)
4. ; XTAL1
5. ) WR ( RDY/BSY)
5.16 "
' SPI bus
167
. / &
" ( 5-4, .
0 4 bytes. 0
AT90S2313 (
MOSI ) (MISO). +
byte $ $ $
.! , byte MOSI
« » MISO byte.
+ Programming Enable
4 bytes. %
Programming Enable byte MOSI,
MISO .)
byte, Master
SCK,
$ $
$ $ (acknowledge) .
( 5-4.
168
. / &
% EEPROM $
.)
, (auto-erase)
( bits
1). & byte EEPROM,
0x80 auto-
erase. " 0x7f, EEPROM
.
& Flash,
0x7f ."
,
.
.!
CISC (Complex Instruction Set Computers).
" CISC,
RISC
Accumulator .
.! ,
RISC , 2 bytes. CISC
bytes 4 , RISC
bytes
. 3 RISC
$
.
CISC
.
5.18 # AT90S2313
169
. / &
170
. / &
171
. / &
172
. / &
173
. / &
$
.' $ ATmega169
" 5-33.
64 $ TQFP (Thin
Quad Flat Package) 16x16 mm MLF (Micro
Lead Frame Package) 9x9 mm. ' $
AT90S2313 :
174
. / &
175
. / &
bits (shift)
.! $ Test Data In
(TDI), Test Data Out (TDO), Test Clock (TCK). '
JTAG interface
bit bit TDI. ' bit
bit
. 0
.
'
JTAG interface Test Access Point Controller (TAP). "
5-35 .
176
. / &
5.19.2 LCD
' ATmega169
(LCD) # 25 segments. '
# . 0 #
(segment, com)
(" 5-36). ( segments com
. " com0, com1, com2, com3
# . 1
# « $ ». %
, (segment, com) DC
177
. / &
. %
.
178
. / &
179
. / &
5.19.3
ATmega169
# . &
ADC1. + 10-bits.
' AVCC. !
1.1V. "
$ AVCC/210 1.1/210
Volts. 13usec-260usec. &
180
. / &
ADCSRA ,
, . '
16-bit ADCH/ADCL.
181