N3292x IBR介绍

1 IBR启动流程

图1-1 IBR启动流程

CHIP_CFG[0]


Mode


0


Boot from IBR Recovery Mode with crystal input is 12MHz.


1


Boot From IBR Normal Mode with crystal input is 12MHz.

Table 0?1 IBR启动模式设置

IBR使用到的上电设置

2 时钟设置



Clock Source


Divider


Clock


MPLL


216MHz

   

UPLL


162MHz

   

DRAM Clock


MPLL


2 (Fixed)


108MHz


System Clock


UPLL


1


162MHz


CPU


System Clock


1


162MHz


HCLK


System Clock


2 (Fixed)


81MHz


HCLK1


CPU Clock


2


81MHz


HCLK234


System Clock/2


1


81MHz


APB


HCLK1


2


40.5MHz


NAND


HCLK234


N/A


81MHz


SD


MPLL/8


180/2


150KHz/13.5MHz


SPI


APB


4


10.125MHz


USB


XIN


1


12MHz


UART


XIN


1


12MHz

Table 2?1 IBR 时钟设置


3内存映射

3.1 SRAM

Figure 3-1 SRAM 内存映射

3.2 DRAM

IBR启动后,会开始检测DRAM的大小,前4KB是MSC的只读缓存.


4 RTC初始化流程

 
 


5 IBR 启动控制

5.1 RTC 和系统启动控制

RTC框图

Note:

1. WAKEUPN=RTC_RWAKE_ 本文称之为Power Key (PWRKEY)

2. PWRSWN= RTC_RPWR 本文称之为Power Control Signal(PWCE)

? Power Key (PWRKEY)

用户用来控制除RTC电源以外系统电源的开关。

? Power Control Signal(PWCE)

RTC的输出信号,它用来控制其他部分电源的开关。

? Power on(PWR_ON)

RTC Power Time out Register(PWRON)的bit0,该位通过控制PWCE,来控制整个系统的供电。

2 在PowerKey键按下状态下,将该为置1,PWCE将锁定输出高电平,而后PowerKey放开后,PWCE将保持为高电平,系统上电

2 在PowerKey键弹起状态下,将该为置0,PWCE将变为低电平,系统断电,用来实现软件关机

2 当设置HW_PCLR_EN位时,PowerKey 键按下时间超过PCLR_TIME设定的时间后,硬件会自动清除该位,PWCE变为低电平,实现硬件关机

? Delay Power Control Signal (POWER_KEY_DURATION)

PowerKey与PWCE之间的延迟时间

2 最小延时时间=0.25*(POWER_KEY_DURATION+1) sec

2 PowerKey与PWCE关系图(不使能延时)

2 PowerKey与PWCE关系图(使能延时)

2 该延时只在Powerkey按下和弹起时有效

2 延时范围:62~868ms


5.2 IBR启动

当PWCE由低电平变为高电平时,电源控制部分开始给CPU供电,IBR开始启动,而后IBR会设置PWR_ON位,但IBR不会改变RTC的其他设置。N3292提供如下两种方式来启动IBR。

? 按Powerkey启动

按下Powerkey时,PWCE置高,IBR启动,设置PWR_ON位,锁定PWCE。

? Alarm定时启动

在Power down模式下,发生 RTC alarm后,RTC通过保持alarm_hold信号而使PWCE为高,系统上电,IBR启动并设置PWR_ON位,锁定PWCE,保持整个系统上电。

5.3 IBR对启动的识别

? IBR启动源

因为在power-down模式下不能保持RTC中断的状态,所以不能通过中断状态标志来判断启动源。而是通过比较RTC alarm的时间与IBR的当前时间的异同来判断启动源,具体如下表:

Power Key Status


Time Match


Power on Source


Pressed


No


Power Key


Pressed


Yes


Power Key and RTC Alarm


Released


No


Reset Key/WDT Reset/Power on Exception


Released


Yes


RTC Alarm

注意:WDT复位标志(WTRF)可以用来判别按键复位和WDT复位

? 上电异常

当电池拔掉后,不久又放回时,在没有按下powerkey或RTC alarm的情况下,N3292也会自动上电,这称为上电异常。上电异常情况下需要让N3292进入关机状态。这个状态通常是通过向DRAM或SRAM中写一个特别的关键字来判别的,具体如下:


Specific Key word


Power on source


Software action


Hardware or Software Power Off


Unknown value


Power Key or RTC Alarm


Keep Power On


Reset/WDT


Not Changed


N/A


Keep Power On


Power on Exception


Unknown value


N/A


Power off


6 boot code镜像

6.1 boot code介绍

IBR是通过boot code header来识别boot code信息的。Boot code header包含boot code标记、执行地址、文件大小等信息。

IBR对boot code的大小限制如下表:

Boot code header有两种格式:

? 不包含选项标记的boot code

? 包含选项标记的boot code

6.2 boot code加载流程

Boot code的加载流程如下:

? First read 操作:读取一定大小的数据到SRAM->获取boot code 表头

读取数据的大小:

2 SD : one sector (512 Bytes)

2 SPI: 512 Bytes

2 NAND

512 page: à 512 Bytes

2K page à 2KB

