首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Omap 35x Emmc读写问题

Omap 35x Emmc读写问题
EN

Stack Overflow用户
提问于 2014-09-17 18:48:07
回答 1查看 745关注 0票数 1

我遇到一个EMMC读/写问题。我试图在Omap35x上编写一个EMMC驱动程序。初始化emmc卡和omap之后,卡进入tran状态。我的读写命令永远不会成功。以下是我所做的:

  1. 发送CMD0 (MMCHS_CMD = 0x00000000 MMCHS_ARG = 0xf0f0f0f0)
  2. 忙着发送CMD1 (MMCHS_CMD = 0x01020000 MMCHS_ARG = 0x40FF8080)
  3. 发送CMD2 (MMCHS_CMD = 0x02090000 MMCHS_ARG = 0x00000000)
  4. 发送CMD3 (MMCHS_CMD = 0x031a0000 MMCHS_ARG = 0x00010000)响应= 0x500
  5. m_regs->MMCHS_CON &= ~0x00000001;
  6. 发送CMD9 (MMCHS_CMD = 0x009090000 MMCHS_ARG = 0x00010000)
  7. 发送CMD13检查状态(MMCHS_CMD = 0x0D1a0000 MMCHS_ARG = 0x00010000)响应= 0x700
  8. 发送CMD7 (MMCHS_CMD = 0x071a0000 MMCHS_ARG = 0x00010000)响应= 0x700
  9. 发送CMD6 (MMCHS_CMD = 0x061a0000 MMCHS_ARG = 0x03b90100)响应=0x80010.设置时钟到48 MHz发送CMD 16 (MMCHS_CMD = 0x101a0000 MMCHS_ARG = 0x00000200) 11发送CMD13检查状态(MMCHS_CMD = 0x0D1a0000 MMCHS_ARG = 0x00010000)响应= 0x900

在完成上述步骤之后,我尝试发送命令CMD24 (MMCHS_CMD = 0x182A0002 MMCHS_ARG = 0x00000001和MMCHS_BLK = 0x00000200),Omap成功地输入MMCHS_STAT_BWR,然后发送512个字节的数据。我可以通过示波器观察到通过数据线发送的数据,但是当我轮询TC/DTO时,我收到了来自MMCHS_STAT的0x108111,它表示数据超时。我可以收到命令的响应0x900。

对于阅读,我将发送CMD17(MMCHS_CMD = 0x112A0012 MMCHS_ARG = 0x00000001和MMCHS_BLK = 0x00000200)。我还可以收到命令的响应0x900。Omap成功地进入了MMCHS_STAT_BRR,但我无法观察到通过数据线发送的任何数据。

请让我知道,如果你发现任何问题的步骤,我已经做了,或你有一个例子,使它发挥作用。

EN

回答 1

Stack Overflow用户

发布于 2014-12-08 01:27:54

你曾经尝试过以默认速度写/读吗?您可以跳过步骤9,不要在步骤10中将时钟更改为48 MHz,然后再试一次。

此外,在步骤9中,您的CMD6切换到高速模式的响应,READY_FOR_DATA的比特还没有准备好。我认为您可以添加一个CMD13,以确保eMMC是否为数据做好了准备。如果eMMC的容量大于2GB,则不需要在step10中发送CMD16。在默认情况下,高容量eMMC是扇区模式。

数据超时的限制值是多少?在我的实验中,一些eMMC在响应后发送超过8ms的第一次数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25898137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档