SDIO
본문 바로가기
Embedded/Device Driver

SDIO

by bsp-martin 2021. 12. 17.

SDIO(Secure Digital Input/Output)

 

SDIO is used when you use on board WiFi.


WiFi USB동글을 사용하게되면 USB 2.0 스펙에 맞는 dp dn 핀과 gnd vcc 을 사용하게된다.
Embeded 에서는 sdio를 통한 WiFi도 사용한다.
그이유는 동글로 나오는 모듈보다 회로PCB 의 공간상 이점이 있기 때문이다.
USB 모듈은 크기를 줄이기 어렵지만 sdio를 사용하게되면 필요한칩만 마운트시키면 되기때문에 그렇다.
그럼 sdio를 사용하는게 이점만있는냐?
그건 아니다.
sdio는 데이터핀, 클락, 그리고 커멘드핀이 존재한다.
고사양 WiFi 433mbps 를 지원하려면 sdio 3.0스펙에 준하는 최고속도 UHS-I 이동작하는 다이나믹 볼티지 스위칭이 준비되어야한다.

 

 

SDIO Pin Map

SD 와 마찬가지며 아래의 SDIO 를 위한 IO 핀과 CLK 그리고 CMD 핀이 필요하다.

SDIO PinMap like SD pins

 

 

AP on board WIFI 는 보통 SDIO 0/1번 이 제공될때 1번으로 제공되는 경우가 많다.

(0번은 보통 SD로 사용하고 1번은 on Board WiFi)

출처: SD Association SDIO Simplified 3.0 문서

 

SD 와 SDIO 의 CMD 차이는 분명하다.

SD Association 의 다음링크를 참조하자. (refer below SD Association Link)

참조: https://www.sdcard.org/downloads/pls/

 

Simplified Specifications | SD Association

Notice of SD Simplified Specifications The following conditions apply to the release of any and all parts of the simplified specifications (“Simplified Specifications”) by the SD Card Association and the SD Group. The Simplified Specifications are a su

www.sdcard.org

 

BM은 SD Host Controller Simplified Specification 과

SDIO Simplified Specification 을 주로 참조한다.

 

이번주제는 SDIO 임으로 SDIO 항목을 주로보면

CMD52 와 CMD53 에 주목해야한다. (Focus on CMD52 & CMD53 when you deal with SDIO WiFi)

 

CMD52

IO_RW_DIRECT Command 에 대한 설명이 주를 이루고 그아래 Command 에 대한 프로토콜이 나온다.

Protocol 이며 주 내용은 아래를 보자.

 

CMD53

 

Host Side CMD 에 대해서는 S/D/ CRC/E 그리고 로그로 나오는 Byte Count 등을 유추해서 해당 CMD 를 추적이 가능하다. 대부분 AP 에서는 Debug MMC 기능이 있기 때문에 디버거를 활성화 시켜서 이런 프로토콜이 제대도 이뤄지는지 확인해볼수있다.

 

아래는 Protocol 에 대한 Description 이다.

BM은 End bit Error 를 경험해 보았다. 결과적으로는 SDIO BSP 가 제대로 이뤄지지 않았었었다.

하나의 sdio 핀에대한 Pin MUX 설정으로인한 문제였고 제대로 하나씩 검토해보지 않으면 허구한시간을 소모하게된다. 언제분명 기본을 충실히 해야함을 다시한번 상기하는 계기가 되었었다.

 

SDIO 에서의 UHS-I 설정이 궁금할수있다.

 

보통 SD 드라이버를 다루는 개발자는 최신 미디어의 저장을위한 더욱 빠른속도의 요구사항에 부합하기위해 UHS-I를 이해하기위해 SD association 에서 참고였을것이다.

 

UHS-I는 1.8v 로 IO switching이 필수조건이다.

이를간과하고 HW설계한다면 수고로운 보충작업으로 HW 엔지니어는 고단할것이다.

 

필자도 SDIO를 보드에 붙여 보았으며 UHS-I 동작하도록 여러시도를해보았다.

그결과는 놀랍게도 아직 SDIO는 SD와 다르게 UHS-I 에서는 Voltage switching 이 필수는 아니었다.

 

왜 그런것이었을까?

아직해답을 찾지는 못했으나 extended sdio 에 답이 있지않을까 생각한다.

 

그 이유는 CMD52, 53중 특히 CMD53은 데이터전송을 위해 불필요한 CMD없이 많은 데이터전송이 가능하다는것은 위의 SD Association 문서 CMD53 일부를 파악해 보면 알아챌 수 있다.

 

혹시 필자보다 더 깊은 진행을하여 SDIO UHS-I 의 voltage switching 이 필수가 아니다에 대해 반박해줄수있는 엔지니어가 있다면 부탁드린다 댓글남겨주시기를

 

이번포스팅을 마칩니다

 

 

반응형

'Embedded > Device Driver' 카테고리의 다른 글

I2C(Inter-Integrated Circuit)  (0) 2021.11.10
SPI  (0) 2021.08.02

댓글