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

产品描述

搜索

AT91SAM7S321-AU

器件型号:AT91SAM7S321-AU
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:Atmel (Microchip)
下载文档

器件描述

Emulators / Simulators JTAG emulator AT91 ARM7/ARM9

参数
产品属性属性值
产品种类:
Product Category:
ARM Microcontrollers - MCU
制造商:
Manufacturer:
Microchip
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
LQFP-64
系列:
Series:
SAM7S/SE
Core:ARM7TDMI
Data Bus Width:32 bit/16 bit
Maximum Clock Frequency:55 MHz
Program Memory Size:32 kB
Data RAM Size:8 kB
ADC Resolution:10 bit
Number of I/Os:32 I/O
工作电源电压:
Operating Supply Voltage:
1.8 V
最大工作温度:
Maximum Operating Temperature:
+ 85 C
接口类型:
Interface Type:
I2C, SPI, USART, USB
Analog Supply Voltage:3.3 V
商标:
Brand:
Microchip Technology / Atmel
Data RAM Type:RAM
高度:
Height:
1.4 mm
I/O Voltage:1.65 V to 3.6 V
长度:
Length:
10 mm
最小工作温度:
Minimum Operating Temperature:
- 40 C
Moisture Sensitive:Yes
Number of ADC Channels:8 Channel
Number of Timers/Counters:3 x 16 bit
Processor Series:SAM7S
产品:
Product:
MCU
Program Memory Type:Flash
工厂包装数量:
Factory Pack Quantity:
480
电源电压-最大:
Supply Voltage - Max:
1.95 V
电源电压-最小:
Supply Voltage - Min:
1.65 V
看门狗计时器:
Watchdog Timers:
Watchdog Timer
宽度:
Width:
10 mm
单位重量:
Unit Weight:
0.012088 oz

AT91SAM7S321-AU器件文档内容

                                                                                AT91SAM

                                                     ARM-based Flash MCU

   SAM7S512 SAM7S256 SAM7S128 SAM7S64

          SAM7S321 SAM7S32 SAM7S161 SAM7S16

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 (SAM7S512) Organized in Two Contiguous Banks of 1024 Pages of 256

   Bytes (Dual Plane)

   – 256 Kbytes (SAM7S256) Organized in 1024 Pages of 256 Bytes (Single Plane)

   – 128 Kbytes (SAM7S128) Organized in 512 Pages of 256 Bytes (Single Plane)

   – 64 Kbytes (SAM7S64) Organized in 512 Pages of 128 Bytes (Single Plane)

   – 32 Kbytes (SAM7S321/32) Organized in 256 Pages of 128 Bytes (Single Plane)

   – 16 Kbytes (SAM7S161/16) Organized in 256 Pages of 64 Bytes (Single Plane)

   – 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

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

   Security Bit

   – Fast Flash Programming Interface for High Volume Production

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

   – 64 Kbytes (SAM7S512/256)

   – 32 Kbytes (SAM7S128)

   – 16 Kbytes (SAM7S64)

   – 8 Kbytes (SAM7S321/32)

   – 4 Kbytes (SAM7S161/16)

•  Memory Controller (MC)

   – Embedded Flash Controller, Abort Status and Misalignment Detection

•  Reset Controller (RSTC)

   – Based on Power-on Reset and Low-power Factory-calibrated Brown-out 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)

   – Software 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 (SAM7S512/256/128/64/321/161) or One (SAM7S32/16) External Interrupt Source(s)

   and One Fast Interrupt Source, Spurious Interrupt Protected

                                                                              6175M–ATARM–26-Oct-12
•  Debug Unit (DBGU)

   – 2-wire UART and Support for Debug Communication Channel interrupt, Programmable ICE Access Prevention

   – Mode for General Purpose 2-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

   – 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

•  One Parallel Input/Output Controller (PIOA)

   – Thirty-two (SAM7S512/256/128/64/321/161) or twenty-one (SAM7S32/16) 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

•  Eleven (SAM7S512/256/128/64/321/161) or Nine (SAM7S32/16) Peripheral DMA Controller (PDC) Channels

•  One USB 2.0 Full Speed (12 Mbits per Second) Device Port (Except for the SAM7S32/16).

   – On-chip Transceiver, 328-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 (SAM7S512/256/128/64/321/161) or One (SAM7S32/16) 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 (SAM7S512/256/128/64/321/161)

•  One Master/Slave Serial Peripheral Interface (SPI)

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

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

   – Three External Clock Input and Two Multi-purpose I/O Pins per Channel (SAM7S512/256/128/64/321/161)

   – One External Clock Input and Two Multi-purpose I/O Pins for the first Two Channels Only (SAM7S32/16)

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

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

•  One Two-wire Interface (TWI)

   – Master Mode Support Only, All Two-wire Atmel EEPROMs and I2C Compatible Devices Supported

   (SAM7S512/256/128/64/321/32)

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

   (SAM7S161/16)

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

•  SAM-BA™ Boot Assistant

   – Default Boot program

   – Interface with SAM-BA Graphic User Interface

•  IEEE® 1149.1 JTAG Boundary Scan on All Digital Pins

•  5V-tolerant I/Os, including Four High-current Drive I/O lines, Up to 16 mA Each (SAM7S161/16 I/Os Not 5V-tolerant)

•  Power Supplies

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

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

   – 1.8V VDDCORE Core Power Supply with Brown-out Detector

                                                                                          SAM7S Series [DATASHEET]           2

                                                                                                  6175M–ATARM–26-Oct-12
•  Fully Static Operation: Up to 55 MHz at 1.65V and 85°C Worst Case Conditions

•  Available in 64-lead LQFP Green or 64-pad QFN Green Package (SAM7S512/256/128/64/321/161) and 48-lead LQFP Green or

   48-pad QFN Green Package (SAM7S32/16)

1.       Description

         Atmel’s SAM7S is a series of low pincount Flash microcontrollers based on the 32-bit ARM RISC processor. It fea-

         tures a high-speed Flash and an SRAM, a large set of peripherals, including a USB 2.0 device (except for the

         SAM7S32 and SAM7S16), and a complete set of system functions minimizing the number of external components.

         The device is an ideal migration path for 8-bit microcontroller users looking for additional performance and

         extended memory.

         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 security bit protect the firmware from acci-

         dental overwrite and preserves its confidentiality.

         The SAM7S 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.

         The SAM7S Series are general-purpose microcontrollers. Their integrated USB Device port makes them ideal devices

         for peripheral applications requiring connectivity to a PC or cellular phone. Their aggressive price point and high level of

         integration pushes their scope of use far into the cost-sensitive, high-volume consumer market.

1.1      Configuration Summary of the SAM7S512, SAM7S256, SAM7S128, SAM7S64, SAM7S321,

         SAM7S32, SAM7S161 and SAM7S16

         The SAM7S512, SAM7S256, SAM7S128, SAM7S64, SAM7S321, SAM7S32, SAM7S161 and SAM7S16 differ in

         memory size, peripheral set and package. Table 1-1 summarizes the configuration of the six devices.

         Except for the SAM7S32/16, all other SAM7S devices are package and pinout compatible.

Table 1-1.   Configuration Summary

                                                              USB                 External

                                    Flash                     Device              Interrupt  PDC       TC        I/O 5V    I/O

Device       Flash       TWI        Organization  SRAM        Port      USART     Source     Channels  Channels  Tolerant  Lines        Package

SAM7S512     512 Kbytes  Master     dual plane    64 Kbytes   1         2(1) (2)  2          11        3         Yes       32           LQFP/

                                                                                                                                        QFN 64

SAM7S256     256 Kbytes  Master     single plane  64 Kbytes   1         2(1) (2)  2          11        3         Yes       32           LQFP/

                                                                                                                                        QFN 64

SAM7S128     128 Kbytes  Master     single plane  32 Kbytes   1         2(1) (2)  2          11        3         Yes       32           LQFP/

                                                                                                                                        QFN 64

SAM7S64      64 Kbytes   Master     single plane  16 Kbytes   1         2(2)      2          11        3         Yes       32           LQFP/

                                                                                                                                        QFN 64

SAM7S321     32 Kbytes   Master     single plane  8 Kbytes    1         2(2)      2          11        3         Yes       32           LQFP/

                                                                                                                                        QFN 64

SAM7S32      32 Kbytes   Master     single plane  8 Kbytes    not       1         1          9         3(3)      Yes       21           LQFP/

                                                              present                                                                   QFN 48

SAM7S161     16 Kbytes   Master/    single plane  4 Kbytes    1         2(2)      2          11        3         No        32           LQFP

                         Slave

SAM7S16      16 Kbytes   Master/    single plane  4 Kbytes    not       1         1          9         3(3)      No        21           LQFP/

                         Slave                                present                                                                   QFN 48

Notes:   1.  Fractional Baud Rate.

         2.  Full modem line support on USART1.

         3.  Only two TC channels are accessible through      the PIO.

                                                                                                  SAM7S Series [DATASHEET]                      3

                                                                                                                 6175M–ATARM–26-Oct-12
2.      Block Diagram

Figure  2-1.  SAM7S512/256/128/64/321/161 Block Diagram

              TDI

              TDO               JTAG             ICE          ARM7TDMI

              TMS               SCAN

              TCK                                             Processor

              JTAGSEL

                                                                                                     1.8 V                    VDDIN

                                                                                                     Voltage                  GND

              TST             System Controller                                                      Regulator                VDDOUT

              FIQ                                                                                                             VDDCORE

                                      AIC

              IRQ0-IRQ1  PIO                                  Memory Controller                                               VDDIO

                                                         Embedded                                    SRAM

                                                              Flash         Address            64/32/16/8/4 Kbytes

              PCK0-PCK2                                  Controller         Decoder

              PLLRC      PLL

              XIN                     PMC                     Abort        Misalignment

              XOUT       OSC                                  Status       Detection                                          VDDFLASH

                         RCOSC                                                                       Flash                    ERASE

                                                                                                     512/256/

                                                                                               128/64/32/16 Kbytes

              VDDCORE    BOD                             Peripheral Bridge

                                Reset

              VDDCORE    POR    Controller                                                           ROM

                                                         Peripheral Data                                                      PGMRDY

              NRST                                            Controller                                                      PGMNVALID

                                                              11 Channels                            Fast Flash               PGMNOE

                                                                                               Programming                    PGMCK

                                      PIT                                                            Interface                PGMM0-PGMM3

                                                              APB                                                             PGMD0-PGMD15

                                      WDT                                                                                     PGMNCMD

                                                                                                                              PGMEN0-PGMEN2

                                      RTT                                                      SAM-BA

              DRXD       PIO    DBGU       PDC

              DTXD                                                               FIFO                            Transceiver

                                           PDC                                           USB Device                           DDM

                                                                                                                              DDP

                                PIOA

                                                                                                                              PWM0

              RXD0                                       PDC                             PWMC                                 PWM1

              TXD0                                                                                                            PWM2

              SCK0                               USART0                                                                       PWM3

              RTS0                                       PDC                     PDC                                          TF

              CTS0                                                                                                            TK

              RXD1                                       PDC                             SSC                                  TD

              TXD1                                                                                                            RD

              SCK1                                                                                                            RK

              RTS1                               USART1                          PDC                             PIO          RF

              CTS1                                                                                                            TCLK0

              DCD1                                                                    Timer Counter                           TCLK1

              DSR1                                                                                                            TCLK2

              DTR1                                       PDC                             TC0                                  TIOA0

              RI1        PIO                                                                                                  TIOB0

              NPCS0                                      PDC                                                                  TIOA1

              NPCS1                                                                      TC1                                  TIOB1

              NPCS2                                                                                                           TIOA2

              NPCS3                              SPI                                     TC2                                  TIOB2

              MISO

              MOSI                                                                       TWI                                  TWD

              SPCK                                       PDC                                                                  TWCK

              ADTRG                                      PDC

              AD0

              AD1

              AD2

              AD3                                ADC

              AD4

              AD5

              AD6

              AD7

              ADVREF

                                                                                                     SAM7S                    Series [DATASHEET]     4

                                                                                                                              6175M–ATARM–26-Oct-12
Figure 2-2.  SAM7S32/16  Block  Diagram

             TDI

             TDO                JTAG               ICE          ARM7TDMI

             TMS                SCAN                                    Processor

             TCK

             JTAGSEL

                                                                                                                           1.8 V       VDDIN

                                                                                                                Voltage                GND

                                System Controller                                                               Regulator              VDDOUT

             TST

             FIQ                                                                                                                       VDDCORE

             IRQ0                     AIC

                         PIO                                    Memory Controller                                                      VDDIO

                                                                                                                SRAM

                                                           Embedded                Address                      8/4 Kbytes

             PCK0-PCK2                                          Flash              Decoder

                                                           Controller

             PLLRC       PLL

                                      PMC                       Abort              Misalignment

             XIN         OSC                                    Status             Detection

             XOUT                                                                                                                      VDDFLASH

                                                                                                                Flash                  ERASE

                                RCOSC                                                                  32/16 Kbytes

             VDDCORE     BOD

                                                                Peripheral Bridge

                                      Reset

             VDDCORE     POR    Controller

                                                                Peripheral DMA                                  ROM

             NRST                                               Controller

                                                                9 Channels                                                             PGMRDY

                                                                                                                                       PGMNVALID

                                      PIT                                                                       Fast Flash             PGMNOE

                                                                APB                                             Programming            PGMCK

                                                                                                                Interface              PGMM0-PGMM3

                                      WDT                                                                                              PGMD0-PGMD7

                                                                                                                                       PGMNCMD

                                      RTT                                                                                              PGMEN0-PGMEN2

             DRXD        PIO                 PDC                                                                SAM-BA

             DTXD               DBGU

                                             PDC

                                      PIOA

                                                                                                                                       PWM0

                                                                                                 PWMC                                  PWM1

             RXD0                                          PDC                                                                         PWM2

             TXD0                                                                                                                      PWM3

             SCK0                                  USART0                          PDC                                                 TF

             RTS0                                                                                                                      TK

             CTS0        PIO                               PDC                                   SSC                                   TD

             NPCS0                                         PDC                                                                         RD

             NPCS1                                                                                                                     RK

                                                                                   PDC                                            PIO  RF

             NPCS2                                                                                                                     TCLK0

             NPCS3                                 SPI

             MISO                                                                                Timer Counter

             MOSI                                                                                                                      TIOA0

             SPCK                                          PDC                                   TC0                                   TIOB0

             ADTRG                                         PDC                                                                         TIOA1

             AD0                                                                                 TC1                                   TIOB1

             AD1

             AD2                                                                                 TC2

             AD3                                   ADC

             AD4                                                                                 TWI                                   TWD

             AD5                                                                                                                       TWCK

             AD6

             AD7

             ADVREF

                                                                                                                SAM7S Series [DATASHEET]                      5

                                                                                                                                       6175M–ATARM–26-Oct-12
3.      Signal       Description

Table 3-1.   Signal  Description List

                                                                              Active

Signal Name          Function                                       Type      Level   Comments

                                                             Power

VDDIN                Voltage and ADC Regulator Power Supply         Power             3.0 to 3.6V

                     Input

VDDOUT               Voltage Regulator Output                       Power             1.85V nominal

VDDFLASH             Flash Power Supply                             Power             3.0V to 3.6V

VDDIO                I/O Lines Power Supply                         Power             3.0V 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 Erase         Input     High    Pull-down resistor(1)

                     Command

                                                             Reset/Test

NRST                 Microcontroller Reset                               I/O  Low     Open-drain with pull-Up   resistor

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             IRQ1 not present on SAM7S32/16

FIQ                  Fast Interrupt Input                           Input

                                                             PIO

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

                                                                                      PA0 - PA20 only on SAM7S32/16

                                                                                      SAM7S Series [DATASHEET]              6

                                                                                                     6175M–ATARM–26-Oct-12
Table 3-1.   Signal Description List (Continued)

                                                                                 Active

Signal Name    Function                                               Type       Level   Comments

                                                            USB Device Port

DDM            USB Device Port Data    -                              Analog             not present on SAM7S32/16

DDP            USB Device Port Data +                                 Analog             not present on SAM7S32/16

                                                            USART

SCK0 - SCK1    Serial Clock                                           I/O                SCK1 not present on SAM7S32/16

TXD0 - TXD1    Transmit Data                                          I/O                TXD1 not present on SAM7S32/16

RXD0 - RXD1    Receive Data                                           Input              RXD1 not present on SAM7S32/16

RTS0 - RTS1    Request To Send                                        Output             RTS1 not present on SAM7S32/16

CTS0 - CTS1    Clear To Send                                          Input              CTS1 not present on SAM7S32/16

DCD1           Data Carrier Detect                                    Input              not present on SAM7S32/16

DTR1           Data Terminal Ready                                    Output             not present on SAM7S32/16

DSR1           Data Set Ready                                         Input              not present on SAM7S32/16

RI1            Ring Indicator                                         Input              not present on SAM7S32/16

                                                  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              TCLK1 and TCLK2 not present on

                                                                                         SAM7S32/16

TIOA0 - TIOA2  I/O Line A                                             I/O                TIOA2 not present on SAM7S32/16

TIOB0 - TIOB2  I/O Line B                                             I/O                TIOB2 not present on SAM7S32/16

                                                            PWM  Controller

PWM0 - PWM3    PWM Channels                                           Output

                                                                 SPI

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

                                                                                         SAM7S Series [DATASHEET]           7

                                                                                                     6175M–ATARM–26-Oct-12
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                PGMD0-PGMD7 only on SAM7S32/16

