NAND FLASH관련자료 본문

임베디드

NAND FLASH관련자료

keydisk 2009. 1. 3. 17:45

NAND 플래시에서 사용되는 용어
페이지 : 최소단위의 영역이며 512바이트 이다.
블 럭 : 32페이지의 집합이다. 즉 16Kbyte이다.

플래시는 지운후에 쓸수 있는 구조이다. NAND 플래시에서의 지우기 영역의 크기는 블럭의 크기이다.


NAND 플래시 핀설명
I/O0 ~ I/O7 : 데이타 버스이다.
CLE : High 가 되면 현재 버스의 데이타는 명령어 임을 나타낸다.
ALE : High 가 되면 현재 버스의 데이타는 주소 임을 나타낸다.
nCE : 칩 셀렉터 이다. nRE : 버스 읽기 신호이다.
nWE : 버스 쓰기 신호이다.
nWP : Low 가 되면 쓰기나 지우기가 되지 않는다. 풀업이나 풀다운으로 연결한다.
R/nB : Low 가 되면 현재 작업중임을 알리는 것이다. 풀업으로 사용한다.

페이지는 세개의 영역으로 나뉘어 있다. A,B,C Area 라고 하며 A와 B는 256 바이트 이고 C는 16바이트이다.
C 영역은 여분의 영역으로 ECC등을 값을 저장하기도 하며 그외의 기타기능도 있다.
A-Area 는 0x000 부터 0x0FF 가지 256바이트 이고 B-Area 는 0x100 부터 0x1FF 가지 256바이트 이다.
페이지는 512바이트 이므로 A0~A8가지 필요하다. 하지만 할당된 것은 A0~A7까지이다.
결론 부터 말하자면 A8은 읽기 명령으로 선택할수 있다.
위에서 읽기 위한 명령은 0x00 으로 사용하였다. 이것은 "A8 = 0 으로 설졍하고 읽기"로 풀어쓸수 있다.
0x01 명령으로 읽기를 하면 A8 = 1 로 설정된 상태에서 읽기로 된다. 즉 B-Area를 읽는 것이다.


배드 블럭
NAND 플래시의 단점중 하나는 블럭이 배드블럭이 있을수 있다는 것이다 90년도 당시 최대 20개의 배드블럭이 있을 수 있다라고 삼성측에서 말했고 실제로 4~17 정도의 배드블럭이 있었다. 이 배드블럭은 사용중 발생하지 않으며 (절대 발생하지 않는다고 나와있다.) 생산시에 20개 이상의 배드블럭이 있는 것은 출하되지 않는다.
요즘 사용해보면 배드블럭이 안나오는 것 같다. ^^ 어찌됬건 사용하기 전에 배드블럭이 있는지 알아바야 한다.
배드블럭을 읽거나 써도 전혀 무리가 없지만 읽어바야 모두 0x00으로 나온다. 간혹 0x00으로 되있지 않고 정상처럼 나올수도 있다.
정확한 확인은 각블럭의 첫번째 페이지 C-Area의 6번째 바이트를 읽어 이 값이 0xFF가 아니면 배드블럭이다.
배드블럭은 절대로 지우지 말아야 한다. C-Area 도 같이 지워져 정보가 소실되기 때문이다.