. - . JMP . , , . , , .
- AVR- , . - .
, . . CKSEL.
2.2 .
. ATmega128 :
. , (VPOT).
. , RESET , .
. , .
. , VCC (VBOT) BOD.
JTAG. , 1 JTAG-.
2.2.
. | . | . | . | ||
VPOT | (B) | 1.4 | 2.3 | ||
(B) | 1.3 | 2.3 | |||
VRST | RESET (B) | 0.2 Vcc | 0.85 Vcc | ||
tRST | RESET () | ||||
VBOT | BOD (B) | BODLEVEL=1 | 2.4 | 2.6 | 2.9 |
BODLEVEL=0 | 3.7 | 4.0 | 4.5 | ||
tBOD | () | BODLEVEL=1 | |||
BODLEVEL=0 | |||||
VHYST | () |
:
|
|
1. , VPOT.
2. VBOT . VCC = VBOT. , , . ATmega128L BODLEVEL=1, ATmega128 BODLEVEL=0. BODLEVEL=1 ATmega128.
. (POR) . 2.2. POR , VCC . POR , .
(POR) , . , .
. , RESET . tRST (. . 2.2), , . tRST . RESET VRST , tTOUT.
. ATmega128 (BOD), VCC . BOD BODLEVEL. 2.7, BODLEVEL , 4.0, BODLEVEL . BOD . : VBOT+ = VBOT + VHYST/2 VBOT- = VBOT - VHYST/2.
BOD BODEN. BOD (BODEN ) VCC , BOD . VCC , tTOUT.
BOD VCC, , tBOD (. 2.2).
(1 CK). tTOUT.
MCUCSR. , .
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
JTD | - | - | JTRF | WDRF | BORF | EXTRF | PORF | |
R/W | R/W | R | R | R/W | R/W | R/W | R/W | R/W |
. |
|
|
, ATmega103 EXTRF PORF.
4 JTRF. JTAG-. , 1 JTAG Reset JTAG- AVR_RESET. 0 .
3 WDRF. . . 0 .
2 BORF. . , . 0 .
1 EXTRF. . . 0 .
0 PORF. . , . 0 .
, MCUCSR . , .
. ATmega128 (). . 2.56 .
. , , . . :
1. BOD ( BODEN).
2. ( ACBG ACSR).
3. .
, BOD ACBG , . (Power-down) , .
. 1 . VCC = 5. . WDR . . . WDR , ATmega128 .
3 , M103C WDTON (. 2.3). 0 ATmega103. - .
2.3. M103C WDTON
|
|
M103C | WDTON | ||||
. | |||||
. | |||||
. | |||||
. |
WDTCR
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
- | - | - | WDCE | WDE | WDP2 | WDP1 | WDP0 | |
W/R | R | R | R | W/R | W/R | W/R | W/R | W/R |
7..5. . 0.
4 WDCE. . 0 WDE. . 1 . 1 2 .
3 WDE. . () () WDE. WDE , WDCE. :
1. 1 WDCE WDE . 1 WDE, 1.
2. 0 WDE, .
2- .
2..0 WDP2, WDP1, WDP0. . WDP2, WDP1 WDP0 . . 2.4.
2.4.
WDP2 | WDP1 | WDP0 | VCC = 3.0 | VCC = 5.0 | |
16K (16,384) | 17.1 | 16.3 | |||
32K (32,768) | 34.3 | 32.5 | |||
64K (65,536) | 68.5 | 65 | |||
128K (131,072) | 0.14 | 0.13 | |||
256K (262,144) | 0.27 | 0.26 | |||
512K (524,288) | 0.55 | 0.52 | |||
1,024K (1,048,576) | 1.1 | 1.0 | |||
2,048K (2,097,152) | 2.2 | 2.1 |
. , , (, cli).
WDT_off:; 1 WDCE WDE ( ; ; , )ldi r16, (1<<WDCE)|(1<<WDE)out WDTCR, r16; ldi r16, (0<<WDE)out WDTCR, r16ret
|
|
. . .
0.
ATmega103. , 1 WDE - . . , WDE.
1.
. 1 WDE - . . :
1. 1 WDCE WDE. 1 WDE WDE.
2. 4- WDE WDP, WDCE.
2.
WDE 1. . , :
1. WDCE WDE . , WDE , 1.
2. 4- WDP WDCE. WDE .
1. ATmega128.
2. .
3. ATmega128 . .
4. ATmega128.
5. ATmega128. ?
6. ?
7. MCUCSR. . .
8. ().
9. , .
10. WRTCR . WRTCR.
2.3. [2]
, AVR 8- RISC , , , , / . AVR , , . . , ; 16 . AVR , - . , MCS51 12 (1 ), . PIC- Microchip, , 8 (2 ). , , ( ). 4 . AVR , , PIC- . , AVR .
|
|
. AVR-. -:
8- 8- .
8- 8- .
8- 16- .
16- 16- .
. 2.2 . 32 8- , ALU. , , .
. (SBCI, SUBI, CPI ANDI), ORI , LDI. - R16..R31.
SBC, SUB, CP, AND OR .
, 32 . SRAM, , X,Y Z .
32 16- , . , . 16- X-, Y- Z- (. 2.3.).
7 0 | 7 0 | |
X- | R27($1B) | R26($1B) |
XH | XL | |
Y- | R29($1D) | R28($1C) |
YH | YL | |
Z- | R31($1F) | R30($1E) |
ZH | ZL |
. 2.3. X, Y Z-
,
SREG . . . , , . , .
, . .
SREG. - SREG - I/O $3F ($5F) :
7 I. . 1. GIMSK TIMSK. ( 0), , GIMSK TIMSK, . I RETI. I CLI SEI, .
6 T. . BLD ( LoaD) BST ( STore) T . BST T, BLD T .
5 H. . . , - . .
4 S. S = N V . S , (exclusive OR) N V.
3 V. . V . .
2 N. . N , . .
1 Z. . Z , . .
0 C. . C .
- Stack Pointer SP. AVR 16- , I/O $3E ($5E) $3D ($5D). ATmega128, ATmega603/103 SRAM 64 , 16 .
SRAM , . SRAM . , PUSH , CALL .
, POP, (RET) (RETI).
(PC) . SRAM , , SRAM . (, ) (SP). 16- / I/O.
I/O . , . , .
. . . , , . /, . /.
:
/;
/ ;
EEPROM;
, .
, . , , . . , , - .
-. ( ), .
, , . . , .
, ATmega128.
. INT7:0. , , INT7:0 . . , . EICRA (INT3:0) EICRB (INT7:4). , . , INT7:4 -, ". INT3:0 . , . - (Idle).
, (Power-down), . . , 1 ( ) 5.0 25C. . , ( ). SUT. , , , . , .
EICRA
ICS31 | ICS30 | ICS21 | ICS20 | ICS11 | ICS10 | ICS01 | ICS00 | |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
ATmega103, INT3:0, ATmega103.
3..0 ISC31, ISC30, ISC00, ISC00. 3 - 0
3 - 0 INT3:0, I SREG EIMSK. 2.5. INT3..INT0 . INT3:0 , . . , , . , . ISCn . , INTn EIMSK. , ISCn . , , INTn 1 (INTFn) EIFR.
2.5.
ISCn1 | ISCn0 | |
INTn | ||
INTn | ||
INTn | ||
INTn |
. n = 3, 2, 1 0.
ISCn1/ISCn0 EIMSK. .
B EICRB
ICS71 | ICS70 | ICS61 | ICS60 | ICS51 | ICS50 | ICS41 | ICS40 | |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
7,...,4 ISCn1, ISCn0 ( n=7-4). 7 - 4
7 - 4 INT7:4, I SREG EIMSK. , , 2.5. INT7:4 . , , , . . , XTAL, XTAL. , , . , , .
EIMSK
INT7 | INT6 | INT5 | INT4 | INT3 | INT2 | INT1 | INT0 | |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
7..0 INT7 INT0. 7 - 0. INT7 INT0 I SREG 1, . EICRA EICRB : , . , . .
EIFR
INTF7 | INTF6 | INTF5 | INTF4 | INTF3 | INTF2 | INTF1 | INTF0 | |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
7..0 INTF7 - INTF0. 7 0. INT7:0 , INTF7:0 . I SREG INT7:0 EIMSK, . . 1 . INT7:0 , . , INT3:0 . , INTF3:0.