Atmel AT91SAM7S64 User Manual

特点
集成了 ARM7TDMI
高性能的 32 RISC 架构高密度的 16 位指令集性能 / 功耗 (MIPS/Watt) 的领先者嵌入式 ICE 电路仿真,支持调试通讯
64K 字节的片内高速 Flash 存储器,共 512 页,每页 128 字节
– 在最坏的条件下可以 30 MHz 的速度进行单时钟周期访问 ,
预取 (Prefetch) 缓冲器可以实现 Thumb 指令的优化,使处理器以最快的速度执行指令
页编程时间为 4 ms,包括页自动擦除,全片擦除时间为 10 ms – 10,000 次的写寿命, 10 年数据保持能力,扇区锁定功能, Flash 安全锁定位适合量产的快速 Flash 编程接口
16K 字节的片内高速 SRAM,可以在最高时钟速度下进行单时钟周期访问操作
存储器控制器 (MC)
嵌入式 Flash 控制器,异常中断 (Abort) 状态及未对齐 (Misalignment) 检测
复位控制器 (RSTC)
上电复位和经过工厂标定的掉电检测提供复位源信息以及给外部电路使用的复位信号
时钟发生器 (CKGR)
低耗 RC 振荡器, 3 到 20MHz 的片上振荡器和一个 PLL
电源管理控制器 (PMC)
可以通过软件进行电源优化,包括慢速时钟模式 ( 低至 500 Hz) 和空闲 (Idle) 模式三个可编程的外部时钟信号
先进的中断控制器 (AIC)
可以单独屏蔽的、具有 8 个优先级的向量式中断源两个外部中断源和一个快速中断源,可以防止虚假 (spurious) 中断
调试单元 (DBGU)
–2线 UART,支持调试通讯通道中断 ; 可通过程序来禁止通过 ICE 进行访问
周期性间隔定时器 (PIT)
–20位可编程的计数器,加上 12 位的间隔计数器
时间窗看门狗 (WDT)
–12位受预设值 (key)保护的可编程计数器为系统提供复位或中断信号当处理器处于调试状态或空闲模式时可以停止计数器
实时定时器 (RTT)
–32位自由运行的具有报警功能的计数器时钟来源于片内 RC 振荡器
一个并行输入 / 输出控制器 (PIOA)
–32个可编程的复用 I/O,每个 I/O 最多可以支持两个外设功能输入电平改变时,每个 I/O 都可以产生中断可以独立编程为开漏输出、使能上拉电阻以及同步输出
11 个外设数据控制器 (PDC) 通道
一个 USB 2.0 全速 (12 Mbps) 设备端口
片上收发器, 328 字节可编程的 FIFO
一个同步串行控制器 (SSC)
每个接收器和发送器都具有独立的时钟和帧同步信号支持 I²S,支持时分多址支持 32 位数据输的高速连续数据功能
两个通用的同步 / 异步收发器 (USART)
独立的发生器, IrDA 外调制 / 支持 ISO7816 T0/T1 握手信号,支持 RS485 –USART1支持全功能的调制调器信号
/ 串行外设接口 (SPI)
–8到 16 位可编程的数据度,4 个片线
一个 3 通道的 16 位定时器 / 计数器 (TC)
–3个外部时钟输入端,每个通道有两个多功能 I/O 引脚PWM 发生功能,捕捉 / 波形模式,递增 / 递减计数
®
ARM® Thumb® 处理器
AT91 ARM® Thumb
®
处理
AT91SAM7S64
初稿
本文是英文数据手册的中文翻 译,其目是方便中国用户的阅 读。它无法自动跟随 原稿的更 新,同 时 可能存在翻译上的错 误。读应该英文原稿参考 获得更准确的信息
6070A–ATARM–07-Jun-05
一个 4 通道的 16 PWM 控制器 (PWMC)
一个两线接口 (TWI)
支持主机模式,支持有的 Atmel 两线 EEPROM
一个 8 通道的 10 位模数转换器,4 个通道数字 I/O 复用
IEEE 1149.1 JTAG 边界扫描支持有的数字引脚
5V 兼容I/O,包括 4 个高16 mA 流驱I/O
电源
片上 1.8V 调节器,可以为内及外部元件提供高100 mA 的电I/O 口线提供电源的 3.3V VDDIO,以及独立的为 Flash 供电的 3.3V VDDFLASH – 电源为 1.8V VDDCORE,并具有掉电检测 (BoD) 功能
态操作:极限条件下 (1.65V85°C ) 高55 MHz
封装64 LQFP
描述 AT91SAM7S64是Atmel 32ARM RISC 处理器小引脚数Flash微处理器家族的一员。它
64K 字节的高速 Flash 16K 字节的 SRAM丰富的外设源,包括一个 USB 2.0
设备,使外部器件数目减至最低的完整系统功能集。这是那些正寻求额外处理能 力和更大存储器的 8 位处理器用的理想选择。
Flash 存储器可以通过 JTAG-ICE 进行编程,或者是在贴装之前利用编程器的并行接口进 行编程锁定位可以防止固件不小心被改写,安全锁定位可以保护件的安全
AT91SAM7S64 的复位控制器可以管理片的上电顺序以及个系统BOD 和看门狗 可以控器件是否正确工作
AT91SAM7S64 是一个通用处理器。它 集成了 USB 设备端口,使得它成为 的外设应用的理想芯片。极 具竞争力的性价比进一步拓展在低成本、大产量的消费类中的
PC手机
2
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
方框图
Figure 1. AT91SAM7S64 框图
TDI TDO TMS TCK
JTAGSEL
TST
FIQ
IRQ0-IRQ1
PCK0-PCK2
PLLRC
XIN
XOUT
VDDCORE
VDDCORE
NRST
DRXD DTXD
RXD0
TXD0
SCK0
RTS0 CTS0
RXD1
TXD1
SCK1
RTS1
CTS1 DCD1 DSR1 DTR1
RI1 NPCS0 NPCS1 NPCS2 NPCS3
MISO MOSI
SPCK
ADTRG
AD0 AD1 AD2 AD3
AD4 AD5 AD6 AD7
ADVREF
System Controller
PIO
PLL
OSC
RCOSC
BOD
POR
PIO
PIO
JTAG
SCAN
Controller
DBGU
AIC
PMC
Reset
PIT
WDT
RTT
PIOA
PDC
PDC
ICE
USART0
USART1
SPI
ADC
ARM7TDMI
Processor
Memory Controller
Embedded
Flash
Controller
Abort
Status
Peripheral Bridge
Peripheral DMA
Controller
11 Channels
APB
PDC
PDC PDC
PDC PDC
PDC PDC
Address Decoder
Misalignment
Detection
FIFO
PDC
PDC
AT91SAM7S64 Preliminary
USB Device
PWMC
SSC
Timer Counter
TC0
TC1
TC2
TWI
1.8 V
Voltage
Regulator
SRAM
16 Kbytes
Flash
64 Kbytes
Fast Flash
Programming
Interface
Transceiver
PIO
VDDIN GND VDDOUT
VDDCORE VDDIO
VDDFLASH
ERASE
PGMRDY PGMNVALID PGMNOE PGMCK PGMM0-PGMM3 PGMD0-PGMD15 PGMNCMD PGMEN0-PGMEN2
DDM DDP
PWM0 PWM1 PWM2 PWM3 TF TK TD RD RK RF TCLK0 TCLK1 TCLK2 TIOA0 TIOB0
TIOA1 TIOB1
TIOA2 TIOB2
TWD TWCK
6070A–ATARM–07-Jun-05
3

信号说明

Table 1. 信号说明列表
信号名称 功能 类型 电平 说明
电源
VDDIN 调节器电源输入端 电源 3.0V - 3.6V
VDDOUT 调节器输出 电源 1.85V,标
VDDFLASH Flash 存储器的电源 电源 3.0V - 3.6V
VDDIO I/O 电源 电源 3.0V - 3.6V
VDDCORE 电源 电源 1.65V - 1.95V
VDDPLL PLL 电源 1.65V - 1.95V
GND 地地
时钟,振荡器和 PLL
XIN 时钟振荡器输入 输入
XOUT 时钟振荡器输出 输出
PLLRC PLL 滤波器输
PCK0 - PCK2 可编程的时钟输出 输出
ICE JTAG
TCK 测试时钟 输入 有上拉电阻
TDI 测试数据输入 输入 有上拉电阻
TDO 测试数据输出 输出
TMS 测试模式选择 输入 有上拉电阻
JTAGSEL JTAG 选择 输入 下拉电阻
Flash 存储器
ERASE Flash NVM 配置位擦除命令 输入 高电平 下拉电阻
复位 / 测试
NRST 处理器复位 I/O 低电平 上拉电阻
TST 测试模式选择 输入 下拉电阻
调试单元
DRXD 调试数据接收 输入
DTXD 调试数据发送 输出
AIC
IRQ0 - IRQ1 外部中断输入 输入
FIQ 快速中断输入 输入
4
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
Table 1. 信号说明列表
信号名称 功能 类型 电平 说明
PIO
PA0 - PA31 并行 IO 控制器 AI/O复位时为上拉电阻的输入端
USB Device Port
DDM USB 设备端口数据 -
DDP USB 设备端口数据 +
USART
SCK0 - SCK1 串行时钟 I/O
TXD0 - TXD1 发送数据 I/O
RXD0 - RXD1 接收数据 输入
RTS0 - RTS1 请求发送 输出
CTS0 - CTS1 清零后发送 输入
DCD1 数据载波检测 输入
DTR1 数据 输出
DSR1 数据设备 输入
RI1 输入
同步串行控制器
TD 发送数据 输出
RD 接收数据 输入
TK 发送时钟 I/O
RK 接收时钟 I/O
TF 发送帧同步 I/O
RF 接收帧同步 I/O
定时器 / 计数器
TCLK0 - TCLK2 外部时钟输入 输入
TIOA0 - TIOA2 I/O 口线 AI/O
TIOB0 - TIOB2 I/O 口线 BI/O
PWM 控制器
PWM0 - PWM3 PWM 通道 输出
SPI
MISO 主机输入,从机输出 I/O
MOSI 主机输出,
从机输入 I/O
SPCK SPI 串行时钟 I/O
NPCS0 SPI 外设片0I/O低电平
NPCS1-NPCS3 SPI 外设片选 1 到 3 输出 低电平
6070A–ATARM–07-Jun-05
5
Table 1. 信号说明列表
信号名称 功能 类型 电平 说明
两线接口
TWD 串行数据 I/O
TWCK 串行时钟 I/O
模数转换
AD0-AD3 输入 复位时为上拉电阻的数字输入端口
AD4-AD7 输入 输入
ADTRG ADC 发输
ADVREF ADC 参考
快速 Flash 编程接口
PGMEN0-PGMEN1 编程使能 输入
PGMM0-PGMM3 编程模式 输入
PGMD0-PGMD15 编程的数据 I/O
PGMRDY 编程结束 输出 高电平
PGMNVALID 数据 输出 低电平
PGMNOE 编程过程中数据 输入 低电平
PGMCK 编程时钟 输入
PGMNCMD 编程命令 输入 低电平
6
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
封装引脚排列 AT91SAM7S64 的封装为 64 脚LQFP。
64LQFP封装机械形Figure 2 给出了 64 LQFP 封装的定位机械尺寸机械特性一节有详细说明。
Figure 2. 64 LQFP 封装引脚 ( 顶视图 )
48
49
64
1
33
32
17
16

引脚排列

