SDR50 tuning problem of uSDHC on i.MX6UltraLite Evaluation Kit

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SDR50 tuning problem of uSDHC on i.MX6UltraLite Evaluation Kit

2,796 Views
waqasmazhar
Contributor I

Background:

SDHC controller of i.MX6 Ultra Lite requires tuning in SDR50 mode. Tuning gets successful when card is in SDR50 operating at 66 MHz. It doesn't work for me at 100 MHz (I'm working on proprietary driver). Tuning procedure i am using is as follows.

1. Enable Standard Tuning Enable bit (24th bit of Tuning Control Register)

2. Enable Execute Tuning (22nd bit of Auto CMD12 Error Status)

3. Execute CMD19

4. Read Execute Tuning bit. If it is 1, goto step 3 else step 5.

5. Read Sample Clock Select (23rd bit of Auto CMD12 Error Status). If it is 1, tuning is successful, else failed.

I also have consulted linux driver, it selects the card mode according to following priority.

SDR104

DDR50

SDR50

The card I have supports DDR50/SDR50. So, linux selects DDR50 by default. It needs modification before mmc driver can be forced to select SDR50 mode.

Please note that I am using standard SD Slot on daughter board of imx6ul evk which supports SD 3.0

Question:

Is SDR50 tuning tested for imx6 eval kit?. If yes, what was the achieved throughput? Am I missing something in tuning?

0 Kudos
6 Replies

1,712 Views
igorpadykov
NXP Employee
NXP Employee

Hi waqasmazhar 

regarding " It doesn't work for me at 100 MHz", please note that

104MB/s is possible only if host supports SDR104 mode and card is UHS104 Card
(supports SDR104 mode). If card is a UHS50 Card or if host doesn't support SDR104 mode,
performance is limited to 50MB/s (SDR104 mode cannot be used). This is described

in SD specification sect.3.9.3 UHS-I Host and Card Combination, check for example

https://www.sdcard.org/downloads/pls/pdf/part1_410.pdf

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,712 Views
waqasmazhar
Contributor I

Thanks for your reply,

Please note that you are mixing two different things here.

Max throughput of SDR50 is 50MB/sec. Clock speed at which this throughput is achievable is 100 MHz.

Max throughput of SDR104 is 104MB/sec. Clock speed at which this throughput is achievable is 208 MHz.

Max throughput of DDR50 is 50 MB/sec. Clock speed at which this throughput is achievable is 50 MHz.

0 Kudos

1,712 Views
igorpadykov
NXP Employee
NXP Employee

according to my docs SD 3.0 DDR50,SDR104 were tested on i.MX6UL EVK,

so SDR50 should work too.

0 Kudos

1,712 Views
waqasmazhar
Contributor I

I'm sorry but I'm unable to understand your point. Will you please elaborate?

UHS50 card having SDR50 mode should work on 100 MHz according to SD Specifications Part 1 Physical Layer Specification Version 3.01 Page 32 Section 3.9.1. Because for SDR50, 50 MB/sec can only be achieved at 100 MHz.

0 Kudos

1,712 Views
waqasmazhar
Contributor I

SDR stands for single data rate. It reads or write only on rising edge of clock. So to achieve 50 MB/sec, I would need 100 MHz clock.

DDR stands for Dual Data Rate. It reads or write on rising and falling edge of clock. So to get 50 MB/sec, I would need 50MHz.

Source: https://members.sdcard.org/press/events/SD_Standards_and_Technology_GWTaipei_Oct2014.pdf  Page 7

Mistake I was making has been figured out. I was changing bus width after switching to SDR50 which is wrong. After making bus width switch before switching to SDR50 makes tuning successful.

Thanks for your help

0 Kudos

1,712 Views
igorpadykov
NXP Employee
NXP Employee

does your card support UHS-I, how many cards were tested ?

0 Kudos