PGMRDY         Programming Ready                                        Output      High

PGMNVALID      Data Direction                                           Output      Low

PGMNOE         Programming Read                                         Input       Low

PGMCK          Programming Clock                                        Input

PGMNCMD        Programming Command                                      Input       Low

Note:  1.   Refer to Section 6. “I/O Lines Considerations” on page 14.

                                                                                           SAM7S Series [DATASHEET]              8

                                                                                                          6175M–ATARM–26-Oct-12
4.   Package and Pinout

     The SAM7S512/256/128/64/321 are available in a 64-lead LQFP or 64-pad QFN package.

     The SAM7S161 is available in a 64-Lead LQFP package.

     The SAM7S32/16 are available in a 48-lead LQFP or 48-pad QFN package.

4.1  64-lead LQFP and 64-pad QFN Package Outlines

     Figure 4-1 and Figure 4-2 show the orientation of the 64-lead LQFP and the 64-pad QFN package.    A  detailed

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

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

                                                         48     33

                                              49                            32

                                              64                            17

                                                             1  16

     Figure 4-2.  64-pad  QFN  Package  (Top  View)

                                                         48     33

                                                     49                     32

                                                     64                     17

                                                             1  16

                                                                                SAM7S Series [DATASHEET]                      9

                                                                                                       6175M–ATARM–26-Oct-12
4.2    64-lead LQFP and 64-pad QFN Pinout

Table  4-1.  SAM7S512/256/128/64/321/161 Pinout(1)

1            ADVREF       17  GND                                    33           TDI           49  TDO

2            GND          18  VDDIO                                  34  PA6/PGMNOE             50  JTAGSEL

3            AD4          19  PA16/PGMD4                             35  PA5/PGMRDY             51  TMS

4            AD5          20  PA15/PGMD3                             36  PA4/PGMNCMD            52  PA31

5            AD6          21  PA14/PGMD2                             37  PA27/PGMD15            53  TCK

6            AD7          22  PA13/PGMD1                             38           PA28          54  VDDCORE

7            VDDIN        23  PA24/PGMD12                            39           NRST          55  ERASE

8            VDDOUT       24  VDDCORE                                40           TST           56  DDM

9      PA17/PGMD5/AD0     25  PA25/PGMD13                            41           PA29          57  DDP

10     PA18/PGMD6/AD1     26  PA26/PGMD14                            42           PA30          58  VDDIO

11           PA21/PGMD9   27  PA12/PGMD0                             43           PA3           59  VDDFLASH

12           VDDCORE      28  PA11/PGMM3                             44  PA2/PGMEN2             60  GND

13     PA19/PGMD7/AD2     29  PA10/PGMM2                             45           VDDIO         61  XOUT

14           PA22/PGMD10  30  PA9/PGMM1                              46           GND           62  XIN/PGMCK

15           PA23/PGMD11  31  PA8/PGMM0                              47  PA1/PGMEN1             63  PLLRC

16     PA20/PGMD8/AD3     32  PA7/PGMNVALID                          48  PA0/PGMEN0             64  VDDPLL

Note:  1.    The bottom pad of the QFN package must be connected to      ground.

                                                                                         SAM7S  Series [DATASHEET]     10

                                                                                                6175M–ATARM–26-Oct-12
4.3    48-lead LQFP and 48-pad QFN Package Outlines

       Figure 4-3 and Figure 4-4 show the orientation of the 48-lead LQFP and the 48-pad QFN package. A detailed

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

       Figure 4-3.   48-lead LQFP Package (Top View)

                                                          36          25

                                                    37                         24

                                                    48                         13

                                                              1       12

       Figure 4-4.   48-pad QFN Package (Top View)

                                                          36          25

                                                      37                       24

                                                      48                       13

                                                              1       12

4.4    48-lead LQFP and 48-pad QFN Pinout

Table  4-2.  SAM7S32/16 Pinout(1)

1            ADVREF                13   VDDIO                    25            TDI                       37       TDO

2            GND                   14   PA16/PGMD4               26   PA6/PGMNOE                         38       JTAGSEL

3            AD4                   15   PA15/PGMD3               27   PA5/PGMRDY                         39       TMS

4            AD5                   16   PA14/PGMD2               28   PA4/PGMNCMD                        40       TCK

5            AD6                   17   PA13/PGMD1               29            NRST                      41  VDDCORE

6            AD7                   18   VDDCORE                  30            TST                       42       ERASE

7            VDDIN                 19   PA12/PGMD0               31            PA3                       43  VDDFLASH

8            VDDOUT                20   PA11/PGMM3               32   PA2/PGMEN2                         44       GND

9      PA17/PGMD5/AD0              21   PA10/PGMM2               33            VDDIO                     45       XOUT

10     PA18/PGMD6/AD1              22   PA9/PGMM1                34            GND                       46  XIN/PGMCK

11     PA19/PGMD7/AD2              23   PA8/PGMM0                35   PA1/PGMEN1                         47       PLLRC

12           PA20/AD3              24   PA7/PGMNVALID            36   PA0/PGMEN0                         48       VDDPLL

Note:  1.    The bottom pad of the QFN  package must be connected to  ground.

                                                                                      SAM7S  Series [DATASHEET]                 11

                                                                                                         6175M–ATARM–26-Oct-12
5.   Power Considerations

5.1  Power Supplies

     The SAM7S Series 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:

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

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

     z  VDDIO pin. It powers the I/O lines and the USB transceivers; dual voltage range is supported. Ranges from 3.0V

        to 3.6V, 3.3V nominal or from 1.65V to 1.95V, 1.8V nominal. Note that supplying less than 3.0V to VDDIO prevents

        any use of the USB transceivers.

     z  VDDFLASH pin. It powers a part of the Flash and is required for the Flash to operate correctly; voltage ranges

        from 3.0V to 3.6V, 3.3V nominal.

     z  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.

     During startup, core supply voltage (VDDCORE) slope must be superior or equal to 6V/ms.

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

     No separate ground pins are provided for the different power supplies. Only GND pins are provided and should be

     connected as shortly as possible to the system ground plane.

     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.

5.2  Power Consumption

     The SAM7S Series has a static current of less than 60 µA on VDDCORE at 25°C, including the RC oscillator, the voltage

     regulator and the power-on reset. When the brown-out detector is activated, 20 µA static current is added.

     The dynamic power consumption on VDDCORE is less than 50 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 SAM7S Series 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 25 µA static current and draws 1

     mA of output current.

     Adequate output supply decoupling is mandatory for VDDOUT to reduce ripple and avoid oscillations. The best way to

     achieve this is to use two capacitors in parallel: one external 470 pF (or 1 nF) NPO capacitor must be connected between

     VDDOUT and GND as close to the chip as possible. One external 2.2 µF (or 3.3 µF) X7R capacitor must 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 SAM7S Series supports a 3.3V single supply mode. The internal regulator is connected 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.

                                                                          SAM7S Series [DATASHEET]                             12

                                                                                              6175M–ATARM–26-Oct-12
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

                                                                               Voltage

                                                    3.3V                       Regulator

                                                                     VDDOUT

                                                                     VDDCORE

                                                                     VDDPLL

                                                                               SAM7S      Series [DATASHEET]     13

                                                                                          6175M–ATARM–26-Oct-12
6.   I/O Lines Considerations

6.1  JTAG Port Pins

     TMS, TDI and TCK are schmitt trigger inputs. TMS and TCK are 5-V tolerant, TDI is not. 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 GND, so that it can be left unconnected for normal operations.

6.2  Test Pin

     The TST pin is used for manufacturing test, fast programming mode or SAM-BA Boot Recovery of the SAM7S Series

     when asserted high. The TST pin integrates a permanent pull-down resistor of about 15 kΩ to GND, so that it can be left

     unconnected for normal operations.

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

     To enter SAM-BA Boot Recovery, the TST pin and the PA0, PA1 and PA2 pins should be tied high for at least 10

     seconds. Then a power cycle of the board is mandatory.

     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 simple push-button on the pin NRST as system user reset, and the use of the signal NRST to

     reset all the components of the system.

     The NRST pin integrates a permanent pull-up resistor to VDDIO.

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, so that it can be left unconnected for normal operations.

6.5  PIO Controller A Lines

     z  All the I/O lines PA0 to PA31on SAM7S512/256/128/64/321 (PA0 to PA20 on SAM7S32) are 5V-tolerant and all

        integrate a programmable pull-up resistor.

     z  All the I/O lines PA0 to PA31 on SAM7S161 (PA0 to PA20 on SAM7S16) are not 5V-tolerant and all integrate a

        programmable pull-up resistor.

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

     5V-tolerant means that the I/O lines can drive voltage level according to VDDIO, but can be driven with a voltage of up to

     5.5V. However, driving an I/O line with a voltage over VDDIO while the programmable pull-up resistor is enabled will

     create a current path through the pull-up resistor from the I/O line to VDDIO. Care should be taken, in particular at reset,

     as all the I/O lines default to input with the pull-up resistor enabled at reset.

6.6  I/O Line Drive Levels

     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 150 mA (100 mA for SAM7S32/16).

                                                                                        SAM7S Series [DATASHEET]                   14

                                                                                                          6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  15

6175M–ATARM–26-Oct-12
7.   Processor and Architecture

7.1  ARM7TDMI Processor

     z  RISC processor based on ARMv4T Von Neumann architecture

        z  Runs at up to 55 MHz, providing 0.9 MIPS/MHz

     z  Two instruction sets

        z  ARM® high-performance 32-bit instruction set

        z  Thumb® high code density 16-bit instruction set

     z  Three-stage pipeline architecture

        z  Instruction Fetch (F)

        z  Instruction Decode (D)

        z  Execute (E)

7.2  Debug and Test Features

     z  Integrated EmbeddedICE™ (embedded in-circuit emulator)

        z  Two watchpoint units

        z  Test access port accessible through a JTAG protocol

        z  Debug communication channel

     z  Debug Unit

        z  Two-pin UART

        z  Debug communication channel interrupt handling

        z  Chip ID Register

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

7.3  Memory Controller

     z  Bus Arbiter

        z  Handles requests from the ARM7TDMI and the Peripheral DMA Controller

     z  Address decoder provides selection signals for

        z  Three internal 1 Mbyte memory areas

        z  One 256 Mbyte embedded peripheral area

     z  Abort Status Registers

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

        z  Facilitates debug by detection of bad pointers

     z  Misalignment Detector

        z  Alignment checking of all data accesses

        z  Abort generation in case of misalignment

     z  Remap Command

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

        z  Allows handling of dynamic exception vectors

     z  Embedded Flash Controller

        z  Embedded Flash interface, up to three programmable wait states

        z  Prefetch buffer, buffering and anticipating the 16-bit requests, reducing the required  wait  states

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

        z  Single command for erasing, programming and locking operations

        z  Interrupt generation in case of forbidden operation

                                                                           SAM7S Series [DATASHEET]                       16

                                                                                                   6175M–ATARM–26-Oct-12
7.4  Peripheral DMA Controller

     z  Handles data transfer between peripherals and memories

     z  Eleven channels: SAM7S512/256/128/64/321/161

     z  Nine channels: SAM7S32/16

        z  Two for each USART

        z  Two for the Debug Unit

        z  Two for the Serial Synchronous Controller

        z  Two for the Serial Peripheral Interface

        z  One for the Analog-to-digital Converter

     z  Low bus arbitration overhead

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

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

     z  Next Pointer management for reducing interrupt latency requirements

     z  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

                                                                             SAM7S Series [DATASHEET]                     17

                                                                                                   6175M–ATARM–26-Oct-12
8.   Memories

8.1  SAM7S512

     z  512 Kbytes of Flash Memory, dual plane

        z     2 contiguous banks of 1024 pages of 256 bytes

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

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

        z     Page programming without auto-erase: 3 ms

        z     Full chip erase time: 15 ms

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

        z     32 lock bits, protecting 32 sectors of 64 pages

        z     Protection Mode to secure contents of the Flash

     z  64 Kbytes of Fast SRAM

        z     Single-cycle access at full speed

8.2  SAM7S256

     z  256 Kbytes of Flash Memory, single plane

        z     1024 pages of 256 bytes

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

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

        z     Page programming without auto-erase: 3 ms

        z     Full chip erase time: 15 ms

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

        z     16 lock bits, protecting 16 sectors of 64 pages

        z     Protection Mode to secure contents of the Flash

     z  64 Kbytes of Fast SRAM

        z     Single-cycle access at full speed

8.3  SAM7S128

     z  128 Kbytes of Flash Memory, single plane

        z     512 pages of 256 bytes

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

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

        z     Page programming without auto-erase: 3 ms

        z     Full chip erase time: 15 ms

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

        z     8 lock bits, protecting 8 sectors of 64 pages

        z     Protection Mode to secure contents of the Flash

     z  32 Kbytes of Fast SRAM

        z     Single-cycle access at full speed

8.4  SAM7S64

     z  64 Kbytes of Flash Memory, single plane

        z     512 pages of 128 bytes

                                                                          SAM7S       Series [DATASHEET]     18

                                                                                      6175M–ATARM–26-Oct-12
        z  Fast access time, 30 MHz single-cycle access in Worst Case  conditions

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

        z  Page programming without auto-erase: 3 ms

        z  Full chip erase time: 15 ms

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

        z  16 lock bits, protecting 16 sectors of 32 pages

        z  Protection Mode to secure contents of the Flash

     z  16 Kbytes of Fast SRAM

        z  Single-cycle access at full speed

8.5  SAM7S321/32

     z  32 Kbytes of Flash Memory, single plane

        z  256 pages of 128 bytes

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

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

        z  Page programming without auto-erase: 3 ms

        z  Full chip erase time: 15 ms

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

        z  8 lock bits, protecting 8 sectors of 32 pages

        z  Protection Mode to secure contents of the Flash

     z  8 Kbytes of Fast SRAM

        z  Single-cycle access at full speed

8.6  SAM7S161/16

     z  16 Kbytes of Flash Memory, single plane

        z  256 pages of 64 bytes

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

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

        z  Page programming without auto-erase: 3 ms

        z  Full chip erase time: 15 ms

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

        z  8 lock bits, protecting 8 sectors of 32 pages

        z  Protection Mode to secure contents of the Flash

     z  4 Kbytes of Fast SRAM

        z  Single-cycle access at full speed

                                                                       SAM7S       Series [DATASHEET]     19

                                                                                   6175M–ATARM–26-Oct-12
Figure  8-1.    SAM7S512/256/128/64/321/32/161/16            Memory       Mapping

                                                                          Internal Memory Mapping                       Note:

                                                                                                                        (1) Can be Flash or SRAM

                                                             0x0000 0000                                                depending on  REMAP.

                                                                                               (1)

                                                                          Flash before Remap                1  MBytes

                                                                          SRAM after Remap

                                                             0x000F FFF

                                                             0x0010 0000

                                                                               Internal Flash               1  MBytes

                                                             0x001F FFF

                                                             0x0020 0000

                                                                               Internal SRAM                1  MBytes

                                                             0x002F FFF

                                                             0x0030 0000

                      Address Memory Space

        0x0000  0000

                                                                                    Reserved                253 MBytes

                      Internal Memories     256 MBytes

        0x0FFF FFFF                                          0x0FFF FFFF

        0x1000 0000

                                                                                                                        System Controller  Mapping

                                                                                                                        0xFFFF F000

                                                                                                                                                  AIC   512  Bytes/

                                                                          Peripheral Mapping                                                            128  registers

                                                             0xF000 0000                                                0xFFFF F1FF

                      Undefined             14 x 256 MBytes               Reserved                                      0xFFFF F200

                      (Abort)               3,584 MBytes     0xFFF9 FFFF

                                                             0xFFFA 0000  TC0, TC1, TC2       16 Kbytes                                                 512  Bytes/

                                                                                                                                              DBGU      128  registers

                                                             0xFFFA 3FFF

                                                             0xFFFA 4000

                                                                          Reserved                                      0xFFFF F3FF

                                                             0xFFFA FFFF                      16 Kbytes                 0xFFFF F400

                                                             0xFFFB 0000  UDP                 (Reserved on

                                                             0xFFFB 3FFF                      SAM7S32/16)                                     PIOA      512  Bytes/

                                                             0xFFFB 4000                                                                                128  registers

                                                                          Reserved                                      0xFFFF F5FF

                                                             0xFFFB 7FFF                                                0xFFFF F600

                                                             0xFFFB 8000  TWI                 16 Kbytes

        0xEFFF FFFF                                          0xFFFB BFFF                                                                      Reserved

        0xF000 0000                                          0xFFFB C000  Reserved                                      0xFFFF FBFF

                                                             0xFFFB FFFF                                                0xFFFF FC00

                                                             0xFFFC 0000  USART0              16 Kbytes                                           PMC   256 Bytes/

                                                             0xFFFC 3FFF                      16 Kbytes                                                 64 registers

                      Internal Peripherals  256M Bytes       0xFFFC 4000                                                0xFFFF FCFF

                                                                          USART1              (Reserved on              0xFFFF FD00           RSTC      16 Bytes/

                                                             0xFFFC 7FFF                      SAM7S32/16)               0xFFFF FD0F                     4 registers

                                                             0xFFFC 8000  Reserved

        0xFFFF FFFF                                          0xFFFC BFFF                                                                      Reserved

                                                             0xFFFC C000  PWMC                16 Kbytes                 0xFFFF FD20                     16 Bytes/

                                                             0xFFFC FFFF                                                0xFFFF FC2F               RTT   4 registers

                                                             0xFFFD 0000  Reserved                                      0xFFFF FD30                     16 Bytes/

                                                             0xFFFD 3FFF                                                0xFFFF FC3F               PIT   4 registers

                                                             0xFFFD 4000  SSC                 16 Kbytes                 0xFFFF FD40                     16 Bytes/

                                                             0xFFFD 7FFF                                                                          WDT   4 registers

                                                             0xFFFD 8000                                                0xFFFF FD4F

                                                                          ADC                 16 Kbytes                                       Reserved

                                                             0xFFFD BFFF                                                0xFFFF FD60
                                                             0xFFFD C000
                                                                          Reserved                                                                      4 Bytes/
                                                                                                                                              VREG
                                                             0xFFFD FFFF                                                0xFFFF FC6F                     1 register

                                                             0xFFFE 0000  SPI                 16 Kbytes                 0xFFFF FD70           Reserved

                                                             0xFFFE 3FFF                                                0xFFFF FEFF

                                                             0xFFFE 4000  Reserved                                      0xFFFF FF00

                                                             0xFFFF EFFF                                                                          MC    256 Bytes/

                                                             0xFFFF F000                                                                                64 registers

                                                                          SYSC

                                                             0xFFFF FFFF                                                0xFFFF FFFF

                                                                                                                        SAM7S Series [DATASHEET]                        20

                                                                                                                                      6175M–ATARM–26-Oct-12
