MMC/SD: Difference between revisions

From ArmadeusWiki
 
(49 intermediate revisions by 7 users not shown)
Line 1: Line 1:
How-To connect an MMC/SD adapter to the APF9328 (through DevLight board)
Hardware details on How-To use MMC/SD/microSD cards on APF boards. For APF9328 DevLight you will learn how to connect an MMC/SD adapter/connector.


For instructions on how to use MMC/SD on Linux, see [[MultiMediaCard]] page.
'''SDCard, MiniSD, and Transflash/MicroSD are all the same devices but in different package shapes and are all pin compatible.''' <br>
On Armadeus boards, MMC are controlled in 1 bit MMC mode and SD/MiniSD/MicroSD in 4 bits SD mode.
We don't use MMC/SD in slow & error prone SPI mode.


== Adapter board ==
{{Note|For instructions on how to use MMC/SD on Linux, see the [[MultiMediaCard]] page. (Here you will only find hardware details)}}
We have designed a small adapter board with an MMC/SD connector on it.
You need to connect the signals listed in the table below to the APF9328DevLight board one.
The WP and CD_SW signals are optional and must be connected to free IOs if used.


Top view:
== Adapter board (for APF9328DevLight 1.0 or your custom board) ==
{|border=1 summary="Signal corresponding."
We have designed a small adapter board with a push-pull MMC/SD connector on it.
|----------------
You need to connect the signals listed in the table below to the corresponding one on your DevLight board.
|'''Adapter Pin''' || '''Desc''' || '''Adapter Pin''' || '''Desc'''
The WP and CD_SW signals are optional and must be connected to free i.MXL GPIOs, if used.
 
[[Image:MMC_Adapt.jpg|thumb|center|Top view, connector on the left]]
 
Signals name (Top view with MMC connector on the right):[[Image:MMC_Adapt_pinout.jpg|thumb|Left|]]
{| border="1" cellpadding="5" cellspacing="0" summary="Signal connections"
|- style="background:#efefef;"
!'''Adapter Pin''' || '''Desc''' || '''Adapter Pin''' || '''Desc'''
|----------------
|----------------
|1 || +3.3V || 2 || SD_DAT2
|1 (square) || +3.3V || 2 || SD_DAT2
|----------------
|----------------
|3 || SD_CMD || 4 || SD_DAT3
|3 || SD_CMD || 4 || SD_DAT3
Line 19: Line 25:
|5 || SD_CLK || 6 || SD_DAT0
|5 || SD_CLK || 6 || SD_DAT0
|----------------
|----------------
|7 || WP || 8 || SD_DAT1
|7 || WP (option) || 8 || SD_DAT1
|----------------
|----------------
|9 || CD_SW || 10 || GND
|9 || CD_SW (option) || 10 || GND
|----------------
|----------------
|}
|}


Remarks:  
Remarks:  
* Pin 1 (rectangular pad)
* Pin 1 (rectangular/square pad)
* WP: write protect
* WP: write protect
* CD_SW: Card Detect switch
* CD_SW: Card Detect switch
'''If you don't want to buy such an adapter or don't have a MMC slot (and are a hacker ;-) ), you can still try this link:'''
* http://www.hackaday.com/2006/09/12/floppy-connector-mmc-card-slot/
== On an APF9328DevFull board, there is already a MMC/SD connector ==
So nothing special to do.
== On APF9328DevLight 2.0, APF27Dev, APF51Dev & APF28Dev boards, there is already a microSD connector ==
So nothing special to do.


== Supported Cards ==
== Supported Cards ==
Here is a list of the current cards which were tested:<br>
Here is a list of the current cards which were tested. Speeds are rounded to the nearest multiple of 5:<br>
===MMC===
===MMC===
* Hama 256Mo -> OK
{| border="1" cellpadding="5" cellspacing="0" summary="MMC"
|- style="background:#efefef;"
!'''Model''' || '''Status''' || '''Speed in kB/sec (read/write) on APF9328''' || '''Comments'''
|----------------
|'''Hama 256 Mbytes''' || style="background:#00ff00;" |working || 895 / 455  ||  Ext2
|----------------
|}


===MMC+===
===MMC+===
* Kingston 256Mo -> OK


===SD:===
{| border="1" cellpadding="5" cellspacing="0" summary="MMC+"
* Kingston 512Mo -> need more perf tests but seems to work
|- style="background:#efefef;"
* Kingston 256Mo -> OK
!'''Model''' || '''Status''' || '''Speed in kB/sec (read/write) on APF9328''' || '''Comments'''
|----------------
|'''Kingston 256 Mbytes''' || style="background:#00ff00;" |working || NA  ||
|----------------
|}


===miniSD:===
===SD===
*


