电子工程世界电子工程世界电子工程世界

产品描述

搜索
 

ATR4251-TKQY

器件型号:ATR4251-TKQY
器件类别:热门应用    无线/射频/通信   
厂商名称:Microchip
厂商官网:https://www.microchip.com
标准:
下载文档

器件描述

IC RF AMP BROADCAST RADIO 20SSO

参数
产品属性属性值
频率:150kHz ~ 30MHz,70MHz ~ 110MHz
P1dB:-
增益:6dB
噪声系数:-
RF 类型:广播无线电
电压 - 电源:8 V ~ 11 V
电流 - 电源:14mA
测试频率:-
封装/外壳:20-LSSOP(0.173",4.40mm 宽)
供应商器件封装:20-SSO

ATR4251-TKQY器件文档内容

   Features

•  Incorporates the ARM7TDMI® ARM® Thumb® Processor

   – High-performance 32-bit RISC Architecture

   – High-density 16-bit Instruction Set

   – Leader in MIPS/Watt

   – EmbeddedICE™ In-circuit Emulation, Debug Communication Channel Support

•  Internal High-speed Flash

   – 512 Kbytes, Organized in Two Contiguous Banks of 1024 Pages of 256 Bytes Dual

   Plane (SAM7SE512)                                                                    AT91SAM

   – 256 Kbytes (SAM7SE256) Organized in One Bank of 1024 Pages of 256 Bytes

   Single Plane (SAM7SE256)                                                             ARM-based

   – 32 Kbytes (SAM7SE32) Organized in One Bank of 256 Pages of 128 Bytes Single

   Plane (SAM7SE32)                                                                     Flash MCU

   – Single Cycle Access at Up to 30 MHz in Worst Case Conditions

   – Prefetch Buffer Optimizing Thumb Instruction Execution at Maximum Speed

   – Page Programming Time: 6 ms, Including Page Auto-erase, Full Erase Time: 15 ms     SAM7SE512

   – 10,000 Erase Cycles, 10-year Data Retention Capability, Sector Lock Capabilities,

   Flash Security Bit                                                                   SAM7SE256

   – Fast Flash Programming Interface for High Volume Production

•  32 Kbytes (SAM7SE512/256) or 8 Kbytes (SAM7SE32) of Internal                         SAM7SE32

   High-speed SRAM, Single-cycle Access at Maximum Speed

•  One External Bus Interface (EBI)

   – Supports SDRAM, Static Memory, Glueless Connection to CompactFlash® and

   ECC-enabled NAND Flash

•  Memory Controller (MC)

   – Embedded Flash Controller

   – Memory Protection Unit

   – Abort Status and Misalignment Detection

•  Reset Controller (RSTC)

   – Based on Power-on Reset Cells and Low-power Factory-calibrated Brownout

   Detector

   – Provides External Reset Signal Shaping and Reset Source Status

•  Clock Generator (CKGR)

   – Low-power RC Oscillator, 3 to 20 MHz On-chip Oscillator and One PLL

•  Power Management Controller (PMC)

   – Power Optimization Capabilities, Including Slow Clock Mode (Down to 500 Hz) and

   Idle Mode

   – Three Programmable External Clock Signals

•  Advanced Interrupt Controller (AIC)

   – Individually Maskable, Eight-level Priority, Vectored Interrupt Sources

   – Two External Interrupt Sources and One Fast Interrupt Source, Spurious Interrupt

   Protected

•  Debug Unit (DBGU)

   – Two-wire UART and Support for Debug Communication Channel interrupt,

   Programmable ICE Access Prevention

   – Mode for General Purpose Two-wire UART Serial Communication

•  Periodic Interval Timer (PIT)

   – 20-bit Programmable Counter plus 12-bit Interval Counter

•  Windowed Watchdog (WDT)

   – 12-bit key-protected Programmable Counter                                          6222H–ATARM–25-Jan-12
   – Provides Reset or Interrupt Signals to the System

   – Counter May Be Stopped While the Processor is in Debug State or in Idle Mode

•  Real-time Timer (RTT)

   – 32-bit Free-running Counter with Alarm

   – Runs Off the Internal RC Oscillator

•  Three Parallel Input/Output Controllers (PIO)

   – Eighty-eight Programmable I/O Lines Multiplexed with up to Two Peripheral I/Os

   – Input Change Interrupt Capability on Each I/O Line

   – Individually Programmable Open-drain, Pull-up Resistor and Synchronous Output

   – Schmitt Trigger on All inputs

•  Eleven Peripheral DMA Controller (PDC) Channels

•  One USB 2.0 Full Speed (12 Mbits per second) Device Port

   – On-chip Transceiver, Eight Endpoints, 2688-byte Configurable Integrated FIFOs

•  One Synchronous Serial Controller (SSC)

   – Independent Clock and Frame Sync Signals for Each Receiver and Transmitter

   – I²S Analog Interface Support, Time Division Multiplex Support

   – High-speed Continuous Data Stream Capabilities with 32-bit Data Transfer

•  Two Universal Synchronous/Asynchronous Receiver Transmitters (USART)

   – Individual Baud Rate Generator, IrDA® Infrared Modulation/Demodulation

   – Support for ISO7816 T0/T1 Smart Card, Hardware Handshaking, RS485 Support

   – Full Modem Line Support on USART1

•  One Master/Slave Serial Peripheral Interfaces (SPI)

   – 8- to 16-bit Programmable Data Length, Four External Peripheral Chip Selects

•  One Three-channel 16-bit Timer/Counter (TC)

   – Three External Clock Inputs, Two Multi-purpose I/O Pins per Channel

   – Double PWM Generation, Capture/Waveform Mode, Up/Down Capability

•  One Four-channel 16-bit PWM Controller (PWMC)

•  One Two-wire Interface (TWI)

   – Master, Multi-Master and Slave Mode Support, All Two-wire Atmel EEPROMs Supported

   – General Call Supported in Slave Mode

•  One 8-channel 10-bit Analog-to-Digital Converter, Four Channels Multiplexed with Digital I/Os

•  SAM-BA®

   – Default Boot program

   – Interface with SAM-BA Graphic User Interface

•  IEEE® 1149.1 JTAG Boundary Scan on All Digital Pins

•  Four High-current Drive I/O lines, Up to 16 mA Each

•  Power Supplies

   – Embedded 1.8V Regulator, Drawing up to 100 mA for the Core and External Components

   – 1.8V or 3,3V VDDIO I/O Lines Power Supply, Independent 3.3V VDDFLASH Flash Power Supply

   – 1.8V VDDCORE Core Power Supply with Brownout Detector

•  Fully Static Operation:

   – Up to 55 MHz at 1.8V and 85⋅ C Worst Case Conditions

   – Up to 48 MHz at 1.65V and 85⋅ C Worst Case Conditions

•  Available in a 128-lead LQFP Green Package, or a 144-ball LFBGA RoHS-compliant Package

2  SAM7SE512/256/32

                                                                                                  6222H–ATARM–25-Jan-12
                                                                              SAM7SE512/256/32

1.   Description

                       Atmel's SAM7SE Series is a member of its Smart ARM Microcontroller family based on the 32-

                       bit ARM7™ RISC processor and high-speed Flash memory.

                       • SAM7SE512 features a 512-Kbyte high-speed Flash and a 32 Kbyte SRAM.

                       • SAM7SE256 features a 256-Kbyte high-speed Flash and a 32 Kbyte SRAM.

                       • SAM7SE32 features a 32-Kbyte high-speed Flash and an 8 Kbyte SRAM.

                       It also embeds a large set of peripherals, including a USB 2.0 device, an External Bus Interface

                       (EBI), and a complete set of system functions minimizing the number of external components.

                       The EBI incorporates controllers for synchronous DRAM (SDRAM) and Static memories and

                       features specific circuitry facilitating the interface for NAND Flash, SmartMedia and

                       CompactFlash.

                       The device is an ideal migration path for 8/16-bit microcontroller users looking for additional per-

                       formance, extended memory and higher levels of system integration.

                       The embedded Flash memory can be programmed in-system via the JTAG-ICE interface or via

                       a parallel interface on a production programmer prior to mounting. Built-in lock bits and a secu-

                       rity bit protect the firmware from accidental overwrite and preserve its confidentiality.

                       The SAM7SE Series system controller includes a reset controller capable of managing the

                       power-on sequence of the microcontroller and the complete system. Correct device operation

                       can be monitored by a built-in brownout detector and a watchdog running off an integrated RC

                       oscillator.

                       By combining the ARM7TDMI processor with on-chip Flash and SRAM, and a wide range of

                       peripheral functions, including USART, SPI, External Bus Interface, Timer Counter, RTT and

                       Analog-to-Digital Converters on a monolithic chip, the SAM7SE512/256/32 is a powerful device

                       that provides a flexible, cost-effective solution to many embedded control applications.

1.1  Configuration     Summary of the SAM7SE512, SAM7SE256 and SAM7SE32

                       The SAM7SE512, SAM7SE256 and SAM7SE32 differ in memory sizes and organization. Table

                       1-1 below summarizes the configurations for the three devices.

                       Table 1-1.     Configuration Summary

                       Device         Flash Size             Flash Organization                RAM Size

                       SAM7SE512      512K bytes             dual plane                        32K bytes

                       SAM7SE256      256K bytes             single plane                      32K bytes

                       SAM7SE32       32K bytes              single plane                      8K bytes

                                                                                                                             3

6222H–ATARM–25-Jan-12
2.  Block  Diagram

           Figure 2-1.         SAM7SE512/256/32 Block Diagram Signal Description

                        TDI                        ICE

                    TDO                JTAG                       ARM7TDMI

                    TMS                SCAN                       Processor

                    TCK

                    JTAGSEL

                                                                                                                      1.8V               VDDIN

                               System  Controller                                                                     Voltage            GND

                    TST                                                                                               Regulator          VDDOUT

                        FIQ                                       Memory Controller                                                      VDDCORE

                               PIO           AIC                                                                                         VDDIO

                    IRQ0-IRQ1                                     Embedded          Address                SRAM

                                                                  Flash             Decoder         32 Kbytes (SE512/256)

                    DRXD                          PDC             Controller                               or

                    DTXD               DBGU                                                                8 Kbytes   (SE32)

                                                  PDC             Abort       Misalignment

                                                                  Status            Detection

                    PCK0-PCK2                                                                                                            VDDFLASH

                                                                  Memory Protection                        Flash

                    PLLRC      PLL                                                                   512 Kbytes (SE512)

                                                                              Unit                   256 Kbytes (SE256)                  ERASE

                        XIN    OSC          PMC                                                            32 Kbytes  (SE32)

                    XOUT

                               RCOSC

                                                                  Peripheral Bridge

                    VDDFLASH   BOD

                    VDDCORE                 Reset                 Peripheral DMA                           ROM

                    VDDCORE    POR     Controller                 Controller                                                             PGMRDY

                                                                  11 Channels                              Fast Flash                    PGMNVALID

                    NRST                                                                                   Programming                   PGMNOE

                                                                                                                                         PGMCK

                                                                                                           Interface                     PGMM0-PGMM3

                                       PIT                        APB                                                                    PGMD0-PGMD15

                                                                                                                                         PGMNCMD

                                                                                                                                         PGMEN0-PGMEN1

                                       WDT

                                                                                                           SAM-BA

                                       RTT

                               PIOA          PIOC

                                                                                                                                         D[31:0]

                                                                                                                                         A0/NBS0

                                       PIOB                                                    EBI                                       A1/NBS2

                                                                                                                                         A[15:2], A[20:18]

                                                                                                                                         A21/NANDALE

                                                                                                                                         A22/REG/NANDCLE

                    RXD0                                    PDC                                                                          A16/BA0

                    TXD0                                                                                                                 A17/BA1

                    SCK0                           USART0                                                                                NCS0

                    RTS0                                                             CompactFlash                                        NCS1/SDCS

                    CTS0                                    PDC                                NAND Flash                                NCS2/CFCS1

                    RXD1                                    PDC                                                                          NCS3/NANDCS

                    TXD1                                                                                                            PIO  NRD/CFOE

                    SCK1                                                                                                                 NWR0/NWE/CFWE

                    RTS1                           USART1                                                                                NWR1/NBS1/CFIOR

                    CTS1                                                                       SDRAM                                     NBS3/CFIOW

                    DCD1                                                                       Controller                                SDCKE

                    DSR1                                                                                                                 RAS

                    DTR1                                                                                                                 CAS

                        RI1                                 PDC                                                                          SDWE

                    NPCS0                                   PDC                                                                          SDA10

                    NPCS1                                                                                                                CFRNW

                    NPCS2      PIO                     SPI                           Static Memory                                       NCS4/CFCS0

                    NPCS3                                                                      Controller                                NCS5/CFCE1

                    MISO                                                                                                                 NCS6/CFCE2

                    MOSI                                    PDC                                                                          NCS7

                    SPCK                                                                                                                 NANDOE

                    TCLK0                                                                                                                NANDWE

                    TCLK1                          Timer Counter                               ECC                                       NWAIT

                    TCLK2                                                                      Controller                                SDCK

                    TIOA0                              TC0

                    TIOB0

                    TIOA1                              TC1                           FIFO                              Transciever

                    TIOB1                                                                                                                DDM

                    TIOA2                              TC2                                     USB Device                                DDP

                    TIOB2

                    ADTRG                                   PDC                                                                          PWM0

                    AD0                                                                                                                  PWM1

                    AD1                                                                        PWMC                                      PWM2

                    AD2                                                                                                                  PWM3

                    AD3                                ADC                           PDC                                            PIO  TF

                    AD4                                                                                                                  TK

                    AD5                                                                                                                  TD

                    AD6                                                                        SSC                                       RD

                    AD7                                                                                                                  RK

                    ADVREF                                                           PDC                                                 RF

                                                                                               TWI                                       TWD

                                                                                                                                         TWCK

4   SAM7SE512/256/32

                                                                                                                                         6222H–ATARM–25-Jan-12
                                                                                        SAM7SE512/256/32

3.   Signal Description

Table 3-1.   Signal    Description List

                                                                                Active

Signal Name            Function                                 Type            Level   Comments

                                                         Power

VDDIN                  Voltage Regulator and ADC Power          Power                   3V to 3.6V

                       Supply Input

VDDOUT                 Voltage Regulator Output                 Power                   1.85V

VDDFLASH               Flash and USB Power Supply               Power                   3V to 3.6V

VDDIO                  I/O Lines Power Supply                   Power                   3V to 3.6V or 1.65V     to  1.95V

VDDCORE                Core Power Supply                        Power                   1.65V to 1.95V

VDDPLL                 PLL                                      Power                   1.65V to 1.95V

GND                    Ground                                 Ground

                                                  Clocks, Oscillators and PLLs

XIN                    Main Oscillator Input                    Input

XOUT                   Main Oscillator Output                 Output

PLLRC                  PLL Filter                               Input

PCK0 - PCK2            Programmable Clock Output              Output

                                                         ICE and JTAG

TCK                    Test Clock                               Input                   No pull-up resistor

TDI                    Test Data In                             Input                   No pull-up resistor

TDO                    Test Data Out                          Output

TMS                    Test Mode Select                         Input                   No pull-up resistor.

JTAGSEL                JTAG Selection                           Input                   Pull-down resistor (1)

                                                         Flash Memory

ERASE                  Flash and NVM Configuration Bits         Input           High    Pull-down resistor (1)

                       Erase Command

                                                         Reset/Test

NRST                   Microcontroller Reset                    I/O             Low     Open drain with pull-up     resistor  (1)

TST                    Test Mode Select                         Input           High    Pull-down resistor (1)

                                                         Debug Unit

DRXD                   Debug Receive Data                       Input

DTXD                   Debug Transmit Data                    Output

                                                         AIC

IRQ0 - IRQ1            External Interrupt Inputs                Input

FIQ                    Fast Interrupt Input                     Input

                                                                                                                                   5

6222H–ATARM–25-Jan-12
Table 3-1.     Signal  Description List (Continued)

                                                                                   Active

Signal Name            Function                                  Type              Level   Comments

                                                          PIO

PA0 - PA31             Parallel IO Controller A                  I/O                       Pulled-up input  at reset

PB0 - PB31             Parallel IO Controller B                  I/O                       Pulled-up input  at reset

PC0 - PC23             Parallel IO Controller C                  I/O                       Pulled-up input  at reset

                                                          USB Device Port

DDM                    USB Device Port Data      -             Analog

DDP                    USB Device Port Data +                  Analog

                                                          USART

SCK0 - SCK1            Serial Clock                              I/O

TXD0 - TXD1            Transmit Data                             I/O

RXD0 - RXD1            Receive Data                              Input

RTS0 - RTS1            Request To Send                         Output

CTS0 - CTS1            Clear To Send                             Input

DCD1                   Data Carrier Detect                       Input

DTR1                   Data Terminal Ready                     Output

DSR1                   Data Set Ready                            Input

RI1                    Ring Indicator                            Input

                                                    Synchronous Serial Controller

TD                     Transmit Data                           Output

RD                     Receive Data                              Input

TK                     Transmit Clock                            I/O

RK                     Receive Clock                             I/O

TF                     Transmit Frame Sync                       I/O

RF                     Receive Frame Sync                        I/O

                                                          Timer/Counter

TCLK0 - TCLK2          External Clock Inputs                     Input

TIOA0 - TIOA2          Timer Counter I/O Line A                  I/O

TIOB0 - TIOB2          Timer Counter I/O Line B                  I/O

                                                          PWM Controller

PWM0 - PWM3            PWM Channels                            Output

                                                     Serial Peripheral Interface

MISO                   Master In Slave Out                       I/O

MOSI                   Master Out Slave In                       I/O

SPCK                   SPI Serial Clock                          I/O

NPCS0                  SPI Peripheral Chip Select 0              I/O               Low

NPCS1-NPCS3            SPI Peripheral Chip Select 1 to 3       Output              Low

6           SAM7SE512/256/32

                                                                                                            6222H–ATARM–25-Jan-12
                                                                                         SAM7SE512/256/32

Table 3-1.   Signal    Description List (Continued)

                                                                                 Active

Signal Name            Function                            Type                  Level   Comments

                                                       Two-Wire Interface

TWD                    Two-wire Serial Data                I/O

TWCK                   Two-wire Serial Clock               I/O

                                                  Analog-to-Digital Converter

AD0-AD3                Analog Inputs                       Analog                        Digital pulled-up inputs at reset

AD4-AD7                Analog Inputs                       Analog                        Analog Inputs

ADTRG                  ADC Trigger                         Input

ADVREF                 ADC Reference                       Analog

                                               Fast Flash Programming Interface

PGMEN0-PGMEN2          Programming Enabling                Input

PGMM0-PGMM3            Programming Mode                    Input

PGMD0-PGMD15           Programming Data                    I/O

PGMRDY                 Programming Ready                   Output                High

PGMNVALID              Data Direction                      Output                Low

PGMNOE                 Programming Read                    Input                 Low

PGMCK                  Programming Clock                   Input

PGMNCMD                Programming Command                 Input                 Low

                                                      External Bus Interface

D[31:0]                Data Bus                            I/O

A[22:0]                Address Bus                         Output

NWAIT                  External Wait Signal                Input                 Low

                                                     Static Memory Controller

NCS[7:0]               Chip Select Lines                   Output                Low

NWR[1:0]               Write Signals                       Output                Low

NRD                    Read Signal                         Output                Low

NWE                    Write Enable                        Output                Low

NUB                    NUB: Upper Byte Select              Output                Low

NLB                    NLB: Lower Byte Select              Output                Low

                                               EBI for CompactFlash Support

CFCE[2:1]              CompactFlash Chip Enable            Output                Low

CFOE                   CompactFlash Output Enable          Output                Low

CFWE                   CompactFlash Write Enable           Output                Low

CFIOR                  CompactFlash I/O Read Signal        Output                Low

CFIOW                  CompactFlash I/O Write Signal       Output                Low

CFRNW                  CompactFlash Read Not Write Signal  Output

CFCS[1:0]              CompactFlash Chip Select Lines      Output                Low

                                                                                                                            7

6222H–ATARM–25-Jan-12
Table 3-1.   Signal Description List (Continued)

                                                                                 Active

Signal Name  Function                                          Type              Level   Comments

                                       EBI for NAND Flash Support

NANDCS       NAND Flash Chip Select Line                       Output            Low

NANDOE       NAND Flash Output Enable                          Output            Low

NANDWE       NAND Flash Write Enable                           Output            Low

NANDCLE      NAND Flash Command Line Enable                    Output            Low

NANDALE      NAND Flash Address Line Enable                    Output            Low

                                                               SDRAM Controller

SDCK         SDRAM Clock                                       Output                    Tied low after  reset

SDCKE        SDRAM Clock Enable                                Output            High

SDCS         SDRAM Controller Chip Select Line                 Output            Low

BA[1:0]      Bank Select                                       Output

SDWE         SDRAM Write Enable                                Output            Low

RAS - CAS    Row and Column Signal                             Output            Low

NBS[3:0]     Byte Mask Signals                                 Output            Low

SDA10        SDRAM Address 10 Line                             Output

Note:    1.  Refer to Section 6. ”I/O Lines Considerations” .

8            SAM7SE512/256/32

                                                                                                         6222H–ATARM–25-Jan-12
                                                                      SAM7SE512/256/32

4.   Package

                       The SAM7SE512/256/32 is available in:

                       • 20 x 14 mm 128-lead LQFP package with a 0.5 mm lead pitch.

                       • 10x 10 x 1.4 mm 144-ball LFBGA package with a 0.8 mm lead pitch

4.1  128-lead LQFP Package Outline

                       Figure 4-1 shows the orientation of the 128-lead LQFP package and a detailed           mechanical

                       description is given in the Mechanical Characteristics section of the full datasheet.

Figure 4-1.  128-lead LQFP Package Outline (Top View)

                                    102                       65

                       103                                        64

                       128                                        39

                                    1                         38

                                                                                                              9

6222H–ATARM–25-Jan-12
4.2    128-lead LQFP Pinout

Table  4-1.  Pinout in 128-lead LQFP  Package

1            ADVREF     33            PB31     65  TDI      97   SDCK

2            GND        34            PB30     66  TDO      98   PC8

3            AD7        35            PB29     67  PB2      99   PC7

4            AD6        36            PB28     68  PB1      100  PC6

5            AD5        37            PB27     69  PB0      101  PC5

6            AD4        38            PB26     70  GND      102  PC4

7            VDDOUT     39            PB25     71  VDDIO    103  PC3

8            VDDIN      40            PB24     72  VDDCORE  104  PC2

9      PA20/PGMD8/AD3   41            PB23     73  NRST     105  PC1

10     PA19/PGMD7/AD2   42            PB22     74  TST      106  PC0

11     PA18/PGMD6/AD1   43            PB21     75  ERASE    107  PA31

12     PA17/PGMD5/AD0   44            PB20     76  TCK      108  PA30

13     PA16/PGMD4       45            GND      77  TMS      109  PA29

14     PA15/PGMD3       46            VDDIO    78  JTAGSEL  110  PA28

15     PA14/PGMD2       47            VDDCORE  79  PC23     111  PA27/PGMD15

16     PA13/PGMD1       48            PB19     80  PC22     112  PA26/PGMD14

17     PA12/PGMD0       49            PB18     81  PC21     113  PA25/PGMD13

18     PA11/PGMM3       50            PB17     82  PC20     114  PA24/PGMD12

19     PA10/PGMM2       51            PB16     83  PC19     115  PA23/PGMD11

20           PA9/PGMM1  52            PB15     84  PC18     116  PA22/PGMD10

21           VDDIO      53            PB14     85  PC17     117  PA21/PGMD9

22           GND        54            PB13     86  PC16     118  VDDCORE

23           VDDCORE    55            PB12     87  PC15     119  GND

24           PA8/PGMM0  56            PB11     88  PC14     120  VDDIO

25     PA7/PGMNVALID    57            PB10     89  PC13     121  DM

26     PA6/PGMNOE       58            PB9      90  PC12     122  DP

27     PA5/PGMRDY       59            PB8      91  PC11     123  VDDFLASH

28     PA4/PGMNCMD      60            PB7      92  PC10     124  GND

29           PA3        61            PB6      93  PC9      125  XIN/PGMCK

30     PA2/PGMEN2       62            PB5      94  GND      126  XOUT

31     PA1/PGMEN1       63            PB4      95  VDDIO    127  PLLRC

32     PA0/PGMEN0       64            PB3      96  VDDCORE  128  VDDPLL

10     SAM7SE512/256/32

                                                                 6222H–ATARM–25-Jan-12
                                                                                        SAM7SE512/256/32

4.3  144-ball          LFBGA Package Outline

                       Figure 4-2 shows the orientation of the 144-ball LFBGA package   and  a  detailed  mechanical

                       description is given in the Mechanical Characteristics section.

                       Figure 4-2.  144-ball LFBGA Package Outline (Top View)

                                                       12

                                                       11

                                                       10

                                                       9

                                                       8

                                                       7

                                                       6

                                                       5

                                                       4

                                                       3

                                                       2

                                                       1

                                              Ball A1      ABCDEFGHJKLM

                                                                                                          11

6222H–ATARM–25-Jan-12
4.4    144-ball LFBGA Pinout

Table  4-2.  SAM7SE512/256/32 Pinout for 144-ball  LFBGA  Package

Pin    Signal Name  Pin       Signal Name                 Pin  Signal Name     Pin  Signal Name

A1     PB7          D1        VDDCORE                     G1   PC18            K1   PC11

A2     PB8          D2        VDDCORE                     G2   PC16            K2   PC6

A3     PB9          D3        PB2                         G3   PC17            K3   PC2

A4     PB12         D4        TDO                         G4   PC9             K4   PC0

A5     PB13         D5        TDI                         G5   VDDIO           K5   PA27/PGMD15

A6     PB16         D6        PB17                        G6   GND             K6   PA26/PGMD14

A7     PB22         D7        PB26                        G7   GND             K7   GND

A8     PB23         D8        PA14/PGMD2                  G8   GND             K8   VDDCORE

A9     PB25         D9        PA12/PGMD0                  G9   GND             K9   VDDFLASH

A10    PB29         D10       PA11/PGMM3                  G10  AD4             K10  VDDIO

A11    PB30         D11       PA8/PGMM0                   G11  VDDIN           K11  VDDIO

A12    PB31         D12       PA7/PGMNVALID               G12  VDDOUT          K12  PA18/PGMD6/AD1

B1     PB6          E1        PC22                        H1   PC15            L1   SDCK

B2     PB3          E2        PC23                        H2   PC14            L2   PC7

B3     PB4          E3        NRST                        H3   PC13            L3   PC4

B4     PB10         E4        TCK                         H4   VDDCORE         L4   PC1

B5     PB14         E5        ERASE                       H5   VDDCORE         L5   PA29

B6     PB18         E6        TEST                        H6   GND             L6   PA24/PGMD12

B7     PB20         E7        VDDCORE                     H7   GND             L7   PA21/PGMD9

B8     PB24         E8        VDDCORE                     H8   GND             L8   ADVREF

B9     PB28         E9        GND                         H9   GND             L9   VDDFLASH

B10    PA4/PGMNCMD  E10       PA9/PGMM1                   H10  PA19/PGMD7/AD2  L10  VDDFLASH

B11    PA0/PGMEN0   E11       PA10/PGMM2                  H11  PA20/PGMD8/AD3  L11  PA17/PGMD5/AD0

B12    PA1/PGMEN1   E12       PA13/PGMD1                  H12  VDDIO           L12  GND

C1     PB0          F1        PC21                        J1   PC12            M1   PC8

C2     PB1          F2        PC20                        J2   PC10            M2   PC5

C3     PB5          F3        PC19                        J3   PA30            M3   PC3

C4     PB11         F4        JTAGSEL                     J4   PA28            M4   PA31

C5     PB15         F5        TMS                         J5   PA23/PGMD11     M5   PA25/PGMD13

C6     PB19         F6        VDDIO                       J6   PA22/PGMD10     M6   DM

C7     PB21         F7        GND                         J7   AD6             M7   DP

C8     PB27         F8        GND                         J8   AD7             M8   GND

C9     PA6/PGMNOE   F9        GND                         J9   VDDCORE         M9   XIN/PGMCK

C10    PA5/PGMRDY   F10       AD5                         J10  VDDCORE         M10  XOUT

C11    PA2/PGMEN2   F11       PA15/PGMD3                  J11  VDDCORE         M11  PLLRC

C12    PA3          F12       PA16/PGMD4                  J12  VDDIO           M12  VDDPLL

12     SAM7SE512/256/32

                                                                                    6222H–ATARM–25-Jan-12
                                                                                      SAM7SE512/256/32

5.   Power Considerations

5.1  Power  Supplies

                       The SAM7SE512/256/32 has six types of power supply pins and integrates a voltage regulator,

                       allowing the device to be supplied with only one voltage. The six power supply pin types are:

                       • VDDIN pin. It powers the voltage regulator and the ADC; voltage ranges from 3.0V to 3.6V,

                       3.3V nominal.

                       • VDDOUT pin. It is the output of the 1.8V voltage regulator.

                       • VDDIO pin. It powers the I/O lines; two voltage ranges are supported:

                                  – from 3.0V to 3.6V, 3.3V nominal

                                  – or from 1.65V to 1.95V, 1.8V nominal.

                       • VDDFLASH pin. It powers the USB transceivers and a part of the Flash. It is required for the

                       Flash to operate correctly; voltage ranges from 3.0V to 3.6V, 3.3V nominal.

                       • VDDCORE pins. They power the logic of the device; voltage ranges from 1.65V to 1.95V,

                       1.8V typical. It can be connected to the VDDOUT pin with decoupling capacitor. VDDCORE

                       is required for the device, including its embedded Flash, to operate correctly.

                       • VDDPLL pin. It powers the oscillator and the PLL. It can be connected directly to the

                       VDDOUT pin.

                       In order to decrease current consumption, if the voltage regulator and the ADC are not used,

                       VDDIN, ADVREF, AD4, AD5, AD6 and AD7 should be connected to GND. In this case VDDOUT

                       should be left unconnected.

                       No separate ground pins are provided for the different power supplies. Only GND pins are pro-

                       vided and should be connected as shortly as possible to the system ground plane.

5.2  Power Consumption

                       The SAM7SE512/256/32 has a static current of less than 60 µA on VDDCORE at 25°C, includ-

                       ing the RC oscillator, the voltage regulator and the power-on reset when the brownout detector

                       is deactivated. Activating the brownout detector adds 20 µA static current.

                       The dynamic power consumption on VDDCORE is less than 80 mA at full speed when running

                       out of the Flash. Under the same conditions, the power consumption on VDDFLASH does not

                       exceed 10 mA.

5.3  Voltage           Regulator

                       The SAM7SE512/256/32 embeds a voltage regulator that is managed by the System Controller.

                       In Normal Mode, the voltage regulator consumes less than 100 µA static current and draws 100

                       mA of output current.

                       The voltage regulator also has a Low-power Mode. In this mode, it consumes less than 20 µA

                       static current and draws 1 mA of output current.

                       Adequate output supply decoupling is mandatory for VDDOUT to reduce ripple and avoid oscil-

                       lations. The best way to achieve this is to use two capacitors in parallel:

                       • One external 470 pF (or 1 nF) NPO capacitor should be connected between VDDOUT and

                       GND as close to the chip as possible.

                                                                                                                       13

6222H–ATARM–25-Jan-12
              • One external 2.2 µF (or 3.3 µF) X7R capacitor should be connected between VDDOUT and

              GND.

              Adequate input supply decoupling is mandatory for VDDIN in order to improve startup stability

              and reduce source voltage drop. The input decoupling capacitor should be placed close to the

              chip. For example, two capacitors can be used in parallel: 100 nF NPO and 4.7 µF X7R.

5.4  Typical  Powering Schematics

              The SAM7SE512/256/32 supports a 3.3V single supply mode. The internal regulator input con-

              nected to the 3.3V source and its output feeds VDDCORE and the VDDPLL. Figure 5-1 shows

              the power schematics to be used for USB bus-powered systems.

              Figure 5-1.  3.3V System Single Power Supply Schematic

                                                             VDDFLASH

                           Power Source                      VDDIO

                                   ranges   DC/DC Converter

                           from 4.5V (USB)

                                   to 18V                    VDDIN

                                            3.3V                            Voltage

                                                                            Regulator

                                                             VDDOUT

                                                             VDDCORE

                                                             VDDPLL

14   SAM7SE512/256/32

                                                                            6222H–ATARM–25-Jan-12
                                                                                 SAM7SE512/256/32

6.   I/O Lines Considerations

6.1  JTAG Port         Pins

                       TMS, TDI and TCK are Schmitt trigger inputs. TMS, TDI and TCK do not integrate a pull-up

                       resistor.

                       TDO is an output, driven at up to VDDIO, and has no pull-up resistor.

                       The JTAGSEL pin is used to select the JTAG boundary scan when asserted at a high level. The

                       JTAGSEL pin integrates a permanent pull-down resistor of about 15 kΩ.

                       To eliminate any risk of spuriously entering the JTAG boundary scan mode due to noise on

                       JTAGSEL, it should be tied externally to GND if boundary scan is not used, or put in place an

                       external low value resistor (such as 1 kΩ) .

6.2  Test Pin

                       The   TST  pin  is  used    for  manufacturing  test  or  fast  programming     mode          of       the

                       SAM7SE512/256/32 when asserted high. The TST pin integrates a permanent pull-down resis-

                       tor of about 15 kΩ to GND.

                       To eliminate any risk of entering the test mode due to noise on the TST pin, it should be tied to

                       GND if the FFPI is not used, or put in place an external low value resistor (such as 1 kΩ) .

                       To enter fast programming mode, the TST pin and the PA0 and PA1 pins should be tied high

                       and PA2 tied low.

                       Driving the TST pin at a high level while PA0 or PA1 is driven at 0 leads to unpredictable results.

6.3  Reset Pin

                       The NRST pin is bidirectional with an open-drain output buffer. It is handled by the on-chip reset

                       controller and can be driven low to provide a reset signal to the external components or asserted

                       low externally to reset the microcontroller. There is no constraint on the length of the reset pulse,

                       and the reset controller can guarantee a minimum pulse length. This allows connection of a sim-

                       ple push-button on the NRST pin as system user reset, and the use of the NRST signal to reset

                       all the components of the system.

                       An external power-on reset can drive this pin during the start-up instead of using the internal

                       power-on reset circuit.

                       The NRST pin integrates a permanent pull-up of about 100 kΩ resistor to VDDIO.

                       This pin has Schmitt trigger input.

6.4  ERASE Pin

                       The ERASE pin is used to re-initialize the Flash content and some of its NVM bits. It integrates a

                       permanent pull-down resistor of about 15 kΩ to GND.

                       To eliminate any risk of erasing the Flash due to noise on the ERASE pin, it should be tied exter-

                       nally to GND, which prevents erasing the Flash from the application, or put in place an external

                       low value resistor (such as 1 kΩ) .

                       This pin is debounced by the RC oscillator to improve the glitch tolerance. When the pin is tied to

                       high during less than 100 ms, ERASE pin is not taken into account. The pin must be tied high

                       during more than 220 ms to perform the re-initialization of the Flash.

                                                                                                                              15

6222H–ATARM–25-Jan-12
6.5  SDCK Pin

               The SDCK pin is dedicated to the SDRAM Clock and is an output-only without pull-up. Maximum

               Output Frequency of this pad is 48 MHz at 3.0V and 25 MHz at 1.65V with a maximum load of

               30 pF.

6.6  PIO Controller lines

               All the I/O lines PA0 to PA31, PB0 to PB31, PC0 to PC23 integrate a programmable pull-up

               resistor. Programming of this pull-up resistor is performed independently for each I/O line

               through the PIO controllers.

               Typical pull-up value is 100 kΩ.

               All the I/O lines have schmitt trigger inputs.

6.7  I/O Lines Current Drawing

               The PIO lines PA0 to PA3 are high-drive current capable. Each of these I/O lines can drive up to

               16 mA permanently.

               The remaining I/O lines can draw only 8 mA.

               However, the total current drawn by all the I/O lines cannot exceed 300 mA.

16   SAM7SE512/256/32

                                                                                            6222H–ATARM–25-Jan-12
                                                                                          SAM7SE512/256/32

7.   Processor and Architecture

7.1  ARM7TDMI          Processor

                       • RISC processor based on ARMv4T Von Neumann architecture

                                   – Runs at up to 55 MHz, providing 0.9 MIPS/MHz (core supplied  with  1.8V)

                       • Two instruction sets

                                   – ARM® high-performance 32-bit instruction set

                                   – Thumb® high code density 16-bit instruction set

                       • Three-stage pipeline architecture

                                   – Instruction Fetch (F)

                                   – Instruction Decode (D)

                                   – Execute (E)

7.2  Debug  and        Test Features

                       • EmbeddedICE™ (Integrated embedded in-circuit emulator)

                                   – Two watchpoint units

                                   – Test access port accessible through a JTAG protocol

                                   – Debug communication channel

                       • Debug Unit

                                   – Two-pin UART

                                   – Debug communication channel interrupt handling

                                   – Chip ID Register

                       • IEEE1149.1 JTAG Boundary-scan on all digital pins

7.3  Memory            Controller

                       • Programmable Bus Arbiter

                                   – Handles requests from the ARM7TDMI and the Peripheral DMA Controller

                       • Address decoder provides selection signals for

                                   – Four internal 1 Mbyte memory areas

                                   – One 256-Mbyte embedded peripheral area

                                   – Eight external 256-Mbyte memory areas

                       • Abort Status Registers

                                   – Source, Type and all parameters of the access leading to an abort are saved

                                   – Facilitates debug by detection of bad pointers

                       • Misalignment Detector

                                   – Alignment checking of all data accesses

                                   – Abort generation in case of misalignment

                       • Remap Command

                                   – Remaps the SRAM in place of the embedded non-volatile memory

                                   – Allows handling of dynamic exception vectors

                       • 16-area Memory Protection Unit (Internal Memory and peripheral protection only)

                                                                                                                  17

6222H–ATARM–25-Jan-12
                        – Individually programmable size between 1K Byte and 1M Byte

                        – Individually programmable protection against write and/or user access

                        – Peripheral protection against write and/or user access

                     •  Embedded Flash Controller

                        – Embedded Flash interface, up to three programmable wait states

                        – Prefetch buffer, buffering and anticipating the 16-bit requests, reducing  the  required

                        wait states

                        – Key-protected program, erase and lock/unlock sequencer

                        – Single command for erasing, programming and locking operations

                        – Interrupt generation in case of forbidden operation

7.4  External  Bus  Interface

                     • Integrates Three External Memory Controllers:

                        – Static Memory Controller

                        – SDRAM Controller

                        – ECC Controller

                     • Additional Logic for NAND Flash and CompactFlash® Support

                        – NAND Flash support: 8-bit as well as 16-bit devices are supported

                        – CompactFlash support: all modes (Attribute Memory, Common Memory, I/O, True

                        IDE) are supported but the signals _IOIS16 (I/O and True IDE modes) and -ATA SEL

                        (True IDE mode) are not handled.

                     • Optimized External Bus:

                        – 16- or 32-bit Data Bus (32-bit Data Bus for SDRAM only)

                        – Up to 23-bit Address Bus, Up to 8-Mbytes Addressable

                        – Up to 8 Chip Selects, each reserved to one of the eight Memory Areas

                        – Optimized pin multiplexing to reduce latencies on External Memories

                     • Configurable Chip Select Assignment:

                        – Static Memory Controller on NCS0

                        – SDRAM Controller or Static Memory Controller on NCS1

                        – Static Memory Controller on NCS2, Optional CompactFlash Support

                        – Static Memory Controller on NCS3, NCS5 - NCS6, Optional NAND Flash Support

                        – Static Memory Controller on NCS4, Optional CompactFlash Support

                        – Static Memory Controller on NCS7

7.5  Static  Memory  Controller

                     • External memory mapping, 512-Mbyte address space

                     • 8-, or 16-bit Data Bus

                     • Up to 8 Chip Select Lines

                     • Multiple Access Modes supported

                        – Byte Write or Byte Select Lines

                        – Two different Read Protocols for each Memory Bank

18   SAM7SE512/256/32

                                                                                                     6222H–ATARM–25-Jan-12
                                                                                        SAM7SE512/256/32

                       •  Multiple device adaptability

                                   – Compliant with LCD Module

                                   – Compliant with PSRAM in synchronous    operations

                                   – Programmable Setup Time Read/Write

                                   – Programmable Hold Time Read/Write

                       •  Multiple Wait State Management

                                   – Programmable Wait State Generation

                                   – External Wait Request

                                   – Programmable Data Float Time

7.6  SDRAM             Controller

                       • Numerous configurations supported

                                   – 2K, 4K, 8K Row Address Memory Parts

                                   – SDRAM with two or four Internal Banks

                                   – SDRAM with 16- or 32-bit Data Path

                       • Programming facilities

                                   – Word, half-word, byte access

                                   – Automatic page break when Memory Boundary has been reached

                                   – Multibank Ping-pong Access

                                   – Timing parameters specified by software

                                   – Automatic refresh operation, refresh rate is programmable

                       • Energy-saving capabilities

                                   – Self-refresh, and Low-power Modes supported

                       • Error detection

                                   – Refresh Error Interrupt

                       • SDRAM Power-up Initialization by software

                       • Latency is set to two clocks (CAS Latency of 1, 3 Not Supported)

                       • Auto Precharge Command not used

                       • Mobile SDRAM supported (except for low-power extended mode and deep     power-down

                          mode)

7.7  Error  Corrected Code Controller

                       • Tracking the accesses to a NAND Flash device by triggering on the corresponding chip           select

                       • Single bit error correction and 2-bit Random detection.

                       • Automatic Hamming Code Calculation while writing

                                   – ECC value available in a register

                       • Automatic Hamming Code Calculation while reading

                                   – Error Report, including error flag, correctable error flag and word address being

                                   detected erroneous

                                   – Supports 8- or 16-bit NAND Flash devices with 512-, 1024-, 2048- or 4096-byte

                                   pages

                                                                                                                        19

6222H–ATARM–25-Jan-12
7.8  Peripheral  DMA Controller

                 • Handles data transfer between peripherals and memories

                 • Eleven channels

                 – Two for each USART

                 – Two for the Debug Unit

                 – Two for the Serial Synchronous Controller

                 – Two for the Serial Peripheral Interface

                 – One for the Analog-to-digital Converter

                 • Low bus arbitration overhead

                 – One Master Clock cycle needed for a transfer from memory to peripheral

                 – Two Master Clock cycles needed for a transfer from peripheral to memory

                 • Next Pointer management for reducing interrupt latency requirements

                 • Peripheral DMA Controller (PDC) priority is as follows (from the highest priority to  the  lowest):

                                                 Receive      DBGU

                                                 Receive      USART0

                                                 Receive      USART1

                                                 Receive      SSC

                                                 Receive      ADC

                                                 Receive      SPI

                                                 Transmit     DBGU

                                                 Transmit     USART0

                                                 Transmit     USART1

                                                 Transmit     SSC

                                                 Transmit     SPI

20   SAM7SE512/256/32

                                                                                        6222H–ATARM–25-Jan-12
                                                                                     SAM7SE512/256/32

8.  Memories

                       •  512 Kbytes of Flash Memory (SAM7SE512)

                          – dual plane

                          – two contiguous banks of 1024 pages of 256 bytes

                          – Fast access time, 30 MHz single-cycle access in Worst Case  conditions

                          – Page programming time: 6 ms, including page auto-erase

                          – Page programming without auto-erase: 3 ms

                          – Full chip erase time: 15 ms

                          – 10,000 write cycles, 10-year data retention capability

                          – 32 lock bits, each protecting 32 lock regions of 64 pages

                          – Protection Mode to secure contents of the Flash

                       •  256 Kbytes of Flash Memory (SAM7SE256)

                          – single plane

                          – one bank of 1024 pages of 256 bytes

                          – Fast access time, 30 MHz single-cycle access in Worst Case  conditions

                          – Page programming time: 6 ms, including page auto-erase

                          – Page programming without auto-erase: 3 ms

                          – Full chip erase time: 15 ms

                          – 10,000 cycles, 10-year data retention capability

                          – 16 lock bits, each protecting 16 lock regions of 64 pages

                          – Protection Mode to secure contents of the Flash

                       •  32 Kbytes of Flash Memory (SAM7SE32)

                          – single plane

                          – one bank of 256 pages of 128 bytes

                          – Fast access time, 30 MHz single-cycle access in Worst Case  conditions

                          – Page programming time: 6 ms, including page auto-erase

                          – Page programming without auto-erase: 3 ms

                          – Full chip erase time: 15 ms

                          – 10,000 cycles, 10-year data retention capability

                          – 8 lock bits, each protecting 8 lock regions of 32 pages

                          – Protection Mode to secure contents of the Flash

                       •  32 Kbytes of Fast SRAM (SAM7SE512/256)

                          – Single-cycle access at full speed

                       •  8 Kbytes of Fast SRAM (SAM7SE32)

                          – Single-cycle access at full speed

                                                                                                    21

6222H–ATARM–25-Jan-12
Figure 8-1.      SAM7SE Memory Mapping

                 Address Memory Space                               Internal Memory Mapping                     Note:

    0x0000 0000                                                                                                 (1) Can be ROM, Flash or SRAM

                                                       0x0000 0000  Boot Memory (1)                             depending on GPNVM2 and REMAP

                 Internal Memories     256 MBytes                   Flash before Remap              1  MBytes

    0x0FFF FFFF                                                     SRAM after Remap

    0x1000 0000                                        0x000F FFFF

                 EBI                                   0x0010 0000

                 Chip Select 0                                           Internal Flash             1  MBytes

                                       256 MBytes

                 SMC                                   0x001F FFFF

    0x1FFF FFFF                                        0x0020 0000

    0x2000 0000

                 EBI                                                     Internal SRAM              1  MBytes

                 Chip Select 1/        256 MBytes      0x002F FFFF

    0x2FFF FFFF  SMC or SDRAMC                         0x0030 0000

    0x3000 0000                                                           Internal ROM              1  MBytes

                 EBI

                 Chip Select 2         256 MBytes      0x003F FFFF

                 SMC                                   0x0040 0000

    0x3FFF FFFF

    0x4000 0000  EBI

                 Chip Select 3                                                Reserved              252 MBytes

                 SMC/NANDFlash/        256 MBytes

    0x4FFF FFFF  SmartMedia                                                                                     System       Controller  Mapping

    0x5000 0000  EBI                                   0x0FFF FFFF

                 Chip Select 4                                                                                  0xFFFF F000

                 SMC                   256 MBytes

                                                                                                                             AIC         512      Bytes/128  registers

    0x5FFF FFFF  Compact Flash

    0x6000 0000  EBI                                                                                            0xFFFF F1FF

                 Chip Select 5         256 MBytes                                                               0xFFFF F200

                 SMC

    0x6FFF FFFF  Compact Flash                                                                                               DBGU        512      Bytes/128  registers

    0x7000 0000

                 EBI                                                                                            0xFFFF F3FF

                 Chip Select 6         256 MBytes                                                               0xFFFF F400

                                                                    Peripheral Mapping

    0x7FFF FFFF                                        0xF000 0000                                                           PIOA        512 Bytes/128 registers

    0x8000 0000

                 EBI                                                Reserved

                 Chip Select 7         256 MBytes      0xFFF9 FFFF                                              0xFFFF F5FF

                                                       0xFFFA 0000  TC0, TC1, TC2       16  Kbytes              0xFFFF F600

    0x8FFF FFFF                                        0xFFFA 3FFF

    0x9000 0000                                        0xFFFA 4000                                                           PIOB        512 Bytes/128 registers

                                                                    Reserved

                                                       0xFFFA FFFF                                              0xFFFF F7FF

                                                       0xFFFB 0000  UDP                 16  Kbytes

                                                       0xFFFB 3FFF                                              0xFFFF F800

                                                       0xFFFB 4000

                                                                    Reserved                                                 PIOC        512 Bytes/128 registers

                                                       0xFFFB 7FFF

                                                       0xFFFB 8000  TWI                 16  Kbytes              0xFFFF F9FF

                                                       0xFFFB BFFF                                              0xFFFF FA00

                                                       0xFFFB C000  Reserved                                                 Reserved

                                                       0xFFFB FFFF
                                                       0xFFFC 0000
                                                                    USART0              16  Kbytes              0xFFFF FBFF

                                                       0xFFFC 3FFF                                              0xFFFF FC00

                                       6 x 256 MBytes  0xFFFC 4000  USART1              16  Kbytes                           PMC         256 Bytes/64 registers

                 Undefined             1,536 MBytes    0xFFFC 7FFF                                              0xFFFF FCFF

                 (Abort)                               0xFFFC 8000  Reserved                                    0xFFFF FD00  RSTC        16 Bytes/4 registers

                                                       0xFFFC BFFF                                              0xFFFF FD0F

                                                       0xFFFC C000  PWMC                16  Kbytes                           Reserved

                                                       0xFFFC FFFF                                              0xFFFF FD20

                                                       0xFFFD 0000  Reserved                                                 RTT         16 Bytes/4 registers

                                                       0xFFFD 3FFF                                              0xFFFF FC2F

                                                       0xFFFD 4000  SSC                 16  Kbytes              0xFFFF FD30  PIT         16 Bytes/4 registers

                                                       0xFFFD 7FFF                                              0xFFFF FC3F

                                                       0xFFFD 8000                                              0xFFFF FD40  WDT         16 Bytes/4 registers

                                                                    ADC                 16  Kbytes              0xFFFF FD4F

                                                       0xFFFD BFFF
                                                       0xFFFD C000
                                                                    Reserved                                                 Reserved

                                                       0xFFFD FFFF                                              0xFFFF FD60

                                                       0xFFFE 0000  SPI                 16  Kbytes              0xFFFF FC6F  VREG        4 Bytes/1 register

    0xEFFF FFFF                                        0xFFFE 3FFF                                              0xFFFF FD70

    0xF000 0000                                        0xFFFE 4000  Reserved                                                 Reserved

                                                                                                                0xFFFF FEFF

                                                       0xFFFF EFFF                                              0xFFFF FF00

                 Internal Peripherals  256 MBytes      0xFFFF F000  SYSC                                                     MC          256 Bytes/64 registers

    0xFFFF FFFF                                        0xFFFF FFFF                                              0xFFFF FFFF

22  SAM7SE512/256/32

                                                                                                                                         6222H–ATARM–25-Jan-12
                                                                                       SAM7SE512/256/32

                       A first level of address decoding is performed by the Memory Controller, i.e., by the implementa-

                       tion of the Advanced System Bus (ASB) with additional features.

                       Decoding splits the 4G bytes of address space into 16 areas of 256M bytes. The areas 1 to 8 are

                       directed to the EBI that associates these areas to the external chip selects NC0 to NCS7. The

                       area 0 is reserved for the addressing of the internal memories, and a second level of decoding

                       provides 1M byte of internal memory area. The area 15 is reserved for the peripherals and pro-

                       vides access to the Advanced Peripheral Bus (APB).

                       Other areas are unused and performing an access within them provides an abort to the master

                       requesting such an access.

8.1      Embedded Memories

8.1.1    Internal Memories

8.1.1.1  Internal SRAM

                       The SAM7SE512/256 embeds a high-speed 32-Kbyte SRAM bank. The SAM7SE32 embeds a

                       high-speed 8-Kbyte SRAM bank. After reset and until the Remap Command is performed, the

                       SRAM is only accessible at address 0x0020 0000. After Remap, the SRAM also becomes avail-

                       able at address 0x0.

8.1.1.2  Internal ROM

                       The SAM7SE512/256/32 embeds an Internal ROM. At any time, the ROM is mapped at address

                       0x30 0000. The ROM contains the FFPI and the SAM-BA boot program.

8.1.1.3  Internal      Flash

                              • The SAM7SE512 features two banks of 256 Kbytes of Flash.

                              • The SAM7SE256 features one bank of 256 Kbytes of Flash.

                              • The SAM7SE32 features one bank of 32 Kbytes of Flash.

                       At any time, the Flash is mapped to address 0x0010 0000.

                       A general purpose NVM (GPNVM) bit is used to boot either on the ROM (default) or from the

                       Flash.

                       This GPNVM bit can be cleared or set respectively through the commands “Clear General-pur-

                       pose NVM Bit” and “Set General-purpose NVM Bit” of the EFC User Interface.

                       Setting the GPNVM bit 2 selects the boot from the Flash, clearing it selects the boot from the

                       ROM. Asserting ERASE clears the GPNVM bit 2 and thus selects the boot from the ROM by

                       default.

                                                                                                                          23

6222H–ATARM–25-Jan-12
                Figure    8-2.  Internal  Memory Mapping with GPNVM Bit       2  =  0  (default)

                                          0x0000 0000     ROM Before Remap

                                                          SRAM After Remap                        1 M Bytes

                                          0x000F FFFF

                                          0x0010 0000

                                                          Internal FLASH                          1 M Bytes

                                          0x001F FFFF

                                          0x0020 0000

                            256M Bytes                    Internal SRAM                           1 M Bytes

                                          0x002F FFFF

                                          0x0030 0000

                                                          Internal ROM                            1 M Bytes

                                          0x003F FFFF

                                          0x0040 0000

                                                          Undefined Areas                         252 M Bytes

                                                          (Abort)

                                          0x0FFF FFFF

                Figure    8-3.  Internal  Memory Mapping with GPNVM Bit       2  =  1

                                          0x0000 0000     Flash Before Remap

                                                          SRAM After Remap                        1 M Bytes

                                          0x000F FFFF

                                          0x0010 0000

                                                          Internal FLASH                          1 M Bytes

                                          0x001F FFFF

                                          0x0020 0000

                            256M Bytes                    Internal SRAM                           1 M Bytes

                                          0x002F FFFF

                                          0x0030 0000

                                                          Internal ROM                            1 M Bytes

                                          0x003F FFFF

                                          0x0040 0000

                                                          Undefined Areas                         252 M Bytes

                                                          (Abort)

                                          0x0FFF FFFF

8.1.2    Embedded Flash

8.1.2.1  Flash  Overview

                The Flash of the SAM7SE512 is organized in two banks (dual plane) of 1024 pages of 256

                bytes. It reads as 131,072 32-bit words.

                The Flash of the SAM7SE256 is organized in 1024 pages (single plane) of 256 bytes. It reads as

                65,536 32-bit words.

                The Flash of the SAM7SE32 is organized in 256 pages (single plane) of 128 bytes. It reads as

                8192 32-bit words.

                The Flash of the SAM7SE32 contains a 128-byte write buffer, accessible through a 32-bit

                interface.

                The Flash of the SAM7SE512/256 contains a 256-byte write buffer, accessible through a 32-bit

                interface.

24       SAM7SE512/256/32

                                                                                                  6222H–ATARM–25-Jan-12
                                                                              SAM7SE512/256/32

                       The Flash benefits from the integration of a power reset cell and from the brownout detector.

                       This prevents code corruption during power supply changes, even in the worst conditions.

8.1.2.2  Embedded      Flash Controller

                       The Embedded Flash Controller (EFC) manages accesses performed by the masters of the sys-

                       tem. It enables reading the Flash and writing the write buffer. It also contains a User Interface,

                       mapped within the Memory Controller on the APB. The User Interface allows:

                                • programming of the access parameters of the Flash (number of wait states, timings, etc.)

                                • starting commands such as full erase, page erase, page program, NVM bit set, NVM bit

                                clear, etc.

                                • getting the end status of the last command

                                • getting error status

                                • programming interrupts on the end of the last commands or on errors

                       The Embedded Flash Controller also provides a dual 32-bit Prefetch Buffer that optimizes 16-bit

                       access to the Flash. This is particularly efficient when the processor is running in Thumb mode.

                                • Two EFCs (EFC0 and EFC1) are embedded in the SAM7SE512 to control each plane of 256

                                KBytes. Dual plane organization allows concurrent Read and Program.

                                • One EFC (EFC0) is embedded in the SAM7SE256 to control the single plane 256 KBytes.

                                • One EFC (EFC0) is embedded in the SAM7SE32 to control the single plane 32 KBytes.

8.1.2.3  Lock          Regions

                       The SAM7SE512 Embedded Flash Controller manages 32 lock bits to protect 32 regions of the

                       flash against inadvertent flash erasing or programming commands. The SAM7SE512 contains

                       32 lock regions and each lock region contains 64 pages of 256 bytes. Each lock region has a

                       size of 16 Kbytes.

                       The SAM7SE256 Embedded Flash Controller manages 16 lock bits to protect 16 regions of the

                       flash against inadvertent flash erasing or programming commands. The SAM7SE256 contains

                       16 lock regions and each lock region contains 64 pages of 256 bytes. Each lock region has a

                       size of 16 Kbytes.

                       The SAM7SE32 Embedded Flash Controller manages 8 lock bits to protect 8 regions of the

                       flash against inadvertent flash erasing or programming commands. The SAM7SE32 contains 8

                       lock regions and each lock region contains 32 pages of 128 bytes. Each lock region has a size of

                       4 Kbytes.

                       If a locked-region’s erase or program command occurs, the command is aborted and the EFC

                       trigs an interrupt.

                       The 32 (SAM7SE512), 16 (SAM7SE256) or 8 (SAM7SE32) NVM bits are software programma-

                       ble through the EFC User Interface. The command “Set Lock Bit” enables the protection. The

                       command “Clear Lock Bit” unlocks the lock region.

                       Asserting the ERASE pin clears the lock bits, thus unlocking the entire Flash.

8.1.2.4  Security Bit Feature

                       The SAM7SE512/256/32 features a security bit, based on a specific NVM-bit. When the security

                       is enabled, any access to the Flash, either through the ICE interface or through the Fast Flash

                       Programming Interface, is forbidden.

                                                                                                                            25

6222H–ATARM–25-Jan-12
                      The security bit can only be enabled through the Command “Set Security Bit” of the EFC User

                      Interface. Disabling the security bit can only be achieved by asserting the ERASE pin at 1 and

                      after a full flash erase is performed. When the security bit is deactivated, all accesses to the

                      flash are permitted.

                      It is important to note that the assertion of the ERASE pin should always be longer than 200 ms.

                      As the ERASE pin integrates a permanent pull-down, it can be left unconnected during normal

                      operation. However, it is safer to connect it directly to GND for the final application.

8.1.2.5  Non-volatile Brownout Detector Control

                      Two general purpose NVM (GPNVM) bits are used for controlling the brownout detector (BOD),

                      so that even after a power loss, the brownout detector operations remain in their state.

                      These two GPNVM bits can be cleared or set respectively through the commands “Clear Gen-

                      eral-purpose NVM Bit” and “Set General-purpose NVM Bit” of the EFC User Interface.

                           •  GPNVM bit 0 is used as a brownout detector enable bit. Setting the GPNVM bit 0 enables the

                              BOD, clearing it disables the BOD. Asserting ERASE clears the GPNVM bit 0 and thus

                              disables the brownout detector by default.

                           •  GPNVM bit 1 is used as a brownout reset enable signal for the reset controller. Setting the

                              GPNVM bit 1 enables the brownout reset when a brownout is detected, Clearing the GPNVM

                              bit 1 disables the brownout reset. Asserting ERASE disables the brownout reset by default.

8.1.2.6  Calibration Bits

                      Sixteen NVM bits are used to calibrate the brownout detector and the voltage regulator. These

                      bits are factory configured and cannot be changed by the user. The ERASE pin has no effect on

                      the calibration bits.

8.1.3    Fast  Flash  Programming Interface

                      The Fast Flash Programming Interface allows programming the device through either a serial

                      JTAG interface or through a multiplexed fully-handshaked parallel port. It allows gang-program-

                      ming with market-standard industrial programmers.

                      The FFPI supports read, page program, page erase, full erase, lock, unlock and protect

                      commands.

                      The Fast Flash Programming Interface is enabled and the Fast Programming Mode is entered

                      when the TST pin and the PA0 and PA1 pins are all tied high and PA2 tied to low.

                           •  The Flash of the SAM7SE512 is organized in 2048 pages of 256 bytes (dual plane). It reads

                              as 131,072 32-bit words.

                           •  The Flash of the SAM7SE256 is organized in 1024 pages of 256 bytes (single plane). It reads

                              as 65,536 32-bit words.

                           •  The Flash of the SAM7SE32 is organized in 256 pages of 128 bytes (single plane). It reads

                              as 32,768 32-bit words.

                           •  The Flash of the SAM7SE512/256 contains a 256-byte write buffer, accessible through a 32-

                              bit interface.

                           •  The Flash of the SAM7SE32 contains a 128-byte write buffer, accessible through a 32-bit

                              interface.

26       SAM7SE512/256/32

                                                                          6222H–ATARM–25-Jan-12
                                                                                SAM7SE512/256/32

8.1.4  SAM-BA®         Boot

                             The SAM-BA Boot is a default Boot Program which provides an easy way to program in-situ the

                             on-chip Flash memory.

                             The SAM-BA Boot Assistant supports serial communication via the DBGU or the USB Device

                             Port.

                             • Communication via the DBGU supports a wide range of crystals from 3 to 20 MHz via

                                 software auto-detection.

                             • Communication via the USB Device Port is limited to an 18.432 MHz crystal.

                             The SAM-BA Boot provides an interface with SAM-BA Graphic User Interface (GUI).

                             The SAM-BA Boot is in ROM and is mapped in Flash at address 0x0 when GPNVM bit 2 is set to

                             0.

8.2    External Memories

                             The external memories are accessed through the External Bus Interface.

                             Refer to the memory map in Figure 8-1 on page 22.

                                                                                                                          27

6222H–ATARM–25-Jan-12
9.  System  Controller

            The System Controller manages all vital blocks of the microcontroller: interrupts, clocks, power,

            time, debug and reset.

            The System Controller peripherals are all mapped to the highest 4 Kbytes of address space,

            between addresses 0xFFFF F000 and 0xFFFF FFFF.

            Figure 9-1 on page 29 shows the System Controller Block Diagram.

            Figure 8-1 on page 22 shows the mapping of the User Interface of the System Controller periph-

            erals. Note that the Memory Controller configuration user interface is also mapped within this

            address space.

28  SAM7SE512/256/32

                                                                              6222H–ATARM–25-Jan-12
                                                                                                               SAM7SE512/256/32

                       Figure 9-1.  System Controller Block Diagram

                                                                      System Controller                                        jtag_nreset        Boundary Scan

                                                                                                                                                  TAP Controller

                                              irq0-irq1                                                                             nirq

                                                fiq                      Advanced                                                   nfiq

                                                                         Interrupt                                             proc_nreset

                                    periph_irq[2..18]                    Controller                                                               ARM7TDMI

                                                                                                int                                 PCK

                                    pit_irq                                                                                    debug

                                    rtt_irq

                                    wdt_irq

                                    dbgu_irq                                                                                   power_on_reset

                                    pmc_irq

                                    rstc_irq                                                                                   force_ntrst

                                                MCK                      Debug                  dbgu_irq

                                        periph_nreset                    Unit                   force_ntrst

                                              dbgu_rxd                                          dbgu_txd

                                                                                                                                    security_bit

                                                MCK                      Periodic

                                                debug                    Interval               pit_irq

                                        periph_nreset                    Timer

                                                SLCK                     Real-Time                                             flash_poe          Embedded

                                                                         Timer                  rtt_irq                                           Flash

                                    power_on_reset                                                                             flash_wrdis

                                                SLCK                                                                                cal

                                                debug                    Watchdog               wdt_irq                        gpnvm[0..2]

                                                idle                     Timer

                                         proc_nreset

                                           cal           gpnvm[1]                    wdt_fault

                                           gpnvm[0]                                  WDRPROC

                                                                                                                               MCK

                                    en                   flash_wrdis     bod_rst_en                                                               Memory

                                    BOD                                                                                        proc_nreset        Controller

                                                         power_on_reset

                                                         jtag_nreset     Reset                  periph_nreset

                                    POR                  flash_poe       Controller             proc_nreset        Voltage

                                                                                                                   Regulator   standby

                                                                                                                   Mode                           Voltage

                       NRST                                                                     rstc_irq           Controller                     Regulator

                                                SLCK                                                                           cal

                                    RCOSC       SLCK                                            periph_clk[2..18]              UDPCK

                                                                                                pck[0-3]                       periph_clk[11]     USB Device

                       XIN                      MAINCK                   Power                                                                    Port

                                    OSC                                  Management             PCK                            periph_nreset

                       XOUT                                              Controller             UDPCK

                                                                                                                               periph_irq[11]

                                                                                                MCK

                                                                                                                               usb_suspend

                       PLLRC        PLL         PLLCK

                                                                                                pmc_irq

                                                int

                                    periph_nreset                                               idle

                                    usb_suspend                                                                                periph_clk[4..18]

                                                                                                                               periph_nreset

                                                                                                                                                  Embedded

                                    periph_nreset                                               periph_irq{2-3]                                   Peripherals

                                    periph_clk[2-3]                                             irq0-irq1

                                           dbgu_rxd                      PIO                    fiq                            periph_irq[4..18]

                                                                         Controller             dbgu_txd

                                                                                                                                    in

                       PA0-PA31                                                                                                     out

                       PB0-PB31                                                                                                enable

                       PC0-PC29

                                                                                                                                                                  29

6222H–ATARM–25-Jan-12
9.1    Reset Controller

                 • Based on one power-on reset cell and a double brownout detector

                 • Status of the last reset, either Power-up Reset, Software Reset, User Reset, Watchdog

                         Reset, Brownout Reset

                 • Controls the internal resets and the NRST pin output

                 • Allows to shape a signal on the NRST line, guaranteeing that the length of the pulse meets

                         any requirement.

9.1.1  Brownout  Detector and Power On Reset

                 The SAM7SE512/256/32 embeds one brownout detection circuit and a power-on reset cell. The

                 power-on reset is supplied with and monitors VDDCORE.

                 Both signals are provided to the Flash to prevent any code corruption during power-up or power-

                 down sequences or if brownouts occur on the VDDCORE power supply.

                 The power-on reset cell has a limited-accuracy threshold at around 1.5V. Its output remains low

                 during power-up until VDDCORE goes over this voltage level. This signal goes to the reset con-

                 troller and allows a full re-initialization of the device.

                 The brownout detector monitors the VDDCORE and VDDFLASH levels during operation by

                 comparing it to a fixed trigger level. It secures system operations in the most difficult environ-

                 ments and prevents code corruption in case of brownout on the VDDCORE or VDDFLASH.

                 When the brownout detector is enabled and VDDCORE decreases to a value below the trigger

                 level (Vbot18-, defined as Vbot18 - hyst/2), the brownout output is immediately activated.

                 When VDDCORE increases above the trigger level (Vbot18+, defined as Vbot18 + hyst/2), the

                 reset is released. The brownout detector only detects a drop if the voltage on VDDCORE stays

                 below the threshold voltage for longer than about 1µs.

                 The VDDCORE threshold voltage has a hysteresis of about 50 mV, to ensure spike free brown-

                 out detection. The typical value of the brownout detector threshold is 1.68V with an accuracy of

                 ± 2% and is factory calibrated.

                 When the brownout detector is enabled and VDDFLASH decreases to a value below the trigger

                 level (Vbot33-, defined as Vbot33 - hyst/2), the brownout output is immediately activated.

                 When VDDFLASH increases above the trigger level (Vbot33+, defined as Vbot33 + hyst/2), the

                 reset is released. The brownout detector only detects a drop if the voltage on VDDCORE stays

                 below the threshold voltage for longer than about 1µs.

                 The VDDFLASH threshold voltage has a hysteresis of about 50 mV, to ensure spike free brown-

                 out detection. The typical value of the brownout detector threshold is 2.80V with an accuracy of

                 ± 3.5% and is factory calibrated.

                 The brownout detector is low-power, as it consumes less than 20 µA static current. However, it

                 can be deactivated to save its static current. In this case, it consumes less than 1µA. The deac-

                 tivation is configured through the GPNVM bit 0 of the Flash.

9.2    Clock Generator

                 The Clock Generator embeds one low-power RC Oscillator, one Main Oscillator and one PLL

                 with the following characteristics:

                 • RC Oscillator ranges between 22 KHz and 42 KHz

30     SAM7SE512/256/32

                                                                                    6222H–ATARM–25-Jan-12
                                                                                         SAM7SE512/256/32

                       • Main Oscillator frequency ranges between 3 and 20 MHz

                       • Main Oscillator can be bypassed

                       • PLL output ranges between 80 and 220 MHz

                       It provides SLCK, MAINCK and PLLCK.

                       Figure 9-2.  Clock Generator Block Diagram

                                                            Clock Generator

                                                                   Embedded              Slow Clock

                                                                   RC                    SLCK

                                                                   Oscillator

                                                  XIN              Main                  Main Clock

                                                                   Oscillator            MAINCK

                                                  XOUT

                                                                   PLL and               PLL Clock

                                                  PLLRC            Divider               PLLCK

                                                                   Status       Control

                                                                   Power

                                                                   Management

                                                                   Controller

9.3  Power  Management Controller

                       The Power Management Controller uses the Clock Generator outputs to provide:

                       • the Processor Clock PCK

                       • the Master Clock MCK

                       • the USB Clock UDPCK

                       • all the peripheral clocks, independently controllable

                       • three programmable clock outputs

                       The Master Clock (MCK) is programmable from a few hundred Hz to the maximum operating fre-

                       quency of the device.

                       The Processor Clock (PCK) switches off when entering processor idle mode, thus allowing

                       reduced power consumption while waiting for an interrupt.

                                                                                                                   31

6222H–ATARM–25-Jan-12
               Figure 9-3.  Power Management Controller                Block Diagram

                                                                       Processor          PCK

                                                                       Clock

                                                                       Controller

                                              Master Clock Controller                     int

                                                                       Idle Mode

                                     SLCK     Prescaler

                                     MAINCK                                               MCK

                                     PLLCK    /1,/2,/4,...,/64

                                                                             Peripherals  periph_clk[2..14]

                                                                       Clock Controller

                                                                             ON/OFF

                                              Programmable Clock Controller

                                     SLCK

                                     MAINCK              Prescaler                        pck[0..2]

                                     PLLCK    /1,/2,/4,...,/64

                                              USB Clock Controller                        usb_suspend

                                              ON/OFF

                                     PLLCK               Divider                          UDPCK

                                                         /1,/2,/4

9.4  Advanced  Interrupt Controller

               • Controls the interrupt lines (nIRQ and nFIQ) of an ARM Processor

               • Individually maskable and vectored interrupt sources

               – Source 0 is reserved for the Fast Interrupt Input (FIQ)

               – Source 1 is reserved for system peripherals (RTT, PIT, EFC, PMC, DBGU, etc.)

               – Other sources control the peripheral interrupts or external interrupts

               – Programmable edge-triggered or level-sensitive internal sources

               – Programmable positive/negative edge-triggered or high/low level-sensitive external

               sources

               • 8-level Priority Controller

               – Drives the normal interrupt nIRQ of the processor

               – Handles priority of the interrupt sources

               – Higher priority interrupts can be served during service of lower priority interrupt

               • Vectoring

               – Optimizes interrupt service routine branch and execution

               – One 32-bit vector register per interrupt source

               – Interrupt vector register reads the corresponding current interrupt vector

               • Protect Mode

               – Easy debugging by preventing automatic operations

               • Fast Forcing

               – Permits redirecting any interrupt source on the fast interrupt

               • General Interrupt Mask

               – Provides processor synchronization on events without triggering an interrupt

32   SAM7SE512/256/32

                                                                                                             6222H–ATARM–25-Jan-12
                                                                                     SAM7SE512/256/32

9.5  Debug Unit

                        •  Comprises:

                           – One two-pin UART

                           – One Interface for the Debug Communication Channel (DCC) support

                           – One set of Chip ID Registers

                           – One Interface providing ICE Access Prevention

                        •  Two-pin UART

                           – USART-compatible User Interface

                           – Programmable Baud Rate Generator

                           – Parity, Framing and Overrun Error

                           – Automatic Echo, Local Loopback and Remote Loopback Channel Modes

                        •  Debug Communication Channel Support

                           – Offers visibility of COMMRX and COMMTX signals from the ARM Processor

                        •  Chip ID Registers

                           – Identification of the device revision, sizes of the embedded memories, set of

                           peripherals

                           – Chip ID is 0x272A 0A40 (VERSION 0) for SAM7SE512

                           – Chip ID is 0x272A 0940 (VERSION 0) for SAM7SE256

                           – Chip ID is 0x2728 0340 (VERSION 0) for SAM7SE32

9.6  Periodic Interval     Timer

                        •  20-bit programmable counter plus 12-bit interval counter

9.7  Watchdog Timer

                        •  12-bit key-protected Programmable Counter running on prescaled SLCK

                        •  Provides reset or interrupt signals to the system

                        •  Counter may be stopped while the processor is in debug state or in idle mode

9.8  Real-time Timer

                        •  32-bit free-running counter with alarm running on prescaled SLCK

                        •  Programmable 16-bit prescaler for SLCK accuracy compensation

9.9  PIO Controllers

                        •  Three PIO Controllers. PIO A and B each control 32 I/O lines and PIO C controls 24 I/O  lines.

                        •  Fully programmable through set/clear registers

                        •  Multiplexing of two peripheral functions per I/O line

                        •  For each I/O line (whether assigned to a peripheral or used as general-purpose I/O)

                           – Input change interrupt

                           – Half a clock period glitch filter

                           – Multi-drive option enables driving in open drain

                           – Programmable pull-up on each I/O line

                           – Pin data status register, supplies visibility of the level on the pin at any time

                                                                                                                   33

6222H–ATARM–25-Jan-12
      • Synchronous output, provides     Set and Clear of several I/O lines  in a single write

9.10  Voltage Regulator Controller

      The purpose of this controller is  to select the Power Mode of the     Voltage Regulator between

      Normal Mode (bit 0 is cleared) or  Standby Mode (bit 0 is set).

34    SAM7SE512/256/32

                                                                             6222H–ATARM–25-Jan-12
                                                                                           SAM7SE512/256/32

10. Peripherals

10.1  User Interface

                       The User Peripherals are mapped in the 256 MBytes of the address space between

                       0xF000 0000 and 0xFFFF EFFF. Each peripheral is allocated 16 Kbytes of address space.

                       A complete memory map is presented in Figure 8-1 on page 22.

10.2  Peripheral       Identifiers

                       The SAM7SE512/256/32 embeds a wide range of peripherals. Table 10-1 defines the Peripheral

                       Identifiers of the SAM7SE512/256/32. Unique peripheral identifiers are defined for both the

                       Advanced Interrupt Controller and the Power Management Controller.

                       Table 10-1.      Peripheral Identifiers

                       Peripheral       Peripheral              Peripheral                     External

                       ID               Mnemonic                Name                           Interrupt

                       0                AIC                     Advanced Interrupt Controller  FIQ

                       1                SYSC(1)

                       2                PIOA                    Parallel I/O Controller A

                       3                PIOB                    Parallel I/O Controller B

                       4                PIOC                    Parallel I/O Controller C

                       5                SPI                     Serial Peripheral Interface 0

                       6                US0                     USART 0

                       7                US1                     USART 1

                       8                SSC                     Synchronous Serial Controller

                       9                TWI                     Two-wire Interface

                       10               PWMC                    PWM Controller

                       11               UDP                     USB Device Port

                       12               TC0                     Timer/Counter 0

                       13               TC1                     Timer/Counter 1

                       14               TC2                     Timer/Counter 2

                       15               ADC(1)                  Analog-to Digital Converter

                       16-28            reserved

                       29               AIC                     Advanced Interrupt Controller  IRQ0

                       30               AIC                     Advanced Interrupt Controller  IRQ1

                       Note:        1.  Setting SYSC and ADC bits in the clock set/clear registers of the PMC has no effect. The Sys-

                                        tem Controller is continuously clocked. The ADC clock is automatically started for the first

                                        conversion. In Sleep Mode the ADC clock is automatically stopped after each conversion.

                                                                                                                                       35

6222H–ATARM–25-Jan-12
10.3  Peripheral  Multiplexing on PIO Lines

                  The SAM7SE512/256/32 features three PIO controllers, PIOA, PIOB and PIOC, that multiplex

                  the I/O lines of the peripheral set.

                  PIO Controller A and B control 32 lines; PIO Controller C controls 24 lines. Each line can be

                  assigned to one of two peripheral functions, A or B. Some of them can also be multiplexed with

                  the analog inputs of the ADC Controller.

                  Table 10-2 on page 37 defines how the I/O lines of the peripherals A and B or the analog inputs

                  are multiplexed on the PIO Controller A, B and C. The two columns “Function” and “Comments”

                  have been inserted for the user’s own comments; they may be used to track how pins are

                  defined in an application.

                  Note that some peripheral functions that are output only may be duplicated in the table.

                  At reset, all I/O lines are automatically configured as input with the programmable pull-up

                  enabled, so that the device is maintained in a static state as soon as a reset is detected.

36    SAM7SE512/256/32

                                                            6222H–ATARM–25-Jan-12
                                                                     SAM7SE512/256/32

10.4  PIO    Controller A Multiplexing

Table 10-2.  Multiplexing on PIO Controller A

                           PIO Controller A                Application Usage

I/O Line     Peripheral A  Peripheral B        Comments    Function           Comments

PA0          PWM0          A0/NBS0             High-Drive

PA1          PWM1          A1/NBS2             High-Drive

PA2          PWM2          A2                  High-Drive

PA3          TWD           A3                  High-Drive

PA4          TWCK          A4

PA5          RXD0          A5

PA6          TXD0          A6

PA7          RTS0          A7

PA8          CTS0          A8

PA9          DRXD          A9

PA10         DTXD          A10

PA11         NPCS0         A11

PA12         MISO          A12

PA13         MOSI          A13

PA14         SPCK          A14

PA15         TF            A15

PA16         TK            A16/BA0

PA17         TD            A17/BA1             AD0

PA18         RD            NBS3/CFIOW          AD1

PA19         RK            NCS4/CFCS0          AD2

PA20         RF            NCS2/CFCS1          AD3

PA21         RXD1          NCS6/CFCE2

PA22         TXD1          NCS5/CFCE1

PA23         SCK1          NWR1/NBS1/CFIOR

PA24         RTS1          SDA10

PA25         CTS1          SDCKE

PA26         DCD1          NCS1/SDCS

PA27         DTR1          SDWE

PA28         DSR1          CAS

PA29         RI1           RAS

PA30         IRQ1          D30

PA31         NPCS1         D31

                                                                                        37

6222H–ATARM–25-Jan-12
10.5  PIO    Controller B Multiplexing

Table 10-3.  Multiplexing on PIO Controller B

                           PIO Controller B                 Application  Usage

I/O Line     Peripheral A  Peripheral          B  Comments  Function            Comments

PB0          TIOA0         A0/NBS0

PB1          TIOB0         A1/NBS2

PB2          SCK0          A2

PB3          NPCS3         A3

PB4          TCLK0         A4

PB5          NPCS3         A5

PB6          PCK0          A6

PB7          PWM3          A7

PB8          ADTRG         A8

PB9          NPCS1         A9

PB10         NPCS2         A10

PB11         PWM0          A11

PB12         PWM1          A12

PB13         PWM2          A13

PB14         PWM3          A14

PB15         TIOA1         A15

PB16         TIOB1         A16/BA0

PB17         PCK1          A17/BA1

PB18         PCK2          D16

PB19         FIQ           D17

PB20         IRQ0          D18

PB21         PCK1          D19

PB22         NPCS3         D20

PB23         PWM0          D21

PB24         PWM1          D22

PB25         PWM2          D23

PB26         TIOA2         D24

PB27         TIOB2         D25

PB28         TCLK1         D26

PB29         TCLK2         D27

PB30         NPCS2         D28

PB31         PCK2          D29

38        SAM7SE512/256/32

                                                                                6222H–ATARM–25-Jan-12
                                                                                       SAM7SE512/256/32

10.6  PIO Controller C Multiplexing

Multiplexing  on  PIO Controller C

                                    PIO  Controller C                                  Application Usage

I/O Line          Peripheral A           Peripheral B         Comments                 Function           Comments

PC0               D0

PC1               D1

PC2               D2

PC3               D3

PC4               D4

PC5               D5

PC6               D6

PC7               D7

PC8               D8                     RTS1

PC9               D9                     DTR1

PC10              D10                    PCK0

PC11              D11                    PCK1

PC12              D12                    PCK2

PC13              D13

PC14              D14                    NPCS1

PC15              D15                    NCS3/NANDCS

PC16              A18                    NWAIT

PC17              A19                    NANDOE

PC18              A20                    NANDWE

PC19              A21/NANDALE

PC20              A22/REG/NANDCLE        NCS7

PC21                                     NWR0/NWE/CFWE

PC22                                     NRD/CFOE

PC23              CFRNW                  NCS0

10.7  Serial      Peripheral Interface

                                • Supports communication with external serial devices

                                    – Four chip selects with external decoder allow communication with up to 15

                                    peripherals

                                    – Serial memories, such as DataFlash® and 3-wire EEPROMs

                                    – Serial peripherals, such as ADCs, DACs, LCD Controllers, CAN Controllers      and

                                    Sensors

                                    – External co-processors

                                • Master or slave serial peripheral bus interface

                                                                                                                         39

6222H–ATARM–25-Jan-12
                             –  8- to 16-bit programmable data length per chip select

                             –  Programmable phase and polarity per chip select

                             –  Programmable transfer delays per chip select, between  consecutive  transfers  and

                                between clock and data

                             –  Programmable delay between consecutive transfers

                             –  Selectable mode fault detection

                             –  Maximum frequency at up to Master Clock

10.8   Two  Wire  Interface

                  • Master, Multi-Master and Slave Mode Operation

                  • Compatibility with standard two-wire serial memories

                  • One, two or three bytes for slave address

                  • Sequential read/write operations

                  • Bit Rate: Up to 400 Kbit/s

                  • General Call Supported in Slave Mode

10.9   USART

                  •  Programmable Baud Rate Generator

                  •  5- to 9-bit full-duplex synchronous or asynchronous serial communications

                             – 1, 1.5 or 2 stop bits in Asynchronous Mode

                             – 1 or 2 stop bits in Synchronous Mode

                             – Parity generation and error detection

                             – Framing error detection, overrun error detection

                             – MSB or LSB first

                             – Optional break generation and detection

                             – By 8 or by 16 over-sampling receiver frequency

                             – Hardware handshaking RTS - CTS

                             – Modem Signals Management DTR-DSR-DCD-RI on USART1

                             – Receiver time-out and transmitter timeguard

                             – Multi-drop Mode with address generation and detection

                  •  RS485 with driver control signal

                  •  ISO7816, T = 0 or T = 1 Protocols for interfacing with smart cards

                             – NACK handling, error counter with repetition and iteration limit

                  •  IrDA® modulation and demodulation

                             – Communication at up to 115.2 Kbps

                  •  Test Modes

                             – Remote Loopback, Local Loopback, Automatic Echo

10.10  Serial Synchronous Controller

                  • Provides serial synchronous communication links used in audio and telecom applications

                  • Contains an independent receiver and transmitter and a common clock divider

40     SAM7SE512/256/32

                                                                                                    6222H–ATARM–25-Jan-12
                                                                                       SAM7SE512/256/32

                          • Offers a configurable frame sync and data length

                          • Receiver and transmitter can be programmed to start automatically or on detection of

                             different event on the frame sync signal

                          • Receiver and transmitter include a data signal, a clock signal and a frame synchronization

                             signal

10.11  Timer  Counter

                          •  Three 16-bit Timer Counter Channels

                             – Two output compare or one input capture per      channel

                          •  Wide range of functions including:

                             – Frequency measurement

                             – Event counting

                             – Interval measurement

                             – Pulse generation

                             – Delay timing

                             – Pulse Width Modulation

                             – Up/down capabilities

                          •  Each channel is user-configurable and contains:

                             – Three external clock inputs

                             – Five internal clock inputs, as defined in Table  10-4

                       Table 10-4.   Timer Counter Clocks Assignment

                                     TC Clock input                                         Clock

                                     TIMER_CLOCK1                                           MCK/2

                                     TIMER_CLOCK2                                           MCK/8

                                     TIMER_CLOCK3                                           MCK/32

                                     TIMER_CLOCK4                                           MCK/128

                                     TIMER_CLOCK5                                         MCK/1024

                             – Two multi-purpose input/output signals

                             – Two global registers that act on all three TC channels

10.12  PWM    Controller

                          •  Four channels, one 16-bit counter per channel

                          •  Common clock generator, providing thirteen different clocks

                             – One Modulo n counter providing eleven clocks

                             – Two independent linear dividers working on modulo n counter  outputs

                          •  Independent channel programming

                             – Independent enable/disable commands

                             – Independent clock selection

                             – Independent period and duty cycle, with double buffering

                             – Programmable selection of the output waveform polarity

                             – Programmable center or left aligned output waveform

                                                                                                                        41

6222H–ATARM–25-Jan-12
10.13  USB  Device  Port

                    •     USB V2.0 full-speed compliant,12 Mbits per second.

                    •     Embedded USB V2.0 full-speed transceiver

                    •     Embedded 2688-byte dual-port RAM for endpoints

                    •     Eight endpoints

                          – Endpoint 0: 64bytes

                          – Endpoint 1 and 2: 64 bytes ping-pong

                          – Endpoint 3: 64 bytes

                          – Endpoint 4 and 5: 512 bytes ping-pong

                          – Endpoint 6 and 7: 64 bytes ping-pong

                          – Ping-pong Mode (two memory banks) for Isochronous    and    bulk  endpoints

                    •     Suspend/resume logic

                    •     Integrated Pull-up on DDP

10.14  Analog-to-Digital Converter

                    • 8-channel ADC

                    • 10-bit 384 Ksamples/sec. or 8-bit 583 Ksamples/sec. Successive Approximation Register

                          ADC

                    • ±2 LSB Integral Non Linearity, ±1 LSB Differential Non Linearity

                    • Integrated 8-to-1 multiplexer, offering eight independent 3.3V analog inputs

                    • External voltage reference for better accuracy on low voltage inputs

                    • Individual enable and disable of each channel

                    • Multiple trigger sources

                          – Hardware or software trigger

                          – External trigger pin

                          – Timer Counter 0 to 2 outputs TIOA0 to TIOA2 trigger

                    • Sleep Mode and conversion sequencer

                          – Automatic wakeup on trigger and back to sleep mode after conversions of all

                          enabled channels

                    • Each analog input shared with digital signals

42     SAM7SE512/256/32

                                                                                                    6222H–ATARM–25-Jan-12
                                                                            SAM7SE512/256/32

11. ARM7TDMI           Processor Overview

11.1  Overview

                       The ARM7TDMI core executes both the 32-bit ARM and 16-bit Thumb instruction sets, allowing

                       the user to trade off between high performance and high code density.The ARM7TDMI proces-

                       sor implements Von Neuman architecture, using a three-stage pipeline consisting of Fetch,

                       Decode, and Execute stages.

                       The main features of the ARM7tDMI processor are:

                       •  ARM7TDMI Based on ARMv4T Architecture

                       •  Two Instruction Sets

                          – ARM High-performance 32-bit Instruction Set

                          – Thumb High Code Density 16-bit Instruction Set

                       •  Three-Stage Pipeline Architecture

                          – Instruction Fetch (F)

                          – Instruction Decode (D)

                          – Execute (E)

                                                                                                                   43

6222H–ATARM–25-Jan-12
11.2    ARM7TDMI Processor

                   For further details on ARM7TDMI, refer to the following ARM documents:

                   ARM Architecture Reference Manual (DDI 0100E)

                   ARM7TDMI Technical Reference Manual (DDI 0210B)

11.2.1  Instruction Type

                   Instructions are either 32 bits long (in ARM state) or 16 bits long (in THUMB state).

11.2.2  Data Type

                   ARM7TDMI supports byte (8-bit), half-word (16-bit) and word (32-bit) data types. Words must be

                   aligned to four-byte boundaries and half words to two-byte boundaries.

                   Unaligned data access behavior depends on which instruction is used where.

11.2.3  ARM7TDMI Operating Mode

                   The ARM7TDMI, based on ARM architecture v4T, supports seven processor modes:

                            User: The normal ARM program execution state

                            FIQ: Designed to support high-speed data transfer or channel process

                            IRQ: Used for general-purpose interrupt handling

                            Supervisor: Protected mode for the operating system

                            Abort mode: Implements virtual memory and/or memory protection

                            System: A privileged user mode for the operating system

                            Undefined: Supports software emulation of hardware coprocessors

                   Mode changes may be made under software control, or may be brought about by external inter-

                   rupts or exception processing. Most application programs execute in User mode. The non-user

                   modes, or privileged modes, are entered in order to service interrupts or exceptions, or to

                   access protected resources.

11.2.4  ARM7TDMI Registers

                   The ARM7TDMI processor has a total of 37registers:

                          • 31 general-purpose 32-bit registers

                          • 6 status registers

                   These registers are not accessible at the same time. The processor state and operating mode

                   determine which registers are available to the programmer.

                   At any one time 16 registers are visible to the user. The remainder are synonyms used to speed

                   up exception processing.

                   Register 15 is the Program Counter (PC) and can be used in all instructions to reference data

                   relative to the current instruction.

                   R14 holds the return address after a subroutine call.

                   R13 is used (by software convention) as a stack pointer.

44      SAM7SE512/256/32

                                                                                                  6222H–ATARM–25-Jan-12
                                                                                        SAM7SE512/256/32

                            Table 11-1.  ARM7TDMI ARM            Modes and Registers Layout

                            User and            Supervisor                   Undefined       Interrupt  Fast Interrupt

                            System Mode         Mode             Abort Mode  Mode            Mode       Mode

                            R0                  R0               R0          R0              R0         R0

                            R1                  R1               R1          R1              R1         R1

                            R2                  R2               R2          R2              R2         R2

                            R3                  R3               R3          R3              R3         R3

                            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         R8_FIQ

                            R9                  R9               R9          R9              R9         R9_FIQ

                            R10                 R10              R10         R10             R10        R10_FIQ

                            R11                 R11              R11         R11             R11        R11_FIQ

                            R12                 R12              R12         R12             R12        R12_FIQ

                            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

                                                SPSR_SVC         SPSR_ABORT  SPSR_UNDEF      SPSR_IRQ   SPSR_FIQ

                                                                                             Mode-specific banked registers

                            Registers R0 to R7 are unbanked registers. This means that each of them refers to the same 32-

                            bit physical register in all processor modes. They are general-purpose registers, with no special

                            uses managed by the architecture, and can be used wherever an instruction allows a general-

                            purpose register to be specified.

                            Registers R8 to R14 are banked registers. This means that each of them depends on the current

                            mode of the processor.

11.2.4.1  Modes        and  Exception Handling

                            All exceptions have banked registers for R14 and R13.

                            After an exception, R14 holds the return address for exception processing. This address is used

                            to return after the exception is processed, as well as to address the instruction that caused the

                            exception.

                            R13 is banked across exception modes to provide each exception handler with a private stack

                            pointer.

                            The fast interrupt mode also banks registers 8 to 12 so that interrupt processing can begin with-

                            out having to save these registers.

                                                                                                                               45

6222H–ATARM–25-Jan-12
                     A seventh processing mode, System Mode, does not have any banked registers. It uses the

                     User Mode registers. System Mode runs tasks that require a privileged processor mode and

                     allows them to invoke all classes of exceptions.

11.2.4.2  Status  Registers

                     All other processor states are held in status registers. The current operating processor status is

                     in the Current Program Status Register (CPSR). The CPSR holds:

                     • four ALU flags (Negative, Zero, Carry, and Overflow)

                     • two interrupt disable bits (one for each type of interrupt)

                     • one bit to indicate ARM or Thumb execution

                     • five bits to encode the current processor mode

                     All five exception modes also have a Saved Program Status Register (SPSR) that holds the

                     CPSR of the task immediately preceding the exception.

11.2.4.3  Exception  Types

                     The ARM7TDMI supports five types of exception and a privileged processing mode for each type.

                     The types of exceptions are:

                     • fast interrupt (FIQ)

                     • normal interrupt (IRQ)

                     • memory aborts (used to implement memory protection or virtual memory)

                     • attempted execution of an undefined instruction

                     • software interrupts (SWIs)

                     Exceptions are generated by internal and external sources.

                     More than one exception can occur in the same time.

                     When an exception occurs, the banked version of R14 and the SPSR for the exception mode

                     are used to save state.

                     To return after handling the exception, the SPSR is moved to the CPSR, and R14 is moved to

                     the PC. This can be done in two ways:

                     • by using a data-processing instruction with the S-bit set, and the PC as the destination

                     • by using the Load Multiple with Restore CPSR instruction (LDM)

11.2.5    ARM  Instruction Set Overview

                     The ARM instruction set is divided into:

                     • Branch instructions

                     • Data processing instructions

                     • Status register transfer instructions

                     • Load and Store instructions

                     • Coprocessor instructions

                     • Exception-generating instructions

                     ARM instructions can be executed conditionally.      Every     instruction  contains  a  4-bit  condition

                     code field (bit[31:28]).

46        SAM7SE512/256/32

                                                                                                 6222H–ATARM–25-Jan-12
                                                                                SAM7SE512/256/32

                       Table 11-2 gives the ARM instruction mnemonic     list.

                       Table 11-2.  ARM Instruction Mnemonic List

                       Mnemonic     Operation                            Mnemonic  Operation

                       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

                       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

11.2.6  Thumb          Instruction Set Overview

                       The Thumb instruction set is a re-encoded subset of the ARM instruction set.

                       The Thumb instruction set is divided into:

                       • Branch instructions

                       • Data processing instructions

                       • Load and Store instructions

                       • Load and Store Multiple instructions

                       • Exception-generating instruction

                       In Thumb mode, eight general-purpose registers, R0 to R7, are available that are the same

                       physical registers as R0 to R7 when executing ARM instructions. Some Thumb instructions also

                                                                                                                         47

6222H–ATARM–25-Jan-12
    access to the Program Counter (ARM Register 15), the Link Register (ARM Register 14) and the

    Stack Pointer (ARM Register 13). Further instructions allow limited access to the ARM registers

    8 to 15.

    Table 11-3 gives the Thumb instruction mnemonic list.

    Table 11-3.  Thumb Instruction       Mnemonic  List

    Mnemonic     Operation                               Mnemonic  Operation

    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

    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

48  SAM7SE512/256/32

                                                                              6222H–ATARM–25-Jan-12
                                                                          SAM7SE512/256/32

12. Debug and Test Features

12.1  Overview

                       The SAM7SE Series Microcontrollers feature a number of complementary debug and test capa-

                       bilities. A common JTAG/ICE (Embedded ICE) port is used for standard debugging functions,

                       such as downloading code and single-stepping through programs. The Debug Unit provides a

                       two-pin UART that can be used to upload an application into internal SRAM. It manages the

                       interrupt handling of the internal COMMTX and COMMRX signals that trace the activity of the

                       Debug Communication Channel.

                       A set of dedicated debug and test input/output pins gives direct access to these capabilities from

                       a PC-based test environment.

12.2  Block Diagram

                       Figure 12-1.  Debug and Test Block Diagram

                                                                                    TMS

                                                                                    TCK

                                                                                    TDI

                       Boundary                      ICE/JTAG                       JTAGSEL

                                     TAP             TAP

                                                                                    TDO

                                                                   Reset       POR

                                          ICE                      and

                                                                   Test             TST

                            ARM7TDMI

                                                                          PIO       DTXD

                       PDC                DBGU

                                                                                    DRXD

                                                                                                                           49

6222H–ATARM–25-Jan-12
12.3    Application Examples

12.3.1  Debug Environment

        Figure 12-2 shows a complete debug environment example. The ICE/JTAG interface is used for

        standard debugging functions, such as downloading code and single-stepping through the

        program.

        Figure 12-2.          Application Debug Environment Example

                                                                     Host Debugger

                              ICE/JTAG

                              Interface

                              ICE/JTAG

                              Connector

                              AT91SAMSExx  RS232                     Terminal

                                           Connector

                              AT91SAM7Sxx-based Application Board

50      SAM7SE512/256/32

                                                                                    6222H–ATARM–25-Jan-12
                                                                                    SAM7SE512/256/32

12.3.2  Test  Environment

                       Figure 12-3 shows a test environment example. Test vectors are sent and interpreted by the tes-

                       ter. In this example, the “board in test” is designed using a number of JTAG-compliant devices.

                       These devices can be connected to form a single scan chain.

                       Figure 12-3.  Application Test Environment Example

                                                                     Test Adaptor           Tester

                                                  JTAG

                                                  Interface

                                             ICE/JTAG        Chip n      Chip 2

                                             Connector

                                                  AT91SAM7SExx           Chip 1

                                             AT91SAM7SExx-based Application Board  In Test

12.4    Debug  and     Test Pin Description

                       Table 12-1.   Debug   and  Test Pin List

                       Pin Name                   Function                                  Type          Active Level

                                                                 Reset/Test

                       NRST                       Microcontroller Reset                     Input/Output  Low

                       TST                        Test Mode Select                          Input         High

                                                                 ICE and JTAG

                       TCK                        Test Clock                                Input

                       TDI                        Test Data In                              Input

                       TDO                        Test Data Out                             Output

                       TMS                        Test Mode Select                          Input

                       JTAGSEL                    JTAG Selection                            Input

                                                                 Debug Unit

                       DRXD                       Debug Receive Data                        Input

                       DTXD                       Debug Transmit Data                       Output

                                                                                                                        51

6222H–ATARM–25-Jan-12
12.5    Functional Description

12.5.1  Test Pin

                    One dedicated pin, TST, is used to define the device operating mode. The user must make sure

                    that this pin is tied at low level to ensure normal operating conditions. Other values associated

                    with this pin are reserved for manufacturing test.

12.5.2  EmbeddedICE™ (Embedded In-circuit Emulator)

                    The ARM7TDMI EmbeddedICE is supported via the ICE/JTAG port.The internal state of the

                    ARM7TDMI is examined through an ICE/JTAG port.

                    The ARM7TDMI processor contains hardware extensions for advanced debugging features:

                    • In halt mode, a store-multiple (STM) can be inserted into the instruction pipeline. This exports

                    the contents of the ARM7TDMI registers. This data can be serially shifted out without

                    affecting the rest of the system.

                    • In monitor mode, the JTAG interface is used to transfer data between the debugger and a

                    simple monitor program running on the ARM7TDMI processor.

                    There are three scan chains inside the ARM7TDMI processor that support testing, debugging,

                    and programming of the Embedded ICE. The scan chains are controlled by the ICE/JTAG port.

                    Embedded ICE mode is selected when JTAGSEL is low. It is not possible to switch directly

                    between ICE and JTAG operations. A chip reset must be performed after JTAGSEL is changed.

                    For further details on the Embedded ICE, see the ARM7TDMI (Rev4) Technical Reference Man-

                    ual (DDI0210B).

12.5.3  Debug Unit

                    The Debug Unit provides a two-pin (DXRD and TXRD) USART that can be used for several

                    debug and trace purposes and offers an ideal means for in-situ programming solutions and

                    debug monitor communication. Moreover, the association with two peripheral data controller

                    channels permits packet handling of these tasks with processor time reduced to a minimum.

                    The Debug Unit also manages the interrupt handling of the COMMTX and COMMRX signals

                    that come from the ICE and that trace the activity of the Debug Communication Channel.The

                    Debug Unit allows blockage of access to the system through the ICE interface.

                    A specific register, the Debug Unit Chip ID Register, gives information about the product version

                    and its internal configuration.

                    Table 12-2.  AT91SAM7SExx Chip IDs

                    Chip Name                                                           Chip ID

                    AT91SAM7SE32                                                        0x27280340

                    AT91SAM7SE256                                                       0x272A0940

                    AT91SAM7SE512                                                       0x272A0A40

                    For further details on the Debug Unit, see the Debug Unit section.

12.5.4  IEEE 1149.1 JTAG Boundary Scan

                    IEEE 1149.1 JTAG Boundary Scan allows pin-level access independent of the device packaging

                    technology.

52      SAM7SE512/256/32

                                                                                                   6222H–ATARM–25-Jan-12
                                                         SAM7SE512/256/32

                       IEEE 1149.1 JTAG Boundary Scan is enabled when JTAGSEL is high. The SAMPLE, EXTEST

                       and BYPASS functions are implemented. In ICE debug mode, the ARM processor responds

                       with a non-JTAG chip ID that identifies the processor to the ICE system. This is not IEEE 1149.1

                       JTAG-compliant.

                       It is not possible to switch directly between JTAG and ICE operations. A chip reset must be per-

                       formed after JTAGSEL is changed.

                       A Boundary-scan Descriptor Language (BSDL) file is provided to set up test.

12.5.4.1  JTAG         Boundary-scan Register

                       The Boundary-scan Register (BSR) contains 353 bits that correspond to active pins and associ-

                       ated control signals.

                       Each AT91SAM7SExx input/output pin corresponds to a 3-bit register in the BSR. The OUTPUT

                       bit contains data that can be forced on the pad. The INPUT bit facilitates the observability of data

                       applied to the pad. The CONTROL bit selects the direction of the pad.

                       For more information, please refer to BDSL files which are available for the SAM7SE Series.

                                                                                                                             53

6222H–ATARM–25-Jan-12
12.5.5       ID Code  Register

Access: Read-only

        31            30           29       28                  27  26           25        24

                          VERSION                                   PART NUMBER

        23            22           21       20                  19  18           17        16

                                            PART NUMBER

        15            14           13       12                  11  10           9         8

                      PART NUMBER                                   MANUFACTURER IDENTITY

        7             6            5        4                   3   2            1         0

                                         MANUFACTURER IDENTITY                             1

•  VERSION[31:28]: Product Version Number

Set to 0x0.

•  PART NUMBER[27:12]: Product Part Number

   Chip Name                                                            Chip ID

   AT91SAM7SE32                                                         0x5B1D

   AT91SAM7SE256                                                        0x5B15

   AT91SAM7SE512                                                        0x5B14

•  MANUFACTURER IDENTITY[11:1]

Set to 0x01F.

•  Bit[0] Required by IEEE Std. 1149.1.

Set to 0x1.

   Chip Name                                                            JTAG ID Code

   AT91SAM7SE32                                                         05B1_D03F

   AT91SAM7SE256                                                        05B1_503F

   AT91SAM7SE512                                                        05B1_403F

54          SAM7SE512/256/32

                                                                                     6222H–ATARM–25-Jan-12
                                                                                   SAM7SE512/256/32

13.   Reset  Controller (RSTC)

                       The Reset Controller (RSTC), based on power-on reset cells, handles all the resets of the sys-

                       tem without any external components. It reports which reset occurred last.

                       The Reset Controller also drives independently or simultaneously the external reset and the

                       peripheral and processor resets.

                       A brownout detection is also available to prevent the processor from falling into an unpredictable

                       state.

13.1  Block Diagram

                       Figure 13-1.  Reset Controller Block Diagram

                                                         Reset Controller

                               bod_rst_en                Brownout    bod_reset

                               brown_out                 Manager

                                                                                   Reset

                                                                                   State           rstc_irq

                               Main Supply               Startup                   Manager

                               POR                       Counter

                                                                                                   proc_nreset

                                                                     user_reset

                                     NRST

                                                         NRST                                      periph_nreset

                                                         Manager

                                            nrst_out                 exter_nreset

                               WDRPROC

                               wd_fault

                                                                                   SLCK

                                                                                                                           55

6222H–ATARM–25-Jan-12
13.2      Functional Description

13.2.1    Reset  Controller Overview

                        The Reset Controller is made up of an NRST Manager, a Brownout Manager, a Startup Counter

                        and a Reset State Manager. It runs at Slow Clock and generates the following reset signals:

                        • proc_nreset: Processor reset line. It also resets the Watchdog Timer.

                        • periph_nreset: Affects the whole set of embedded peripherals.

                        • nrst_out: Drives the NRST pin.

                        These reset signals are asserted by the Reset Controller, either on external events or on soft-

                        ware action. The Reset State Manager controls the generation of reset signals and provides a

                        signal to the NRST Manager when an assertion of the NRST pin is required.

                        The NRST Manager shapes the NRST assertion during a programmable time, thus controlling

                        external device resets.

                        The startup counter waits for the complete crystal oscillator startup. The wait delay is given by

                        the crystal oscillator startup time maximum value that can be found in the section Crystal Oscil-

                        lator Characteristics in the Electrical Characteristics section of the product documentation.

13.2.2    NRST Manager

                        The NRST Manager samples the NRST input pin and drives this pin low when required by the

                        Reset State Manager. Figure 13-2 shows the block diagram of the NRST Manager.

                        Figure  13-2.  NRST  Manager

                                                                              RSTC_MR

                                                 RSTC_SR                           URSTIEN

                                                      URSTS

                                                                                                             rstc_irq

                                                      NRSTL  RSTC_MR               Other

                                                             URSTEN                interrupt

                                                                                   sources

                                                                                                 user_reset

                                      NRST                   RSTC_MR

                                                             ERSTL

                                                 nrst_out    External Reset Timer                exter_nreset

13.2.2.1  NRST Signal or Interrupt

                        The NRST Manager samples the NRST pin at Slow Clock speed. When the line is detected low,

                        a User Reset is reported to the Reset State Manager.

                        However, the NRST Manager can be programmed to not trigger a reset when an assertion of

                        NRST occurs. Writing the bit URSTEN at 0 in RSTC_MR disables the User Reset trigger.

                        The level of the pin NRST can be read at any time in the bit NRSTL (NRST level) in RSTC_SR.

                        As soon as the pin NRST is asserted, the bit URSTS in RSTC_SR is set. This bit clears only

                        when RSTC_SR is read.

56        SAM7SE512/256/32

                                                                                                   6222H–ATARM–25-Jan-12
                                                                                     SAM7SE512/256/32

                        The Reset Controller can also be programmed to generate an interrupt instead of generating a

                        reset. To do so, the bit URSTIEN in RSTC_MR must be written at 1.

13.2.2.2  NRST         External Reset Control

                        The Reset State Manager asserts the signal ext_nreset to assert the NRST pin. When this

                        occurs, the “nrst_out” signal is driven low by the NRST Manager for a time programmed by the

                        field ERSTL in RSTC_MR. This assertion duration, named EXTERNAL_RESET_LENGTH, lasts

                        2(ERSTL+1) Slow Clock cycles. This gives the approximate duration of an assertion between 60 µs

                        and 2 seconds. Note that ERSTL at 0 defines a two-cycle duration for the NRST pulse.

                        This feature allows the Reset Controller to shape the NRST pin level, and thus to guarantee that

                        the NRST line is driven low for a time compliant with potential external devices connected on the

                        system reset.

13.2.3    Brownout     Manager

                        Brownout detection prevents the processor from falling into an unpredictable state if the power

                        supply drops below a certain level. When VDDCORE drops below the brownout threshold, the

                        brownout manager requests a brownout reset by asserting the bod_reset signal.

                        The programmer can disable the brownout reset by setting low the bod_rst_en input signal, i.e.;

                        by locking the corresponding general-purpose NVM bit in the Flash. When the brownout reset is

                        disabled, no reset is performed. Instead, the brownout detection is reported in the bit BODSTS

                        of RSTC_SR. BODSTS is set and clears only when RSTC_SR is read.

                        The bit BODSTS can trigger an interrupt if the bit BODIEN is set in the RSTC_MR.

                        At factory, the brownout reset is disabled.

                        Figure 13-3.   Brownout Manager

                                               bod_rst_en

                                                                                           bod_reset

                                                                     RSTC_MR

                                                                     BODIEN

                                                           RSTC_SR

                                               brown_out   BODSTS                          rstc_irq

                                                                              Other

                                                                              interrupt

                                                                              sources

13.2.4    Reset States

                        The Reset State Manager handles the different reset sources and generates the internal reset

                        signals. It reports the reset status in the field RSTTYP of the Status Register (RSTC_SR). The

                        update of the field RSTTYP is performed when the processor reset is released.

                                                                                                                           57

6222H–ATARM–25-Jan-12
13.2.4.1      Power-up    Reset

                          When VDDCORE is powered on, the Main Supply POR cell output is filtered with a start-up

                          counter that operates at Slow Clock. The purpose of this counter is to ensure that the Slow

                          Clock oscillator is stable before starting up the device.

                          The startup time, as shown in Figure 13-4, is hardcoded to comply with the Slow Clock Oscillator

                          startup time. After the startup time, the reset signals are released and the field RSTTYP in

                          RSTC_SR reports a Power-up Reset.

                          When VDDCORE is detected low by the Main Supply POR Cell, all reset signals are asserted

                          immediately.

Figure 13-4.  Power-up Reset

              SLCK

              MCK                                                                               Any

                                                                                                Freq.

          Main Supply

          POR output             Startup Time

                                                 Processor Startup

                                                 = 3 cycles

          proc_nreset

          periph_nreset

              NRST

              (nrst_out)

                                                 EXTERNAL RESET LENGTH

                                                                  = 2 cycles

13.2.4.2      User Reset

                          The User Reset is entered when a low level is detected on the NRST pin and the bit URSTEN in

                          RSTC_MR is at 1. The NRST input signal is resynchronized with SLCK to insure proper behav-

                          ior of the system.

                          The User Reset is entered as soon as a low level is detected on NRST. The Processor Reset

                          and the Peripheral Reset are asserted.

                          The User Reset is left when NRST rises, after a two-cycle resynchronization time and a three-

                          cycle processor startup. The processor clock is re-enabled as soon as NRST is confirmed high.

                          When the processor reset signal is released, the RSTTYP field of the Status Register

                          (RSTC_SR) is loaded with the value 0x4, indicating a User Reset.

                          The    NRST   Manager  guarantees                   that   the  NRST  line       is  asserted     for

                          EXTERNAL_RESET_LENGTH Slow Clock cycles, as programmed in the field ERSTL. How-

                          ever, if NRST does not rise after EXTERNAL_RESET_LENGTH because it is driven low

                          externally, the internal reset lines remain asserted until NRST actually rises.

58        SAM7SE512/256/32

                                                                                                           6222H–ATARM–25-Jan-12
                                                                                          SAM7SE512/256/32

Figure 13-5.  User Reset State

              SLCK

              MCK                 Any

                                  Freq.

              NRST

                                  Resynch.                            Resynch.  Processor Startup

                                  2 cycles                            2 cycles  = 3 cycles

              proc_nreset

              RSTTYP              Any                                 XXX                             0x4 = User Reset

          periph_nreset

              NRST

              (nrst_out)

                                            >= EXTERNAL RESET LENGTH

13.2.4.3      Brownout     Reset

                           When the brown_out/bod_reset signal is asserted, the Reset State Manager immediately enters

                           the Brownout Reset. In this state, the processor, the peripheral and the external reset lines are

                           asserted.

                           The Brownout Reset is left 3 Slow Clock cycles after the rising edge of brown_out/bod_reset

                           after a two-cycle resynchronization. An external reset is also triggered.

                           When the processor reset is released, the field RSTTYP in RSTC_SR is loaded with the value

                           0x5, thus indicating that the last reset is a Brownout Reset.

                                                                                                                              59

6222H–ATARM–25-Jan-12
Figure  13-6.  Brownout      Reset       State

               SLCK

               MCK                  Any

                                 Freq.

               brown_out

               or bod_reset

                                                  Resynch.  Processor Startup

                                                  2 cycles  = 3 cycles

               proc_nreset

               RSTTYP                    Any      XXX                                              0x5  =  Brownout  Reset

          periph_nreset

               NRST

               (nrst_out)

                                                                           EXTERNAL RESET LENGTH

                                                                               8 cycles (ERSTL=2)

13.2.4.4       Software      Reset

                             The Reset Controller offers several commands used to assert the different reset signals. These

                             commands are performed by writing the Control Register (RSTC_CR) with the following bits at

                             1:

                             • PROCRST: Writing PROCRST at 1 resets the processor and the watchdog timer.

                             • PERRST: Writing PERRST at 1 resets all the embedded peripherals, including the memory

                                    system and, in particular, the Remap Command. The Peripheral Reset is generally used for

                                    debug purposes. Except for Debug purposes, the PERRST must always be used in

                                    conjunction with a PROCRST (PERRST and PROCRST both set at 1 simultaneously).

                             • EXTRST: Writing EXTRST at 1 asserts low the NRST pin during a time defined by the field

                                    ERSTL in the Mode Register (RSTC_MR).

                             The software reset is entered if at least one of these bits is set by the software. All these com-

                             mands can be performed independently or simultaneously. The software reset lasts 3 Slow

                             Clock cycles.

                             The internal reset signals are asserted as soon as the register write is performed. This is

                             detected on the Master Clock (MCK). They are released when the software reset is left, i.e.; syn-

                             chronously to SLCK.

                             If EXTRST is set, the nrst_out signal is asserted depending on the programming of the field

                             ERSTL. However, the resulting falling edge on NRST does not lead to a User Reset.

                             If and only if the PROCRST bit is set, the Reset Controller reports the software status in the field

                             RSTTYP of the Status Register (RSTC_SR). Other Software Resets are not reported in

                             RSTTYP.

60        SAM7SE512/256/32

                                                                                                                            6222H–ATARM–25-Jan-12
                                                                                               SAM7SE512/256/32

                       As soon as a software operation is detected, the bit SRCMP (Software Reset Command in

                       Progress) is set in the Status Register (RSTC_SR). It is cleared as soon as the software reset is

                       left. No other software reset can be performed while the SRCMP bit is set, and writing any value

                       in RSTC_CR has no effect.

                       Figure 13-7.  Software Reset

                                     SLCK

                                     MCK              Any

                                                      Freq.

                                     Write RSTC_CR

                                                                  Resynch.  Processor Startup

                                                                  1 cycle   = 3 cycles

                                     proc_nreset

                                     if PROCRST=1

                                     RSTTYP                  Any            XXX                                    0x3  =  Software  Reset

                                     periph_nreset

                                     if PERRST=1

                                     NRST

                                     (nrst_out)

                                     if EXTRST=1

                                                                                        EXTERNAL RESET LENGTH

                                                                                               8 cycles (ERSTL=2)

                                    SRCMP in RSTC_SR

13.2.4.5  Watchdog     Reset

                       The Watchdog Reset is entered when a watchdog fault occurs. This state lasts 3 Slow Clock

                       cycles.

                       When in Watchdog Reset, assertion of the reset signals depends on the WDRPROC bit in

                       WDT_MR:

                       • If WDRPROC is 0, the Processor Reset and the Peripheral Reset are asserted. The NRST

                       line is also asserted, depending on the programming of the field ERSTL. However, the

                       resulting low level on NRST does not result in a User Reset state.

                       • If WDRPROC = 1, only the processor reset is asserted.

                       The Watchdog Timer is reset by the proc_nreset signal. As the watchdog fault always causes a

                       processor reset if WDRSTEN is set, the Watchdog Timer is always reset after a Watchdog

                       Reset, and the Watchdog is enabled by default and with a period set to a maximum.

                       When the WDRSTEN in WDT_MR bit is reset, the watchdog fault has no impact on the reset

                       controller.

                                                                                                                                            61

6222H–ATARM–25-Jan-12
                      Figure 13-8.  Watchdog Reset

                                           SLCK

                                           MCK            Any

                                                          Freq.

                                           wd_fault

                                                                      Processor Startup

                                                                      = 3 cycles

                                    proc_nreset

                                           RSTTYP                Any  XXX                0x2 = Watchdog Reset

                                    periph_nreset

                         Only if

                      WDRPROC = 0          NRST

                                           (nrst_out)

                                                                                  EXTERNAL RESET LENGTH

                                                                                         8 cycles (ERSTL=2)

13.2.5  Reset  State  Priorities

                      The Reset State Manager manages the following priorities between the different reset     sources,

                      given in descending order:

                      • Power-up Reset

                      • Brownout Reset

                      • Watchdog Reset

                      • Software Reset

                      • User Reset

                      Particular cases are listed below:

                      •  When in User Reset:

                         – A watchdog event is impossible because the Watchdog Timer is being reset by         the

                                  proc_nreset signal.

                         – A software reset is impossible, since the processor reset is being activated.

                      •  When in Software Reset:

                         – A watchdog event has priority over the current state.

                         – The NRST has no effect.

                      •  When in Watchdog Reset:

                         – The processor reset is active and so a Software Reset cannot be programmed.

                         – A User Reset cannot be entered.

13.2.6  Reset  Controller Status Register

                      The Reset Controller status register (RSTC_SR) provides several status fields:

62      SAM7SE512/256/32

                                                                                                             6222H–ATARM–25-Jan-12
                                                                                    SAM7SE512/256/32

                                 •  RSTTYP field: This field gives the type of the last reset, as explained in previous sections.

                                 •  SRCMP bit: This field indicates that a Software Reset Command is in progress and that no

                                    further software reset should be performed until the end of the current one. This bit is

                                    automatically cleared at the end of the current software reset.

                                 •  NRSTL bit: The NRSTL bit of the Status Register gives the level of the NRST pin sampled on

                                    each MCK rising edge.

                                 •  URSTS bit: A high-to-low transition of the NRST pin sets the URSTS bit of the RSTC_SR

                                    register. This transition is also detected on the Master Clock (MCK) rising edge (see Figure

                                    13-9). If the User Reset is disabled (URSTEN = 0) and if the interruption is enabled by the

                                    URSTIEN bit in the RSTC_MR register, the URSTS bit triggers an interrupt. Reading the

                                    RSTC_SR status register resets the URSTS bit and clears the interrupt.

                                 •  BODSTS bit: This bit indicates a brownout detection when the brownout reset is disabled

                                    (bod_rst_en = 0). It triggers an interrupt if the bit BODIEN in the RSTC_MR register enables

                                    the interrupt. Reading the RSTC_SR register resets the BODSTS bit and clears the interrupt.

Figure  13-9.  Reset Controller Status and Interrupt

                       MCK

                                                                                                     read

            Peripheral Access                                                                        RSTC_SR

                                    2 cycle                         2 cycle

                                 resynchronization               resynchronization

                       NRST

               NRSTL

               URSTS

               rstc_irq

        if  (URSTEN = 0) and

             (URSTIEN = 1)

13.3    Reset Controller (RSTC) User Interface

Table 13-1.    Reset Controller (RSTC) Register Mapping

Offset                 Register                            Name                                      Access      Reset Value

0x00                   Control Register                    RSTC_CR                                   Write-only               -

0x04                   Status Register                     RSTC_SR                  Read-only                    0x0000_0000

0x08                   Mode Register                       RSTC_MR                  Read/Write                   0x0000_0000

                                                                                                                                   63

6222H–ATARM–25-Jan-12
13.3.1      Reset Controller Control Register

Name:             RSTC_CR

Access:           Write-only

        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

        –         –           –                        –                –                  –                     –

        7         6           5                        4                3                  2                 1   0

        –         –           –                        –                EXTRST             PERRST            –   PROCRST

•  PROCRST: Processor Reset

0 = No effect.

1 = If KEY is correct, resets the processor.

•  PERRST: Peripheral Reset

0 = No effect.

1 = If KEY is correct, resets the peripherals.

•  EXTRST: External Reset

0 = No effect.

1 = If KEY is correct, asserts the NRST pin.

•  KEY: Password

Should be written at value 0xA5. Writing any    other  value  in  this  field aborts  the  write operation.

64          SAM7SE512/256/32

                                                                                                                 6222H–ATARM–25-Jan-12
                                                                                         SAM7SE512/256/32

13.3.2      Reset Controller Status Register

Name:                     RSTC_SR

Access:                   Read-only

        31             30            29              28        27                26                     25        24

        –              –               –             –               –           –                      –         –

        23             22            21              20        19                18                     17        16

        –              –               –             –               –           –                 SRCMP          NRSTL

        15             14            13              12        11                10                     9         8

        –              –               –             –               –                             RSTTYP

        7              6               5             4               3           2                      1         0

        –              –               –             –               –           –                 BODSTS         URSTS

•  URSTS: User Reset Status

0 = No high-to-low edge on NRST happened since the last read of RSTC_SR.

1 = At least one high-to-low transition of NRST has been detected since the last read of RSTC_SR.

•  BODSTS: Brownout Detection Status

0 = No brownout high-to-low transition happened since the last read of RSTC_SR.

1 = A brownout high-to-low transition has been detected since the last read of RSTC_SR.

•  RSTTYP: Reset Type

Reports the cause of the last processor reset. Reading this RSTC_SR does not reset this field.

            RSTTYP         Reset Type                Comments

   0        0          0   Power-up Reset            VDDCORE rising

   0        1          0   Watchdog Reset            Watchdog fault occurred

   0        1          1   Software Reset            Processor reset required by the software

   1        0          0   User Reset                NRST pin detected low

   1        0          1   Brownout Reset            Brownout reset occurred

•  NRSTL: NRST Pin Level

Registers the NRST Pin Level at Master Clock (MCK).

•  SRCMP: Software Reset Command in Progress

0 = No software command is being performed by the reset controller. The reset controller is ready for a software  command.

1 = A software reset command is being performed by the reset controller. The reset controller is busy.

                                                                                                                         65

6222H–ATARM–25-Jan-12
13.3.3      Reset Controller Mode Register

Name:             RSTC_MR

Access:           Read/Write

        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

        7         6              5                4                      3        2                            1         0

        –         –                               URSTIEN                –        –                            –         URSTEN

•  URSTEN: User Reset Enable

0 = The detection of a low level on the pin NRST does not generate a User Reset.

1 = The detection of a low level on the pin NRST triggers a User Reset.

•  URSTIEN: User Reset Interrupt Enable

0 = USRTS bit in RSTC_SR at 1 has no effect on rstc_irq.

1 = USRTS bit in RSTC_SR at 1 asserts rstc_irq if URSTEN = 0.

•  BODIEN: Brownout Detection Interrupt Enable

0 = BODSTS bit in RSTC_SR at 1 has no effect on rstc_irq.

1 = BODSTS bit in RSTC_SR at 1 asserts rstc_irq.

•  ERSTL: External Reset Length

This field defines the external reset length. The external reset is asserted during a time of 2(ERSTL+1) Slow     Clock  cycles. This

allows assertion duration to be programmed between 60 µs and 2 seconds.

•  KEY: Password

Should be written at value 0xA5. Writing any other value in this field aborts the write operation.

66          SAM7SE512/256/32

                                                                                                                  6222H–ATARM–25-Jan-12
                                                                                    SAM7SE512/256/32

14. Real-time Timer (RTT)

14.1  Overview

                       The Real-time Timer is built around a 32-bit counter and used to count elapsed seconds. It gen-

                       erates a periodic interrupt or/and triggers an alarm on a programmed value.

14.2  Block Diagram

Figure 14-1.  Real-time Timer

      RTT_MR           RTT_MR

      RTTRST           RTPRES

                                                                                    RTT_MR

SLCK  reload                                                                        RTTINCIEN

              16-bit

              Divider                  0                   set

                               RTT_MR             RTT_SR   RTTINC

                               RTTRST  1  0                reset

                                                                                                               rtt_int

                                          32-bit

                                       Counter       read                           RTT_MR

                                                  RTT_SR

                                                                                    ALMIEN

                               RTT_VR     CRTV             reset

                                                  RTT_SR                      ALMS

                                                           set

                                                                                                    rtt_alarm

                                                  =

                               RTT_AR     ALMV

14.3  Functional       Description

                       The Real-time Timer is used to count elapsed seconds. It is built around a 32-bit counter fed by

                       Slow Clock divided by a programmable 16-bit value. The value can be programmed in the field

                       RTPRES of the Real-time Mode Register (RTT_MR).

                       Programming RTPRES at 0x00008000 corresponds to feeding the real-time counter with a 1 Hz

                       signal (if the Slow Clock is 32.768 Hz). The 32-bit counter can count up to 232 seconds, corre-

                       sponding to more than 136 years, then roll over to 0.

                       The Real-time Timer can also be used as a free-running timer with a lower time-base. The best

                       accuracy is achieved by writing RTPRES to 3. Programming RTPRES to 1 or 2 is possible, but

                       may result in losing status events because the status register is cleared two Slow Clock cycles

                       after read. Thus if the RTT is configured to trigger an interrupt, the interrupt occurs during 2 Slow

                       Clock cycles after reading RTT_SR. To prevent several executions of the interrupt handler, the

                       interrupt must be disabled in the interrupt handler and re-enabled when the status register is

                       clear.

                                                                                                                              67

6222H–ATARM–25-Jan-12
    The Real-time Timer value (CRTV) can be read at any time in the register RTT_VR (Real-time

    Value Register). As this value can be updated asynchronously from the Master Clock, it is advis-

    able to read this register twice at the same value to improve accuracy of the returned value.

    The current value of the counter is compared with the value written in the alarm register

    RTT_AR (Real-time Alarm Register). If the counter value matches the alarm, the bit ALMS in

    RTT_SR is set. The alarm register is set to its maximum value, corresponding to 0xFFFF_FFFF,

    after a reset.

    The bit RTTINC in RTT_SR is set each time the Real-time Timer counter is incremented. This bit

    can be used to start a periodic interrupt, the period being one second when the RTPRES is pro-

    grammed with 0x8000 and Slow Clock equal to 32.768 Hz.

    Reading the RTT_SR status register resets the RTTINC and ALMS fields.

    Writing the bit RTTRST in RTT_MR immediately reloads and restarts the clock divider with the

    new programmed value. This also resets the 32-bit counter.

    Note:   Because of the asynchronism between the Slow Clock (SCLK) and the System Clock (MCK):

            1) The restart of the counter and the reset of the RTT_VR current value register is effective only 2

            slow clock cycles after the write of the RTTRST bit in the RTT_MR register.

            2) The status register flags reset is taken into account only 2 slow clock cycles after the read of the

            RTT_SR (Status Register).

    Figure  14-2.   RTT    Counting

                                            APB cycle                                    APB cycle

                    MCK

            RTPRES - 1

            Prescaler

                    0

                    RTT    0           ...  ALMV-1     ALMV     ALMV+1       ALMV+2      ALMV+3

    RTTINC (RTT_SR)

    ALMS (RTT_SR)

            APB Interface

                                                                read RTT_SR

