.


:




:

































 

 

 

 





Flash (SRAM, I/O) AVR Enhanced RISC ATmega128 . , AVR (. 2.4-2.13).

. 2.4-2.13 OP , .

R26R31 - (X, Y Z) .

.

63 , Y Z.

X, Y Z, .

32 , 64 - 4096 ATmega128 .

 

 
 

 

 

 

 


 

-, , , -, . :

- , .. .

- ( ).

- .

- ().

(XMEM) .

ATmega103. (XMCRA XMCRB) -. ATmega103 , , . , .. ATmega103. ATmega103 :

- (SRW1n = 0b00 SRW1n = 0b01).

- .

- .

- .

- RD, WR ALE ( G ATmega128).

.

:

- AD7:0: / .

- A15:8: ( ).

- ALE: .

- RD: .

- WR: .

: MCUCR, XMCRA XMCRB.

 
 

XMEM , XMEM. XMEM . XMEM , A, C G . ALE 1 0 AD7:0 ( ) . ALE . XMEM , ALE, , RD WR . . , XMEM . . 2.14 , AVR- 8- , SNB.

. XRAM - 8 4 4 2.7.

. 74AHC. , , .

. AD7:0 , . .

XMEM AD7:0 . AD7:0 XMEM .

XMEM.

SRE (7 MCUCR). /XMEM. SRE 1 , AD7:0, A15:8, ALE, WR RD . SRE . SRE , .

SRW10. (6 MCUCR). . ATmega103 SRWn XMCRA. ATmega103 SRW10 1 /.

 

XMCRA.

               
- SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 -
R/W R R/W R/W R/W R/W R/W R/W R

7 .

0. 0 .

6..4 SRL2, SRL1, SRL0. .

. , . SRL2, SRL1 SRL0 (. . 2.9). SRL2, SRL1 SRL0 . , SRW11 SRW10.

2.9. SRL2..0.

 

SRL2 SRL1 SRL0
      = = 0x1100 - 0xFFFF
      = 0x1100 - 0x1FFF = 0x2000 - 0xFFFF
      = 0x1100 - 0x3FFF = 0x4000 - 0xFFFF
      = 0x1100 - 0x5FFF = 0x6000 - 0xFFFF
      = 0x1100 - 0x7FFF = 0x8000 - 0xFFFF
      = 0x1100 - 0x9FFF = 0xA000 - 0xFFFF
      = 0x1100 - 0xBFFF = 0xC000 - 0xFFFF
      = 0x1100 - 0xDFFF = 0xE000 - 0xFFFF

 

1 XMCRA -SRW11 6 MCUCR SRW10. .

SRW11 SRW10 .

3..2 SRW01, SRW00. .

SRW01 SRW00 (. . 2.10).

 

2.10. .

SRWn1 SRWn0
   
    /
    /
    /

0

 

XMCRB.

XMBK   - - - - XMM2 XMM1 XMM0
R/W R R R R R/W R/W R/W
               

 

7 XMBK. . XMBK 1 AD7:0. AD7:0 , XMEM . XMBK 0 . XMBK SRE, XMEM , , XMBK=1.

6..3 - . , , . 0 .

2..0 XMM2, XMM1, XMM0. (. 2.11). . 60 , , , -. XMMn 64 .

 

2.11. -

XMM2 XMM1 XMM0
      8 ( 60 )
        PC7
        PC7 - PC6
        PC7 - PC5
        PC7 - PC4
        PC7 - PC3
        PC7 - PC2
     

 

64 . 11 , 4352 ( 0x00000x10FF). , 64 , , 32 0x80000x90FF. 15 , 0x80000x90FF 0x00000x10FF . 0x90FF , .. , () . 32 0x11000x90FF. ATmega103, .

ATmega103 4096 . , 4096 0x80000x8FFF. 32 0x10000x8FFF.

64 . , , 60 ( 0x0000 0x10FF ). , . XMMn . 0x0000 - 0x1FFF, 0x00 -. (. ).

.; OFFSET=0x2000 ; ( ) 0x00,; ; ldi r16, 0xFFout DDRC, r16ldi r16, 0x00out PORTC, r16; PC7:5 ldi r16, (1<<XMM1)|(1<<XMM0)sts XMCRB, r16 ldi r16, 0xaa; 0xAA 0x0001 sts 0x0001+OFFSET, r16; PC7:5 ldi r16, (0<<XMM1)|(0<<XMM0)sts XMCRB, r16; 0x55 (OFFSET + 1) ldi r16, 0x55sts 0x0001+OFFSET, r16

EEPROM

ATmega128 4 EEPROM. , . EEPROM 100000 /.

EEPROM. EEPROM , -.

. EEPROM, . VCC / / . , .

EEPROM . EEPROM.

EEPROM CPU 4 . EEPROM CPU .

EEPROM , -.

EEPROM EEARH EEARL