===uSD/Transflash:===
{| border="1" cellpadding="5" cellspacing="0" summary="MMC+"
* Sandisk 512Mo -> recognised but data tranfer is failing
|- style="background:#efefef;"
!'''Model''' || '''Status''' || '''Speed in kB/sec (read/write) on APF9328''' || '''Comments'''
|----------------
|'''Kingston 512 Mbytes''' || style="background:#00ff00;" |working ||  3275 / 155  || Ext2
|----------------
|'''Kingston 256 Mbytes''' || style="background:#00ff00;" |working || NA  ||
|----------------
|'''Dane-Elec 2 Gbytes''' || style="background:#ff0000;" |KO || NA  || OK in 1bit mode. doesn't work : Card recognized but partition table not found in 4bits mode
|----------------
|'''Transcend 2 Gbytes (x150)''' || style="background:#00ff00;" |working || NA  ||
|----------------
|'''Sandisk 512 Mbytes''' || style="background:#00ff00;" |working || NA  || formating failure may happen sometimes. Workaround: retry
|----------------
|'''Panasonic 16 Mbytes''' || style="background:#00ff00;" |working || NA  || Ext2
|----------------
|}


<br>
===MiniSD===
{| border="1" cellpadding="5" cellspacing="0" summary="MiniSDs"
|- style="background:#efefef;"
!'''Model''' || '''Status''' || '''Speed in kB/sec (read/write) on APF9328''' || '''Comments'''
|----------------
|'''Corsair 1Gbytes''' || style="background:#00ff00;" |working || 3330 / 365  ||  VFAT
|----------------
|'''Sandisk 1Gbytes''' || style="background:#00ff00;" |working || 3300 / 295  || Ext2
|----------------
|'''Sandisk 512Mbytes''' || style="background:#00ff00;" |working || 2750 / 215  || VFAT
|----------------
|'''Transcend 512Mbytes''' || style="background:#ff0000;" | not recognized || NA ||
|----------------
|'''Extreme Memory 512Mbytes''' || style="background:#ff0000;" |not recognized || NA ||
|----------------
|'''Dane-Elec 1Gbytes''' || style="background:#ff0000;" |doesn't work || NA || Card recognized but partition table not found
|----------------
|}
 
===microSD/TransFlash===
{| border="1" cellpadding="5" cellspacing="0" summary="microSDs"
|- style="background:#efefef;"
! rowspan="2" | '''Model''' || rowspan="2" | '''Status''' || colspan="4" | '''Speed in kB/sec (read/write)''' || rowspan="2" | '''Comments'''
|----- style="background:#efefef;"
| '''APF9328''' || '''APF27''' || '''APF51''' || '''APF28'''
|----------------
|'''Sandisk 512 MBytes''' || style="background:#00ff00;" | working || 3330 / 320 || NT / NT || NT / NT  || NT / NT || VFAT
|----------------
|'''Dane-Elec 1 GBytes''' || style="background:#00ff00;" | working || 3415 / 130 || NT / NT || NT / NT  || NT / NT || VFAT
|----------------
|'''Sandisk 1 GBytes''' || style="background:#00ff00;" | working || 3355 / 130 || NT / NT || NT / NT || NT / NT || VFAT
|----------------
|'''Sandisk 2 GBytes''' || style="background:#ff0000;" | Not recognized || NA / NA || NT / NT || NT / NT || NT / NT || NA
|----------------
|'''Kingston 1 GBytes''' || style="background:#00ff00;" | working || 3355 / 130 || NT / NT || NT / NT || NT / NT || VFAT
|----------------
|'''Kingston 2 GBytes''' || style="background:#00ff00;" | working || 3355 / 130 || NT / NT || NT / NT || 13990 / 5730 || VFAT
|----------------
|'''EMTEC 2 GBytes''' || style="background:#00ff00;" | working || 3232 / 1548 || NT / NT || NT / NT || NT / NT || EXT2
|----------------
|'''Kingston 4 GBytes''' || style="background:#00ff00;" | working || 3355 / 130 || NT / NT || NT / NT || NT / NT || VFAT
|----------------
|'''Transcend 4 GBytes <br> SDHC Class 6''' || style="background:#00ff00;" |working || 3379 / 2668 || 7315 / 3805  || ~9600 / ~2800 || ~15900 / ~3950 || VFAT for APF9328 test <br> EXT3 for APF27, APF51 & APF28 one
|----------------
|}
 
===Test method===
Use test script (''media_perf.sh'') located in ''armadeus/target/test/mmc/''. Install Armadeus TestSuite and then launch it:
<pre class="apf">
# cd /usr/bin/testsuite/
# media_perf.sh speed
</pre>


