Memory Device를 Control 한다는 것
위의 그림은 RAM의 모양새에요. 기본적으로 Address Line 24개와 이 있고요, Data Line 16개가 있고요, Chip Select (CS/)가 있고요, OE (Output enable)이 있습니다. 그렇다 치고요. Data Line은 16개가 있으니 한번에 16bit, 2 byte를 읽을 수 있는 Memory이구요, Address는 24개가 있으니 2^24개 만큼의 Address를 구별해서 input으로 넣을 수 있어요. 그리고 CS는 RAM이 동작하게 하기 위한 Switch이고요, OE/은 output enable pin이라고 해서 Memory 입장에서는 Output을 하게 되면 MCU입장에서는 읽어가는 거구요, Output을 안 하면 MCU 입장에서는 쓸 수 (Write) 있다는 걸 의미합니다.
다시 이 RAM의 동작을 정리하면, 16bit Data로, 2^24개 만큼의 크기를 갖는다고도 볼 수 있겠네요.
2^25개 만큼의 크기는 16진수로는 0x800000 만큼의 크기이고요, (16MB). 한 주소가 2byte씩 이니까, 최종 16MB까지 저장 가능한 메모리라고 보면 되겠습니다요.
이걸 Device와 똑같은 원리로 읽기 동작상황을 접근해 보면요,
① 야~ 내가 너 쓸꺼야~ Switch를 켜고~
② Read를 해볼까?
② 주소는 말이지 0x2번지야 Address line에 약속된 전압이 없고 없고...없고.. 마지막에 ...하나 있고를 전달해 주고
③ 그럼 뭐가 들어 있었는지 Data line에 있겠지? 이거 가져갈께.
④ 야~ 고맙다, 잠시 쉬어~
라는 스토리인데 이걸 좀더 유식한 형태로 만들면 다음과 같아요.
① CE/ 를 Low로 만든다.
② OE을 High로 만든다. 실은 메모리는 Default로 Read Mode니까 OE는 High Default라고 봐야 합니다.
③ Address Line에 읽기 원하는 주소를 binary 형태로 흘려준다
④ Data Line에 뜬 16bit Data를 읽어 간다
⑤ CE 또는 CS를 HIGH로 만든다.
반대로, 쓰기 (Write) 상황이 되면 뭐가 달라질까요? OE의 control이 달라집니다. OE는 High일때 읽기 가능이니까, Low로 떨어트리면 Write하겠다는 의미로 받아들여지는 게 통상적이에요. Write와 Read용 pin이 따로 나와 있는 경우도 있습니다만, 뭐, 굳이 두 개까지 쓸 필요는 없으니까요. 보통 OE이 MCU에 연결 될때 MCU측에서는 WE/ (Write Enable/)로 표현되어 있는 게 상식이죠. ㅋ
① 야~ 내가 너 쓸꺼야~ Switch를 켜고~
② Write 를 해볼까?
② 주소는 말이지 0x2번지야 Address line에 약속된 전압이 없고 없고...없고.. 마지막에 ...하나 있고를 전달해 주고
③ 자 Data line에 저장할 내용을 올려줄께. 이거 가져가
④ 야~ 고맙다, 잠시 쉬어~
오 비슷하죠? 또 한번 유식하게~
① CE/ 를 Low로 만든다.
② OE을 Low로 만든다.
③ Address Line에 읽기 원하는 주소를 binary 형태로 흘려준다
④ Data Line에 뜬 16bit Data를 읽어 간다
⑤ CE 또는 CS를 HIGH로 만든다.
어떻습니까, 이렇게 접근하니까 간단하죠.

'Digital' 카테고리의 다른 글
d (0) | 2014.12.04 |
---|---|
Fan-out이란? (1) | 2014.10.12 |
arithmetic comparator (0) | 2014.10.09 |