8.7    Memory Mapping

8.7.1  Internal SRAM

       z  The SAM7S512 embeds a high-speed 64-Kbyte SRAM bank.

       z  The SAM7S256 embeds a high-speed 64-Kbyte SRAM bank.

       z  The SAM7S128 embeds a high-speed 32-Kbyte SRAM bank.

       z  The SAM7S64 embeds a high-speed 16-Kbyte SRAM bank.

       z  The SAM7S321 embeds a high-speed 8-Kbyte SRAM bank.

       z  The SAM7S32 embeds a high-speed 8-Kbyte SRAM bank.

       z  The SAM7S161 embeds a high-speed 4-Kbyte SRAM bank.

       z  The SAM7S16 embeds a high-speed 4-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 available at address 0x0.

8.7.2  Internal ROM

       The SAM7S Series embeds an Internal ROM. The ROM contains the FFPI and the SAM-BA program.

       The internal ROM is not mapped by default.

8.7.3  Internal Flash

       z  The SAM7S512 features two contiguous banks (dual plane) of 256 Kbytes           of Flash.

       z  The SAM7S256 features one bank (single plane) of 256 Kbytes of Flash.

       z  The SAM7S128 features one bank (single plane) of 128 Kbytes of Flash.

       z  The SAM7S64 features one bank (single plane) of 64 Kbytes of Flash.

       z  The SAM7S321/32 features one bank (single plane) of 32 Kbytes of Flash.

       z  The SAM7S161/16 features one bank (single plane) of 16 Kbytes of Flash.

       At any time, the Flash is mapped to address 0x0010 0000. It is also accessible at  address 0x0  after  the  reset  and  before

       the Remap Command.

       Figure 8-2.  Internal Memory Mapping

                                   0x0000 0000     Flash Before Remap

                                                   SRAM After Remap                         1 MBytes

                                   0x000F FFFF

                                   0x0010 0000

                                                   Internal Flash                           1 MBytes

                                   0x001F FFFF

                                   0x0020 0000

                       256 MBytes                  Internal SRAM                            1 MBytes

                                   0x002F FFFF

                                   0x0030 0000

                                                   Undefined Areas

                                                               (Abort)                      253 MBytes

                                   0x0FFF FFFF

                                                                                          SAM7S Series [DATASHEET]                   21

                                                                                                       6175M–ATARM–26-Oct-12
8.8    Embedded Flash

8.8.1  Flash Overview

       z  The Flash of the SAM7S512 is organized in two banks (dual plane) of 1024 pages of 256 bytes. The 524,288 bytes

          are organized in 32-bit words.

       z  The Flash of the SAM7S256 is organized in 1024 pages (single plane) of 256 bytes. The 262,144 bytes are

          organized in 32-bit words.

       z  The Flash of the SAM7S128 is organized in 512 pages (single plane) of 256 bytes. The 131,072 bytes are

          organized in 32-bit words.

       z  The Flash of the SAM7S64 is organized in 512 pages (single plane) of 128 bytes. The 65,536 bytes are organized

          in 32-bit words.

       z  The Flash of the SAM7S321/32 is organized in 256 pages (single plane) of 128 bytes. The 32,768 bytes are

          organized in 32-bit words.

       z  The Flash of the SAM7S161/16 is organized in 256 pages (single plane) of 64 bytes. The 16,384 bytes are

          organized in 32-bit words.

       z  The Flash of the SAM7S512/256/128 contains a 256-byte write buffer, accessible through a 32-bit interface.

       z  The Flash of the SAM7S64/321/32/161/16 contains a 128-byte write buffer, accessible through a 32-bit interface.

       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.

       When Flash is not used (read or write access), it is automatically placed into standby mode.

8.8.2  Embedded Flash Controller

       The Embedded Flash Controller (EFC) manages accesses performed by the masters of the system. 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:

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

       z  starting commands such as full erase, page erase, page program, NVM bit set, NVM bit clear, etc.

       z  getting the end status of the last command

       z  getting error status

       z  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 are embedded in the SAM7S512 to control each bank of 256 Kbytes. Dual plane organization allows

       concurrent Read and Program. Read from one memory plane may be performed even while program or erase functions

       are being executed in the other memory plane.

       One EFC is embedded in the SAM7S256/128/64/32/321/161/16 to control the single plane 256/128/64/32/16 Kbytes.

                                                                               SAM7S Series [DATASHEET]                            22

                                                                                                     6175M–ATARM–26-Oct-12
8.8.3    Lock Regions

8.8.3.1  SAM7S512

         Two Embedded Flash Controllers each manage 16 lock bits to protect 16 regions of the flash against inadvertent flash

         erasing or programming commands. The SAM7S512 contains 32 lock regions and each lock region contains 64 pages of

         256 bytes. Each lock region has a size of 16 Kbytes.

         If a locked-region’s erase or program command occurs, the command is aborted and the LOCKE bit in the MC_FSR

         register rises and the interrupt line rises if the LOCKE bit has been written at 1 in the MC_FMR register.

         The 16 NVM bits (or 32 NVM bits) are software programmable through the corresponding 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.8.3.2  SAM7S256

         The Embedded Flash Controller manages 16 lock bits to protect 16 regions of the flash against inadvertent flash erasing

         or programming commands. The SAM7S256 contains 16 lock regions and each lock region contains 64 pages of 256

         bytes. Each lock region has a size of 16 Kbytes.

         If a locked-region’s erase or program command occurs, the command is aborted and the LOCKE bit in the MC_FSR

         register rises and the interrupt line rises if the LOCKE bit has been written at 1 in the MC_FMR register.

         The 16 NVM bits are software programmable 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.8.3.3  SAM7S128

         The Embedded Flash Controller manages 8 lock bits to protect 8 regions of the flash against inadvertent flash erasing or

         programming commands. The SAM7S128 contains 8 lock regions and each lock region contains 64 pages of 256 bytes.

         Each lock region has a size of 16 Kbytes.

         If a locked-region’s erase or program command occurs, the command is aborted and the LOCKE bit in the MC_FSR

         register rises and the interrupt line rises if the LOCKE bit has been written at 1 in the MC_FMR register.

         The 8 NVM bits are software programmable 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.8.3.4  SAM7S64

         The Embedded Flash Controller manages 16 lock bits to protect 16 regions of the flash against inadvertent flash erasing

         or programming commands. The SAM7S64 contains 16 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 LOCKE bit in the MC_FSR

         register rises and the interrupt line rises if the LOCKE bit has been written at 1 in the MC_FMR register.

         The 16 NVM bits are software programmable 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.8.3.5  SAM7S321/32

         The Embedded Flash Controller manages 8 lock bits to protect 8 regions of the flash against inadvertent flash erasing or

         programming commands. The SAM7S321/32 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 LOCKE bit in the MC_FSR

         register rises and the interrupt line rises if the LOCKE bit has been written at 1 in the MC_FMR register.

                                                                                         SAM7S Series [DATASHEET]                  23

                                                                                         6175M–ATARM–26-Oct-12
         The 8 NVM bits are software programmable 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.8.3.6  SAM7S161/16

         The Embedded Flash Controller manages 8 lock bits to protect 8 regions of the flash against inadvertent flash erasing or

         programming commands. The SAM7S161/16 contains 8 lock regions and each lock region contains 32 pages of 64

         bytes. Each lock region has a size of 2 Kbytes.

         If a locked-region’s erase or program command occurs, the command is aborted and the LOCKE bit in the MC_FSR

         register rises and the interrupt line rises if the LOCKE bit has been written at 1 in the MC_FMR register.

         The 8 NVM bits are software programmable 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.

         Table 8-1 summarizes the configuration of the eight devices.

Table 8-1.     Flash  Configuration  Summary

Device                               Number of  Lock  Bits     Number of Pages in the Lock Region         Page Size

SAM7S512                             32                        64                                         256 bytes

SAM7S256                             16                        64                                         256 bytes

SAM7S128                             8                         64                                         256 bytes

SAM7S64                              16                        32                                         128 bytes

SAM7S321/32                          8                         32                                         128 bytes

SAM7S161/16                          8                         32                                         64 bytes

8.8.4    Security Bit Feature

         The SAM7S Series 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. This ensures the

         confidentiality of the code programmed in the Flash.

         This 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 50 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.8.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 General-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.

              The 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.

                                                                                         SAM7S Series [DATASHEET]                  24

                                                                                                          6175M–ATARM–26-Oct-12
8.8.6  Calibration Bits

       Eight 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.9    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-programming 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 is tied low.

8.10   SAM-BA Boot Assistant

       The SAM-BA® Boot Recovery restores the SAM-BA Boot in the first two sectors of the on-chip Flash memory. The

       SAM-BA Boot recovery is performed when the TST pin and the PA0, PA1 and PA2 pins are all tied high for 10 sec-

       onds. Then, a power cycle of the board is mandatory.

       The SAM-BA Boot Assistant is a default Boot Program that provides an easy way to program in situ the on-chip Flash

       memory.

       The SAM-BA Boot Assistant supports serial communication through the DBGU or through the USB Device Port. (The

       SAM7S32/16 have no USB Device Port.)

       z  Communication through the DBGU supports a wide range of crystals from 3 to 20 MHz via software auto-

          detection.

       z  Communication through 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).

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 26 and Figure 9-2 on page 27 show the product specific System Controller Block Diagrams.

       Figure 8-1 on page 20 shows the mapping of the of the User Interface of the System Controller peripherals. Note that the

       memory controller configuration user interface is also mapped within this address space.

                                                                SAM7S Series [DATASHEET]                                         25

                                                                                                 6175M–ATARM–26-Oct-12
Figure  9-1.  System  Controller Block Diagram (SAM7S512/256/128/64/321/161)

                                                          System Controller                                        jtag_nreset        Boundary Scan

                                                                                                                                      TAP Controller

                                  irq0-irq1                                                                             nirq

                                     fiq                     Advanced                                                   nfiq

                                                             Interrupt

                      periph_irq[2..14]                      Controller                                            proc_nreset        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

                          power_on_reset                     Timer

                                  SLCK                       Real-Time                                             flash_poe          Embedded

                                                             Timer                  rtt_irq                                           Flash

                          power_on_reset                                                                           flash_wrdis

                                  SLCK                                                                                  cal

                                  debug                      Watchdog               wdt_irq                        gpnvm[0..1]

                                  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  Reset                  periph_nreset

                                             jtag_nreset     Controller             proc_nreset        Voltage

                      POR                    flash_poe                                                 Regulator

                                                                                                                       standby

                                                                                                       Mode                           Voltage

              NRST                                                                  rstc_irq           Controller                     Regulator

                                  SLCK                                                                             cal

                      RCOSC       SLCK                                              periph_clk[2..14]

                                                                                                                       UDPCK

                                                                                    pck[0-2]                       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..14]

                                                                                                                   periph_nreset

                                                                                                                                      Embedded

                      periph_nreset                                                 periph_irq{2]                                     Peripherals

                          periph_clk[2]                                             irq0-irq1

                             dbgu_rxd                        PIO                    fiq                            periph_irq[4..14]

                                                             Controller             dbgu_txd

                                                                                                                   in

        PA0-PA31                                                                                                   out

                                                                                                                   enable

                                                                                                                   SAM7S Series [DATASHEET]                  26

                                                                                                                                      6175M–ATARM–26-Oct-12
Figure  9-2.  System  Controller Block Diagram (SAM7S32/16)

                                                       System Controller                                        jtag_nreset        Boundary Scan

                                                                                                                                   TAP Controller

                                  irq0                                                                               nirq

                                  fiq                     Advanced                                                   nfiq

                                                          Interrupt

                      periph_irq[2..14]                   Controller                                            proc_nreset        ARM7TDMI

                                                                                 int                                 PCK

                      pit_irq                                                                                       debug

                      rtt_irq

                      wdt_irq

                      dbgu_irq                                                                                  power_on_reset

                      pmc_irq

                      rstc_irq

                                                                                                                force_ntrst

                                  MCK                                            dbgu_irq

                          periph_nreset                   Debug                  force_ntrst

                                                          Unit

                                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..1]

                                  idle                    Timer

                           proc_nreset

                             cal          gpnvm[1]                    wdt_fault

                             gpnvm[0]                                 WDRPROC

                                                                                                                     MCK

                      en                                  bod_rst_en                                                               Memory

                      BOD                 flash_wrdis                                                           proc_nreset        Controller

                                          power_on_reset  Reset                  periph_nreset

                      POR                 jtag_nreset     Controller             proc_nreset        Voltage

                                          flash_poe                                                 Regulator       standby

                                                                                                    Mode                           Voltage

              NRST                                                               rstc_irq           Controller                     Regulator

                                  SLCK                                                                          cal

                      RCOSC       SLCK                                           periph_clk[2..14]

                                                                                 pck[0-2]

              XIN                 MAINCK                  Power

                      OSC                                 Management             PCK

              XOUT                                        Controller

                                                                                 MCK

              PLLRC   PLL         PLLCK

                                                                                 pmc_irq

                                  int

                      periph_nreset                                              idle

                                                                                                                periph_clk[4..14]

                                                                                                                periph_nreset

                                                                                                                                   Embedded

                      periph_nreset                                              periph_irq{2]                                     Peripherals

                          periph_clk[2]                                          irq0

                             dbgu_rxd                     PIO                    fiq                            periph_irq[4..14]

                                                          Controller             dbgu_txd

                                                                                                                in

        PA0-PA20                                                                                                out

                                                                                                                enable

                                                                                                                SAM7S Series [DATASHEET]                  27

                                                                                                                                   6175M–ATARM–26-Oct-12
9.1    Reset Controller

       The Reset Controller is based on a power-on reset cell and one brownout detector. It gives the status of the last reset,

       indicating whether it is a power-up reset, a software reset, a user reset, a watchdog reset or a brownout reset. In addition,

       it controls the internal resets and the NRST pin open-drain output. It allows to shape a signal on the NRST line,

       guaranteeing that the length of the pulse meets any requirement.

       Note that if NRST is used as a reset output signal for external devices during power-off, the brownout detector must be

       activated.