68  SAM7SE512/256/32

                                                                                         6222H–ATARM–25-Jan-12
                                                             SAM7SE512/256/32

14.4    Real-time Timer (RTT) User Interface

Table 14-1.  Real-time Timer (RTT) Register Mapping

Offset                 Register                      Name    Access      Reset Value

0x00                   Mode Register                 RTT_MR  Read/Write  0x0000_8000

0x04                   Alarm Register                RTT_AR  Read/Write  0xFFFF_FFFF

0x08                   Value Register                RTT_VR  Read-only   0x0000_0000

0x0C                   Status Register               RTT_SR  Read-only   0x0000_0000

                                                                                      69

6222H–ATARM–25-Jan-12
14.4.1      Real-time Timer Mode Register

Name:       RTT_MR

Access:     Read/Write

        31  30                      29            28               27  26      25                               24

        –   –                       –                   –          –   –       –                                –

        23  22                      21            20               19  18      17                               16

        –   –                       –                   –          –   RTTRST  RTTINCIEN                        ALMIEN

        15  14                      13            12               11  10      9                                8

                                                           RTPRES

        7   6                       5                   4          3   2       1                                0

                                                           RTPRES

•  RTPRES: Real-time Timer Prescaler Value

Defines the number of SLCK periods required to increment the real-time timer. RTPRES is defined as follows:

RTPRES = 0: The Prescaler Period is equal to 216

RTPRES …0: The Prescaler Period is equal to RTPRES.

•  ALMIEN: Alarm Interrupt Enable

0 = The bit ALMS in RTT_SR has no effect on interrupt.

1 = The bit ALMS in RTT_SR asserts interrupt.

•  RTTINCIEN: Real-time Timer Increment Interrupt Enable

0 = The bit RTTINC in RTT_SR has no effect on interrupt.

1 = The bit RTTINC in RTT_SR asserts interrupt.

•  RTTRST: Real-time Timer Restart

1 = Reloads and restarts the clock divider with the new programmed value. This also resets the 32-bit counter.

70          SAM7SE512/256/32

                                                                                   6222H–ATARM–25-Jan-12
                                                                              SAM7SE512/256/32

14.4.2      Real-time Timer Alarm Register

Name:                  RTT_AR

Access:                Read/Write

        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

        7              6           5               4              3       2   1   0

                                                       ALMV

•  ALMV: Alarm Value

Defines the alarm value (ALMV+1) compared with     the Real-time  Timer.

14.4.3      Real-time Timer Value Register

Name:                  RTT_VR

Access:                Read-only

        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

        7              6           5               4              3       2   1   0

                                                       CRTV

•  CRTV: Current Real-time Value