4K page à 2KB

8K page à 2KB

? 解析boot code header

通过boot code标记来判断读到的数据是否是boot code,如果是boot code,就解析boot code header 并做如下操作。如果不是boot code则探测下一个启动设备。

2 把执行地址存储到SRAM,地址:0xFF009FFC

2 如果有选项标记,做选项设置

? 读取剩余的boot code到SDRAM

? 跳转到boot code执行地址,执行boot code

通过设置Program counter来实现

具体如下加载流程如下图:

Boot code加载流程图


7 SD卡启动

7.1 SD0/1/2启动流程图

7.2 SD上电设置

SD类型

CHIP_CFG[7]


SD Card Type


0


MMC


1


eMMC


8 NAND FLASH启动

8.1 NAND BOOT流程


9 SPI启动

9.1 SPI启动流程


10 USB启动

10.1 USB启动流程

10.2 USB boot 设备

? USB启动时,将作为一个Mass Storage 设备

? 支持如下表的Vendor命令来从USB 主机下载程序


Operation code


Vendor code


Description


OPEN


0x06


0x51


Open USB function for USB booting


SET_REG_ADDRESS


0x52


Set Address want to write


SET_REG_VALUE


0x53


Set Value want to write


SET_ADDRESS


0x55


Set Read/Write address


READ


0x71


Set Reading Data Size


WRITE


0x72


Set Writing Data Size


EXECUTE


0x60


Execute the code

? 命令执行流程

? Turbowriter 工作流程(两个MSC设备)

2 在IBR USB启动下,Turbowriter 工具连接到MSC设备

ü 这是一个简单的MSC设备,Turbowriter可以连接这个设备,来下载代码(turbowriter固件程序)到DRAM/SRAM

ü PID 0x0416 & VID 0x9296

2 Turbowriter工具软件发送把turbowriter固件到相应的地址,然后运行它

FA92_musb.bin包含下列内容:

ü 固件标记:0x2054564E

ü 执行地址:0x000F00000

ü 固件大小:0xD104

ü 固件版本:0x13092401

2 Turbowriter工具程序连接到第二个MSC设备(turbowriter固件)

ü 另外一个MSC设备用来对NAND/SD/SPI flash进行编程

ü PID 0x0416 & VID 0x5593

参考文献:

1. 20131022_FA92 IBR Introduction.

2. FA92 IBR Programming Guide

时间: 2024-08-01 23:12:36

N3292x IBR介绍的相关文章

机器视觉方向的大牛介绍

CV人物1:Jianbo Shi史建波毕业于UC Berkeley,导师是Jitendra Malik.其最有影响力的研究成果:图像分割.其于2000年在PAMI上多人合作发表"Noramlized cuts and image segmentation".这是图像分割领域内最经典的算法.主页:www.cis.upenn.edu/~jshi/ 和www.cs.cmu.edu/~jshi/ CV人物2:Kristen Grauman毕业于MIT,导师是Trevor Darrell.其最有

N3292系列资料之RTC介绍

1 RTC特性 ? 拥有时间计数器(秒,分,时)和日历计数器,用来计算时间 ? 绝对定时功能(秒,分,时,日,月,年) ? 相对定时功能 ? 支持12小时/24小时模式 ? 自动识别闰年功能 ? 星期计数器 ? 频率校准功能 ? 支持时钟滴中断功能 ? 支持唤醒功能 掉电唤醒功能 挂起唤醒功能 2 RTC功能介绍 2.1 RTC初始化 当RTC上电启动时,软件需要向INIR寄存器写一个key值(0xA5EB1357)来对RTC进行复位. ? RTC上电后,只需对RTC进行一次初始化操作.(N32

数据库介绍与分类

目录 数据库介绍与分类... 1 1.1 数据库介绍... 2 1.1.1什么是数据库... 2 1.2数据库的种类... 2 1.2.1关系型数据库介绍... 2 1.2.2非关系型数据库介绍... 3 1.3 常用关系型数据库产品介绍... 4 1.3.1 Oracle数据库... 4 1.3.2 MySQL数据库... 5 1.3.3 MariaDB数据库... 5 1.3.4 SqlServer数据库... 6 1.3.5 Access数据库... 6 1.3.6 其他不常用数据库...

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳

苹果高管斯洛基介绍A11仿生芯片背后的秘密!

9月13日凌晨,苹果在秋季发布会上正式推出了全新一代iPhone智能手机:iPhone 8.iPhone 8 Plus和iPhone X(发音为iPhone 10).这三款新设备的都搭载了全新的移动芯片,苹果称之为A11仿生(不是"Fusion"),并表示这是iPhone上有史以来最强大.最智能的芯片. 通过发布会介绍的A11仿生芯片细节,不难发现苹果自主定制芯片野心非常大,可谓雄心勃勃.并且随着时间的推移,针对半导体芯片的定制设计越来越多,A11达到了前所未有的高度.苹果在发布会中的

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

微信小程序管理后台介绍

微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来 ------------------------------------------------------------ http://www.cnblogs.com/likwo/p/6057258.html 好推小程序统计:https://weixin.hotapp.cn关键指标分析推广效果,一行代码接入微信登录 ---------------------------