9.1.1  Brownout Detector and Power-on Reset

       The SAM7S Series embeds a brownout detection circuit and a power-on reset cell. Both are supplied with and monitor

       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 controller and allows a full re-initialization of the

       device.

       The brownout detector monitors the VDDCORE level during operation by comparing it to a fixed trigger level. It secures

       system operations in the most difficult environments and prevents code corruption in case of brownout on the

       VDDCORE.

       Only VDDCORE is monitored.

       When the brownout detector is enabled and VDDCORE decreases to a value below the trigger level (Vbot-, defined as

       Vbot - hyst/2), the brownout output is immediately activated.

       When VDDCORE increases above the trigger level (Vbot+, defined as Vbot + 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 threshold voltage has a hysteresis of about 50 mV, to ensure spike free brownout detection. The typical value of the

       brownout detector threshold is 1.68V with an accuracy of ± 2% 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 deactivation is configured through the GPNVM bit 0 of

       the Flash.

                                                                         SAM7S Series [DATASHEET]                                     28

                                                                                                 6175M–ATARM–26-Oct-12
9.2  Clock Generator

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

     characteristics:

     z  RC Oscillator ranges between 22 kHz and 42 kHz

     z  Main Oscillator frequency ranges between 3 and 20 MHz

     z  Main Oscillator can be bypassed

     z  PLL output ranges between 80 and 220 MHz

     It provides SLCK, MAINCK and PLLCK.

     Figure 9-3.  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:

     z  the Processor Clock PCK

     z  the Master Clock MCK

     z  the USB Clock UDPCK (not present on SAM7S32/16)

     z  all the peripheral clocks, independently controllable

     z  three programmable clock outputs

     The Master Clock (MCK) is programmable from a few hundred Hz to the maximum operating frequency of the device.

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

     while waiting for an interrupt.

                                                                                                SAM7S Series [DATASHEET]              29

                                                                                                               6175M–ATARM–26-Oct-12
     Figure 9-4.  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

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

     z  Individually maskable and vectored interrupt sources

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

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

        z         Other sources control the peripheral interrupts or external interrupts

        z         Programmable edge-triggered or level-sensitive internal sources

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

     z  8-level Priority Controller

        z         Drives the normal interrupt of the processor

        z         Handles priority of the interrupt sources

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

     z  Vectoring

        z         Optimizes interrupt service routine branch and execution

        z         One 32-bit vector register per interrupt source

        z         Interrupt vector register reads the corresponding current interrupt vector

     z  Protect Mode

        z         Easy debugging by preventing automatic operations

     z  Fast Forcing

        z         Permits redirecting any interrupt source on the fast interrupt

     z  General Interrupt Mask

        z         Provides processor synchronization on events without triggering an interrupt

                                                                                                 SAM7S Series [DATASHEET]                  30

                                                                                                                    6175M–ATARM–26-Oct-12
9.5  Debug Unit

     z      Comprises:

            z  One two-pin UART

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

            z  One set of Chip ID Registers

            z  One Interface providing ICE Access Prevention

     z      Two-pin UART

            z  Implemented features are compatible with the USART

            z  Programmable Baud Rate Generator

            z  Parity, Framing and Overrun Error

            z  Automatic Echo, Local Loopback and Remote Loopback Channel Modes

     z      Debug Communication Channel Support

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

     z      Chip ID Registers

            z  Identification of the device revision, sizes of the embedded memories, set of peripherals

            z  Chip ID is 0x270B0A40 for AT91SAM7S512 Rev A

            z  Chip ID is 0x270B0A4F for AT91SAM7S512 Rev B

            z  Chip ID is 0x270D0940 for AT91SAM7S256 Rev A

            z  Chip ID is 0x270B0941 for AT91SAM7S256 Rev B

            z  Chip ID is 0x270B0942 for AT91SAM7S256 Rev C

            z  Chip ID is 0x270B0943 for AT91SAM7S256 Rev D

            z  Chip ID is 0x270C0740 for AT91SAM7S128 Rev A

            z  Chip ID is 0x270A0741 for AT91SAM7S128 Rev B

            z  Chip ID is 0x270A0742 for AT91SAM7S128 Rev C

            z  Chip ID is 0x270A0743 for AT91SAM7S128 Rev D

            z  Chip ID is 0x27090540 for AT91SAM7S64 Rev A

            z  Chip ID is 0x27090543 for AT91SAM7S64 Rev B

            z  Chip ID is 0x27090544 for AT91SAM7S64 Rev C

            z  Chip ID is 0x27080342 for AT91SAM7S321 Rev A

            z  Chip ID is 0x27080340 for AT91SAM7S32 Rev A

            z  Chip ID is 0x27080341 for AT91SAM7S32 Rev B

            z  Chip ID is 0x27050241 for AT9SAM7S161 Rev A

            z  Chip ID is 0x27050240 for AT91SAM7S16 Rev A

     Note:  Refer to the errata section of the datasheet for updates on chip ID.

9.6  Periodic Interval Timer

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

9.7  Watchdog Timer

     z      12-bit key-protected Programmable Counter running on prescaled SCLK

     z      Provides reset or interrupt signals to the system

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

                                                                                  SAM7S Series [DATASHEET]       31

                                                                                          6175M–ATARM–26-Oct-12
9.8   Real-time Timer

      z    32-bit free-running counter with alarm running on prescaled SCLK

      z    Programmable 16-bit prescaler for SLCK accuracy compensation

9.9   PIO  Controller

      z    One PIO Controller, controlling 32 I/O lines (21 for SAM7S32/16)

      z    Fully programmable through set/clear registers

      z    Multiplexing of two peripheral functions per I/O line

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

           z  Input change interrupt

           z  Half a clock period glitch filter

           z  Multi-drive option enables driving in open drain

           z  Programmable pull-up on each I/O line

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

      z    Synchronous output, provides Set and Clear of several I/O lines in a single write

9.10  Voltage Regulator Controller

      The aim 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).

                                                                             SAM7S Series [DATASHEET]                              32

                                                                                                      6175M–ATARM–26-Oct-12
10.   Peripherals

10.1  User Interface

      The User Peripherals are mapped in the 256 MBytes of address space between 0xF000 0000 and 0xFFFF EFFF. Each

      peripheral is allocated 16 Kbytes of address space.

      A complete memory map is provided in Figure 8-1 on page 20.

10.2  Peripheral Identifiers

      The SAM7S Series embeds a wide range of peripherals. Table 10-1 defines the Peripheral Identifiers of the

      SAM7S512/256/128/64/321/161. Table 10-2 defines the Peripheral Identifiers of the SAM7S32/16. A peripheral identifier

      is required for the control of the peripheral interrupt with the Advanced Interrupt Controller and for the control of the

      peripheral clock with the Power Management Controller.

      Table 10-1.  Peripheral Identifiers  (SAM7S512/256/128/64/321/161)

      Peripheral      Peripheral           Peripheral                         External

      ID              Mnemonic             Name                               Interrupt

      0               AIC                  Advanced Interrupt Controller      FIQ

      1               SYSC(1)              System

      2               PIOA                 Parallel I/O Controller A

      3               Reserved

      4               ADC(1)               Analog-to Digital Converter

      5               SPI                  Serial Peripheral Interface

      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 - 29         Reserved

      30              AIC                  Advanced Interrupt Controller      IRQ0

      31              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 System 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.

      Note:    1.  Setting SYSC and ADC bits in the clock set/clear registers of the PMC has no effect. The System 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.

                                                                              SAM7S Series [DATASHEET]                           33

                                                                                    6175M–ATARM–26-Oct-12
      Table 10-2.  Peripheral Identifiers  (SAM7S32/16)

      Peripheral   Peripheral              Peripheral                                           External

      ID           Mnemonic                Name                                                 Interrupt

      0            AIC                     Advanced Interrupt Controller                        FIQ

      1            SYSC(1)                 System

      2            PIOA                    Parallel I/O Controller A

      3            Reserved

      4            ADC(1)                  Analog-to Digital Converter

      5            SPI                     Serial Peripheral Interface

      6            US                      USART

      7            Reserved

      8            SSC                     Synchronous Serial Controller

      9            TWI                     Two-wire Interface

      10           PWMC                    PWM Controller

      11           Reserved

      12           TC0                     Timer/Counter 0

      13           TC1                     Timer/Counter 1

      14           TC2                     Timer/Counter 2

      15 - 29      Reserved

      30           AIC                     Advanced Interrupt Controller                        IRQ0

      31           Reserved

10.3  Peripheral Multiplexing on PIO Lines

      The SAM7S Series features one PIO controller, PIOA, that multiplexes the I/O lines of the peripheral set.

      PIO Controller A controls 32 lines (21 lines for SAM7S32/16). 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-3, “Multiplexing on PIO Controller A  (SAM7S512/256/128/64/321/161),” on page 35 and Table 10-4,

      “Multiplexing on PIO Controller A (SAM7S32/16),” on page 36 define how the I/O lines of the peripherals A, B or the

      analog inputs are multiplexed on the PIO Controller A. 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.

      All pins reset in their Parallel I/O lines function are 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.

                                                                              SAM7S Series [DATASHEET]                                34

                                                                                                      6175M–ATARM–26-Oct-12
10.4  PIO Controller A Multiplexing

Table 10-3.  Multiplexing on PIO Controller A  (SAM7S512/256/128/64/321/161)

                           PIO Controller A                Application Usage

I/O Line     Peripheral A  Peripheral B        Comments    Function           Comments

PA0          PWM0          TIOA0               High-Drive

PA1          PWM1          TIOB0               High-Drive

PA2          PWM2          SCK0                High-Drive

PA3          TWD           NPCS3               High-Drive

PA4          TWCK          TCLK0

PA5          RXD0          NPCS3

PA6          TXD0          PCK0

PA7          RTS0          PWM3

PA8          CTS0          ADTRG

PA9          DRXD          NPCS1

PA10         DTXD          NPCS2

PA11         NPCS0         PWM0

PA12         MISO          PWM1

PA13         MOSI          PWM2

PA14         SPCK          PWM3

PA15         TF            TIOA1

PA16         TK            TIOB1

PA17         TD            PCK1                AD0

PA18         RD            PCK2                AD1

PA19         RK            FIQ                 AD2

PA20         RF            IRQ0                AD3

PA21         RXD1          PCK1

PA22         TXD1          NPCS3

PA23         SCK1          PWM0

PA24         RTS1          PWM1

PA25         CTS1          PWM2

PA26         DCD1          TIOA2

PA27         DTR1          TIOB2

PA28         DSR1          TCLK1

PA29         RI1           TCLK2

PA30         IRQ1          NPCS2

PA31         NPCS1         PCK2

                                                                              SAM7S Series [DATASHEET]  35

                                                                              6175M–ATARM–26-Oct-12
Table 10-4.  Multiplexing on PIO Controller A (SAM7S32/16)

                           PIO Controller A                 Application Usage

I/O Line     Peripheral A  Peripheral B      Comments       Function           Comments

PA0          PWM0          TIOA0             High-Drive

PA1          PWM1          TIOB0             High-Drive

PA2          PWM2          SCK0              High-Drive

PA3          TWD           NPCS3             High-Drive

PA4          TWCK          TCLK0

PA5          RXD0          NPCS3

PA6          TXD0          PCK0

PA7          RTS0          PWM3

PA8          CTS0          ADTRG

PA9          DRXD          NPCS1

PA10         DTXD          NPCS2

PA11         NPCS0         PWM0

PA12         MISO          PWM1

PA13         MOSI          PWM2

PA14         SPCK          PWM3

PA15         TF            TIOA1

PA16         TK            TIOB1

PA17         TD            PCK1              AD0

PA18         RD            PCK2              AD1

PA19         RK            FIQ               AD2

PA20         RF            IRQ0              AD3

                                                                      SAM7S Series [DATASHEET]        36

                                                                               6175M–ATARM–26-Oct-12
10.5  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

            8- to 16-bit programmable data length per chip select

            Programmable phase and polarity per chip select

            Programmable transfer delays between consecutive transfers and between clock and data   per          chip      select

            Programmable delay between consecutive transfers

            Selectable mode fault detection

            Maximum frequency at up to Master Clock

10.6  Two-wire Interface

        Master Mode only (SAM7S512/256/128/64/321/32)

        Master, Multi-Master and Slave Mode support (SAM7S161/16)

        General Call supported in Slave Mode (SAM7S161/16)

        Compatibility with I2C compatible devices (refer to the TWI sections of the datasheet)

        One, two or three bytes internal address registers for easy Serial Memory access

        7-bit or 10-bit slave addressing

        Sequential read/write operations

10.7  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 (not present                      on  SAM7S32/16)

            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

                                                                                    SAM7S Series [DATASHEET]                37

                                                                                                     6175M–ATARM–26-Oct-12
10.8   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

         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.9   Timer Counter

         Three 16-bit Timer Counter Channels

                   Two output compare or one input capture per channel (except  for  SAM7S32/16  which      have  only  two

                    channels connected to the PIO)

         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 (The SAM7S32/16 have one)

                   Five internal clock inputs, as defined in Table 10-5

       Table 10-5.  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.10  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

                                                                                      SAM7S Series [DATASHEET]                38

                                                                                                  6175M–ATARM–26-Oct-12
              Programmable center or left aligned output waveform

10.11  USB  Device Port (Does not pertain to SAM7S32/16)

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

           Embedded USB V2.0 full-speed transceiver

           Embedded 328-byte dual-port RAM for endpoints

           Four endpoints

              Endpoint 0: 8 bytes

              Endpoint 1 and 2: 64 bytes ping-pong

              Endpoint 3: 64 bytes

              Ping-pong Mode (two memory banks) for isochronous and              bulk  endpoints

           Suspend/resume logic

10.12  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 source

              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

           Four of eight analog inputs shared with digital signals

                                                                                          SAM7S Series [DATASHEET]        39

                                                                                                   6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  40

6175M–ATARM–26-Oct-12
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 processor implements Von Neuman archi-

      tecture, 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)

                                                            SAM7S Series [DATASHEET]                                  41

                                                                                              6175M–ATARM–26-Oct-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        interrupts 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.

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

        ter 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.

                                                                                    SAM7S Series [DATASHEET]                   42

                                                                                                    6175M–ATARM–26-Oct-12
          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 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 without having to save

          these registers.

          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 Pro-

          gram Status Register (CPSR). The CPSR holds:

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

                                                                               SAM7S Series [DATASHEET]                           43

                                                                                                    6175M–ATARM–26-Oct-12
          • 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]).

          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

                                                                                            SAM7S Series [DATASHEET]              44

                                                                                                           6175M–ATARM–26-Oct-12
        Table 11-2.  ARM Instruction Mnemonic List

        Mnemonic     Operation                              Mnemonic  Operation

        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 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

                                                                                      SAM7S Series [DATASHEET]                45

                                                                                                       6175M–ATARM–26-Oct-12
Table 11-3.  Thumb Instruction       Mnemonic  List

Mnemonic     Operation                               Mnemonic  Operation

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

                                                               SAM7S Series [DATASHEET]                       46

                                                                                       6175M–ATARM–26-Oct-12
12. Debug and Test Features

12.1  Description

      The SAM7S Series Microcontrollers feature a number of complementary debug and test capabilities. A common

      JTAG/ICE (EmbeddedICE) 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

                                                                     SAM7S Series [DATASHEET]                             47

                                                                          6175M–ATARM–26-Oct-12
12.3    Application Examples

12.3.1  Debug Environment

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

        dard 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

                              SAM7S      RS232               Terminal

                                         Connector

                              SAM7S-based Application Board

                                                             SAM7S Series [DATASHEET]                               48

                                                                            6175M–ATARM–26-Oct-12
