山寨机的时代,很多年轻的朋友可能比较陌生,手机上会安装一个SD卡,做存储扩展;目前的智能手机会在PCB板上焊接一个EMMC芯片,做大容量数据存储,安全性好了很多,手机丢了也不用担心照片或者资料泄露的问题;

1、EMMC特性

-符合JEDEC/MMC标准版本5.0

-高级12信号接口

-x1、x4和x8I/O,可由主机选择

-SDR/DDR模式,可达52MHz时钟速度

-HS200/HS400模式

-命令类:class 0 (basic); class 2 (blockread); class 4 (block write); class 5 (erase);class 6 (write protection); class 7 (lock card)

2、框图,MMC控制器和NAND存储;

emmc 驱动 emmc驱动下载_uboot

3、MMC型号参数,对应选型表

emmc 驱动 emmc驱动下载_测试程序_02

4、引脚描述

emmc 驱动 emmc驱动下载_emmc 驱动_03

emmc 驱动 emmc驱动下载_emmc_04

标注底纹的部分引脚为有效引脚,其他引脚悬空;

看到以上的,引脚介绍是不是感觉和SD卡很相似;对了,包括控制命令类都和SD卡一样,就当成是一个SD卡操作就OK了;

5、功能框图

emmc 驱动 emmc驱动下载_emmc_05

主要搞定以上寄存器即可。

6、硬件接线图参考:8线数据传输,速率快;

emmc 驱动 emmc驱动下载_引脚_06

7、设备树

mmc0: mmc@f0000000 {
 u-boot,dm-pre-reloc;
 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;//IO管脚定义,具体要参考硬件原理图
 vmmc-supply = <&vcc_mmc0_reg>; //使用的控制器
 vqmmc-supply = <&vcc_3v3_reg>;
 status = “okay”;
 slot@0 {
 reg = <0>;
 bus-width = <8>; //数据线位数,一定要正确
 cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>; //
 };
 };

8、使用总结

EMMC芯片,使用过三星的芯片,还有一些国产的EMMC,都有一个共同的特点,就是型号更新特别快,过了几个月发现没有上一批次的芯片了,已经不生产了;在这里提醒各位,如果使用了EMMC做产品,最好多备货一些,或者选型对比参数上面找替换性更好的厂家及型号。

更多linux知识点推荐:

[linux 底层]u-boot图形化裁剪配置

[Linux 底层]U-boot ksz9031网络驱动调试

[Linux 底层]U-boot调试命令使用技巧

[Linux 底层]U-boot编译移植

[Linux 底层]U-boot烧录脚本介绍SecureCRT

[Linux 底层]bootstrap移植裁剪及编译

[Linux 底层] 平台软件分层介绍

[Linux 驱动] RS485测试程序编写

[Linux 驱动] CAN测试程序编写