Returns the current value of the Real-time Timer.

                                                                                      71

6222H–ATARM–25-Jan-12
14.4.4      Real-time Timer Status Register

Name:       RTT_SR

Access:     Read-only

        31  30                   29          28                  27                  26  25      24

        –   –                    –           –                   –                   –   –       –

        23  22                   21          20                  19                  18  17      16

        –   –                    –           –                   –                   –   –       –

        15  14                   13          12                  11                  10  9       8

        –   –                    –           –                   –                   –   –       –

        7   6                    5           4                   3                   2   1       0

        –   –                    –           –                   –                   –   RTTINC  ALMS

•  ALMS: Real-time Alarm Status

0 = The Real-time Alarm has not occurred since the last read of RTT_SR.

1 = The Real-time Alarm occurred since the last read of RTT_SR.

•  RTTINC: Real-time Timer Increment

0 = The Real-time Timer has not been incremented since the last read of the RTT_SR.

1 = The Real-time Timer has been incremented since the last read of the RTT_SR.

72          SAM7SE512/256/32

                                                                                                 6222H–ATARM–25-Jan-12
                                                                                   SAM7SE512/256/32

15. Watchdog Timer (WDT)

15.1  Overview

                       The Watchdog Timer can be used to prevent system lock-up if the software becomes trapped in

                       a deadlock. It features a 12-bit down counter that allows a watchdog period of up to 16 seconds

                       (slow clock at 32.768 kHz). It can generate a general reset or a processor reset only. In addition,

                       it can be stopped while the processor is in debug mode or idle mode.

