SD card SDK config option for drive strength not working

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

SD card SDK config option for drive strength not working

820 Views
mspenard603
Contributor IV

Hi,

 I notice there is a config option for setting drive strength when setting up an SD card interface. But when I change this option I am not seeing any change on my scope at all. What is going on?

/*! @brief SD card driver strength */
typedef enum _sd_driver_strength
{
kSD_DriverStrengthTypeB = 0U, /*!< default driver strength*/
kSD_DriverStrengthTypeA = 1U, /*!< driver strength TYPE A */
kSD_DriverStrengthTypeC = 2U, /*!< driver strength TYPE C */
kSD_DriverStrengthTypeD = 3U, /*!< driver strength TYPE D */
} sd_driver_strength_t;

0 Kudos
5 Replies

799 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

First of all, sorry for the later reply.

I checked RT product reference manual and could not find related Driver Strength setting register with uSDHC module.

The MCUXpresso SDK software driver would like to suitable for NXP all products. Related <fsl_sd.c> also want to works with all NXP MCU & MPU has  ARM-M4 core products. I am not sure if other MCU family using the different SD module with SD padS driver strength setting. For RT product, related setting should not work.

Thanks for the attention.

Mike

0 Kudos

792 Views
mspenard603
Contributor IV
"could not find related Driver Strength setting register with uSDHC module"

Well, I see there is a function called SD_SetDriverStrength() in fsl_sd.c. It appears to send out a command packet to the SD card.

So is the intent with this enum and function to order the SD Card to drive its data lines at a certain strength?
0 Kudos

786 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

Thank you for guide to the SD card commands.

That setting is related to SD protocol CMD6, which provide more setting for card, includes driver strength.

Please refer below picture about CMD6 function.

Hui_Ma_0-1662628505451.png

Driver strength is located CMD6[11:8] bits with four type selection, default is Type B.

Type      Current/power limitation

Type-B   200mA/0.72W

Type-A   400mA/1.44W

Type-C   600mA/2.16W

Type-D   800mA/2.88W

 I could find this CMD6 working with UHS-I SD card.

More detailed info, it need to check SD protocol spec.

Thanks for the attention.

Mike 

0 Kudos

781 Views
mspenard603
Contributor IV
Very good. One subsequent question...

What is NXP's expectation on implementation?

I.e., are we to directly call SD_SetDriverStrength() after filling the struct? Or is there a higher level call we are suppose to be utilizing that is a wrapper for this as well as other commands..?
0 Kudos

773 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

Customer can call the SD_SetDriverStrength() API function to config SD card driver strength.

While, at the general situation (normal successful communication), using scope to measure the signal voltage/quality could not reflect the effection of  driver strength change. When there with communication abnormal happen, call this SD_SetDriverStrength() API function change card driver strength could help to enhance signal quality to make the communication back to normal.

Thanks for the attention.

Mike

0 Kudos