12.3.2  Test Environment

        Figure 12-3 on page 49 shows a test environment example. Test      vectors are sent  and interpreted  by the tester. 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

                                                SAM7S              Chip 1

                          SAM7S-based Application Board In Test

                                                                           SAM7S Series [DATASHEET]                 49

                                                                                             6175M–ATARM–26-Oct-12
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

                                                                         SAM7S Series [DATASHEET]     50

                                                                               6175M–ATARM–26-Oct-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 manufac-

        turing 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 exam-

        ined 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.

        EmbeddedICE 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 EmbeddedICE, see the ARM7TDMI (Rev4) Technical Reference Manual (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 pur-

        poses 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.     SAM7S  Series  Debug   Unit  Chip  ID

        Chip Name                                                               Chip ID

        AT91SAM7S16 Rev A                                                       0x27050240

        AT91SAM7S161 Rev A                                                      0x27050241

        AT91SAM7S32 Rev A                                                       0x27080340

        AT91SAM7S32 Rev B                                                       0x27080341

        AT91SAM7S321 Rev A                                                      0x27080342

        AT91SAM7S64 Rev A                                                       0x27090540

        AT91SAM7S64 Rev B                                                       0x27090543

        AT91SAM7S64 Rev C                                                       0x27090544

        AT91SAM7S128 Rev A                                                      0x270C0740

                                                                                SAM7S Series [DATASHEET]                     51

                                                                                              6175M–ATARM–26-Oct-12
          Table 12-2.  SAM7S  Series         Debug  Unit  Chip  ID  (Continued)

          AT91SAM7S128 Rev B                                                        0x270A0741

          AT91SAM7S128 Rev C                                                        0x270A0742

          AT91SAM7S128 Rev D                                                        0x270A0743

          AT91SAM7S256 Rev A                                                        0x270D0940

          AT91SAM7S256 Rev B                                                        0x270B0941

          AT91SAM7S256 Rev C                                                        0x270B0942

          AT91SAM7S256 Rev D                                                        0x270B0943

          AT91SAM7S512 Rev A                                                        0x270B0A40

          AT91SAM7S512 Rev B                                                        0x270B0A4F

          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.

          IEEE 1149.1 JTAG Boundary Scan is enabled when JTAGSEL is high. The SAMPLE, EXTEST and BYPASS func-

          tions 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 performed after JTAG-

          SEL is changed.

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

12.5.4.1  JTAG Boundary-scan Register

          The Boundary-scan Register (BSR) contains 96 bits that correspond to active pins and associated control signals.

          Each SAM7Sxx 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.

          Table 12-3.  SAM7Sxx  JTAG Boundary Scan              Register

                                                                                          Associated BSR

          Bit Number                         Pin Name                     Pin Type              Cells

          96                                                                              INPUT

          95                    PA17/PGMD5/AD0                            IN/OUT          OUTPUT

          94                                                                              CONTROL

          93                                                                              INPUT

          92                    PA18/PGMD6/AD1                            IN/OUT          OUTPUT

          91                                                                              CONTROL

          90                                                                              INPUT(1)

          89                                 PA21/PGMD9*                  IN/OUT*         OUTPUT(1)

          88                                                                              CONTROL(1)

                                                                                          SAM7S Series [DATASHEET]            52

                                                                                                       6175M–ATARM–26-Oct-12
Table 12-3.  SAM7Sxx  JTAG Boundary Scan  Register  (Continued)

                                                                 Associated BSR

Bit Number            Pin Name                      Pin Type     Cells

87                                                               INPUT

86                    PA19/PGMD7/AD2                IN/OUT       OUTPUT

85                                                               CONTROL

84                                                               INPUT

83                    PA20/PGMD8/AD3                IN/OUT       OUTPUT

82                                                               CONTROL

81                                                               INPUT

80                    PA16/PGMD4                    IN/OUT       OUTPUT

79                                                               CONTROL

78                                                               INPUT

77                    PA15/PGM3                     IN/OUT       OUTPUT

76                                                               CONTROL

75                                                               INPUT

74                    PA14/PGMD2                    IN/OUT       OUTPUT

73                                                               CONTROL

72                                                               INPUT

71                    PA13/PGMD1                    IN/OUT       OUTPUT

70                                                               CONTROL

69                                                               INPUT(1)

68                    PA22/PGMD10*                  IN/OUT*      OUTPUT(1)

67                                                               CONTROL(1)

66                                                               INPUT(1)

65                    PA23/PGMD11*                  IN/OUT*      OUTPUT(1)

64                                                               CONTROL(1)

63                                                               INPUT(1)

62                    PA24/PGMD12*                  IN/OUT*      OUTPUT(1)

61                                                               CONTROL(1)

60                                                               INPUT

59                    PA12/PGMD0                    IN/OUT       OUTPUT

58                                                               CONTROL

57                                                               INPUT

56                    PA11/PGMM3                    IN/OUT       OUTPUT

55                                                               CONTROL

54                                                               INPUT

53                    PA10/PGMM2                    IN/OUT       OUTPUT

52                                                               CONTROL

                                                                 SAM7S Series [DATASHEET]          53

                                                                            6175M–ATARM–26-Oct-12
Table 12-3.  SAM7Sxx  JTAG Boundary Scan  Register  (Continued)

                                                                 Associated BSR

Bit Number            Pin Name                      Pin Type     Cells

51                                                               INPUT

50                    PA9/PGMM1                     IN/OUT       OUTPUT

49                                                               CONTROL

48                                                               INPUT

47                    PA8/PGMM0                     IN/OUT       OUTPUT

46                                                               CONTROL

45                                                               INPUT

44                    PA7/PGMNVALID                 IN/OUT       OUTPUT

43                                                               CONTROL

42                                                               INPUT

41                    PA6/PGMNOE                    IN/OUT       OUTPUT

40                                                               CONTROL

39                                                               INPUT

38                    PA5/PGMRDY                    IN/OUT       OUTPUT

37                                                               CONTROL

36                                                               INPUT

35                    PA4/PGMNCMD                   IN/OUT       OUTPUT

34                                                               CONTROL

33                                                               INPUT(1)

32                    PA25/PGMD13                   IN/OUT       OUTPUT(1)

31                                                               CONTROL(1)

30                                                               INPUT(1)

29                    PA26/PGMD14                   IN/OUT       OUTPUT(1)

28                                                               CONTROL(1)

27                                                               INPUT(1)

26                    PA27/PGMD15                   IN/OUT       OUTPUT(1)

25                                                               CONTROL(1)

24                                                               INPUT(1)

23                    PA28                          IN/OUT       OUTPUT(1)

22                                                               CONTROL(1)

21                                                               INPUT

20                    PA3                           IN/OUT       OUTPUT

19                                                               CONTROL

18                                                               INPUT

17                    PA2                           IN/OUT       OUTPUT

16                                                               CONTROL

                                                                 SAM7S Series [DATASHEET]          54

                                                                            6175M–ATARM–26-Oct-12
Table 12-3.  SAM7Sxx JTAG Boundary Scan          Register  (Continued)

                                                                        Associated BSR

Bit    Number                        Pin Name              Pin Type     Cells

       15                                                               INPUT

       14                            PA1/PGMEN1            IN/OUT       OUTPUT

       13                                                               CONTROL

       12                                                               INPUT

       11                            PA0/PGMEN0            IN/OUT       OUTPUT

       10                                                               CONTROL

       9                                                                INPUT(1)

       8                             PA29                  IN/OUT       OUTPUT(1)

       7                                                                CONTROL(1)

       6                                                                INPUT(1)

       5                             PA30                  IN/OUT       OUTPUT(1)

       4                                                                CONTROL(1)

       3                                                                INPUT(1)

       2                             PA31                  IN/OUT       OUTPUT(1)

       1                                                                CONTROL(1)

       0                             ERASE                 IN           INPUT

Note:  1.    Does  not  pertain  to  SAM7S32.

                                                                        SAM7S Series [DATASHEET]          55

                                                                                   6175M–ATARM–26-Oct-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

The JTAG D is used in the IEEE 1149.1 JTAG Boundary Scan.

•  VERSION[31:28]: Product Version Number

Set to 0x0.

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

   Chip Name                                                            Chip ID

   AT91SAM7S16                                                          0x5B22

   AT91SAM7S161                                                         0x5B1F

   AT91SAM7S32                                                          0x5B07

   AT91SAM7S321                                                         0x5B12

   AT91SAM7S64                                                          0x5B06

   AT91SAM7S128                                                         0x5B09

   AT91SAM7S256                                                         0x5B0A

   AT91SAM7S512                                                         0x5B1A

•  MANUFACTURER IDENTITY[11:1]

Set to 0x01F.

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

Set to 0x1.

   Chip Name                                                            JTAG ID Code

   AT91SAM7S16                                                          05B2_203F

   AT91SAM7S161                                                         05B1_F03F

   AT91SAM7S32                                                          05B0_703F

   AT91SAM7S321                                                         05B1_203F

   AT91SAM7S64                                                          05B0_603F

   AT91SAM7S128                                                         05B0_A03F

   AT91SAM7S256                                                         05B0_903F

   AT91SAM7S512                                                         05B1_A03F

                                                                    SAM7S Series [DATASHEET]       56

                                                                        6175M–ATARM–26-Oct-12
13. Reset Controller (RSTC)

13.1  Overview

      The Reset Controller (RSTC), based on power-on reset cells, handles all the resets of the system 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 proces-

      sor resets.

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

13.2  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

                                                                                         SAM7S Series [DATASHEET]         57

                                                                                         6175M–ATARM–26-Oct-12
13.3      Functional Description

13.3.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 software 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 Oscillator Characteristics in the Electrical

          Characteristics section of the product documentation.

13.3.2    NRST Manager

          The NRST Manager samples the NRST input pin and drives this pin low when required by the Reset State Man-

          ager. 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.3.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. Writ-

          ing 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.

          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.

                                                                                             SAM7S Series [DATASHEET]               58

                                                                                                         6175M–ATARM–26-Oct-12
13.3.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.3.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 cor-

          responding 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

                                                                                    SAM7S Series [DATASHEET]                     59

                                                                                                          6175M–ATARM–26-Oct-12
13.3.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 per-

          formed when the processor reset is released.

13.3.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

                                                                               SAM7S Series [DATASHEET]                            60

                                                                               6175M–ATARM–26-Oct-12
13.3.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 behavior 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. However, 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.

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

                                                                                         SAM7S Series [DATASHEET]            61

                                                                                                      6175M–ATARM–26-Oct-12
13.3.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 Y 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.

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)

                                                                                      SAM7S Series [DATASHEET]                   62

                                                                                                          6175M–ATARM–26-Oct-12
13.3.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, PERRST must always be used in conjunction with PROCRST (PERRST and

          PROCRST set both 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 commands can be per-

          formed independently or simultaneously. The software reset lasts Y 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.; synchronously 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.

          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 per-

          formed 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.3.4.5  Watchdog Reset

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

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

                                                                                                         SAM7S Series [DATASHEET]                        63

                                                                                                                                  6175M–ATARM–26-Oct-12
• 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.

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)

                                                                            SAM7S Series [DATASHEET]                   64

                                                                                                6175M–ATARM–26-Oct-12
13.3.5     Reset State Priorities

        The Reset State Manager manages the following priorities between the different reset sources, given in descend-

        ing 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.3.6     Reset Controller Status Register

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

        •  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.

                                                                                        SAM7S Series [DATASHEET]                 65

                                                                                                          6175M–ATARM–26-Oct-12
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)

                                                                                SAM7S  Series [DATASHEET]           66

                                                                                             6175M–ATARM–26-Oct-12
13.4    Reset Controller (RSTC) User Interface

Table 13-1.  Register Mapping

Offset       Register                           Name     Access      Reset

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

                                                         SAM7S Series [DATASHEET]           67

                                                                     6175M–ATARM–26-Oct-12
13.4.1      Reset Controller Control Register

Register Name:    RSTC_CR

Access Type:      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.

                                                                                          SAM7S Series [DATASHEET]                     68

                                                                                                            6175M–ATARM–26-Oct-12
13.4.2      Reset Controller Status Register

Register Name:         RSTC_SR

Access Type:           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.

                                                                                 SAM7S Series [DATASHEET]                          69

                                                                                                        6175M–ATARM–26-Oct-12
13.4.3      Reset Controller Mode Register

Register Name:    RSTC_MR

Access Type:      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.

                                                                                  SAM7S Series [DATASHEET]                       70

                                                                                                    6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  71

6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  72

6175M–ATARM–26-Oct-12
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  generates  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 Regis-

      ter (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, corresponding 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 trig-

      ger 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.

      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 advisable to read this register twice at the

      same value to improve accuracy of the returned value.

                                                                                      SAM7S Series [DATASHEET]                73

                                                                                         6175M–ATARM–26-Oct-12
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 programmed 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

                                                                        SAM7S Series [DATASHEET]                               74

                                                                                              6175M–ATARM–26-Oct-12
14.4    Real-time Timer (RTT)  User  Interface

Table 14-1.  Register Mapping

Offset       Register                           Name    Access      Reset

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

                                                        SAM7S Series [DATASHEET]           75

                                                                    6175M–ATARM–26-Oct-12
14.4.1      Real-time Timer Mode Register

Register Name:  RTT_MR

Access Type:    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.

                                                                       SAM7S Series [DATASHEET]                         76

                                                                               6175M–ATARM–26-Oct-12
14.4.2      Real-time Timer Alarm  Register

Register Name:        RTT_AR

Access Type:          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.

                                                                          SAM7S  Series [DATASHEET]         77

                                                                                 6175M–ATARM–26-Oct-12
14.4.3      Real-time Timer Value Register

Register Name:  RTT_VR

Access Type:    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.

                                                                 SAM7S  Series [DATASHEET]         78

                                                                        6175M–ATARM–26-Oct-12
14.4.4      Real-time Timer Status Register

Register Name:  RTT_SR

Access Type:    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.

                                                                                     SAM7S  Series [DATASHEET]         79

                                                                                            6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  80

6175M–ATARM–26-Oct-12
15. Periodic Interval Timer (PIT)

15.1  Overview

      The Periodic Interval Timer (PIT) provides  the operating system’s scheduler interrupt.  It  is  designed  to  offer  maxi-

      mum accuracy and efficient management,      even for systems with long response time.

15.2  Block Diagram

Figure 15-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

                                                                       SAM7S Series [DATASHEET]                                    81

                                                                                                   6175M–ATARM–26-Oct-12
15.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 Register (PIT_SR) rises and triggers an interrupt, pro-

        vided 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 over-

        flow 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 example, 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 15-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 count-

        ing, only if the PITEN is set again.

        The PIT is stopped when the core enters debug state.

Figure  15-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

                                                                                     SAM7S Series [DATASHEET]                   82

                                                                                                         6175M–ATARM–26-Oct-12
15.4    Periodic Interval Timer (PIT) User     Interface

Table 15-1.  Register Mapping

Offset       Register                          Name       Access      Reset

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

                                                          SAM7S Series [DATASHEET]           83

                                                                      6175M–ATARM–26-Oct-12
15.4.1      Periodic Interval Timer Mode Register

Register Name:  PIT_MR

Access Type:    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.

                                                                            SAM7S Series [DATASHEET]                      84

                                                                                     6175M–ATARM–26-Oct-12
15.4.2      Periodic Interval Timer Status Register

Register Name:  PIT_SR

Access Type:    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.

                                                                                       SAM7S  Series [DATASHEET]         85

                                                                                              6175M–ATARM–26-Oct-12
15.4.3      Periodic Interval Timer Value Register

Register Name:  PIT_PIVR

Access Type:    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.

                                                                                         SAM7S Series [DATASHEET]                    86

                                                                                                          6175M–ATARM–26-Oct-12
15.4.4      Periodic Interval Timer Image Register

Register Name:  PIT_PIIR

Access Type:    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.

                                                                                         SAM7S Series [DATASHEET]                    87

                                                                                                          6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  88

6175M–ATARM–26-Oct-12
16. Watchdog Timer (WDT)

16.1  Overview

      The Watchdog Timer can be used to prevent system lock-up if the software becomes trapped in a deadlock. It fea-

      tures 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.

16.2  Block Diagram

Figure 16-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

                                                                              SAM7S Series [DATASHEET]                    89

                                                                                       6175M–ATARM–26-Oct-12
16.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 Watch-

      dog 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.

      If the watchdog is restarted by writing into WDT_CR register, the WDT_MR register must not be programmed dur-

      ing a period of time of 3 slow clock period following the WDT_CR write access. In any case, programming a new

      value in WDT_MR automatically initiates a restart instruction.

      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 underflow occurs, by writ-

      ing 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 regis-

      ter 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 Reg-

      ister 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 gener-

      ate 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 interrupt, 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 proces-

      sor 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 pro-

      grammed for the bits WDIDLEHLT and WDDBGHLT in the WDT_MR.

                                                                                   SAM7S Series [DATASHEET]                   90

                                                                                                    6175M–ATARM–26-Oct-12
Figure 16-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

                                                                     SAM7S Series [DATASHEET]  91

                                                                     6175M–ATARM–26-Oct-12
16.4    Watchdog Timer (WDT) User Interface

Table 16-1.    Register Mapping

      Offset      Register                                          Name                        Access            Reset

        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

16.4.1        Watchdog Timer Control Register

Register Name:    WDT_CR

Access Type:         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.

                                                                                            SAM7S Series [DATASHEET]                     92

                                                                                                              6175M–ATARM–26-Oct-12
16.4.2      Watchdog Timer Mode Register

Register Name:  WDT_MR

Access Type:       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.

•   WDDIS: Watchdog Disable

0: Enables the Watchdog Timer.

1: Disables the Watchdog Timer.

                                                                                  SAM7S Series [DATASHEET]                 93

                                                                                                6175M–ATARM–26-Oct-12
16.4.3      Watchdog Timer Status Register

Register Name:  WDT_SR

Access Type:       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.

Note:The WDD and WDV values must not be modified within a period of time of  3 slow clock periods following a restart  of

the watchdog performed by means of a write access in the WDT_CR register,    else the watchdog may trigger an end      of

period earlier than expected.

                                                                             SAM7S Series [DATASHEET]                  94

                                                                                 6175M–ATARM–26-Oct-12
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.

                                                                        SAM7S Series [DATASHEET]                       95

                                                                        6175M–ATARM–26-Oct-12
17.2       Voltage Regulator Power Controller (VREG) User           Interface

Table 17-1.   Register Mapping

   Offset       Register                                  Name                     Access          Reset

   0x60         Voltage Regulator Mode Register           VREG_MR                  Read-write      0x0

17.2.1        Voltage Regulator Mode Register

Register Name:  VREG_MR

Access Type:    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).

                                                                               SAM7S Series [DATASHEET]                   96

                                                                                               6175M–ATARM–26-Oct-12
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.

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

                                                          User

                                                          Interface

               Peripheral

               DMA                                                   APB

               Controller                                            Bridge

                                       Peripheral 0

                                       Peripheral 1                  APB

                                                                                               From Master

                                                                                               to Slave

                                       Peripheral N

18.3    Functional Description

        The Memory Controller handles  the internal ASB   bus and arbitrates the  accesses of  both masters.

                                                                                   SAM7S       Series [DATASHEET]     97

                                                                                               6175M–ATARM–26-Oct-12
          It is made up of:

          • A bus arbiter

          • An address decoder

          • An abort status

          • A misalignment detector

          • 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 DMA 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 three separate areas:

          • One 256-Mbyte address space for the internal memories

          • One 256-Mbyte address space reserved for the embedded peripherals

          • An undefined address space of 3584M bytes representing fourteen 256-Mbyte areas that return an Abort if

          accessed

          Figure 18-2 shows the assignment of the 256-Mbyte memory areas.

          Figure 18-2.  Memory Areas

                                                      0x0000 0000

                                      256M Bytes                           Internal Memories

                                                      0x0FFF FFFF

                                                      0x1000 0000

                                      14 x 256MBytes                             Undefined

                                      3,584 Mbytes                               (Abort)

                                                      0xEFFF FFFF

                                                      0xF000 0000

                                      256M Bytes                                 Peripherals

                                                      0xFFFF FFFF

18.3.2.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.

                                                                                      SAM7S Series [DATASHEET]                 98

                                                                                              6175M–ATARM–26-Oct-12
          If an access is  done in the address area 0x0030 000 to 0x003F FFFF,       no  abort  is  generated.

          Figure 18-3.     Internal Memory  Mapping

                                              0x0000 0000

                                                             Internal Memory Area 0                 1M Bytes

                                                0x000F FFFF

                                              0x0010 0000    Internal Memory Area 1

                                                             Internal Flash                         1M Bytes

                                                0x001F FFFF

                                              0x0020 0000    Internal Memory Area 2

                           256M Bytes                        Internal SRAM                          1M Bytes

                                                0x002F FFFF

                                                0x0030 0000

                                                             Undefined Areas                        253M bytes

                                                                        (Abort)

                                                0x0FFF FFFF