Table 2. AT91SAM7S64 引脚排列 (64 脚 LQFP 封装
1 ADVREF 17 GND 33 TDI 49 TDO
2 GND 18 VDDIO 34 PA6/PGMNOE 50 JTAGSEL
3 AD4 19 PA16/PGMD4 35 PA5/PGMRDY 51 TMS
4 AD5 20 PA15/PGM3 36 PA4/PGMNCMD 52 PA31
5 AD6 21 PA14/PGMD2 37 PA27/PGMD15 53 TCK
6 AD7 22 PA13/PGMD1 38 PA28 54 VDDCORE
7 VDDIN 23 PA24/PGMD12 39 NRST 55 ERASE
8 VDDOUT 24 VDDCORE 40 TST 56 DDM
9 PA17/PGMD5/AD0 25 PA25/PGMD13 41 PA29 57 DDP
10 PA18/PGMD6/AD1 26 PA26/PGMD14 42 PA30 58 VDDIO
11 PA21/PGMD9 27 PA12/PGMD0 43 PA3 59 VDDFLASH
12 VDDCORE 28 PA11/PGMM3 44 PA2 60 GND
13 PA19/PGMD7/AD2 29 PA10/PGMM2 45 VDDIO 61 XOUT
14 PA22/PGMD10 30 PA9/PGMM1 46 GND 62 XIN/PGMCK
15 PA23/PGMD11 31 PA8/PGMM0 47 PA1/PGMEN1 63 PLLRC
16 PA20/PGMD8/AD3 32 PA7/PGMNVALID 48 PA0/PGMEN0 64 VDDPLL
6070A–ATARM–07-Jun-05
7

电源的考虑

电源 AT91SAM7S64 有 6 种类型的电源输入引脚以及一个集成的电源调节器,使器件可以工
作于单一电压。这 6 电源引脚类型
•VDDIN电压调节器的电源输入输入电压范围是 3.0V 3.6V,标值为 3.3V。如 果不用电压调节器,则 VDDIN 应该连接到 GND。
•VDDOUT调节器的输出, 1.8V
•VDDIO:I/O 及 USB 的电源支持电压范围为 3.0V 到 3.6V,标值为 3.3V
VDDFLASH为 Flash 部分提供电源,而且是 Flash 正确工作的先条件压范 为 3.0V 3.6V,标值为 3.3V
VDDCORE:芯逻辑部分的电源
以通过解耦容连接到 VDDOUT 引脚。 VDDCORE 器件内,包括 Flash 正确 工作的前提。
•VDDPLL振荡器和 PLL 的电源可以接到 VDDOUT
个输入电源并有独立的地回路引脚。因此 GND 系统应尽可能短。
功耗 25°C 时,VDDCORE 态电流小60 µA,包括 RC 振荡器、电调节器和上电复
使能掉电复位 BOD 将额20 µA 态电流。 全速工作运行不基于 Flash VDDCORE 的动态功耗 小于 50 mA。若 程序在 Flash
运行VDDFLASH 的电流不超10 mA
压范围从 1.65V 到 1.95V典型值为 1.8V
调节器 AT91SAM7S64 有一个由系统控制器管理的电调节器
常模式下,电压调节器消耗的态电流还不到 100 µA,而输出电流则100 mA调节器支持低功耗模式。在模式下它只消20 µA 态电,输出电流可达
1 mA VDDOUT 必须足够解耦减少纹波和防止振荡方法是两个电
VDDOUT和 GND 一个 470 pF (或1 nF) NPO材质的电靠近芯;另一个
2.2 µF ( 3.3 µF) X7R 材质的电容。
VDDIN 也需要足够解耦
。例如可以两个电在一起:100 nF NPO 4.7 µF X7R 容。
来提高启动稳定性以及减少压降。输入电容也需要尽靠近

典型的电源

3.3V 单电源 AT91SAM7S64 支持 3.3V 单电源模式片内电调节器接到 3.3V,输出则连接到

VDDCORE VDDPLLFigure 3 给出了通过 USB 线供电的线路图。
8
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
Figure 3. 3.3V 单电源供电系统
AT91SAM7S64 Preliminary
VDDFLASH
Power Source
ranges
from 4.5V (USB)
to 18V
DC/DC Converter
3.3V
VDDIO
VDDIN
Voltage
Regulator
VDDOUT
VDDCORE
VDDPLL
6070A–ATARM–07-Jun-05
9

I/O 考虑

JTAG 引脚 TMSTDITCK 是施密特发器的输入引脚。TMSTCK5V兼容TDI 则不是。
TMSTDI TCK 有上拉电阻 TDO 为输出引脚,输出电平可VDDIO有上拉电阻
引脚 JTAGSEL 拉高时选择 JTAG 边界扫描功能。此引脚集成了阻值15 k Ω 的片内 下拉电阻,以在常工作模式下可以悬空。
测试引脚 TST用于生产测试,或拉高以进入快速编程模式TST集成了阻值约为 15 kΩ 的片内下
拉电阻,以在常工作模式下可以悬空。 为了使能快速编程模式,引脚 TST PA0PA1 需要拉高 TST 为高时,PA0 PA1 0 将导致不可预测的结果。
复位引脚 NRST 是双向引脚。它可以被片内的复位控制器拉低,从而为外部器件产生复位信号;也
可以外部电路拉低以复位处理器。复位有持时间的制,复位控制器可以保 产生最小长度的脉冲。从而可以在引脚 NRST 地连接一个摁键作为用的系 统复位控制,同时可以利用 NRST 信号来复位系统的器件
NRST 引脚有一个上拉电阻接到 VDDIO
ERASE 引脚 引脚 ERASE 用于 Flash NVM 位的擦除。引脚具有阻值 15 k Ω 的下拉电
阻,以在常工作模式下可以悬空。
PIO 控制器 A 端口 I/O口线PA0-PA315V兼容,且每个I/O都具有可编程的上拉电阻通过PIO 控制器可以
对每一个 I/O 的上拉电阻进行单独控制 5V 兼容意味着 I/O 可以输出 VDDIO 的电平,输入可以高5.5V能使
I/O 的上拉电阻,否则将导致不可预测的结果。特是在复位时一定要注意,因为在复阶段有的 I/O 缺省上拉电阻的输入引脚。
I/O 动电平 PA0-PA3 可以输出大流。每个 I/O 都可以驱动高16 mA 的电流。
I/O 能输出 8 mA 的电流。 要注意I/O 输出的电流之150 mA
10
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

处理器和结构

ARM7TDMI 处理器 基于 ARMv4T 冯 - 诺依曼结构的 RISC 处理器
运行速度可55 MHz0.9 MIPS/MHz 的性能
两个指令集 –ARM –Thumb
•3线 指令(F) – 指令(D) – 执行 (E)

调试和测试特点 集成的片上仿真器

两个观察点 (watchpoint) 单元 通过 JTAG 协议访问测试访问端口 TA P 调试通讯通道
调试单元 两线 UART – 可以处理调试通讯通道中断 ID 存器
IEEE1149.1 JTAG 边界扫描支持有的数字引脚
®
高性能 32 位指令集
®
代码密度 16 位指令集

存储器控制器 总线仲裁

处理来自 ARM7TDMI 和外设数据控制器的请求
器可以提供下片信号 –3个 1M 字节的片内存储区 一个 256M 字节的片内外设区
仲裁状态存器 保存了仲裁的来源、类型以及 通过检测坏的指方便调试
对齐 (alignment) 检测 访问数据时的对齐检 发生未对齐情况时产生异常中断
重映射 (Remap) 命令 SRAM 映射到片内非易失性存储器 (NVM) 的位 允许外向量的动态处理
嵌入式 Flash 控制器 嵌入式 Flash 接口,最多可有 3 个可编程的等待 预取缓冲器,用于缓冲及预16 请求从而减少等待周期 受预设值保护的编程、擦除和锁定 / 锁定序器 存储器擦除、编程和锁定操作都只需要一个命令 执行禁止的操作将引发中断
周期
6070A–ATARM–07-Jun-05
11

外设数据控制器 处理外设与存储器之间的数据传输

•11个通道 每个 USART 有两个 调试单元有一个 串行同步控制器 (SSC) 有两个 SPI 有两个 模数转换器有一个
低的线仲裁 存储器到外设的只需要一个时钟周期 外设到存储器的只需要两个时钟周期
下一个指针” 管理减少了中断时间
12
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
存储器 •64K字节 Flash
–512页,每页 128 字节 快速的访问时间,在最坏的条件下访问周期可30 MHz – 页编程时间4 ms,包括页自动擦除时间 有自动擦除操作的页编程时间2 ms – 全片擦除时间10 ms – 10,000 次写寿命, 10 年数据保存时间 –16个锁定位,每个保护一个扇区 ( 每个扇区包含 32 页 ) 保护 Flash 安全的保护模式
•16K字节的快速 SRAM 在全速工作时仍然可以单时钟进行访问

存储器映射

片内 SRAM AT91SAM7S64有16K字节的高速SRAM。芯 片复位后,直到执行 Remap 命令,SRAM 的
访问址为 0x0020 0000重映射之后SRAM 的访问址变为 0x0
片内 Flash AT91SAM7S64有64K字节的Flash。在任何的访问址都0x0010 0000。此 外,
片复位之后Remap 之前可以0x0 进行访问
Figure 4. 片内存储器映射
0x0000 0000
0x000F FFFF
0x0010 0000
0x001F FFFF
0x0020 0000
256M Bytes
0x002F FFFF 0x0030 0000
0x0FFF FFFF
Flash Before Remap
SRAM After Remap
Internal Flash
Internal SRAM
Undefined Areas
(Abort)
1 M Bytes
1 M Bytes
1 M Bytes
253 M Bytes
6070A–ATARM–07-Jun-05
13

片内 Flash

Flash 概览 AT91SAM7S64Flash组织512页,每页128字节全部65,536字节以32位字的
在一起。
Flash 了一个 128 字节的写缓冲区,可以 32 位的接口进行访问 片内复位单元和低电压检测器 BOD可以帮助 Flash 在电变化时防止代码毁坏,使在
最坏的情况之下。
片内 Flash 控制器 片内 ( 嵌入式 )Flash 控制器 (EFC) 管理系统各个主机执行的存储器访问。它 控制对 Flash
访问以及对写缓冲区的写访问。它还包括了一个用接口,映射APB 的存储器控 制器。用户接口允许
编程 Flash 的访问( 等待周期的个数,时序,等等 )
全片擦除、页擦除、页写、 NVM 位设/ 命令
取上一个命令的结束状态
错误状态
上一个命令结束或发生错误时产生中断
片内 Flash 控制器提供32 位预取缓冲器以优化对 Flash 存储器的 16 位访问。这 对运 行于 Thumb 模式的处理器特别有效。
锁定区 EFC管理16个锁定位以保护 flash的16个区,防止这些擦除或编程 每个
锁定区域包含 32 页,共 4K 字节 如果的区进行擦除或编程,这些命令将终止,同时 EFC 发一个中断 通过 EFC
除锁定位命令除锁定区的锁定状态 ERASE 拉高将清有的锁定位,从而将全部的 Flash

安全位的特点 AT91SAM7S64 有一个安全位。它 是 一个特殊的 NVM。当安全位使能时,对 Flash

有访问,包括通过 ICE 接口或快速Flash编程接口,都被禁止。从 而 保护了 Flash 的内容。 个安全位能通过 EFC 接口的 “ 设安全位命令来使能。而禁止安全位能通
ERASE 引脚拉高,将整flash 全部擦除。在安全位为禁止状态的情况下,对 flash有操作都可以进行
很重的一点是,拉高 ERASE 引脚的时间必须大50 ms 由于 ERASE 集成了下拉电阻,在常工作模式下这个引脚可以悬空。不 过将它直接连接
GND 也是安全的
非易失性掉电检测控制 掉电检测 (BOD) 由两个通用的 NVM (GPNVM) 位控制。因此即使有了电源,掉电检测
仍然可以保持用的定 两个 GPNVM 位的除和设通过 EFC 接口的 除通用 NVM 命令和
通用 NVM 命令来实现
GPNVM 位 0 用于控制掉电检测的使能置 GPNVM0 将使能 BOD,
GPNVM 位 1 控制掉电检测信号是否可以用于系统复位。置GPNVM1 使能个功
接口可以对 16 NVM 位实行软件编程。“ 锁定位命令动保护操
禁止
BOD。拉高 ERASE 将清除 GPNVM0从而禁止 BOD
能,清零 GPNVM1 禁止掉电检测信号复位整个芯片。拉高 ERASE 禁止掉电检 测复位
标定位 8 个NVM位用于标定掉电检测器及电压调节器。这 些 位的配置在出厂之前完成,用户不
进行修改ERASE 引脚的状态对标定位没有影响
14
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
快速 Flash 编程接口 FFPI 快速 Flash 编程接口允许通过串行 JTAG 接口或实现了握手信号的并行口对 Flash
行快速编程。这样就可以通过符合市场标的工业编程器进行量编程 FFPI 支持、页编程、页擦除、全片擦除、锁定、锁和保护命令 拉高引脚 TSTPA0 PA1 使能 FFPI,并使片进入快速编程模式
6070A–ATARM–07-Jun-05
15
系统控制器 系统控制器管理处理器所有的模中断、时钟、电源、时序、调试以及复位

Figure 5. 系统控制器框图

NRST
irq0-irq1
periph_irq[2..14]
pit_irq
rtt_irq
wdt_irq
dbgu_irq
pmc_irq
rstc_irq
periph_nreset
dbgu_rxd
debug
periph_nreset
SLCK
periph_nreset
SLCK
debug
proc_nreset
cal gpnvm[0]
en
BOD
POR
SLCK
fiq
MCK
MCK
idle
gpnvm[1]
flash_wrdis
ice_nreset jtag_nreset
flash_poe
System Controller
Advanced
Interrupt
Controller
Debug
Unit
Periodic
Interval
Timer
Real-Time
Timer
Watchdog
Timer
wdt_fault WDRPROC
bod_rst_en
Reset
Controller
int
dbgu_irq force_ntrst
dbgu_txd
pit_irq
rtt_irq
wdt_irq
periph_nreset proc_nreset
rstc_irq
Voltage
Regulator
Mode
Controller
jtag_nreset
proc_nreset
PCK
debug
ice_nreset force_ntrst
security_bit
flash_poe
flash_wrdis
cal gpnvm[0..1]
MCK
proc_nreset
standby
cal
Boundary Scan
TAP Controller
nirq nfiq
ARM7TDMI
Embedded
Flash
Memory
Controller
Voltage
Regulator
16
XIN
XOUT
PLLRC
RCOSC
OSC
PLL
MAINCK
PLLCK
periph_nreset usb_suspend
periph_clk[2]
dbgu_rxd
SLCK
Power
Management
Controller
int
PIO
Controller
PA0-PA31
AT91SAM7S64 Preliminary
periph_clk[2..14] pck[0-2]
PCK UDPCK MCK
pmc_irq
idle
periph_irq{2]periph_nreset irq0-irq1 fiq dbgu_txd
UDPCK
periph_clk[11]
periph_nreset
periph_irq[11]
usb_suspend
periph_clk[4..14]
periph_nreset
periph_irq[4..14]
in out enable
USB Device
Por t
Embedded Peripherals
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
系统控制器映射 系统控制器外设映射到 4K 字节的最高址空间,于 0xFFFF F000 0xFFFF FFFF
Figure 6 给出了系统控制器的映射情况。要注意,存储器控制器配置接口映射
址区间
Figure 6. 系统控制器映射
Peripheral Name SizeAddress Peripheral
0xFFFF F000
0xFFFF F1FF
0xFFFF F200
0xFFFF F3FF
0xFFFF F400
0xFFFF F5FF 0xFFFF F600
0xFFFF FBFF
0xFFFF FC00
0xFFFF FCFF
0xFFFF FD00
0xFFFF FD0F
0xFFFF FD20
0xFFFF FC2F
0xFFFF FD30
0xFFFF FC3F
0xFFFF FD40
0xFFFF FD4F
0xFFFF FD60
0xFFFF FC6F
0xFFFF FD70
0xFFFF FEFF
0xFFFF FF00
AIC
DBGU
PIOA
Reserved
PMC
RSTC
Reserved
RTT
PIT
WDT
Reserved
VREG
Reserved
Advanced Interrupt Controller
Debug Unit
PIO Controller A
Power Management Controller
Reset Controller
Real-time Timer Periodic Interval Timer Watchdog Timer
Voltage Regulator Mode Controller
512 Bytes/128 registers
512 Bytes/128 registers
512 Bytes/128 registers
256 Bytes/64 registers
16 Bytes/4 registers
16 Bytes/4 registers 16 Bytes/4 registers 16 Bytes/4 registers
4 Bytes/1 register
6070A–ATARM–07-Jun-05
0xFFFF FFFF
MC
Memory Controller
256 Bytes/64 registers
17

复位控制器 复位控制器包括上电复位和掉电检测复位。它可以给出上一次复位的状态,指上一次复

上电复位、软件复位、用复位、看门狗复位还是掉电检测复位。此外,它还控制内 部复位以及 NRST 引脚的输出,并控制 NRST 脉冲的长度以系统要求。

掉电检测及上电复位 AT91SAM7S64 嵌入了掉电检测电路和上电复位单元。两个电路都由VDDCORE供电,并

过来监视 VDDCORE两个信号都输送到 Flash,以防止在上电和下电的过程中,或变的过程中, Flash 中的代码损毁
上电复位单元具有有度的门值,大约是 1.5V。在 VDDCORE 达到这个电平之前其 输出一保持为低。这个信号输送到复位控制器,实现对芯片的新初始化
掉电检测器监视 VDDCORE 的电平,将其与固定的发电平进行。它可以在多数 情况下保系统安全工作,并保
掉电检测器只监视 VDDCORE。这 是 因 VDDFLASH 电源的跌落Flash 外 改写没有影响
掉电检测器使能,一VDDCORE 发电平 (Vbot-,定Vbot - hyst/2),掉 电检测输出立激活
VDDCORE 发电平 (Vbot+,定 Vbot + hyst/2),复位信号释放。掉电 检测器只监视 VDDCORE 跌落到门值以下,持续时间大于 1µs 情况
VDDCORE 发生变时存储器代码不被损毁
为了防止电尖峰影响,门限电压有大约为 50 mV
1.68V度为 ± 2%
掉电检测器低功耗单元,只消大约 20 µA 态电流。为了进一步低系统态功 耗,可以将其关闭。此它消耗的静态电流小1µA关闭掉电检测器通过配置 GPNVM0 来实现的
后值典型值为
18
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
时钟发生器 时钟发生器包括一个低功耗 RC 振荡器,一个振荡器和一个 PLL。其特性为
•RC振荡器的率范围是 22 KHz 到 42 KHz
振荡器的率范围是 3 20 MHz
振荡器可以
•PLL输出范围是 80 到 200 MHz
提供了 SLCKMAINCK 以及 PLLCK

Figure 7. 时钟发生器框图

Clock Generator
XIN
XOUT
PLLRC
Embedded
RC
Oscillator
Main
Oscillator
PLL and
Divider
Status
Power
Management
Controller
Control
Slow Clock SLCK
Main Clock MAINCK
PLL Clock PLLCK
6070A–ATARM–07-Jun-05
19
电源管理控制器 电源管理控制器用时钟发生器的输出提供 :
处理器时钟 PCK
时钟 MCK
•USB时钟 UDPCK
有独立可控的外设时钟
•3个可编程的时钟输出
通过编程,时钟 (MCK) 可以几百赫兹片的最工作率。 处理器进入空闲模式等待中断发生时,处理器时钟 (PCK) 关闭从而降低器件功耗

Figure 8. 电源管理控制器框图

Master Clock Controller
SLCK
MAINCK
PLLCK
SLCK
MAINCK
PLLCK
PLLCK
Prescaler
/1,/2,/4,...,/64
Programmable Clock Controller
Prescaler
/1,/2,/4,...,/64
USB Clock Controller
ON/OFF
Divider /1,/2,/4

先进的中断控制器 控制 ARM 处理器的中断线 (nIRQ 和 nFIQ)

可以单独屏蔽的向量化中断源 中断源 0 为快速中断输入 (FIQ) – 中断源 1 为系统外设 (RTTPITEFCPMCDBGU) – 中断源控制外设中断或外部中断 可编程的沿发或电平敏感的内部中断源 可编程的/ 沿发或高 / 低电平敏感的外部中断源
•8级优先级控制器 动处理器的常中断 处理中断源的优先级 高优先级中断可以在执行的低优先级中断
向量化 优化中断服务程的及执行 每个中断源都有一个 32 位的向量存器 中断向量存器取对的当中断向量
Processor
Clock
Controller
Idle Mode
Peripherals
Clock Controller
ON/OFF
PCK
int
MCK
periph_clk[2..14]
pck[0..2]
usb_suspend
UDPCK
20
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
保护模式 通过禁止自动操作化调试
更新为快速中断 允许任意一个中断源为快速中断
通用的中断屏蔽 使处理器保持件的同步,同时不引发中断

调试单元 构成元

两线 UART – 支持调试通讯通道 (DCC) 的接口 ID 存器 一个禁止 ICE 访问的接口
两线 UART – 实现USART 兼容的特性 可编程的发生器 奇偶校验、帧错误错误 自动回应本地回通道模式
支持调试通讯通道 输出了 ARM 处理器的 COMMRX COMMTX 信号
ID 存器 识别器件的,片内存储器的大小及外设集 ID 0x27090540 ( 0)
AT91SAM7S64 Preliminary

周期性间隔定时器 •20位可编程的计数器,外加 12 位的间隔计数器

看门狗定时器 •12位受预设值保护的可编程计数器,计数时钟为经过预分频的 SLCK

为系统提供复位或中断信号
处理器处于调试状态或空闲模式时可以停止计数器

实时定时器 •32位自由运行的计数器,功能,计数时钟为经过预分的 SLCK

可编程的 16 位预分器用于 SLCK 补偿
PIO 控制器 一个 PIO 控制器,32 I/O 口线
通过设/ 存器实现对 I/O 全控制
每个 I/O 两个外设功能复用
每一个 I/O ( 给外设使用还是作为通用 I/O) 都支持 输入电平变化中断 个时钟周期的尖峰滤波 种驱选择,可以工作于开漏状态 可编程的上拉电阻 引脚数据状态存器给出了任意引脚上的电平
同步输出,设清零I/O 口线只需要一个写操作
6070A–ATARM–07-Jun-05
21
调节器控制器 个控制器的作用是选择调节器的工作模式:正 常模式 ( 0 清零 ) Standby 模式
( 0 )
22
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
外设
外设映射 每个外设都分配了 16K 字节的地址空间。
Figure 9. 外设映射
0xF000 0000
Reserved
0xFFF9 FFFF
0xFFFA 0000
0xFFFA 3FFF 0xFFFA 4000
0xFFFA FFFF
0xFFFB 0000
0xFFFB 3FFF 0xFFFB 4000
0xFFFB 7FFF
0xFFFB 8000
0xFFFB BFFF 0xFFFB C000
0xFFFB FFFF
0xFFFC 0000
0xFFFC 3FFF
0xFFFC 4000
0xFFFC 7FFF 0xFFFC 8000
0xFFFC BFFF
0xFFFC C000
0xFFFC FFFF 0xFFFD 0000
0xFFFD 3FFF
0xFFFD 4000
0xFFFD 7FFF
0xFFFD 8000
0xFFFD BFFF 0xFFFD C000
0xFFFD FFFF
0xFFFE 0000
0xFFFE 3FFF 0xFFFE 4000
0xFFFE FFFF
TC0, TC1, TC2 Timer/Counter 0, 1 and 2
Reserved
UDP USB Device Port
Reserved
TWI Two-Wire Interface
Reserved
USART0 Universal Synchronous Asynchronous
USART1 Universal Synchronous Asynchronous
Reserved
PWMC
Reserved
SSC Serial Synchronous Controller
ADC Analog-to-Digital Converter
Reserved
SPI Serial Peripheral Interface
Reserved
Peripheral Name Size
16 Kbytes
16 Kbytes
16 Kbytes
16 Kbytes
Receiver Transmitter 0
16 Kbytes
Receiver Transmitter 1
PWM Controller
16 Kbytes
16 Kbytes
16 Kbytes
16 Kbytes
6070A–ATARM–07-Jun-05
23

外设功能在 PIO 口线上的复用

AT91SAM7S64 PIO 控制器 PIOA 复用了 I/O 口线作为外设功能 PIO控制器A控制32个口线每个口线都可以分为两个外设功能的一个,AB。其 中的
些还可以复用为 ADC 控制器的模输入 Table 3 on page 25 说明了PIO 控制器 A的 I/O口线是如外设 A,B 或模输入复用
功能 说明 列主要是方便户针对具体应做注释跟踪引脚是如使用的
注意某些只能作为输出的外设功能在复制了多次 复位时有的并行 I/O 配置为输入,
上拉电阻使能
24
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

PIO 控制器 A 引脚复用

Table 3. PIO 控制器 A 引脚复用
PIO 控制器 A
I/O 外设 A 外设 B 说明 功能 说明
PA 0 P WM0 T I OA 0 流驱
PA 1 P WM1 T IOB0 流驱
PA 2 P WM2 S C K 0 流驱
PA 3 T WD N P C S3 流驱
PA 4 T W CK T C LK 0
PA5 RXD0 NPCS3
PA 6 TX D 0 PC K 0
PA 7 RT S 0 PW M 3
PA 8 CT S 0 AD T R G
PA9 DRXD NPCS1
PA10 DTXD NPCS2
PA11 NPCS0 PWM0
PA12 MISO PWM1
PA13 MOSI PWM2
PA14 SPCK PWM3
PA15 TF TIOA1
PA 16 T K TI O B 1
PA17 TD PCK1 AD0
PA18 RD PCK2 AD1
PA 19 RK FIQ AD2
PA 20
PA21 RXD1 PCK1
PA22 TXD1 NPCS3
PA23 SCK1 PWM0
PA24 RTS1 PWM1
PA25 CTS1 PWM2
PA26 DCD1 TIOA2
PA27 DTR1 TIOB2
PA28 DSR1 TCLK1
PA 29 R I1 T C LK2
PA 30 I R Q 1 N PCS2
PA31 NPCS1 PCK2
RF IRQ0 AD3
6070A–ATARM–07-Jun-05
25
外设标识符 AT91SAM7S64 拥有多外设。Table 4 给出了各种外设的标识符。中断控制器用标识符
来控制外设中断,电源管理控制器用标识符来控制外设时钟
Table 4. 外设标识符
外设 ID 外设助记符 外设名称 外部中断
0AIC先进的中断控制器 FIQ
1 SYSIRQ
2PIOA并行 I/O 控制器 A
3
4ADC
5 SPI 串行外设接口
6US0USART 0
7US1USART 1
8 SSC 同步串行接口
9TWI两线接口
10 PWMC PWM 控制器
11 UDP USB 设备端口
12 TC0 定时器 / 计数器 0
13 TC1 定时器 / 计数器 1
14 TC2 定时器 / 计数器 2
15 - 29
30 AIC 先进的中断控制器 IRQ0
31 AIC 先进的中断控制器 IRQ1
Note: 1. 对电源管理控制器(PMC)时钟/存器的SYSIRQ以及ADC进行位操作
引起任何作用系统控制器总是有时钟动的进行第一次转换ADC 时钟自动休眠模式下,每一次转换结束后 ADC 时钟自动停止
(1)
(1)
系统中断
模数转换
串行外设接口 SPI 支持与其他串行设备的通讯
–4个片线,在片的协助下可以达 15 个器件进行通讯 串行存储器,DataFlash – 串行外设,ADCDACLCD 控制器, CAN 控制器和 外部处理器
/ SPI 线 每个片线都支持 8 16 位可编程的数据 每个片线都支持可编程的信号位和 每个片线都支持可编程的连续数据帧间延迟,以及时钟和数据间的
延迟
可编程的连续传延迟 选择的模式错误检测 最高时钟
两线接口 TWI 只支持主机模式
与标的两线串行存储器兼容
26
AT91SAM7S64 Preliminary
®
3 线 EEPROM
6070A–ATARM–07-Jun-05
从机地址可以为一个字节,两个字节和三个字节
连续/ 写操作

USART 可编程的发生器

•5到 9 位的全工同步或异步串行通讯 –1、 1.5 或 2 个停止位,异步模式 –1或 2 个停止位,同步模式 奇偶校验发生器和错误检测 错误检测,错误检测 –MSB先发送或 LSB 先发送 的中断 (break) 产生及检测 接收器采样频为数据8 16 握手信号 RTS - CTS – Modem 信号管理 DTR-DSR-DCD-RIUSART1 – 接收器时间出,发送器时间保护 (timeguard) – 具有址产生和检测功能的多址 (Multi-drop) 通讯模式
支持 RS485 通讯,具有动器控制信号
支持 ISO7816 T = 0 T = 1 协议 –NACK信号处理,有复次数的错误计数器
•IrDA调制与解 通讯速115.2 Kbps
测试模式 本地回,自动
AT91SAM7S64 Preliminary
,实现与智的接口

串行同步控制器 语音和电信用提供了串行同步通讯

包括一个独立的接收器和独立的发送器,以及共用的时钟分
配置的帧同步和数据
接收器和发送器都可以编程为自动动,或在检测到帧同步信号上的
接收器和发送器包括了数据信号、时钟信号和帧同步信号
定时器 / 计数器 •316 位的定时器 / 计数器通道
–3个输出或两个输入捕捉
下多功能 测量 件计数 时间间隔测量 冲产生 延迟 –PWM – 向上递增计数和向下递减计数的能力
每个通道都可以进行配置,并包括了 –3个外部时钟输入
6070A–ATARM–07-Jun-05
27
–5个外部时钟输入,如 Table 5 所示。
Table 5. 定时器 / 计数器时钟分
TC 时钟输入 时钟
TIMER_CLOCK1 MCK/2
TIMER_CLOCK2 MCK/8
TIMER_CLOCK3 MCK/32
TIMER_CLOCK4 MCK/128
TIMER_CLOCK5 MCK/1024
两个多功能输入 / 输出信号 两个作用于3 TC 通道的全局寄存器
PWM 控制器 •4个通道,每个通道有一个 16 位的计数器
共的时钟发生器,可以提供 13 同的时钟 一个 Mod(n) 计数器,提供 11 个时钟 作用于 Mod(n) 计数器输出的两个独立的线性分
通道的编程独立的 独立的使能 / 禁止命令 独立的时钟选择 独立的缓冲周期和 可编程的输出波形极选择 可编程的输出波形准方
USB 设备端口 USB V2.0 全速标准兼容,通讯速12 Mbps
片内 USB V2.0 全速收发器
为端点使用的片 328 字节RAM
•4个端点 端点 0: 8 字节 端点 1 和端点 2: 64 字节, ping-pong – 端点 3: 64 字节 –bulk端点支持 Ping-pong 模式 ( 两个存储区 )
起 / 续 (suspend/resume) 逻辑
模数转换 •8通道的 ADC
•10位数据,每秒采样次数高达 100K连续存器 ADC
-2/+2 LSB 线性-1/+2 LSB 线性
集成的 8-1 多工器,可以有 8 个独立的 3.3V 输入
每个通路可以单独使能和禁止
对于低电输入信号可以使用外部电压基准源来提高转换
多个发源 件或软件 外部引脚 用定时器 / 计数器 0-2 的输出 TIOA0-2 进行
28
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
休眠模式和转换 发信号使片自动唤醒;所有使能的通道转换结束之后器件进入睡眠
模式
•8个模输入中的的 4 个数字信号共引脚
6070A–ATARM–07-Jun-05
29
30
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05

ARM7TDMI 处理器

AT91SAM7S64 Preliminary
ARM7TDMI内可以执行32位的ARM
使用在高性能和高代码密度间进行平ARM7TDMI 处理器为冯 - 诺依曼结构,具有三级 水线,指令取、码和执行三个阶段
ARM7TDMI 处理器的主要特点是:
•ARM7TDMI于 ARMv4T
两个指令集 –ARM –Thumb
三级线 指令(F) – 指令 (D) – 执行 (E)
®
高性能 32 位指令集
®
代码密度 16 位指令集
®
指令集,可以执行16位的Thumb®指令集,从而可以
6070A–ATARM–07-Jun-05
31

ARM7TDMI 处理器

关 ARM7TDMI 更详细的信息请参阅ARM ARM Architecture Reference Manual (DDI 0100E)
ARM7TDMI Technical Reference Manual (DDI 0210B)
指令类型 指令或者是 32 位 (ARM 模式 ),或者是 16 位 (THUMB 模式 )
数据类型 ARM7TDMI支持字节(8位),半字(16位)以及字(32位)数据类型。字必须与4字节的边界
齐,半字必须与 2 字节的边界对齐
未对齐的数据访问行为取于指令类型。

ARM7TDMI 工作模 式

ARM7TDMI 基于 ARM 结构 v4T,支持如下 7 处理器模式
UserARM 程序执行状态 FIQ设计为高速数据输或通道处理 IRQ用于通常的中断处理 Supervisor用于操作系统的保护模式 Abort mode实现虚内存和 / 或内存保护 System操作系统的特模式 Undefined支持处理器的软件仿真
模式间的转换可以通过软件进行控制,可能由中断或外处理引起。大多数用程序运行 于 User 模式。而 模式,或特权用模式,针对中断或例外,或者访问受保护的
ARM7TDMI 寄存器 ARM7TDMI 处理器共有 37 存器
•31个通用 32 位存器
•6个状态存器
这些存器在同一时间都访问到处理器状态及工作模式定了哪些寄存器可以程序使用
任意16 存器可访问的。其则与这 16 存器同的字,并用于加 速外的处理
32
存器 R15 为程序计数器 (PC),可以用于有的指令来对于当指令的数据 R14 留着子程序调用的回地 R13 通常用做堆栈 .
Table 6. ARM7TDMI ARM 模式及
User System 模式
R0 R0 R0 R0 R0 R0
R1 R1 R1 R1 R1 R1
R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3
Supervisor模 式 Abort 模式
AT91SAM7S64 Preliminary
存器规划
Undefined 模 式 IRQ 模式 FIQ 模式
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
Table 6. ARM7TDMI ARM 模式及存器规划
User System 模式
R4 R4 R4 R4 R4 R4
R5 R5 R5 R5 R5 R5
R6 R6 R6 R6 R6 R6
R7 R7 R7 R7 R7 R7
R8 R8 R8 R8 R8
R9 R9 R9 R9 R9
R10 R10 R10 R10 R10 R10_FIQ
R11 R11 R11 R11 R11
R12 R12 R12 R12 R12
R13 R13_SVC R13_ABORT R13_UNDEF R13_IRQ R13_FIQ
R14 R14_SVC R14_ABORT R14_UNDEF R14_IRQ R14_FIQ
PC PC PC PC PC PC
CPSR CPSR CPSR CPSR CPSR CPSR
Supervisor模 式 Abort 模式
SPSR_SVC SPSR_ABORT SPSR_UNDEF SPSR_IRQ SPSR_FIQ
Undefined 模 式 IRQ 模式 FIQ 模式
R8_FIQ
R9_FIQ
R11_FIQ
R12_FIQ
模式相关的分区的存器
存器 R0 R7 是不分区的。也是说,在有的工作模式下,指向的同的 32 存器。它们也是通用存器,处理器接的系,可 以 出现在任何指令允许出现的地方。
R8 R14 则是分区的存器。它指向的物理存器据处理器工作模式的而不
模式和例外处理 所有的例外都有分区的存器 R14 R13
外发生R14 保存了外处理的回地。例外处理结束后,通过址程序 外发生时的指令
对于各种例外模式, R13 也是分区的,从而可以外各个例外处理程序提供单独的堆栈 快速中断模式还实现了 R8 R12 的分区,从而中断处理程序可以保存这些存器就开始执
行中断处理 7 个处理模式,System 模式,没有任何分区的存器。它 使用User 模式相同的存器
System 模式可以运行那些需要模式的任务,并允许各种
状态存器 所 有 其 他 的处理器状态保存于状态寄 存器。当前 处理器状态保存于当
(Current Program Status Register,CPSR)。其
4 ALU ( ,进位,)
两个中断禁止位 ( 中断一个 )
一个特用来指ARM 状态还是 Thumb 状态
5 特用来的处理器模式
5 外模式还拥有一个保存的程序状态存器(Saved Program Status Register,SPSR)存器保存了在外发生之前任务CPSR
程序状态存器
6070A–ATARM–07-Jun-05
33
类型 ARM7TDMI 支持 5 种类型外,每一都有对的特处理模式。这些例类型是:
快速中断 (FIQ)
通中断 (IRQ)
内存异常中断 ( 用来实现内存保护或虚内存 )
试执行未定的指令
软件中断 (SWI)
外由片内外的中断源产生
在同一时间可以有多个外发生
外发生时,此例外对的、分区的 R14 SPSR 状态保存下来。 从例返回需要将 SPSR 拷贝CPSR,同 时 R14 的值PC实现的方法有如下两个:
使用数据处理指令, S 位, PC 存器
使用 LDM 指令
ARM 指令集概览 ARM 指令集分为
分支指令
数据处理指令
状态存器输指令
和保存指令
处理器指令
外产生指令
ARM 指令可以有条件执行每个指令都包括 4 特的条件代码域 (bit[31:28]) Table 7 给出了 ARM 指令表。
Table 7. ARM 指令
助记符 操作 助记符 操作
MOV Move CDP Coprocessor Data Processing
ADD Add MVN Move Not
SUB Subtract ADC Add with Carry
RSB Reverse Subtract SBC Subtract with Carry
CMP Compare RSC Reverse Subtract with Carry
TST Test CMN Compare Negated
AND Logical AND TEQ Test Equivalence
EOR Logical Exclusive OR BIC Bit Clear
MUL Multiply ORR Logical (inclusive) OR
SMULL Sign Long Multiply MLA Multiply Accumulate
SMLAL Signed Long Multiply Accumulate UMULL Unsigned Long Multiply
MSR Move to Status Register UMLAL Unsigned Long Multiply Accumulate
B Branch MRS Move From Status Register
BX Branch and Exchange BL Branch and Link
34
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
Table 7. ARM 指令
助记符 操作 助记符 操作
LDR Load Word SWI Software Interrupt
LDRSH Load Signed Halfword STR Store Word
LDRSB Load Signed Byte STRH Store Half Word
LDRH Load Half Word STRB Store Byte
LDRB Load Byte STRBT Store Register Byte with Translation
LDRBT Load Register Byte with Translation STRT Store Register with Translation
LDRT Load Register with Translation STM Store Multiple
LDM Load Multiple SWPB Swap Byte
SWP Swap Word MRC Move From Coprocessor
MCR Move To Coprocessor STC Store From Coprocessor
LDC Load To Coprocessor
Thumb 指令集概览 Thumb 指令集ARM 指令集经过
Thumb 指令集分为
分支指令
数据处理指令
和保存指令
和保存 ( 多个数据 ) 指令
外产生指令
Thumb 模式中 8 个通用存器,R0 R7可访问的。还可以访问的程序计数器 (ARM存器 15)存器 (ARM 存器 14) 以及堆栈(ARM 存器 13)。还有一指令对
ARM 存器 R8 R15 有有的访问限。 Table 8 给出了 Thumb 指令集
Table 8. Thumb 指令集
助记符 操作 助记符 操作
MOV Move MVN Move Not
ADD Add ADC Add with Carry
SUB Subtract SBC Subtract with Carry
CMP Compare CMN Compare Negated
TST Test NEG Negate
AND Logical AND BIC Bit Clear
EOR Logical Exclusive OR ORR Logical (inclusive) OR
LSL Logical Shift Left LSR Logical Shift Right
ASR Arithmetic Shift Right ROR Rotate Right
MUL Multiply
B Branch BL Branch and Link
BX Branch and Exchange SWI Software Interrupt
LDR Load Word STR Store Word
6070A–ATARM–07-Jun-05
35
Table 8. Thumb 指令集
助记符 操作 助记符 操作
LDRH Load Half Word STRH Store Half Word
LDRB Load Byte STRB Store Byte
LDRSH Load Signed Halfword LDRSB Load Signed Byte
LDMIA Load Multiple STMIA Store Multiple
PUSH Push Register to stack POP Pop Register from stack
36
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

AT91SAM7S64 调试及测试特点

说明 AT91SAM7S64 具有调试及测试能力。 JTAG/ICE (In-Circuit Emulator) 用于标准的调试功能,
代码,在程序实现单步执行调试单元提供了一个两线 UART,可以它将应
程序上载到片内 SRAM。它管理COMMTX COMMRX 信号的中断处理,实现对调试通讯 通道动的
通过一套复杂的调试测试输入 / 输出引脚PC 端的测试环境可以接访问这些调试 / 测试 功能
方框图
Figure 10. 调试及测试框图
TMS
TCK
TDI
PDC
Boundary
TA P
ARM7TDMI
ICE
DBGU
ICE/JTAG
TA P
Reset
and Test
PIO
JTAGSEL
TDO
POR
TST
DTXD
DRXD
6070A–ATARM–07-Jun-05
37

调试环境 Figure 11 on page 38 展示了一个完整的调试环境ICE/JTAG 接口用于标的调试功能,
代码和单步执行程序
Figure 11. 调试环境
Host Debugger
ICE/JTAG Interface
ICE/JTAG Connector
AT91SAM7S64
AT91SAM7S64-based Application Board
RS232
Connector
Terminal
38
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
测试环境 Figure 12 on page 39 展示了测试环境测试向量由测试发送和。在中,
接受测试的板子上有一些与 JTAG 兼容的器件。这些器件可以接到一成一个扫描
Figure 12. 测试环境
调试及测试引脚
说明
Test Adaptor
JTAG
Interface
ICE/JTAG Connector
AT91SAM7S64
AT91SAM7S64-based Application Board In Test
Chip 2Chip n
Chip 1
Tester
Table 9. 调试及测试引脚列表
引脚名称 功能 类型 电平
复位 / 测试
NRST 处理器复位 输入 / 输出
TST 测试模式选择 输入
ICE JTAG
TCK 测试时钟 输入
TDI 测试数据输入 输入
TDO 测试数据输出 输出
TMS 测试模式选择 输入
JTAGSEL JTAG 选择 输入
调试单元
DRXD 调试接收数据 输入
DTXD 调试发送数据 输出
6070A–ATARM–07-Jun-05
39

功能描述

测试引脚

嵌入式在线仿真器 -
ICE
TST引脚用来定片工作模式在正常工作模式下用户必须证这引脚接到低电平高电平用于生产测试
ARM7TDMI 嵌入式在线仿真通过 ICE/JTAG 到支持的ARM7TDMI 的内部状态通过 ICE/JTAG 以检
ARM7TDMI 处理器具有实现先进的调试特性的展:
停 (halt) 模式下,存储多个数据” (STM) 可以入到指令线。这个指令可以输出 ARM7TDMI 存器的内容。后这些数据以串行的从 TDI 输出 而不影响系统的
部分
在监控模式下, JTAG 接口用于在调试器和运行于 ARM7TDMI 处理器内部的单监控程序输数据
ARM7TDMI处理器有三个扫描支持测试、调试及编程。所 扫描都由 ICE/JTAG控制 JTAGSEL引脚为低时选择嵌入式ICE模式
SEL 变化后必须进行片复位
进一步的嵌入式ICE信息请参阅 ARM7TDMI (Rev4) Technical Reference Manual (DDI0210B)
。不 能在ICEJTAG模式之间直接进行换。JTAG-

调试单元 调试单元提供了两线 (DXRD TXRD) USART 用于一调试及踪的目的。同时这也是

程和调试控通讯的理想方法。此外,由于两个外设数据控制器通道的存在,处理器处理数据 包的时间可以减至最小。
调试单元管理COMMTX COMMRX 的中断处理。这是两个来自 ICE 的信号, 调试通讯通道的调试单元可以阻止通过 ICE 接口对系统进行的访问
IEEE 1149.1 JTAG
边界扫描
JTAG 边界扫描存器
调试单元可以用来上载应用程序到片内 SRAM。当引导程序有发现有效的应用程序时即激活 个功能用来加载应用程序的协议XMODEM
调试单元芯片 ID 存器保存了有关产及内部配置的信息 AT91SAM7S64 的调试单元芯片 ID 的数值为 0x27090540
调试单元的更多信息请参阅 “Debug Unit (DBGU)” on page 179
通过 IEEE 1149.1 JTAG 边界扫描可以访问每个引脚而不必器件的封装形
JTAGSEL 为高时使能 IEEE 1149.1 JTAG 边界扫描。实现的功能有 SAMPLEEXTEST BYPASS在 ICE 调试模式下,ARM 处理器一个JTAGID ICE 系统。这 与 IEEE
1149.1 JTAG 是不兼容
JTAG 模式和 ICE 模式接进行换。 JTAGSEL 电平改变之后必须片进行复位
Atmel 提供了边界扫描叙词语言 (BSDL) 件以方便客户测试系统
边界扫描存器 (BSR) 含与各引脚相关控制信号对96
40
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
每个 AT91SAM7S64 输入 / 输出引脚在 BSR 3 个比特。OUTPUT 表示数据可以制输 出到引脚; INPUT 用来观察加引脚的数据CONTROL 控制引脚
Table 10. AT91SAM7S64 JTAG 边界扫描存器
序号 引脚名称 引脚类型 相关BSR 单元
96
95 OUTPUT
94 CONTROL
93
92 OUTPUT
91 CONTROL
90
89 OUTPUT
88 CONTROL
87
86 OUTPUT
85 CONTROL
84
83 OUTPUT
82 CONTROL
81
80 OUTPUT
79 CONTROL
78
77 OUTPUT
PA17/PGMD5/AD0 IN/OUT
PA18/PGMD6/AD1 IN/OUT
PA21/PGMD9 IN/OUT
PA19/PGMD7/AD2 IN/OUT
PA20/PGMD8/AD3 IN/OUT
PA16/PGMD4 IN/OUT
PA15/PGM3 IN/OUT
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
6070A–ATARM–07-Jun-05
76 CONTROL
75
74 OUTPUT
73 CONTROL
72
71 OUTPUT
70 CONTROL
69
68 OUTPUT
67 CONTROL
66
65 OUTPUT
64 CONTROL
PA14/PGMD2 IN/OUT
PA13/PGMD1 IN/OUT
PA22/PGMD10 IN/OUT
PA23/PGMD11 IN/OUT
INPUT
INPUT
INPUT
INPUT
41
Table 10. AT91SAM7S64 JTAG 边界扫描存器
序号 引脚名称 引脚类型 相关的 BSR 单元
63
62 OUTPUT
61 CONTROL
60
PA24/PGMD12 IN/OUT
INPUT
INPUT
59 OUTPUT
58 CONTROL
57
56 OUTPUT
55 CONTROL
54
53 OUTPUT
52 CONTROL
51
50 OUTPUT
49 CONTROL
48
47 OUTPUT
46 CONTROL
45
44 OUTPUT
43 CONTROL
42
PA12/PGMD0 IN/OUT
INPUT
PA11/PGMM3 IN/OUT
INPUT
PA10/PGMM2 IN/OUT
INPUT
PA 9 /P G M M1 I N /O U T
INPUT
PA 8 /P G M M0 I N /O U T
INPUT
PA7/PGMNVALID IN/OUT
INPUT
42
41 OUTPUT
40 CONTROL
39
38 OUTPUT
37 CONTROL
36
35 OUTPUT
34 CONTROL
33
32 OUTPUT
31 CONTROL
30
29 OUTPUT
28 CONTROL
PA6/PGMNOE IN/OUT
PA 5/ PG M R DY I N /O U T
PA4/PGMNCMD IN/OUT
PA25/PGMD13 IN/OUT
PA26/PGMD14 IN/OUT
AT91SAM7S64 Preliminary
INPUT
INPUT
INPUT
INPUT
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
Table 10. AT91SAM7S64 JTAG 边界扫描存器
序号 引脚名称 引脚类型 相关的 BSR 单元
27
26 OUTPUT
25 CONTROL
24
PA27/PGMD15 IN/OUT
INPUT
INPUT
23 OUTPUT
22 CONTROL
21
20 OUTPUT
19 CONTROL
18
17 OUTPUT
16 CONTROL
15
14 OUTPUT
13 CONTROL
12
11 OUTPUT
10 CONTROL
9
8OUTPUT
7 CONTROL
6
PA 28 I N /OUT
INPUT
PA 3 I N / OUT
INPUT
PA 2 I N / OUT
INPUT
PA1/PGMEN1 IN/OUT
INPUT
PA0/PGMEN0 IN/OUT
INPUT
PA 29 I N /OUT
INPUT
5OUTPUT
4 CONTROL
3
2OUTPUT
1 CONTROL
0 ERASE IN INPUT
PA 30 I N /OUT
PA 31 I N /OUT

ID 代码寄存器

访问类型:只读
31 30 29 28 27 26 25 24
VERSION PART NUMBER
23 22 21 20 19 18 17 16
PART NUMBER
6070A–ATARM–07-Jun-05
INPUT
43
15 14 13 12 11 10 9 8
PART NUMBER MANUFACTURER IDENTITY
76543210
MANUFACTURER IDENTITY 1
VERSION[31:28]:
0x1
PART NUMBER[27:12]:
0x5B06
MANUFACTURER IDENTITY[11:1]
0x01F
Bit[0] Required by IEEE Std. 1149.1.
0x1 JTAG ID 代码为 05B0_603F
44
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

复位控制器 (RSTC)

基于上电复位单元的复位控制器 (RSTC) 处理系统的有复位,而无需其它器件。它 可以给出上
一次复位源的信息
复位控制器可以独立、或同时动外部复位和外设及处理器复位
掉电检测可以防止处理器进入可预测的状态
方框图
Figure 13. 复位控制器框图
Reset Controller
bod_rst_en
brown_out
Main Supply
POR
NRST
WDRPROC
wd_fault
nrst_out
Brownout Manager
Startup
Counter
NRST
Manager
bod_reset
user_reset
exter_nreset
Reset
State
Manager
SLCK
rstc_irq
proc_nreset
periph_nreset
6070A–ATARM–07-Jun-05
45
功能说明 复位控制器由 NRST 管理器、掉电检测管理器、动计数器和复位状态管理器组成。它运行于
慢速时钟,可以产生下复位信号
proc_nreset处理器复位。它同时复位看门狗定时器
periph_nreset作用于有的外设
•nrst_out:驱动 NRST 引脚。
这些复位信号由复位控制器或者于外部件,或者于软件行为产生复位状态管理器控制这些信号的产生,并在需要激活 NRST 引脚的时NRST 管理器提供信号
NRST 管理器控制 NRST 信号保持预先编程的一段时间,从而控制外部器件的复位
NRST 管理器 NRST 管理器对NRST 引脚的输入进行采样,并在复位状态管理器需要的时将引脚电平拉低
Figure 14 给出了 NRST 管理器的方框图。
Figure 14. NRST 管理器
RSTC_MR
RSTC_SR
URSTS NRSTL
RSTC_MR
URSTEN
URSTIEN
rstc_irq
Other
interrupt
sources
NRST
nrst_out
RSTC_MR
ERSTL
External Reset Timer
user_reset
exter_nreset
NRST 信号或中断
NRST 管理器以低速时钟对 NRST引脚信号进行采样当检测到信号为低时,用复位的信号给复位状态管理器
外,通过编程还可以使 NRST 管理器在 NRST 为低时并不触发复位。这 可以通过RSTC_MR
存器的 URSTEN 清零来实现 引脚 NRST 的电平可以在任何通过读取存器 RSTC_SR NRSTL 来了解。NRST
加了有信号,存器 RSTC_SR 的位 URSTS 。只RSTC_SR 之后这一位 清零。
通过编程
可以使复位控制器产生中断,而不是复位。方法是置位 RSTC_MR 存器的
URSTIEN
NRST 外部复位控制 复位状态管理器产生 ext_nreset 信号来拉低 NRST 引脚。同时, “nrst_out” 信号NRST 管理
器拉低,并持续由 RSTC_MR 存器的 ERSTL 控制的一时间。这名 为
EXTERNAL_RESET_LENGTH的时间持续2
(ERSTL+1)
个慢速时钟周期。所 时间范围60 µs
2 ERSTL 0 NRST 冲持两个时钟周期 个特性使复位控制器可以塑造 NRST 引脚的电平,从而NRST 低电平持时间足连
接到系统复位的外部器件的复位要求。

掉电检测管理器 掉电检测可以防止处理器在电源下降到个特定电平之后进入可预测的状态。当 VDDCORE

低于掉电检测门时,掉电检测管理器通过激活 bod_reset 信号来请求掉电检测复位
46
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
程序可以通过拉低 bod_rst_en 信号的方法来禁止掉电检测复位,锁定 Flash 中对的通用 NVM掉电检测复位会再发生了。此 时可以通过 存器RSTC_SR的位BODSTS 来
看是否发生了掉电检测BODSTS 后只能通过RSTC_SR 存器 RSTC_MR BODIEN 位,BODSTS 可以发中断
片出厂时掉电检测复位禁止的
Figure 15. 掉电检测管理器
bod_rst_en
brown_out
RSTC_SR
BODSTS
RSTC_MR
BODIEN
Other
interrupt
sources
bod_reset
rstc_irq
6070A–ATARM–07-Jun-05
47

复位状态 复位状态管理器处理同的复位源,并产生内部复位信号。它通过状态存器 RSTC_SR

RSTTYP 来报复位状态处理器复位释放RSTTYP 更新。
上电复位 VDDCORE 上电后,主电源 POR 单元输出被运行于慢速时钟的启动计数器所过滤。这个计数器
之前慢速时钟振荡器先定下来
Figure 16 所示的启动时间是硬件决定的,并慢速时钟振荡器的动时间兼容。经过启动时间 之后,复位信号释放RSTC_SR 存器的 RSTTYP 得以更新,指明发生了上电复位。
电源 POR 单元检测到 VDDCORE 为低时,有的复位信号立效。
Figure 16.
上电复位
SLCK
MCK
Main Supply
POR output
proc_nreset
periph_nreset
NRST
(nrst_out)
Startup Time
Processor Startup
= 3 cycles
EXTERNAL RESET LENGTH
= 2 cycles
Any
Freq.
48
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
复位 NRST 引脚电平为低,且存器 RSTC_MR URSTEN 1 进入用复位NRST
入信号被同步到 SLCK 以保系统的正确运行检测到 NRST 为低电平,系统进入用复位同时还引发处理器复位和外设复位 NRST 电平拉高,经过两个周期的同步时间和三个周期的处理器动时间,处理器即退
复位NRST 为高,处理器时钟即重使能 处理器复位信号释放之后,状态存器的 RSTTYP 域即更新0x4表示发生了用户复位。
NRST 管理器保NRST 信号持EXTERNAL_RESET_LENGTH 个慢速时钟周期,正如 ERSTL 编程的 部复位保持有效直到 NRST 变高
Figure 17. 复位状态
SLCK
然而,如果由于被外部电路拉低而使得 NRST 并没有在预定时间变高,内
MCK
NRST
proc_nreset
RSTTYP
periph_nreset
NRST
(nrst_out)
Any
Freq.
Resynch.
2 cycles
Any XXX
>= EXTERNAL RESET LENGTH
Resynch.
2 cycles
Processor Startup
= 3 cycles
0x4 = User Reset
6070A–ATARM–07-Jun-05
49
掉电检测复位 brown_out/bod_reset 信号有时,复位状态管理器立进入掉电检测复位处理器复位、外设
复位和外部复位信号同时生效。 brown_out/bod_reset 变高,经过两个周期的同步时间和额外的 3 个慢速时钟周期,处理
退出掉电检测复位同时外部复位被触 处理器复位释放之后, RSTC_SR 存器的 RSTTYP 更新为 0x5表明发生了掉电检测复位
Figure 18. 掉电检测复位状态
SLCK
MCK
brown_out
or bod_reset
proc_nreset
RSTTYP
periph_nreset
NRST
(nrst_out)
Any
Freq.
Any
Resynch.
2 cycles
XXX
Processor Startup
= 3 cycles
0x5 = Brownout Reset
EXTERNAL RESET LENGTH
8 cycles (ERSTL=2)
50
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
软件复位 复位控制器提供了个命令来激活同的复位信号。执行这些命令只需要将控制寄存器
RSTC_CR 下控制位写 1
PROCRST:置 1 复位处理器和看门狗
PERRST:置 1 将复位有的外设,包括存储器系统,特重映像 (Remap) 命令外设复
位一用于调试的目的。
EXTRST:置 1将拉低 NRST 引脚,并保持由模式存器RSTC_MRERSTL 的一 时间
软件设了上一位或某几位,处理器进入软件复位。所 这些命令可以单独执行, 可以同时执行软件复位持3 个慢速时钟周期
Figure 19. 软件复位
执行了控制存器写操作,内部个复位信号立
生产。这可以通过时钟 (MCK) 检测出
处理器退出软件复位时这些复位信号释放亦即都同步于 SLCK
如果 EXTRST 1nrst_out 信号是否效还取决于 ERSTL 的设置。然而 NRST 的下沿导致复位
PROCRST 位,复位控制器通过状态存器 RSTC_SR RSTTYP 软件复
RSTTYP 其它的软件复位。发生了 软件复位,状态存器 RSTC_SR 的位 SRCMP (Software Reset Command in
Progress- 在执行软件复位命令 )即处理器退出软件复位后它
被清零。SRCMP
无法执行其它软件复位,对 RSTC_CR 的写操作也没有任何效果。
SLCK
MCK
Write RSTC_CR
proc_nreset
if PROCRST=1
RSTTYP
Any
Freq.
Any
Resynch.
1 cycle
Processor Startup
= 3 cycles
XXX
0x3 = Software Reset
6070A–ATARM–07-Jun-05
periph_nreset
if PERRST=1
NRST
(nrst_out)
if EXTRST=1
SRCMP in RSTC_SR
EXTERNAL RESET LENGTH
8 cycles (ERSTL=2)
51
看门狗复位 看门狗错误发生时发看门狗复位。这个状态将持续 3 个慢速时钟周期
看门狗复位时,内部个复位信号的产生取决于 WDT_MR 存器的位 WDRPROC
WDRPROC 0,处理器复位和外设复位信号有效。NRST 引脚也被拉低,持时间 ERSTL NRST 引脚的低电平并引起复位
WDRPROC = 1则只有处理器复位有效。
看门狗定时器由 proc_nreset 信号复位。如果 WDRSTEN 位,看门狗溢出总是引起处理器 复位,因此看门狗定时器总是在看门狗复位之后复位。在缺省条件下看门狗使能的,而且 出时间设为最长。
Figure 20. 看门狗复位
Only if
WDRPROC = 0
存器WDT_MRWDRSTEN清零时,看门狗错误(
SLCK
MCK
wd_fault
proc_nreset
RSTTYP
periph_nreset
NRST
(nrst_out)
Any
Freq.
Any
Processor Startup
= 3 cycles
XXX
EXTERNAL RESET LENGTH
8 cycles (ERSTL=2)
定时器溢出)对复位控制器没有任何影响
0x2 = Watchdog Reset
52
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

复位状态优先级 复位状态管理器管理的复位源优先级以递减排列如

上电复位
掉电检测复位
看门狗复位
软件复位
复位
例则排列如
复位状态 看门狗永远发生,为看门狗定时器proc_nreset 信号复位了 软件复位发生,为处理器复位激活
软件复位状态 看门狗件优先级高于当状态 –NRST
看门狗复位状态 处理器复位激活可能进行软件复位的编程 能进入用复位

复位控制器状态存 器

复位控制器状态存器 (RSTC_SR) 给出了如下个状态
•RSTTYP:表明了上一次复位的复位源
•SRCMP:表明软件复位命令在执行当中,执行其它的软件复位软件复位
结束后这一位自动清零。
•NRSTL给出了在每一个时钟 MCK 上升沿采样到的 NRST 引脚的电平
•URSTS:NRST 信号高电平到低电平的变化将置RSTC_SR 存器的 URSTS。这 个电 平变换也是时钟 MCK 的上升沿采样到的 ( Figure 21)。如果复位禁止 (URSTEN = 0)而且通过 RSTC_MR 存器的URSTIEN使能了中断,则 URSTS将触发中 。读取状态存器 RSTC_SR 复位 URSTS
•BODSTS当掉电检测复位禁止时 (bod_rst_en = 0) 一位表示发生了掉电检测。如果
通过 RSTC_MR 寄存器的 URSTIEN 使能了中断BODSTS 将触发中断。读取状态寄存RSTC_SR 复位 BODSTS 除中断
Figure 21. 复位控制器状态和中断
MCK
Peripheral Access
2 cycle
resynchronization
NRST
除中断
read
RSTC_SR
2 cycle
resynchronization
if (URSTEN = 0) and
(URSTIEN = 1)
6070A–ATARM–07-Jun-05
NRSTL
URSTS
rstc_irq
53

复位控制器 (RSTC) 接口

Table 11. 复位控制器存器
偏移 存器 名称 访问类型 复位值
0x00 控制存器 RSTC_CR -
0x04 状态存器 RSTC_SR 只读 0x0000_0000
0x08 模式存器 RSTC_MR / 0x0000_0000
54
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

复位控制器控制存器

存器名称 : RSTC_CR
访问类型 :
31 30 29 28 27 26 25 24
KEY
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––
76543210 ––––EXTRSTPERRSTPROCRST
• PROCRST: 处理器复位
0 = 无效。 1 = 若 KEY 是正确的,复位处理器
• PERRST: 外设复位
0 = 无效。 1 = 若 KEY 是正确的,复位有外设
• EXTRST: 外部复位
0 = 无效。 1 = 若 KEY 是正确的,拉低 NRST 引脚。
•KEY: 预设值
0xA5写入其它任何数值都使次写操作失败
6070A–ATARM–07-Jun-05
55

复位控制器状态存器

存器名称 : RSTC_SR
访问类型 : 只读
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
––––––SRCMPNRSTL
15 14 13 12 11 10 9 8
––––– RSTTYP
76543210 ––––––BODSTSURSTS
• URSTS: 复位状态
0 = 自上次取 RSTC_SR 以来 NRST 引脚有发生高电平到低电平的转换。 1 = 自上次取 RSTC_SR 以来 NRST 引脚上至检测到一次高电平到低电平的转换。
• BODSTS: 掉电检测状态
0 = 自上次取 RSTC_SR 以来有发生掉电检测 1 = 自上次取 RSTC_SR 以来经发生过掉电检测
• RSTTYP: 复位类型上一次处理器复位的原因。读RSTC_SR 会影响的数值
RSTTYP 复位类型 说明
000上电复位 VDDCORE 上
010看门狗复位 发生了看门狗错误 ( 定时器出 )
011软件复位 软件要求的处理器复位
100复位 NRST 引脚检测为低
101掉电检测复位 发生了掉电检测复位
• NRSTL: NRST 引脚电平
记录时钟 MCK 升沿时刻的 NRST 引脚电平
•SRCMP: 软件复位命令执行中
0 = 复位控制器有在执行软件复位命令
复位控制器可以执行软件复位命令了
1 = 复位控制器在执行软件复位命令复位控制器
56
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

复位控制器模式存器

存器名称 : RSTC_MR
访问类型 : /
31 30 29 28 27 26 25 24
KEY
23 22 21 20 19 18 17 16
–––––––BODIEN
15 14 13 12 11 10 9 8
–––– ERSTL
76543210 – URSTIEN URSTEN
• URSTEN: 复位使能
0 = 检测到 NRST 引脚为低电平产生用复位 1 = 检测到 NRST 引脚为低电平产生用复位
• URSTIEN: 复位中断使能
0 = 存器 RSTC_SR 的位 USRTS 为 1 时对 rstc_irq 有作用 1 = URSTEN = 0 存器 RSTC_SR 的位 USRTS 为 1 时rstc_irq
•BODIEN: 掉电检测中断使能
0 = 存器 RSTC_SR 的位 BODSTS 为 1 时对 rstc_irq 有作用 1 = 存器 RSTC_SR 的位 BODSTS 为 1 时发 rstc_irq
• ERSTL: 外部复位持续时间
了外部复位的持时间外部复位一2
•KEY: 预设值
0xA5写入其它任何数值都使次写操作失败
(ERSTL+1)
个慢速时钟周期时间范围为 60 µs 2
6070A–ATARM–07-Jun-05
57
58
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

实时定时器 (RTT)

实时定时器于一个 32 位的计数器,用来记录经过的秒数。它可以产生周期性的中断或 / 和
于一个预选编好程的数值触发铃。
方框图
Figure 22. 实时定时器
SLCK
RTT_MR
RTTRST
reload
16-bit
Divider
RTT_MR RTPRES
RTT_MR
RTTRST
0
10
RTT_SR
RTT_MR
RTTINCIEN
set
RTTINC
reset
RTT_VR
RTT_AR
32-bit
Counter
CRTV
ALMV
RTT_SR
RTT_SR
=
read
reset
set
rtt_int
RTT_MR
ALMIEN
ALMS
rtt_alarm
6070A–ATARM–07-Jun-05
59

功能描述

实时定时器用来记录。它基32 位的计数器。而这个计数器的时钟来源为慢速 时 钟,并经过 16 位数值的预分。这个数值写入实时模式存器 RTT_MR RTPRES
Figure 23. RTT 计数
RTPRES 为 0x00008000 当于给实时计数器提供 1Hz 的时钟信号 ( 如果慢速时钟为
32.768 Hz)。 32 位的计数器可以计 2
32
当于 136 年,计数器数值复为 0
实时定时器可以用自由运行的于慢速时钟的定时器。获得佳精度的方法是将 RTPRES1。此时提供给实时计数器的时钟信号的周期为 30.52 µs ( 慢速时钟为 32.768 Hz 时 ) 实时定时器可以131072 秒,相当于 36
可以在任何通过存器 RTT_VR 获得实时定时器的数值 (CRTV)。因个数值由 时钟进行异步更新建议取的时连续读两次,以解决数值可能来的问
计数器的当前值与写入寄存器 RTT_AR ( 实时
存器 ) 的数值进行比两个数值相等
将置存器 RTT_SR ALMS。复位时闹铃寄存器的数值设置为最大值 0xFFFF_FFFF
每一次实时定时器计数器数值加时 RTT_SR 存器的位 RTTINC 置位。这一位可以用来产 生周期性中断。当 RTPRES 编程为 0x8000慢速时钟等于 32.768 Hz 时周期为一
取状态存器 RTT_SR 复位 RTTINC ALMS 执行对寄存器 RTT_MR 的位 RTTRST 的写操作将立使 RTT 新加载及启动时钟分频器。这
个操作同时复位 32 位的计数器
APB cycle
MCK
APB cycle
RTPRES - 1
Prescaler
RTT
RTTINC (RTT_SR)
ALMS (RTT_SR)
APB Interface
0
...
ALMVALMV-10 ALMV+1
read RTT_SR
ALMV+2 ALMV+3
60
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

实时定时器 (RTT) 接口

Table 12. 实时定时器存器映射
偏移 存器 名称 访问类型 复位值
0x00 模式存器 RTT_MR / 0x0000_8000
0x04 存器 RTT_AR / 0xFFFF_FFFF
0x08 数值存器 RTT_VR 只读 0x0000_0000
0x0C 状态存器 RTT_SR 只读 0x0000_0000
6070A–ATARM–07-Jun-05
61

实时定时器模式寄存器

存器名称 : RTT_MR
访问类型 : /
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
–––––RTTRSTRTTINCIENALMIEN
15 14 13 12 11 10 9 8
RTPRES
76543210
RTPRES
• RTPRES: 实时定时器预分数值使实时定时器加一的 SLCK 个数
RTPRES = 0预分值为 2 RTPRES 0预分值为 RTPRES
•ALMIEN: 中断使能
0 = RTT_SR 存器的 ALMS 对中断不起作用 1 = ALMS 将引发中断
• RTTINCIEN: 实时定时器一中断使能
0 = RTT_SR 存器的 RTTINC 对中断不起作用 1 = RTTINC 将引发中断
•RTTRST: 实时定时器新启
1 = 新启动时钟分。此操作同时复位 32 位的计数器
16
62
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

实时定时器存器

存器名称 : RTT_AR
访问类型 : /
31 30 29 28 27 26 25 24
ALMV
23 22 21 20 19 18 17 16
ALMV
15 14 13 12 11 10 9 8
ALMV
76543210
ALMV
•ALMV: 铃值实时定时器进行的数值, (ALMV+1)
6070A–ATARM–07-Jun-05
63

实时定时器数值存器

存器名称 : RTT_VR
访问类型 : 只读
31 30 29 28 27 26 25 24
CRTV
23 22 21 20 19 18 17 16
CRTV
15 14 13 12 11 10 9 8
CRTV
76543210
CRTV
•CRTV: 实时数值
实时定时器的当数值
64
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

实时定时器状态存器

存器名称 : RTT_SR
访问类型 : 只读
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––––
76543210 ––––––RTTINCALMS
•ALMS: 实时状态
0 = 自上一次存器 RTT_SR 之后实时有发生过 1 = 自上一次存器 RTT_SR 之后发生了实时
• RTTINC: 实时定时器
0 = 自上一次存器 RTT_SR 之后实时定时器 1 = 自上一次存器 RTT_SR 之后实时定时器加了
6070A–ATARM–07-Jun-05
65
66
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

周期性间隔定时器 (PIT)

周期性间隔定时器 (PIT) 为操作系统的调度程序提供时间间隔中断。这 个定时器设计的目的
供最大的度和高效率的管理,即使对要求长时间的系统也是如此。
方框图
Figure 24. 周期性间隔定时器
PIT_MR
PIV
MCK
Prescaler
MCK/16
= ?
0
0
1
0
20-bit
Counter
CPIV
CPIV PICNT
PIT_PIVR
PIT_PIIR
12-bit
Adder
PICNT
PIT_MR
PITIEN
set
PIT_SR
10
PITS
reset
read PIT_PIVR
pit_irq
6070A–ATARM–07-Jun-05
67

功能说明

周期性间隔定时器的目的是为操作系统提供周期性的中断 PIT 有一个可编程的出计数器和读后复位的特性。它 基 于两个计数器:一个 20 位的 CPIV
数器和一个 12 位的 PICNT 计数器两个计数器的时钟都是主时钟的 1/16 20位的CPIV计数器0开计数,直到模式寄存器 PIT_MRPIV出数值为止CPIV
计到个数值复位为 0,同时周期性间隔计数器 PICNT 加一状态存器 PIT_SR 的 位 PITS 位并发中断,只要此时中断使能的 (PIT_MR 的位 PITIEN)
将新的数值赋予存器 PIT_MR PIV 复位 通过取周期性间隔数值存器PIT_PIVR获得CPIVPICNT的数值之后溢出计数器(PICNT)
复位, PITS 清零, 从而确中断PICNT 的数值表示自上一次读取 PIT_PIVR 之后发生的周 期性间隔次数
通过取周期性间隔映像寄存器 PIT_PIIR 获得 CPIV PICNT 的数值对计数器的 CPIV
PICNT,以 及 PITS 有影响。例 如 ,软 件 剖析工具可以PIT_PIIR 而不除任何已经发生未处理的中断,定时器中断通过PIT_PIVR 除中断
通过存器 PIT_MR PITEN 位可以使能 / 禁止 PIT( 复位时处于禁止状态 )。只有在 CPIV 0 时操作 PITEN CPIV 计数,PIV 的数值,复位PITEN PIT 计数
在内进入调试状态时 PIT 停止
Figure 25. 用 PITEN 使能 / 禁用 PIT
15
MCK Prescaler
0
/ 动计数器
有作用Figure 25 PIT 的计数PIT 使能位复位(PITEN= 0)
APB cycle
MCK
APB cycle
restarts MCK Prescaler
68
PITEN
CPIV
PICNT
PITS (PIT_SR)
APB Interface
10
0
PIVPIV - 10
AT91SAM7S64 Preliminary
1
read PIT_PIVR
1
0
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

周期性间隔定时器 (PIT) 接口

Table 13. 周期性间隔定时器 (PIT) 存器映射
偏移 存器 名称 访问类型 复位值
0x00 模式存器 PIT_MR / 0x000F_FFFF
0x04 状态存器 PIT_SR 只读 0x0000_0000
0x08 周期性间隔数值存器 PIT_PIVR 只读 0x0000_0000
0x0C 周期性间隔映像寄存器 PIT_PIIR 只读 0x0000_0000
6070A–ATARM–07-Jun-05
69

周期性间隔定时器模式存器

存器名称 : PIT_MR
访问类型 : /
31 30 29 28 27 26 25 24
––––––PITIENPITEN
23 22 21 20 19 18 17 16
–––– PIV
15 14 13 12 11 10 9 8
PIV
76543210
PIV
•PIV: 周期性间隔数值 定周期性间隔存器 20 位计数器 CPIV 的数值周期PIV + 1
•PITEN: 使能周期性间隔定时器
0 = 计数值到 PIV 周期性间隔存器禁用 1 = 周期性间隔存器使能
• PITIEN: 使能周期性间隔定时器中断
0 = PIT_SR 存器的 PITS 对中断影响 1 = PIT_SR 存器的 PITS 可以发中断
70
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

周期性间隔定时器状态存器

存器名称 : PIT_SR
访问类型 : 只读
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––––
76543210 –––––––PITS
•PITS: 周期性间隔定时器状态
0 = 自上次取 PIT_PIVR 之后周期性间隔定时器还没有计数到 PIV 1 = 自上次取 PIT_PIVR 之后周期性间隔定时器经计数到 PIV
6070A–ATARM–07-Jun-05
71

周期性间隔定时器数值存器

存器名称 : PIT_PIVR
访问类型 : 只读
31 30 29 28 27 26 25 24
PICNT
23 22 21 20 19 18 17 16
PICNT CPIV
15 14 13 12 11 10 9 8
CPIV
76543210
CPIV
存器将清存器 PIT_SR PITS
•CPIV: 周期性间隔数值
周期性间隔定时器的当数值
•PICNT: 周期性间隔计数器
自上一次PIT_PIVR 之后发生的周期性间隔次数
72
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

周期性间隔定时器映像寄存器

存器名称 : PIT_PIIR
访问类型 : 只读
31 30 29 28 27 26 25 24
PICNT
23 22 21 20 19 18 17 16
PICNT CPIV
15 14 13 12 11 10 9 8
CPIV
76543210
CPIV
•CPIV: 周期性间隔数值
周期性间隔定时器的当数值
•PICNT: 周期性间隔计数器
自上一次取 PIT_PIVR 之后发生的周期性间隔次数
6070A–ATARM–07-Jun-05
73
74
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

看门狗定时器 (WDT)

看门狗定时器可以用来防止由于软件陷于死循而导致的系统死锁。它 具有一个 12 位的向下计
数器,使看门狗周期可以达到 16 秒 ( 慢速时钟, 32.768 kHz)。它可以产生通常的复位,或 者仅仅处理器复位。此外,当处理器处于调试模式或空闲模式时看门狗可以禁止
方框图
Figure 26. 看门狗定时器框图
WDT_CR
WDRSTT
read WDT_SR or reset
write WDT_MR
WDT_MR
WDD
<= WDD
WDERR
set
reset
reload
WDT_MR
WV
10
12-bit Down
Counter
Current
Value
=
WDUNF
0
set
reset
reload
1/128
SLCK
WDT_MR
WDRSTEN
WDFIEN
WDT_MR
wdt_fault
(to Reset Controlle
wdt_int
r)
6070A–ATARM–07-Jun-05
75
功能描述 看门狗定时器可以用来防止由于软件陷于死循而导致的系统死锁。它的电源VDDCORE
处理器复位后它从初始值重新开启动。 看门狗基于一个 12 位的向下计数器,加的数据可以通过模式存器 WDT_MR WV 来定
。如果使用经过 128 的慢速时钟来驱动看门狗定时器,溢出周期达到最16 ( 慢速 时钟的典型值为 32.768 kHz)
处理器复位之后WV 的数值为 0xFFF,对于计数器的最值,并使能了外部复位 (Backup 复位时 WDRSTEN 1)。也是说,复位之后看门狗运行了。如果用户程序有使用看门 狗,则必须禁止它 ( 置位 WDT_MR
求。
看门狗模式存器 (WDT_MR) 能写一次。只有处理器复位可以复位它。对 WDT_MR 执行 写操作可以把最编程的模式数加到定时器
通的操作中,用户需要通过位控制存器 WDT_CR 的位 WDRSTT 来定时新加载看 门狗,以防止定时器溢出计数器将立WDT_MR 新加载并新启动,慢速时钟的 128也被复位及新启WDT_CR 写保护的。因此如果预设值不正确,对 WDT_CR 的写操作是没有作用的。如果发生了计数器出,并 1则连接到复位控制器的“wdt_fault” 信号生,看门狗状态寄存器 WDT_SR的位WDUNF也被1
为了防止软件死锁时持续不地触发看门狗,看门狗的新加载必须在由 0WDT_MRWDD的时间窗内发生
0 WDT WDD执行对 WDRSTT 的写操作使看门狗定时器新启 任何[WDVWDD] 间重新启动看门狗定时器的将导致看门狗错误,即使时看门狗
时禁止的WDT_SR 的位 WDERR 位,接到复位控制器的 “wdt_fault” 信号生效。
存器的位 WDDIS)否则必须对它进行编程以满足应
模式存器 WDT_MR WDRSTEN
注意
[0WDV] 个区间都可以新启而不产生错误。这也是芯片复位时的缺省配置 (WDD WDV 的数值时相等的 )
模式存器的 WDFIEN 为 1,状 态 位 WDUNF ( 看门狗出 ) 和 WDERR ( 看门狗错误 ) 置 将触发中断。如果 WDRSTEN 同时也为 1,则连接到复位控制器的 “wdt_fault” 信号将引起看门 狗复位这种情况下,处理器和看门狗定时器复位, WDERR WDUNF 被清零。
如果复位经产生,或是读访问了存器 WDT_SR,则状态位
位控制器的 “wdt_fault” 信号再有效。 执行对 WDT_MR 的写操作新加载向下计数器,并使新启动。 当处理器处于调试状态或空闲模式时,根据寄存器 WDT_MR WDIDLEHLT WDDBGHLT
的设,计数器可以被停止。
,当 WDD 于或WDV 时,这个特性禁止。这配置允许看门狗定时器在
被清零,中断被清除,输送到复
76
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
Figure 27. 看门狗的工作行为
AT91SAM7S64 Preliminary
Watchdog Error
Watchdog Underflow
FFF
WDV
Forbidden
Window
WDD
Permitted
Window
0
Watchdog
Fault
Normal behavior
if WDRSTEN is 1
if WDRSTEN is 0
WDT_CR = WDRSTT
6070A–ATARM–07-Jun-05
77

看门狗定时器 (WDT) 接口

Table 14. 看门狗定时器 (WDT) 存器映射
偏移 存器 名称 访问类型 复位值
0x00 控制存器 WDT_CR -
0x04 模式存器 WDT_MR / 写,一次 0x3FFF_2FFF
0x08 状态存器 WDT_SR 只读 0x0000_0000
78
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

看门狗定时器控制存器

存器名称 : WDT_CR
访问类型 :
31 30 29 28 27 26 25 24
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––––
76543210 –––––––WDRSTT
•WDRSTT: 看门狗新启
0:无效。 1新启动看门狗
•KEY: 预设值
0xA5写入其它任何数值都使次写操作失败
KEY
6070A–ATARM–07-Jun-05
79

看门狗定时器模式存器

存器名称 : WDT_MR
访问类型 : / 写,一次
31 30 29 28 27 26 25 24
WDIDLEHLT WDDBGHLT WDD
23 22 21 20 19 18 17 16
WDD
15 14 13 12 11 10 9 8
WDDIS
76543210
•WDV: 看门狗计数器的数值 定了加12 位看门狗计数器的数值
• WDFIEN: 使能看门狗故障中断
0看门狗故障 ( 出或错误 ) 对中断产生影响 1看门狗故障 ( 出或错误 ) 产生中断
• WDRSTEN: 使能看门狗复位
0看门狗故障 ( 出或错误 ) 对复位影响 1看门狗故障 ( 出或错误 ) 将引发看门狗复位
•WDRPROC: 看门狗复位处理器
0:若 WDRSTEN 1看门狗故障 ( 出或错误 ) 将引有的复位 1:若 WDRSTEN 1看门狗故障 ( 出或错误 ) 只引发处理器复位
•WDD: 看门狗 Delta 数值看门狗定时器允许范围。
如果看门狗定时器的数值WDDWDT_CR WDRSTT 使定时器重新启 如果看门狗定时器的数值WDDWDT_CR WDRSTT 产生看门狗错误。
• WDDBGHLT: 看门狗调试停止
0处理器处于调试状态时看门狗仍然运行 1处理器处于调试状态时看门狗停止
• WDIDLEHLT: 看门狗空闲停止
0系统处于空闲状态时看门狗仍然运行 1系统处于空闲状态时看门狗停止
•WDDIS: 禁止看门狗
0使能看门狗定时器 1禁止看门狗定时器
WDRPROC WDRSTEN WDFIEN WDV
WDV
80
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

看门狗定时器状态存器

存器名称 : WDT_SR
访问类型 : 只读
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––––
76543210 ––––––WDERRWDUNF
• WDUNF: 看门狗
0自上一次WDT_SR 之后没有发生看门狗 1自上一次WDT_SR 之后发生了一次看门狗
• WDERR: 看门狗错误
0自上一次WDT_SR 之后没有发生看门狗错误。 1自上一次WDT_SR 之后发生了一次看门狗错误。
6070A–ATARM–07-Jun-05
81
82
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

调节器模式控制器 (VREG)

调节器模式控制器包括一个/ 写寄存器 - 电调节器模式寄存器。它 相对系统控制器的偏
址为 0x60
存器控制调节器的模式。置PSTDBY 使电调节器进入模式或低功耗模 式复位, PSTDBY 清零从而使电调节器进入常模式

调节器电源控制器 (VREG) 接口

Table 15. 电压调节器电源控制器存器映射
偏移 存器 名称 访问类型 复位值
0x60 调节器模式存器 VREG_MR / 写 0x0

调节器模式存器

存器名称 : VREG_MR 访问类型 : / 写
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––––
76543210 –––––––PSTDBY
• PSTDBY: 周期性间隔数值
0 = 通模式 1 = 模式 ( 低功耗模式 )
6070A–ATARM–07-Jun-05
83
84
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

存储器控制器 (MC)

存储器控制器 (MC) 管理 ASB 线,并控制主机的访问请求。这里主机指的使 ARM7TDMI
理器以及外设数据控制器。它具有一个单的总线仲裁器,地址译器,异常中断状态,地址 未对齐检测器和嵌入式 Flash 控制器
方框图
Figure 28. 存储器控制器框图
Memory Controller
ASB
ARM7TDMI
Processor
Peripheral
DMA
Controller
Abort
Bus
Arbiter
Abort
Status
Misalignment
Detector
User
Interface
Address
Decoder
APB
Bridge
Embedded
Flash
Controller
Internal
Flash
Internal
RAM
6070A–ATARM–07-Jun-05
Peripheral 0
Peripheral 1
Peripheral N
APB
From Master
to Slave
85
功能说明 存储器控制器处理 ASB 总线,并对主机的访问进行仲裁。
成部分为
线仲裁
异常中断状态
址未对齐检测器
嵌入式 Flash 控制器
MC 处理 little-endian 模式的访问。主机也只工作于 little-endian 模式
线仲裁 存储器控制器有一个单的、硬连接优先级总线仲裁器,控制两个主机线的访问外设数
据控制器的优先级ARM 处理器的要高。
存储器控制器的地先对 32 总线的高 4 位进行解,并 定 3 个不同的地址
范围:
•256M字节的内部存储器
为片内外设256M 字节址空间
未定3584M 字节现为 14 256M 字节的存储区访问个区将导致异常中断
Figure 29 给出了 256M 字节存储区的分情况
Figure 29. 存储区
256M Bytes
0x0000 0000
0x0FFF FFFF
0x1000 0000
Internal Memories
86
14 x 256MBytes
3,584 Mbytes
256M Bytes
AT91SAM7S64 Preliminary
0xEFFF FFFF
0xF000 0000
0xFFFF FFFF
Undefined
(Abort)
Peripherals
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
片内存储器映射 在内部存储器地址空间地址 译码器将增加 8 个比特的译码,以 便为嵌入式存储器分配 1M
节的址空间的存储器位于 1M 字节的址空间,在个访问空间可能会重n 次, n 1M 字节
除以存储器大小。
访问地址没有定时,地址译码器异常中断到主机。
Figure 30. 内部存储器映射
0x0000 0000
256M Bytes
0x000F FFFF
0x0010 0000
0x001F FFFF
0x0020 0000
0x002F FFFF
0x0030 0000
Internal Memory Area 0
Internal Memory Area 1
Internal Flash
Internal Memory Area 2
Internal SRAM
1M Bytes
1M Bytes
1M Bytes
Undefined Areas
(Abort)
0x0FFF FFFF
内部存储器 区0
内部存储器区0 的32 个字节包含了 ARM 处理器的外向量,其是位于0x0 的复位 向量
执行
重映射 (remap) 命令之前,片内 Flash 映射于内部存储器区域 0,因此 ARM7TDMI 可以访 问到位于 Flash 的可执行指令。重映射之后,原来位于地址 0x0020 0000 的片内 SRAM 映射到 内部存储器区域 0。它同时可以来的址进行访问
重映射命令 重映射之后,片内 SRAM 可以通过 内部存储器区0 进行访问
由于 ARM 向量 ( 复位,异常,数据异常,预取异常,未定指令,中断和快速中断 ) 从地址 0x0
映射0x20重映射命令允许通过软件动态这些向量重进行定义 重映射命令通过存储器控制器用接口进行控制,方法是将存器 MC_RCR ( 重映射控制
器 ) 的 RCB
一次置MC_RCR RCB 取消重映射命令。这个功能可以将芯复位之后同的 配置从而化用自定义启动序的调试
253M bytes
6070A–ATARM–07-Jun-05
87

异常状态 异常发生的原因有三个

访问未定
访问未对齐的
异常发生时,有的主机接收到一个信号,一个主机产生了个访问是只有 ARM7TDMI 会处理此信号,而且是在个访问由产生的条件外设数据控制器 理异常输入信号Figure 28 有给出信号的连接系。
为了便利操作系统的调试或错误,存储器控制器集成了异常状态存器集
完整的 32 位异常址保存于 MC_AASR,访问保存于 MC_ASR
请求的变量位(ABTSZ)
访问类型,看
访问的未定(UNDADD) 还是未对齐的(MISADD)
导致异常的访问来源 (MST0 MST1)
上一次存器后是否每一个主机都发生了异常 (SVMST0 SVMST1),除
个信息已经加MSTx
发生来自处理器的数据异常时,数据地址得以保存。这常有用,因为搜索哪个引起异常 要求进行编并了处理器的上下文。
发生预取异常时,由于预取发生在水线中,址可能经变了。只有在执行读指令时 ARM 理器才会预取异常,而此时可能存器
其是数据/ 写访问还是代码访问 (ABTTYP)
经发生次异常了。因 此使用 ARM 处理器的异常

嵌入式 Flash 控制 器

嵌入式 Flash 控制器加入存储器控制器以保Flash 模块32 位内部线的接口。通过32 位的缓冲器可以提高 Thumb 模式下代码取的性能。它同时通过完整的命令集管理Flash 的编程、擦除、加锁和解锁。
对齐检测器 存储器控制器的未对齐检测器可以检内存访问的一致
内存访问一个主机发,检 测 器 每一次内存访问的线度以及位 0 和位 1。 如果以字 (32 位 ) 来访问,而且位 0 和位 1 不为 0,或者以自字 (16 位 ) 来访问,而位 0
0则异常主机此次访问消。要注意的,当 ARM 处理器在取指令时执行这种
对齐通常由软件缺陷引起的,错误的指操作以检测
由于请求址保存于异常状态存器,而引起地对齐的指令保存于异常链接寄存器,检 测及正这类软件因此得到了简化
。这些软件陷在调试阶段
88
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

存储器控制器 (MC) 接口

基地址:0xFFFFFF00
Table 16. 存储器控制器 (MC) 寄存器映射
偏移 存器 名称 访问类型 复位状态
0x00 MC 重映射控制存器 MC_RCR
0x04 MC 异常状态存器 MC_ASR 只读 0x0
0x08 MC 异常址状态存器 MC_AASR 只读 0x0
0x0C-0x5C –––
0x60 EFC 配置存器 见 “ 嵌入式 Flash 控制器 (EFC)” on page 93.
6070A–ATARM–07-Jun-05
89

MC 重映射控制存器

存器名称:MC_RCR 访问类型:只
偏移 0x00
31 30 29 28 27 26 25 24
––––––––
23 22 21 20 19 18 17 16
––––––––
15 14 13 12 11 10 9 8
––––––––
76543210 –––––––RCB
• RCB: 重映射命令位
0:无效。 1:这一位的作用一个1 交替执行 / 页储存器的重映射
90
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05

MC 异常状态寄存器

存器名称: MC_ASR
访问类型:只 读 复位值 0x0
偏移 0x04
31 30 29 28 27 26 25 24
––––––SVMST1SVMST0
23 22 21 20 19 18 17 16
––––––MST1MST0
15 14 13 12 11 10 9 8
ABTTYP ABTSZ
76543210 ––––––MISADDUNDADD
• UNDADD: 未定址异常状态
0: 上一个异常不是由于执行了对未定址的访问而引起 1: 上一个异常由于执行了对未定址的访问而引起
• MISADD: 未对齐的址异常状态
0: 上一个异常不是由于址未对齐引起 1: 上一个异常由于址未对齐引起
• ABTSZ: 异常变量位状态
AT91SAM7S64 Preliminary
ABTSZ 异常变量位
00 字节
01
10
11
• ABTTYP: 异常类型状态
ABTTYP 异常类型
00 数据
01 写数据
10 代码
11
•MST0: ARM7TDMI异常来源
0上一个异常不是由于 ARM7TDMI 引起 1上一个异常由于 ARM7TDMI 引起
• MST1: PDC 异常来源
0上一个异常不是由于 PDC 引起
1上一个异常由于 PDC 引起
6070A–ATARM–07-Jun-05
91
• SVMST0: ARM7TDMI 异常来源
0自上一次MC_ASR,或通过 MST0 到通之后有发生由于 ARM7TDMI 成的异常 1自上一次MC_ASR 之后,至发生了一次由于 ARM7TDMI 成的异常
• SVMST1: PDC 异常来源
0自上一次MC_ASR,或通过 MST1 到通之后有发生由于 PDC 成的异常 1自上一次MC_ASR 之后,至发生了一次由于 PDC 成的异常

MC 异常址状态存器

存器名称 : MC_AASR
访问类型:只 读 复位值0x0
偏移 0x08
31 30 29 28 27 26 25 24
23 22 21 20 19 18 17 16
15 14 13 12 11 10 9 8
76543210
ABTADD
ABTADD
ABTADD
ABTADD
• ABTADD: 异常地址了上一次异常访问的
92
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary

嵌入式 Flash 控制器 (EFC)

嵌入式 Flash 控制器 (EFC) 存储器控制器的一部分,确保 Flash 32 位内部线的接口
通过32 位缓冲器系统,EFC 提高了 Thumb 模式下代码取的性能。它同时通过一完整 的命令集管理 Flash 的编程、擦除、加锁和解锁。

功能说明

嵌入式 Flash 形式

嵌入式 Flash 32 位内部线接接口。它由下个接口组成
一个存储大小的页构成
两个 32 缓冲器用来优化代码访问 (See “ 操作 ” on page 94.)
一个写缓冲区用来管理页编程写缓冲区面大小。这个缓冲区是只写的,而且
可以在 1 M 字节址空间进行访问。所以每个字都可以写到的最终地址 (See “ 写操作 ” on page 96.)
个锁定位用来保护锁定区的写和擦除操作锁定区连续的页成,每个锁
定区具有自的锁定位
个通用 NVM 每个位控制一个特定的功能。具体请参考一节
嵌入式 Flash 大小,页面大小和锁定区域组织在产品定一节有描述。
Figure 31. 嵌入式 Flash 存储器映射
Page 0
Start Address
Flash Memory
Lock Region 0 Lock Region 1
Lock Bit 0 Lock Bit 1
Page (m-1)
6070A–ATARM–07-Jun-05
Lock Region
32-bit wide
(n-1)
Lock Bit n-1
Page ( (n-1)*m )
Page (n*m-1)
93
操作 一个优化的控制器管理嵌入式 Flash 操作。系统加了两个 32 位的缓冲器。其作用访
操作的址,从而提高了处理器运行于 Thumb(16 位指令集 ) 模式时的性能。图示请
Figure 32Figure 33 Figure 34
优化代码取有,对数据无效。操作可以等待状态通过编程 Flash 模式存器 MC_FMR ( “MC Flash 模式存器
on page 102)FWS (Flash等待状态),最多可以3等待状态FWS为 0表示对片内 Flash 进行单周期访问
Flash 存储器可以 816 32 位的方式进行访问 由于 Flash 的片内存储区址空间要小,访问这个地址空间时 Flash 复出现
Figure 32. 代码取优化, Thumb 模式, FWS = 0
Master Clock
ARM Request (16-bit)
Code Fetch
Flash Access
Buffer (32 bits)
Data To ARM
@Byte 0
@Byte 2 @Byte 4
Bytes 0-3 Bytes 4-7
Bytes 0-3
Bytes 0-1
Bytes 2-3 Bytes 4-5 Bytes 6-7
Note: FWS 0 时,有的访问都单周期访问
Figure 33. 代码取优化, Thumb 模式, FWS = 1
1 Wait State Cycle
1 Wait State Cycle 1 Wait State Cycle
@Byte 6
Bytes 4-7
@Byte 8
Bytes 8-11
@Byte 10 @Byte 12
Bytes 12-15 Bytes 16-19
Bytes 8-11
Bytes 8-9 Bytes 10-11 Bytes 12-13
@Byte 14 @Byte 16
Bytes 12-15
1 Wait State Cycle
Bytes 14-15
Master Clock
ARM Request (16-bit)
Code Fetch
Flash Access
Buffer (32 bits)
Data To ARM
@Byte 0
@Byte 2
Bytes 0-3 Bytes 4-7
Bytes 0-1
@Byte 4
Bytes 0-3
Bytes 2-3
@Byte 6
Bytes 4-5
Note: FWS 1 执行序列读时,有的访问都单周期访问 ( 除了一次访问 )
94
AT91SAM7S64 Preliminary
@Byte 8 @Byte 10
Bytes 8-11
Bytes 4-7
Bytes 6-7
Bytes 8-9 Bytes 10-11
@Byte 12 @Byte 14
Bytes 12-15
Bytes 8-11
Bytes 12-13
6070A–ATARM–07-Jun-05
Figure 34. 代码取优化, Thumb 模式, FWS = 3
3 Wait State Cycles
Master Clock
3 Wait State Cycles
AT91SAM7S64 Preliminary
3 Wait State Cycles 3 Wait State Cycles
ARM Request (16-bit)
Code Fetch
Flash Access
Buffer (32 bits)
Data To ARM
@Byte 0
Bytes 0-3
@2
0-1
@4
2-3
Bytes 4-7
Bytes 0-3
@6
4-5
@12
@8
Bytes 8-11 Bytes 12-15
Bytes 4-7
6-7
@10
8-9
10-11
Bytes 8-11
12-13
Note: FWS2 3执行序列读时,一个访问需要 FWS 个周期,个访问需要一个周期, 三个访问需要FWS 个周期,
访问需要一个周期,此类
6070A–ATARM–07-Jun-05
95
写操作 通过写锁存缓冲器可以实现对片内保留的 Flash 存储空间的写操作写操作只利用了最
低的8位址,因此访问整个地址空间时最低地址位,在内部存储器址空间中转并重复1024
通过编程存储器保护单元可以禁止写操作8 位和 16 式进行的写操作是不允许的,可能导致不可预期的数据毁 执行写操作时的等待周期等于等待周期 + 1,除了 FWS = 3 ( “MC Flash 模式存器 ” on
page 102) 情况
Flash 命令 嵌入式 Flash 控制器提供了一命令来管理 flash 存储器的编程、扇区加锁和锁、连续编程
上锁,以及全片擦除
Table 17. 命令集
命令 数值 助记符
页写 0x01 WP
锁定位 0x02 SLB
页写和锁定 0x03 WPL
除锁定位 0x04 CLB
全片擦除 0x08 EA
通用 NVM 0x0B SGPB
除通用 NVM 0x0D CGPB
设定安全位 0x0F SSB
执行命令之前首先要对 MC_FCR 存器的 FCMD 域赋以命令编号。一执行了 MC_FCR 器的写操作, FRDY 自动清零。命令执行结束 FRDY 志又自动被置。如果此
的中断使能,存储器控制器的中断线激活。 所有的命令都通过同的关键字进行保护。这个关键字必须写入 MC_FCR 存器的高 8 。 如果关键不正确,将数据写入 MC_FCR 对 存储器 没有任何影响除了 MC_FSR 存器的
PROGE 志置。读
如果当前命令试图写入或擦除保护区一页,此命令不对存储器产生任何影响,除了
MC_FSR 存器的 FLOCKE 。读MC_FSR 将此清零。
MC_FSR 将此清零。
96
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
Figure 35. 命令状态
Read Status: MC_FSR
AT91SAM7S64 Preliminary
Check if FRDY flag set
Yes
Write FCMD and PAGENB in MC_FCR
Read Status: MC_FSR
Check if FRDY flag set
Yes
Check if LOCKE flag set
No
No
No
Yes
Locking region violation
Check if PROGE flag set
Command Successful
为了保Flash 正确操作, Flash 模式存器 MC_FMR Flash 周期数 (FMCN) 必 须得正确编程 ( “MC Flash 模式存器 ” on page 102)
Note: 1 时钟周期数,以保一些必要的内部时序
Flash 编程 个命令用于 Flash 编程
Flash 技术定了编程之前必须进行擦除。整个存储区可以同时进行擦除,可以对页自动进 行擦除操作对 MC_FCR 存器写入命令之前清除 MC_FMR 存器的 NEBP
6070A–ATARM–07-Jun-05
No
Yes
Bad keyword violation and/or Invalid command
97
位MC_FMR存器的NEBP如果擦除,可以个步进行编程 (见 Figure
36)
Figure 36. 部分编程的子 :
16 words
16 words
16 words
16 words
32 bits wide
FF FF FF FF
...
FF FF FF FF FF FF FF FF
FF FF FF FF
...
FF FF FF FF FF FF FF FF
FF FF FF FF
...
FF FF FF FF FF FF FF FF
FF FF FF FF
...
FF FF FF FF FF FF FF FF
Step 1.
Erase All Flash
Page 7 erased
编程,页 ( 个锁定区域 ) 能上锁以防止其它写或擦除序列。使用 WPL 编程锁定位自动 设定
写入的数据存储于一个内部锁存缓冲器中锁存缓冲器的大小由页的大小决锁存缓冲器在 内部存储器区址空间中,复的次数为页的数目。
Note: 允许写 8 位或 16 位数据,为可能引起数据错误。
32 bits wide 32 bits wide
FF FF FF FF
...
FF FF FF FF FF FF FF FF
CA FE CA FE
...
CA FE CA FE CA FE CA FE
FF FF FF FF
...
FF FF FF FF FF FF FF FF
FF FF FF FF
...
FF FF FF FF FF FF FF FF
Step 2.
FF FF FF FF
FF FF FF FF FF FF FF FF
CA FE CA FE
CA FE CA FE CA FE CA FE
DE CA DE CA
DE CA DE CA DE CA DE CA
FF FF FF FF
FF FF FF FF FF FF FF FF
...
...
...
...
Step 3.
Programming of the second part of Page 7 Programming of the third part of Page 7
(NEBP = 1)
(NEBP = 1)
在编程命令写入 Flash 命令存器 MC_FCR 前将数据写入锁存缓冲器列如
个页中任意址写入时,允许 32 位访问
页序号编程命令写入 Flash 命令存器编程。Flash 编程状态存器 (MC_FSR)
FRDY 位自动清零。
编程结束FRDY 位上。若通过设FRDY 使能中断,存储控制器中断线激活 编程序列后MC_FSR 存器能检测到两类错误:
编程错误:MC_FCR 存器中写入错误关键字或一条无效的命令
锁定错误:编程页于锁定区必须将
98
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
AT91SAM7S64 Preliminary
擦除有命令 MC_FCR 中擦除有命令 (EA) 位写入,擦除个存储器
有当有设锁定位时允许擦除有的操作。因此若有一个区锁定, MC_FSR 中的
LOCKE 位上升并命令取消。若 LOCKE 写入 1 中断线上 编程结束FRDY 位上。若通过设FRDY 使能中断,存储控制器中断线激活 编程序列后MC_FSR 存器能检测到两类错误:
编程错误:MC_FCR 存器中写入错误关键字或一条无效的命令
锁定错误:有一个擦除区有锁定保护擦除命令无效且不擦除任何必须
锁定位保护 锁定位与内置 Flash 存储器中的几个页相关。它 用来定义内Flash 存储器的锁定区。它 们防
止写 / 擦除保护页时,器件可能有一Flash 锁定区上锁。这些锁定区用于默认。参品说明
默认的内Flash 映射部分可通过擦除锁定区解锁,编程
锁定序列为:
•Flash命令存器中必须写入下
(0x5A << 24) | (lockPageNumber << 8 & PAGEN) | SLB lockPageNumber 为锁定区域相的页
当锁定成, FRDY 位上。若通过设
FRDY 使能中断,存储控制器中断线激活
MC_FCR 存器中写入错误关键字或一条无效的命令时,在编程序列后,MC_FSR 存器能
检测到
除预先设定的锁定位。这可对锁定的区进行擦除或编程。解锁序
•Flash命令存器中必须写入下
(0x5A << 24) | (lockPageNumber << 8 & PAGEN) | CLB lockPageNumber 为锁定区域相的页
成, FRDY 位上。若通过设FRDY 使能中断,存储控制器中断线激活 MC_FCR 存器中写入错误关键字或一条无效的命令时,在编程序列后,MC_FSR 存器能
检测到。 解锁命令锁定位编程为 1 MC_FSR LOCKSx 0锁定命令将锁定位编程为 0
MC_FSR 相应LOCKSx 1
Note: 模式下,当执行锁定或锁命令时允许访问 Flash
通用功能 NVM 通用功能 NVM 不与Flash 存储器连接。这些通用功能位门用于保护产品的其它部分
可独立( 激活 ) 。参品说明中关于通用功能 NVM 位的说明。
激活
使用SEL命令对Flash命令寄存器写入,以启动设通用功能位命令 (SGPB) ,并 在 PAG E N
中设定激活通用功能位数目。
位, FRDY 位上。若通过设FRDY 使能中断,存储控制器中断线激活 编程序列后MC_FSR 存器能检测到两类错误:
编程错误:MC_FCR 存器中写入错误关键字或一条无效
通用功能位数于通用功能位数,命令无效。
的命令
6070A–ATARM–07-Jun-05
通用功能 NVM 位中止,除序
使用 CGPB 命令对 Flash 命令存器写入,以除通用功能位命令 (CGPB) ,并在
PAG EN 中设定除通用功能位数目。
成, FRDY 位上。若通过设FRDY 使能中断,存储控制器中断线激活
99
编程序列后MC_FSR 存器能检测到两类错误:
编程错误:MC_FCR 存器中写入错误关键字或一条无效的命令
PA GE N 中设的通用功能位数于通用功能位数,命令无效。
除通用功能位命令通用功能 NVM 位编程为 1 MC_FSR GPNVMx 0 用功能位命令通用功能 NVM 位编程为 0 MC_FSR 中位 GPNVMx 1
Note: 模式下,当执行设除或到通用功能 NVM 位命令时允许访问 Flash
安全位 安全位的目的是防止外部对内部线系统的访问JTAG、快速 Flash 编程及 Flash 串行测试接
口特性禁用。置 该位只能通过外部硬件 ERASE 向芯片请求来复位。参 见产品说明中 控制 ERASE 引脚说明。此时,整个存储器被擦除且所有锁定及通用功能 NVM 位被清除。只 有在这些操作才会MC_FSR 中的安全位清除。
激活
Flash 命令存器写入以动安全位命令 (SSB)
当锁定成, FRDY 位上。若通过设FRDY 使能中断,存储控制器中断线激活
当安全位激活
MC_FSR 中的 SECURITY
100
AT91SAM7S64 Preliminary
6070A–ATARM–07-Jun-05
Loading...