搜索
bottom↓
回复: 91

开源一个STM32F4 SDIO接口EMMC的驱动

  [复制链接]

出0入0汤圆

发表于 2014-4-16 21:36:52 | 显示全部楼层 |阅读模式
去年写的了,想想那份驱动真他妈难写,和一个同学一起弄的,在这里搞感谢他。当时因为要用上,自己按照4.5的标准来改的,可以驱动2-16G的EMMC,读写1M左右,关于什么是EMMC,相对NAND有什么优势,我就不提了。本来想换一点回报的,哎没有人来买,估计大家都喜欢免费的吧。贡献给大家吧。全部是自己改的,在这里再次注明,请不要用于商业用途,我不希望像上次那样,我开源的东西,别人还从这里下载下来到淘宝上面去卖钱。好上代码。
  1. /**
  2.   ******************************************************************************
  3.   * @file    SdioEmmcDrive.c
  4.   * @author  Luoxianhui && Lifuqiang
  5.   * @version V1.0.0
  6.   * @date    12/27/2013
  7.   * @brief   This file is SdioEmmcDrive file.
  8.   ******************************************************************************
  9.   *          =========================
  10.   *          +-----------------------------------------------------------+
  11.   *          |                     Pin assignment                        |
  12.   *          +-----------------------------+---------------+-------------+
  13.   *          |  STM32 SDIO Pins            |   EMMC        |    Pin      |
  14.   *          +-----------------------------+---------------+-------------+
  15.   *          |      SDIO D2                |   D2          |    1        |
  16.   *          |      SDIO D3                |   D3          |    2        |
  17.   *          |      SDIO CMD               |   CMD         |    3        |
  18.   *          |                             |   VCC         |    4 (3.3 V)|
  19.   *          |      SDIO CLK               |   CLK         |    5        |
  20.   *          |                             |   GND         |    6 (0 V)  |
  21.   *          |      SDIO D0                |   D0          |    7        |
  22.   *          |      SDIO D1                |   D1          |    8        |
  23.   *          +-----------------------------+---------------+-------------+
  24.   *
  25.   *  @endverbatim
  26.   */
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-16 22:54:58 | 显示全部楼层
不错!              

出0入134汤圆

发表于 2014-4-17 00:19:16 | 显示全部楼层
好东西,手头有不少EMMC,可是PAD太密了,搞不定……

出0入0汤圆

发表于 2014-4-17 07:46:56 来自手机 | 显示全部楼层
没用过这东西

出0入0汤圆

发表于 2014-4-17 07:56:50 | 显示全部楼层
好东西不错,这个可以玩玩呢

出0入0汤圆

 楼主| 发表于 2014-4-17 08:40:02 | 显示全部楼层
淘宝随便找块转接板,焊上,直接就可以做成U盘,做产品的话就可以代替内存卡。稳定可靠。

出0入0汤圆

发表于 2014-4-17 13:42:55 | 显示全部楼层
学习一下,这个可能会用到的。


标准论坛尾巴。当你看到这个尾巴的时候就知道你的回复是正常的。。


鄙视在这里下东西到淘宝卖的行为。坚决抵制,】



出0入0汤圆

发表于 2014-4-17 14:08:51 | 显示全部楼层
楼主当时调试的使用的那款EMMC呢?

出0入0汤圆

发表于 2014-4-17 16:39:36 | 显示全部楼层
F4 和F1相比 对于SDIO 有什么更新吗??   

出0入0汤圆

 楼主| 发表于 2014-4-17 16:42:25 | 显示全部楼层
hdfsun 发表于 2014-4-17 14:08
楼主当时调试的使用的那款EMMC呢?

是一款三星的。用的是8G的,格式化后有7.3G多点。

出0入0汤圆

发表于 2014-4-17 16:57:57 | 显示全部楼层
使用的那款EMMC,会不会是标准呢~~~

出0入0汤圆

 楼主| 发表于 2014-4-17 16:59:45 | 显示全部楼层
EMMC就是一个标准,你用哪家的没有关系,三星,闪迪,东芝。只要他是EMMC,就可以。

出0入0汤圆

 楼主| 发表于 2014-4-17 17:10:07 | 显示全部楼层
mcuprogram 发表于 2014-4-17 16:39
F4 和F1相比 对于SDIO 有什么更新吗??

没有太大的变化。接口都差不多。

出0入0汤圆

发表于 2014-4-23 21:25:03 | 显示全部楼层
楼主,你好!我也在用eMMC,现在有个问题就是在某些情况下响应SD_CMD_OP_COND超时,也就是查询支持电压时。
PS:某些情况是指正常操作是一切正常的,如果进行非法操作(如短时高压脉冲加到VCC、断电后立刻上电等)的话会导致超时,不知楼主能否指点一二!

