LPDDR4协议规范之(二)复位和上电初始化

导读
    1. Voltage Ramp and Device Initialization
        1.1精简如下:(太长不看版)
    2. Reset Initialization with Stable Power
    3. Power-off Sequence

导读

LPDDR4内部的复位分为三种情况,分别是冷启动,冷重启和热重启。
Cold Boot指的是LPDDR4协议规范中的Voltage Ramp and Device Initialization,即上电时电源尚处于爬升阶段时进行的复位操作。应用于初次开机和长时间运行系统老化的问题。在冷启动过程中,内存控制器和LPDDR4的所有系统都会进行完整的初始化操作,LPDRR4无法保存上一次的数据,并且包含完整的初始化过程中和调驯(Training),时间较长。冷重启即LPDDR4协议规范中所述的Reset Initialization with Stable Power,是有系统稳定运行时由硬件启动的复位操作。冷重启是Controller、PHY和LPDDR4 SDRAM都需要重启,但是不需要Training操作,耗时相对较短,但是数据仍然会丢失。热重启即软件启动,即Controller和PHY的重启,但是SDRAM处于自刷新模式,不会丢失数据。
1. Voltage Ramp and Device Initialization

以下摘录自LPDDR4协议规范,(精简版在下面)以下顺序将用于为LPDDR4设备供电。除非另有说明,否则这些步骤是强制性的。请注意,所有通道的加电顺序必须同时进行。
1.通电时(在Ta之后),建议RESET_n为LOW(≤0.2x VDD2),所有其他输入必须在VILmin和VIHmax之间。当RESET_n保持为低电平时,器件输出保持在高阻态。表1中提供了电源电压斜坡要求。VDD1必须同时或早于VDD2斜坡。 VDD2必须同时或早于VDDQ斜坡上升。

2.电压斜坡(Tb)完成后,必须将RESET_n保持为低电平。在电压上升期间,DQ,DMI,DQS_t和DQS_c的电压电平必须在VSSQ和VDDQ之间,以避免闭锁。在电压斜坡期间,CKE,CK_t,CK_c,CS_n和CA输入电平必须在VSS和VDD2之间,以避免闩锁。
3.从Tb开始,RESET_n必须至少保持tINIT1(Tc)的低电平,之后RESET_n可以置为高电平(Tc)。 RESET_n无效前至少10ns,要求CKE设置为低电平。所有其他输入信号为“无关”。
4. RESET_n无效(Tc)后,至少等待tINIT3才能激活CKE。在CKE变为活动状态(Td)之前,必须为tINIT4启动并稳定时钟(CK_t,CK_c)。当控制器激活CKE时,要求CS保持低电平。
5.将CKE设置为高电平后,至少等待tINIT5发出任何MRR或MRW命令(Te)。对于MRR和MRW命令,时钟频率必须在为tCKb定义的范围内。在适当配置系统之前,某些AC参数(例如tDQSCK)可能具有宽松的时序(例如tDQSCKb)。
6.完成所有MRW命令以设置上拉,下拉和Rx终止值之后,DRAM控制器可以向存储器(Tf)发出ZQCAL启动命令。该命令用于在过程,电压和温度范围内校准VOH电平和输出阻抗。在不止一个LPDDR4 DRAM器件共享一个外部ZQ电阻的系统中,控制器不得与每个LPDDR4器件的ZQ校准序列重叠。在tZQCAL(Tg)之后必须完成ZQ校准序列,并且必须发出ZQCAL Latch命令以将DQ驱动程序和DQ + CA ODT更新为校准值。
7.满足tZQLAT(Th)之后,应通过发出MRW命令(命令总线训练模式)来对命令总线(内部VREF(CA),CS和CA)进行高速操作训练。该命令用于校准设备的内部VREF并将CS / CA与CK对齐以实现高速操作。 LPDDR4器件将使用配置用于低速操作的接收器上电,并且VREF(CA)设置为默认出厂设置。在完成命令总线训练之前,可能无法以高于tCKb的时钟速度进行正常的设备操作。注意:命令总线训练MRW命令使用CA总线作为校准数据流的输入,并在DQ总线上异步输出结果。有关如何进入/退出训练模式的信息,请参见MRW 4.29(项目1)。
8.在命令总线训练之后,DRAM控制器必须执行写均衡。当MR2 OP [7]为高(Ti)时,启用写平整模式。有关写平衡输入和退出序列的详细说明,请参见4.31,模式寄存器写WR平衡模式。在写均衡模式下,DRAM控制器将写DQS_t / _c时序调整到LPDDR4器件识别具有所需写等待时间的写DQ数据突发开始的点。
9.写入均衡后,应使用MPC训练命令并通过发出MRW命令来调整VREF(DQ)(Tj),对DQ总线(内部VREF(DQ),DQS和DQ)进行高速操作训练。 LPDDR4器件将通过配置为低速运行的接收器上电并将VREF(DQ)设置为默认出厂设置上电。在完成DQ总线培训之前,不得尝试以高于tCKb的时钟速度进行正常的设备操作。 MPC读取校准命令与MPC FIFO写入/读取命令一起使用以训练DQ总线而不会干扰存储器阵列的内容。有关DQ总线培训序列的详细信息,请参见DQ总线培训部分。
10.在Tk时,LPDDR4器件已准备就绪,可以正常运行,并且可以接受任何有效的命令。此时应再写入以前未设置为正常工作的任何其他寄存器。

