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 |