出0入0汤圆

发表于 2014-4-24 16:50:37 来自手机 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-4-24 18:40:14 | 显示全部楼层
谢谢分享。。。。。。

出0入0汤圆

 楼主| 发表于 2014-4-24 20:00:06 | 显示全部楼层
yeksforever 发表于 2014-4-23 21:25
楼主,你好!我也在用eMMC,现在有个问题就是在某些情况下响应SD_CMD_OP_COND超时,也就是查询支持电压时。 ...

你有没有写那个电压寄存器,初始化的时候记得要写一下的。

出0入0汤圆

发表于 2014-5-4 15:04:50 | 显示全部楼层
刚好在找这个东西,谢了

出0入0汤圆

发表于 2014-5-28 16:58:59 | 显示全部楼层
十分感谢楼主。

我在STM32L151上验证楼主程序是可以的

附上稍作改动的程序,回馈论坛。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-7-1 16:04:40 | 显示全部楼层
正准备DIY一个大容量的存储,感谢分享,

出0入0汤圆

发表于 2014-7-1 17:48:14 | 显示全部楼层
感谢分享,很好的资源

出0入0汤圆

发表于 2014-7-1 20:21:02 | 显示全部楼层
请问emmc现在好买吗?

出0入0汤圆

 楼主| 发表于 2014-7-1 20:24:08 | 显示全部楼层
yzhu 发表于 2014-7-1 20:21
请问emmc现在好买吗?

好买呀,三星,东芝,闪迪都有,买来玩玩意搜一大把。

出0入0汤圆

发表于 2014-7-8 16:54:39 | 显示全部楼层
非常感谢,后续会有用。

出0入0汤圆

发表于 2014-7-8 17:38:41 | 显示全部楼层
这个值得拥有!

出0入0汤圆

发表于 2014-8-14 11:15:29 | 显示全部楼层
正准备评估一下emmc的性能,非常感谢楼主!

出0入0汤圆

发表于 2014-8-18 13:40:40 | 显示全部楼层
非常感谢,留记号备用

出0入0汤圆

发表于 2014-8-18 14:54:38 | 显示全部楼层
支持,顶起。

出0入0汤圆

发表于 2014-9-3 13:53:04 | 显示全部楼层
楼主好样的,谢谢!!!!!!!!!

出0入0汤圆

发表于 2014-9-9 11:48:24 | 显示全部楼层
先谢谢哈

出0入0汤圆

发表于 2014-9-9 12:19:13 | 显示全部楼层
感谢分享!!

出0入0汤圆

发表于 2014-9-9 12:59:35 | 显示全部楼层
现在又出UFS2.0了,技术发展真快,赶不上趟了。

出0入0汤圆

发表于 2014-9-9 13:14:52 | 显示全部楼层
好东西,先收了

出0入0汤圆

发表于 2014-9-9 19:39:22 | 显示全部楼层
楼主  有个问题请教你呢

出0入0汤圆

发表于 2014-9-12 16:24:44 | 显示全部楼层
这个真心不错,谢谢分享。

出0入31汤圆

发表于 2014-10-9 11:39:55 | 显示全部楼层
apeng2012 发表于 2014-5-28 16:58
十分感谢楼主。

我在STM32L151上验证楼主程序是可以的

兄弟用的什么型号的eMMC?

出0入0汤圆

发表于 2014-10-9 11:58:01 | 显示全部楼层
SDIO emmc driver

出0入0汤圆

发表于 2014-10-9 12:01:05 | 显示全部楼层
感谢楼主!!!

出0入31汤圆

发表于 2014-10-9 13:48:11 | 显示全部楼层
jxcylxh 发表于 2014-7-1 20:24
好买呀,三星,东芝,闪迪都有,买来玩玩意搜一大把。

都是0.65mm间距的BGA,有点密啊

出0入0汤圆

发表于 2014-10-9 15:13:03 | 显示全部楼层
zchong 发表于 2014-10-9 11:39
兄弟用的什么型号的eMMC?

KLM4GxxEHx

出0入31汤圆

发表于 2014-10-9 16:49:55 | 显示全部楼层

这种管脚太密了,一个简单的板子如果配上这种封装,有点吃不消啊!
貌似1.0mm间距的封装很少,只有Micron有。

出0入0汤圆