18.3.2.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 on-chip Flash is mapped into Internal Memory Area 0, so that the

          ARM7TDMI reaches an executable instruction contained in Flash. 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 original location and at address 0x0.

18.3.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 com-

          mand. 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.

18.3.4    Abort Status

          There are three reasons for an abort to occur:

          • access to an undefined address

          • an access to a misaligned address.

          When an abort occurs, a signal is sent back to all the masters, regardless of which one has generated the access.

          However, only the ARM7TDMI can take an abort signal into account, and only under the condition that it was gen-

          erating an access. The Peripheral DMA Controller does not handle the abort input signal. Note that the connection

          is not represented in Figure 18-1.

                                                                                         SAM7S Series [DATASHEET]                    99

                                                                                                              6175M–ATARM–26-Oct-12
        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) or a misaligned address (bit

             MISADD)

        • 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 search-

        ing 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 pipelined in the ARM pro-

        cessor. 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.3.5  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 increases performance in Thumb Mode for Code Fetch with its system of 32-bit buf-

        fers. It also manages with the programming, erasing, locking and unlocking sequences thanks to a full set of

        commands.

18.3.6  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 particu-

        larly difficult to detect in the debug phase.

        As the requested address is saved in the Abort Status Register and the address of the instruction generating the

        misalignment is saved in the Abort Link Register of the processor, detection and fix of this kind of software bug is

        simplified.

18.4    Memory Controller (MC) User Interface

Base Address: 0xFFFFFF00

Table 18-1.  Register Mapping

Offset            Register                                  Name                         Access              Reset

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

                                                                                   SAM7S Series [DATASHEET]                        100

                                                                                                      6175M–ATARM–26-Oct-12
Table 18-1.  Register Mapping

Offset       Register                               Name         Access  Reset

0x0C-0x5C    Reserved                               –            –       –

0x60         EFC0 Configuration Registers

             EFC1 Configuration Registers (1)  See  Section 19.  “Embedded Flash Controller (EFC)” on page  105.

0x70

Note:  1.    SAM7S512 only.

                                                                 SAM7S Series [DATASHEET]                   101

                                                                         6175M–ATARM–26-Oct-12
18.4.1       MC Remap Control Register

Register Name:   MC_RCR

Access Type:     Write-only

Offset:          0x00

         31      30          29                       28  27                          26             25                     24

         –       –           –                        –   –                           –              –                      –

         23      22          21                       20  19                          18             17                     16

         –       –           –                        –   –                           –              –                      –

         15      14          13                       12  11                          10             9                      8

         –       –           –                        –   –                           –              –                      –

         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.

                                                                                      SAM7S Series [DATASHEET]                  102

                                                                                                     6175M–ATARM–26-Oct-12
18.4.2       MC Abort  Status Register

Register Name:         MC_ASR

Access Type:           Read-only

Reset Value:           0x0

Offset:                0x04

         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

         –             –                –                   –           –           –           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.

•   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

•   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

                                                                                    SAM7S       Series [DATASHEET]         103

                                                                                                6175M–ATARM–26-Oct-12
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.

18.4.3       MC Abort  Address Status Register

Register Name:         MC_AASR

Access Type:           Read-only

Reset Value:           0x0

Offset:                0x08

         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.

                                                                          SAM7S  Series [DATASHEET]         104

                                                                                 6175M–ATARM–26-Oct-12
19. Embedded Flash Controller (EFC)

19.1      Overview

          The Embedded Flash Controller (EFC ) is a part of the Memory Controller and ensures the interface 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 SAM7S512 is equipped with two EFCs, EFC0 and EFC1. EFC1 does not feature the Security bit and GPNVM

          bit. The Security and GPNVM bits embedded only on EFC0 apply to the two blocks in the SAM7S512.

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 107).

          • 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 109).

          • 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.

Table 19-1.  Product Specific Lock and General-purpose NVM Bits

SAM7S512     SAM7S256   SAM7S128  SAM7S64  SAM7S321            SAM7S32    SAM7S161         SAM7S16         Denomination

      2             2   2              2                    2    2        2                2              Number of GPNVM bits

      32            16  8              16                   8    8        8                8              Number of Lock Bits

                                                                                           SAM7S Series [DATASHEET]            105

                                                                                              6175M–ATARM–26-Oct-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)

                                                              SAM7S Series [DATASHEET]                 106

                                                                                6175M–ATARM–26-Oct-12
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 performance 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 programmed in the

        field FWS (Flash Wait State) in the Flash Mode Register MC_FMR (see “MC Flash Mode Register” on page 115).

        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.

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).

                                                                                                            SAM7S Series [DATASHEET]                  107

                                                                                                                               6175M–ATARM–26-Oct-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.

                                                                                           SAM7S Series [DATASHEET]                    108

                                                                                                                6175M–ATARM–26-Oct-12
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 115).

19.2.4  Flash Commands

        The EFC    offers a command set to manage programming the     memory       flash, locking    and  unlocking  lock   sectors,

        consecutive programming and locking, and full Flash erasing.

        Table 19-2.       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

        To run one of these commands, the field FCMD of the MC_FCR register has to be written with the command num-

        ber. As soon as the MC_FCR register is written, the FRDY flag is automatically 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 Memory Controller is activated.

        All the commands are protected by the same keyword, which has to be written in the eight highest 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.

                                                                                   SAM7S Series [DATASHEET]                 109

                                                                                                     6175M–ATARM–26-Oct-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 115).

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 clearing 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).

                                                                                                     SAM7S Series [DATASHEET]  110

                                                                                                     6175M–ATARM–26-Oct-12
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 are 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 are written to the latch buffer before the programming command is written to the Flash Command 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 Register MC_FCR is

          written.

          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.

                                                                                    SAM7S Series [DATASHEET]                               111

                                                                                                                    6175M–ATARM–26-Oct-12
          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 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: 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 programmed 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.

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 SAM7S512.) 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 definition 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.

                                                                                      SAM7S Series [DATASHEET]                     112

                                                                                                            6175M–ATARM–26-Oct-12
          • 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 corresponding 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

          theSAM7S512.) JTAG, Fast Flash Programming and Flash Serial Test Interface 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 sec-

          tion 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

          activation sequence is:

          • Start the Set Security Bit command (SSB) by writing the Flash Command Register.

          • 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.

                                                                                   SAM7S Series [DATASHEET]                     113

                                                                                                         6175M–ATARM–26-Oct-12
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 SAM7S512 is equipped with two EFCs, EFC0 and EFC1, as described in the Register Mapping          tables  and Register

descriptions that follow.

Table 19-3.  (EFC0) Register Mapping

Offset       Register                                   Name  Access                                         Reset

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-4.  (EFC1) Register Mapping

Offset       Register                                   Name  Access                                         Reset

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                                   –     –                                              –

                                                              SAM7S Series [DATASHEET]                              114

                                                                                             6175M–ATARM–26-Oct-12
19.3.1      MC Flash Mode Register

Register Name:     MC_FMR

Access Type:       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

•  FMCN: Flash Microsecond Cycle Number

                                                                               SAM7S  Series [DATASHEET]         115

                                                                                      6175M–ATARM–26-Oct-12
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.

                                                   SAM7S Series [DATASHEET]                                                    116

                                                                                             6175M–ATARM–26-Oct-12
19.3.2      MC Flash Command Register

Register Name:          MC_FCR

Access Type:            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.

                                                                               SAM7S Series [DATASHEET]                            117

                                                                                                        6175M–ATARM–26-Oct-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.

                                                                                            SAM7S Series [DATASHEET]               118

                                                                                            6175M–ATARM–26-Oct-12
19.3.3      MC Flash Status Register

Register Name:  MC_FSR

Access Type:    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

        –       –                     –          –         –                     –                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 SAM7S512.)

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 SAM7S512.)

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 SAM7S128/321/32/161/16.

                                                                                 SAM7S Series [DATASHEET]                    119

                                                                                                  6175M–ATARM–26-Oct-12
MC_FSR, LOCKSx Product Specific Map

SAM7S512  SAM7S256  SAM7S128         SAM7S64     SAM7S321       SAM7S32  SAM7S161  SAM7S16  Denomination

32()      16        8                16          8              8        8         8        Number of Lock

                                                                                            Bits

LOCKS0    LOCKS0    LOCKS0           LOCKS0      LOCKS0         LOCKS0   LOCKS0    LOCKS0   Lock Region 0

                                                                                            Lock Status

LOCKS1    LOCKS1    LOCKS1           LOCKS1      LOCKS1         LOCKS1   LOCKS1    LOCKS1   Lock Region 1

                                                                                            Lock Status

LOCKS2    LOCKS2    LOCKS2           LOCKS2      LOCKS2         LOCKS2   LOCKS2    LOCKS2   Lock Region 2

                                                                                            Lock Status

LOCKS3    LOCKS3    LOCKS3           LOCKS3      LOCKS3         LOCKS3   LOCKS3    LOCKS3   Lock Region 3

                                                                                            Lock Status

LOCKS4    LOCKS4    LOCKS4           LOCKS4      LOCKS4         LOCKS4   LOCKS4    LOCKS4   Lock Region 4

                                                                                            Lock Status

LOCKS5    LOCKS5    LOCKS5           LOCKS5      LOCKS5         LOCKS5   LOCKS5    LOCKS5   Lock Region 5

                                                                                            Lock Status

LOCKS6    LOCKS6    LOCKS6           LOCKS6      LOCKS6         LOCKS6   LOCKS6    LOCKS6   Lock Region 6

                                                                                            Lock Status

LOCKS7    LOCKS7    LOCKS7           LOCKS7      LOCKS7         LOCKS7   LOCKS7    LOCKS7   Lock Region 7

                                                                                            Lock Status

LOCKS8    LOCKS8    –                LOCKS8      –              –        –         –        Lock Region 8

                                                                                            Lock Status

LOCKS9    LOCKS9    –                LOCKS9      –              –        –         –        Lock Region 9

                                                                                            Lock Status

LOCKS10   LOCKS10   –                LOCKS10     –              –        –         –        Lock Region 10

                                                                                            Lock Status

LOCKS11   LOCKS11   –                LOCKS11     –              –        –         –        Lock Region 11

                                                                                            Lock Status

LOCKS12   LOCKS12   –                LOCKS12     –              –        –         –        Lock Region 12

                                                                                            Lock Status

LOCKS13   LOCKS13   –                LOCKS13     –              –        –         –        Lock Region 13

                                                                                            Lock Status

LOCKS14   LOCKS14   –                LOCKS14     –              –        –         –        Lock Region 14

                                                                                            Lock Status

LOCKS15   LOCKS15   –                LOCKS15     –              –        –         –        Lock Region 15

                                                                                            Lock Status

The SAM7S512 manages 16 lock bits on EF0 and 16  on EFC1 = 32.

                                                                         SAM7S Series [DATASHEET]         120

                                                                                   6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  121

6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  122

6175M–ATARM–26-Oct-12
20. Fast Flash Programming Interface (FFPI)

20.1  Overview

      The Fast Flash Programming Interface provides two solutions - parallel or serial - for high-volume 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 func-

      tionalities. The serial interface 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 is not

      designed for in-situ programming.

                                             SAM7S Series [DATASHEET]                                                      123

                                             6175M–ATARM–26-Oct-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.  SAM7S512/256/128/64/321/161 Parallel  Programming  Interface

                              VDDIO           TST

                              VDDIO           PGMEN0

                              VDDIO           PGMEN1

                              GND             PGMEN2                     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

        Figure 20-2.  SAM7S32/16 Parallel Programming Interface

                              VDDIO           TST

                              VDDIO           PGMEN0

                              VDDIO           PGMEN1

                              GND             PGMEN2                     VDDCORE

                              NCMD            PGMNCMD                    VDDIO

                              RDY             PGMRDY                     VDDPLL

                              NOE             PGMNOE                     VDDFLASH

                              NVALID          PGMNVALID                  GND

                              MODE[3:0]       PGMM[3:0]

                              DATA[7:0]       PGMD[7:0]

                              0 - 50MHz       XIN

                                                                         SAM7S Series [DATASHEET]                     124

                                                                                               6175M–ATARM–26-Oct-12
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 case, the  Input                 32KHz to 50MHz

                        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

PGMEN2                  Test Mode Select                                  Input         Low     Must be connected to GND

                                                              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] or DATA[7:0](1) is in input mode    Output        Low     Pulled-up  input  at  reset

                        1: DATA[15:0] or DATA[7:0](1) is in output mode

PGMM[3:0]               Specifies DATA type (See Table 20-2)              Input                 Pulled-up  input  at  reset

PGMD[15:0] or [7:0](2)  Bi-directional data bus                           Input/Output          Pulled-up  input  at  reset

Notes:  1.   DATA[7:0] pertains to the SAM7S32/16.

        2.   PGMD[7:0] pertains to the SAM7S32/16.

                                                                                        SAM7S   Series [DATASHEET]           125

                                                                                                6175M–ATARM–26-Oct-12
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

        0011                   ADDR2

        0100                   ADDR3                        Address Register MSBs

        0101                   DATA                         Data Register

        Default                IDLE                         No register

        When MODE is equal to CMDE, then a new command (strobed on DATA[15:0] or                  DATA[7:0]  signals)  is  stored  in

        the command register.

        Note:    DATA[7:0] pertains to the SAM7S32/16.

        Table 20-3.   Command Bit Coding

        DATA[15:0]

        DATA[7:0](1)           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                 SGPB                         Set General Purpose NVM bit

        0x0044                 CGPB                         Clear General Purpose NVM bit

        0x0025                 GGPB                         Get General Purpose NVM bit

        0x0054                 SSE                          Set Security Bit

        0x0035                 GSE                          Get Security Bit

        0x001F                 WRAM                         Write Memory

        0x0016                 SEFC                         Select EFC Controller(2)

        0x001E                 GVE                          Get Version

        Notes:   1.  DATA[7:0] pertains to the SAM7S32/16.

                 2.  Applies to SAM7S512.

                                                                                           SAM7S Series [DATASHEET]        126

                                                                                                  6175M–ATARM–26-Oct-12
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.

20.2.4.1         Write Handshaking

          For details on the write handshaking sequence, refer to Figure 20-3, Figure 20-4 and Table 20-4.

Figure 20-3.     SAM7S512/256/128/64/321/161Parallel Programming Timing, Write Sequence

                 NCMD                  2                               4

                 RDY                            3                                 5

                 NOE

                 NVALID

                 DATA[15:0]

                                    1

                 MODE[3:0]

Figure 20-4.     SAM7S32/16 Parallel   Programming  Timing,  Write  Sequence

                 NCMD                  2                               4

                 RDY                            3                                 5

                 NOE

                 NVALID

                 DATA[7:0]

                                    1

                 MODE[3:0]

                                                                                     SAM7S Series [DATASHEET]                              127

                                                                                         6175M–ATARM–26-Oct-12
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

20.2.4.2      Read Handshaking

          For details on the read handshaking  sequence, refer to Figure 20-5, Figure 20-6 and         Table 20-5.

Figure 20-5.  SAM7S542/256/128/321/161         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

Figure 20-6.  SAM7S32/16 Parallel         Programming   Timing, Read   Sequence

              NCMD                        2                                                        12

                                  RDY          3                                                       13

                                  NOE                      5                           9

              NVALID                                                          7             11

                                                        4                  6     8          10

              DATA[7:0]                      Adress IN            Z              Data  OUT      X      IN

                                       1

              MODE[3:0]                        ADDR

                                                                                            SAM7S Series [DATASHEET]              128

                                                                                                           6175M–ATARM–26-Oct-12
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 the  Output

                                            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

                                                                               SAM7S Series [DATASHEET]               129

                                                                                               6175M–ATARM–26-Oct-12
