RK3399 eMMC硬件设计要点

RK3399启动模式

RK3399有三种启动模式:

  • Normal 模式
  • Loader 模式
  • MaskRom 模式

Normal 模式

Normal 模式就是正常的启动过程,各个组件依次加载,正常进入系统。
这个模式无法刷固件, 一般板子通电就是这个模式。

Loader 模式

在 Loader 模式下,bootloader 会进入升级状态,等待主机命令,用于固件升级等。
要进入 Loader 模式,必须让 bootloader 在启动时检测到 RECOVERY(恢复)键按下,且 USB 处于连接状态。

PS:
大多数嵌入式处理器都有在处理器内部有固化代码(ROM),这个代码可以把bootloader从处理器指定的地方(一般是flash,SD卡,USB等)加载到内存,然后跳到bootloader开始执行。或者把nor flash的地址映射到处理器的RESET地址直接执行nor flash中的代码

Bootloader多数有两个阶段的启动过程:
Stage1:
基本的硬件初始化
为加载stage2准备RAM空间
拷贝内核映像和文件系统映像到RAM中
设置堆栈指针sp
跳到stage2的入口点
Stage2:
初始化本阶段要使用到的硬件设备
检测系统的内存映射
加载内核映像和文件系统映像
设置内核的启动参数
嵌入式系统中广泛采用的非易失性存储器通常是 Flash,而 Bootloader就位于该存储器的最前端,所以系统上电或复位后执行的第一段程序便是 Bootloader。

MaskRom 模式

MaskRom 模式用于 bootloader 损坏时的系统修复。
一般情况下是不用进入 MaskRom 模式的,只有在 bootloader 校验失败(读取不了 IDR 块,或 bootloader 损坏) 的情况下,BootRom 代码 就会进入 MaskRom 模式。此时 BootRom 代码等待主机通过 USB 接口传送 bootloader 代码,加载并运行之。

如果开发板上电后遇到以下情况之一:

  • eMMC 内容为空。
  • eMMC 上的 bootloader 损坏。
  • 将 eMMC 数据/时钟引脚接地,eMMC读取数据失败。(所以硬件设计要预留eMMC clock PIN用于进入MaskROM模式 )

CPU 在 eMMC 中就会找不到有效的 IDB (IDentity Block),转而执行一段小型的 ROM 代码,等待主机通过 USB 上传 bootloader 来初始化 DDR 内存并进入升级状态。这种模式称为 Maskrom 模式 。

RK3399 eMMC硬件设计原理图

eMMC 芯片介绍

RK3399 eMMC硬件设计要点_第1张图片
RK3399 eMMC硬件设计要点_第2张图片
RK3399 eMMC硬件设计要点_第3张图片

RK3399 eMMC硬件设计要点_第4张图片

RK3399 eMMC 控制器介绍

RK3399 eMMC硬件设计要点_第5张图片
RK3399 eMMC硬件设计要点_第6张图片
RK3399 eMMC硬件设计要点_第7张图片

参考原理图

RK3399 eMMC硬件设计要点_第8张图片
RK3399 eMMC硬件设计要点_第9张图片

RK3399 PCB设计要点






RK3399 eMMC硬件设计要点_第10张图片

你可能感兴趣的:(嵌入式系统设计)