发表于 2014-10-10 16:05:30 | 显示全部楼层
zchong 发表于 2014-10-9 16:49
这种管脚太密了,一个简单的板子如果配上这种封装,有点吃不消啊!
貌似1.0mm间距的封装很少,只有Micron ...

还好吧,没有几根线要连接。就是做板子得多花些钱。

出0入0汤圆

发表于 2014-10-10 18:26:57 | 显示全部楼层
留名留名

出0入0汤圆

发表于 2014-10-30 16:38:59 | 显示全部楼层
         楼主我用你代码,在F205上跑,发现初始化卡的时候,到使能宽总线时候失败。跟了一下,发现发送CMD6 写EMMC_HIGHSPEED_REG的时候返回超时,在这之前发送的CMD6写EMMC_POWER_REG的时候返回都正常。
         我翻了一下协议,发现手册有提到说发送CMD6后,卡片可能会进入忙状态。[img][/img]  要等待卡忙状态结束,怎么判断卡是否是忙状态呀?麻烦指导一下.

出0入0汤圆

发表于 2014-10-30 16:39:30 | 显示全部楼层
e:\QQ图片20141030163704.jpg

出0入0汤圆

发表于 2014-10-30 16:42:03 | 显示全部楼层
这里怎样贴图片呀,图片怎么贴不上?

出0入0汤圆

发表于 2014-10-30 16:44:08 | 显示全部楼层
A.8.2 Switching to high-speed mode
The following steps are supported by cards implementing version 4.0 or higher. Do these steps after the
bus is initialized according to section Annex A.8.1 on page 203.
22-Send CMD7 with the card’s RCA to place the card in tran state
23-Send CMD8, SEND_EXT_CSD. From the EXT_CSD the host can learn the power class of the card,
and choose to work with a wider data bus (See steps 26-37)
24-Send CMD6, writing 0x1 to the HS_TIMING byte of the EXT_CSD. The argument 0x03B9_0100 will
do it.
     24.1-The card might enter BUSY right after R1, if so, wait until the BUSY signal is de-asserted
     24.2-After the card comes out of BUSY it is configured for high speed timing
25-Change the clock frequency to the chosen frequency (any frequency between 0 and 26/52MHz).

其中24说的那种情况,是不是因为前面发送CMD6写EMMC_POWER_REG响应之后导致卡进入忙状态,不理解!求指导!

出0入0汤圆

发表于 2014-10-31 10:47:45 | 显示全部楼层
昨晚试着中间加了个延时(72M主频,计数72000,大概1ms),切换到4bit总线通过了.

出0入0汤圆

发表于 2014-10-31 14:24:22 | 显示全部楼层
emmc规范和sd规范一样吗?还是说和mmc规范一样或者说都有不同?

出0入0汤圆

发表于 2014-10-31 14:57:10 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2014-11-1 01:00:32 | 显示全部楼层
准备要用,mark上

出0入0汤圆

发表于 2015-4-17 16:28:00 | 显示全部楼层
谢谢楼主,先mark了~

出0入0汤圆

发表于 2015-4-17 16:59:09 | 显示全部楼层
MARK有时间打板子试一下,多谢楼主分享

出0入0汤圆

发表于 2015-4-17 21:28:17 | 显示全部楼层
有没有人测试过速率有多快?

出0入0汤圆

发表于 2015-4-19 23:30:29 | 显示全部楼层
感谢分享,很好的资源

出0入0汤圆

发表于 2015-4-20 07:44:00 来自手机 | 显示全部楼层
我用mdk5.14,自带了mci接口驱动,只要点击几下,加上不到十行的代码就可以实现了,还带fat32wenj文件系统

出0入0汤圆

发表于 2015-4-21 08:46:42 | 显示全部楼层
Frank.Dong 发表于 2014-10-31 10:47
昨晚试着中间加了个延时(72M主频,计数72000,大概1ms),切换到4bit总线通过了. ...

正在弄EMMC,问题和你的一样的,可否给我参考一下谢谢!www.631640356@qq.com

出0入8汤圆

发表于 2015-4-21 09:06:37 | 显示全部楼层
还没用过emmc,先留着以后看吧~

出0入0汤圆

发表于 2015-4-22 19:18:54 | 显示全部楼层
楼主请问一下, EMMC 读写 擦除 的扇区入口地址都是 32位的 怎么能寻址 16G空间呢,最大不应该是4G吗?

出0入0汤圆

发表于 2015-4-22 19:42:14 | 显示全部楼层
好帖,果断收藏一下。多谢楼主的分享。

出0入0汤圆

发表于 2015-4-23 22:57:56 | 显示全部楼层
分享是种美德。有人知道测试过这份驱动最大的读写速度吗?