20.2.5       Device Operations

          Several commands on the Flash memory are available. These commands are summarized in Table 20-3 on page

          126. Each command is driven by the programmer through the parallel interface running several read/write hand-

          shaking 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.

          In the following tables, 21-6 through 21-18

          •    DATA[15:0] pertains to SAM7S512/256/128/64/321/161

          •    DATA[7:0] pertains to SAM7S32/16

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 handshaking can be chained; an inter-

          nal 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               Memory Address LSB

          3      Write handshaking    ADDR1               Memory Address

          4      Read handshaking     DATA                *Memory Address++

          5      Read handshaking     DATA                *Memory Address++

          ...    ...                  ...                 ...

          n      Write handshaking    ADDR0               Memory Address LSB

          n+1    Write handshaking    ADDR1               Memory Address

          n+2    Read handshaking     DATA                *Memory Address++

          n+3    Read handshaking     DATA                *Memory Address++

          ...    ...                  ...                 ...

          Table  20-7.  Read Command

          Step   Handshake Sequence   MODE[3:0]           DATA[7:0]

          1      Write handshaking    CMDE                READ

          2      Write handshaking    ADDR0               Memory Address LSB

          3      Write handshaking    ADDR1               Memory Address

          4      Write handshaking    ADDR2               Memory Address

          5      Write handshaking    ADDR3               Memory Address

          6      Read handshaking     DATA                *Memory Address++

          7      Read handshaking     DATA                *Memory Address++

          ...    ...                  ...                 ...

          n      Write handshaking    ADDR0               Memory Address LSB

          n+1    Write handshaking    ADDR1               Memory Address

                                                                              SAM7S  Series [DATASHEET]                   130

                                                                                     6175M–ATARM–26-Oct-12
          Table 20-7.   Read Command (Continued)

          Step   Handshake Sequence    MODE[3:0]                  DATA[7:0]

          n+2    Write handshaking     ADDR2                      Memory Address

          n+3    Write handshaking     ADDR3                      Memory Address

          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 corre-

          sponds 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)

          The Write Page command (WP) is optimized for consecutive writes. Write handshaking can be chained; an inter-

          nal address buffer is automatically increased.

          Table  20-8.  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                      Memory Address LSB

          3      Write handshaking     ADDR1                      Memory Address

          4      Write handshaking     DATA                       *Memory Address++

          5      Write handshaking     DATA                       *Memory Address++

          ...    ...                   ...                        ...

          n      Write handshaking     ADDR0                      Memory Address LSB

          n+1    Write handshaking     ADDR1                      Memory Address

          n+2    Write handshaking     DATA                       *Memory Address++

          n+3    Write handshaking     DATA                       *Memory Address++

          ...    ...                   ...                        ...

          Table  20-9.  Write Command

          Step   Handshake Sequence    MODE[3:0]                  DATA[7:0]

          1      Write handshaking     CMDE                       WP or WPL or EWP or EWPL

          2      Write handshaking     ADDR0                      Memory Address LSB

          3      Write handshaking     ADDR1                      Memory Address

          4      Write handshaking     ADDR2                      Memory Address

          5      Write handshaking     ADDR3                      Memory Address

          6      Write handshaking     DATA                       *Memory Address++

          7      Write handshaking     DATA                       *Memory Address++

                                                                                       SAM7S Series [DATASHEET]               131

                                                                                                 6175M–ATARM–26-Oct-12
          Table  20-9.  Write Command (Continued)

          Step   Handshake Sequence         MODE[3:0]             DATA[7:0]

          ...    ...                        ...                   ...

          n      Write handshaking          ADDR0                 Memory Address LSB

          n+1    Write handshaking          ADDR1                 Memory Address

          n+2    Write handshaking          ADDR2                 Memory Address

          n+3    Write handshaking          ADDR3                 Memory Address

          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-10.  Full Erase Command

          Step   Handshake Sequence                MODE[3:0]           DATA[15:0] or DATA[7:0]

          1      Write handshaking                 CMDE                EA

          2      Write handshaking                 DATA                0

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 provided as argument to the com-

          mand. 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-11.  Set and Clear Lock Bit Command

          Step   Handshake Sequence                MODE[3:0]           DATA[15:0] or DATA[7:0]

          1      Write handshaking                 CMDE                SLB or CLB

          2      Write handshaking                 DATA                Bit Mask

                                                                                          SAM7S Series [DATASHEET]              132

                                                                                                6175M–ATARM–26-Oct-12
          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-12.  Get Lock Bit Command

          Step      Handshake Sequence                  MODE[3:0]            DATA[15:0] or DATA[7: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 GPNVM command (SGPB). 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 GPNVM command (CGPB) 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-13.  Set/Clear GP NVM Command

          Step      Handshake Sequence                  MODE[3:0]            DATA[15:0] or DATA[7:0]

          1         Write handshaking                   CMDE                 SGPB or CGPB

          2         Write handshaking                   DATA                 GP NVM bit pattern value

          General-purpose NVM bits can be read using the Get GPNVM Bit command (GGPB). The nth GP NVM bit is active

          when bit n of the bit mask is set..

          Table 20-14.  Get GP NVM Bit Command

          Step      Handshake Sequence                  MODE[3:0]            DATA[15:0] or DATA[7:0]

          1         Write handshaking                   CMDE                 GGPB

                                                                             GP NVM Bit Mask Status

          2         Read handshaking                    DATA                 0 = GP NVM bit is cleared

                                                                             1 = GP NVM bit is set

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 SAM7S512 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-15.  Set Security Bit Command

          Step      Handshake Sequence                  MODE[3:0]            DATA[15:0]

          1         Write handshaking                   CMDE                 SSE

          2         Write handshaking                   DATA                 0

          Once the security bit is set, it is not possible to access FFPI. The only way to erase the security bit is to erase the

          Flash.

          In order to erase the Flash, the user must perform the following:

                                                                                         SAM7S Series [DATASHEET]                    133

                                                                                                         6175M–ATARM–26-Oct-12
          • Power-off the chip

          • Power-on the chip with TST = 0

          • Assert Erase during a period of more than 220 ms

          • Power-off the chip

          Then it is possible o return to FFPI mode and check that Flash is erased.

20.2.5.7       SAM7S512 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-16.   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-17.  Write Command

          Step   Handshake Sequence          MODE[3:0]           DATA[15:0]

          1      Write handshaking           CMDE                WRAM

          2      Write handshaking           ADDR0               Memory Address LSB

          3      Write handshaking           ADDR1               Memory Address

          4      Write handshaking           DATA                *Memory Address++

          5      Write handshaking           DATA                *Memory Address++

          ...    ...                         ...                 ...

          n      Write handshaking           ADDR0               Memory Address LSB

          n+1    Write handshaking           ADDR1               Memory Address

          n+2    Write handshaking           DATA                *Memory Address++

          n+3    Write handshaking           DATA                *Memory Address++

          ...    ...                         ...                 ...

          Table 20-18.   Write Command

          Step   Handshake Sequence          MODE[3:0]           DATA[7:0]

          1      Write handshaking           CMDE                WRAM

          2      Write handshaking           ADDR0               Memory Address LSB

          3      Write handshaking           ADDR1               Memory Address

          4      Write handshaking           ADDR2               Memory Address

          5      Write handshaking           ADDR3               Memory Address

                                                                                       SAM7S Series [DATASHEET]       134

                                                                                               6175M–ATARM–26-Oct-12
          Table  20-18.  Write Command (Continued)

          Step   Handshake Sequence           MODE[3:0]         DATA[7:0]

          6      Write handshaking            DATA              *Memory Address++

          7      Write handshaking            DATA              *Memory Address++

          ...    ...                          ...               ...

          n      Write handshaking            ADDR0             Memory Address LSB

          n+1    Write handshaking            ADDR1             Memory Address

          n+2    Write handshaking            ADDR2             Memory Address

          n+3    Write handshaking            ADDR3             Memory Address

          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-19.   Get Version Command

          Step   Handshake Sequence                  MODE[3:0]       DATA[15:0] or DATA[7:0]

          1      Write handshaking                   CMDE            GVE

          2      Write handshaking                   DATA            Version

                                                                                      SAM7S Series [DATASHEET]       135

                                                                                              6175M–ATARM–26-Oct-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 inter-

        face 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 signifi-

        cant. Other pins must be left unconnected.

        Figure 20-7.  Serial Programming

                                        VDDIO       TST

                                        VDDIO       PGMEN0

                                        VDDIO       PGMEN1

                                         GND        PGMEN2                    VDDCORE

                                          TDI                                 VDDIO

                                         TDO                                  VDDPLL

                                         TMS                                  VDDFLASH

                                         TCK                                  GND

                                        0-50MHz     XIN

Table 20-20.  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.

                                                                              SAM7S Series [DATASHEET]                         136

                                                                                        6175M–ATARM–26-Oct-12
Table 20-20.   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

PGMEN2                     Test Mode Select                             Input   Low         Must be connected to GND

                                                      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-21.     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

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

                                                                                   SAM7S Series [DATASHEET]                               137

                                                                                            6175M–ATARM–26-Oct-12
        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-8.  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

        126. Commands are run by the programmer through the serial interface that is reading and writing the Debug

        Comms Registers.

                                                                                 SAM7S Series [DATASHEET]                          138

                                                                                                 6175M–ATARM–26-Oct-12
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-22.   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 corre-

          sponds 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 inter-

          nal address buffer is automatically increased.

          Table 20-23.   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. 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 pro-

          grammer 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. However, before pro-

          gramming the load buffer, the page is erased.

          Flash Erase Page and Write the Lock command (EWPL) combines EWP and WPL commands.

20.3.4.3       Flash Full Erase Command

          This command is used to erase the Flash memory planes.

                                                                                          SAM7S Series [DATASHEET]            139

                                                                                                     6175M–ATARM–26-Oct-12
          All lock bits must be deactivated before using the Full Erase command. This can be done by using the CLB

          command.

          Table 20-24.  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-25.  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 cor-

          responding lock bit is active.

          Table 20-26.  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 GPNVM command (SGPB). Using this command,

          several GP NVM bits can be activated at the same time. Bit 0 of Bit Mask corresponds to the first GPNVM bit and

          so on.

          In the same way, the Clear GPNVM command (CGPB) is used to clear GP NVM bits. All the general-purpose NVM

          bits are also cleared by the EA command.

          Table 20-27.  Set and Clear General-purpose NVM Bit Command

          Read/Write                 DR Data

          Write                      SGPB or CGPB

          Write                      Bit Mask

          GP NVM bits can be read using Get GPNVM Bit command (GGPB). When a bit set in the Bit Mask is returned,

          then the corresponding GPNVM bit is set.

          Table 20-28.  Get General-purpose NVM Bit Command

          Read/Write                 DR Data

          Write                      GGPB

          Read                       Bit Mask

                                                                       SAM7S Series [DATASHEET]                                140

                                                                       6175M–ATARM–26-Oct-12
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 pro-

          gramming 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 SAM7S512 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-29.  Set Security Bit Command

          Read/Write            DR Data

          Write                 SSE

          Once the security bit is set, it is not possible to access FFPI. The only way to erase the security bit is to erase the

          Flash.

          In order to erase the Flash, the user must perform the following:

          • Power-off the chip

          • Power-on the chip with TST = 0

          • Assert Erase during a period of more than 220 ms

          • Power-off the chip

          Then it is possible to return to FFPI mode and check that Flash is erased.

20.3.4.7     SAM7S512 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-30.  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

                                                                                         SAM7S Series [DATASHEET]                  141

                                                                                               6175M–ATARM–26-Oct-12
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  automati-

          cally increased.

          Table 20-31.  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]

20.3.4.9  Get Version Command

          The Get Version (GVE) command retrieves the version of the FFPI interface.

          Table 20-32.  Get Version Command

          Read/Write           DR Data

          Write                GVE

          Read                 Version

                                                                                          SAM7S Series [DATASHEET]             142

                                                                                                        6175M–ATARM–26-Oct-12
21.   SAM7 Boot Program

21.1  Description

      The Boot Program integrates different programs permitting download and/or upload into the          different memories     of

      the product.

      First, it initializes the Debug Unit serial port (DBGU) and the USB Device Port.

      SAM-BA® Boot is then executed. It waits for transactions either on the USB device or on the        DBGU serial port.

21.2  Flow Diagram

      The Boot Program implements the algorithm shown in Figure 21-1 or Figure 21-2.

      Figure 21-1.  Boot Program Algorithm Flow Diagram with USB

                                                                                        No

                          Device                                     No                 AutoBaudrate

                                              USB Enumeration                 Sequence Successful ?

                          Setup               Successful ?

                                                  Yes                                       Yes

                                              Run SAM-BA Boot                           Run SAM-BA Boot

      Figure 21-2.  Boot  Program  Algorithm  Flow Diagram without  USB

                                              No

                          Device                  AutoBaudrate           Yes

                          Setup               Sequence Successful ?                     Run SAM-BA Boot

                                                                                        SAM7S Series [DATASHEET]                143

                                                                                                         6175M–ATARM–26-Oct-12
21.3  Device Initialization with USB

      Initialization follows the steps described below:

      1.   FIQ initialization

      1.   Stack setup for ARM supervisor mode

      2.   Setup the Embedded Flash Controller

      3.   External Clock detection

      4.   Main oscillator frequency detection if no external clock detected

      5.   Switch Master Clock on Main Oscillator

      6.   Copy code into SRAM

      7.   C variable initialization

      8.   PLL setup: PLL is initialized to generate a 48 MHz clock necessary to  use the  USB Device

      9.   Disable of the Watchdog and enable of the user reset

      10.  Initialization of the USB Device Port

      11.  Jump to SAM-BA Boot sequence (see “SAM-BA Boot” on page 145)

21.4  Device Initialization without USB

      Initialization follows the steps described below:

      1.   FIQ initialization

      1.   Stack setup for ARM supervisor mode

      2.   Setup the Embedded Flash Controller

      3.   External Clock detection

      4.   Main oscillator frequency detection if no external clock detected

      5.   Switch Master Clock on Main Oscillator

      6.   Copy code into SRAM

      7.   C variable initialization

      8.   PLL setup: PLL is initialized to generate a 48 MHz clock

      9.   Disable of the Watchdog and enable of the user reset

      10.  Jump to SAM-BA Boot sequence (see “SAM-BA Boot” below)

                                                                                  SAM7S    Series [DATASHEET]     144

                                                                                           6175M–ATARM–26-Oct-12
21.5  SAM-BA Boot

      The SAM-BA boot principle is to:

      – Check if USB Device enumeration has occurred

      – Check if the Auto Baudrate sequence has succeeded        (see  Figure 21-3)

      Figure 21-3.  Auto Baudrate Flow Diagram

                                              Device

                                              Setup

                                        Character '0x80'     No        1st measurement

                                        received ?

                                        Yes

                                        Character '0x80'     No        2nd measurement

                                        received ?

                                        Yes

                                        Character '#'        No        Test Communication

                                        received ?

                                        Yes

                                        Send  Character '>'            UART operational

                                        Run SAM-BA Boot

                                                                       SAM7S Series [DATASHEET]                   145

                                                                                           6175M–ATARM–26-Oct-12
       – Once the communication interface is identified, the application runs in an infinite  loop         waiting  for

       different commands as shown in Table 21-1.

Table 21-1.  Commands Available       through the SAM-BA Boot

Command            Action             Argument(s)                Example

O                  write a byte       Address, Value#            O200001,CA#

o                  read a byte        Address,#                  o200001,#

H                  write a half word  Address, Value#            H200002,CAFE#

h                  read a half word   Address,#                  h200002,#

W                  write a word       Address, Value#            W200000,CAFEDECA#

w                  read a word        Address,#                  w200000,#

S                  send a file        Address,#                  S200000,#

R                  receive a file     Address, NbOfBytes#        R200000,1234#

G                  go                 Address#                   G200200#

V                  display version    No argument                V#

• Write commands: Write a byte (O), a halfword (H) or a word (W) to the target.

       – Address: Address in hexadecimal.

       – Value: Byte, halfword or word to write in hexadecimal.

       – Output: ‘>’.

• Read commands: Read a byte (o), a halfword (h) or a word (w) from the target.

       – Address: Address in hexadecimal

       – Output: The byte, halfword or word read in hexadecimal following by ‘>’

• Send a file (S): Send a file to a specified address

       – Address: Address in hexadecimal

       – Output: ‘>’.

Note:  There is a time-out on this command which is reached when the prompt ‘>’ appears       before  the  end  of  the  command

       execution.

• Receive a file (R): Receive data into a file from a specified address

       – Address: Address in hexadecimal

       – NbOfBytes: Number of bytes in hexadecimal to receive

       – Output: ‘>’

• Go (G): Jump to a specified address and execute the code

       – Address: Address to jump in hexadecimal

       – Output: ‘>’

• Get Version (V): Return the SAM-BA boot version

       – Output: ‘>’

                                                                                  SAM7S Series [DATASHEET]                   146

                                                                                                      6175M–ATARM–26-Oct-12
21.5.1  DBGU Serial Port

        Communication is performed through the DBGU serial port initialized to 115200 Baud, 8, n, 1.

        The Send and Receive File commands use the Xmodem protocol to communicate. Any terminal performing this

        protocol can be used to send the application file to the target. The size of the binary file to send depends on the

        SRAM size embedded in the product. In all cases, the size of the binary file must be lower than the SRAM size

        because the Xmodem protocol requires some SRAM memory to work.

21.5.2  Xmodem Protocol

        The Xmodem protocol supported is the 128-byte length block. This protocol uses a two-character CRC-16 to guar-

        antee detection of a maximum bit error.

        Xmodem protocol with CRC is accurate provided both sender and receiver report successful transmission. Each

        block of the transfer looks like:

        <255-blk #><--128 data bytes--> in which:

        – = 01 hex

        – = binary number, starts at 01, increments by 1, and wraps 0FFH to 00H (not to 01)

        – <255-blk #> = 1’s complement of the blk#.

        – = 2 bytes CRC16

        Figure 21-4 shows a transmission using this protocol.

        Figure 21-4.  Xmodem Transfer Example

                                           Host                                  Device

                                                               C

                                                    SOH 01 FE Data[128] CRC CRC

                                                               ACK

                                                    SOH 02 FD Data[128] CRC CRC

                                                               ACK

                                                    SOH 03 FC Data[100] CRC CRC

                                                               ACK

                                                               EOT

                                                               ACK

21.5.3  USB Device Port

        A 48 MHz USB clock is necessary to use the USB Device port. It has been programmed earlier in the device initial-

        ization procedure with PLLB configuration.

                                                                                 SAM7S Series [DATASHEET]                    147

                                                                                                      6175M–ATARM–26-Oct-12
          The device uses the USB communication device class (CDC) drivers to take advantage of the installed PC RS-232

          software to talk over the USB. The CDC class is implemented in all releases of Windows®, from Windows98SE to

          WindowsXP. The CDC document, available at www.usb.org, describes a way to implement devices such as ISDN

          modems and virtual COM ports.

          The Vendor ID is Atmel’s vendor ID 0x03EB. The product ID is 0x6124. These references are used by the host

          operating system to mount the correct driver. On Windows systems, the INF files contain the correspondence

          between vendor ID and product ID.