- - - - EEAR EEAR EEAR EEAR
EEAR EEAR EEAR EEAR EEAR EEAR EEAR EEAR

 

EEAR15..12. 0. .

11,,0 EEAR11,,0. EEPROM.

EEARH EEARL EEPROM 4 . EEPROM 04096. EEAR . EEPROM.

 

 

EEPROM EEDR

EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0
R/W R/W R/W R/W R/W R/W R/W R/W

 

70 EEDR7,..,0. EEPROM. EEPROM EEDR , , EEAR. EEPROM EEDR EEAR.

 

EEPROM EECR

- - - - EERIE EEMWE EEWE EERE
               
R R R R R/W R/W R/W R/W

 

7,,4 ATmega128 0.

3 EERIE. EEPROM. 1 EERIE EEPROM, I SREG. EERIE . EEPROM , EEWE .

2 EEMWE. EEPROM. EEMWE EEWE, EEPROM. EEPROM , EEMWE 1, 4 1 EEWE. EEMWE=0, EEWE . EEMWE .

1 EEWE. EEPROM. EEWE EEPROM. EEPROM EEWE. EEWE EEMWE, EEPROM . EEPROM ( 3 4 ):

1. EEWE .

2. SPMEN SPMCSR.

3. EEPROM EEAR.

4. EEDR EEPROM.

5. 1 EEMWE, EEWE EECR .

6. 1 EEWE EEMWE.

EEPROM - CPU. , EEPROM -. 2 , . - CPU , 2 .

EEWE . ( ). EEWE CPU .

0 EERE. EEPROM. EEPROM EERE EEPROM. EEAR EERE EEPROM. EEPROM , , . EEPROM CPU , .

EEWE . , EEPROM, EEAR. EEPROM .

EEPROM . , , (, ). , , -. EEPROM SPM.

 

//

;

EEPROM_write:

sbic EECR,EEWE

rjmp EEPROM_write

out EEARH, r18

; (r18:r17) EEPROM

out EEARL, r17

; (r16) EEPROM

out EEDR,r16

sbi EECR,EEMWE; 1 EEMWE

; EEPROM EEWE

sbi EECR,EEWE

ret

 

EEPROM. , .

//

;

EEPROM_read:

sbic EECR,EEWE

rjmp EEPROM_read

; (r18:r17) EEAR

out EEARH, r18

out EEARL, r17

; EEPROM EERE

sbi EECR,EERE

; EEPROM

in r16,EEDR

ret;

 

EEPROM (Power Down). (Power Down) sleep EEPROM, . , , , . , (Power-down).

EEPROM. , VCC CPU EEPROM, EEPROM . , EEPROM, .

EEPROM. EEPROM . .

EEPROM , :

( RESET) . , (BOD). , VCC ( ). , .

. ATmega128 6 , (1) (0) (. 1.12), . 2.13. ( 1) (Chip Erase).

2.12.

    - 1 ()
    - 1 ()
BLB12   1 ()
BLB11   1 ()
BLB02   1 ()
BLB01   1 ()
LB2   1 ()
LB1   1 ()

 

. Atmel (fuse ) , , .. , 1- .

 

2.13.

LB LB2 LB1  
      .
      - EEPROM (SPI/JTAG) .
      - EEPROM , SPI/JTAG.
BLB0 BLB02 BLB01  
      SPM (E)LPM .
      SPM .
      SPM , (E)LPM . , .
      (E)LPM . , .
BLB1 BLB12 BLB11  
      SPM (E)LPM .
      SPM .
      SPM , (E)LPM . , .
      (E)LPM . , .

 

 

.

1. SPM-

2. .

 

ATmega128 . . 2.14 2.16 . , , 0.

 

2.14.

- 7-2 -  
M103C   ATmega103 0 ()
WDTON   1()

 

 

2.15.

OCDEN   1(, )
JTAGEN   JTAG- 0(, JTAG )
SPIEN   0(, SPI )
CKOPT   1()
EESAVE   EEPROM 1(, EEPROM)
BOOTSZ1   0()
BOOTSZ0   0()
BOOTRST   1()

 

.

1. SPIEN SPI.

2. CKOPT CKSEL.

3. BOOTSZ1..0 .

4. OCDEN , JTAGEN. OCDEN , sleep. .

 

 

2.16.

BODLEVEL   1()
BODEN   1(, )
SUT1   1()
SUT0   0()
CKSEL3   0()
CKSEL2   0()
CKSEL1   0()
CKSEL0   1()(2)

 

.

1. SUT1..0 .

2. AVR , . CKSEL. , (. 2.17).

3. CKSEL3..0 RC- 1 .

. ATmega128 RC-. 0x000, 0x0001, 0x0002 0x0003 1, 2, 4 8 . OSCCAL 1 . , OSCCAL





:


: 2016-11-02; !; : 958 |


:

:

, , 1:10
==> ...

1630 - | 1553 -


© 2015-2024 lektsii.org - -

: 0.468 .