1.1精简如下:(太长不看版)

(1)电源斜升阶段,供电必须在20ms内达到稳定
(2)断言reset_n信号并且至少持续200微秒
(3)在reset_n取消前10ns,保证CKE(时钟使能信号)为低
(4)释放复位且至少2ms后,可以断言CKE信号,但必须保证在这之前CK已经存在并且至少持续5个时钟周期。
(5)配置模式寄存器
(6)进行ZQ长校准
(7)调驯Training
(8)执行写均衡操作
(9)写均衡后,继续进行Training操作(训练的时序可能是不固定的)
(10)LPDDR4 SDRAM器件已就绪
2. Reset Initialization with Stable Power

1.需要复位时,随时将RESET_n设置在0.2 x VDD2以下。 RESET_n需要保持最小tPW_RESET。 在取消激活RESET_n之前,必须将CKE拉低至少10 ns。
2.重复上述Voltage Ramp and Device Initialization中的步骤4至10。
3. Power-off Sequence

需要执行以下步骤关闭设备电源。
断电时,CKE必须保持为低电平(≤0.2X VDD2),所有其他输入必须在VILmin和VIHmax之间。 CKE保持为低电平时,器件输出保持在高阻态。 在电压上升期间,DQ,DMI,DQS_t和DQS_c电压电平必须在VSSQ和VDDQ之间,以避免闩锁。 电压斜坡期间,RESET_n,CK_t,CK_c,CS和CA输入电平必须在VSS和VDD2之间,以避免闩锁.Tx是任何电源降至低于指定最小值的点.Tz是所有电源均处于 低于300mV。 TZ之后,设备将关闭电源
————————————————
版权声明:本文为CSDN博主「YJFeiii」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YJFeiii/article/details/105470451

