特点
• 集成了 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.65V, 85°C ) 高达 55 MHz
• 封装为 64 脚的 LQFP
描述 AT91SAM7S64是Atmel 32位 ARM 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。
64脚LQFP封装的机械形状 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 和 VDDPLL。 Figure 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 引脚 TMS、TDI和 TCK 都是施密特触发器型的输入引脚。TMS和TCK与 5V兼容,TDI 则不是。
TMS、 TDI 和 TCK 都没有上拉电阻。
TDO 为输出引脚,输出电平可达 VDDIO,没有上拉电阻。
引脚 JTAGSEL 拉高时选择 JTAG 边界扫描功能。此引脚集成了阻值约为 15 k Ω 的片内
下拉电阻,所以在正常工作模式下可以悬空。
测试引脚 TST用于生产测试,或是拉高以进入快速编程模式。TST集成了阻值约为 15 kΩ 的片内下
拉电阻,所以在正常工作模式下可以悬空。
为了使能快速编程模式,引脚 TST 和 PA0、 PA1 都需要拉高。
TST 为高时,若 PA0 或 PA1 为 0 将导致不可预测的结果。
复位引脚 NRST 是双向引脚。它可以被片内的复位控制器拉低,从而为外部器件产生复位信号;也
可以被外部电路拉低以复位处理器。复位脉冲没有持续时间的限制,复位控制器可以保证
产生最小长度的脉冲。从而可以在引脚 NRST 上简单地连接一个摁键开关作为用户的系
统复位控制,同时也可以利用 NRST 信号来复位系统的其他原器件。
NRST 引脚有一个上拉电阻连接到 VDDIO。
ERASE 引脚 引脚 ERASE 用于 Flash 及其一些 NVM 位的擦除。引脚具有阻值约为 15 k Ω 的下拉电
阻,所以在正常工作模式下可以悬空。
PIO 控制器 A 端口 I/O口线PA0-PA31与5V兼容,且每个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 MHz, 0.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 概览 AT91SAM7S64的Flash组织为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 支持读、页编程、页擦除、全片擦除、锁定、解锁和保护命令。
拉高引脚 TST、 PA0 和 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
它提供了 SLCK、 MAINCK 以及 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 为系统外设 (RTT, PIT, EFC, PMC, DBGU,等 )
– 其他中断源控制外设中断或外部中断
– 可编程的边沿触发或电平敏感的内部中断源
– 可编程的正 / 负边沿触发或高 / 低电平敏感的外部中断源
•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个口线。每个口线都可以分配为两个外设功能的一个,A或B。其 中的
一些还可以复用为 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
– 串行外设,如 ADC, DAC, LCD 控制器, 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-RI, USART1
– 接收器时间溢出,发送器时间保护 (timeguard)
– 具有地址产生和检测功能的多地址 (Multi-drop) 通讯模式
• 支持 RS485 通讯,具有驱动器控制信号
• 支持 ISO7816 的 T = 0 或 T = 1 协议
–NACK信号处理,有限重复次数的错误计数器
•IrDA调制与解调
– 通讯速率可达 115.2 Kbps
• 测试模式
– 远程回环,本地回环,自动回发
AT91SAM7S64 Preliminary
,实现与智能卡的接口
串行同步控制器 • 为语音和电信应用提供了串行同步通讯链路
• 包括一个独立的接收器和独立的发送器,以及共用的时钟分频器
• 可配置的帧同步和数据长度
• 接收器和发送器都可以编程为自动启动,或是在检测到帧同步信号上的不同事件之
后再启动
• 接收器和发送器包括了数据信号、时钟信号和帧同步信号
定时器 / 计数器 •3个 16 位的定时器 / 计数器通道
–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