I am using a Nexys 4 DDR board to interface microSD and microSDHC cards using the SPI mode. (For those interested in what the whole thing is all about, click here.)
Might it be, that microSD cards are needing current in the range of 10mA (e.g. look at Transcend's 2GB SD card datasheet - link) and microSDHC (SDHC vs SD) are needing 10x of this, e.g. look here at Samsung's 32GB SDHC card:
How much current is the Nexys 4 DDR SD Card slot able to supply?
The first card I wrote about above (Transcend's 2GB SD V2 card) works fine with my controller, the second card (Samsung's) is not even initializing (no response to CMD0). (Some other SDHC cards are working with my controller, see below.)
Are there some settings I need to do in the UCF file, e.g. fast SLEW rate or another value for DRIVE (to supply more current)?
Currently my UCF file looks like this:
##Micro SD Connector
NET "SD_RESET" LOC = E2 | IOSTANDARD = LVCMOS33;
NET "SD_CLK" LOC = B1 | IOSTANDARD = LVCMOS33;
NET "SD_MOSI" LOC = C1 | IOSTANDARD = LVCMOS33;
NET "SD_MISO" LOC = C2 | IOSTANDARD = LVCMOS33 | PULLUP;
Here is the source (Link) of my controller. I tested it with ~40 cards. 20 of them are SD cards Version 1 and Version 2 (from 64 MB up to two GB): Works fine and stable with all of them. 20 of them are SDHC. When it comes to SDHC, it works with about 50% of the cards (well - works kind of: I need to reset after each read command). The other 50% are showing really strange behaviours: Some are only reporting themselves as a SDHC during the coldstart/hard reset (insert card) and from then on "claim" to be a SD V2 card, others are initializing well but when it comes to reading, they never send a R1 on READ_BLOCK, etc. While googling I found some comments in forums, that strange behaviour might be rooted in a lack of current, so this is the background of my question.
Question
sy2002
Hi all,
I am using a Nexys 4 DDR board to interface microSD and microSDHC cards using the SPI mode. (For those interested in what the whole thing is all about, click here.)
Might it be, that microSD cards are needing current in the range of 10mA (e.g. look at Transcend's 2GB SD card datasheet - link) and microSDHC (SDHC vs SD) are needing 10x of this, e.g. look here at Samsung's 32GB SDHC card:
http://www.singerphoto.co.za/SingerPhotographicOnlineDocuments/WebImages/SellSheetPDFs/mesamp64a.pdf
How much current is the Nexys 4 DDR SD Card slot able to supply?
The first card I wrote about above (Transcend's 2GB SD V2 card) works fine with my controller, the second card (Samsung's) is not even initializing (no response to CMD0). (Some other SDHC cards are working with my controller, see below.)
Are there some settings I need to do in the UCF file, e.g. fast SLEW rate or another value for DRIVE (to supply more current)?
Currently my UCF file looks like this:
##Micro SD Connector
NET "SD_RESET" LOC = E2 | IOSTANDARD = LVCMOS33;
NET "SD_CLK" LOC = B1 | IOSTANDARD = LVCMOS33;
NET "SD_MOSI" LOC = C1 | IOSTANDARD = LVCMOS33;
NET "SD_MISO" LOC = C2 | IOSTANDARD = LVCMOS33 | PULLUP;
Here is the source (Link) of my controller. I tested it with ~40 cards. 20 of them are SD cards Version 1 and Version 2 (from 64 MB up to two GB): Works fine and stable with all of them. 20 of them are SDHC. When it comes to SDHC, it works with about 50% of the cards (well - works kind of: I need to reset after each read command). The other 50% are showing really strange behaviours: Some are only reporting themselves as a SDHC during the coldstart/hard reset (insert card) and from then on "claim" to be a SD V2 card, others are initializing well but when it comes to reading, they never send a R1 on READ_BLOCK, etc. While googling I found some comments in forums, that strange behaviour might be rooted in a lack of current, so this is the background of my question.
Best regards
Mirko
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.