Thinking Different




EEPROM (Electrically Erasable Programmable Read-Only Memory) 이하 비휘발성 메모리(NVM)라고 한다.

 

전기가 꺼져도 데이터를 저장하고 있으며 다음에 다시 전기가 들어오면 읽고 와서 사용할 수 있다. 

 

컴퓨터로 따진다면 하드디스크 또는 SSD 저장장치, 플로피 디스켓 정도로 이해하면 되나, 해당 소자는 IC 칩을 사용하므로 외형은 조금 다르다.

 

데이터 읽기 쓰기는 전기적 신호로 읽고 쓰기를 진행하며 한번에 1byte 씩만 지우고 쓰고 할 수 있으므로 플래쉬 메모리에 비해 속도가 느리다.

 

약 10만번 정도 읽고 쓸 수 있는 횟수가 제한적으로 정해져있다. 그래서 보통 아두이노에 사용되는 EEPROM의 경우 외부 EEPROM을 따로 판매하며 가격도 약 3천원 내외로 저렴한 편이다.

외부 EEPROM 256 Kbyte 3천원 정도한다

 

 

보통 기본적으로 많이 사용하는 아두이노 UNO 보드의 경우 EEPROM 이 512byte 내장되어 있으며, 비싼 Mega 보드의 경우 4Kbyte 가 내장되어 있다.

 

용량이 문제라면 위 외장 보드 3천원 짜리가 256 KByte 하므로 추가로 달아서 사용하는걸 가장 추천한다.

 

 

 

EEPROM 기본 읽기 쓰기

 

여기서는 가장 많이 사용하는 아두이노 UNO 보드를 사용하여 EEPROM을 다루는 것을 알아보도록 하겠습니다.

 

생각보다 사용법은 간단합니다.

 

#include <EEPROM.h>

 

idx 는 주소값, val 은 저장할 데이터 입니다.

EEPROM.write(int idx, uint8_t val);
데이터를 ROM에 저장할때 사용한다.
 
EEPROM.update(int idx, uint8_t val);
데이터가 기존에 저장된 데이터와 비교해서 다르면 저장한다.
 
byte value = EEPROM.read(int idx);
저장된 데이터를 읽어온다.
 
 
 
 
아래 시리얼 모니터를 통해서 출력된 데이터가 정상적으로 저장하고 불러오고 하는 것을 확인 할 수 있습니다.

 

EEPROM을 사용하여 내가 만든 시스템의 설정 값들을 저장하고 불러오고 하는데 사용할 수 있을 것입니다.

 

 

 

 

EEPROM 4Byte 읽기 쓰기

 

다음은 4바이트 값을 저장하는 것을 알아 보도록 하겠습니다. 아두이노는 기본적으로 1byte씩 저장하고 읽어오도록 되어 있습니다. 하지만 비트쉬프트를 사용해서 4바이트 혹은 8바이트 등까지 저장하고 읽어올 수 있습니다.

 

 

소스코드 입니다.

4byte_EEPROM.zip
0.00MB