2009年8月2日 星期日

Dual MMC/SDIO support on Beagle board.

My recent work is to add 2nd MMC/SD support for Beagle board.
The reason is simple, the 1st MMC/SD slot could be used as bootable device, the 2nd one could be the WLAN card interface (SDIO).

To achieve this, you need to tinker your beagle board like the following.

1. Attach the jumper on the location of J3(see schematic).
2. Make a home brew cable to wire up the SDIO interface.

The WLAN module shown on the below picture is GH600 from Azurewave.
Its corresponding GPL-ed driver is available.

http://android.git.kernel.org/?p=platform/system/wlan/broadcom.git;a=summary



In the host side, couple patches could make this work.

http://gitorious.org/0xlab-kernel

Enabling the 2nd MMC/SDIO slot has two approaches. The first one is to wire up the MMC2 slot directly. But the operating voltage of these ports are based on 1v8. Fortunately, the SDIO of this module could be signaling as low as 1v8. In this case,
wiring up to the module directly is much simple.

If the operating voltage of your WLAN module is around 2v6~3v3, transceiver is you plan B. Either designing a level shift circuit or using available voltage level translator could fulfill this requirement. I would suggest using level shift IC such as TXS0108E. TXS0108E is a level shift IC, whcih is designed for the expansion of MMC/SD/SDIO interface particularly.

2 則留言:

  1. 哈,我今年初也要做類似的工作勒,只是我是用 Marvell 8686的正文module,然後Voltage Translation我是用 SN74AVCA406E 這顆,看起來就是TI for v1.8的sdio準備的,但最後結果是失敗,使用示波器看host是有送出正確的sdio Command,但sdio card 就是不回訊號,我也不知道為什麼,sdio Card如果直接插在 Beagle Board的mmc slot 是可以work的,你一接上去就順利可以抓到另一張卡片了嗎?

    回覆刪除
  2. Hi Motovb,

    SN74AVCA406E seems to be fine for level shifting. If I were you, I would try the regular MMC/SD card via your level shift circuit to see this translation logic could work or not.
    Welcome to send mail to 0xlab-devel to discuss if you have further questions.

    0xlab-devel@googlegroups.com

    回覆刪除