概述
在实际项目开发中我们常见的问题是有人会问,“当前项目eMMC、SD所使用模式是什么? 速率是多少?”。这些和eMMC、SD的协议中要求的,要符合协议。接下来整理几张图来介绍。
eMMC 模式介绍
一般情况下我们项目中都是会支持到HS400 8bit 1.8V,最大时钟频率为200MHZ,通讯速率可达400MB/s, 双边沿采样。
SD模式介绍
一般项目中TF卡仅支持到UHS-I,最高频率208MHz,UHS-II虽然能支持更高的速率,但是硬件电路不一样,卡也不一样,市面上常规用的卡还是UHS-I的,也可以根据TF卡上的标志看区分,见下图:
eMMC和SD对比
从上图可以看出一个比较有趣的设定,eMMC HS mode最大频率是52MHz,HS200/HS400最大频率是200MHz。 SD HS mode 最大频率是50MHz,SDR104 最大频率是208MHz。这就会给ASIC的设计上带来困扰,分频不太好做成正好能达到最大的时钟频率。因此我司会设定eMMC和SD的HS mode最大频率设定到50MHz,HS200/HS400和SDR104最大频率设定到200MHz。这样对ASIC来说不需要考虑那么多,降低了设计的复杂度。
从上图可以看出,不同的模式对IO的电压是有要求的,尤其SD/SDIO,想要使用UHS-I模式,需要将整个PAD的IO电压切换到1.8V,这往往会在设计上有硬件的SWITCH信号的切换(一般IP寄存器控制),而在linux源码中也有CMD11去做切换电压的事情,可以在linux源码中找到答案。
感谢学习!