본문 바로가기

모바일지식/SD

SD 카드 개요

1. SD 카드 개요

 

 SD 카드는 대용량 저장장치로 휴대용 기기에 널리 사용되고 있습니다. MMC와도 대응하고 있으며 약간의 고려사항을 맞추면 상호 호환가능합니다. SD 카드는 다른 플래시 메모리 컨트롤러와 달리 SPI 모드를 사용할 수 있어서 일반 SPI 모듈을 사용하는 MCU라면 큰 어려움 없이 접속하여 사용할 수 있습니다.

 

2. SD 카드 특징

 

아래는 SD 카드의 특징입니다.

 

Targeted for portable and stationary applications
• Memory capacity:
   Standard Capacity SD Memory Card: Up to and including 2 GB
   High Capacity SD Memory Card: More than 2GB (This version of specification limits capacity up to and including 32GB)
• Voltage range:
   High Voltage SD Memory Card – Operating voltage range: 2.7-3.6 V
   Dual Voltage SD Memory Card – Operating voltage range: Low Voltage Range (T.B.D) and 2.7-3.6 V
• Designed for read-only and read/write cards.
• Default mode: Variable clock rate 0 - 25 MHz, up to 12.5 MB/sec interface speed (using 4 parallel data lines)
• High-Speed mode: Variable clock rate 0 - 50 MHz, up to 25 MB/sec interface speed (using 4 parallel data lines)
• Switch function command supports High-Speed, eCommerce, and future functions
• Correction of memory field errors
• Card removal during read operation will never harm the content
• Content Protection Mechanism - Complies with highest security of SDMI standard.
• Password Protection of cards (CMD42 - LOCK_UNLOCK)
• Write Protect feature using mechanical switch
• Built-in write protection features (permanent and temporary)
• Card Detection (Insertion/Removal)
• Application specific commands
• Comfortable erase mechanism

 

 여러가지 특징이 많은 가운데 이중 참고할 만한 부분은 먼저 Standard Capacity SD Memory Card의 용량은 최대 2GB 이고 High Capacity SD Memory Card(HCSD)는 2GB 이상의 용량을 가지고 있다는 것입니다. 두 규격은 구조적으로 차이가 있기 때문에 많이 알려지고 쉽게 제어할 수 있는 즉, 우리가 사용할 규격은 일반적은 노멀 SD 카드이고 HCSD 카드는 제어나 기타 사용의 어려움으로 인해 현재 게시물에선 고려 대상이 아닙니다. 그러니 반드시 2GB 이하의 SD 카드를 사용해주시길 바랍니다.

 

스펙 문서 : Hosts-Cards Usability

 

그리고 그외의 참고할만한 특징을 본다면 약 2.7-3.6V의 동작 전압을 갖고 있다는 것과 동작 속도 관련하여 참고해주시면 되겠습니다. 더욱더 자세한 사항은 페이지 제일 밑부분의 카드 스펙을 참고하시면 되겠습니다.

 

3. SD카드의 핀 맵

 

 다음은 핀 맵입니다.

 

 

사진 출처(出處) http://elm-chan.org/docs/mmc/mmc_e.html

 

 위 SDC(SD 카드)를 보시면 SPI 통신에 관련하여 익숙한 CS, DO, DI, CLK 핀등을 확인할 수 있으며.. 이 핀을 활용하여 SD 카드를 제어할 수 있게 됩니다. 그러나 일반적으로 SD 카드는 SD 모드와 SPI 모드 중 SD 모드(전용 4핀 패러럴 모드)를 기본으로 하고 있기 때문에 SPI 모드로 사용하기 위한 초기화 절차를 거치지 않으면 SPI 모드로 사용할 수 없습니다.

 

4. SPI 모드 커맨드

 

 SPI 설정에 관련하여 자주 사용되는 커맨드 일람부터 확인 하시겠습니다.

 

커맨드 인덱스

인자

응답

데이터 전송

생략형

설 명

CMD0

None(0)

R1

No

GO_IDLE_STATE

SD 모드에서 SPI 모드 변경 시 사용

CMD1

None(0)

R1

No

SEND_OP_COND

초기화 개시

ACMD41(*1)

*2

R1

No

APP_SEND_OP_COND

SDC 전용. 초기화 시작

CMD8

*3

R7

No

SEND_IF_COND

SDC V2 전용. 동작 전압 확인

CMD9

None(0)

R1

Yes

SEND_CSD

CSD 레지스터 읽기

CMD10

None(0)

R1

Yes

SEND_CID

CID 레지스터 읽기

CMD12

None(0)

R1b

No

STOP_TRANSMISSION

데이터 읽기 강제로 정지

CMD16

Blocklength[31:0]

R1

No

SET_BLOCKLEN

읽기 쓰기 블록 사이즈 변경

CMD17

Address[31:0]

R1

Yes

READ_SINGLE_BLOCK

싱글 블록 읽기

CMD18

Address[31:0]

R1

Yes

READ_MULTIPLE_BLOCK

멀티 블록 읽기

CMD23

Number ofblocks[15:0]

R1

No

SET_BLOCK_COUNT

MMC 전용. 멀티 블록 읽기/쓰기. 커맨드로 전송 블록 수 설정

ACMD23(*1)

Number ofblocks[22:0]

R1

No

SET_WR_BLOCK_ERASE_COUNT

SDC 전용. 멀티 블록 쓰기 커맨드, 이전에 지울 블록 수 설정

CMD24

Address[31:0]

R1

Yes

WRITE_BLOCK

싱글 블록 쓰기

CMD25

Address[31:0]

R1

Yes

WRITE_MULTIPLE_BLOCK

멀티 블록 쓰기

CMD55(*1)

None(0)

R1

No

APP_CMD

어플리케이션 특화 커맨드

CMD58

None(0)

R3

No

READ_OCR

OCR 읽기

 

 * 1 : ACMD<n>는 CMD55-CMD<n>의 커맨드 순서를 의미한다.

 * 2 : 예약(0)[31], HCS[30], 예약(0)[29:0]

 * 3 : 예약(0)[31:12], Supply Voltage(1)[11:8], Check Pattern(0xAA)[7:0]

 

 출처(出處) - http://elm-chan.org/docs/mmc/mmc_e.html + SD 카드 스펙

 

월간전자 2007. 7월호 - 대용량 메모리 (전)

 

 커맨드나 기타 정리할 것이 상당히 많아서 상대적으로 정리가 잘 된 ChaN씨의 게시물을 많이 따오게 되는군요.. 일단 위의 두개의 표는 겹치지만.. 참고하시라고 두개 모두 올렸으며, 위에 제시된 커맨드는 자주 사용되는 것으로 한번쯤 봐두시는 것이 좋습니다. 차후 SD 카드 드라이버 작성 시 알아둘 부분이고 임의로 SD 카드를 제어하기 위해선 필수 커맨드에 해당합니다. 그 외의 더 많은 명령어는 SD 카드 스펙을 참고하시면 됩니다. 

'모바일지식 > SD' 카테고리의 다른 글

SD(Secure Digital) 카드  (0) 2011.08.15
SD카드에 대한 기본 지식  (0) 2011.08.15
갤럭시S II 분해  (0) 2011.08.15
SD카드 분해한 사진  (1) 2011.08.15
microSD to SD 어댑터 분해  (0) 2011.08.15