11.EEPROM

11.1 특징 및 기능

ATmega128은 Byte 단위로 읽고 쓰기가 가능한 4Kbyte의 비 휘발성인 EEPROM 메모리를 내부에 가지고 있습니다. EEPROM은 100,000번까지 쓰고 지울 수 있습니다. 바로 어드레스 단위의 읽고 쓰기를 하지 못하고 관련 레지스터를 이용해 사용 가능합니다.

 

EEPROM 쓰기 동작의 순서는 다음과 같다.

기존에 쓰기 동작이 완료 될 때까지 대기 ( EEWE = 0 이면 완료)

SPMCSR 레지스터의 SPMEN 이 0일 때까지 대기

EEAR 레지스터에 어드레스 기입

EEDR 레지스터에 데이터 기입

EECR 레지스터에 EEMWE = 1, EEWE =0 으로 설정

4사이클 이내에 EEWE = 1로 설정

 

EEPROM 읽기 동작의 순서는 다음과 같다.

기존에 쓰기 동작이 완료 될 때까지 대기 ( EEWE = 0 이면 완료)

EEAR에 읽을 번지 기입

EECR 레지스터에 EERE = 1로 설정

EEDR 에서 DATA 입력

 

1) 레지스터

- EEAR ((EEPROM Address Register High, Low)

읽고 쓰고자 하는 어드레스를 선택 합니다.

- EEDR(EEPROM Data Register)

쓰고자 하는 DATA 또는 읽어진 DATA 값을 가집니다.

- EECR (EEPROM Control Register)

Bit 3, EERIE : 1 을 쓰면 EEPROM Ready Interrupt 가 가능해집니다.

Bit 2, EEMWE : 비트가 1 이 되고 4 클럭 사이클 안에 EEWE 가 1로 셋되면 선택된 주소에 데이터 쓰기가 됩니다. 하드웨어적으로 4 클럭 사이클 후에 0으로 클리어 됩니다.

Bit 1,EEWE : EEPROM 쓰기 가능 비트입니다. 다음 바이트를 쓰기 전에 EEWE 비트가 0 이 되기를 기다려야 합니다.

Bit 0, EERE : EEPROM 읽기 가능 비트입니다.EERE 비트가 1 이 되면 EEAR 레지스터가 가리키는 주소의 데이터를 EEDR 레지스테에 읽어 들입니다.EEPROM 쓰기 동작이 실행중 이면 EEPROM 읽기 동작과 EEAR 레지스터의 내용을 변경하는 것이 불가능합니다. 그러므로 EEWE 비트가 1 인가 0 인가 체크해서 0 이면 읽기 동작을 하여야 합니다.

 

 

'공부 > AVR' 카테고리의 다른 글

Atmel 신규(?) 디버거 Jtagice3  (0) 2013.04.24
[ATMEGA128] 10. ADC  (0) 2012.11.09
[ATMEGA128] 9. TWI (I2C)  (0) 2012.11.09
[ATMEGA128] 8.SPI  (0) 2012.11.09
[ATMEGA128] 7.USART  (0) 2012.11.09

+ Recent posts