15.2  Block Diagram

Figure 15-1.  Watchdog Timer Block Diagram

                       write WDT_MR

                                                            WDT_MR

              WDT_CR                                        WDV

              WDRSTT                                reload

                                                            1         0

                                                            12-bit Down

                                                            Counter

                                     WDT_MR                                reload

                                     WDD                    Current        1/128   SLCK

                                                               Value

                                     <= WDD

                                                                                   WDT_MR

                                                                                   WDRSTEN

                                                                 =0

                                                                                             wdt_fault

                                                                    set                      (to Reset Controller)

                                                            WDUNF                            wdt_int

                                             set                    reset

                                     WDERR

              read WDT_SR                    reset                                 WDFIEN

              or                                                                   WDT_MR

              reset

                                                                                                                            73

6222H–ATARM–25-Jan-12
15.3  Functional  Description

                  The Watchdog Timer can be used to prevent system lock-up if the software becomes trapped in

                  a deadlock. It is supplied with VDDCORE. It restarts with initial values on processor reset.

                  The Watchdog is built around a 12-bit down counter, which is loaded with the value defined in

                  the field WDV of the Mode Register (WDT_MR). The Watchdog Timer uses the Slow Clock

                  divided by 128 to establish the maximum Watchdog period to be 16 seconds (with a typical Slow

                  Clock of 32.768 kHz).

                  After a Processor Reset, the value of WDV is 0xFFF, corresponding to the maximum value of

                  the counter with the external reset generation enabled (field WDRSTEN at 1 after a Backup

                  Reset). This means that a default Watchdog is running at reset, i.e., at power-up. The user must

                  either disable it (by setting the WDDIS bit in WDT_MR) if he does not expect to use it or must

                  reprogram it to meet the maximum Watchdog period the application requires.

                  The Watchdog Mode Register (WDT_MR) can be written only once. Only a processor reset

                  resets it. Writing the WDT_MR register reloads the timer with the newly programmed mode

                  parameters.

                  In normal operation, the user reloads the Watchdog at regular intervals before the timer under-

                  flow occurs, by writing the Control Register (WDT_CR) with the bit WDRSTT to 1. The

                  Watchdog counter is then immediately reloaded from WDT_MR and restarted, and the Slow

                  Clock 128 divider is reset and restarted. The WDT_CR register is write-protected. As a result,

                  writing WDT_CR without the correct hard-coded key has no effect. If an underflow does occur,

                  the “wdt_fault” signal to the Reset Controller is asserted if the bit WDRSTEN is set in the Mode

                  Register (WDT_MR). Moreover, the bit WDUNF is set in the Watchdog Status Register

                  (WDT_SR).

                  To prevent a software deadlock that continuously triggers the Watchdog, the reload of the

                  Watchdog must occur while the Watchdog counter is within a window between 0 and WDD,

                  WDD is defined in the WatchDog Mode Register WDT_MR.

                  Any attempt to restart the Watchdog while the Watchdog counter is between WDV and WDD

                  results in a Watchdog error, even if the Watchdog is disabled. The bit WDERR is updated in the

                  WDT_SR and the “wdt_fault” signal to the Reset Controller is asserted.

                  Note that this feature can be disabled by programming a WDD value greater than or equal to the

                  WDV value. In such a configuration, restarting the Watchdog Timer is permitted in the whole

                  range [0; WDV] and does not generate an error. This is the default configuration on reset (the

                  WDD and WDV values are equal).

                  The status bits WDUNF (Watchdog Underflow) and WDERR (Watchdog Error) trigger an inter-

                  rupt, provided the bit WDFIEN is set in the mode register. The signal “wdt_fault” to the reset

                  controller causes a Watchdog reset if the WDRSTEN bit is set as already explained in the reset

                  controller programmer Datasheet. In that case, the processor and the Watchdog Timer are

                  reset, and the WDERR and WDUNF flags are reset.

                  If a reset is generated or if WDT_SR is read, the status bits are reset, the interrupt is cleared,

                  and the “wdt_fault” signal to the reset controller is deasserted.

                  Writing the WDT_MR reloads and restarts the down counter.

                  While the processor is in debug state or in idle mode, the counter may be stopped depending on

                  the value programmed for the bits WDIDLEHLT and WDDBGHLT in the WDT_MR.

74    SAM7SE512/256/32

                                                                                              6222H–ATARM–25-Jan-12
                                                                     SAM7SE512/256/32

Figure 15-2.  Watchdog  Behavior

                                                    Watchdog  Error  Watchdog Underflow

                                                                     if WDRSTEN is 1

FFF

                        Normal behavior                              if WDRSTEN is 0

WDV

Forbidden

Window

WDD

Permitted

Window

        0

                                         WDT_CR  =  WDRSTT

              Watchdog

              Fault

                                                                                         75

6222H–ATARM–25-Jan-12
15.4    Watchdog Timer (WDT) User Interface

Table 15-1.    Watchdog Timer (WDT) Register Mapping

      Offset      Register                                          Name                        Access            Reset Value

        0x00      Control Register                                  WDT_CR                      Write-only        -

        0x04      Mode Register                                     WDT_MR                  Read/Write Once       0x3FFF_2FFF

        0x08      Status Register                                   WDT_SR                      Read-only         0x0000_0000

15.4.1        Watchdog Timer Control Register

Name:             WDT_CR

Access:              Write-only

        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

        –         –                 –                    –                –                 –                 –      –

        7         6                 5                    4                3                 2                 1      0

        –         –                 –                    –                –                 –                 –   WDRSTT

•  WDRSTT: Watchdog Restart

0: No effect.

1: Restarts the Watchdog.

•  KEY: Password

Should be written at value 0xA5.    Writing  any  other  value  in  this field aborts  the  write operation.

76          SAM7SE512/256/32

                                                                                                                  6222H–ATARM–25-Jan-12
                                                                                           SAM7SE512/256/32

15.4.2      Watchdog Timer Mode Register

Name:                  WDT_MR

Access:                   Read/Write Once

        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   WDRPROC            WDRSTEN       WDFIEN                                        WDV

        7              6           5                   4                3         2             1                    0

                                                              WDV

•   WDV: Watchdog Counter Value

Defines the value loaded in the 12-bit Watchdog Counter.

•   WDFIEN: Watchdog Fault Interrupt Enable

0:  A Watchdog fault (underflow or error) has no effect on interrupt.

1:  A Watchdog fault (underflow or error) asserts interrupt.

•   WDRSTEN: Watchdog Reset Enable

0:  A Watchdog fault (underflow or error) has no effect on the resets.

1:  A Watchdog fault (underflow or error) triggers a Watchdog reset.

•   WDRPROC: Watchdog Reset Processor

0:  If WDRSTEN is 1, a Watchdog fault (underflow or error) activates all resets.

1:  If WDRSTEN is 1, a Watchdog fault (underflow or error) activates the processor reset.

•   WDD: Watchdog Delta Value

Defines the permitted range for reloading the Watchdog Timer.

If the Watchdog Timer value is less than or equal to WDD, writing WDT_CR with WDRSTT = 1        restarts the timer.

If the Watchdog Timer value is greater than WDD, writing WDT_CR with WDRSTT = 1 causes          a Watchdog error.

•   WDDBGHLT: Watchdog Debug Halt

0: The Watchdog runs when the processor is in debug state.

1: The Watchdog stops when the processor is in debug state.

•   WDIDLEHLT: Watchdog Idle Halt

0: The Watchdog runs when the system is in idle mode.

1: The Watchdog stops when the system is in idle state.

                                                                                                                         77

6222H–ATARM–25-Jan-12
•  WDDIS: Watchdog Disable

0: Enables the Watchdog Timer.

1: Disables the Watchdog Timer.

15.4.3      Watchdog Timer Status Register

Name:       WDT_SR

Access:        Read-only

        31  30                   29         28                    27        26  25     24

        –   –                    –          –                     –         –   –      –

        23  22                   21         20                    19        18  17     16

        –   –                    –          –                     –         –   –      –

        15  14                   13         12                    11        10  9      8

        –   –                    –          –                     –         –   –      –

        7   6                    5          4                     3         2   1      0

        –   –                    –          –                     –         –   WDERR  WDUNF

•  WDUNF: Watchdog Underflow

0: No Watchdog underflow occurred since the last read of WDT_SR.

1: At least one Watchdog underflow occurred since the last read of WDT_SR.

•  WDERR: Watchdog Error

0: No Watchdog error occurred since the last read of WDT_SR.

1: At least one Watchdog error occurred since the last read of WDT_SR.

78          SAM7SE512/256/32

                                                                                       6222H–ATARM–25-Jan-12
                                                               SAM7SE512/256/32

16. Periodic Interval Timer (PIT)

16.1  Overview

                       The Periodic Interval Timer (PIT) provides the operating system’s scheduler interrupt. It is

                       designed to offer maximum accuracy and efficient management, even for systems with long

                       response time.

16.2  Block Diagram

Figure 16-1.  Periodic Interval Timer

                                          PIT_MR

                                          PIV

                                          =?                                          PIT_MR

                                                                                      PITIEN

                                                                       set

                                                    0          PIT_SR  PITS                   pit_irq

                                                                       reset

                                       0            0  1

                       0               1               12-bit

                                                       Adder

                                                                       read PIT_PIVR

      MCK              20-bit

                       Counter

              MCK/16   CPIV               PIT_PIVR  PICNT

Prescaler

                       CPIV               PIT_PIIR     PICNT

                                                                                                                     79

6222H–ATARM–25-Jan-12
16.3  Functional  Description

                  The Periodic Interval Timer aims at providing periodic interrupts for use by operating systems.

                  The PIT provides a programmable overflow counter and a reset-on-read feature. It is built

                  around two counters: a 20-bit CPIV counter and a 12-bit PICNT counter. Both counters work at

                  Master Clock /16.

                  The first 20-bit CPIV counter increments from 0 up to a programmable overflow value set in the

                  field PIV of the Mode Register (PIT_MR). When the counter CPIV reaches this value, it resets to

                  0 and increments the Periodic Interval Counter, PICNT. The status bit PITS in the Status Regis-

                  ter (PIT_SR) rises and triggers an interrupt, provided the interrupt is enabled (PITIEN in

                  PIT_MR).

                  Writing a new PIV value in PIT_MR does not reset/restart the counters.

                  When CPIV and PICNT values are obtained by reading the Periodic Interval Value Register

                  (PIT_PIVR), the overflow counter (PICNT) is reset and the PITS is cleared, thus acknowledging

                  the interrupt. The value of PICNT gives the number of periodic intervals elapsed since the last

                  read of PIT_PIVR.

                  When CPIV and PICNT values are obtained by reading the Periodic Interval Image Register

                  (PIT_PIIR), there is no effect on the counters CPIV and PICNT, nor on the bit PITS. For exam-

                  ple, a profiler can read PIT_PIIR without clearing any pending interrupt, whereas a timer

                  interrupt clears the interrupt by reading PIT_PIVR.

                  The PIT may be enabled/disabled using the PITEN bit in the PIT_MR register (disabled on

                  reset). The PITEN bit only becomes effective when the CPIV value is 0. Figure 16-2 illustrates

                  the PIT counting. After the PIT Enable bit is reset (PITEN= 0), the CPIV goes on counting until

                  the PIV value is reached, and is then reset. PIT restarts counting, only if the PITEN is set again.

                  The PIT is stopped when the core enters debug state.

80    SAM7SE512/256/32

                                                                                          6222H–ATARM–25-Jan-12
                                                                                   SAM7SE512/256/32

Figure  16-2.  Enabling/Disabling  PIT  with  PITEN

                                                                      APB cycle    APB cycle

                                                                MCK

                       15

                                                                                              restarts MCK Prescaler

        MCK Prescaler 0

               PITEN

               CPIV        0       1          PIV    -  1  PIV                  0             1

               PICNT                    0                             1            0

        PITS (PIT_SR)

        APB Interface

                                                                read  PIT_PIVR

                                                                                                                      81

6222H–ATARM–25-Jan-12
16.4    Periodic Interval Timer (PIT) User Interface

Table 16-1.  Periodic Interval Timer (PIT) Register Mapping

Offset       Register                                        Name      Access      Reset Value

0x00         Mode Register                                   PIT_MR    Read/Write  0x000F_FFFF

0x04         Status Register                                 PIT_SR    Read-only   0x0000_0000

0x08         Periodic Interval Value Register                PIT_PIVR  Read-only   0x0000_0000

0x0C         Periodic Interval Image Register                PIT_PIIR  Read-only   0x0000_0000

82      SAM7SE512/256/32

                                                                                   6222H–ATARM–25-Jan-12
                                                                                          SAM7SE512/256/32

16.4.1      Periodic Interval Timer Mode Register

Name:                  PIT_MR

Access:                Read/Write

        31             30          29                   28       27                   26       25                 24

        –              –           –                    –        –                    –        PITIEN             PITEN

        23             22          21                   20       19                   18       17                 16

        –              –           –                    –                                 PIV

        15             14          13                   12       11                   10               9          8

                                                            PIV

        7              6           5                    4        3                    2                1          0

                                                            PIV

•  PIV: Periodic Interval Value

Defines the value compared with the primary 20-bit counter of the Periodic Interval Timer (CPIV). The     period  is equal  to

(PIV + 1).

•  PITEN: Period Interval Timer Enabled

0 = The Periodic Interval Timer is disabled when the PIV value is reached.

1 = The Periodic Interval Timer is enabled.

•  PITIEN: Periodic Interval Timer Interrupt Enable

0 = The bit PITS in PIT_SR has no effect on interrupt.

1 = The bit PITS in PIT_SR asserts interrupt.

16.4.2      Periodic Interval Timer Status Register

Name:                  PIT_SR

Access:                Read-only

        31             30          29                   28       27                   26       25                 24

        –              –           –                    –        –                    –                –          –

        23             22          21                   20       19                   18       17                 16

        –              –           –                    –        –                    –                –          –

        15             14          13                   12       11                   10               9          8

        –              –           –                    –        –                    –                –          –

        7              6           5                    4        3                    2                1          0

        –              –           –                    –        –                    –                –          PITS

•  PITS: Periodic Interval Timer Status

0 = The Periodic Interval timer has not reached PIV since the last read of PIT_PIVR.

1 = The Periodic Interval timer has reached PIV since the last read of PIT_PIVR.

                                                                                                                            83

6222H–ATARM–25-Jan-12
16.4.3      Periodic Interval Timer Value Register

Name:       PIT_PIVR

Access:     Read-only

        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

        7   6                        5                     4              3              2                1   0

                                                               CPIV

Reading this register clears PITS in PIT_SR.

•  CPIV: Current Periodic Interval Value

Returns the current value of the periodic interval timer.

•  PICNT: Periodic Interval Counter

Returns the number of occurrences of periodic intervals        since the  last read  of  PIT_PIVR.

16.4.4      Periodic Interval Timer Image Register

Name:       PIT_PIIR

Access:     Read-only

        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

        7   6                        5                     4              3              2                1   0

                                                               CPIV

•  CPIV: Current Periodic Interval Value

Returns the current value of the periodic interval timer.

•  PICNT: Periodic Interval Counter

Returns the number of occurrences of periodic intervals        since the  last read  of  PIT_PIVR.

84          SAM7SE512/256/32

                                                                                                              6222H–ATARM–25-Jan-12
                                                                 SAM7SE512/256/32

17. Voltage Regulator Mode Controller (VREG)

17.1  Overview

                       The Voltage Regulator Mode Controller contains one Read/Write register, the Voltage Regulator

                       Mode Register. Its offset is 0x60 with respect to the System Controller offset.

                       This register controls the Voltage Regulator Mode. Setting PSTDBY (bit 0) puts the Voltage

                       Regulator in Standby Mode or Low-power Mode. On reset, the PSTDBY is reset, so as to wake

                       up the Voltage Regulator in Normal Mode.

                                                                                                                      85

6222H–ATARM–25-Jan-12
17.2       Voltage Regulator Power Controller (VREG) User              Interface

Table 17-1.   Voltage Regulator Power Controller Register Mapping

   Offset     Register                                    Name                        Access          Reset Value

   0x60       Voltage Regulator Mode Register             VREG_MR                     Read/Write      0x0

17.2.1        Voltage Regulator Mode Register

Name:         VREG_MR

Access:       Read/Write

         31   30                       29         28               27             26              25  24

           –  –                        –          –                –              –               –        –

         23   22                       21         20               19             18              17  16

           –  –                        –          –                –              –               –        –

         15   14                       13         12               11             10              9        8

           –  –                        –          –                –              –               –        –

           7  6                        5          4                3              2               1        0

           –  –                        –          –                –              –               –   PSTDBY

•  PSTDBY: Periodic Interval Value

0 = Voltage regulator in normal mode.

1 = Voltage regulator in standby mode (low-power  mode).

86            SAM7SE512/256/32

                                                                                                      6222H–ATARM–25-Jan-12
                                                                                          SAM7SE512/256/32

18. Memory Controller (MC)

18.1    Overview

                            The Memory Controller (MC) manages the ASB bus and controls accesses requested by the

                            masters, typically the ARM7TDMI processor and the Peripheral DMA Controller. It features a

                            simple bus arbiter, an address decoder, an abort status, a misalignment detector and an

                            Embedded Flash Controller. In addition, the MC contains a Memory Protection Unit (MPU) con-

                            sisting of 16 areas that can be protected against write and/or user accesses. Access to

                            peripherals can be protected in the same way.

18.2    Block Diagram

Figure  18-1.  Memory Controller Block  Diagram

                                        Memory        Controller

                                                      ASB

               ARM7TDMI                                                            Embedded    Internal

               Processor                                                           Flash       Flash

                            Abort                                                  Controller

                                                           Abort

                                                           Status

                                                                                               Internal

                                                                                               RAM

                                                      Misalignment              Address

                                        Bus                Detector             Decoder

                                        Arbiter

                                                           Memory                              External

                                                           Protection                          Bus

                                                           Unit                                Interface

                                                           User

                                                           Interface

               Peripheral

                       DMA                                                 APB

               Controller                                                  Bridge

                                        Peripheral 0

                                        Peripheral 1                       APB

                                                                                               From Master

                                        Peripheral N                                           to Slave

                                                                                                                         87

6222H–ATARM–25-Jan-12
18.3    Functional   Description

                     The Memory Controller handles the internal ASB bus and arbitrates the accesses of                  both

                     masters.

                     It is made up of:

                     • A bus arbiter

                     • An address decoder

                     • An abort status

                     • A misalignment detector

                     • A memory protection unit

                     • An Embedded Flash Controller

                     The MC handles only little-endian mode accesses. The masters work in little-endian mode       only.

18.3.1  Bus Arbiter

                     The Memory Controller has a simple, hard-wired priority bus arbiter that gives the control of the

                     bus to one of the two masters. The Peripheral Data Controller has the highest priority; the ARM

                     processor has the lowest one.

18.3.2  Address Decoder

                     The Memory Controller features an Address Decoder that first decodes the four highest bits of

                     the 32-bit address bus and defines 11 separate areas:

                     • One 256-Mbyte address space for the internal memories

                     • Eight 256-Mbyte address spaces, each assigned to one of the eight chip select lines of the

                         External Bus Interface

                     • One 256-Mbyte address space reserved for the embedded peripherals

                     • An undefined address space of 1536M bytes that returns an Abort if accessed

88      SAM7SE512/256/32

                                                                                          6222H–ATARM–25-Jan-12
                                                                     SAM7SE512/256/32

18.4    External       Memory Areas

                       Figure 18-2 shows the assignment of the 256-Mbyte memory areas.

                       Figure 18-2.    External Memory  Areas

                                                        0x0000 0000

                                       256M Bytes                    Internal Memories

                                                        0x0FFF FFFF

                                                        0x1000 0000

                                       256M Bytes                    Chip Select 0

                                                        0x1FFF FFFF

                                                        0x2000 0000

                                       256M Bytes                    Chip Select 1

                                                        0x2FFF FFFF

                                                        0x3000 0000

                                       256M Bytes                    Chip Select 2

                                                        0x3FFF FFFF

                                                        0x4000 0000                     EBI

                                       256M Bytes                    Chip Select 3      External

                                                        0x4FFF FFFF                     Bus

                                                        0x5000 0000                     Interface

                                       256M Bytes                    Chip Select 4

                                                        0x5FFF FFFF

                                                        0x6000 0000

                                       256M Bytes                    Chip Select 5

                                                        0x6FFF FFFF

                                                        0x7000 0000

                                       256M Bytes                    Chip Select 6

                                                        0x7FFF FFFF

                                                        0x8000 0000

                                       256M Bytes                    Chip Select 7

                                                        0x8FFF FFFF

                                                        0x9000 0000

                                       6 x 256M Bytes                Undefined

                                       1,536 bytes                   (Abort)

                                                        0xEFFF FFFF

                                                        0xF000 0000

                                       256M Bytes                    Peripherals

                                                        0xFFFF FFFF

18.4.1  Internal       Memory Mapping

                       Within the Internal Memory address space, the Address Decoder of the Memory Controller

                       decodes eight more address bits to allocate 1-Mbyte address spaces for the embedded

                       memories.

                       The allocated memories are accessed all along the 1-Mbyte address space and so are repeated

                       n times within this address space, n equaling 1M bytes divided by the size of the memory.

                       When the address of the access is undefined within the internal memory area, the Address

                       Decoder returns an Abort to the master.

                                                                                                                    89

6222H–ATARM–25-Jan-12
                  Figure    18-3.  Internal  Memory Mapping

                                             0x0000 0000  Internal Memory Area 0

                                                                                          1 M Bytes

                                             0x000F FFFF

                                             0x0010 0000

                                                          Internal Memory Area 1          1 M Bytes

                                             0x001F FFFF        Internal Flash

                                             0x0020 0000

                              256M Bytes                  Internal Memory Area 2          1 M Bytes

                                             0x002F FFFF        Internal SRAM

                                             0x0030 0000

                                                          Internal Memory Area 3          1 M Bytes

                                             0x003F FFFF        Internal ROM

                                             0x0040 0000

                                                             Undefined Areas              252 M Bytes

                                                                (Abort)

                                             0x0FFF FFFF

18.4.2  Internal  Memory

        Area 0

                  The first 32 bytes of Internal Memory Area 0 contain the ARM processor exception vectors, in

                  particular, the Reset Vector at address 0x0.

                  Before execution of the remap command, the internal ROM or the on-chip Flash is mapped into

                  Internal Memory Area 0, so that the ARM7TDMI reaches an executable instruction contained in

                  Flash. A general purpose bit (GPNVM Bit 2) is used to boot either on the ROM (default) or from

                  the Flash.

                  Setting the GPNVM Bit 2 selects the boot from the Flash, clearing it selects the boot from the

                  ROM. Asserting ERASE clears the GPNVM Bit 2 and thus selects the boot from the ROM by

                  default.

                  After the remap command, the internal SRAM at address 0x0020 0000 is mapped into Internal

                  Memory Area 0. The memory mapped into Internal Memory Area 0 is accessible in both its orig-

                  inal location and at address 0x0.

18.4.3  Remap Command

                  After execution, the Remap Command causes the Internal SRAM to be accessed through the

                  Internal Memory Area 0.

                  As the ARM vectors (Reset, Abort, Data Abort, Prefetch Abort, Undefined Instruction, Interrupt,

                  and Fast Interrupt) are mapped from address 0x0 to address 0x20, the Remap Command allows

                  the user to redefine dynamically these vectors under software control.

                  The Remap Command is accessible through the Memory Controller User Interface by writing the

                  MC_RCR (Remap Control Register) RCB field to one.

                  The Remap Command can be cancelled by writing the MC_RCR RCB field to one, which acts as

                  a toggling command. This allows easy debug of the user-defined boot sequence by offering a

                  simple way to put the chip in the same configuration as after a reset.

90      SAM7SE512/256/32

                                                                                          6222H–ATARM–25-Jan-12
                                                                                  SAM7SE512/256/32

18.4.4  Abort Status

                       There are three reasons for an abort to occur:

                       • access to an undefined address

                       • access to a protected area without the permitted state

                       • an access to a misaligned address.

                       When an abort occurs, a signal is sent back to all the masters, regardless of which one has gen-

                       erated the access. However, only the ARM7TDMI can take an abort signal into account, and

                       only under the condition that it was generating an access. The Peripheral Data Controller does

                       not handle the abort input signal. Note that the connection is not represented in Figure 18-1.

                       To facilitate debug or for fault analysis by an operating system, the Memory Controller integrates

                       an Abort Status register set.

                       The full 32-bit wide abort address is saved in MC_AASR. Parameters of the access are saved in

                       MC_ASR and include:

                       • the size of the request (field ABTSZ)

                       • the type of the access, whether it is a data read or write, or a code fetch (field ABTTYP)

                       • whether the access is due to accessing an undefined address (bit UNDADD), a misaligned

                       address (bit MISADD) or a protection violation (bit MPU)

                       • the source of the access leading to the last abort (bits MST0 and MST1)

                       • whether or not an abort occurred for each master since the last read of the register (bit

                       SVMST0 and SVMST1) unless this information is loaded in MST bits

                       In the case of a Data Abort from the processor, the address of the data access is stored. This is

                       useful, as searching for which address generated the abort would require disassembling the

                       instructions and full knowledge of the processor context.

                       In the case of a Prefetch Abort, the address may have changed, as the prefetch abort is pipe-

                       lined in the ARM processor. The ARM processor takes the prefetch abort into account only if the

                       read instruction is executed and it is probable that several aborts have occurred during this time.

                       Thus, in this case, it is preferable to use the content of the Abort Link register of the ARM

                       processor.

18.4.5  Memory         Protection Unit

                       The Memory Protection Unit allows definition of up to 16 memory spaces within the internal

                       memories. Note that the external memories can not be protected.

                       After reset, the Memory Protection Unit is disabled. Enabling it requires writing the Protection

                       Unit Enable Register (MC_PUER) with the PUEB at 1.

                       Programming of the 16 memory spaces is done in the registers MC_PUIA0 to MC_PUIA15.

                       The size of each of the memory spaces is programmable by a power of 2 between 1K bytes and

                       4M bytes. The base address is also programmable on a number of bits according to the size.

                       The Memory Protection Unit also allows the protection of the peripherals by programming the

                       Protection Unit Peripheral Register (MC_PUP) with the field PROT at the appropriate value.

                       The peripheral address space and each internal memory area can be protected against write

                       and non-privileged access of one of the masters. When one of the masters performs a forbidden

                       access, an Abort is generated and the Abort Status traces what has happened.

                                                                                                                            91

6222H–ATARM–25-Jan-12
                      There is no priority in the protection of the memory spaces. In case of overlap between several

                      memory spaces, the strongest protection is taken into account. If an access is performed to an

                      address which is not contained in any of the 16 memory spaces, the Memory Protection Unit

                      generates an abort.

                      The reset value of MC_PUIAx registers is 0, which blocks all access to the first 1K of memory

                      starting at address 0, which prevents the core from reading exception vectors. Therefore, all

                      regions must be programmed to allow read/write access on the first 4M Bytes of the

                      memory range during MPU initialization.

18.4.6  Embedded Flash Controller

                      The Embedded Flash Controller is added to the Memory Controller and ensures the interface of

                      the flash block with the 32-bit internal bus. It allows an increase of performance in Thumb Mode

                      for Code Fetch with its system of 32-bit buffers. It also manages with the programming, erasing,

                      locking and unlocking sequences thanks to a full set of commands.

18.4.7  Misalignment  Detector

                      The Memory Controller features a Misalignment Detector that checks the consistency of the

                      accesses.

                      For each access, regardless of the master, the size of the access and the bits 0 and 1 of the

                      address bus are checked. If the type of access is a word (32-bit) and the bits 0 and 1 are not 0,

                      or if the type of the access is a half-word (16-bit) and the bit 0 is not 0, an abort is returned to the

                      master and the access is cancelled. Note that the accesses of the ARM processor when it is

                      fetching instructions are not checked.

                      The misalignments are generally due to software bugs leading to wrong pointer handling. These

                      bugs are particularly difficult to detect in the debug phase.

                      As the requested address is saved in the Abort Status Register and the address of the instruc-

                      tion generating the misalignment is saved in the Abort Link Register of the processor, detection

                      and fix of this kind of software bugs is simplified.

92      SAM7SE512/256/32

                                                                                         6222H–ATARM–25-Jan-12
                                                               SAM7SE512/256/32

18.5    Memory Controller (MC) User Interface

Base Address: 0xFFFFFF00

Table 18-1.  Memory Controller (MC) Memory Mapping

Offset       Register                               Name       Access                     Reset State

0x00         MC Remap Control Register              MC_RCR     Write-only

0x04         MC Abort Status Register               MC_ASR     Read-only                  0x0

0x08         MC Abort Address Status Register       MC_AASR    Read-only                  0x0

0x0C         Reserved

0x10         MC Protection Unit Area 0              MC_PUIA0   Read/Write                 0x0

0x14         MC Protection Unit Area 1              MC_PUIA1   Read/Write                 0x0

0x18         MC Protection Unit Area 2              MC_PUIA2   Read/Write                 0x0

0x1C         MC Protection Unit Area 3              MC_PUIA3   Read/Write                 0x0

0x20         MC Protection Unit Area 4              MC_PUIA4   Read/Write                 0x0

0x24         MC Protection Unit Area 5              MC_PUIA5   Read/Write                 0x0

0x28         MC Protection Unit Area 6              MC_PUIA6   Read/Write                 0x0

0x2C         MC Protection Unit Area 7              MC_PUIA7   Read/Write                 0x0

0x30         MC Protection Unit Area 8              MC_PUIA8   Read/Write                 0x0

0x34         MC Protection Unit Area 9              MC_PUIA9   Read/Write                 0x0

0x38         MC Protection Unit Area 10             MC_PUIA10  Read/Write                 0x0

0x3C         MC Protection Unit Area 11             MC_PUIA11  Read/Write                 0x0

0x40         MC Protection Unit Area 12             MC_PUIA12  Read/Write                 0x0

0x44         MC Protection Unit Area 13             MC_PUIA13  Read/Write                 0x0

0x48         MC Protection Unit Area 14             MC_PUIA14  Read/Write                 0x0

0x4C         MC Protection Unit Area 15             MC_PUIA15  Read/Write                 0x0

0x50         MC Protection Unit Peripherals         MC_PUP     Read/Write                 0x0

0x54         MC Protection Unit Enable Register     MC_PUER    Read/Write                 0x0

0x60         EFC0 Configuration Registers                      See EFC0 User Interface

0x70         EFC1 Configuration Registers                      See EFC1 User Interface

0x80         External bus Interface Registers                  See EBI User Interface

0x90         SMC Configuration Registers                       See SMC User Interface

0xB0         SDRAMC Configuration Registers                    See SDRAMC User Interface

0xDC         ECC Configuration Registers                       See ECC User Interface

                                                                                                       93

6222H–ATARM–25-Jan-12
18.5.1      MC Remap Control Register

Name:                 MC_RCR

Access:               Write-only

Absolute    Address:  0xFFFF FF00

        31            30           29                 28  27                          26             25                  24

        –             –            –                  –   –                           –              –                   –

        23            22           21                 20  19                          18             17                  16

        –             –            –                  –   –                           –              –                   –

        15            14           13                 12  11                          10             9                   8

        –             –            –                  –   –                           –              –                   –

        7             6            5                  4   3                           2              1                   0

        –             –            –                  –   –                           –              –                   RCB

•  RCB: Remap Command Bit

0: No effect.

1: This Command Bit acts on a toggle basis:  writing  a1  alternatively cancels  and  restores  the  remapping  of  the  page  zero

memory devices.

94          SAM7SE512/256/32

                                                                                                         6222H–ATARM–25-Jan-12
                                                                                           SAM7SE512/256/32

18.5.2      MC Abort   Status Register

Name:                  MC_ASR

Access:                Read-only

Reset Value:           0x0

Absolute Address:      0xFFFF FF04

        31             30               29   28                        27              26   25             24

        –              –                –          –                   –               –    SVMST1         SVMST0

        23             22               21   20                        19              18   17             16

        –              –                –          –                   –               –    MST1           MST0

        15             14               13   12                        11              10   9              8

        –              –                –          –                       ABTTYP                   ABTSZ

        7              6                5          4                   3               2    1              0

        –              –                –          –                   –               MPU  MISADD         UNDADD

•  UNDADD: Undefined Address Abort Status

0: The last abort was not due to the access of an undefined address in the address space.

1: The last abort was due to the access of an undefined address in the address space.

•  MISADD: Misaligned Address Abort Status

0: The last aborted access was not due to an address misalignment.

1: The last aborted access was due to an address misalignment.

•  MPU: Memory Protection Unit Abort Status

0: The last aborted access was not due to the Memory Protection Unit.

1: The last aborted access was due to the Memory Protection Unit.

•  ABTSZ: Abort Size Status

               ABTSZ                        Abort Size

            0                0               Byte

            0                1               Half-word

            1                0               Word

            1                1               Reserved

•  ABTTYP: Abort Type Status

               ABTTYP                       Abort Type

            0                0              Data Read

            0                1              Data Write

            1                0              Code Fetch

            1                1               Reserved

                                                                                                                   95

6222H–ATARM–25-Jan-12
•  MST0: PDC Abort Source

0: The last aborted access was not due to the PDC.

1: The last aborted access was due to the PDC.

•  MST1: ARM7TDMI Abort Source

0: The last aborted access was not due to the ARM7TDMI.

1: The last aborted access was due to the ARM7TDMI.

•  SVMST0: Saved PDC Abort Source

0: No abort due to the PDC occurred.

1: At least one abort due to the PDC occurred.

•  SVMST1: Saved ARM7TDMI Abort Source

0: No abort due to the ARM7TDMI occurred.

1: At least one abort due to the ARM7TDMI occurred.

96  SAM7SE512/256/32

                                                         6222H–ATARM–25-Jan-12
                                                                              SAM7SE512/256/32

18.5.3      MC Abort   Address Status Register

Name:                  MC_AASR

Access:                Read-only

Reset Value:           0x0

Absolute Address:      0xFFFF FF08

        31             30           29               28               27  26  25  24

                                                              ABTADD

        23             22           21               20               19  18  17  16

                                                              ABTADD

        15             14           13               12               11  10  9   8

                                                              ABTADD

        7              6            5                4                3   2   1   0

                                                              ABTADD

•  ABTADD: Abort Address

This field contains the address of the last aborted  access.

                                                                                      97

6222H–ATARM–25-Jan-12
18.5.4      MC Protection Unit Area 0 to 15 Registers

Name:                      MC_PUIA0 - MC_PUIA15

Access:                    Read/Write

Reset Value:               0x0

Absolute Address:          0xFFFFFF10 - 0xFFFFFF4C

        31                 30          29                   28          27                 26                 25        24

        –                  –           –                    –           –                  –                  –         –

        23                 22          21                   20          19                 18                 17        16

        –                  –                                                  BA

        15                 14          13                   12          11                 10                 9         8

                                                   BA                                                         –         –

        7                  6           5                    4           3                  2                  1         0

                                 SIZE                                   –                  –                      PROT

•  PROT:    Protection

                                       Processor Mode

            PROT                       Privilege            User

        0                  0           No access       No access

        0                  1           Read/Write      No access

        1                  0           Read/Write      Read-only

        1                  1           Read/Write      Read/Write

•  SIZE:   Internal Area   Size

               SIZE                    Area Size       LSB of BA

    0       0           0        0     1 KB                 10

    0       0           0        1     2 KB                 11

    0       0           1        0     4 KB                 12

    0       0           1        1     8 KB                 13

    0       1           0        0     16 KB                14

    0       1           0        1     32 KB                15

    0       1           1        0     64 KB                16

    0       1           1        1     128 KB               17

    1       0           0        0     256 KB               18

    1       0           0        1     512 KB               19

    1       0           1        0     1 MB                 20

    1       0           1        1     2 MB                 21

    1       1           0        1     4 MB                 22

•  BA: Internal Area Base Address

These bits define the Base Address of the area. Note that only     the  most  significant  bits  of  BA  are  significant. The number of

significant bits are in respect with the size of the area.

98          SAM7SE512/256/32

                                                                                                                  6222H–ATARM–25-Jan-12
                                                                  SAM7SE512/256/32

18.5.5      MC Protection Unit Peripheral

Name:                  MC_PUP

Access:                Read/Write

Reset Value:           0x000000000

Absolute Address:      0xFFFFFF50

        31             30           29        28          27  26  25        24

        –              –            –               –     –   –   –         –

        23             22           21        20          19  18  17        16

        –              –            –               –     –   –   –         –

        15             14           13        12          11  10  9         8

        –              –            –               –     –   –   –         –

        7              6            5               4     3   2   1         0

        –              –            –               –     –   –       PROT

•  PROT: Protection

                                    Processor Mode

            PROT                   Privilege  User

        0              0       Read/Write     No access

        0              1       Read/Write     No access

        1              0       Read/Write     Read-only

        1              1       Read/Write     Read/Write

                                                                                99

6222H–ATARM–25-Jan-12
18.5.6      MC Protection Unit Enable Register

Name:              MC_PUER

Access:            Read/Write

Reset Value:       0x000000000

Absolute Address:  0xFFFFFF54

        31         30                29                28  27  26  25  24

        –          –                 –                 –   –   –   –   –

        23         22                21                20  19  18  17  16

        –          –                 –                 –   –   –   –   –

        15         14                13                12  11  10  9   8

        –          –                 –                 –   –   –   –   –

        7          6                 5                 4   3   2   1   0

        –          –                 –                 –   –   –   –   PUEB

•  PUEB: Protection Unit Enable Bit

0: The Memory Controller Protection Unit is disabled.

1: The Memory Controller Protection Unit is enabled.

100         SAM7SE512/256/32

                                                                       6222H–ATARM–25-Jan-12
                                                                              SAM7SE512/256/32

19. Embedded Flash Controller (EFC)

19.1    Overview

                       The Embedded Flash Controller (EFC ) is a part of the Memory Controller and ensures the inter-

                       face of the Flash block with the 32-bit internal bus. It increases performance in Thumb Mode for

                       Code Fetch with its system of 32-bit buffers. It also manages the programming, erasing, locking

                       and unlocking sequences using a full set of commands.

                       The SAM7SE512 is equipped with two EFCs, EFC0 and EFC1. EFC1 does not feature the

                       Security bit and GPNVM bits. The Security bit and GPNVM bits embedded only on EFC0 apply

                       to the two blocks in the SAM7SE512.

                       The SAM7SE256/32 is equipped with one EFC (EFC0).

19.2    Functional Description

19.2.1  Embedded       Flash Organization

                       The Embedded Flash interfaces directly to the 32-bit internal bus. It is composed of several

                       interfaces:

                       • One memory plane organized in several pages of the same size

                       • Two 32-bit read buffers used for code read optimization (see “Read Operations” on page

                       102).

                       • One write buffer that manages page programming. The write buffer size is equal to the page

                       size. This buffer is write-only and accessible all along the 1 MByte address space, so that

                       each word can be written to its final address (see “Write Operations” on page 104).

                       • Several lock bits used to protect write and erase operations on lock regions. A lock region is

                       composed of several consecutive pages, and each lock region has its associated lock bit.

                       • Several general-purpose NVM bits. Each bit controls a specific feature in the device. Refer to

                       the product definition section to get the GPNVM assignment.

                       The Embedded Flash size, the page size and the lock region organization are described in the

                       product definition section.

                                                                                                                         101

6222H–ATARM–25-Jan-12
              Figure 19-1.  Embedded Flash Memory Mapping

                                                                                Page 0

                                            Flash Memory

                            Start Address

                                            Lock Region 0      Lock Bit 0       Page (m-1)

                                            Lock Region 1      Lock Bit 1

                                            Lock Region (n-1)  Lock Bit n-1     Page ( (n-1)*m )

                                            32-bit wide

                                                                                Page (n*m-1)

19.2.2  Read  Operations

              An optimized controller manages embedded Flash reads. A system of 2 x 32-bit buffers is added

              in order to start access at following address during the second read, thus increasing perfor-

              mance when the processor is running in Thumb mode (16-bit instruction set). See Figure 19-2,

              Figure 19-3 and Figure 19-4.

              This optimization concerns only Code Fetch and not Data.

              The read operations can be performed with or without wait state. Up to 3 wait states can be pro-

              grammed in the field FWS (Flash Wait State) in the Flash Mode Register MC_FMR (see “MC

              Flash Mode Register” on page 111). Defining FWS to be 0 enables the single-cycle access of

              the embedded Flash.

              The Flash memory is accessible through 8-, 16- and 32-bit reads.

              As the Flash block size is smaller than the address space reserved for the internal memory area,

              the embedded Flash wraps around the address space and appears to be repeated within it.

102     SAM7SE512/256/32

                                                                                                  6222H–ATARM–25-Jan-12
                                                                                                            SAM7SE512/256/32

Figure 19-2.  Code Read           Optimization        in Thumb   Mode for FWS = 0

       Master Clock

ARM Request (16-bit)

       Code Fetch

                         @Byte 0  @Byte 2             @Byte 4    @Byte 6             @Byte 8     @Byte 10         @Byte 12     @Byte 14         @Byte 16

       Flash Access               Bytes 0-3           Bytes 4-7                      Bytes 8-11                   Bytes 12-15                   Bytes 16-19

       Buffer (32 bits)                               Bytes 0-3  Bytes 4-7                       Bytes 8-11                    Bytes 12-15

Data To ARM                       Bytes 0-1           Bytes 2-3  Bytes 4-5           Bytes 6-7   Bytes 8-9        Bytes 10-11  Bytes 12-13      Bytes 14-15

Note:  When FWS is equal to 0, all accesses are performed in a single-cycle access.

Figure 19-3.  Code Read Optimization in Thumb Mode for FWS = 1

                                  1 Wait State Cycle             1 Wait State Cycle           1 Wait State Cycle            1 Wait State Cycle

       Master Clock

ARM Request (16-bit)

       Code Fetch

                         @Byte 0                      @Byte 2    @Byte 4             @Byte 6     @Byte 8          @Byte 10     @Byte 12         @Byte 14

       Flash Access               Bytes 0-3                      Bytes 4-7                       Bytes 8-11                    Bytes 12-15

       Buffer (32 bits)                                          Bytes 0-3                       Bytes 4-7                     Bytes 8-11

Data To ARM                                           Bytes 0-1  Bytes 2-3           Bytes 4-5   Bytes 6-7        Bytes 8-9    Bytes 10-11      Bytes 12-13

Note:  When FWS is equal to 1, in case of sequential reads, all the accesses are performed in a single-cycle access (except for the

       first one).

                                                                                                                                                103

6222H–ATARM–25-Jan-12
Figure 19-4.  Code Read Optimization in Thumb Mode for FWS = 3

                                  3 Wait State Cycles       3 Wait State Cycles       3 Wait State Cycles         3 Wait State Cycles

        Master Clock

ARM Request (16-bit)

        Code Fetch

                         @Byte 0                       @2   @4                   @6   @8                   @10    @12

        Flash Access               Bytes 0-3                     Bytes 4-7                 Bytes 8-11                    Bytes 12-15

       Buffer (32 bits)                                          Bytes 0-3                 Bytes 4-7                        Bytes 8-11

        Data To ARM                                    0-1  2-3                  4-5  6-7                  8-9    10-11                 12-13

Note:   When FWS is equal to 2 or 3, in case of sequential reads, the first access takes FWS cycles, the second access one cycle, the

        third access FWS cycles, the fourth access one cycle, etc.

19.2.3  Write Operations

                                  The internal memory area reserved for the embedded Flash can also be written through a write-

                                  only latch buffer. Write operations take into account only the 8 lowest address bits and thus wrap

                                  around within the internal memory area address space and appear to be repeated 1024 times

                                  within it.

                                  Write operations can be prevented by programming the Memory Protection Unit of the product.

                                  Writing 8-bit and 16-bit data is not allowed and may lead to unpredictable data corruption.

                                  Write operations are performed in the number of wait states equal to the number of wait states

                                  for read operations + 1, except for FWS = 3 (see “MC Flash Mode Register” on page 111).

19.2.4  Flash            Commands

                                  The EFC     offers a command set to manage     programming the memory           flash, locking and    unlock-

                                  ing lock sectors, consecutive programming      and locking, and full Flash      erasing.

                                  Table 19-1.       Set of Commands

                                  Command                                                                  Value  Mnemonic

                                  Write page                                                               0x01   WP

                                  Set Lock Bit                                                             0x02   SLB

                                  Write Page and Lock                                                      0x03   WPL

                                  Clear Lock Bit                                                           0x04   CLB

                                  Erase all                                                                0x08   EA

                                  Set General-purpose NVM Bit                                              0x0B   SGPB

                                  Clear General-purpose NVM Bit                                            0x0D   CGPB

                                  Set Security Bit                                                         0x0F   SSB

104     SAM7SE512/256/32

                                                                                                                         6222H–ATARM–25-Jan-12
                                                         SAM7SE512/256/32

                       To run one of these commands, the field FCMD of the MC_FCR register has to be written with

                       the command number. As soon as the MC_FCR register is written, the FRDY flag is automati-

                       cally cleared. Once the current command is achieved, then the FRDY flag is automatically set. If

                       an interrupt has been enabled by setting the bit FRDY in MC_FMR, the interrupt line of the Mem-

                       ory Controller is activated.

                       All the commands are protected by the same keyword, which has to be written in the eight high-

                       est bits of the MC_FCR register.

                       Writing MC_FCR with data that does not contain the correct key and/or with an invalid command

                       has no effect on the memory plane; however, the PROGE flag is set in the MC_FSR register.

                       This flag is automatically cleared by a read access to the MC_FSR register.

                       When the current command writes or erases a page in a locked region, the command has no

                       effect on the whole memory plane; however, the LOCKE flag is set in the MC_FSR register. This

                       flag is automatically cleared by a read access to the MC_FSR register.

                                                                                                                         105

6222H–ATARM–25-Jan-12
                 Figure 19-5.  Command State Chart

                                      Read Status: MC_FSR

                                                               No

                                      Check if FRDY flag set

                                      Yes

                               Write  FCMD and PAGENB in MC_FCR

                                      Read Status: MC_FSR

                                                               No

                                      Check if FRDY flag set

                                      Yes

                                      Check if LOCKE flag set  Yes  Locking region  violation

                                      No

                                      Check if PROGE flag set  Yes  Bad keyword violation and/or Invalid command

                                      No

                                      Command Successful

                 In order to guarantee valid operations on the Flash memory, the field Flash Microsecond Cycle

                 Number (FMCN) in the Flash Mode Register MC_FMR must be correctly programmed (see “MC

                 Flash Mode Register” on page 111).

19.2.4.1  Flash  Programming

                 Several commands can be used to program the Flash.

                 The Flash technology requires that an erase must be done before programming. The entire

                 memory plane can be erased at the same time, or a page can be automatically erased by clear-

                 ing the NEBP bit in the MC_FMR register before writing the command in the MC_FCR register.

                 By setting the NEBP bit in the MC_FMR register, a page can be programmed in several steps if

                 it has been erased before (see Figure 19-6).

106       SAM7SE512/256/32

                                                                                               6222H–ATARM–25-Jan-12
                                                                                               SAM7SE512/256/32

Figure 19-6.  Example of Partial Page Programming:

                       32 bits wide                                 32 bits wide                   32 bits wide

              FF       FF  ...  FF   FF                         FF  FF       FF   FF           FF  FF  ...  FF   FF

16 words                                                                ...

              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                         CA  FE       CA   FE           CA  FE       CA   FE

16 words                                                                ...                            ...

              FF       FF       FF   FF                         CA  FE       CA   FE           CA  FE       CA   FE

              FF       FF       FF   FF                         CA  FE       CA   FE           CA  FE       CA   FE

              FF       FF  ...  FF   FF                         FF  FF  ...  FF   FF           DE  CA       DE   CA

                                                                                                       ...

16 words      FF       FF       FF   FF                         FF  FF       FF   FF           DE  CA       DE   CA

              FF       FF       FF   FF                         FF  FF       FF   FF           DE  CA       DE   CA

              FF       FF...    FF   FF                         FF  FF       FF   FF           FF  FF  ...  FF   FF

                                                                        ...

16 words      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.                                      Step 2.                        Step 3.

              Erase All Flash            Programming of the second part of Page 7              Programming of the third part of Page 7

              Page 7 erased                                         (NEBP = 1)                     (NEBP = 1)

                                The Partial Programming mode works only with 32-bit (or higher) boundaries. It cannot be used

                                with boundaries lower than 32 bits (8 or 16-bit for example).

                                After programming, the page (the whole lock region) can be locked to prevent miscellaneous

                                write or erase sequences. The lock bit can be automatically set after page programming using

                                WPL.

                                Data to be written is stored in an internal latch buffer. The size of the latch buffer corresponds to

                                the page size. The latch buffer wraps around within the internal memory area address space

                                and appears to be repeated by the number of pages in it.

                                Note:    Writing of 8-bit and 16-bit data is not allowed and may lead to unpredictable data corruption.

                                Data is written to the latch buffer before the programming command is written to the Flash Com-

                                mand Register MC_FCR. The sequence is as follows:

                                    • Write the full page, at any page address, within the internal memory area address space

                                     using only 32-bit access.

                                    • Programming starts as soon as the page number and the programming command are written

                                     to the Flash Command Register. The FRDY bit in the Flash Programming Status Register

                                     (MC_FSR) is automatically cleared.

                                    • When programming is completed, the bit FRDY in the Flash Programming Status Register

                                     (MC_FSR) rises. If an interrupt was enabled by setting the bit FRDY in MC_FMR, the

                                     interrupt line of the Memory Controller is activated.

                                Two errors can be detected in the MC_FSR register after a programming sequence:

                                    • Programming Error: A bad keyword and/or an invalid command have been written in the

                                     MC_FCR register.

                                    • Lock Error: The page to be programmed belongs to a locked region. A command must be

                                     previously run to unlock the corresponding region.

19.2.4.2      Erase All Command

                                The entire memory can be erased if the Erase All Command (EA) in the Flash Command Regis-

                                ter MC_FCR is written.

                                                                                                                                         107

6222H–ATARM–25-Jan-12
                     Erase All operation is allowed only if there are no lock bits set. Thus, if at least one lock region is

                     locked, the bit LOCKE in MC_FSR rises and the command is cancelled. If the bit LOCKE has

                     been written at 1 in MC_FMR, the interrupt line rises.

                     When programming is complete, the bit FRDY bit in the Flash Programming Status Register

                     (MC_FSR) rises. If an interrupt has been enabled by setting the bit FRDY in MC_FMR, the inter-

                     rupt line of the Memory Controller is activated.

                     Two errors can be detected in the MC_FSR register after a programming sequence:

                     • Programming Error: A bad keyword and/or an invalid command have been written in the

                     MC_FCR register.

                     • Lock Error: At least one lock region to be erased is protected. The erase command has been

                     refused and no page has been erased. A Clear Lock Bit command must be executed

                     previously to unlock the corresponding lock regions.

19.2.4.3  Lock  Bit  Protection

                     Lock bits are associated with several pages in the embedded Flash memory plane. This defines

                     lock regions in the embedded Flash memory plane. They prevent writing/erasing protected

                     pages.

                     After production, the device may have some embedded Flash lock regions locked. These locked

                     regions are reserved for a default application. Refer to the product definition section for the

                     default embedded Flash mapping. Locked sectors can be unlocked to be erased and then pro-

                     grammed with another application or other data.

                     The lock sequence is:

                     • The Flash Command register must be written with the following value:

                     (0x5A << 24) | (lockPageNumber << 8 & PAGEN) | SLB

                     lockPageNumber is a page of the corresponding lock region.

                     • When locking completes, the bit FRDY in the Flash Programming Status Register (MC_FSR)

                     rises. If an interrupt has been enabled by setting the bit FRDY in MC_FMR, the interrupt line

                     of the Memory Controller is activated.

                     A programming error, where a bad keyword and/or an invalid command have been written in the

                     MC_FCR register, may be detected in the MC_FSR register after a programming sequence.

                     It is possible to clear lock bits that were set previously. Then the locked region can be erased or

                     programmed. The unlock sequence is:

                     • The Flash Command register must be written with the following value:

                     (0x5A << 24) | (lockPageNumber << 8 & PAGEN) | CLB

                     lockPageNumber is a page of the corresponding lock region.

                     • When the unlock completes, the bit FRDY in the Flash Programming Status Register

                     (MC_FSR) rises. If an interrupt has been enabled by setting the bit FRDY in MC_FMR, the

                     interrupt line of the Memory Controller is activated.

                     A programming error, where a bad keyword and/or an invalid command have been written in the

                     MC_FCR register, may be detected in the MC_FSR register after a programming sequence.

                     The Unlock command programs the lock bit to 1; the corresponding bit LOCKSx in MC_FSR

                     reads 0. The Lock command programs the lock bit to 0; the corresponding bit LOCKSx in

                     MC_FSR reads 1.

                     Note:       Access to the Flash in Read Mode is permitted when a Lock or Unlock command is performed.

108       SAM7SE512/256/32

                                                                                             6222H–ATARM–25-Jan-12
                                                                                 SAM7SE512/256/32

19.2.4.4  General-purpose NVM Bits

                        General-purpose NVM bits do not interfere with the embedded Flash memory plane. (Does not

                        apply to EFC1 on the SAM7SE512.) These general-purpose bits are dedicated to protect other

                        parts of the product. They can be set (activated) or cleared individually. Refer to the product def-

                        inition section for the general-purpose NVM bit action.

                        The activation sequence is:

                        • Start the Set General Purpose Bit command (SGPB) by writing the Flash Command Register

                        with the SEL command and the number of the general-purpose bit to be set in the PAGEN

                        field.

                        • When the bit is set, the bit FRDY in the Flash Programming Status Register (MC_FSR) rises.

                        If an interrupt has been enabled by setting the bit FRDY in MC_FMR, the interrupt line of the

                        Memory Controller is activated.

                        Two errors can be detected in the MC_FSR register after a programming sequence:

                        • Programming Error: A bad keyword and/or an invalid command have been written in the

                        MC_FCR register

                        • If the general-purpose bit number is greater than the total number of general-purpose bits,

                        then the command has no effect.

                        It is possible to deactivate a general-purpose NVM bit set previously. The clear sequence is:

                        • Start the Clear General-purpose Bit command (CGPB) by writing the Flash Command

                        Register with CGPB and the number of the general-purpose bit to be cleared in the PAGEN

                        field.

                        • When the clear completes, the bit FRDY in the Flash Programming Status Register

                        (MC_FSR) rises. If an interrupt has been enabled by setting the bit FRDY in MC_FMR, the

                        interrupt line of the Memory Controller is activated.

                        Two errors can be detected in the MC_FSR register after a programming sequence:

                        • Programming Error: a bad keyword and/or an invalid command have been written in the

                        MC_FCR register

                        • If the number of the general-purpose bit set in the PAGEN field is greater than the total

                        number of general-purpose bits, then the command has no effect.

                        The Clear General-purpose Bit command programs the general-purpose NVM bit to 0; the corre-

                        sponding bit GPNVM0 to GPNVMx in MC_FSR reads 0. The Set General-purpose Bit command

                        programs the general-purpose NVM bit to 1; the corresponding bit GPNVMx in MC_FSR

                        reads 1.

                        Note:     Access to the Flash in read mode is permitted when a Set, Clear or Get General-purpose NVM Bit

                                  command is performed.

19.2.4.5  Security Bit

                        The goal of the security bit is to prevent external access to the internal bus system. (Does not

                        apply to EFC1 on the SAM7SE512.) JTAG, Fast Flash Programming and Flash Serial Test Inter-

                        face features are disabled. Once set, this bit can be reset only by an external hardware ERASE

                        request to the chip. Refer to the product definition section for the pin name that controls the

                        ERASE. In this case, the full memory plane is erased and all lock and general-purpose NVM bits

                        are cleared. The security bit in the MC_FSR is cleared only after these operations. The activa-

                        tion sequence is:

                        • Start the Set Security Bit command (SSB) by writing the Flash Command Register.

                                                                                                                                  109

6222H–ATARM–25-Jan-12
                       • When the locking completes, the bit FRDY in the Flash Programming Status Register

                       (MC_FSR) rises. If an interrupt has been enabled by setting the bit FRDY in MC_FMR, the

                       interrupt line of the Memory Controller is activated.

                       When the security bit is active, the SECURITY bit in the MC_FSR is set.

19.3    Embedded  Flash Controller (EFC ) User Interface

                       The User Interface of the EFC  is integrated within the Memory Controller with Base Address:

                       0xFFFF FF00.

                       The SAM7SE512 is equipped with two EFCs, EFC0 and EFC1, as described in the Register

                       Mapping tables and Register descriptions that follow.

                       The SAM7SE256/32 is equipped with one EFC (EFC0).

Table 19-2.  Embedded Flash Controller (EFC0) Register Mapping

Offset       Register                                           Name          Access            Reset State

0x60         MC Flash Mode Register                             MC_FMR        Read/Write                    0x0

0x64         MC Flash Command Register                          MC_FCR        Write-only                    –

0x68         MC Flash Status Register                           MC_FSR        Read-only                     –

0x6C         Reserved                                           –             –                             –

Table 19-3.  Embedded Flash Controller (EFC1) Register Mapping

Offset       Register                                           Name          Access            Reset State

0x70         MC Flash Mode Register                             MC_FMR        Read/Write                    0x0

0x74         MC Flash Command Register                          MC_FCR        Write-only                    –

0x78         MC Flash Status Register                           MC_FSR        Read-only                     –

0x7C         Reserved                                           –             –                             –

110     SAM7SE512/256/32

                                                                                                6222H–ATARM–25-Jan-12
                                                                                   SAM7SE512/256/32

19.3.1      MC Flash Mode Register

Name:                     MC_FMR

Access:                   Read/Write

Offset: (EFC0)            0x60

Offset: (EFC1)            0x70

        31                30            29            28             27        26     25                24

        –                 –             –             –              –         –      –                 –

        23                22            21            20             19        18     17                16

                                                           FMCN

        15                14            13            12             11        10     9                 8

        –                 –             –             –              –         –          FWS

        7                 6             5             4              3         2      1                 0

   NEBP                   –             –             –              PROGE     LOCKE  –                 FRDY

•  FRDY: Flash Ready Interrupt Enable

0: Flash Ready does not generate an interrupt.

1: Flash Ready generates an interrupt.

•  LOCKE: Lock Error Interrupt Enable

0: Lock Error does not generate an interrupt.

1: Lock Error generates an interrupt.

•  PROGE: Programming Error Interrupt Enable

0: Programming Error does not generate an interrupt.

1: Programming Error generates an interrupt.

•  NEBP: No Erase Before Programming

0: A page erase is performed before programming.

1: No erase is performed before programming.

•  FWS: Flash Wait State

This field defines the number of wait states for read and  write  operations:

                       FWS                                 Read Operations            Write Operations

                       0                                   1 cycle                    2 cycles

                       1                                   2 cycles                   3 cycles

                       2                                   3 cycles                   4 cycles

                       3                                   4 cycles                   4 cycles

                                                                                                              111

6222H–ATARM–25-Jan-12
•  FMCN: Flash Microsecond Cycle Number

Before writing Non Volatile Memory bits (Lock bits, General Purpose NVM bit and Security bits), this field must be set to the

number of Master Clock cycles in one microsecond.

When writing the rest of the Flash, this field defines the number of Master Clock cycles in 1.5 microseconds. This number

must be rounded up.

Warning: The value 0 is only allowed for a master clock period superior to 30 microseconds.

Warning: In order to guarantee valid operations on the flash memory, the field Flash Microsecond Cycle Number (FMCN)

must be correctly programmed.

112  SAM7SE512/256/32

                                                                                             6222H–ATARM–25-Jan-12
                                                                                               SAM7SE512/256/32

19.3.2      MC Flash Command Register

Name:                   MC_FCR

Access:                 Write-only

Offset: (EFC0)          0x64

Offset: (EFC1)          0x74

        31              30          29                  28                 27  26                       25                    24

                                                             KEY

        23              22          21                  20                 19  18                       17                    16

        –               –               –               –                  –   –                                       PAGEN

        15              14          13                  12                 11  10                       9                       8

                                                            PAGEN

        7               6               5               4                  3   2                        1                       0

        –               –               –               –                                      FCMD

•  FCMD: Flash Command

This field defines the Flash commands:

                FCMD                Operations

                0000                No command.

                                    Does not raise the Programming Error Status flag in the Flash Status Register MC_FSR.

                0001                Write Page Command (WP):

                                    Starts the programming of the page specified in the PAGEN field.

                0010                Set Lock Bit Command (SLB):

                                    Starts a set lock bit sequence of the lock region specified in the PAGEN field.

                                    Write Page and Lock Command (WPL):

                0011                The lock sequence of the lock region associated with the page specified in the field PAGEN

                                    occurs automatically after completion of the programming sequence.

                0100                Clear Lock Bit Command (CLB):

                                    Starts a clear lock bit sequence of the lock region specified in the PAGEN field.

                                    Erase All Command (EA):

                1000                Starts the erase of the entire Flash.

                                    If at least one page is locked, the command is cancelled.

                                    Set General-purpose NVM Bit (SGPB):

                1011                Activates the general-purpose NVM bit corresponding to the number specified in the PAGEN

                                    field.

                                    Clear General Purpose NVM Bit (CGPB):

                1101                Deactivates the general-purpose NVM bit corresponding to the number specified in the

                                    PAGEN field.

                1111                Set Security Bit Command (SSB):

                                    Sets security bit.

                Others              Reserved.

                                    Raises the Programming Error Status flag in the Flash Status Register MC_FSR.

                                                                                                                                   113

6222H–ATARM–25-Jan-12
•  PAGEN: Page Number

                             Command                             PAGEN Description

   Write Page Command                                            PAGEN defines the page number to be written.

   Write Page and Lock Command                                   PAGEN defines the page number to be written and its associated

                                                                 lock region.

   Erase All Command                                             This field is meaningless

   Set/Clear Lock Bit Command                                    PAGEN defines one page number of the lock region to be locked or

                                                                 unlocked.

   Set/Clear General Purpose NVM Bit Command                     PAGEN defines the general-purpose bit number.

   Set Security Bit Command                                      This field is meaningless

Note:  Depending on the command, all the possible  unused  bits  of PAGEN are meaningless.

•  KEY: Write Protection Key

This field should be written with the value 0x5A to enable the command defined by the bits of the register. If the field is writ-

ten with a different value, the write is not performed and no action is started.

114    SAM7SE512/256/32

                                                                                                                6222H–ATARM–25-Jan-12
                                                                                     SAM7SE512/256/32

19.3.3      MC Flash Status Register

Name:                  MC_FSR

Access:                Read-only

Offset: (EFC0)         0x68

Offset: (EFC1)         0x78

        31             30             29         28              27              26               25      24

   LOCKS15             LOCKS14    LOCKS13        LOCKS12   LOCKS11               LOCKS10          LOCKS9  LOCKS8

        23             22             21         20              19              18               17      16

   LOCKS7              LOCKS6     LOCKS5         LOCKS4          LOCKS3          LOCKS2           LOCKS1  LOCKS0

        15             14             13         12              11              10               9       8

        –              –              –          –               –               GPNVM2           GPNVM1  GPNVM0

        7              6              5          4               3               2                1       0

        –              –              –          SECURITY        PROGE           LOCKE            –       FRDY

•  FRDY: Flash Ready Status

0: The EFC  is busy and the application must wait before running a new command.

1: The EFC  is ready to run a new command.

•  LOCKE: Lock Error Status

0: No programming of at least one locked lock region has happened since the last read of MC_FSR.

1: Programming of at least one locked lock region has happened since the last read of MC_FSR.

•  PROGE: Programming Error Status

0: No invalid commands and no bad keywords were written in the Flash Command Register MC_FCR.

1: An invalid command and/or a bad keyword was/were written in the Flash Command Register MC_FCR.

•  SECURITY: Security Bit Status (Does not apply to EFC1 on the  SAM7SE512.)

0: The security bit is inactive.

1: The security bit is active.

•  GPNVMx: General-purpose NVM Bit Status (Does not apply to EFC1 on the         SAM7SE512.)

0: The corresponding general-purpose NVM bit is inactive.

1: The corresponding general-purpose NVM bit is active.

•  EFC LOCKSx: Lock Region x Lock Status

0: The corresponding lock region is not locked.

1: The corresponding lock region is locked.

LOCKS 8-15 do not apply to SAM7SE32.

                                                                                                                  115

6222H–ATARM–25-Jan-12
116  SAM7SE512/256/32

                       6222H–ATARM–25-Jan-12
                                                                        SAM7SE512/256/32

20. Fast Flash         Programming Interface (FFPI)

20.1  Overview

                       The Fast Flash Programming Interface provides two solutions - parallel or serial - for high-vol-

                       ume programming using a standard gang programmer. The parallel interface is fully

                       handshaked and the device is considered to be a standard EEPROM. Additionally, the parallel

                       protocol offers an optimized access to all the embedded Flash functionalities. The serial inter-

                       face uses the standard IEEE 1149.1 JTAG protocol. It offers an optimized access to all the

                       embedded Flash functionalities.

                       Although the Fast Flash Programming Mode is a dedicated mode for high volume programming,

                       this mode not designed for in-situ programming.

                                                                                                                         117

6222H–ATARM–25-Jan-12
20.2    Parallel  Fast Flash Programming

20.2.1  Device    Configuration

                     In Fast Flash Programming Mode, the device is in a          specific  test  mode. Only a  certain  set  of  pins

                     is significant. Other pins must be left unconnected.

                     Figure 20-1.        Parallel Programming Interface

                                             VDDIO                TST

                                             VDDIO                PGMEN0

                                             VDDIO                PGMEN1

                                                                                                 VDDCORE

                                             NCMD                 PGMNCMD                        VDDIO

                                             RDY                  PGMRDY                         VDDPLL

                                             NOE                  PGMNOE                         VDDFLASH

                                             NVALID               PGMNVALID                      GND

                                             MODE[3:0]            PGMM[3:0]

                                             DATA[15:0]           PGMD[15:0]

                                             0 - 50MHz            XIN

Table 20-1.  Signal  Description List

                                                                                 Active

Signal Name          Function                                             Type   Level     Comments

                                                             Power

VDDFLASH             Flash Power Supply                                Power

VDDIO                I/O Lines Power Supply                            Power

VDDCORE              Core Power Supply                                 Power

VDDPLL               PLL Power Supply                                  Power

GND                  Ground                                            Ground

                                                             Clocks

                     Main Clock Input.

XIN                  This input can be tied to GND. In this               Input            32KHz to 50MHz

                     case, the device is clocked by the internal

                     RC oscillator.

                                                             Test

TST                  Test Mode Select                                     Input  High      Must be connected to VDDIO

PGMEN0               Test Mode Select                                     Input  High      Must be connected to VDDIO

PGMEN1               Test Mode Select                                     Input  High      Must be connected to VDDIO

118     SAM7SE512/256/32

                                                                                                          6222H–ATARM–25-Jan-12
                                                                                        SAM7SE512/256/32

Table 20-1.  Signal    Description List (Continued)

                                                                                Active

Signal Name            Function                                    Type         Level    Comments

                                                             PIO

PGMNCMD                Valid command available                     Input        Low      Pulled-up input at reset

PGMRDY                 0: Device is busy                          Output        High     Pulled-up input at reset

                       1: Device is ready for a new command

PGMNOE                 Output Enable (active high)                 Input        Low      Pulled-up input at reset

PGMNVALID              0: DATA[15:0] is in input mode             Output        Low      Pulled-up input at reset

                       1: DATA[15:0] is in output mode

PGMM[3:0]              Specifies DATA type (See Table 20-2)        Input                 Pulled-up input at reset

PGMD[15:0]             Bidirectional data bus                     Input/Output           Pulled-up input at reset

20.2.2  Signal Names

                       Depending on the MODE settings,       DATA  is  latched in different internal  registers.

                       Table 20-2.        Mode Coding

                       MODE[3:0]                     Symbol               Data

                       0000                          CMDE                 Command Register

                       0001                          ADDR0                Address Register LSBs

                       0010                          ADDR1

                       0101                          DATA                 Data Register

                       Default                       IDLE                 No register

                                                                                                                   119

6222H–ATARM–25-Jan-12
                  When MODE is equal to CMDE, then a new command (strobed on DATA[15:0] signals) is stored

                  in the command register.

                  Table 20-3.       Command Bit Coding

                  DATA[15:0]             Symbol         Command Executed

                  0x0011                 READ           Read Flash

                  0x0012                 WP             Write Page Flash

                  0x0022                 WPL            Write Page and Lock Flash

                  0x0032                 EWP            Erase Page and Write Page

                  0x0042                 EWPL           Erase Page and Write Page then    Lock

                  0x0013                 EA             Erase All

                  0x0014                 SLB            Set Lock Bit

                  0x0024                 CLB            Clear Lock Bit

                  0x0015                 GLB            Get Lock Bit

                  0x0034                 SFB            Set General Purpose NVM bit

                  0x0044                 CFB            Clear General Purpose NVM bit

                  0x0025                 GFB            Get General Purpose NVM bit

                  0x0054                 SSE            Set Security Bit

                  0x0035                 GSE            Get Security Bit

                  0x001F                 WRAM           Write Memory

                  0x0016                 SEFC           Select EFC Controller (1)

                  0x001E                 GVE            Get Version

                  Note:   1.    Applies to SAM7SE512.

20.2.3  Entering  Programming Mode

                  The following algorithm puts the device in Parallel Programming Mode:

                  • Apply GND, VDDIO, VDDCORE, VDDFLASH and VDDPLL.

                  • Apply XIN clock within TPOR_RESET if an external clock is available.

                  • Wait for TPOR_RESET

                  • Start a read or write handshaking.

                  Note:   After reset, the device is clocked by the internal RC oscillator. Before clearing RDY signal, if an

                          external clock (> 32 kHz) is connected to XIN, then the device switches on the external clock.

                          Else, XIN input is not considered. A higher frequency on XIN speeds up the programmer

                          handshake.

20.2.4  Programmer Handshaking

                  An handshake is defined for read and write operations. When the device is ready to start a new

                  operation (RDY signal set), the programmer starts the handshake by clearing the NCMD signal.

                  The handshaking is achieved once NCMD signal is high and RDY is high.

120     SAM7SE512/256/32

                                                                                          6222H–ATARM–25-Jan-12
                                                                                   SAM7SE512/256/32

20.2.4.1      Write    Handshaking

                       For details on the write handshaking           sequence, refer to Figure 20-2and Table 20-4.

                       Figure 20-2.       Parallel Programming        Timing, Write Sequence

                                          NCMD           2                      4

                                              RDY                  3                           5

                                              NOE

                                          NVALID

                                          DATA[15:0]

                                                      1

                                          MODE[3:0]

Table  20-4.  Write Handshake

Step          Programmer Action                          Device Action                            Data I/O

1             Sets MODE and DATA signals                 Waits for NCMD low                       Input

2             Clears NCMD signal                         Latches MODE and DATA                    Input

3             Waits for RDY low                          Clears RDY signal                        Input

4             Releases MODE and DATA signals             Executes command and polls NCMD high     Input

5             Sets NCMD signal                           Executes command and polls NCMD high     Input

6             Waits for RDY high                         Sets RDY                                 Input

                                                                                                                     121

6222H–ATARM–25-Jan-12
20.2.4.2      Read  Handshaking

                    For details on the read                handshaking sequence, refer to Figure 20-3 and Table            20-5.

                    Figure 20-3.            Parallel       Programming Timing, Read Sequence

                                            NCMD           2                                                           12

                                            RDY               3                                                            13

                                            NOE                                  5                        9

                                            NVALID                                          7                   11

                                                                            4            6             8        10

                                            DATA[15:0]        Adress IN             Z          Data OUT             X      IN

                                                        1

                                            MODE[3:0]         ADDR

Table  20-5.  Read Handshake

Step          Programmer Action                            Device Action                                     DATA I/O

1             Sets MODE and DATA signals                   Waits for NCMD low                                Input

2             Clears NCMD signal                           Latch MODE and DATA                               Input

3             Waits for RDY low                            Clears RDY signal                                 Input

4             Sets DATA signal in tristate                 Waits for NOE Low                                 Input

5             Clears NOE signal                                                                              Tristate

6             Waits for NVALID low                         Sets DATA bus in output mode  and  outputs        Output

                                                           the flash contents.

7                                                          Clears NVALID signal                              Output

8             Reads value on DATA Bus                      Waits for NOE high                                Output

9             Sets NOE signal                                                                                Output

10            Waits for NVALID high                        Sets DATA bus in input mode                       X

11            Sets DATA in output mode                     Sets NVALID signal                                Input

12            Sets NCMD signal                             Waits for NCMD high                               Input

13            Waits for RDY high                           Sets RDY signal                                   Input

122       SAM7SE512/256/32

                                                                                                                       6222H–ATARM–25-Jan-12
                                                                                          SAM7SE512/256/32

20.2.5    Device Operations

                             Several commands on the Flash memory are available. These commands are summarized in

                             Table 20-3 on page 120. Each command is driven by the programmer through the parallel inter-

                             face running several read/write handshaking sequences.

                             When a new command is executed, the previous one is automatically achieved. Thus, chaining

                             a read command after a write automatically flushes the load buffer in the Flash.

20.2.5.1  Flash        Read  Command

                             This command is used to read the contents of the Flash memory. The read command can start

                             at any valid address in the memory plane and is optimized for consecutive reads. Read hand-

                             shaking can be chained; an internal address buffer is automatically increased.

                             Table   20-6.  Read Command

                             Step     Handshake Sequence  MODE[3:0]                  DATA[15:0]

                             1        Write handshaking   CMDE                       READ

                             2        Write handshaking   ADDR0                      32-bit Memory Address First byte

                             3        Write handshaking   ADDR1                      32-bit Flash Address

                             6        Read handshaking    DATA                       *Memory Address++

                             7        Read handshaking    DATA                       *Memory Address++

                             ...      ...                 ...                        ...

                             n        Write handshaking   ADDR0                      32-bit Memory Address First byte

                             n+1      Write handshaking   ADDR1                      32-bit Flash Address

                             n+2      Write handshaking   ADDR2                      32-bit Flash Address

                             n+3      Write handshaking   ADDR3                      32-bit Flash Address Last Byte

                             n+4      Read handshaking    DATA                       *Memory Address++

                             n+5      Read handshaking    DATA                       *Memory Address++

                             ...      ...                 ...                        ...

20.2.5.2  Flash Write Command

                             This command is used to write the Flash contents.

                             The Flash memory plane is organized into several pages. Data to be written are stored in a load

                             buffer that corresponds to a Flash memory page. The load buffer is automatically flushed to the

                             Flash:

                             • before access to any page other than the current one

                             • when a new command is validated (MODE = CMDE)

                                                                                                                              123

6222H–ATARM–25-Jan-12
                       The Write Page command (WP) is       optimized for consecutive writes. Write handshaking  can         be

                       chained; an internal address buffer  is automatically increased.

                       Table  20-7.   Write Command

                       Step      Handshake Sequence         MODE[3:0]          DATA[15:0]

                       1         Write handshaking          CMDE               WP or WPL or EWP or EWPL

                       2         Write handshaking          ADDR0              32-bit Memory Address First byte

                       3         Write handshaking          ADDR1              32-bit Flash Address

                       4         Write handshaking          ADDR2              32-bit Flash Address

                       5         Write handshaking          ADDR3              32-bit Flash Address Last Byte

                       6         Write handshaking          DATA               *Memory Address++

                       7         Write handshaking          DATA               *Memory Address++

                       ...       ...                        ...                ...

                       n         Write handshaking          ADDR0              32-bit Memory Address First byte

                       n+1       Write handshaking          ADDR1              32-bit Flash Address

                       n+2       Write handshaking          ADDR2              32-bit Flash Address

                       n+3       Write handshaking          ADDR3              32-bit Flash Address Last Byte

                       n+4       Write handshaking          DATA               *Memory Address++

                       n+5       Write handshaking          DATA               *Memory Address++

                       ...       ...                        ...                ...

                       The Flash command Write Page and Lock (WPL) is equivalent to the Flash Write Command.

                       However, the lock bit is automatically set at the end of the Flash write operation. As a lock region

                       is composed of several pages, the programmer writes to the first pages of the lock region using

                       Flash write commands and writes to the last page of the lock region using a Flash write and lock

                       command.

                       The Flash command Erase Page and Write (EWP) is equivalent to the Flash Write Command.

                       However, before programming the load buffer, the page is erased.

                       The Flash command Erase Page and Write the Lock (EWPL) combines EWP and WPL

                       commands.

20.2.5.3  Flash  Full  Erase Command

                       This command is used to erase the Flash memory planes.

                       All lock regions must be unlocked before the Full Erase command by using      the  CLB    command.

                       Otherwise, the erase command is aborted and no page is erased.

                       Table 20-8.    Full Erase Command

                       Step      Handshake Sequence                MODE[3:0]             DATA[15:0]

                       1         Write handshaking                 CMDE                  EA

                       2         Write handshaking                 DATA                  0

124       SAM7SE512/256/32

                                                                                                     6222H–ATARM–25-Jan-12
                                                                                    SAM7SE512/256/32

20.2.5.4  Flash        Lock  Commands

                             Lock bits can be set using WPL or EWPL commands. They can also be set by using the Set

                             Lock command (SLB). With this command, several lock bits can be activated. A Bit Mask is pro-

                             vided as argument to the command. When bit 0 of the bit mask is set, then the first lock bit is

                             activated.

                             In the same way, the Clear Lock command (CLB) is used to clear lock bits. All the lock bits are

                             also cleared by the EA command.

                             Table 20-9.   Set and Clear Lock Bit Command

                             Step        Handshake Sequence          MODE[3:0]            DATA[15:0]

                             1           Write handshaking           CMDE                 SLB or CLB

                             2           Write handshaking           DATA                 Bit Mask

                             Lock bits can be read using Get Lock Bit command (GLB). The nth lock bit is active when the bit

                             n of the bit mask is set..

                             Table 20-10.  Get Lock Bit Command

                             Step        Handshake Sequence          MODE[3:0]            DATA[15:0]

                             1           Write handshaking           CMDE                 GLB

                                                                                          Lock Bit Mask Status

                             2           Read handshaking            DATA                 0 = Lock bit is cleared

                                                                                          1 = Lock bit is set

20.2.5.5  Flash        General-purpose NVM Commands

                             General-purpose NVM bits (GP NVM bits) can be set using the Set Fuse command (SFB). This

                             command also activates GP NVM bits. A bit mask is provided as argument to the command.

                             When bit 0 of the bit mask is set, then the first GP NVM bit is activated.

                             In the same way, the Clear Fuse command (CFB) is used to clear general-purpose NVM bits.

                             All the general-purpose NVM bits are also cleared by the EA command. The general-purpose

                             NVM bit is deactivated when the corresponding bit in the pattern value is set to 1.

                             Table 20-11.  Set/Clear GP NVM Command

                             Step        Handshake Sequence          MODE[3:0]            DATA[15:0]

                             1           Write handshaking           CMDE                 SFB or CFB

                             2           Write handshaking           DATA                 GP NVM bit pattern value

                             General-purpose NVM bits can be read using the Get     Fuse  Bit command (GFB). The     nth      GP

                             NVM bit is active when bit n of the bit mask is set..

                             Table 20-12.  Get GP NVM Bit Command

                             Step        Handshake Sequence          MODE[3:0]            DATA[15:0]

                             1           Write handshaking           CMDE                 GFB

                                                                                          GP NVM Bit Mask Status

                             2           Read handshaking            DATA                 0 = GP NVM bit is cleared

                                                                                          1 = GP NVM bit is set

                                                                                                                              125

6222H–ATARM–25-Jan-12
20.2.5.6  Flash  Security Bit Command

                  A security bit can be set using the Set Security Bit command (SSE). Once the security bit is

                  active, the Fast Flash programming is disabled. No other command can be run. An event on the

                  Erase pin can erase the security bit once the contents of the Flash have been erased.

                  The SAM7SE512 security bit is controlled by the EFC0. To use the Set Security Bit command,

                  the EFC0 must be selected using the Select EFC command.

                  Table 20-13.         Set Security Bit Command

                  Step         Handshake Sequence                 MODE[3:0]        DATA[15:0]

                  1            Write handshaking                  CMDE             SSE

                  2            Write handshaking                  DATA             0

20.2.5.7  SAM7SE512 Select EFC Command

                  The commands WPx, EA, xLB, xFB are executed using the           current EFC controller. The default

                  EFC controller is EFC0. The Select EFC command (SEFC)           allows selection of the current EFC

                  controller.

                  Table 20-14.         Select EFC Command

                  Step         Handshake Sequence                 MODE[3:0]        DATA[15:0]

                  1            Write handshaking                  CMDE             SEFC

                  2            Write handshaking                  DATA             0 = Select EFC0

                                                                                   1 = Select EFC1

20.2.5.8  Memory  Write Command

                  This command is used to perform a write access to any memory location.

                  The Memory Write command (WRAM) is optimized for consecutive writes. Write handshaking

                  can be chained; an internal address buffer is automatically increased.

                  Table  20-15.        Write Command

                  Step         Handshake Sequence          MODE[3:0]         DATA[15:0]

                  1            Write handshaking           CMDE              WRAM

                  2            Write handshaking           ADDR0             32-bit Memory Address First byte

                  3            Write handshaking           ADDR1             32-bit Flash Address

                  4            Write handshaking           ADDR2             32-bit Flash Address

                  5            Write handshaking           ADDR3             32-bit Flash Address Last Byte

                  6            Write handshaking           DATA              *Memory Address++

                  7            Write handshaking           DATA              *Memory Address++

                  ...          ...                         ...               ...

                  n            Write handshaking           ADDR0             32-bit Memory Address First byte

                  n+1          Write handshaking           ADDR1             32-bit Flash Address

                  n+2          Write handshaking           ADDR2             32-bit Flash Address

                  n+3          Write handshaking           ADDR3             32-bit Flash Address Last Byte

126       SAM7SE512/256/32

                                                                                                   6222H–ATARM–25-Jan-12
                                                                                SAM7SE512/256/32

                       Table 20-15.  Write Command (Continued)

                       Step     Handshake Sequence        MODE[3:0]        DATA[15:0]

                       n+4      Write handshaking         DATA             *Memory Address++

                       n+5      Write handshaking         DATA             *Memory Address++

                       ...      ...                       ...              ...

20.2.5.9  Get Version  Command

                       The Get Version (GVE) command retrieves the version of the FFPI interface.

                       Table 20-16.  Get Version Command

                       Step     Handshake Sequence              MODE[3:0]       DATA[15:0]

                       1        Write handshaking               CMDE            GVE

                       2        Write handshaking               DATA            Version

                                                                                                   127

6222H–ATARM–25-Jan-12
20.3    Serial Fast Flash Programming

                      The Serial Fast Flash programming interface is based on IEEE Std. 1149.1 “Standard Test

                      Access Port and Boundary-Scan Architecture”. Refer to this standard for an explanation of terms

                      used in this chapter and for a description of the TAP controller states.

                      In this mode, data read/written from/to the embedded Flash of the device are transmitted

                      through the JTAG interface of the device.

20.3.1  Device Configuration

                      In Serial Fast Flash Programming Mode, the device is in a specific test mode. Only a distinct set

                      of pins is significant. Other pins must be left unconnected.

                      Figure 20-4.        Serial Programing

                                              VDDIO                TST

                                              VDDIO                PGMEN0

                                              VDDIO                PGMEN1

                                                                                                VDDCORE

                                              TDI                                               VDDIO

                                              TDO                                               VDDPLL

                                              TMS                                               VDDFLASH

                                              TCK                                               GND

                                              0-50MHz              XIN

Table 20-17.  Signal  Description List

                                                                                   Active

Signal Name           Function                                             Type    Level   Comments

                                                              Power

VDDFLASH              Flash Power Supply                                   Power

VDDIO                 I/O Lines Power Supply                               Power

VDDCORE               Core Power Supply                                    Power

VDDPLL                PLL Power Supply                                     Power

GND                   Ground                                               Ground

                                                              Clocks

                      Main Clock Input.

XIN                   This input can be tied to GND. In this               Input           32 kHz to 50  MHz

                      case, the device is clocked by the internal

                      RC oscillator.

128     SAM7SE512/256/32

                                                                                                          6222H–ATARM–25-Jan-12
                                                                             SAM7SE512/256/32

Table 20-17.  Signal   Description List (Continued)

                                                                   Active

Signal Name            Function                            Type    Level                    Comments

                                                     Test

TST                    Test Mode Select                    Input   High                     Must be connected to VDDIO.

PGMEN0                 Test Mode Select                    Input   High                     Must be connected to VDDIO

PGMEN1                 Test Mode Select                    Input   High                     Must be connected to VDDIO

                                                     JTAG

TCK                    JTAG TCK                            Input          -                 Pulled-up input at reset

TDI                    JTAG Test Data In                   Input          -                 Pulled-up input at reset

TDO                    JTAG Test Data Out                  Output         -

TMS                    JTAG Test Mode Select               Input          -                 Pulled-up input at reset

20.3.2  Entering       Serial Programming Mode

                       The following algorithm puts the device in Serial Programming Mode:

                       • Apply GND, VDDIO, VDDCORE, VDDFLASH and VDDPLL.

                       • Apply XIN clock within TPOR_RESET + 32(TSCLK) if an external clock is available.

                       • Wait for TPOR_RESET.

                       • Reset the TAP controller clocking 5 TCK pulses with TMS set.

                       • Shift 0x2 into the IR register (IR is 4 bits long, LSB first) without going through the Run-Test-

                       Idle state.

                       • Shift 0x2 into the DR register (DR is 4 bits long, LSB first) without going through the Run-

                       Test-Idle state.

                       • Shift 0xC into the IR register (IR is 4 bits long, LSB first) without going through the Run-Test-

                       Idle state.

                       Note:     After reset, the device is clocked by the internal RC oscillator. Before clearing RDY signal, if an

                                 external clock (> 32 kHz) is connected to XIN, then the device will switch on the external clock.

                                 Else, XIN input is not considered. An higher frequency on XIN speeds up the programmer

                                 handshake.

                       Table 20-18.          Reset TAP Controller and Go to Select-DR-Scan

                                         TDI         TMS   TAP Controller State

                                          X          1

                                          X          1

                                          X          1

                                          X          1

                                          X          1     Test-Logic Reset

                                          X          0     Run-Test/Idle

                                          Xt         1     Select-DR-Scan

                                                                                                                                      129

6222H–ATARM–25-Jan-12
20.3.3  Read/Write  Handshake

                    The read/write handshake is done by carrying out read/write operations on two registers of the

                    device that are accessible through the JTAG:

                    • Debug Comms Control Register: DCCR

                    • Debug Comms Data Register: DCDR

                    Access to these registers is done through the TAP 38-bit DR register comprising a 32-bit data

                    field, a 5-bit address field and a read/write bit. The data to be written is scanned into the 32-bit

                    data field with the address of the register to the 5-bit address field and 1 to the read/write bit. A

                    register is read by scanning its address into the address field and 0 into the read/write bit, going

                    through the UPDATE-DR TAP state, then scanning out the data.

                    Refer to the ARM7TDMI reference manuel for more information on Comm channel operations.

                    Figure 20-5.    TAP 8-bit DR Register

                    TDI        r/w  4     Address  0  31               Data                                0               TDO

                                          5                                       32

                                          Address                 Debug Comms Control Register

                                          Decoder

                                                                  Debug Comms Data Register

                    A read or write takes place when the TAP controller enters UPDATE-DR state. Refer to the IEEE

                    1149.1 for more details on JTAG operations.

                    • The address of the Debug Comms Control Register is 0x04.

                    • The address of the Debug Comms Data Register is 0x05.

                    The Debug Comms Control Register is read-only and allows synchronized handshaking

                    between the processor and the debugger.

                            – Bit 1 (W): Denotes whether the programmer can read a data through the Debug

                            Comms Data Register. If the device is busy W = 0, then the programmer must poll

                            until W = 1.

                            – Bit 0 (R): Denotes whether the programmer can send data from the Debug Comms

                            Data Register. If R = 1, data previously placed there through the scan chain has not

                            been collected by the device and so the programmer must wait.

                    The write handshake is done by polling the Debug Comms Control Register until the R bit                is

                    cleared. Once cleared, data can be written to the Debug Comms Data Register.

                    The read handshake is done by polling the Debug Comms Control Register until the W bit is set.

                    Once set, data can be read in the Debug Comms Data Register.

20.3.4  Device  Operations

                    Several commands on the Flash memory are available. These commands are summarized in

                    Table 20-3 on page 120. Commands are run by the programmer through the serial interface that

                    is reading and writing the Debug Comms Registers.

130     SAM7SE512/256/32

                                                                                                  6222H–ATARM–25-Jan-12
                                                                                             SAM7SE512/256/32

20.3.4.1  Flash        Read   Command

                              This command is used to read the Flash contents. The memory map is accessible through this

                              command. Memory is seen as an array of words (32-bit wide). The read command can start at

                              any valid address in the memory plane. This address must be word-aligned. The address is

                              automatically incremented.

                              Table 20-19.  Read   Command

                              Read/Write           DR Data

                              Write                (Number of Words to Read)   << 16 | READ

                              Write                Address

                              Read                 Memory [address]

                              Read                 Memory [address+4]

                              ...                  ...

                              Read                 Memory [address+(Number     of Words to Read  -  1)*  4]

20.3.4.2  Flash        Write  Command

                              This command is used to write the Flash contents. The address transmitted must be a valid

                              Flash address in the memory plane.

                              The Flash memory plane is organized into several pages. Data to be written is stored in a load

                              buffer that corresponds to a Flash memory page. The load buffer is automatically flushed to the

                              Flash:

                              • before access to any page than the current one

                              • at the end of the number of words transmitted

                              The Write Page command (WP) is optimized for consecutive writes. Write handshaking can be

                              chained; an internal address buffer is automatically increased.

                              Table 20-20.  Write  Command

                              Read/Write           DR Data

                              Write                (Number of Words to Write)  << 16 | (WP or WPL or EWP     or  EWPL)

                              Write                Address

                              Write                Memory [address]

                              Write                Memory [address+4]

                              Write                Memory [address+8]

                              Write                Memory [address+(Number     of Words to Write - 1)* 4]

                              Flash Write Page and Lock command (WPL) is equivalent to the Flash Write Command. How-

                              ever, the lock bit is automatically set at the end of the Flash write operation. As a lock region is

                              composed of several pages, the programmer writes to the first pages of the lock region using

                              Flash write commands and writes to the last page of the lock region using a Flash write and lock

                              command.

                              Flash Erase Page and Write command (EWP) is equivalent to the Flash Write Command. How-

                              ever, before programming the load buffer, the page is erased.

                              Flash Erase Page and Write the Lock command (EWPL) combines EWP and WPL

                              commands.

                                                                                                                                    131

6222H–ATARM–25-Jan-12
20.3.4.3  Flash  Full  Erase Command

                       This command is used to erase the Flash memory planes.

                       All lock bits must be deactivated before using the Full Erase   command.  This  can  be  done    by

                       using the CLB command.

                       Table 20-21.   Full Erase Command

                       Read/Write     DR Data

                       Write          EA

20.3.4.4  Flash  Lock  Commands

                       Lock bits can be set using WPL or EWPL commands. They can also be set by using the Set

                       Lock command (SLB). With this command, several lock bits can be activated at the same time.

                       Bit 0 of Bit Mask corresponds to the first lock bit and so on.

                       In the same way, the Clear Lock command (CLB) is used to clear lock bits. All the lock bits can

                       also be cleared by the EA command.

                       Table 20-22.   Set and Clear Lock Bit Command

                       Read/Write     DR Data

                       Write          SLB or CLB

                       Write          Bit Mask

                       Lock bits can be read using Get Lock Bit command (GLB). When a bit set in the Bit Mask is

                       returned, then the corresponding lock bit is active.

                       Table 20-23.   Get Lock Bit Command

                       Read/Write     DR Data

                       Write          GLB

                       Read           Bit Mask

20.3.4.5  Flash  General-purpose NVM Commands

                       General-purpose NVM bits (GP NVM) can be set with the Set Fuse command (SFB). Using this

                       command, several GP NVM bits can be activated at the same time. Bit 0 of Bit Mask corre-

                       sponds to the first fuse bit and so on.

                       In the same way, the Clear Fuse command (CFB) is used to clear GP NVM bits. All the general-

                       purpose NVM bits are also cleared by the EA command.

                       Table 20-24.   Set and Clear General-purpose NVM Bit Command

                       Read/Write     DR Data

                       Write          SFB or CFB

                       Write          Bit Mask

132       SAM7SE512/256/32

                                                                                                 6222H–ATARM–25-Jan-12
                                                                                   SAM7SE512/256/32

                       GP NVM bits can be read using Get Fuse Bit command (GFB). When a bit set in the Bit Mask is

                       returned, then the corresponding fuse bit is set.

                       Table 20-25.          Get General-purpose NVM Bit Command

                       Read/Write                   DR Data

                       Write                        GFB

                       Read                         Bit Mask

20.3.4.6  Flash        Security Bit Command

                       Security bits can be set using Set Security Bit command (SSE). Once the security bit is active,

                       the Fast Flash programming is disabled. No other command can be run. Only an event on the

                       Erase pin can erase the security bit once the contents of the Flash have been erased.

                       The SAM7SE512 security bit is controlled by the EFC0. To use the Set Security Bit command,

                       the EFC0 must be selected using the Select EFC command.

                       Table 20-26.          Set Security Bit Command

                       Read/Write                   DR Data

                       Write                        SSE

20.3.4.7  SAM7SE512 Select EFC Command

                       The commands WPx, EA, xLB, xFB are executed using the       current EFC controller. The default

                       EFC controller is EFC0. The Select EFC command (SEFC)       allows selection of the current EFC

                       controller.

                       Table 20-27.          Select EFC Command

                       Step         Handshake Sequence                  MODE[3:0]                  DATA[15:0]

                       1            Write handshaking                   CMDE                       SEFC

                       2            Write handshaking                   DATA                       0 = Select EFC0

                                                                                                   1 = Select EFC1

20.3.4.8  Memory       Write Command

                       This command is used to perform a write access to any memory location.

                       The Memory Write command (WRAM) is optimized for consecutive writes.                    An   internal  address

                       buffer is automatically increased.

                       Table 20-28.          Write  Command

                       Read/Write                   DR Data

                       Write                        (Number of Words to Write)  << 16 | (WRAM)

                       Write                        Address

                       Write                        Memory [address]

                       Write                        Memory [address+4]

                       Write                        Memory [address+8]

                       Write                        Memory [address+(Number     of Words to Write  -  1)*  4]

                                                                                                                              133

6222H–ATARM–25-Jan-12
20.3.4.9  Get Version Command

          The Get Version (GVE) command retrieves   the  version  of  the  FFPI  interface.

          Table 20-29.         Get Version Command

          Read/Write           DR Data

          Write                GVE

          Read                 Version

134       SAM7SE512/256/32

                                                                                 6222H–ATARM–25-Jan-12
                                        SAM7SE512/256/32

21. External Bus       Interface (EBI)

21.1  Overview

                       The External Bus Interface (EBI) is designed to ensure the successful data transfer between

                       several external devices and the embedded Memory Controller of an ARM-based device. The

                       Static Memory, SDRAM and ECC Controllers are all featured external Memory Controllers on

                       the EBI. These external Memory Controllers are capable of handling several types of external

                       memory and peripheral devices, such as SRAM, PROM, EPROM, EEPROM, Flash, and

                       SDRAM.

                       The EBI also supports the CompactFlash® and the NAND Flash protocols via integrated circuitry

                       that greatly reduces the requirements for external components. Furthermore, the EBI handles

                       data transfers with up to eight external devices, each assigned to eight address spaces defined

                       by the embedded Memory Controller. Data transfers are performed through a 16-bit or 32-bit

                       data bus, an address bus of up to 23 bits, up to eight chip select lines (NCS[7:0]) and several

                       control pins that are generally multiplexed between the different external Memory Controllers.

                                                                                                                        135

6222H–ATARM–25-Jan-12
21.2    Block Diagram

Figure  21-1.  Organization     of  the  External  Bus Interface

               Memory                              External Bus       Interface

               Controller

                                                                                             SDCK

                           ASB                     SDRAM

                                                   Controller                                D[31:0]

                                                                                             A0/NBS0

                                                                                 MUX         A1/NBS2

                                                                                 Logic  PIO  A[15:2], A[20:18]

                                                                                             A16/BA0

                                                   Static                                    A17/BA1

                                                   Memory

                                                   Controller                                NCS0/CFRNW

                                                                                             NCS1/SDCS

                                                                                             NCS2/CFCS1

                                                                                             NCS3/NANDCS

                                                                                             NRD/CFOE

                                                                                             NWR0/NWE/CFWE

                                                               CompactFlash                  NWR1/NBS1/CFIOR

                                                               Logic                         NBS3/CFIOW

                                                                                             SDCKE

                                                                                             RAS

                                                               NAND Flash                    CAS

                                                               Logic

                                                                                             SDWE

                                                                                             SDA10

                                                               ECC                           A22/REG/NANDCLE

                                                               Controller                    A21/NANDALE

                                                                                             NCS4/CFCS0

               Address Decoder           Chip Select                                         NCS5/CFCE1

                                         Assignor                                            NCS6/CFCE2

                                                                                             NCS7

                                                                                             NANDOE

                                                                                             NANDWE

                                                   User    Interface                         NWAIT

                                                   APB

136     SAM7SE512/256/32

                                                                                                      6222H–ATARM–25-Jan-12
                                                                               SAM7SE512/256/32

21.3     I/O  Lines Description

Table 21-1.   I/O      Lines  Description

Name                          Function                                         Type    Active Level

                                                              EBI

D[31:0]                       Data Bus                                         I/O

A[22:0]                       Address Bus                                      Output

NWAIT                         External Wait Signal                             Input   Low

                                                              SMC

NCS[7:0]                      Chip Select Lines                                Output  Low

NWR[1:0]                      Write Signals                                    Output  Low

NRD                           Read Signal                                      Output  Low

NWE                           Write Enable                                     Output  Low

NUB                           NUB: Upper Byte Select                           Output  Low

NLB                           NLB: Lower Byte Select                           Output  Low

                                                 EBI for CompactFlash Support

CFCE[2:1]                     CompactFlash Chip Enable                         Output  Low

CFOE                          CompactFlash Output Enable                       Output  Low

CFWE                          CompactFlash Write Enable                        Output  Low

CFIOR                         CompactFlash I/O Read Signal                     Output  Low

CFIOW                         CompactFlash I/O Write Signal                    Output  Low

CFRNW                         CompactFlash Read Not Write Signal               Output

CFCS[1:0]                     CompactFlash Chip Select Lines                   Output  Low

                                                 EBI for NAND Flash Support

NANDCS                        NAND Flash Chip Select Line                      Output  Low

NANDOE                        NAND Flash Output Enable                         Output  Low

NANDWE                        NAND Flash Write Enable                          Output  Low

NANDCLE                       NAND Flash Command Line Enable                   Output  Low

NANDALE                       NAND Flash Address Line Enable                   Output  Low

                                                      SDRAM Controller

SDCK                          SDRAM Clock                                      Output

SDCKE                         SDRAM Clock Enable                               Output  High

SDCS                          SDRAM Controller Chip Select Line                Output  Low

BA[1:0]                       Bank Select                                      Output

SDWE                          SDRAM Write Enable                               Output  Low

RAS - CAS                     Row and Column Signal                            Output  Low

NBS[3:0]                      Byte Mask Signals                                Output  Low

SDA10                         SDRAM Address 10 Line                            Output

                                                                                                     137

6222H–ATARM–25-Jan-12
                  The connection of some signals through the Mux logic is not direct and depends            on the Memory

                  Controller in use at the moment.

                  Table 21-2 details the connections between the two Memory Controllers and the             EBI pins.

                  Table 21-2.        EBI Pins   and  Memory Controllers I/O  Lines        Connections

                  EBI Pins                                 SDRAMC I/O Lines               SMC I/O Lines

                  NWR1/NBS1/CFIOR                          NBS1                           NWR1/NUB

                  A0/NBS0                                  Not Supported                  A0/NLB

                  A1/NBS2                                  Not Supported                  A1

                  A[11:2]                                  A[9:0]                         A[11:2]

                  SDA10                                    A10                            Not Supported

                  A12                                      Not Supported                  A12

                  A[14:13]                                 A[12:11]                       A[14:13]

                  A[22:15]                                 Not Supported                  A[22:15]

                  D[31:16]                                 D[31:16]                       Not Supported

                  D[15:0]                                  D[15:0]                        D[15:0]

21.4     Application Example

21.4.1      Hardware Interface

                  Table 21-3 details the connections to be applied between the EBI pins and the external devices

                  for each Memory Controller

Table 21-3.  EBI  Pins and External  Static Device Connections

                                                           Pins of the Interfaced Device

                  8-bit Static       2 x 8-bit  16-bit                                    CompactFlash      NAND

                  Device             Static     Static          SDRAM(1)   CompactFlash   True IDE Mode     Flash(2)

Pin                                  Devices    Device

Controller                           SMC                        SDRAMC                         SMC

D0 - D7           D0 - D7            D0 - D7    D0 - D7         D0 - D7      D0 - D7           D0 - D7      I/O0 - I/O7

D8 - D15          –                  D8 - D15   D8 - D15        D8 - D15     D8 - 15           D8 - 15      I/O8 - I/O15(3)

D16 - D31         –                  –          –               D16 - D31    –                         –    –

A0/NBS0           A0                 –          NLB             DQM0         A0                        A0   –

A1/NBS2           A1                 A0         A0              DQM2         A1                        A1   –

A2 - A9           A2 - A9            A1 - A8    A1 - A8         A0 - A7      A2 - A9           A2 - A9      –

A10               A10                A9         A9                  A8       A10                       A10  –

A11               A11                A10        A10                 A9       –                         –    –

SDA10             –                  –          –                  A10       –                         –    –

A12               A12                A11        A11                 –        –                         –    –

A13 - A14         A13 - A14          A12 - A13  A12 - A13       A11 - A12    –                         –    –

A15               A15                A14        A14                 –        –                         –    –

A16/BA0           A16                A15        A15                BA0       –                         –    –

A17/BA1           A17                A16        A16                BA1       –                         –    –

138        SAM7SE512/256/32

                                                                                                            6222H–ATARM–25-Jan-12
                                                                                                    SAM7SE512/256/32

Table 21-3.  EBI Pins and External Static Device Connections (Continued)

                                                                  Pins of the Interfaced Device

                       8-bit Static   2 x 8-bit        16-bit                                           CompactFlash           NAND

                       Device         Static           Static     SDRAM(1)    CompactFlash              True IDE Mode          Flash(2)

Pin                                   Devices          Device

Controller                            SMC                         SDRAMC                                SMC

A18 - A20              A18 - A20      A17 - A19        A17 - A19  –                       –             –                      –

A21/NANDALE                      A21  A20              A20        –                       –             –                      ALE

A22/REG/NANDCLE                  A22  A21              A21        –                       REG           –                      CLE

NCS0                             CS   CS               CS         –                       CFRNW(4)      CFRNW(4)               –

NCS1/SDCS                        CS   CS               CS         CS                      –             –                      –

NCS2/CFCS1                       CS   CS               CS         –                       CFCS1(4)      CFCS1(4)               –

NCS3/NANDCS                      CS   CS               CS         –                       –             –                      CE(7)

NCS4/CFCS0                       CS   CS               CS         –                       CFCS0(4)      CFCS0(4)               –

NCS5/CFCE1                       CS   CS               CS         –                       CE1           CS0                    –

NCS6/CFCE2                       CS   CS               CS         –                       CE2           CS1                    –

NCS7                             CS   CS               CS         –                       –             –                      –

NANDOE                           –    –                –          –                       –             –                      RE

NANDWE                           –    –                –          –                       –             –                      WE

NRD/CFOE                         OE   OE               OE         –                       OE            –

NWR0/NWE/CFWE                    WE   WE(5)            WE         –                       WE            –                      (8)

NWR1/NBS1/CFIOR                  WE   WE(5)            NUB        DQM1                    IOR           IOR                    –

NBS3/CFIOW                       –    –                –          DQM3                    IOW           IOW                    –

SDCK                             –    –                –          CLK                     –             –                      –

SDCKE                            –    –                –          CKE                     –             –                      –

RAS                              –    –                –          RAS                     –             –                      –

CAS                              –    –                –          CAS                     –             –                      –

SDWE                             –    –                –          WE                      –             –                      –

NWAIT                            –    –                –          –                       WAIT          WAIT                   –

Pxx(6)                           –    –                –          –                       CD1 or CD2    CD1 or CD2             –

Pxx(6)                           –    –                –          –                       –             –                      CE(7)

Pxx(6)                           –    –                –          –                       –             –                      RDY

Notes:  1.   For SDRAM connection examples, refer to “Using SDRAM on AT91SAM7SE Microcontrollers”, application note.

        2.   For NAND Flash connection examples, refer to “NAND Flash Support on AT91SAM7SE Microcontrollers”, application note.

        3.   I/O8 - I/O15 bits used only for 16-bit NAND Flash.

        4.   Not directly connected to the CompactFlash slot. Permits the control of the bidirectional buffer between the EBI data bus and

             the CompactFlash slot.

        5.   NWR1 enables upper byte writes. NWR0 enables lower byte writes.

        6.   Any free PIO line.

        7.   CE connection depends on the Nand Flash.

             For standard Nand Flash devices, it must be connected to any free PIO line.

             For “CE don’t care” 8-bit Nand Flash devices, it can be either connected to NCS3/NANDCS or to any free PIO line.

             For “CE don’t care” 16-bit Nand Flash devices, it must be connected to any free PIO line.

                                                                                                                                            139

6222H–ATARM–25-Jan-12
        8.  When the NAND Flash Logic is used, NWR0/NWE/CFWE must be kept as PIO Input Mode with Pull-up enabled                                        (default

            state after reset) or as PIO Output set at logic level 1. The PIO cannot be used in PIO Mode.

21.4.2      Connection Examples

            Figure 21-2 shows an example of connections between the EBI and external devices.

            Figure               21-2.  EBI Connections to Memory Devices

                                 EBI

                                        D0-D31

                                        RAS                             2M x 8                                              2M x 8

                                        CAS

                                        SDCK                            SDRAM                                               SDRAM

                                        SDCKE      D0-D7         D0-D7                                      D8-D15   D0-D7

                                        SDWE

                                        A0/NBS0                  CS                                                  CS

                                        NWR1/NBS1                CLK                                                 CLK

                                        A1/NBS2                  CKE    A0-A9, A11     A2-A11, A13                   CKE       A0-A9, A11  A2-A11, A13

                                        NBS3              SDWE   WE&