== Links ==
== Links ==
* http://elm-chan.org/docs/mmc/mmc_e.html
* [[MultiMediaCard|How to use MMC/SD/microSD on Linux]]
* [http://elm-chan.org/docs/mmc/mmc_e.html How to use MMC/SD]


<br>
<br>
[[Image:FrenchFlag.png]] [[Fr:MMC/SD|Page en français]]
 
[[Category:Hardware]]
[[Category:Hardware]]
[[Category:MassStorage]]

Latest revision as of 10:36, 22 July 2012

Hardware details on How-To use MMC/SD/microSD cards on APF boards. For APF9328 DevLight you will learn how to connect an MMC/SD adapter/connector.

SDCard, MiniSD, and Transflash/MicroSD are all the same devices but in different package shapes and are all pin compatible.
On Armadeus boards, MMC are controlled in 1 bit MMC mode and SD/MiniSD/MicroSD in 4 bits SD mode. We don't use MMC/SD in slow & error prone SPI mode.

Note Note: For instructions on how to use MMC/SD on Linux, see the MultiMediaCard page. (Here you will only find hardware details)


Adapter board (for APF9328DevLight 1.0 or your custom board)

We have designed a small adapter board with a push-pull MMC/SD connector on it. You need to connect the signals listed in the table below to the corresponding one on your DevLight board. The WP and CD_SW signals are optional and must be connected to free i.MXL GPIOs, if used.

Top view, connector on the left

Signals name (Top view with MMC connector on the right):

MMC Adapt pinout.jpg
Adapter Pin Desc Adapter Pin Desc
1 (square) +3.3V 2 SD_DAT2
3 SD_CMD 4 SD_DAT3
5 SD_CLK 6 SD_DAT0
7 WP (option) 8 SD_DAT1
9 CD_SW (option) 10 GND

Remarks:

  • Pin 1 (rectangular/square pad)
  • WP: write protect
  • CD_SW: Card Detect switch

If you don't want to buy such an adapter or don't have a MMC slot (and are a hacker ;-) ), you can still try this link:

On an APF9328DevFull board, there is already a MMC/SD connector

So nothing special to do.

On APF9328DevLight 2.0, APF27Dev, APF51Dev & APF28Dev boards, there is already a microSD connector

So nothing special to do.

Supported Cards

Here is a list of the current cards which were tested. Speeds are rounded to the nearest multiple of 5:

MMC

Model Status Speed in kB/sec (read/write) on APF9328 Comments
Hama 256 Mbytes working 895 / 455 Ext2

MMC+

Model Status Speed in kB/sec (read/write) on APF9328 Comments
Kingston 256 Mbytes working NA

SD

Model Status Speed in kB/sec (read/write) on APF9328 Comments
Kingston 512 Mbytes working 3275 / 155 Ext2
Kingston 256 Mbytes working NA
Dane-Elec 2 Gbytes KO NA OK in 1bit mode. doesn't work : Card recognized but partition table not found in 4bits mode
Transcend 2 Gbytes (x150) working NA
Sandisk 512 Mbytes working NA formating failure may happen sometimes. Workaround: retry
Panasonic 16 Mbytes working NA Ext2

MiniSD

Model Status Speed in kB/sec (read/write) on APF9328 Comments
Corsair 1Gbytes working 3330 / 365 VFAT
Sandisk 1Gbytes working 3300 / 295 Ext2
Sandisk 512Mbytes working 2750 / 215 VFAT
Transcend 512Mbytes not recognized NA
Extreme Memory 512Mbytes not recognized NA
Dane-Elec 1Gbytes doesn't work NA Card recognized but partition table not found

microSD/TransFlash

Model Status Speed in kB/sec (read/write) Comments
APF9328 APF27 APF51 APF28
Sandisk 512 MBytes working 3330 / 320 NT / NT NT / NT NT / NT VFAT
Dane-Elec 1 GBytes working 3415 / 130 NT / NT NT / NT NT / NT VFAT
Sandisk 1 GBytes working 3355 / 130 NT / NT NT / NT NT / NT VFAT
Sandisk 2 GBytes Not recognized NA / NA NT / NT NT / NT NT / NT NA
Kingston 1 GBytes working 3355 / 130 NT / NT NT / NT NT / NT VFAT
Kingston 2 GBytes working 3355 / 130 NT / NT NT / NT 13990 / 5730 VFAT
EMTEC 2 GBytes working 3232 / 1548 NT / NT NT / NT NT / NT EXT2
Kingston 4 GBytes working 3355 / 130 NT / NT NT / NT NT / NT VFAT
Transcend 4 GBytes
SDHC Class 6
working 3379 / 2668 7315 / 3805 ~9600 / ~2800 ~15900 / ~3950 VFAT for APF9328 test
EXT3 for APF27, APF51 & APF28 one

Test method

Use test script (media_perf.sh) located in armadeus/target/test/mmc/. Install Armadeus TestSuite and then launch it:

# cd /usr/bin/testsuite/
# media_perf.sh speed

Links