Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UHS standard #1

Closed
AnoushkaU opened this issue Jun 5, 2020 · 4 comments
Closed

UHS standard #1

AnoushkaU opened this issue Jun 5, 2020 · 4 comments

Comments

@AnoushkaU
Copy link

Hello!

Could you please suggest which Xilinx FPGA I can use to implement this design for a UHS standard card?

Thank you!

@sy2002
Copy link
Owner

sy2002 commented Jun 5, 2020

@AnoushkaU I used a Xilinx Artix-7 board but I guess it will also work on a lot of other FPGAs. Here is a link about our setup.

@sy2002 sy2002 closed this as completed Jun 5, 2020
@AnoushkaU
Copy link
Author

@AnoushkaU I used a Xilinx Artix-7 board but I guess it will also work on a lot of other FPGAs. Here is a link about our setup.

Thank you very much for your reply. Your setup looks great! Do you know if it will support UHS standards? For example, a SanDisk or Transcend SDHC card with UHS-I support?

@sy2002
Copy link
Owner

sy2002 commented Jun 5, 2020

Please have a look at this post from me:

ibm2030/SimpleSDHC#6 (comment)

What I found out in general is, that SD Cards do not really like the SPI mode. They kind of work, but if you want a truly stable SD Card implementation, then you need to implement native mode. The challenge here is, that the documentation is not freely available and needs to be licensed.

I made the experience that you really need to do trial and error: Some cards work and some don't. I therefore decided to accept the fact, that my implementation will not work with all SD Cards, but only with some. I went on to buy something like 30 different SD Cards on Amazon and tested them one after another. I found out some patterns, which one work and which don't and documented them here:

https://github.com/sy2002/QNICE-FPGA/blob/master/doc/constraints.txt#L13

Bottom line: My code is the result of trial and error and therefore is not not working with all brands and/or all card sizes. You can have a look at the comment section here to find out what I did:

https://github.com/sy2002/QNICE-FPGA/blob/master/vhdl/sd_spi.vhd#L106

In the end I thought: I can live with it: I have a lists of brands and card models that work and this is good enough for our hobby project...

Sorry, that this is all that I can say, but SD Cards via SPI is black magic. I think this is done intentionally, so that the SD Card consortium can sell licenses on the "native mode" documentation. :-) They just do not consider hobbyists like us as a relevant market.

@AnoushkaU
Copy link
Author

Please have a look at this post from me:

ibm2030/SimpleSDHC#6 (comment)

What I found out in general is, that SD Cards do not really like the SPI mode. They kind of work, but if you want a truly stable SD Card implementation, then you need to implement native mode. The challenge here is, that the documentation is not freely available and needs to be licensed.

I made the experience that you really need to do trial and error: Some cards work and some don't. I therefore decided to accept the fact, that my implementation will not work with all SD Cards, but only with some. I went on to buy something like 30 different SD Cards on Amazon and tested them one after another. I found out some patterns, which one work and which don't and documented them here:

https://github.com/sy2002/QNICE-FPGA/blob/master/doc/constraints.txt#L13

Bottom line: My code is the result of trial and error and therefore is not not working with all brands and/or all card sizes. You can have a look at the comment section here to find out what I did:

https://github.com/sy2002/QNICE-FPGA/blob/master/vhdl/sd_spi.vhd#L106

In the end I thought: I can live with it: I have a lists of brands and card models that work and this is good enough for our hobby project...

Sorry, that this is all that I can say, but SD Cards via SPI is black magic. I think this is done intentionally, so that the SD Card consortium can sell licenses on the "native mode" documentation. :-) They just do not consider hobbyists like us as a relevant market.

Thank you so much for your detailed explanation! And yes, SPI is a real headache here! I will try to use one of the cards that you have already tested as working. :)

This was referenced Jul 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants