RT1176 eMMC初始化失败

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

RT1176 eMMC初始化失败

1,668 Views
zyz
Contributor I

这几天在调试eMMC时遇到了点问题:

使用的是usdhc2,eMMC为闪迪的SDINBDG4-32G

配置如下:批注 2021-10-19 115516.jpg批注 2021-10-19 115545.jpg

 

初始化时停留在  mmccard_init  ->  MMC_SelectBusTiming  -> MMC_SwitchToHighSpeed  -> MMC_SetMaxDataBusWidth  ->  MMC_TestDataBusWidth  -> MMC_SendTestPattern ->

SDMMCHOST_TransferFunction ->

SDMMC_OSAEventWait(&(host->hostEvent), SDMMCHOST_TRANSFER_DATA_EVENT,
SDMMCHOST_TRANSFER_COMPLETE_TIMEOUT, &event)

等不到 SDMMCHOST_TRANSFER_DATA_EVENT 事件

 

 

请问是否有其他需要注意的?

 

0 Kudos
6 Replies

1,653 Views
kerryzhou
NXP TechSupport
NXP TechSupport

@zyz @楼主你好

你的eMMC是接在boot脚上吗?你有没有使用MCUBootUtility工具看看能不能连到你的eMMC呢?

kerryzhou_0-1634638575689.png

还是直接跑代码的呢?你跑的代码是SDK的吗?哪个工程路径?还是自己写的代码?

 

Best Regards,

kerry

 

 

0 Kudos

1,643 Views
zyz
Contributor I

现在使用MCUBootUtility可以正常连接和识别,这里需要选择2(芯片内部只有USDHC1和USDHC2,按常理不是应该选择1吗)

捕获.PNG

 

但是现在我的eMMC驱动还是和之前一样,停留在初始化最后一步,

 

我明天对比一下我的驱动和flashloader,看关于eMMC的配置有什么区别

0 Kudos

1,636 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @zyz ,

   你看看你的硬件接在哪个口了呢?

   从RT1170的SDHC启动接口看,有两组:

kerryzhou_0-1634699176382.png

kerryzhou_1-1634699184619.png

还是要看你硬件是接哪里了,看你boot的情况,应该是接到8线的2口了。

所以,你可以结合flashloader再去看看你的驱动是不是有问题。

 

希望能帮到你,如果还有问题,欢迎继续交流!

Best Regards,

kerry

 

 

 

0 Kudos

1,632 Views
zyz
Contributor I

你好,我尝试对比我现在的驱动和flashloader的区别,但是发现发现flashloader的驱动不是基于SDK的,差别比较大,而我现在的驱动是基于SDK生成的,目前还没发现配置上有说明大的区别;

我调试时发现我基于SDK和官方模板的驱动在执行完MMC_SendExtendedCsd这个函数后,ADMA_ERR_STATUS寄存器中的错误位置位了(ADMADCE为0x1, ADMAES为0x01),可是关于这一块相关的驱动我没有作任何改动,为什么会出现这样的错误呢?

0 Kudos

1,620 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @zyz 

你现在参考的代码是SDK吗?具体SDK 工程路径给我一下, 我看看。

你现在用的SDK是不是最新的,建议你用最新的SDK试试看。

还有,你在SDK工程基础上修改点也分享出来,我这边看看。

你说的:执行完MMC_SendExtendedCsd这个函数后,ADMA_ERR_STATUS寄存器中的错误位置位了(ADMADCE为0x1, ADMAES为0x01)

你也对比寄存器看看,这个是错误标志,如果你那边没有用到对应的,你可以尝试修改代码忽略错误试试看。

 

Best Regards,

Kerry

0 Kudos

1,649 Views
zyz
Contributor I

       是的,是接在boot引脚上,但是使用MCUBootUtility连不上,提示:

1812 (0x714) Send Operation Condition failed"

       

       我现在是直接跑代码的,SDK里面没有现成的eMMC例程,我在SD FATFS基础上修改的,将SD改成eMMC以及将USDHC1改为USDHC2而已,其他都是SDK提供的,在执行MMC_SelectBusTiming这个函数之前都是通信正常的,也就说可以可以获取cid,设置设置rca,获取csd等,但是设置卡总线宽度后(SDMMCHOST_SetCardBusWidth),执行MMC_TestDataBusWidth时失败了,等不到SDMMCHOST_TRANSFER_DATA_EVENT事件:

捕获.PNG捕获1.PNG

 

 

 

 

0 Kudos