21.5.3.1  Enumeration Process

          The USB protocol is a master/slave protocol. This is the host that starts the enumeration sending requests to the

          device through the control endpoint. The device handles standard requests as defined in the USB Specification.

          Table 21-2.  Handled Standard      Requests

          Request                              Definition

          GET_DESCRIPTOR                       Returns the current device configuration value.

          SET_ADDRESS                          Sets the device address for all future device access.

          SET_CONFIGURATION                    Sets the device configuration.

          GET_CONFIGURATION                    Returns the current device configuration value.

          GET_STATUS                           Returns status for the specified recipient.

          SET_FEATURE                          Used to set or enable a specific feature.

          CLEAR_FEATURE                        Used to clear or disable a specific feature.

          The device also handles some class requests defined in the CDC class.

          Table 21-3.  Handled Class Requests

          Request                              Definition

          SET_LINE_CODING                      Configures DTE rate, stop bits, parity and number of

                                               character bits.

          GET_LINE_CODING                      Requests current DTE rate, stop bits, parity and number

                                               of character bits.

          SET_CONTROL_LINE_STATE               RS-232 signal used to tell the DCE device the DTE

                                               device is now present.

          Unhandled requests are STALLed.

21.5.3.2  Communication Endpoints

          There are two communication endpoints and endpoint 0 is used for the enumeration process. Endpoint 1 is a 64-

          byte Bulk OUT endpoint and endpoint 2 is a 64-byte Bulk IN endpoint. SAM-BA Boot commands are sent by the

          host through the endpoint 1. If required, the message is split by the host into several data payloads by the host

          driver.

          If the command requires a response, the host can send IN transactions to pick up the response.

                                                                                             SAM7S Series [DATASHEET]          148

                                                                                                        6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  149

6175M–ATARM–26-Oct-12
21.6  Hardware and Software Constraints

      • SAM-BA boot copies itself in the SRAM and uses a block of internal SRAM for variables and stacks. The

      remaining available sizes for the user codes are as follows: 57344 bytes for SAM7S512, 57344 bytes for

      SAM7S256, 24576 bytes for SAM7S128, 8192 bytes for SAM7S64, 2048 bytes for SAM7S321 and SAM7S32,

      3840 bytes for SAM7S161 and  SAM7S16.

      • USB requirements: (Does not pertain to SAM7S32/16)

      – 18.432 MHz Quartz

      – PIOA16 dedicated to the USB Pull-up

      Table 21-4.  User  Area Addresses

      Device             Start Address       End Address      Size (bytes)

      SAM7S512           0x202000            0x210000         57344

      SAM7S256           0x202000            0x210000         57344

      SAM7S128           0x202000            0x208000         24576

      SAM7S64            0x202000            0x204000         8192

      SAM7S321           0x202000            0x210000         2048

      SAM7S32            0x201400            0x201C00         2048

      SAM7S161           0x200000            0200F00          3840

      SAM7S16            0x200000            0200F00          3840

      Table 21-5.  Pins Driven during Boot Program Execution

      Peripheral                   Pin                        PIO Line

      DBGU                         DRXD                             PA9

      DBGU                         DTXD                       PA10

                                                              SAM7S Series [DATASHEET]                         150

                                                                            6175M–ATARM–26-Oct-12
22. Peripheral DMA Controller (PDC)

22.1  Overview

      The Peripheral DMA Controller (PDC) transfers data between on-chip serial peripherals such as the UART,

      USART, SSC, SPI, MCI and the on- and off-chip memories. Using the Peripheral DMA Controller avoids processor

      intervention and removes the processor interrupt-handling overhead. This significantly reduces the number of

      clock cycles required for a data transfer and, as a result, improves the performance of the microcontroller and

      makes it more power efficient.

      The PDC channels are implemented in pairs, each pair being dedicated to a particular peripheral. One channel in

      the pair is dedicated to the receiving channel and one to the transmitting channel of each UART, USART, SSC and

      SPI.

      The user interface of a PDC channel is integrated in the memory space of each peripheral. It contains:

      • two 32-bit memory pointer registers (send and receive)

      • two 16-bit transfer count registers (send and receive)

      • two 32-bit registers for next memory pointer (send and receive)

      • two 16-bit registers for next transfer count (send and receive)

      The peripheral triggers PDC transfers using transmit and receive signals. When the programmed data is trans-

      ferred, an end of transfer interrupt is generated by the corresponding peripheral.

22.2  Block Diagram

      Figure 22-1.  Block Diagram

                     Peripheral       Peripheral DMA Controller

                     THR              PDC Channel 0

                     RHR              PDC Channel 1                      Control          Memory

                                                                                          Controller

                     Control          Status & Control

                                                                                  SAM7S Series [DATASHEET]             151

                                                                                          6175M–ATARM–26-Oct-12
22.3    Functional Description

22.3.1  Configuration

        The PDC channels user interface enables the user to configure and control the data transfers for each channel.

        The user interface of a PDC channel is integrated into the user interface of the peripheral (offset 0x100), which it is

        related to.

        Per peripheral, it contains four 32-bit Pointer Registers (RPR, RNPR, TPR, and TNPR) and four 16-bit Counter

        Registers (RCR, RNCR, TCR, and TNCR).

        The size of the buffer (number of transfers) is configured in an internal 16-bit transfer counter register, and it is pos-

        sible, at any moment, to read the number of transfers left for each channel.

        The memory base address is configured in a 32-bit memory pointer by defining the location of the first address to

        access in the memory. It is possible, at any moment, to read the location in memory of the next transfer and the

        number of remaining transfers. The PDC has dedicated status registers which indicate if the transfer is enabled or

        disabled for each channel. The status for each channel is located in the peripheral status register. Transfers can be

        enabled and/or disabled by setting TXTEN/TXTDIS and RXTEN/RXTDIS in PDC Transfer Control Register. These

        control bits enable reading the pointer and counter registers safely without any risk of their changing between both

        reads.

        The PDC sends status flags to the peripheral visible in its status-register (ENDRX, ENDTX, RXBUFF, and

        TXBUFE).

        ENDRX flag is set when the PERIPH_RCR register reaches zero.

        RXBUFF flag is set when both PERIPH_RCR and PERIPH_RNCR reach zero.

        ENDTX flag is set when the PERIPH_TCR register reaches zero.

        TXBUFE flag is set when both PERIPH_TCR and PERIPH_TNCR reach zero.

        These status flags are described in the peripheral status register.

22.3.2  Memory Pointers

        Each peripheral is connected to the PDC by a receiver data channel and a transmitter data channel. Each channel

        has an internal 32-bit memory pointer. Each memory pointer points to a location anywhere in the memory space

        (on-chip memory or external bus interface memory).

        Depending on the type of transfer (byte, half-word or word), the memory pointer is incremented by 1, 2 or 4,

        respectively for peripheral transfers.

        If a memory pointer is reprogrammed while the PDC is in operation, the transfer address is changed, and the PDC

        performs transfers using the new address.

22.3.3  Transfer Counters

        There is one internal 16-bit transfer counter for each channel used to count the size of the block already transferred

        by its associated channel. These counters are decremented after each data transfer. When the counter reaches

        zero, the transfer is complete and the PDC stops transferring data.

        If the Next Counter Register is equal to zero, the PDC disables the trigger while activating the related peripheral

        end flag.

        If the counter is reprogrammed while the PDC is operating, the number of transfers is updated and the PDC counts

        transfers from the new value.

                                                                                      SAM7S Series [DATASHEET]                      152

                                                                                      6175M–ATARM–26-Oct-12
        Programming the Next Counter/Pointer registers chains the buffers. The counters are decremented after each data

        transfer as stated above, but when the transfer counter reaches zero, the values of the Next Counter/Pointer are

        loaded into the Counter/Pointer registers in order to re-enable the triggers.

        For each channel, two status bits indicate the end of the current buffer (ENDRX, ENDTX) and the end of both cur-

        rent and next buffer (RXBUFF, TXBUFE). These bits are directly mapped to the peripheral status register and can

        trigger an interrupt request to the AIC.

        The peripheral end flag is automatically cleared when one of the counter-registers (Counter or Next Counter Reg-

        ister) is written.

        Note: When the Next Counter Register is loaded into the Counter Register, it is set to zero.

22.3.4      Data Transfers

        The peripheral triggers PDC transfers using transmit (TXRDY) and receive (RXRDY) signals.

        When the peripheral receives an external character, it sends a Receive Ready signal to the PDC which then

        requests access to the system bus. When access is granted, the PDC starts a read of the peripheral Receive Hold-

        ing Register (RHR) and then triggers a write in the memory.

        After each transfer, the relevant PDC memory pointer is incremented and the number of transfers left is decre-

        mented. When the memory block size is reached, a signal is sent to the peripheral and the transfer stops.

        The same procedure is followed, in reverse, for transmit transfers.

22.3.5      Priority of PDC Transfer Requests

        The Peripheral DMA Controller handles transfer requests from the channel according to priorities fixed for each

        product.These priorities are defined in the product datasheet.

        If simultaneous requests of the same type (receiver or transmitter) occur on identical peripherals, the priority is

        determined by the numbering of the peripherals.

        If transfer requests are not simultaneous, they are treated in the order they occurred. Requests from the receivers

        are handled first and then followed by transmitter requests.

22.4    Peripheral DMA Controller (PDC) User Interface

Table 22-1.  Register Mapping

Offset       Register                             Register Name                        Access                                 Reset

0x100        Receive Pointer Register             PERIPH(1)_RPR                        Read-write                             0x0

0x104        Receive Counter Register             PERIPH_RCR                           Read-write                             0x0

0x108        Transmit Pointer Register            PERIPH_TPR                           Read-write                             0x0

0x10C        Transmit Counter Register            PERIPH_TCR                           Read-write                             0x0

0x110        Receive Next Pointer Register        PERIPH_RNPR                          Read-write                             0x0

0x114        Receive Next Counter Register        PERIPH_RNCR                          Read-write                             0x0

0x118        Transmit Next Pointer Register       PERIPH_TNPR                          Read-write                             0x0

0x11C        Transmit Next Counter Register       PERIPH_TNCR                          Read-write                             0x0

0x120        PDC Transfer Control Register        PERIPH_PTCR                          Write-only                             -

0x124        PDC Transfer Status Register         PERIPH_PTSR                          Read-only                              0x0

Note:   1.   PERIPH: Ten registers are mapped in the peripheral memory space at the same offset. These  can  be  defined  by  the user

             according to the function and the peripheral desired (DBGU, USART, SSC, SPI, MCI etc).

                                                                                       SAM7S Series [DATASHEET]                      153

                                                                                                        6175M–ATARM–26-Oct-12
22.4.1      PDC Receive Pointer Register

Register Name:  PERIPH_RPR

Access Type:    Read-write

        31      30                     29     28         27  26     25                     24

                                                  RXPTR

        23      22                     21     20         19  18     17                     16

                                                  RXPTR

        15      14                     13     12         11  10     9                      8

                                                  RXPTR

        7       6                      5      4          3   2      1                      0

                                                  RXPTR

•  RXPTR: Receive Pointer Address

Address of the next receive transfer.

22.4.2      PDC Receive Counter Register

Register Name:  PERIPH_RCR

Access Type:    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

                                                  RXCTR

        7       6                      5      4          3   2      1                      0

                                                  RXCTR

•  RXCTR: Receive Counter Value

Number of receive transfers to be performed.

                                                             SAM7S  Series [DATASHEET]         154

                                                                    6175M–ATARM–26-Oct-12
22.4.3      PDC Transmit Pointer Register

Register Name:  PERIPH_TPR

Access Type:    Read-write

        31      30                  29             28                   27               26                  25                     24

                                                       TXPTR

        23      22                  21             20                   19               18                  17                     16

                                                       TXPTR

        15      14                  13             12                   11               10                  9                      8

                                                       TXPTR

        7       6                   5              4                    3                2                   1                      0

                                                       TXPTR

•  TXPTR: Transmit Pointer Address

Address of the transmit buffer.

22.4.4      PDC Transmit Counter Register

Register Name:  PERIPH_TCR

Access Type:    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

                                                       TXCTR

        7       6                   5              4                    3                2                   1                      0

                                                       TXCTR

•  TXCTR: Transmit Counter Value

TXCTR is the size of the transmit transfer to  be  performed. At zero,  the  peripheral  data  transfer  is  stopped.

                                                                                         SAM7S Series [DATASHEET]                       155

                                                                                                             6175M–ATARM–26-Oct-12
22.4.5      PDC Receive Next Pointer Register

Register Name:  PERIPH_RNPR

Access Type:    Read-write

        31      30          29                         28             27         26                         25                     24

                                                           RXNPTR

        23      22          21                         20             19         18                         17                     16

                                                           RXNPTR

        15      14          13                         12             11         10                         9                      8

                                                           RXNPTR

        7       6            5                         4              3          2                          1                      0

                                                           RXNPTR

•  RXNPTR: Receive Next Pointer Address

RXNPTR is the address of the next buffer to fill with  received data  when  the  current buffer  is  full.

22.4.6      PDC Receive Next Counter  Register

Register Name:  PERIPH_RNCR

Access Type:    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

                                                           RXNCR

        7       6            5                         4              3          2                          1                      0

                                                           RXNCR

•  RXNCR: Receive Next Counter Value

RXNCR is the size of the next buffer to receive.

                                                                                 SAM7S               Series [DATASHEET]                156

                                                                                                            6175M–ATARM–26-Oct-12
22.4.7      PDC Transmit Next Pointer  Register

Register Name:  PERIPH_TNPR

Access Type:    Read-write

        31      30          29                     28                  27              26      25                     24

                                                       TXNPTR

        23      22          21                     20                  19              18      17                     16

                                                       TXNPTR

        15      14          13                     12                  11              10      9                      8

                                                       TXNPTR

        7       6            5                     4                   3               2       1                      0

                                                       TXNPTR

•  TXNPTR: Transmit Next Pointer Address

TXNPTR is the address of the next buffer to transmit when the current      buffer  is  empty.

22.4.8      PDC Transmit Next Counter  Register

Register Name:  PERIPH_TNCR

Access Type:    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

                                                       TXNCR

        7       6            5                     4                   3               2       1                      0

                                                       TXNCR

•  TXNCR: Transmit Next Counter Value

TXNCR is the size of the next buffer to transmit.

                                                                                       SAM7S   Series [DATASHEET]         157

                                                                                               6175M–ATARM–26-Oct-12
22.4.9      PDC Transfer Control Register

Register Name:  PERIPH_PTCR

Access Type:    Write-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

        –       –                   –               –              –     –      TXTDIS  TXTEN

        7       6                   5               4              3     2      1                      0

        –       –                   –               –              –     –      RXTDIS  RXTEN

•  RXTEN: Receiver Transfer Enable

0 = No effect.

1 = Enables the receiver PDC transfer requests if RXTDIS  is  not  set.

•  RXTDIS: Receiver Transfer Disable

0 = No effect.

1 = Disables the receiver PDC transfer requests.

•  TXTEN: Transmitter Transfer Enable

0 = No effect.

1 = Enables the transmitter PDC transfer requests.

•  TXTDIS: Transmitter Transfer Disable

0 = No effect.

1 = Disables the transmitter PDC transfer requests

                                                                         SAM7S  Series [DATASHEET]         158

                                                                                6175M–ATARM–26-Oct-12
22.4.10  PDC Transfer Status Register

Register Name:  PERIPH_PTSR

Access Type:    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

   –            –                   –                –   –   –      –   TXTEN

   7            6                   5                4   3   2      1                      0

   –            –                   –                –   –   –      –   RXTEN

•  RXTEN: Receiver Transfer Enable

0 = Receiver PDC transfer requests are disabled.

1 = Receiver PDC transfer requests are enabled.

•  TXTEN: Transmitter Transfer Enable

0 = Transmitter PDC transfer requests are disabled.

1 = Transmitter PDC transfer requests are enabled.

                                                             SAM7S  Series [DATASHEET]         159

                                                                    6175M–ATARM–26-Oct-12
SAM7S Series [DATASHEET]  160

6175M–ATARM–26-Oct-12
23. Advanced Interrupt Controller (AIC)

23.1  Overview

      The Advanced Interrupt Controller (AIC) is an 8-level priority, individually maskable, vectored interrupt controller,

      providing handling of up to thirty-two interrupt sources. It is designed to substantially reduce the software and real-

      time overhead in handling internal and external interrupts.

      The AIC drives the nFIQ (fast interrupt request) and the nIRQ (standard interrupt request) inputs of an ARM pro-

      cessor. Inputs of the AIC are either internal peripheral interrupts or external interrupts coming from the product's

      pins.

      The 8-level Priority Controller allows the user to define the priority for each interrupt source, thus permitting higher

      priority interrupts to be serviced even if a lower priority interrupt is being treated.

      Internal interrupt sources can be programmed to be level sensitive or edge triggered. External interrupt sources

      can be programmed to be positive-edge or negative-edge triggered or high-level or low-level sensitive.

      The fast forcing feature redirects any internal or external interrupt source to provide a fast interrupt rather than a

      normal interrupt.

23.2  Block Diagram

      Figure 23-1.&nb