SD tuning Fails with MIMXRT1060.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

SD tuning Fails with MIMXRT1060.

1,987 次查看
Jack007
Contributor III

Hello,

I am trying to bring up the Zephyr on imxrt1060 with Murata module but on configuring sdio speed to SDR50 SDIO enumeration Fails by stating SD tunning failed.

Below is the error log:

[00:00:02.819,000] <dbg> usdhc: imx_usdhc_set_io: SDHC I/O: bus width 4, clock 400000Hz, card power ON, voltage 1.8V
[00:00:02.819,000] <err> sd: Raised card bus width to 4 bits
[00:00:02.819,000] <err> sd: Select and set bus speed
[00:00:02.835,000] <dbg> sd: sdio_set_bus_speed: Setting bus clock to: 100000000
[00:00:02.835,000] <dbg> usdhc: imx_usdhc_set_io: SDHC I/O: bus width 4, clock 100000000Hz, card power ON, voltage 1.8V
[00:00:02.836,000] <dbg> usdhc: imx_usdhc_set_io: BUS CLOCK: 99000000
[00:00:02.864,000] <err> usdhc: imx_usdhc_transfer USDHC_TransferNonBlocking kStatus_USDHC_ReTuningRequest error :6505
[00:00:02.864,000] <err> usdhc: imx_usdhc_execute_tuning imx_usdhc_transfer ret :-11
[00:00:02.864,000] <err> sd: SD tuning failed: -11

on further debug found that USDHC_TransferNonBlocking is failing by returns kStatus_USDHC_ReTuningRequest

Can please help in solving this issue.

NOTE: I don't see any issue on configuring SDR12 and SDR25

标签 (1)
0 项奖励
回复
6 回复数

1,844 次查看
Jack007
Contributor III

as of now I am  downgrading the speed to SDR25 with this firmware is loading but sometimes(1 out of 10 times) notice usdhc_transfer Failure with reason TRANSFER_CMD_FAILED at the multiple places(sdio_read_cccr, sdio_read_cis  and sdio_set_bus_speed). – this issue is seen across SDR50,SDR25 & SDR12 modes.
Can you please help me in resolving this issue.


I am using 2EA Murata module.

0 项奖励
回复

1,948 次查看
Jack007
Contributor III


I am configuring to SDR50 by adding the below line in the function :sdio_set_bus_speed() before the switch case

card->card_speed = SD_TIMING_SDR50;

I am using murata 2EA module..

0 项奖励
回复

1,896 次查看
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @Jack007,

I apologize but I don't quite understand where you are doing the modifications that you mention. I am currently looking at the SD driver "fsl_usdhc" for "sdio_set_bus_speed()" and don't see the function or the switch case you are referring to.

BR,
Edwin.

0 项奖励
回复

1,880 次查看
Jack007
Contributor III

I am modifying the SDIO speed in the file: zephyr/subsys/sd/sdio.c

Function : sdio_set_bus_speed(struct sd_card *card)

Below is the function call sequence

sdio_set_bus_speed()  -- sdhc_set_io()   -- imx_usdhc_set_io() -- USDHC_SetSdClock()

 

Finally USDHC_SetSdClock will get the parameter from the sdio_set_bus_speed

0 项奖励
回复

1,961 次查看
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @Jack007,

Could you please specify which Murata module you are currently using as well as the process you are using to set speed to SDR50 on it?

BR,
Edwin.

0 项奖励
回复

1,877 次查看
Jack007
Contributor III

In the Function sdio_set_bus_speed() i am doing below change to configure to SDR50

card->card_speed = SD_TIMING_SDR50;

0 项奖励
回复