LPDDR4协议规范之(二)复位和上电初始化相关推荐

  1. 从头开始写STM32F103C8T6驱动库(二)——编写系统初始化程序,配置时钟树

    系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库(一)--STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库(二)--编写系统初始化程序 ...

  2. 硬件复位、软件复位、上电复位的异同

    硬件复位 顾名思义通过硬件给系统一个复位,比如在电路板上设计一复位电路,通 过按下按键就可以给系统实现一个复位,而无论系统在执行什么样的程序 复位启动以后需要重新加载加载FPGA.DSP等,也有可能在 ...

  3. 十二、linux GPIO初始化

    一.如何查看LINUX内核 很多人说学习linux最好的方法是看内核源码,那怎么看呢?总不能通篇看吧,那猴年马月都看不完.现在我就教大家一个办法(以GPIO为例): 在内核源码目录下使用命令" ...

  4. Spring IoC(二)IoC容器的初始化过程

    (一)IoC 容器初始化过程概述 1.1简要概述初始化过程 IoC 容器的初始化过程是通过refresh() 方法来启动的,这个方法标识着IoC 容器正式启动.具体来说,这个启动过程包括:BeanDe ...

  5. C语言基础入门48篇_30_二维数组的定义与使用(二维数组的定义:type 数组名[行][列]、二维数组的初始化、二维数组的引用)

    1. 二维数组的定义 type 数组名[行][列] 2. 二维数组的初始化 2.1 全部初始化为0 char chAry[2][3] = { 0 }; 实例: #include <stdio.h ...

  6. 二维数组的初始化(二维数组的赋值)

    二维数组的初始化必须在声明的时候进行.否则会报错. 比如,你应该在声明它的时候就立即赋值: unsigned char bitmap[16][17]={{0,0,0,0,0,0,0,0,0,0,255 ...

  7. 二维数组正确初始化规则

    最近刷题总在二维数组初始化这里栽跟头,接下来总结一点二维数组的初始化规则以便记忆 这里提一句一维数字代表行,二维数字代表列 arr[2][3]就是创建两行三列的数组 二维数组在初始化的时候可以分行进行 ...

  8. C++二维数组的初始化赋值及示例

    C++二维数组可以看作一个表格,横向为表格的行,纵向为表格的列,数组定义时行号在前,列号在后.二维数组的定义格式为: 数据类型  数组名[常量行表达式][常量列表达式]. 二维数组的元素是按先行后列的 ...

  9. C语言二维数组的初始化方法

    C语言二维数组的初始化方法 01 完全赋值式一 int x[3][4]={{1,2,3,4}{5,6,7,8},{9,10,11,12}}; 02 完全赋值式二 int x[3][4]={1,2,3, ...

  10. 二维数组的初始化,下标,遍历,及数组间的赋值

    二维数组的初始化,下标,遍历,及数组间的赋值 前言 今天讲解一维数组的升级版,二维数组. 一.二维数组与一维数组的比较 int a [5] ; / /一维数组 int c [3] [4]; / /二维 ...

最新文章

  1. 【金三银四跳槽季】Java工程师的面试之路,需要“解锁”哪些技术盲点?
  2. h5实现手机端等级进度条
  3. 建议收藏!百度不到的硬核资源~
  4. df命令,du命令,磁盘分区
  5. 【面经】中软-数据实习生
  6. OpenCV的DNN模块
  7. iOS-夜间模式(换肤设置)
  8. python中数据类型转换_Python(二).数据类型,数据类型转换
  9. 01.查找的基本概念
  10. vue中指令的编译过程
  11. Apache日志配置详解(rotatelogs LogFormat)
  12. nginx对PHP文件报File not found.错
  13. Collectors.toSet()
  14. matconvnet 尝试将 SCRIPT vl_imreadjpeg 作为函数执行:
  15. android添加本地资源文件,本地html文件放置位置,android中加载本地Html文件
  16. HP M1136打印机 Mac驱动程序分享
  17. GPS 校验和 代码_嵌入式Linux平台的GPS数据采集
  18. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光
  19. android通过辅助功能收集数据
  20. 向量范数与矩阵范数矩阵模的平方-函数和几何以及映射的关系-数学

热门文章

  1. Windows Dos命令
  2. Allegro Pad Designer焊盘制作指南
  3. 推荐几个我喜爱的英文民谣歌手
  4. 速达 从xp系统换成win7
  5. 凝胶渗透色谱的基本概念(一)
  6. ofdm信道估计 线性插值matlab,OFDM信道估计的MATLAB仿真
  7. 2021-10-21 FFmpeg截取视频第一帧
  8. 从《华为的冬天》到AI的冬天 | 甲子光年
  9. java 一年 周数_java获取一年共有多少周
  10. SpringBoot + React汽车租赁管理系统 附带详细运行指导视频