出0入0汤圆

发表于 2015-6-16 12:00:25 | 显示全部楼层
谢谢。。。

出0入0汤圆

 楼主| 发表于 2015-7-16 11:34:53 | 显示全部楼层
LingYi 发表于 2015-4-22 19:18
楼主请问一下, EMMC 读写 擦除 的扇区入口地址都是 32位的 怎么能寻址 16G空间呢,最大不应该是4G吗? ...

里面用的是块地址。

出0入0汤圆

发表于 2015-10-4 15:39:02 | 显示全部楼层
楼主,请教一下,我想改成8位总线,修改了IO口和SDIO_BusWide,但是用不了,还需要修改里面的什么配置吗?

出0入0汤圆

发表于 2015-10-4 17:28:15 | 显示全部楼层
谢谢楼主, 以后用到参考下.

出0入0汤圆

发表于 2015-10-4 17:56:16 | 显示全部楼层
谢谢楼主的分享精神!

出0入0汤圆

发表于 2015-10-6 13:13:55 | 显示全部楼层
很好的资料,谢谢了

出0入0汤圆

发表于 2015-10-6 17:02:37 | 显示全部楼层
没试过得闲耍耍

出0入0汤圆

发表于 2015-10-22 14:18:57 | 显示全部楼层
EMMC的型号是什么。

出0入0汤圆

发表于 2015-12-23 15:10:08 | 显示全部楼层
标记一下!!!!!!!!!!!!!

出0入0汤圆

发表于 2016-12-20 10:51:14 | 显示全部楼层
mark, eMMC

出0入0汤圆

发表于 2017-4-26 15:45:21 | 显示全部楼层
好东西,不错

出0入4汤圆

发表于 2017-11-6 01:15:15 | 显示全部楼层
请问有现成的板子可以卖吗?想收一块调试一下代码

出0入0汤圆

发表于 2017-11-6 11:13:41 | 显示全部楼层
....借鉴下,修改过4.4的,对比下与4.5有什么区别

出0入0汤圆

发表于 2018-4-11 13:57:12 | 显示全部楼层
支持下……

出0入0汤圆

发表于 2018-4-11 16:29:06 | 显示全部楼层
资料不错,谢谢楼主。

出0入0汤圆

发表于 2018-5-7 20:13:46 | 显示全部楼层
谢谢楼主分享

出140入8汤圆

发表于 2018-5-12 21:34:03 | 显示全部楼层
假货宝上有Emmc转sdio的小板在卖了,想玩的坛子们可以快速测试一下…

出0入0汤圆

发表于 2018-11-17 14:16:14 | 显示全部楼层
多谢分享。刚好要使用EMMC。

出0入0汤圆

发表于 2020-3-22 10:23:10 | 显示全部楼层
mark一下,论坛刚刚恢复,好像搜索功能不能用。

出0入0汤圆

发表于 2020-3-23 20:12:59 来自手机 | 显示全部楼层
这是可以自己做U盘的节奏吗?

出0入0汤圆

发表于 2020-3-23 20:29:34 来自手机 | 显示全部楼层
感谢漏卮

出0入0汤圆

发表于 2020-7-9 17:03:00 | 显示全部楼层
谢谢,感谢你的无私奉献

出45入29汤圆

发表于 2020-7-23 22:20:02 | 显示全部楼层
GD32F450正好用上 试试谢了

出0入420汤圆

发表于 2020-7-24 02:03:16 | 显示全部楼层
SDIO接口EMMC的驱动,谢谢了

出65入0汤圆

发表于 2020-7-24 08:02:32 来自手机 | 显示全部楼层
现在都有8脚芯片封装的EMMC了!

出0入0汤圆

发表于 2020-7-25 14:37:17 来自手机 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2021-8-5 17:28:22 | 显示全部楼层
Frank.Dong 发表于 2014-10-31 10:47
昨晚试着中间加了个延时(72M主频,计数72000,大概1ms),切换到4bit总线通过了. ...

CMD6的响应是R1b类型,需要检测DAT0输出的忙型号。
查看硬件上哪一个管脚连接的DAT0,主机发送CMD6后,等待该管脚变为高电平,再读取r1回复。
我是这样解决的

出0入0汤圆

发表于 2021-9-13 20:04:34 来自手机 | 显示全部楼层
luweixuan 发表于 2020-7-24 08:02
现在都有8脚芯片封装的EMMC了!

有型号么,哪家的,谢谢!

出0入0汤圆

发表于 2021-9-14 08:36:08 | 显示全部楼层

谢谢分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 15:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表