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 01 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 21 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,来控制整个系统的供电。

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

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

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

Ø Delay Power Control Signal (POWER_KEY_DURATION)

PowerKey与PWCE之间的延迟时间

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

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

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

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

² 延时范围: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 表头

读取数据的大小:

² SD : one sector (512 Bytes)

² SPI: 512 Bytes

² 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则探测下一个启动设备。

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

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

Ø 读取剩余的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设备)

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

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

ü PID 0x0416 & VID 0x9296

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

FA92_musb.bin包含下列内容:

ü 固件标记:0x2054564E

ü 执行地址:0x000F00000

ü 固件大小:0xD104

ü 固件版本:0x13092401

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

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

ü PID 0x0416 & VID 0x5593

参考文献:

1. 20131022_FA92 IBR Introduction.

2. FA92 IBR Programming Guide

N3292x IBR介绍的更多相关文章

  1. paper 99:CV界的明星人物经典介绍

            CV人物1:Jianbo Shi史建波毕业于UC Berkeley,导师是Jitendra Malik.其最有影响力的研究成果:图像分割.其于2000年在PAMI上多人合作发表”Nor ...

  2. N3292系列资料之RTC介绍

    N3292系列资料之RTC介绍 1 RTC特性 Ø 拥有时间计数器(秒,分,时)和日历计数器,用来计算时间 Ø 绝对定时功能(秒,分,时,日,月,年) Ø 相对定时功能 Ø 支持12小时/24小时模式 ...

  3. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  4. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  5. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  6. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  7. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  8. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  9. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

随机推荐

  1. Poetize4 创世纪

    3037: 创世纪 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 123  Solved: 66[Submit][Status] Description ...

  2. Maximum Product Subarray——LeetCode

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  3. log4cxx在vs2013的静态编译

    网络上找了一圈,结果都是通过修改代码来编译,做为强迫症患者接受不了这种修改代码却无法预知代码带来影响的方式,而且没有静态编译的方法,为了方便其他人后续不在走弯路,提供自己的编译方法. 虽然最终的目的是 ...

  4. ScrollView自动滑到底部

    // 自动滑动到底部 mScrollView.post(new Runnable() { @Override public void run() { mScrollView.fullScroll(Sc ...

  5. kNN

    传统的kNN模型 为了获得用户对产品的评分预测值,kNN模型一般包括以下三步: 1.计算相似度 这步中计算每对产品之间的相似度 Person correlation: \[S _ {mn} ^{P} ...

  6. 西安Uber优步司机奖励政策(1月11日~1月17日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. Centos 多个mysql数据库

    一.编译安装第一个MySQL 5.1.33 ? cd /opt   /usr/sbin/groupadd mysql   /usr/sbin/useradd -g mysql mysql -s /bi ...

  8. A_star poj2449 k短路

    赛后填坑系列QAQ 贴代码呀 #include<iostream> #include<algorithm> #include<cstdio> #include< ...

  9. Ubuntu 添加桌面快捷方式

    使用Linux Desktop Entry创建 ~$ cd ~/Desktop/ ~$ vim AndroidStudio.desktop 插入以下代码 [Desktop Entry] Encodin ...

  10. Android Activity启动模式

    <activity android:name=".MainActivity" android:launchMode="singleTask"> &l ...