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

型号

产品描述

搜索

ATSAMD20G18A-MNT

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

器件描述

ARM Microcontrollers - MCU rev E + extra Osc Calibration - 48QFN 105C, GREEN,1.6-3.6V,48MHz

参数

产品属性属性值
产品种类:
Product Category:
ARM Microcontrollers - MCU
制造商:
Manufacturer:
Microchip
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
QFN-48
系列:
Series:
SAMD1/2x
Core:ARM Cortex M0+
Data Bus Width:32 bit
Maximum Clock Frequency:48 MHz
Program Memory Size:256 kB
Data RAM Size:32 kB
ADC Resolution:12 bit
Number of I/Os:52 I/O
工作电源电压:
Operating Supply Voltage:
1.62 V to 3.63 V
最大工作温度:
Maximum Operating Temperature:
+ 105 C
接口类型:
Interface Type:
I2C, SPI, UART, USART
封装:
Packaging:
Reel
封装:
Packaging:
MouseReel
封装:
Packaging:
Cut Tape
商标:
Brand:
Microchip Technology / Atmel
Data RAM Type:SRAM
I/O Voltage:1.2 V
最小工作温度:
Minimum Operating Temperature:
- 40 C
Number of ADC Channels:14 Channel
Number of Timers/Counters:6 Timer
Processor Series:SAMD20G
产品:
Product:
MCU
Program Memory Type:Flash
工厂包装数量:
Factory Pack Quantity:
4000
电源电压-最大:
Supply Voltage - Max:
3.63 V
电源电压-最小:
Supply Voltage - Min:
1.62 V
看门狗计时器:
Watchdog Timers:
Watchdog Timer

ATSAMD20G18A-MNT器件文档内容

                              SMART ARM-Based Microcontrollers

                        SAM D20E / SAM D20G / SAM D20J

                                           DATASHEET COMPLETE

Introduction

Atmel® | SMART™ SAM D20 is a series of low-power microcontrollers using

the 32-bit ARM® Cortex®-M0+ processor, and ranging from 32- to 64-pins

with up to 256KB Flash and 32KB of SRAM. The SAM D20 devices operate

at a maximum frequency of 48MHz and reach 2.46 CoreMark®/MHz. They

are designed for simple and intuitive migration with identical peripheral

modules, hex compatible code, identical linear address map and pin

compatible migration paths between all devices in the product series. All

devices include intelligent and flexible peripherals, Atmel Event System for

inter-peripheral signaling, and support for capacitive touch button, slider and

wheel user interfaces.

Features

•  Processor

   –  ARM Cortex-M0+ CPU running at up to 48MHz

           •    Single-cycle hardware multiplier

•  Memories

   –  16/32/64/128/256KB in-system self-programmable Flash

   –  2/4/8/16/32KB SRAM Memory

•  System

   –  Power-on reset (POR) and brown-out detection (BOD)

   –  Internal and external clock options with 48MHz Digital Frequency

      Locked Loop (DFLL48M)

   –  External Interrupt Controller (EIC)

   –  16 external interrupts

   –  One non-maskable interrupt

   –  Two-pin Serial Wire Debug (SWD) programming, test and

      debugging interface

•  Low Power

   –  Idle and standby sleep modes

   –  SleepWalking peripherals

•  Peripherals

   –  8-channel Event System

                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
   –    Up to five 16-bit Timer/Counters (TC), configurable as either:

        •    One 16-bit TC with two compare/capture channels

        •    One 8-bit TC with two compare/capture channels

        •    One 32-bit TC with two compare/capture channels, by using two TCs

   –    32-bit Real Time Counter (RTC) with clock/calendar function

   –    Watchdog Timer (WDT)

   –    CRC-32 generator

   –    Up to six Serial Communication Interfaces (SERCOM), each configurable to operate as

        either:

        •    USART with full-duplex and single-wire half-duplex configuration

        •    Inter-Integrated Circuit (I2C) up to 400kHz

        •    Serial Peripheral Interface (SPI)

   –    One 12-bit, 350ksps Analog-to-Digital Converter (ADC) with up to 20 channels

        •    Differential and single-ended input

        •    1/2x to 16x programmable gain stage

        •    Automatic offset and gain error compensation

        •    Oversampling and decimation in hardware to support 13-, 14-, 15- or 16-bit resolution

   –    10-bit, 350ksps Digital-to-Analog Converter (DAC)

   –    Two Analog Comparators (AC) with window compare function

   –    Peripheral Touch Controller (PTC)

        •    256-Channel capacitive touch and proximity sensing

•  I/O

   –    Up to 52 programmable I/O pins

•  Packages

   –    64-pin TQFP, QFN

   –    64-ball UFBGA

   –    48-pin TQFP, QFN

   –    45-ball WLCSP

   –    32-pin TQFP, QFN

•  Operating Voltage

   –    1.62V – 3.63V

•  Power Consumption

   –    Down to 70µA/MHz in active mode

   –    Down to 8µA running the Peripheral Touch Controller

                                           Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                    2

                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Table of Contents

Introduction......................................................................................................................1

Features.......................................................................................................................... 1

1.  Description...............................................................................................................10

2.  Configuration Summary........................................................................................... 11

3.  Ordering Information................................................................................................12

    3.1.   SAM D20E..................................................................................................................................12

    3.2.   SAM D20G................................................................................................................................. 14

    3.3.   SAM D20J.................................................................................................................................. 15

    3.4.   Device Identification................................................................................................................... 17

4.  Block Diagram......................................................................................................... 19

5.  Pinout.......................................................................................................................20

    5.1.   SAM D20J.................................................................................................................................. 20

    5.2.   SAM D20G................................................................................................................................. 22

    5.3.   SAM D20E..................................................................................................................................24

6.  Signal Descriptions List........................................................................................... 25

7.  I/O Multiplexing and Considerations........................................................................ 27

    7.1.   Multiplexed Signals.....................................................................................................................27

    7.2.   Other Functions..........................................................................................................................29

8.  Power Supply and Start-Up Considerations............................................................ 31

    8.1.   Power Domain Overview............................................................................................................31

    8.2.   Power Supply Considerations.................................................................................................... 31

    8.3.   Power-Up....................................................................................................................................33

    8.4.   Power-On Reset and Brown-Out Detector................................................................................. 33

9.  Product Mapping......................................................................................................35

10. Memories.................................................................................................................36

    10.1.  Embedded Memories................................................................................................................. 36

    10.2.  Physical Memory Map................................................................................................................ 36

    10.3.  NVM Calibration and Auxiliary Space.........................................................................................37

    10.4.  NVM User Row Mapping............................................................................................................37

    10.5.  NVM Software Calibration Area Mapping...................................................................................38

    10.6.  Serial Number.............................................................................................................................39

11. Processor And Architecture..................................................................................... 40

    11.1.  Cortex M0+ Processor................................................................................................................40

    11.2.  Nested Vector Interrupt Controller..............................................................................................41
     11.3.  High-Speed Bus System............................................................................................................ 43

     11.4.  AHB-APB Bridge........................................................................................................................ 44

     11.5.  PAC - Peripheral Access Controller............................................................................................45

     11.6.  Register Description................................................................................................................... 46

12.  Peripherals Configuration Summary........................................................................59

13.  DSU - Device Service Unit...................................................................................... 61

     13.1.  Overview.....................................................................................................................................61

     13.2.  Features..................................................................................................................................... 61

     13.3.  Block Diagram............................................................................................................................ 62

     13.4.  Signal Description.......................................................................................................................62

     13.5.  Product Dependencies............................................................................................................... 62

     13.6.  Debug Operation........................................................................................................................ 63

     13.7.  Chip Erase..................................................................................................................................65

     13.8.  Programming.............................................................................................................................. 65

     13.9.  Intellectual Property Protection...................................................................................................66

     13.10. Device Identification................................................................................................................... 67

     13.11. Functional Description................................................................................................................68

     13.12. Register Summary..................................................................................................................... 74

     13.13. Register Description...................................................................................................................76

14.  Clock System.........................................................................................................100

     14.1.  Clock Distribution......................................................................................................................100

     14.2.  Synchronous and Asynchronous Clocks..................................................................................101

     14.3.  Register Synchronization..........................................................................................................101

     14.4.  Enabling a Peripheral............................................................................................................... 106

     14.5.  Disabling a Peripheral.............................................................................................................. 106

     14.6.  On-demand, Clock Requests................................................................................................... 106

     14.7.  Power Consumption vs. Speed................................................................................................ 107

     14.8.  Clocks after Reset.................................................................................................................... 107

15.  GCLK - Generic Clock Controller.......................................................................... 108

     15.1.  Overview...................................................................................................................................108

     15.2.  Features................................................................................................................................... 108

     15.3.  Block Diagram.......................................................................................................................... 108

     15.4.  Signal Description.....................................................................................................................109

     15.5.  Product Dependencies............................................................................................................. 109

     15.6.  Functional Description.............................................................................................................. 110

     15.7.  Register Summary.................................................................................................................... 115

     15.8.  Register Description................................................................................................................. 116

16.  PM – Power Manager............................................................................................129

     16.1.  Overview...................................................................................................................................129

     16.2.  Features................................................................................................................................... 129

     16.3.  Block Diagram.......................................................................................................................... 130

     16.4.  Signal Description.....................................................................................................................130

     16.5.  Product Dependencies............................................................................................................. 130

     16.6.  Functional Description..............................................................................................................132

            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                                                  4

            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
     16.7.  Register Summary....................................................................................................................140

     16.8.  Register Description................................................................................................................. 140

17.  SYSCTRL – System Controller............................................................................. 162

     17.1.  Overview...................................................................................................................................162

     17.2.  Features................................................................................................................................... 162

     17.3.  Block Diagram.......................................................................................................................... 164

     17.4.  Signal Description.....................................................................................................................164

     17.5.  Product Dependencies............................................................................................................. 165

     17.6.  Functional Description..............................................................................................................166

     17.7.  Register Summary....................................................................................................................178

     17.8.  Register Description................................................................................................................. 179

18.  WDT – Watchdog Timer........................................................................................ 216

     18.1.  Overview...................................................................................................................................216

     18.2.  Features................................................................................................................................... 216

     18.3.  Block Diagram.......................................................................................................................... 217

     18.4.  Signal Description.....................................................................................................................217

     18.5.  Product Dependencies............................................................................................................. 217

     18.6.  Functional Description..............................................................................................................218

     18.7.  Register Summary....................................................................................................................223

     18.8.  Register Description................................................................................................................. 223

19.  RTC    – Real-Time Counter..................................................................................... 234

     19.1.  Overview...................................................................................................................................234

     19.2.  Features................................................................................................................................... 234

     19.3.  Block Diagram.......................................................................................................................... 235

     19.4.  Signal Description.....................................................................................................................235

     19.5.  Product Dependencies............................................................................................................. 235

     19.6.  Functional Description..............................................................................................................237

     19.7.  Register Summary....................................................................................................................243

     19.8.  Register Description................................................................................................................. 245

20.  EIC – External Interrupt Controller........................................................................ 278

     20.1.  Overview...................................................................................................................................278

     20.2.  Features................................................................................................................................... 278

     20.3.  Block Diagram.......................................................................................................................... 278

     20.4.  Signal Description.....................................................................................................................279

     20.5.  Product Dependencies............................................................................................................. 279

     20.6.  Functional Description..............................................................................................................280

     20.7.  Register Summary....................................................................................................................285

     20.8.  Register Description................................................................................................................. 285

21.  NVMCTRL – Non-Volatile Memory Controller....................................................... 297

     21.1.  Overview...................................................................................................................................297

     21.2.  Features................................................................................................................................... 297

     21.3.  Block Diagram.......................................................................................................................... 297

     21.4.  Signal Description.....................................................................................................................297

     21.5.  Product Dependencies............................................................................................................. 298

            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                                                 5

            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
     21.6.  Functional Description..............................................................................................................299

     21.7.  Register Summary....................................................................................................................306

     21.8.  Register Description................................................................................................................. 306

22.  PORT - I/O Pin Controller...................................................................................... 320

     22.1.  Overview...................................................................................................................................320

     22.2.  Features................................................................................................................................... 320

     22.3.  Block Diagram.......................................................................................................................... 321

     22.4.  Signal Description.....................................................................................................................321

     22.5.  Product Dependencies............................................................................................................. 321

     22.6.  Functional Description..............................................................................................................324

     22.7.  Register Summary....................................................................................................................329

     22.8.  Register Description................................................................................................................. 331

23.  EVSYS – Event System........................................................................................ 349

     23.1.  Overview...................................................................................................................................349

     23.2.  Features................................................................................................................................... 349

     23.3.  Block Diagram.......................................................................................................................... 349

     23.4.  Signal Description.....................................................................................................................350

     23.5.  Product Dependencies............................................................................................................. 350

     23.6.  Functional Description..............................................................................................................351

     23.7.  Register Summary....................................................................................................................357

     23.8.  Register Description................................................................................................................. 357

24.  SERCOM – Serial Communication Interface.........................................................369

     24.1.  Overview...................................................................................................................................369

     24.2.  Features................................................................................................................................... 369

     24.3.  Block Diagram.......................................................................................................................... 370

     24.4.  Signal Description.....................................................................................................................370

     24.5.  Product Dependencies............................................................................................................. 370

     24.6.  Functional Description..............................................................................................................372

25.  SERCOM USART – SERCOM Universal Synchronous and Asynchronous Receiver

     and Transmitter......................................................................................................377

     25.1.  Overview...................................................................................................................................377

     25.2.  USART Features...................................................................................................................... 377

     25.3.  Block Diagram.......................................................................................................................... 378

     25.4.  Signal Description.....................................................................................................................378

     25.5.  Product Dependencies............................................................................................................. 378

     25.6.  Functional Description..............................................................................................................380

     25.7.  Register Summary....................................................................................................................388

     25.8.  Register Description................................................................................................................. 388

26.  SERCOM SPI – SERCOM Serial Peripheral Interface..........................................405

     26.1.  Overview...................................................................................................................................405

     26.2.  Features................................................................................................................................... 405

     26.3.  Block Diagram.......................................................................................................................... 406

     26.4.  Signal Description.....................................................................................................................406

     26.5.  Product Dependencies............................................................................................................. 406

            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                                                 6

            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
     26.6.  Functional Description..............................................................................................................408

     26.7.  Register Summary....................................................................................................................416

     26.8.  Register Description................................................................................................................. 416

27.  SERCOM I2C – SERCOM Inter-Integrated Circuit................................................ 431

     27.1.  Overview...................................................................................................................................431

     27.2.  Features................................................................................................................................... 431

     27.3.  Block Diagram.......................................................................................................................... 432

     27.4.  Signal Description.....................................................................................................................432

     27.5.  Product Dependencies............................................................................................................. 432

     27.6.  Functional Description..............................................................................................................434

     27.7.  Register Summary - I2C Slave.................................................................................................451

     27.8.  Register Description - I2C Slave...............................................................................................451

     27.9.  Register Summary - I2C Master...............................................................................................463

     27.10. Register Description - I2C Master.............................................................................................463

28.  TC –   Timer/Counter............................................................................................... 478

     28.1.  Overview...................................................................................................................................478

     28.2.  Features................................................................................................................................... 478

     28.3.  Block Diagram.......................................................................................................................... 479

     28.4.  Signal Description.....................................................................................................................479

     28.5.  Product Dependencies............................................................................................................. 480

     28.6.  Functional Description..............................................................................................................481

     28.7.  Register Summary....................................................................................................................491

     28.8.  Register Description................................................................................................................. 493

29.  ADC    – Analog-to-Digital Converter........................................................................520

     29.1.  Overview...................................................................................................................................520

     29.2.  Features................................................................................................................................... 520

     29.3.  Block Diagram.......................................................................................................................... 521

     29.4.  Signal Description.....................................................................................................................521

     29.5.  Product Dependencies............................................................................................................. 522

     29.6.  Functional Description..............................................................................................................523

     29.7.  Register Summary....................................................................................................................532

     29.8.  Register Description................................................................................................................. 533

30.  AC –   Analog Comparators.....................................................................................558

     30.1.  Overview...................................................................................................................................558

     30.2.  Features................................................................................................................................... 558

     30.3.  Block Diagram.......................................................................................................................... 559

     30.4.  Signal Description.....................................................................................................................559

     30.5.  Product Dependencies............................................................................................................. 559

     30.6.  Functional Description..............................................................................................................560

     30.7.  Register Summary....................................................................................................................569

     30.8.  Register Description................................................................................................................. 570

31.  DAC – Digital-to-Analog Converter........................................................................586

     31.1.  Overview...................................................................................................................................586

     31.2.  Features................................................................................................................................... 586

            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                                                 7

            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
     31.3.  Block Diagram.......................................................................................................................... 586

     31.4.  Signal Description.....................................................................................................................586

     31.5.  Product Dependencies............................................................................................................. 586

     31.6.  Functional Description..............................................................................................................588

     31.7.  Register Summary....................................................................................................................592

     31.8.  Register Description................................................................................................................. 592

32.  PTC - Peripheral Touch Controller.........................................................................602

     32.1.  Overview...................................................................................................................................602

     32.2.  Features................................................................................................................................... 602

     32.3.  Block Diagram.......................................................................................................................... 603

     32.4.  Signal Description.....................................................................................................................604

     32.5.  Product Dependencies............................................................................................................. 604

     32.6.  Functional Description..............................................................................................................605

33.  Electrical Characteristics....................................................................................... 606

     33.1.  Disclaimer.................................................................................................................................606

     33.2.  Absolute Maximum Ratings......................................................................................................606

     33.3.  General Operating Ratings.......................................................................................................607

     33.4.  Supply Characteristics..............................................................................................................607

     33.5.  Maximum Clock Frequencies................................................................................................... 608

     33.6.  Power Consumption................................................................................................................. 609

     33.7.  Peripheral Power Consumption................................................................................................ 611

     33.8.  I/O Pin Characteristics..............................................................................................................613

     33.9.  Injection Current....................................................................................................................... 615

     33.10. Analog Characteristics............................................................................................................. 616

     33.11. NVM Characteristics.................................................................................................................628

     33.12. Oscillators Characteristics........................................................................................................629

     33.13. PTC Typical Characteristics..................................................................................................... 634

     33.14. Timing Characteristics..............................................................................................................637

34.  Packaging Information...........................................................................................641

     34.1.  Thermal Considerations........................................................................................................... 641

     34.2.  Package Drawings....................................................................................................................642

     34.3.  Soldering Profile....................................................................................................................... 651

35.  Schematic Checklist.............................................................................................. 652

     35.1.  Introduction...............................................................................................................................652

     35.2.  Power Supply........................................................................................................................... 652

     35.3.  External Analog Reference Connections................................................................................. 653

     35.4.  External Reset Circuit...............................................................................................................654

     35.5.  Clocks and Crystal Oscillators..................................................................................................655

     35.6.  Unused or Unconnected Pins...................................................................................................659

     35.7.  Programming and Debug Ports................................................................................................659

36.  Errata..................................................................................................................... 663

     36.1.  Errata........................................................................................................................................663

37.  Datasheet Revision History................................................................................... 688

            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                                                   8

            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
     37.1.  Rev. P - 09/2016.......................................................................................................................688

     37.2.  Rev. O - 08/2016...................................................................................................................... 688

     37.3.  Rev. N - 01/2015.......................................................................................................................689

     37.4.  Rev. M - 12/2014...................................................................................................................... 690

     37.5.  Rev. L - 09/2014....................................................................................................................... 691

     37.6.  Rev. K – 05/2014...................................................................................................................... 692

     37.7.  Rev. J – 12/2013.......................................................................................................................695

     37.8.  Rev. I  12/2013......................................................................................................................... 695

     37.9.  Rev. H  10/2013........................................................................................................................704

     37.10. Rev. G 10/2013........................................................................................................................ 705

     37.11. Rev. F 10/2013......................................................................................................................... 706

     37.12. Rev. E 09/2013.........................................................................................................................706

     37.13. Rev. D 08/2013.........................................................................................................................706

     37.14. Rev. C – 07/2013......................................................................................................................707

     37.15. Rev. B – 07/2013......................................................................................................................708

     37.16. Rev. A 06/2013.........................................................................................................................709

38.  Conventions...........................................................................................................710

     38.1.  Numerical Notation...................................................................................................................710

     38.2.  Memory Size and Type.............................................................................................................710

     38.3.  Frequency and Time.................................................................................................................710

     38.4.  Registers and Bits.....................................................................................................................711

39.  Acronyms and Abbreviations.................................................................................712

40.  Appendix A: Electrical Characteristics at 105°C....................................................715

     40.1.  Disclaimer.................................................................................................................................715

     40.2.  Absolute Maximum Ratings......................................................................................................715

     40.3.  General Operating Ratings.......................................................................................................715

     40.4.  Maximum Clock Frequencies................................................................................................... 716

     40.5.  Power Consumption................................................................................................................. 717

     40.6.  Injection Current....................................................................................................................... 719

     40.7.  Analog Characteristics..............................................................................................................720

     40.8.  NVM Characteristics.................................................................................................................727

     40.9.  Oscillators Characteristics........................................................................................................728

                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                                        9

                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
1.  Description

    The Atmel® | SMART™ SAM D20 is a series of low-power microcontrollers using the 32-bit ARM® Cortex®-

    M0+ processor, and ranging from 32- to 64-pins with up to 256KB Flash and 32KB of SRAM. The SAM

    D20 devices operate at a maximum frequency of 48MHz and reach 2.46 CoreMark/MHz. They are

    designed for simple and intuitive migration with identical peripheral modules, hex compatible code,

    identical linear address map and pin compatible migration paths between all devices in the product

    series. All devices include intelligent and flexible peripherals, Atmel Event System for inter-peripheral

    signaling, and support for capacitive touch button, slider and wheel user interfaces.

    The SAM D20 devices provide the following features: In-system programmable Flash, eight-channel

    Event System, programmable interrupt controller, up to 52 programmable I/O pins, 32-bit real-time clock

    and calendar, up to eight 16-bit Timer/Counters (TC) . The timer/counters can be configured to perform

    frequency and waveform generation, accurate program execution timing or input capture with time and

    frequency measurement of digital signals. The TCs can operate in 8- or 16-bit mode, selected TCs can be

    cascaded to form a 32-bit TC. The series provide up to six Serial Communication Modules (SERCOM)

    that each can be configured to act as an USART, UART, SPI, I2C up to 400kHz, up to twenty-channel

    350ksps 12-bit ADC with programmable gain and optional oversampling and decimation supporting up to

    16-bit resolution, one 10-bit 350ksps DAC, two analog comparators with window mode, Peripheral Touch

    Controller supporting up to 256 buttons, sliders, wheels and proximity sensing; programmable Watchdog

    Timer, brown-out detector and power-on reset and two-pin Serial Wire Debug (SWD) program and debug

    interface.

    All devices have accurate and low-power external and internal oscillators. All oscillators can be used as a

    source for the system clock. Different clock domains can be independently configured to run at different

    frequencies, enabling power saving by running each peripheral at its optimal clock frequency, and thus

    maintaining a high CPU frequency while reducing power consumption.

    The SAM D20 devices have two software-selectable sleep modes, idle and standby. In idle mode the

    CPU is stopped while all other functions can be kept running. In standby all clocks and functions are

    stopped expect those selected to continue running. The device supports SleepWalking. This feature

    allows the peripheral to wake up from sleep based on predefined conditions, and thus allows the CPU to

    wake up only when needed, e.g. when a threshold is crossed or a result is ready. The Event System

    supports synchronous and asynchronous events, allowing peripherals to receive, react to and send

    events even in standby mode.

    The Flash program memory can be reprogrammed in-system through the SWD interface. The same

    interface can be used for non-intrusive on-chip debug of application code. A boot loader running in the

    device can use any communication interface to download and upgrade the application program in the

    Flash memory.

    The SAM D20 devices are supported with a full suite of program and system development tools, including

    C compilers, macro assemblers, program debugger/simulators, programmers and evaluation kits.

                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                               10

                                  Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
2.     Configuration Summary

                                                 SAM D20J             SAM D20G             SAM D20E

Pins                                             64                   48                   32

General Purpose I/O-pins (GPIOs)                 52                   38                   26

Flash                                            256/128/64/32KB      256/128/64/32KB      256/128/64/32KB

SRAM                                             32/16/8/4/2KB        32/16/8/4/2KB        32/16/8/4/2KB

Timer Counter (TC) instances                     8                    6                    6

Waveform output channels per TC instance         2                    2                    2

Serial Communication Interface (SERCOM)          6                    6                    4

instances

Analog-to-Digital Converter (ADC) channels       20                   14                   10

Analog Comparators (AC)                          2                    2                    2

Digital-to-Analog Converter (DAC) channels       1                    1                    1

Real-Time Counter (RTC)                          Yes                  Yes                  Yes

RTC alarms                                       1                    1                    1

RTC compare values                               One 32-bit value or  One 32-bit value or  One 32-bit value or

                                                 two 16-bit values    two 16-bit values    two 16-bit values

External Interrupt lines                         16                   16                   16

Peripheral Touch Controller (PTC) X and Y lines  16x16                12x10                10x6

Maximum CPU frequency                            48MHz

Packages                                         QFN                  QFN                  QFN

                                                 TQFP                 TQFP                 TQFP

                                                 UFBGA                WLCSP

Oscillators                                      32.768kHz crystal oscillator (XOSC32K)

                                                 0.4-32MHz crystal oscillator (XOSC)

                                                 32.768kHz internal oscillator (OSC32K)

                                                 32KHz ultra-low-power internal oscillator (OSCULP32K)

                                                 8MHz high-accuracy internal oscillator (OSC8M)

                                                 48MHz Digital Frequency Locked Loop (DFLL48M)

Event System channels                            8                    8                    8

SW Debug Interface                               Yes                  Yes                  Yes

Watchdog Timer (WDT)                             Yes                  Yes                  Yes

                                                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                   11

                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
3.    Ordering Information

                           SAMD               20  E  14  A  -   M   U  T

      Product Family                                                             Package Carrier

      SAMD = General Purpose Microcontroller                                     No character = Tray (Default)

      Product Series                                                                   T = Tape and Reel

      20 = Cortex M0+ CPU, Basic Feature Set                                          Package Grade

      Pin Count                                                               U  = -40 - 85OC Matte Sn Plating

      D = 25 Pins                                                             N  = -40 - 105OC Matte Sn Plating

      E = 32 Pins

      G = 48 Pins                                                                      Package Type

      J = 64 Pins

      Flash Memory         Density                                                           A = TQFP

      18 = 256KB                                                                             M = QFN

      17 = 128KB                                                                             C = UFBGA

      16 = 64KB                                                                              U = WLCSP

      15 = 32KB

      14 = 16KB

      Device Variant

      A = Default Variant

3.1.  SAM D20E

      Ordering Code         FLASH (bytes)                       SRAM (bytes)  Package  Carrier Type

      ATSAMD20E14A-AU       16K                                 2K            TQFP32   Tray

      ATSAMD20E14A-AUT                                                                 Tape & Reel

      ATSAMD20E14A-AN                                                                  Tray

      ATSAMD20E14A-ANT                                                                 Tape & Reel

      ATSAMD20E14A-MU                                                         QFN32    Tray

      ATSAMD20E14A-MUT                                                                 Tape & Reel

      ATSAMD20E14A-MN                                                                  Tray

      ATSAMD20E14A-MNT                                                                 Tape & Reel

                                                         Atmel  SAM D20E / SAM D20G / SAM D20J [DATASHEET]                 12

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Ordering Code     FLASH  (bytes)  SRAM (bytes)  Package  Carrier Type

ATSAMD20E15A-AU   32K             4K            TQFP32   Tray

ATSAMD20E15A-AUT                                         Tape & Reel

ATSAMD20E15A-AN                                          Tray

ATSAMD20E15A-ANT                                         Tape & Reel

ATSAMD20E15A-MU                                 QFN32    Tray

ATSAMD20E15A-MUT                                         Tape & Reel

ATSAMD20E15A-MN                                          Tray

ATSAMD20E15A-MNT                                         Tape & Reel

ATSAMD20E16A-AU   64K             8K            TQFP32   Tray

ATSAMD20E16A-AUT                                         Tape & Reel

ATSAMD20E16A-AN                                          Tray

ATSAMD20E16A-AFT                                         Tape & Reel

ATSAMD20E16A-MU                                 QFN32    Tray

ATSAMD20E16A-MUT                                         Tape & Reel

ATSAMD20E16A-MN                                          Tray

ATSAMD20E16A-MNT                                         Tape & Reel

ATSAMD20E17A-AU   128K            16K           TQFP32   Tray

ATSAMD20E17A-AUT                                         Tape & Reel

ATSAMD20E17A-AN                                          Tray

ATSAMD20E17A-ANT                                         Tape & Reel

ATSAMD20E17A-MU                                 QFN32    Tray

ATSAMD20E17A-MUT                                         Tape & Reel

ATSAMD20E17A-MN                                          Tray

ATSAMD20E17A-MNT                                         Tape & Reel

ATSAMD20E18A-AU   256K            32K           TQFP32   Tray

ATSAMD20E18A-AUT                                         Tape & Reel

ATSAMD20E18A-AN                                          Tray

ATSAMD20E18A-AFT                                         Tape & Reel

ATSAMD20E18A-MU                                 QFN32    Tray

ATSAMD20E18A-MUT                                         Tape & Reel

ATSAMD20E18A-MN                                          Tray

ATSAMD20E18A-MNT                                         Tape & Reel

                         Atmel    SAM D20E / SAM D20G / SAM D20J [DATASHEET]            13

                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
3.2.  SAM D20G

      Ordering Code     FLASH  (bytes)  SRAM (bytes)  Package  Carrier Type

      ATSAMD20G14A-AU   16K             2K            TQFP32   Tray

      ATSAMD20G14A-AUT                                         Tape & Reel

      ATSAMD20G14A-AN                                          Tray

      ATSAMD20G14A-ANT                                         Tape & Reel

      ATSAMD20G14A-MU                                 QFN32    Tray

      ATSAMD20G14A-MUT                                         Tape & Reel

      ATSAMD20G14A-MN                                          Tray

      ATSAMD20G14A-MNT                                         Tape & Reel

      ATSAMD20G15A-AU   32K             4K            TQFP48   Tray

      ATSAMD20G15A-AUT                                         Tape & Reel

      ATSAMD20G15A-AN                                          Tray

      ATSAMD20G15A-ANT                                         Tape & Reel

      ATSAMD20G15A-MU                                 QFN48    Tray

      ATSAMD20G15A-MUT                                         Tape & Reel

      ATSAMD20G15A-MN                                          Tray

      ATSAMD20G15A-MNT                                         Tape & Reel

      ATSAMD20G16A-AU   64K             8K            TQFP48   Tray

      ATSAMD20G16A-AUT                                         Tape & Reel

      ATSAMD20G16A-AN                                          Tray

      ATSAMD20G16A-ANT                                         Tape & Reel

      ATSAMD20G16A-MU                                 QFN48    Tray

      ATSAMD20G16A-MUT                                         Tape & Reel

      ATSAMD20G16A-MN                                          Tray

      ATSAMD20G16A-MNT                                         Tape & Reel

                               Atmel    SAM D20E / SAM D20G / SAM D20J [DATASHEET]           14

                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
      Ordering Code     FLASH  (bytes)         SRAM (bytes)  Package  Carrier Type

      ATSAMD20G17A-AU   128K                   16K           TQFP48   Tray

      ATSAMD20G17A-AUT                                                Tape & Reel

      ATSAMD20G17A-AN                                                 Tray

      ATSAMD20G17A-ANT                                                Tape & Reel

      ATSAMD20G17A-MU                                        QFN48    Tray

      ATSAMD20G17A-MUT                                                Tape & Reel

      ATSAMD20G17A-MN                                                 Tray

      ATSAMD20G17A-MNT                                                Tape & Reel

      ATSAMD20G17A-UUT                                       WLCSP45  Tape & Reel

      ATSAMD20G18A-AU   256K                   32K           TQFP48   Tray

      ATSAMD20G18A-AUT                                                Tape & Reel

      ATSAMD20G18A-AN                                                 Tray

      ATSAMD20G18A-ANT                                                Tape & Reel

      ATSAMD20G18A-MU                                        QFN48    Tray

      ATSAMD20G18A-MUT                                                Tape & Reel

      ATSAMD20G18A-MN                                                 Tray

      ATSAMD20G18A-MNT                                                Tape & Reel

      ATSAMD20G18A-UUT                                       WLCSP45  Tape & Reel

3.3.  SAM D20J

      Ordering Code     FLASH  (bytes)         SRAM (bytes)  Package  Carrier Type

      ATSAMD20J14A-AU   16K                    2K            TQFP64   Tray

      ATSAMD20J14A-AUT                                                Tape & Reel

      ATSAMD20J14A-AN                                                 Tray

      ATSAMD20J14A-ANT                                                Tape & Reel

      ATSAMD20J14A-MU                                        QFN64    Tray

      ATSAMD20J14A-MUT                                                Tape & Reel

      ATSAMD20J14A-MN                                                 Tray

      ATSAMD20J14A-MNT                                                Tape & Reel

                                        Atmel  SAM D20E / SAM D20G / SAM D20J [DATASHEET]            15

                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Ordering Code     FLASH  (bytes)         SRAM  (bytes)  Package  Carrier Type

ATSAMD20J15A-AU   32K                    4K             TQFP64   Tray

ATSAMD20J15A-AUT                                                 Tape & Reel

ATSAMD20J15A-AN                                                  Tray

ATSAMD20J15A-ANT                                                 Tape & Reel

ATSAMD20J15A-MU                                         QFN64    Tray

ATSAMD20J15A-MUT                                                 Tape & Reel

ATSAMD20J15A-MN                                                  Tray

ATSAMD20J15A-MNT                                                 Tape & Reel

ATSAMD20J16A-AU   64K                    8K             TQFP64   Tray

ATSAMD20J16A-AUT                                                 Tape & Reel

ATSAMD20J16A-AN                                                  Tray

ATSAMD20J16A-ANT                                                 Tape & Reel

ATSAMD20J16A-MU                                         QFN64    Tray

ATSAMD20J16A-MUT                                                 Tape & Reel

ATSAMD20J16A-MN                                                  Tray

ATSAMD20J16A-MNT                                                 Tape & Reel

ATSAMD20J16A-CU                                         UFBGA64  Tray

ATSAMD20J16A-CUT                                                 Tape & Reel

ATSAMD20J17A-AU   128K                   16K            TQFP64   Tray

ATSAMD20J17A-AUT                                                 Tape & Reel

ATSAMD20J17A-AN                                                  Tray

ATSAMD20J17A-ANT                                                 Tape & Reel

ATSAMD20J17A-MU                                         QFN64    Tray

ATSAMD20J17A-MUT                                                 Tape & Reel

ATSAMD20J17A-MN                                                  Tray

ATSAMD20J17A-MNT                                                 Tape & Reel

ATSAMD20J17A-CU                                         UFBGA64  Tray

ATSAMD20J17A-CUT                                                 Tape & Reel

                                  Atmel  SAM D20E / SAM D20G / SAM D20J [DATASHEET]             16

                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
      Ordering Code          FLASH (bytes)                 SRAM (bytes)  Package          Carrier Type

      ATSAMD20J18A-AU        256K                          32K           TQFP64           Tray

      ATSAMD20J18A-AUT                                                                    Tape & Reel

      ATSAMD20J18A-AN                                                                     Tray

      ATSAMD20J18A-ANT                                                                    Tape & Reel

      ATSAMD20J18A-MU                                                    QFN64            Tray

      ATSAMD20J18A-MUT                                                                    Tape & Reel

      ATSAMD20J18A-MN                                                                     Tray

      ATSAMD20J18A-MNT                                                                    Tape & Reel

      ATSAMD20J18A-CU                                                    UFBGA64          Tray

      ATSAMD20J18A-CUT                                                                    Tape & Reel

3.4.  Device Identification

      The DSU - Device Service Unit peripheral provides the Device Selection bits in the Device Identification

      register (DID.DEVSEL) in order to identify the device by software. The device variants have a reset value

      of DID=0x1001drxx, with the LSB identifying the die number ('d'), the die revision ('r') and the device

      selection ('xx').

      Table 3-1. Device Identification Values

      Device Variant                           DID.DEVSEL                Device ID (DID)

      SAMD20J18C                               0x00                      0x10001300

      SAMD20J18A                               0x00                      0x10001300

      SAMD20J17A                               0x01                      0x10001301

      SAMD20J16A                               0x02                      0x10001302

      SAMD20J15A                               0x03                      0x10001303

      SAMD20J14A                               0x04                      0x10001304

      SAMD20G18A                               0x05                      0x10001305

      SAMD20G17A                               0x06                      0x10001306

      SAMD20G16A                               0x07                      0x10001307

      SAMD20G15A                               0x08                      0x10001308

      SAMD20G14A                               0x09                      0x10001309

      SAMD20E18A                               0x0A                      0x1000130A

      SAMD20E17A                               0x0B                      0x1000130B

      SAMD20E16A                               0x0C                      0x1000130C

      SAMD20E15A                               0x0D                      0x1000130D

                                                     Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]            17

                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Device Variant         DID.DEVSEL   Device ID (DID)

SAMD20E14A             0x0E         0x1000130E

Reserved               0x0F

SAMD20G18U             0x10         0x10001310

SAMD20G17U             0x11         0x10001311

Reserved               0x12 - 0xFF

Note:  The device variant (last letter of the ordering number) is independent of the die revision

(DSU.DID.REVISION): The device variant denotes functional differences, whereas the die revision marks

evolution of the die. The device variant denotes functional differences, whereas the die revision marks

evolution of the die.

                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                            18

                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
4.  Block  Diagram

                               IOBUS

                                                                            256/128/64/32/16KB

                                                     ARM CORTEX-M0+                NVM

           SWCLK               SERIAL                   PROCESSOR

           SWDIO               WIRE                     Fmax 48MHz                 NVM

                                                                                CONTROLLER

                                                                                   Cache

                               DEVICE

                               SERVICE

                               UNIT                  M    M                           S

                                                                                                                                   32/16/8/4/2KB

                                                                                                                                   RAM

                                                                    HIGH SPEED

                                                                    BUS MATRIX                                                     SRAM

                        PERIPHERAL                                                              S                                  CONTROLLER

                   ACCESS CONTROLLER

                                                     S    S                     S

                                        AHB-APB           AHB-APB           AHB-APB

                                        BRIDGE B          BRIDGE A          BRIDGE C

                                        PERIPHERAL                                        PERIPHERAL

                                       ACCESS CONTROLLER                              ACCESS CONTROLLER

                        SYSTEM        CONTROLLER

    PORT                                                                                  66xxSSEERRCCOOMM                         PIN[3:0]

                        BOD33                 VREF

                                        OSCULP32K

          XIN32

          XOUT32        XOSC32K               OSC32K

                                              OSC8M                 SYSTEM               8 x 8TIx(MSTeEeimRNeoCrteOC1)UouNnTtEerR  WO[1:0]

           XIN

          XOUT          XOSC                  DFLL48M

                               POWER MANAGER                        EVENT                                                          AIN[19:0]

                                                                                                ADC                                VREFA          PORT

                                              CLOCK                                                                                VREFB

                                        CONTROLLER

          RESET                RESET          SLEEP                                                                                AIN[3:0]

                   CONTROLLER           CONTROLLER                                        2 ANALOG

                                                                                          COMPARATORS                              CMP1:0]

                 GCLK_IO[7:0]          GENERIC CLOCK

                                        CONTROLLER                                                                                 VOUT

                                        REAL TIME                                               DAC                                VREFA

                                        COUNTER

                                        WATCHDOG                                          PERIPHERAL                               X[15:0]

                                        TIMER                                               TOUCH

                 EXTINT[15:0]         EXTERNAL INTERRUPT                                  CONTROLLER                               Y[15:0]

                   NMI                  CONTROLLER

    Note:  1. Some products have different number of SERCOM instances, Timer/Counter                                               instances,     PTC

    signals and ADC signals. Refer to Peripherals Configuration Summary for details.

    Related Links

    Peripherals Configuration Summary on page 59

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                          19

                                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
5.      Pinout

5.1.    SAM D20J

5.1.1.  QFN64 / TQFP64

                            PB03  PB02  PB01  PB00  PB31   PB30  PA31  PA30  VDDIN  VDDCORE  GND   PA28  RESET  PA27  PB23  PB22

                            64    63    62    61    60     59    58    57    56     55       54    53    52     51    50    49

        PA00            1                                                                                                         48  VDDIO

        PA01            2                                                                                                         47  GND

        PA02            3                                                                                                         46  PA25

        PA03            4                                                                                                         45  PA24

        PB04            5                                                                                                         44  PA23

        PB05            6                                                                                                         43  PA22

        GNDANA          7                                                                                                         42  PA21

        VDDANA          8                                                                                                         41  PA20

        PB06            9                                                                                                         40  PB17

        PB07            10                                                                                                        39  PB16

        PB08            11                                                                                                        38  PA19

        PB09            12                                                                                                        37  PA18

        PA04            13                                                                                                        36  PA17

        PA05            14                                                                                                        35  PA16

        PA06            15                                                                                                        34  VDDIO

        PA07            16                                                                                                        33  GND

                            17    18    19    20    21     22    23    24    25     26       27    28    29     30    31    32

                            PA08  PA09  PA10  PA11  VDDIO  GND   PB10  PB11  PB12   PB13     PB14  PB15  PA12   PA13  PA14  PA15

        DIGITAL PIN

        ANALOG PIN

        OSCILLATOR

        GROUND

        INPUT SUPPLY

        REGULATED OUTPUT                SUPPLY

        RESET PIN

                                                                       Atmel        SAM            D20E         /  SAM D20G / SAM D20J [DATASHEET]                     20

                                                                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
5.1.2.  UFBGA64

                 Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]  21

                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
5.2.    SAM D20G

5.2.1.  QFN48 / TQFP48

                            PB03  PB02  PA31  PA30  VDDIN  VDDCORE  GND   PA28  RESET  PA27  PB23  PB22

                            48    47    46    45    44     43       42    41    40     39    38    37

        PA00            1                                                                                36  VDDIO

        PA01            2                                                                                35  GND

        PA02            3                                                                                34  PA25

        PA03            4                                                                                33  PA24

        GNDANA          5                                                                                32  PA23

        VDDANA          6                                                                                31  PA22

        PB08            7                                                                                30  PA21

        PB09            8                                                                                29  PA20

        PA04            9                                                                                28  PA19

        PA05            10                                                                               27  PA18

        PA06            11                                                                               26  PA17

        PA07            12                                                                               25  PA16

                            13    14    15    16    17     18       19    20    21     22    23    24

                            PA08  PA09  PA10  PA11  VDDIO  GND      PB10  PB11  PA12   PA13  PA14  PA15

        DIGITAL PIN

        ANALOG PIN

        OSCILLATOR

        GROUND

        INPUT SUPPLY

        REGULATED OUTPUT                SUPPLY

        RESET PIN

                                                           Atmel          SAM          D20E  /     SAM D20G / SAM D20J [DATASHEET]                  22

                                                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
5.2.2.  WLCSP45

                 A

                 Atmel  SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                  23

                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
5.3.    SAM D20E

5.3.1.  QFN32 / TQFP32

                           PA31    PA30  VDDIN  VDDCORE  GND   PA28  RESET PA27

                           32      31    30     29       28    27    26     25

        PA00            1                                                        24           PA25

        PA01            2                                                        23           PA24

        PA02            3                                                        22           PA23

        PA03            4                                                        21           PA22

        PA04            5                                                        20           PA19

        PA05            6                                                        19           PA18

        PA06            7                                                        18           PA17

        PA07            8                                                        17           PA16

                           9       10    11     12       13    14    15     16

                           VDDANA  GND   PA08   PA09     PA10  PA11  PA14  PA15

        DIGITAL PIN

        ANALOG PIN

        OSCILLATOR

        GROUND

        INPUT SUPPLY

        REGULATED OUTPUT                        SUPPLY

        RESET PIN

                                                                     Atmel       SAM D20E  /  SAM D20G / SAM D20J [DATASHEET]                  24

                                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
6.  Signal Descriptions List

    The following table gives details on signal names classified by peripheral.

    Signal Name   Function                                                       Type             Active Level

    Analog Comparators - AC

    AIN[3:0]      AC Analog Inputs                                               Analog

    CMP[1:0]      AC Comparator Outputs                                          Digital

    Analog Digital Converter - ADC

    AIN[19:0]     ADC Analog Inputs                                              Analog

    VREFA         ADC Voltage External Reference A                               Analog

    VREFB         ADC Voltage External Reference B                               Analog

    Digital Analog Converter - DAC

    VOUT          DAC Voltage output                                             Analog

    VREFA         DAC Voltage External Reference                                 Analog

    External Interrupt Controller

    EXTINT[15:0]  External Interrupts                                            Input

    NMI           External Non-Maskable Interrupt                                Input

    Generic Clock Generator - GCLK

    GCLK_IO[7:0]  Generic Clock (source clock or generic  clock  generator       I/O

                  output)

    Power Manager - PM

    RESET         Reset                                                          Input            Low

    Serial Communication Interface - SERCOMx

    PAD[3:0]      SERCOM I/O Pads                                                I/O

    System Control - SYSCTRL

    XIN           Crystal Input                                                  Analog/ Digital

    XIN32         32kHz Crystal Input                                            Analog/ Digital

    XOUT          Crystal Output                                                 Analog

    XOUT32        32kHz Crystal Output                                           Analog

    Timer Counter - TCx

    WO[1:0]       Waveform Outputs                                               Output

    Peripheral Touch Controller - PTC

    X[15:0]       PTC Input                                                      Analog

    Y[15:0]       PTC Input                                                      Analog

                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                    25

                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Signal Name  Function                                            Type  Active Level

General Purpose I/O - PORT

PA25 - PA00  Parallel I/O Controller  I/O  Port A                I/O

PA28 - PA27  Parallel I/O Controller  I/O  Port A                I/O

PA31 - PA30  Parallel I/O Controller  I/O  Port A                I/O

PB17 - PB00  Parallel I/O Controller  I/O  Port B                I/O

PB23 - PB22  Parallel I/O Controller  I/O  Port B                I/O

PB31 - PB30  Parallel I/O Controller  I/O  Port B                I/O

                                           Atmel   SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                  26

                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
7.          I/O Multiplexing and Considerations

            Related Links

            I2C Pins on page 614

7.1.        Multiplexed Signals

            Each pin is by default controlled by the PORT as a general purpose I/O and alternatively it can be

            assigned to one of the peripheral functions A, B, C, D, E, F, G or H. To enable a peripheral function on a

            pin, the Peripheral Multiplexer Enable bit in the Pin Configuration register corresponding to that pin

            (PINCFGn.PMUXEN, n = 0-31) in the PORT must be written to one. The selection of peripheral function A

            to H is done by writing to the Peripheral Multiplexing Odd and Even bits in the Peripheral Multiplexing

            register (PMUXn.PMUXE/O) in the PORT.

            This table describes the peripheral signals multiplexed to the PORT I/O pins.

Table 7-1.  PORT Function Multiplexing

Pin(1)                     I/O Pin  Supply  Type  A           B(2)                                 C         D         E      G    H

SAMD20E  SAMD20G  SAMD20J                         EIC         REF    ADC      AC      PTC    DAC   SERCOM(3  SERCOM-   TC(4)  COM  AC/GCLK
                                                                                                   )
                                                                                                             ALT

1        1        1        PA00     VDDANA        EXTINT[0]                                                  SERCOM1/  TC2/

                                                                                                             PAD[0]    WO[0]

2        2        2        PA01     VDDANA        EXTINT[1]                                                  SERCOM1/  TC2/

                                                                                                             PAD[1]    WO[1]

3        3        3        PA02     VDDANA        EXTINT[2]          AIN[0]           Y[0]   VOUT

4        4        4        PA03     VDDANA        EXTINT[3]   ADC/   AIN[1]           Y[1]

                                                              VREFA

                                                              DAC/

                                                              VREFA

                  5        PB04     VDDANA        EXTINT[4]          AIN[12]          Y[10]

                  6        PB05     VDDANA        EXTINT[5]          AIN[13]          Y[11]

                  9        PB06     VDDANA        EXTINT[6]          AIN[14]          Y[12]

                  10       PB07     VDDANA        EXTINT[7]          AIN[15]          Y[13]

         7        11       PB08     VDDANA        EXTINT[8]          AIN[2]           Y[14]                  SERCOM4/  TC4/

                                                                                                             PAD[0]    WO[0]

         8        12       PB09     VDDANA        EXTINT[9]          AIN[3]           Y[15]                  SERCOM4/  TC4/

                                                                                                             PAD[1]    WO[1]

5        9        13       PA04     VDDANA        EXTINT[4]   ADC/   AIN[4]   AIN[0]  Y[2]                   SERCOM0/  TC0/

                                                              VREFB                                          PAD[0]    WO[0]

6        10       14       PA05     VDDANA        EXTINT[5]          AIN[5]   AIN[1]  Y[3]                   SERCOM0/  TC0/

                                                                                                             PAD[1]    WO[1]

7        11       15       PA06     VDDANA        EXTINT[6]          AIN[6]   AIN[2]  Y[4]                   SERCOM0/  TC1/

                                                                                                             PAD[2]    WO[0]

8        12       16       PA07     VDDANA        EXTINT[7]          AIN[7]   AIN[3]  Y[5]                   SERCOM0/  TC1/

                                                                                                             PAD[3]    WO[1]

11       13       17       PA08     VDDIO   I2C   NMI                AIN[16]          X[0]         SERCOM0/  SERCOM2/  TC0/

                                                                                                   PAD[0]    PAD[0]    WO[0]

12       14       18       PA09     VDDIO   I2C   EXTINT[9]          AIN[17]          X[1]         SERCOM0/  SERCOM2/  TC0/

                                                                                                   PAD[1]    PAD[1]    WO[1]

13       15       19       PA10     VDDIO         EXTINT[10]         AIN[18]          X[2]         SERCOM0/  SERCOM2/  TC1/        GCLK_IO[4]

                                                                                                   PAD[2]    PAD[2]    WO[0]

14       16       20       PA11     VDDIO         EXTINT[11]         AIN[19]          X[3]         SERCOM0/  SERCOM2/  TC1/        GCLK_IO[5]

                                                                                                   PAD[3]    PAD[3]    WO[1]

         19       23       PB10     VDDIO         EXTINT[10]                                                 SERCOM4/  TC5/        GCLK_IO[4]

                                                                                                             PAD[2]    WO[0]

                                                                     Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         27

                                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Pin(1)                     I/O Pin  Supply  Type  A           B(2)                          C         D         E      G      H

SAMD20E  SAMD20G  SAMD20J                         EIC         REF   ADC    AC   PTC    DAC  SERCOM(3  SERCOM-   TC(4)  COM    AC/GCLK
                                                                                            )
                                                                                                      ALT

         20       24       PB11     VDDIO         EXTINT[11]                                          SERCOM4/  TC5/          GCLK_IO[5]

                                                                                                      PAD[3]    WO[1]

                  25       PB12     VDDIO   I2C   EXTINT[12]                    X[12]       SERCOM4/            TC4/          GCLK_IO[6]

                                                                                            PAD[0]              WO[0]

                  26       PB13     VDDIO   I2C   EXTINT[13]                    X[13]       SERCOM4/            TC4/          GCLK_IO[7]

                                                                                            PAD[1]              WO[1]

                  27       PB14     VDDIO         EXTINT[14]                    X[14]       SERCOM4/            TC5/          GCLK_IO[0]

                                                                                            PAD[2]              WO[0]

                  28       PB15     VDDIO         EXTINT[15]                    X[15]       SERCOM4/            TC5/          GCLK_IO[1]

                                                                                            PAD[3]              WO[1]

         21       29       PA12     VDDIO   I2C   EXTINT[12]                                SERCOM2/  SERCOM4/  TC2/          AC/CMP[0]

                                                                                            PAD[0]    PAD[0]    WO[0]

         22       30       PA13     VDDIO   I2C   EXTINT[13]                                SERCOM2/  SERCOM4/  TC2/          AC/CMP[1]

                                                                                            PAD[1]    PAD[1]    WO[1]

15       23       31       PA14     VDDIO         EXTINT[14]                                SERCOM2/  SERCOM4/  TC3/          GCLK_IO[0]

                                                                                            PAD[2]    PAD[2]    WO[0]

16       24       32       PA15     VDDIO         EXTINT[15]                                SERCOM2/  SERCOM4/  TC3/          GCLK_IO[1]

                                                                                            PAD[3]    PAD[3]    WO[1]

17       25       35       PA16     VDDIO   I2C   EXTINT[0]                     X[4]        SERCOM1/  SERCOM3/  TCC2/         GCLK_IO[2]

                                                                                            PAD[0]    PAD[0]    WO[0]

18       26       36       PA17     VDDIO   I2C   EXTINT[1]                     X[5]        SERCOM1/  SERCOM3/  TC2/          GCLK_IO[3]

                                                                                            PAD[1]    PAD[1]    WO[1]

19       27       37       PA18     VDDIO         EXTINT[2]                     X[6]        SERCOM1/  SERCOM3/  TC3/          AC/CMP[0]

                                                                                            PAD[2]    PAD[2]    WO[0]

20       28       38       PA19     VDDIO         EXTINT[3]                     X[7]        SERCOM1/  SERCOM3/  TC3/          AC/CMP[1]

                                                                                            PAD[3]    PAD[3]    WO[1]

                  39       PB16     VDDIO   I2C   EXTINT[0]                                 SERCOM5/            TC6/          GCLK_IO[2]

                                                                                            PAD[0]              WO[0]

                  40       PB17     VDDIO   I2C   EXTINT[1]                                 SERCOM5/            TC6/          GCLK_IO[3]

                                                                                            PAD[1]              WO[1]

         29       41       PA20     VDDIO         EXTINT[4]                     X[8]        SERCOM5/  SERCOM3/  TC7/          GCLK_IO[4]

                                                                                            PAD[2]    PAD[2]    WO[0]

         30       42       PA21     VDDIO         EXTINT[5]                     X[9]        SERCOM5/  SERCOM3/  TC7/          GCLK_IO[5]

                                                                                            PAD[3]    PAD[3]    WO[1]

21       31       43       PA22     VDDIO   I2C   EXTINT[6]                     X[10]       SERCOM3/  SERCOM5/  TC4/          GCLK_IO[6]

                                                                                            PAD[0]    PAD[0]    WO[0]

22       32       44       PA23     VDDIO   I2C   EXTINT[7]                     X[11]       SERCOM3/  SERCOM5/  TC4/          GCLK_IO[7]

                                                                                            PAD[1]    PAD[1]    WO[1]

23       33       45       PA24(6)  VDDIO         EXTINT[12]                                SERCOM3/  SERCOM5/  TC5/

                                                                                            PAD[2]    PAD[2]    WO[0]

24       34       46       PA25(6)  VDDIO         EXTINT[13]                                SERCOM3/  SERCOM5/  TC5/

                                                                                            PAD[3]    PAD[3]    WO[1]

         37       49       PB22     VDDIO         EXTINT[6]                                           SERCOM5/  TC7/          GCLK_IO[0]

                                                                                                      PAD[2]    WO[0]

         38       50       PB23     VDDIO         EXTINT[7]                                           SERCOM5/  TC7/          GCLK_IO[1]

                                                                                                      PAD[3]    WO[1]

25       39       51       PA27     VDDIO         EXTINT[15]                                                                  GCLK_IO[0]

27       41       53       PA28     VDDIO         EXTINT[8]                                                                   GCLK_IO[0]

31       45       57       PA30     VDDIO         EXTINT[10]                                          SERCOM1/  TC1/   SWCLK  GCLK_IO[0]

                                                                                                      PAD[2]    WO[0]

32       46       58       PA31     VDDIO         EXTINT[11]                                          SERCOM1/  TC1/   SWDIO
                                                                                                                       (5)
                                                                                                      PAD[3]    WO[1]

                  59       PB30     VDDIO   I2C   EXTINT[14]                                          SERCOM5/  TC0/

                                                                                                      PAD[0]    WO[0]

                  60       PB31     VDDIO   I2C   EXTINT[15]                                          SERCOM5/  TC0/

                                                                                                      PAD[1]    WO[1]

                                                                    Atmel  SAM  D20E   / SAM D20G / SAM D20J [DATASHEET]                28

                                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Pin(1)                      I/O Pin  Supply  Type  A          B(2)                           C         D          E      G        H

SAMD20E  SAMD20G   SAMD20J                         EIC        REF   ADC      AC   PTC   DAC  SERCOM(3  SERCOM-    TC(4)  COM      AC/GCLK
                                                                                             )
                                                                                                       ALT

                   61       PB00     VDDANA        EXTINT[0]        AIN[8]        Y[6]                 SERCOM5/   TC7/

                                                                                                       PAD[2]     WO[0]

                   62       PB01     VDDANA        EXTINT[1]        AIN[9]        Y[7]                 SERCOM5/   TC7/

                                                                                                       PAD[3]     WO[1]

         47        63       PB02     VDDANA        EXTINT[2]        AIN[10]       Y[8]                 SERCOM5/   TC6/

                                                                                                       PAD[0]     WO[0]

         48        64       PB03     VDDANA        EXTINT[3]        AIN[11]       Y[9]                 SERCOM5/   TC6/

                                                                                                       PAD[1]     WO[1]

         Note: 

             1.   Use the SAMD20J pinout muxing for WLCSP45 package.

             2.   All analog pin functions are on peripheral function B. Peripheral function B must be selected to

                  disable the digital control of the pin.

             3.   Only some pins can be used in SERCOM I2C mode. See the Type column for using a SERCOM pin

                  in I2C mode. Refer to Electrical Characteristics for details on the I2C pin characteristics.

             4.   Note that TC6 and TC7 are not supported on the SAM D20E and SAM D20G devices. Refer to

                  Configuration Summary for details.

             5.   This function is only activated in the presence of a debugger.

             6.   If the PA24 and PA25 pins are not connected, it is recommended to enable a pull-up on PA24 and

                  PA25 through input GPIO mode. The aim is to avoid an eventually extract power consumption

                  (<1mA) due to a not stable level on pad.

         Related Links

         PORT - I/O Pin Controller on page 320

         Electrical Characteristics on page 606

         I2C Pins on page 614

7.2.     Other Functions

7.2.1.   Oscillator Pinout

         The oscillators are not mapped to the normal PORT                   functions and   their  multiplexing are  controlled             by

         registers in the System Controller (SYSCTRL).

         Table 7-2. Oscillator Pinout

             Oscillator                      Supply                          Signal                         I/O pin

             XOSC                            VDDIO                           XIN                            PA14

                                                                             XOUT                           PA15

             XOSC32K                         VDDANA                          XIN32                          PA00

                                                                             XOUT32                         PA01

         Related Links

         SYSCTRL – System Controller on page 162

                                                                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                             29

                                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
7.2.2.  Serial Wire Debug Interface Pinout

        Only the SWCLK pin is mapped to the normal     PORT functions. A debugger cold-plugging or hot-plugging

        detection will automatically switch the SWDIO  port to the SWDIO function.

        Table 7-3. Serial Wire Debug Interface Pinout

        Signal                              Supply     I/O pin

        SWCLK                               VDDIO      PA30

        SWDIO                               VDDIO      PA31

        Related Links

        DSU - Device Service Unit on page 61

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]          30

                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
8.      Power Supply and Start-Up Considerations

        Related Links

        Supply Characteristics on page 607

8.1.    Power Domain Overview

                        VDDANA  GNDANA        VDDCORE  GND    VDDIN  VDDIO

                                                       VOLTAGE       OSC8M                 PB[31:10]

                                ADC                    REGULATOR                           PA[13:8]

                                                              BOD12

           PA[7:2]              AC                                   XOSC                  PA[15:14]

           PB[9:0]              DAC                                                        PA[31:16]

                                PTC

                                                                     Digital Logic

           PA[1:0]                                                   (CPU, peripherals)

                                XOSC32K                POR

                                OSC32K

                                OSCULP32K              BOD33         DFLL48M

8.2.    Power Supply Considerations

8.2.1.  Power Supplies

        The device has several different power supply pins:

        •  VDDIO: Powers I/O lines, OSC8M and XOSC. Voltage is 1.62V to 3.63V.

        •  VDDIN: Powers I/O lines and the internal regulator. Voltage is 1.62V to 3.63V.

        •  VDDANA: Powers I/O lines and the ADC, AC, DAC, PTC, OSCULP32K, OSC32K, XOSC32K.

           Voltage is 1.62V to 3.63V.

        •  VDDCORE: Internal regulated voltage output. Powers the core, memories, peripherals, and

           DFLL48M. Voltage is 1.2V.

        The same voltage must be applied to both VDDIN, VDDIO and VDDANA. This common voltage is

        referred to as VDD in the datasheet.

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]               31

                                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
          The ground pins, GND, are common to VDDCORE, VDDIO and VDDIN. The ground pin for VDDANA is

          GNDANA.

          For decoupling recommendations for the different power supplies. Refer to Schematic Checklist for

          details.

          Related Links

          Schematic Checklist on page 652

8.2.2.    Voltage Regulator

          The voltage regulator has two different modes:

          •  Normal mode: To be used when the CPU and peripherals are running

          •  Low Power (LP) mode: To be used when the regulator draws small static current. It can be used in

             standby mode

8.2.3.    Typical Powering Schematics

          The device uses a single main supply with a range of 1.62V - 3.63V.

          The following figure shows the recommended power supply connection.

          Figure 8-1. Power Supply Connection

                                                                                DEVICE

                         Main Supply                      VDDIO

                    (1.62V — 3.63V)

                                                          VDDANA

                                                          VDDIN

                                                          VDDCORE

                                                                           GND

                                                          GNDANA

8.2.4.    Power-Up Sequence

8.2.4.1.  Minimum Rise Rate

          The integrated power-on reset (POR) circuitry monitoring the VDDANA power supply requires a minimum

          rise rate. Refer to the Electrical Characteristics for details.

          Related Links

          Electrical Characteristics on page 606

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       32

                                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
8.2.4.2.  Maximum Rise Rate

          The rise rate of the power supply must not exceed the values described in Electrical Characteristics.

          Refer to the Electrical Characteristics for details.

          Related Links

          Electrical Characteristics on page 606

8.3.      Power-Up

          This section summarizes the power-up sequence of the device. The behavior after power-up is controlled

          by the Power Manager. Refer to PM – Power Manager for details.

          Related Links

          PM – Power Manager on page 129

8.3.1.    Starting of Clocks

          After power-up, the device is set to its initial state and kept in reset, until the power has stabilized

          throughout the device. Once the power has stabilized, the device will use a 1MHz clock. This clock is

          derived from the 8MHz Internal Oscillator (OSC8M), which is divided by eight and used as a clock source

          for generic clock generator 0. Generic clock generator 0 is the main clock for the Power Manager (PM).

          Some synchronous system clocks are active, allowing software execution.

          Refer to the “Clock Mask Register” section in PM – Power Manager for the list of default peripheral clocks

          running. Synchronous system clocks that are running are by default not divided and receive a 1MHz clock

          through generic clock generator 0. Other generic clocks are disabled except GCLK_WDT, which is used

          by the Watchdog Timer (WDT).

          Related Links

          PM – Power Manager on page 129

8.3.2.    I/O Pins

          After power-up, the I/O pins are tri-stated.

8.3.3.    Fetching of Initial Instructions

          After reset has been released, the CPU starts fetching PC and SP values from the reset address, which is

          0x00000000. This address points to the first executable address in the internal flash. The code read from

          the internal flash is free to configure the clock system and clock sources. Refer to PM – Power Manager,

          GCLK – Generic Clock Controller and SYSCTRL – System Controller for details. Refer to the ARM

          Architecture Reference Manual for more information on CPU startup (http://www.arm.com).

          Related Links

          PM – Power Manager on page 129

          SYSCTRL – System Controller on page 162

          GCLK - Generic Clock Controller on page 108

          PM – Power Manager on page 129

8.4.      Power-On Reset and Brown-Out Detector

          The SAM D20 embeds three features to monitor, warn and/or reset the device:

          •  POR: Power-on reset on VDDANA

                                                                Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]           33

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
        •  BOD33: Brown-out detector on VDDANA

        •  BOD12: Voltage Regulator Internal Brown-out detector on VDDCORE. The Voltage Regulator

           Internal BOD is calibrated in production and its calibration configuration is stored in the NVM User

           Row. This configuration should not be changed if the user row is written to assure the correct

           behavior of the BOD12.

8.4.1.  Power-On Reset on VDDANA

        POR monitors VDDANA. It is always activated and monitors voltage at startup and also during all the

        sleep modes. If VDDANA goes below the threshold voltage, the entire chip is reset.

8.4.2.  Brown-Out Detector on VDDANA

        BOD33 monitors VDDANA. Refer to SYSCTRL – System Controller for details.

        Related Links

        SYSCTRL – System Controller on page 162

8.4.3.  Brown-Out Detector on VDDCORE

        Once the device has started up, BOD12 monitors the internal VDDCORE.

                                                 Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                34

                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
9.  Product Mapping

    Figure 9-1. Product Mapping

    Global Memory Space                       Code

    0x00000000                    0x00000000

                Code                          Internal flash

    0x20000000                    0x00040000

                SRAM              0x1FFFFFFF  Reserved

    0x20008000                    0x20000000  SRAM

                Undefined                                     AHB-APB Bridge C

                                              Internal SRAM   0x42000000

    0x40000000                    0x20008000                                                     PAC2

                Peripherals                                   0x42000400                         EVSYS

                                              Peripherals     0x42000800

    0x43000000                    0x40000000                                                     SERCOM0

                Reserved                      AHB-APB         0x42000C00

                                              Bridge A                                           SERCOM1

    0x60000000                    0x41000000                  0x42001000                         SERCOM2

                Undefined                     AHB-APB         0x42001400

                                              Bridge B                                           SERCOM3

    0x60000200  Reserved          0x42000000                  0x42001800

                                              AHB-APB                                            SERCOM4

    0xE0000000                                Bridge C        0x42001C00                         SERCOM5

                System            0x42FFFFFF

                                                              0x42002000                         TC0

    0xFFFFFFFF                                System

                                  0xE0000000                  0x42002400                         TC1

                                              Reserved        0x42002800

                                  0xE000E000  SCS                                                TC2

                                  0xE000F000                  0x42002C00                         TC3

                AHB-APB Bridge A              Reserved        0x42003000

                                  0xE00FF000  ROM Table                                          TC4

    0x40000000  PAC0              0xE0100000                  0x42003400                         TC5

    0x40000400                    0xFFFFFFFF  Reserved        0x42003800

                PM                                                                               TC6

    0x40000800  SYSCTRL           AHB-APB Bridge B            0x42003C00                         TC7

    0x40000C00  GCLK              0x41000000                  0x42004000                         ADC

                                              PAC1

    0x40001000  WDT               0x41002000                  0x42004400                         AC

                                              DSU

    0x40001400  RTC               0x41004000                  0x42004800                         DAC

                                              NVMCTRL

    0x40001800  EIC               0x41004400                  0x42004C00                         PTC

                                              PORT

    0x40001C00  Reserved          0x41004800                  0x42005000                         Reserved

    0x40FFFFFF                    0x41FFFFFF  Reserved        0x42FFFFFF

    This figure represents the full configuration of the SAM D20 device with maximum flash and SRAM

    capabilities and a full set of peripherals. Refer to the Configuration Summary for details.

                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                             35

                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
10.     Memories

10.1.   Embedded Memories

        •        Internal high-speed flash

        •        Internal high-speed RAM, single-cycle access at full speed

        •        Dedicated flash erea for EEPROM emulation

10.2.   Physical Memory Map

        The High-Speed bus is implemented as a bus matrix. All High-Speed bus addresses are fixed, and they

        are never remapped in any way, even during boot. The 32-bit physical address space is mapped as

        follow:

Table 10-1. Physical Mmemory Map

Memory                 Start address        Size (Kbytes)

                                            SAMD20x18         SAMD20x17  SAMD20x16  SAMD20x15  SAMD20x14

Internal Flash         0x00000000           256               128        64         32         16

Internal SRAM          0x20000000           32                16         8          4          2

Peripheral Bridge A    0x40000000           64                64         64         64         64

Peripheral Bridge B    0x41000000           64                64         64         64         64

Peripheral Bridge C    0x42000000           64                64         64         64         64

        1. x = G, J or E. Refer to Ordering      Information

Table 10-2. Flash memory parameters

Device                 Flash size                Number of        pages  Page size      Row Size

SAMD20x18              256Kbytes                 4096                    64 bytes       4 pages = 256 bytes

SAMD20x17              128Kbytes                 2046                    64 bytes       4 pages = 256 bytes

SAMD20x16              64Kbytes                  1024                    64 bytes       4 pages = 256 bytes

SAMD20x15              32Kbytes                  512                     64 bytes       4 pages = 256 bytes

SAMD20x14              16Kbytes                  256                     64 bytes       4 pages = 256 bytes

        1. x = G, J or E. Refer to Ordering Information

        2. The number of pages (NVMP) and page size (PSZ) can be read from the NVM Pages and Page Size

        bits in the NVM Parameter register in the NVMCTRL (PARAM.NVMP and PARAM.PSZ, respectively).

        Refer to NVM Parameter (PARAM) register for details.

        Related Links

        High-Speed Bus System on page 43

        Ordering Information on page 12

                                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                36

                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
10.3.  NVM Calibration and Auxiliary Space

       The device calibration data are stored in different                sections                  of the NVM calibration                                         and auxiliary                space

       presented in the following figure.

       Figure 10-1. Calibration and Auxiliary Space

                                                                                                    0x00806040                      AUX1

                            Ca libra tion a nd

              0x00800000    a uxilia ry s pa ce                                                                                     Are a 4: S oftwa re

                                                                                                                                 ca libra tion a re a (256bits )

                                                 NVM ba s e a ddre s s +

                                                 0x00800000                                         0x00806020

                                                                                                                                                                   Are a 4 offs e t a ddre s s

                                                 NVM ba s e a ddre s s                                                              Are a 3: Re s e rve d

                                                 + NVM s ize                                                                        (128bits )

                                                                                                    0x00806010                                                     Are a 3 offs e t a ddre s s

                           NVM ma in a ddre s s                                                                                  Are a 2: De vice configura tion

                                                                                                    0x00806008                      a re a (64 bits )              Are a 2 offs e t a ddre s s

                            space                                                                                                Are a 1: Re s e rve d (64 bits )

                                                                                                    0x00806000                                                     Are a 1 a ddre s s offs e t

              0x00000000                         NVM Ba s e Addre s s

                                                 0x00806000               AUX1

                                                                                                    AUX1 offs e t a ddre s s

                                                                          AUX0 – NVM Us e r

                                                 0x00804000               Row                       AUX0 offs e t a ddre s s

                                                                          Automa tic ca libra tion

                                                 0x00800000               row                       Ca libra tion a nd a uxilia ry

                                                                                                    s pa ce a ddre s s offs e t

       The values from the automatic calibration row are loaded into their respective registers at startup.

10.4.  NVM User Row Mapping

       The NVM User Row contains calibration data that are automatically read at device power on.

       The NVM User Row can be read at address 0x804000.

       To write the NVM User Row refer to NVMCTRL – Non-Volatile Memory Controller.

       Note that when writing to the user row the values do not get loaded by the other modules on the device

       until a device reset occurs.

Table 10-3. NVM User Row Mapping

Bit Position  Name          Usage

2:0           BOOTPROT      Used to select one of eight different bootloader sizes. Refer to NVMCTRL – Non-Volatile

                            Memory Controller. Default value = 0x7 except for WLCSP that has default value = 0x3 .

3             Reserved

6:4           EEPROM        Used to select one of eight different EEPROM sizes. Refer to NVMCTRL – Non-Volatile

                            Memory Controller. Default value = 7.

7             Reserved

13:8          BOD33 Level   BOD33 Threshold Level at power on. Refer to SYSCTRL BOD33 register.

                            Default value = 7.

14            BOD33 Enable  BOD33 Enable at power on . Refer to SYSCTRL BOD33 register. Default value = 1.

                                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                             37

                                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Bit Position  Name              Usage

16:15         BOD33 Action      BOD33 Action at power on. Refer to SYSCTRL BOD33 register. Default value = 1.

24:17         Reserved          Voltage Regulator Internal BOD (BOD12) configuration. These bits are written in production

                                and must not be changed. Default value = 0x70.

25            WDT Enable        WDT Enable at power on. Refer to WDT CTRL register.

                                Default value = 0.

26            WDT Always-On     WDT Always-On at power on. Refer to WDT CTRL register.

                                Default value = 0.

30:27         WDT Period        WDT Period at power on. Refer to WDT CONFIG register.

                                Default value = 0x0B.

34:31         WDT Window        WDT Window mode time-out at power on. Refer to WDT CONFIG register.

                                Default value = 0x05.

38:35         WDT EWOFFSET      WDT Early Warning Interrupt Time Offset at power on. Refer to WDT EWCTRL register.

                                Default value = 0x0B.

39            WDT WEN           WDT Timer Window Mode Enable at power on. Refer to WDT CTRL register. Default value

                                = 0.

40            BOD33 Hysteresis  BOD33 Hysteresis configuration at power on. Refer to SYSCTRL BOD33 register.

                                Default value = 0.

41            Reserved          Voltage Regulator Internal BOD(BOD12) configuration. This bit is written in production and

                                must not be changed. Default value = 0.

47:42         Reserved

63:48         LOCK              NVM Region Lock Bits. Refer to NVMCTRL – Non-Volatile Memory Controller.

                                Default value = 0xFFFF.

       Related Links

       NVMCTRL – Non-Volatile Memory Controller on page 297

       BOD33 on page 211

       CTRL on page 225

       CONFIG on page 226

       EWCTRL on page 228

       BOD33 on page 617

10.5.  NVM Software Calibration Area Mapping

       The NVM Software Calibration Area contains calibration data that are measured and written during

       production test. These calibration values should be read by the application software and written back to

       the corresponding register.

       The NVM Software Calibration Area can be read at address 0x806020.

       The NVM Software Calibration Area can not be written.

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                        38

                                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Table 10-4. NVM Software Calibration Area Mapping

Bit Position  Name                   Description

2:0           Reserved

14:3          Reserved

26:15         Reserved

34:27         ADC LINEARITY          ADC Linearity Calibration. Should be written to ADC CALIB register.

37:35         ADC BIASCAL            ADC Bias Calibration. Should be written to ADC CALIB register.

44:38         OSC32K CAL             OSC32KCalibration. Should be written to SYSCTRL OSC32K register.

57:45         Reserved

63:58         DFLL48M COARSE CAL1)   DFLL48M Coarse calibration value, should be written to SYSCTRL

                                     DFLLVAL register.

73:64         DFLL48M fine CAL1)     DFLL48M Fine calibration value, should be written to SYSCTRL

                                     DFLLVAL register.

127:74        Reserved

        Note:  1. Not applicable for die rev. C and previous.

        Related Links

        CALIB on page 556

        OSC32K on page 200

        DFLLVAL on page 208

10.6.   Serial Number

        Each device has a unique 128-bit serial number which is a concatenation of  four   32-bit  words  contained

        at the following addresses:

        Word 0: 0x0080A00C

        Word 1: 0x0080A040

        Word 2: 0x0080A044

        Word 3: 0x0080A048

        The uniqueness of the serial number is guaranteed only when using all 128   bits.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                  39

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.      Processor And Architecture

11.1.    Cortex M0+ Processor

         The SAM D20 implements the ARM® Cortex®-M0+ processor, based on the ARMv6 Architecture and

         Thumb®-2 ISA. The Cortex M0+ is 100% instruction set compatible with its predecessor, the Cortex-M0

         core, and upward compatible to Cortex-M3 and M4 cores. The ARM Cortex-M0+ implemented is revision

         r0p1. For more information refer to http://www.arm.com.

11.1.1.  Cortex M0+ Configuration

         Table 11-1. Cortex M0+ Configuration

         Features                                       Configurable option           Device configuration

         Interrupts                                     External interrupts 0-32      28

         Data endianness                                Little-endian or big-endian   Little-endian

         SysTick timer                                  Present or absent             Present

         Number of watchpoint comparators               0, 1, 2                       2

         Number of breakpoint comparators               0, 1, 2, 3, 4                 4

         Halting debug support                          Present or absent             Present

         Multiplier                                     Fast or small                 Fast (single cycle)

         Single-cycle I/O port                          Present or absent             Present

         Wake-up interrupt controller                   Supported or not supported    Not supported

         Vector Table Offset Register                   Present or absent             Present

         Unprivileged/Privileged support                Present or absent             Absent(1)

         Memory Protection Unit                         Not present or 8-region       Not present

         Reset all registers                            Present or absent             Absent

         Instruction fetch width                        16-bit only or mostly 32-bit  32-bit

         Note: 

         1.  All software run in privileged mode only.

         The ARM Cortex-M0+ core has two bus interfaces:

         •   Single 32-bit AMBA-3 AHB-Lite system interface that provides connections to peripherals and all

             system memory, which includes flash and RAM.

         •   Single 32-bit I/O port bus interfacing to the PORT with 1-cycle loads and stores.

11.1.2.  Cortex-M0+ Peripherals

         •   System Control Space (SCS)

                 –   The processor provides debug through registers in the SCS. Refer to the Cortex-M0+

                     Technical Reference Manual for details (www.arm.com).

         •   System Timer (SysTick)

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                      40

                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
              –         The System Timer is a 24-bit timer that extends the functionality of both the processor and the

                        NVIC. Refer to the Cortex-M0+ Technical Reference Manual for details (www.arm.com).

           •  Nested Vectored Interrupt Controller (NVIC)

              –         External interrupt signals connect to the NVIC, and the NVIC prioritizes the interrupts.

                        Software can set the priority of each interrupt. The NVIC and the Cortex-M0+ processor core

                        are closely coupled, providing low latency interrupt processing and efficient processing of late

                        arriving interrupts. Refer to Nested Vector Interrupt Controller and the Cortex-M0+ Technical

                        Reference Manual for details (www.arm.com).

           •  System Control Block (SCB)

              –         The System Control Block provides system implementation information, and system control.

                        This includes configuration, control, and reporting of the system exceptions. Refer to the

                        Cortex-M0+ Devices Generic User Guide for details (www.arm.com).

11.1.3.    Cortex-M0+ Address Map

           Table 11-2. Cortex-M0+ Address Map

           Address                    Peripheral

           0xE000E000                 System Control Space (SCS)

           0xE000E010                 System Timer (SysTick)

           0xE000E100                 Nested Vectored Interrupt Controller (NVIC)

           0xE000ED00                 System Control Block (SCB)

11.1.4.    I/O Interface

11.1.4.1.  Overview

           Because accesses to the AMBA® AHB-Lite™ and the single cycle I/O interface can be made concurrently,

           the Cortex-M0+ processor can fetch the next instructions while accessing the I/Os. This enables single

           cycle I/O accesses to be sustained for as long as needed. Refer to CPU Local Bus for more information.

           Related Links

           CPU Local Bus on page 323

11.1.4.2.  Description

           Direct access to PORT registers.

11.2.      Nested Vector Interrupt Controller

11.2.1.    Overview

           The Nested Vectored Interrupt Controller (NVIC) in the SAM D20 supports 32 interrupt lines with four

           different priority levels. For more details, refer to the Cortex-M0+ Technical Reference Manual

           (www.arm.com).

11.2.2.    Interrupt Line Mapping

           Each of the 28 interrupt lines is connected to one peripheral instance, as shown in the table below. Each

           peripheral can have one or more interrupt flags, located in the peripheral’s Interrupt Flag Status and Clear

           (INTFLAG) register. The interrupt flag is set when the interrupt condition occurs. Each interrupt in the

           peripheral can be individually enabled by writing a one to the corresponding bit in the peripheral’s

           Interrupt Enable Set (INTENSET) register, and disabled by writing a one to the corresponding bit in the

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                        41

                                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
peripheral’s Interrupt Enable Clear (INTENCLR) register. An interrupt request is generated from the

peripheral when the interrupt flag is set and the corresponding interrupt is enabled. The interrupt requests

for one peripheral are ORed together on system level, generating one interrupt request for each

peripheral. An interrupt request will set the corresponding interrupt pending bit in the NVIC interrupt

pending registers (SETPEND/CLRPEND bits in ISPR/ICPR). For the NVIC to activate the interrupt, it

must be enabled in the NVIC interrupt enable register (SETENA/CLRENA bits in ISER/ICER). The NVIC

interrupt priority registers IPR0-IPR7 provide a priority field for each interrupt.

Table 11-3. Interrupt Line Mapping

Peripheral Source                                                                    NVIC Line

EIC NMI – External Interrupt Controller                                              NMI

PM – Power Manager                                                                   0

SYSCTRL – System Control                                                             1

WDT – Watchdog Timer                                                                 2

RTC – Real Time Counter                                                              3

EIC – External Interrupt Controller                                                  4

NVMCTRL – Non-Volatile Memory Controller                                             5

EVSYS – Event System                                                                 6

SERCOM0 – Serial Communication Interface 0                                           7

SERCOM1 – Serial Communication Interface 1                                           8

SERCOM2 – Serial Communication Interface 2                                           9

SERCOM3 – Serial Communication Interface 3                                           10

SERCOM4 – Serial Communication Interface 4                                           11

SERCOM5 – Serial Communication Interface 5                                           12

TC0 – Timer Counter 0                                                                13

TC1 – Timer Counter 1                                                                14

TC2 – Timer Counter 2                                                                15

TC3 – Timer Counter 3                                                                16

TC4 – Timer Counter 4                                                                17

TC5 – Timer Counter 5                                                                18

TC6 – Timer Counter 6                                                                19

TC7 – Timer Counter 7                                                                20

ADC – Analog-to-Digital Converter                                                    21

AC – Analog Comparator                                                               22

DAC – Digital-to-Analog Converter                                                    23

PTC – Peripheral Touch Controller                                                    24

                                            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                  42

                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.3.    High-Speed Bus System

11.3.1.  Features

         High-Speed Bus Matrix has the following features:

         •               Symmetric crossbar bus switch implementation

         •               Allows concurrent accesses from different masters to different slaves

         •               32-bit data bus

         •               Operation at a one-to-one clock frequency with the bus masters

11.3.2.  Configuration

                                                      High-Speed Bus SLAVES

                                                                      A               B                  C

                                                      Internal Flash  AHB-APB Bridge  AHB-APB Bridge     AHB-APB Bridge  Internal SRAM

                                                      0               1               2                  3               4                    SLAVE ID

                                           MASTER ID

            Multi-Slave  MASTERS  CM0+     0

                                  DSU DSU  1

         Table 11-4. Bus Matrix Masters

         Bus Matrix Masters                                                                                                                Master ID

         CM0+ - Cortex M0+ Processor                                                                                                       0

         DSU - Device Service Unit                                                                                                         1

         Table 11-5. Bus Matrix Slaves

         Bus Matrix Slaves                                                                                                              Slave ID

         Internal Flash Memory                                                                                                          0

         AHB-APB Bridge A                                                                                                               1

         AHB-APB Bridge B                                                                                                               2

                                                                      Atmel           SAM D20E        /  SAM D20G / SAM D20J [DATASHEET]                  43

                                                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
       Bus Matrix Slaves                                           Slave ID

       AHB-APB Bridge C                                            3

       Internal SRAM                                               4

11.4.  AHB-APB Bridge

       The AHB-APB bridge is an AHB slave, providing an interface between the high-speed AHB domain             and

       the low-power APB domain. It is used to provide access to the programmable control registers of

       peripherals (see Product Mapping).

       AHB-APB bridge is based on AMBA APB Protocol Specification V2.0 (ref. as APB4) including:

       •  Wait state support

       •  Error reporting

       •  Transaction protection

       •  Sparse data transfer (byte, half-word and word)

       Additional enhancements:

       •  Address and data cycles merged into a single cycle

       •  Sparse data transfer also apply to read access

       to operate the AHB-APB bridge, the clock (CLK_HPBx_AHB) must be enabled. See PM – Power

       Manager for details.

       Figure 11-1. APB Write Access.

                T0    T1             T2    T3              T0  T1  T2          T3                       T4           T  5

          PCLK                                 PCLK

       PADDR                 Addr 1            PADDR                   Addr 1

       PWRITE                                  PWRITE

          PSEL                                 PSEL

       PENABLE                                 PENABLE

       PWDATA                Data 1            PWDATA                  Data 1

       PREADY                                  PREADY

                      No wait states                               Wait states

                                               Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                      44

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         Figure 11-2. APB  Read  Access.

                  T0       T1            T2       T3              T0  T1  T2          T3                  T4             T5

         PCLK                                         PCLK

         PADDR                   Addr 1               PADDR                   Addr 1

         PWRITE                                       PWRITE

         PSEL                                         PSEL

         PENABLE                                      PENABLE

         PRDATA                  Data 1               PRDATA                              Data 1

         PREADY                                       PREADY

                           No wait states                                 Wait states

         Related Links

         PM – Power Manager on page          129

         Product Mapping on page 35

11.5.    PAC - Peripheral Access Controller

11.5.1.  Overview

         There is one PAC associated with each AHB-APB bridge. The PAC can provide write protection for

         registers of each peripheral connected on the same bridge.

         The PAC peripheral bus clock (CLK_PACx_APB) can be enabled and disabled in the Power Manager.

         CLK_PAC0_APB and CLK_PAC1_APB are enabled are reset. CLK_PAC2_APB is disabled at reset.

         Refer to PM – Power Manager for details. The PAC will continue to operate in any sleep mode where the

         selected clock source is running. Write-protection does not apply for debugger access. When the

         debugger makes an access to a peripheral, write-protection is ignored so that the debugger can update

         the register.

         Write-protect registers allow the user to disable a selected peripheral’s write-protection without doing a

         read-modify-write operation. These registers are mapped into two I/O memory locations, one for clearing

         and one for setting the register bits. Writing a one to a bit in the Write Protect Clear register (WPCLR) will

         clear the corresponding bit in both registers (WPCLR and WPSET) and disable the write-protection for

         the corresponding peripheral, while writing a one to a bit in the Write Protect Set (WPSET) register will set

         the corresponding bit in both registers (WPCLR and WPSET) and enable the write-protection for the

         corresponding peripheral. Both registers (WPCLR and WPSET) will return the same value when read.

         If a peripheral is write-protected, and if a write access is performed, data will not be written, and the

         peripheral will return an access error (CPU exception).

         The PAC also offers a safety feature for correct program execution, with a CPU exception generated on

         double write-protection or double unprotection of a peripheral. If a peripheral n is write-protected and a

         write to one in WPSET[n] is detected, the PAC returns an error. This can be used to ensure that the

         application follows the intended program flow by always following a write-protect with an unprotect, and

         vice versa. However, in applications where a write-protected peripheral is used in several contexts, e.g.,

         interrupts, care should be taken so that either the interrupt can not happen while the main application or

                                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                   45

                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         other interrupt levels manipulate the write-protection status, or when the interrupt handler needs to

         unprotect the peripheral, based on the current protection status, by reading WPSET.

         Related Links

         PM – Power Manager on page 129

11.6.    Register Description

         Atomic 8-, 16- and 32-bit accesses are supported. In addition, the 8-bit quarters and 16-bit halves of  a  32-

         bit register, and the 8-bit halves of a 16-bit register can be accessed directly. Refer to the Product

         Mapping for PAC locations.

         Related Links

         Product Mapping on page 35

11.6.1.  PAC0 Register Description

                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                           46

                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.6.1.1.  Write Protect Clear

           Name:     WPCLR

           Offset:   0x00

           Reset:    0x000000

           Property: –

            

Bit           31                30   29                 28                27       26             25                                24

Access

Reset

Bit           23                22   21                 20                19       18             17                                16

Access

Reset

Bit           15                14   13                 12                11       10             9                                 8

Access

Reset

Bit           7                 6    5                  4                 3        2              1                                 0

                           EIC       RTC                WDT               GCLK     SYSCTRL        PM

Access                     R/W       R/W                R/W               R/W      R/W            R/W

Reset                           0    0                  0                 0        0              0

           Bit 6 – EIC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 5 – RTC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 4 – WDT

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit  for the  corresponding  peripherals.

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                47

                                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value        Description

0            Write-protection is disabled.

1            Write-protection is enabled.

Bit 3 –  GCLK

Writing  a zero to these bits has no effect.

Writing  a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value        Description

0            Write-protection is disabled.

1            Write-protection is enabled.

Bit 2 –  SYSCTRL

Writing  a zero to these bits has no effect.

Writing  a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value        Description

0            Write-protection is disabled.

1            Write-protection is enabled.

Bit 1 –  PM

Writing  a zero to these bits has no effect.

Writing  a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value        Description

0            Write-protection is disabled.

1            Write-protection is enabled.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         48

                                                                           Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.6.1.2.  Write Protect Set

           Name:     WPSET

           Offset:   0x04

           Reset:    0x000000

           Property: –

            

Bit           31              30     29                 28                27       26             25                                24

Access

Reset

Bit           23              22     21                 20                19       18             17                                16

Access

Reset

Bit           15              14     13                 12                11       10             9                                 8

Access

Reset

Bit           7               6      5                  4                 3        2              1                                 0

                              EIC    RTC                WDT               GCLK     SYSCTRL        PM

Access                        R/W    R/W                R/W               R/W      R/W            R/W

Reset                         0      0                  0                 0        0              0

           Bit 6 – EIC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 5 – RTC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 4 – WDT

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit  for the  corresponding  peripherals.

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                49

                                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         Value       Description

         0           Write-protection is disabled.

         1           Write-protection is enabled.

         Bit 3 – GCLK

         Writing a zero to these bits has no effect.

         Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

         Value       Description

         0           Write-protection is disabled.

         1           Write-protection is enabled.

         Bit 2 – SYSCTRL

         Writing a zero to these bits has no effect.

         Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

         Value       Description

         0           Write-protection is disabled.

         1           Write-protection is enabled.

         Bit 1 – PM

         Writing a zero to these bits has no effect.

         Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

         Value       Description

         0           Write-protection is disabled.

         1           Write-protection is enabled.

11.6.2.  PAC1 Register Description

                                                           Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         50

                                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.6.2.1.  Write Protect Clear

           Name:     WPCLR

           Offset:   0x00

           Reset:    0x000002

           Property: –

            

Bit           31                30   29                      28            27       26             25                                24

Access

Reset

Bit           23                22   21                      20            19       18             17                                16

Access

Reset

Bit           15                14   13                      12            11       10             9                                 8

Access

Reset

Bit           7                 6    5                       4             3        2              1                                 0

                                                                           PORT     NVMCTRL        DSU

Access                                                                     R/W      R/W            R/W

Reset                                                                      0        0              1

           Bit 3 – PORT

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write  Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 2 – NVMCTRL

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write  Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 1 – DSU

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write  Protect  bit  for the  corresponding  peripherals.

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                            51

                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]  52

                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.6.2.2.  Write Protect Set

           Name:     WPSET

           Offset:   0x04

           Reset:    0x000002

           Property: –

            

Bit           31              30     29                      28            27       26             25                                24

Access

Reset

Bit           23              22     21                      20            19       18             17                                16

Access

Reset

Bit           15              14     13                      12            11       10             9                                 8

Access

Reset

Bit           7               6      5                       4             3        2              1                                 0

                                                                           PORT     NVMCTRL        DSU

Access                                                                     R/W      R/W            R/W

Reset                                                                      0        0              1

           Bit 3 – PORT

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write  Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 2 – NVMCTRL

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write  Protect  bit  for the  corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 1 – DSU

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write  Protect  bit  for the  corresponding  peripherals.

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                            53

                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         Value  Description

         0      Write-protection is disabled.

         1      Write-protection is enabled.

11.6.3.  PAC2 Register Description

                                               Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]  54

                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.6.3.1.  Write Protect Clear

           Name:     WPCLR

           Offset:   0x00

           Reset:    0x00800000

           Property: –

            

Bit           31                30   29                 28           27       26                25                             24

Access

Reset

Bit           23                22   21                 20           19       18                17                             16

                                                                     PTC      DAC               AC            ADC

Access                                                               R/W      R/W               R/W           R/W

Reset                                                                0        0                 0                              0

Bit           15                14   13                 12           11       10                9                              8

              TC7          TC6       TC5                TC4          TC3      TC2               TC1           TC0

Access        R/W          R/W       R/W                R/W          R/W      R/W               R/W           R/W

Reset         0                 0    0                  0            0        0                 0                              0

Bit           7                 6    5                  4            3        2                 1                              0

              SERCOM5      SERCOM4   SERCOM3            SERCOM2      SERCOM1  SERCOM0           EVSYS

Access        R/W          R/W       R/W                R/W          R/W      R/W               R/W

Reset         0                 0    0                  0            0        0                 0

           Bit 19 – PTC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit for the corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 18 – DAC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit for the corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 17 – AC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit for the corresponding  peripherals.

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                           55

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bit 16 – ADC

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bits 15,14,13,12,11,10,9,8 – TCx

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bits 7,6,5,4,3,2 – SERCOMx

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bit 1 – EVSYS

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         56

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
11.6.3.2.  Write Protect Set

           Name:     WPSET

           Offset:   0x04

           Reset:    0x00800000

           Property: –

            

Bit           31              30     29                 28           27       26                25                             24

Access

Reset

Bit           23              22     21                 20           19       18                17                             16

                                                                     PTC      DAC               AC            ADC

Access                                                               R/W      R/W               R/W           R/W

Reset                                                                0        0                 0                              0

Bit           15              14     13                 12           11       10                9                              8

              TC7             TC6    TC5                TC4          TC3      TC2               TC1           TC0

Access        R/W             R/W    R/W                R/W          R/W      R/W               R/W           R/W

Reset         0               0      0                  0            0        0                 0                              0

Bit           7               6      5                  4            3        2                 1                              0

              SERCOM5      SERCOM4   SERCOM3            SERCOM2      SERCOM1  SERCOM0           EVSYS

Access        R/W             R/W    R/W                R/W          R/W      R/W               R/W

Reset         0               0      0                  0            0        0                 0

           Bit 19 – PTC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit for the corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 18 – DAC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit for the corresponding  peripherals.

           Value        Description

           0            Write-protection is disabled.

           1            Write-protection is enabled.

           Bit 17 – AC

           Writing a zero to these bits has no effect.

           Writing a one to these bits will clear the Write Protect  bit for the corresponding  peripherals.

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                           57

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bit 16 – ADC

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bits 15,14,13,12,11,10,9,8 – TCx

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bits 7,6,5,4,3,2 – SERCOMx

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

Bit 1 – EVSYS

Writing a zero to these bits has no effect.

Writing a one to these bits will clear the Write  Protect  bit  for  the  corresponding  peripherals.

Value  Description

0      Write-protection is disabled.

1      Write-protection is enabled.

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         58

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
12.         Peripherals Configuration Summary

            The following table shows an overview of all the peripherals in the device. The IRQ Line column shows

            the interrupt mapping, as described in “Nested Vector Interrupt Controller” on page 30. The AHB and APB

            clock indexes correspond to the bit in the AHBMASK and APBMASK (x = A, B or C) registers in the

            Power Manager, while the Enabled at Reset column shows whether the peripheral clock is enabled at

            reset (Y) or not (N). Refer to the Power Manager AHBMASK, APBAMASK, APBBMASK and APBCMASK

            registers for details. The Generic Clock Index column corresponds to the value of the Generic Clock

            Selection ID bits in the Generic Clock Control register (CLKCTRL.ID) in the Generic Clock Controller.

            Refer to the GCLK CLKCTRL register description for details. The PAC Index column corresponds to the

            bit in the PACi (i = 0, 1 or 2) registers, while the Prot at Reset column shows whether the peripheral is

            protected at reset (Y) or not (N). Refer to “PAC – Peripheral Access Controller” for details. The numbers

            in the Events User column correspond to the value of the User Multiplexer Selection bits in the User

            Multiplexer register (USER.USER) in the Event System. See the USER register description and Table

            22-6 for details. The numbers in the Events Generator column correspond to the value of the Event

            Generator bits in the Channel register (CHANNEL.EVGEN) in the Event System. See the CHANNEL

            register description and Table 22-3 for details.

Table 12-1. Peripherals Configuration Summary

Peripheral  Base Address  IRQ   AHB Clock           APB Clock           Generic Clock  PAC             Events

Name                      Line

                                Index  Enabled  at  Index  Enabled  at  Index          Index  Prot at  User    Generator          SleepWalking

                                       Reset               Reset                              Reset

AHB-APB     0x40000000          0      Y

Bridge A

PAC0        0x40000000                              0      Y

PM          0x40000400    0                         1      Y                           1      N                                   Y

SYSCTRL     0x40000800    1                         2      Y            0: DFLL48M     2      N                                   Y

                                                                        reference

GCLK        0x40000C00                              3      Y                           3      N                                   Y

WDT         0x40001000    2                         4      Y            1              4      N

RTC         0x40001400    3                         5      Y            2              5      N                1: CMP0/ALARM0     Y

                                                                                                               2: CMP1

                                                                                                               3: OVF

                                                                                                               4-11: PER0-7

EIC         0x40001800    NMI,                      6      Y            3              6      N                12-27: EXTINT0-15  Y

                          4

AHB-APB     0x41000000          1      Y

Bridge B

PAC1        0x41000000                              0      Y

DSU         0x41002000          3      Y            1      Y                           1      Y

NVMCTRL     0x41004000    5     4      Y            2      Y                           2      N

PORT        0x41004400                              3      Y                           3      N

AHB-APB     0x42000000          2      Y

Bridge C

PAC2        0x42000000                              0      N

EVSYS       0x42000400    6                         1      N            4-11: one per  1      N                                   Y

                                                                        CHANNEL

SERCOM0     0x42000800    7                         2      N            13: CORE       2      N                                   Y

                                                                        12:SLOW

SERCOM1     0x42000C00    8                         3      N            14:CORE        3      N                                   Y

                                                                        12: SLOW

                                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       59

                                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Peripheral  Base Address  IRQ   AHB Clock          APB Clock           Generic Clock  PAC             Events

Name                      Line

                                Index  Enabled at  Index  Enabled  at  Index          Index  Prot at  User        Generator       SleepWalking

                                       Reset              Reset                              Reset

SERCOM2     0x42001000    9                        4      N            15:CORE        4      N                                    Y

                                                                       12: SLOW

SERCOM3     0x42001400    10                       5      N            16:CORE        5      N                                    Y

                                                                       12: SLOW

SERCOM4     0x42001800    11                       6      N            17:CORE        6      N                                    Y

                                                                       12: SLOW

SERCOM5     0x42001C00    12                       7      N            18:CORE        7      N                                    Y

                                                                       12: SLOW

TC0         0x42002000    13                       8      N            19             8      N        0: TC       28: OVF         Y

                                                                                                                  29-30: MC0-1

TC1         0x42002400    14                       9      N            19             9      N        1: TC       31: OVF         Y

                                                                                                                  32-33: MC0-1

TC2         0x42002800    15                       10     N            20             10     N        2: TC       34: OVF         Y

                                                                                                                  35-36: MC0-1

TC3         0x42002C00    16                       11     N            20             11     N        3: TC       37: OVF         Y

                                                                                                                  38-39: MC0-1

TC4         0x42003000    17                       12     N            21             12     N        4: TC       40: OVF         Y

                                                                                                                  41-42: MC0-1

TC5         0x42003400    18                       13     N            21             13     N        5: TC       43: OVF         Y

                                                                                                                  44-45: MC0-1

TC6         0x42003800    19                       14     N            22             14     N        6: TC       46: OVF         Y

                                                                                                                  47-48: MC0-1

TC7         0x42003C00    20                       15     N            22             15     N        7: TC       49: OVF         Y

                                                                                                                  50-51: MC0-1

ADC         0x42004000    21                       16     Y            23             16     N        8: START    52: RESRDY      Y

                                                                                                      9: SYNC     53: WINMON

AC          0x42004400    22                       17     N            24: DIG        17     N        10-11:      54-55: COMP0-1  Y

                                                                       25: ANA                        COMP0-1     56: WIN0

DAC         0x42004800    23                       18     N            26             18     N        12: START   57: EMPTY       Y

PTC         0x42004C00    24                       19     N            27             19     N        13: STCONV  58: EOC

                                                                                                                  59:WCOMP

                                                                       Atmel SAM D20E /      SAM D20G / SAM D20J [DATASHEET]                  60

                                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.    DSU - Device Service Unit

13.1.  Overview

       The Device Service Unit (DSU) provides a means to detect debugger probes. This enables the ARM

       Debug Access Port (DAP) to have control over multiplexed debug pads and CPU reset. The DSU also

       provides system-level services to debug adapters in an ARM debug system. It implements a CoreSight

       Debug ROM that provides device identification as well as identification of other debug components within

       the system. Hence, it complies with the ARM Peripheral Identification specification. The DSU also

       provides system services to applications that need memory testing, as required for IEC60730 Class B

       compliance, for example. The DSU can be accessed simultaneously by a debugger and the CPU, as it is

       connected on the High-Speed Bus Matrix. For security reasons, some of the DSU features will be limited

       or unavailable when the device is protected by the NVMCTRL security bit.

       Related Links

       NVMCTRL – Non-Volatile Memory Controller on page 297

       Security Bit on page 305

13.2.  Features

       •  CPU reset extension

       •  Debugger probe detection (Cold- and Hot-Plugging)

       •  Chip-Erase command and status

       •  32-bit cyclic redundancy check (CRC32) of any memory  accessible       through  the  bus  matrix

       •  ARM® CoreSight™ compliant device identification

       •  Two debug communications channels

       •  Debug access port security filter

       •  Onboard memory built-in self-test (MBIST)

                                                     Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]            61

                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.3.    Block Diagram

         Figure 13-1. DSU Block Diagram

                                                  DSU

                          RESET                               debugger_present

                                         DEBUGGER PROBE

                   SWCLK                          INTERFACE   cpu_reset_extension

                               DAP                               CPU

                          AHB-AP         DAP SECURITY FILTER                                    NVMCTRL

                                                              DBG

                                         CORESIGHT ROM

                          PORT

                                                                   M                            S

                                                  CRC-32

                        SWDIO                     MBIST       M                    HIGH-SPEED

                                                                                   BUS MATRIX

                                                  CHIP ERASE

13.4.    Signal Description

         The DSU uses three signals to function.

         Signal Name                     Type                                   Description

         RESET                           Digital Input                          External reset

         SWCLK                           Digital Input                          SW clock

         SWDIO                           Digital I/O                            SW bidirectional data pin

         Related Links

         I/O Multiplexing and Considerations on page 27

13.5.    Product Dependencies

         In order to use this peripheral, other parts of the system must be configured correctly, as described below.

13.5.1.  IO Lines

         The SWCLK pin is by default assigned to the DSU module to allow debugger probe detection and to

         stretch the CPU reset phase. For more information, refer to Debugger Probe Detection. The Hot-Plugging

         feature depends on the PORT configuration. If the SWCLK pin function is changed in the PORT or if the

         PORT_MUX is disabled, the Hot-Plugging feature is disabled until a power-reset or an external reset.

13.5.2.  Power Management

         The DSU will continue to operate in any sleep mode where the selected source clock is running.

         Related Links

         PM – Power Manager on page 129

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]              62

                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.5.3.  Clocks

         The DSU bus clocks (CLK_DSU_APB and CLK_DSU_AHB) can be enabled and disabled by the Power

         Manager. Refer to PM – Power Manager

         Related Links

         PM – Power Manager on page 129

13.5.4.  Interrupts

         Not applicable.

13.5.5.  Events

         Not applicable.

13.5.6.  Register Access Protection

         Registers with write-access can be optionally write-protected by the Peripheral Access Controller (PAC),

         except the following:

         •  Debug Communication Channel 0 register (DCC0)

         •  Debug Communication Channel 1 register (DCC1)

         Note:  Optional write-protection is indicated by the "PAC Write-Protection" property in the register

         description.

         When the CPU is halted in debug mode, all write-protection is automatically disabled. Write-protection

         does not apply for accesses through an external debugger.

         Related Links

         PAC - Peripheral Access Controller on page 45

13.5.7.  Analog Connections

         Not applicable.

13.6.    Debug Operation

13.6.1.  Principle of Operation

         The DSU provides basic services to allow on-chip debug using the ARM Debug Access Port and the

         ARM processor debug resources:

         •  CPU reset extension

         •  Debugger probe detection

         For more details on the ARM debug components, refer to the ARM Debug Interface v5 Architecture

         Specification.

13.6.2.  CPU Reset Extension

         “CPU reset extension” refers to the extension of the reset phase of the CPU core after the external reset

         is released. This ensures that the CPU is not executing code at startup while a debugger connects to the

         system. It is detected on a RESET release event when SWCLK is low. At startup, SWCLK is internally

         pulled up to avoid false detection of a debugger if SWCLK is left unconnected. When the CPU is held in

         the reset extension phase, the CPU Reset Extension bit of the Status A register (STATUSA.CRSTEXT) is

         set. To release the CPU, write a '1' to STATUSA.CRSTEXT. STATUSA.CRSTEXT will then be set to zero.

         Writing a '0' to STATUSA.CRSTEXT has no effect. For security reasons, it is not possible to release the

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]             63

                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           CPU reset extension when the device is protected by the NVMCTRL security bit. Trying to do so sets the

           Protection Error bit (PERR) of the Status A register (STATUSA.PERR).

           Figure 13-2. Typical CPU Reset Extension Set and Clear Timing Diagram

                          SWCLK

                          RESET

                 DSU CRSTEXT

                           Clear

                 CPU reset

                         extension

                 CPU_STATE                               reset                    running

           Related Links

           NVMCTRL – Non-Volatile Memory Controller on page 297

           Security Bit on page 305

13.6.3.    Debugger Probe Detection

13.6.3.1.  Cold Plugging

           Cold-Plugging is the detection of a debugger when the system is in reset. Cold-Plugging is detected when

           the CPU reset extension is requested, as described above.

13.6.3.2.  Hot Plugging

           Hot-Plugging is the detection of a debugger probe when the system is not in reset. Hot-Plugging is not

           possible under reset because the detector is reset when POR or RESET are asserted. Hot-Plugging is

           active when a SWCLK falling edge is detected. The SWCLK pad is multiplexed with other functions and

           the user must ensure that its default function is assigned to the debug system. If the SWCLK function is

           changed, the Hot-Plugging feature is disabled until a power-reset or external reset occurs. Availability of

           the Hot-Plugging feature can be read from the Hot-Plugging Enable bit of the Status B register

           (STATUSB.HPE).

           Figure 13-3. Hot-Plugging Detection Timing Diagram

                                     SWCLK

                                     RESET

                                    CPU_STATE     reset               running

                                    Hot-Plugging

           The presence of a debugger probe is detected when either Hot-Plugging or Cold-Plugging is detected.

           Once detected, the Debugger Present bit of the Status B register (STATUSB.DBGPRES) is set. For

           security reasons, Hot-Plugging is not available when the device is protected by the NVMCTRL security

           bit.

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]               64

                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
       This detection requires that pads are correctly powered. Thus, at cold startup, this detection cannot be

       done until POR is released. If the device is protected, Cold-Plugging is the only way to detect a debugger

       probe, and so the external reset timing must be longer than the POR timing. If external reset is

       deasserted before POR release, the user must retry the procedure above until it gets connected to the

       device.

       Related Links

       NVMCTRL – Non-Volatile Memory Controller on page 297

       Security Bit on page 305

13.7.  Chip Erase

       Chip-Erase consists of removing all sensitive information stored in the chip and clearing the NVMCTRL

       security bit. Therefore, all volatile memories and the Flash memory (including the EEPROM emulation

       area) will be erased. The Flash auxiliary rows, including the user row, will not be erased.

       When the device is protected, the debugger must reset the device in order to be detected. This ensures

       that internal registers are reset after the protected state is removed. The Chip-Erase operation is

       triggered by writing a '1' to the Chip-Erase bit in the Control register (CTRL.CE). This command will be

       discarded if the DSU is protected by the Peripheral Access Controller (PAC). Once issued, the module

       clears volatile memories prior to erasing the Flash array. To ensure that the Chip-Erase operation is

       completed, check the Done bit of the Status A register (STATUSA.DONE).

       The Chip-Erase operation depends on clocks and power management features that can be altered by the

       CPU. For that reason, it is recommended to issue a Chip- Erase after a Cold-Plugging procedure to

       ensure that the device is in a known and safe state.

       The  recommended sequence is as follows:

       1.   Issue the Cold-Plugging procedure (refer to Cold Plugging). The device then:

            1.1.      Detects the debugger probe.

            1.2.      Holds the CPU in reset.

       2.   Issue the Chip-Erase command by writing a '1' to CTRL.CE. The device then:

            2.1.      Clears the system volatile memories.

            2.2.      Erases the whole Flash array (including the EEPROM emulation area, not        including

                      auxiliary rows).

            2.3.      Erases the lock row, removing the NVMCTRL security bit protection.

       3.   Check for completion by polling STATUSA.DONE (read as one when completed).

       4.   Reset the device to let the NVMCTRL update fuses.

13.8.  Programming

       Programming the Flash or RAM memories is only possible when the device is not protected by the

       NVMCTRL security bit. The programming procedure is as follows:

       1.   At power up, RESET is driven low by a debugger. The on-chip regulator holds the system in a POR

            state until the input supply is above the POR threshold (refer to Powe-On Reset (POR)

            characteristics). The system continues to be held in this static state until the internally regulated

            supplies have reached a safe operating state.

       2.   The PM starts, clocks are switched to the slow clock (Core Clock, System Clock, Flash Clock and

            any Bus Clocks that do not have clock gate control). Internal resets are maintained due to the

            external reset.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                     65

                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
       3.  The debugger maintains a low level on SWCLK. RESET is released, resulting in a debugger Cold-

           Plugging procedure.

       4.  The debugger generates a clock signal on the SWCLK pin, the Debug Access Port (DAP) receives

           a clock.

       5.  The CPU remains in Reset due to the Cold-Plugging procedure; meanwhile, the rest of the system

           is released.

       6.  A Chip-Erase is issued to ensure that the Flash is fully erased prior to programming.

       7.  Programming is available through the AHB-AP.

       8.  After the operation is completed, the chip can be restarted either by asserting RESET, toggling

           power, or writing a '1' to the Status A register CPU Reset Phase Extension bit

           (STATUSA.CRSTEXT). Make sure that the SWCLK pin is high when releasing RESET to prevent

           extending the CPU reset.

       Related Links

       NVMCTRL – Non-Volatile Memory Controller on page 297

       Security Bit on page 305

       Electrical Characteristics on page 606

       Power-On Reset (POR) Characteristics on page 616

13.9.  Intellectual Property Protection

       Intellectual property protection consists of restricting access to internal memories from external tools

       when the device is protected, and this is accomplished by setting the NVMCTRL security bit. This

       protected state can be removed by issuing a Chip-Erase (refer to Chip Erase). When the device is

       protected, read/write accesses using the AHB-AP are limited to the DSU address range and DSU

       commands are restricted. When issuing a Chip-Erase, sensitive information is erased from volatile

       memory and Flash.

       The DSU implements a security filter that monitors the AHB transactions generated by the ARM AHB-AP

       inside the DAP. If the device is protected, then AHB-AP read/write accesses outside the DSU external

       address range are discarded, causing an error response that sets the ARM AHB-AP sticky error bits

       (refer to the ARM Debug Interface v5 Architecture Specification on http://www.arm.com).

       The DSU is intended to be accessed either:

       •   Internally from the CPU, without any limitation, even when the device is protected

       •   Externally from a debug adapter, with some restrictions when the device is protected

       For security reasons, DSU features have limitations when used from a debug adapter. To differentiate

       external accesses from internal ones, the first 0x100 bytes of the DSU register map have been mirrored

       at offset 0x100:

       •   The first 0x100 bytes form the internal address range

       •   The next 0x100 bytes form the external address range

       When the device is protected, the DAP can only issue MEM-AP accesses in the DSU address range

       limited to the 0x100- 0x2000 offset range.

       The DSU operating registers are located in the 0x00-0xFF area and remapped in 0x100-0x1FF to

       differentiate accesses coming from a debugger and the CPU. If the device is protected and an access is

       issued in the region 0x100-0x1FF, it is subject to security restrictions. For more information, refer to the

       Table 13-1.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                  66

                                                                  Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
          Figure 13-4. APB  Memory Mapping

          0x0000

                            DSU operating         Internal address range

                                     registers    (cannot be accessed from debug tools when the device              is

                                                  protected by the NVMCTRL security bit)

          0x00FC

          0x0100

                                     Mirrored

                            DSU operating

                                     registers

          0x01FD

                                     Empty        External address range

                                                  (can be accessed from debug tools with some restrictions)

          0x1000

                            DSU CoreSight

                                     ROM

          0x1FFC

          Some features not activated by APB      transactions  are  not available when the  device  is protected:

          Table 13-1. Feature Availability Under  Protection

          Features                                                   Availability when the   device  is protected

          CPU Reset Extension                                        Yes

          Clear CPU Reset Extension                                  No

          Debugger Cold-Plugging                                     Yes

          Debugger Hot-Plugging                                      No

          Related Links

          NVMCTRL – Non-Volatile Memory Controller on page 297

          Security Bit on page 305

13.10.    Device Identification

          Device identification relies on the ARM CoreSight component identification scheme, which allows the chip

          to be identified as an Atmel device implementing a DSU. The DSU contains identification registers to

          differentiate the device.

13.10.1.  CoreSight Identification

          A system-level ARM CoreSight ROM table is present in the device to identify the vendor and the chip

          identification method. Its address is provided in the MEM-AP BASE register inside the ARM Debug

          Access Port. The CoreSight ROM implements a 64-bit conceptual ID composed as follows from the PID0

          to PID7 CoreSight ROM Table registers:

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         67

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
          Figure 13-5. Conceptual 64-bit Peripheral ID

          Table 13-2. Conceptual 64-Bit Peripheral ID Bit Descriptions

          Field                 Size  Description                                                         Location

          JEP-106 CC code       4     Atmel continuation code: 0x0                                        PID4

          JEP-106 ID code       7     Atmel device ID: 0x1F                                               PID1+PID2

          4KB count             4     Indicates that the CoreSight component is a ROM: 0x0                PID4

          RevAnd                4     Not used; read as 0                                                 PID3

          CUSMOD                4     Not used; read as 0                                                 PID3

          PARTNUM               12    Contains 0xCD0 to indicate that DSU is present                      PID0+PID1

          REVISION              4     DSU revision (starts at 0x0 and increments by 1 at both major       PID3

                                      and minor revisions). Identifies DSU identification method

                                      variants. If 0x0, this indicates that device identification can be

                                      completed by reading the Device Identification register (DID)

          For more information, refer to the ARM Debug Interface Version 5 Architecture Specification.

13.10.2.  Chip Identification Method

          The DSU DID register identifies the device by implementing the following information:

          •      Processor identification

          •      Product family identification

          •      Product series identification

          •      Device select

13.11.    Functional Description

13.11.1.  Principle of Operation

          The DSU provides memory services such as CRC32 or MBIST that require almost the same interface.

          Hence, the Address, Length and Data registers (ADDR, LENGTH, DATA) are shared. These shared

          registers must be configured first; then a command can be issued by writing the Control register. When a

          command is ongoing, other commands are discarded until the current operation is completed. Hence, the

          user must wait for the STATUSA.DONE bit to be set prior to issuing another one.

                                                           Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]              68

                                                                        Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.11.2.  Basic Operation

13.11.2.1. Initialization

          The module is enabled by enabling its clocks. For more details, refer to Clocks. The DSU registers can be

          PAC write-protected.

          Related Links

          PAC - Peripheral Access Controller on page 45

13.11.2.2. Operation From a Debug Adapter

          Debug adapters should access the DSU registers in the external address range 0x100 – 0x2000. If the

          device is protected by the NVMCTRL security bit, accessing the first 0x100 bytes causes the system to

          return an error. Refer to Intellectual Property Protection.

          Related Links

          NVMCTRL – Non-Volatile Memory Controller on page 297

          Security Bit on page 305

13.11.2.3. Operation From the CPU

          There are no restrictions when accessing DSU registers from the CPU. However, the user should access

          DSU registers in the internal address range (0x0 – 0x100) to avoid external security restrictions. Refer to

          Intellectual Property Protection.

13.11.3.  32-bit Cyclic Redundancy Check CRC32

          The DSU unit provides support for calculating a cyclic redundancy check (CRC32) value for a memory

          area (including Flash and AHB RAM).

          When the CRC32 command is issued from:

          •    The internal range, the CRC32 can be operated at any memory location

          •    The external range, the CRC32 operation is restricted; DATA, ADDR, and LENGTH values are

               forced (see below)

          Table 13-3. AMOD Bit Descriptions when Operating CRC32

          AMOD[1:0]        Short name  External range restrictions

          0                ARRAY       CRC32 is restricted to the full Flash array area (EEPROM emulation area not

                                       included) DATA forced to 0xFFFFFFFF before calculation (no seed)

          1                EEPROM      CRC32 of the whole EEPROM emulation area DATA forced to 0xFFFFFFFF

                                       before calculation (no seed)

          2-3              Reserved

          The algorithm employed is the industry standard CRC32 algorithm using the generator polynomial

          0xEDB88320 (reversed representation).

13.11.3.1. Starting CRC32 Calculation

          CRC32 calculation for a memory range is started after writing the start address into the Address register

          (ADDR) and the size of the memory range into the Length register (LENGTH). Both must be word-

          aligned.

          The initial value used for the CRC32 calculation must be written to the Data register (DATA). This value

          will usually be 0xFFFFFFFF, but can be, for example, the result of a previous CRC32 calculation if

          generating a common CRC32 of separate memory blocks.

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]               69

                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
          Once completed, the calculated CRC32 value can be read out of the Data register. The read value must

          be complemented to match standard CRC32 implementations or kept non-inverted if used as starting

          point for subsequent CRC32 calculations.

          If the device is in protected state by the NVMCTRL security bit, it is only possible to calculate the CRC32

          of the whole flash array when operated from the external address space. In most cases, this area will be

          the entire onboard non-volatile memory. The Address, Length and Data registers will be forced to

          predefined values once the CRC32 operation is started, and values written by the user are ignored. This

          allows the user to verify the contents of a protected device.

          The actual test is started by writing a '1' in the 32-bit Cyclic Redundancy Check bit of the Control register

          (CTRL.CRC). A running CRC32 operation can be canceled by resetting the module (writing '1' to

          CTRL.SWRST).

          Related Links

          NVMCTRL – Non-Volatile Memory Controller on page 297

          Security Bit on page 305

13.11.3.2. Interpreting the Results

          The user should monitor the Status A register. When the operation is completed, STATUSA.DONE is set.

          Then the Bus Error bit of the Status A register (STATUSA.BERR) must be read to ensure that no bus

          error occurred.

13.11.4.  Debug Communication Channels

          The Debug Communication Channels (DCCO and DCC1) consist of a pair of registers with associated

          handshake logic, accessible by both CPU and debugger even if the device is protected by the NVMCTRL

          security bit. The registers can be used to exchange data between the CPU and the debugger, during run

          time as well as in debug mode. This enables the user to build a custom debug protocol using only these

          registers.

          The DCC0 and DCC1 registers are accessible when the protected state is active. When the device is

          protected, however, it is not possible to connect a debugger while the CPU is running

          (STATUSA.CRSTEXT is not writable and the CPU is held under Reset).

          Two Debug Communication Channel status bits in the Status B registers (STATUS.DCCDx) indicate

          whether a new value has been written in DCC0 or DCC1. These bits, DCC0D and DCC1D, are located in

          the STATUSB registers. They are automatically set on write and cleared on read.

          Note:  The DCC0 and DCC1 registers are shared with the on-board memory testing logic (MBIST).

          Accordingly, DCC0 and DCC1 must not be used while performing MBIST operations.

          Related Links

          NVMCTRL – Non-Volatile Memory Controller on page 297

          Security Bit on page 305

13.11.5.  Testing of On-Board Memories MBIST

          The DSU implements a feature for automatic testing of memory also known as MBIST (memory built-in

          self test). This is primarily intended for production test of on-board memories. MBIST cannot be operated

          from the external address range when the device is protected by the NVMCTRL security bit. If an MBIST

          command is issued when the device is protected, a protection error is reported in the Protection Error bit

          in the Status A register (STATUSA.PERR).

          1.  Algorithm

              The algorithm used for testing is a type of March algorithm called "March LR". This algorithm is able

              to detect a wide range of memory defects, while still keeping a linear run time. The algorithm is:

                                                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                      70

                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
    1.1.  Write entire memory to '0', in any order.

    1.2.  Bit for bit read '0', write '1', in descending order.

    1.3.  Bit for bit read '1', write '0', read '0', write '1', in ascending order.

    1.4.  Bit for bit read '1', write '0', in ascending order.

    1.5.  Bit for bit read '0', write '1', read '1', write '0', in ascending order.

    1.6.  Read '0' from entire memory, in ascending order.

    The specific implementation used has a run time which depends on the CPU clock frequency and

    the number of bytes tested in the RAM. The detected faults are:

    –     Address decoder faults

    –     Stuck-at faults

    –     Transition faults

    –     Coupling faults

    –     Linked Coupling faults

2.  Starting MBIST

    To test a memory, you need to write the start address of the memory to the ADDR.ADDR bit field,

    and the size of the memory into the Length register.

    For best test coverage, an entire physical memory block should be tested at once. It is possible to

    test only a subset of a memory, but the test coverage will then be somewhat lower.

    The actual test is started by writing a '1' to CTRL.MBIST. A running MBIST operation can be

    canceled by writing a '1' to CTRL.SWRST.

3.  Interpreting the Results

    The tester should monitor the STATUSA register. When the operation is completed,

    STATUSA.DONE is set. There are two different modes:

    –     ADDR.AMOD=0: exit-on-error (default)

          In this mode, the algorithm terminates either when a fault is detected or on successful

          completion. In both cases, STATUSA.DONE is set. If an error was detected, STATUSA.FAIL

          will be set. User then can read the DATA and ADDR registers to locate the fault.

    –     ADDR.AMOD=1: pause-on-error

          In this mode, the MBIST algorithm is paused when an error is detected. In such a situation,

          only STATUSA.FAIL is asserted. The state machine waits for user to clear STATUSA.FAIL by

          writing a '1' in STATUSA.FAIL to resume. Prior to resuming, user can read the DATA and

          ADDR registers to locate the fault.

4.  Locating Faults

    If the test stops with STATUSA.FAIL set, one or more bits failed the test. The test stops at the first

    detected error. The position of the failing bit can be found by reading the following registers:

    –     ADDR: Address of the word containing the failing bit

    –     DATA: contains data to identify which bit failed, and during which phase of the test it failed.

          The DATA register will in this case contains the following bit groups:

                                               Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                   71

                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
          Figure 13-6. DATA bits Description When MBIST Operation Returns an Error

               Bit     31           30        29          28           27           26     25         24

               Bit     23           22        21          20           19           18     17         16

               Bit     15           14        13          12           11           10     9                   8

                                                                                           phase

               Bit     7            6         5           4            3            2      1                   0

                                                                             bit_index

          •    bit_index: contains the bit number of the  failing bit

          •    phase: indicates which phase of the test   failed and the cause of the error, as listed in the following

               table.

          Table 13-4. MBIST Operation Phases

          Phase                                               Test actions

          0                                                   Write all bits to zero. This phase cannot fail.

          1                                                   Read '0', write '1', increment address

          2                                                   Read '1', write '0'

          3                                                   Read '0', write '1', decrement address

          4                                                   Read '1', write '0', decrement address

          5                                                   Read '0', write '1'

          6                                                   Read '1', write '0', decrement address

          7                                                   Read all zeros. bit_index is not used

          Table 13-5. AMOD Bit Descriptions for MBIST

          AMOD[1:0]                                           Description

          0x0                                                 Exit on Error

          0x1                                                 Pause on Error

          0x2, 0x3                                            Reserved

          Related Links

          NVMCTRL – Non-Volatile Memory Controller on page 297

          Security Bit on page 305

          Physical Memory Map on page 36

13.11.6.  System Services Availability when Accessed Externally

          External access: Access performed in the DSU address offset 0x200-0x1FFF range.

          Internal access: Access performed in the DSU address offset 0x0-0x100 range.

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                    72

                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Table 13-6. Available Features when Operated  From  The External Address Range and Device is Protected

Features                                            Availability From The External Address Range

                                                    and Device is Protected

Chip-Erase command and status                       Yes

CRC32                                               Yes, only full array or full EEPROM

CoreSight Compliant Device identification           Yes

Debug communication channels                        Yes

Testing of onboard memories (MBIST)                 No

STATUSA.CRSTEXT clearing                            No (STATUSA.PERR is set when attempting to do

                                                    so)

                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]            73

                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.12.  Register  Summary

Offset  Name      Bit Pos.

0x00    CTRL      7:0       SMSA         ARR                        CE   MBIST            CRC                             SWRST

0x01    STATUSA   7:0                                    PERR                       FAIL  BERR   CRSTEXT                  DONE

0x02    STATUSB   7:0                                               HPE  DCCD1            DCCD0  DBGPRES                  PROT

0x03    Reserved

0x04              7:0                                    ADDR[5:0]                                              AMOD[1:0]

0x05    ADDR      15:8                                                  ADDR[13:6]

0x06              23:16                                              ADDR[21:14]

0x07              31:24                                              ADDR[29:22]

0x08              7:0                                   LENGTH[5:0]

0x09    LENGTH    15:8                                               LENGTH[13:6]

0x0A              23:16                                              LENGTH[21:14]

0x0B              31:24                                              LENGTH[29:22]

0x0C              7:0                                                    DATA[7:0]

0x0D    DATA      15:8                                                  DATA[15:8]

0x0E              23:16                                              DATA[23:16]

0x0F              31:24                                              DATA[31:24]

0x10              7:0                                                    DATA[7:0]

0x11    DCC0      15:8                                                  DATA[15:8]

0x12              23:16                                              DATA[23:16]

0x13              31:24                                              DATA[31:24]

0x14              7:0                                                    DATA[7:0]

0x15    DCC1      15:8                                                  DATA[15:8]

0x16              23:16                                              DATA[23:16]

0x17              31:24                                              DATA[31:24]

0x18              7:0                                                DEVSEL[7:0]

0x19    DID       15:8                        DIE[3:0]                                           REVISION[3:0]

0x1A              23:16     FAMILY[0:0]                                             SERIES[5:0]

0x1B              31:24                  PROCESSOR[3:0]                                          FAMILY[4:1]

0x1C

...     Reserved

0x0FFF

0x1000            7:0                                                                            FMT                      EPRES

0x1001  ENTRY0    15:8                   ADDOFF[3:0]

0x1002            23:16                                              ADDOFF[11:4]

0x1003            31:24                                              ADDOFF[19:12]

0x1004            7:0                                                                            FMT                      EPRES

0x1005  ENTRY1    15:8                   ADDOFF[3:0]

0x1006            23:16                                              ADDOFF[11:4]

0x1007            31:24                                              ADDOFF[19:12]

0x1008            7:0                                                    END[7:0]

0x1009  END       15:8                                                   END[15:8]

0x100A            23:16                                                 END[23:16]

0x100B            31:24                                                 END[31:24]

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         74

                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Offset  Name      Bit Pos.

0x100C

...     Reserved

0x1FCB

0x1FCC            7:0                                                                      SMEMP

0x1FCD  MEMTYPE   15:8

0x1FCE            23:16

0x1FCF            31:24

0x1FD0            7:0       FKBC[3:0]                               JEPCC[3:0]

0x1FD1  PID4      15:8

0x1FD2            23:16

0x1FD3            31:24

0x1FD4

...     Reserved

0x1FDF

0x1FE0            7:0                              PARTNBL[7:0]

0x1FE1  PID0      15:8

0x1FE2            23:16

0x1FE3            31:24

0x1FE4            7:0       JEPIDCL[3:0]                            PARTNBH[3:0]

0x1FE5  PID1      15:8

0x1FE6            23:16

0x1FE7            31:24

0x1FE8            7:0       REVISION[3:0]          JEPU             JEPIDCH[2:0]

0x1FE9  PID2      15:8

0x1FEA            23:16

0x1FEB            31:24

0x1FEC            7:0       REVAND[3:0]                             CUSMOD[3:0]

0x1FED  PID3      15:8

0x1FEE            23:16

0x1FEF            31:24

0x1FF0            7:0                              PREAMBLEB0[7:0]

0x1FF1  CID0      15:8

0x1FF2            23:16

0x1FF3            31:24

0x1FF4            7:0       CCLASS[3:0]                             PREAMBLE[3:0]

0x1FF5  CID1      15:8

0x1FF6            23:16

0x1FF7            31:24

0x1FF8            7:0                              PREAMBLEB2[7:0]

0x1FF9  CID2      15:8

0x1FFA            23:16

0x1FFB            31:24

0x1FFC            7:0                              PREAMBLEB3[7:0]

0x1FFD  CID3      15:8

0x1FFE            23:16

0x1FFF            31:24

                                       Atmel  SAM  D20E / SAM D20G / SAM D20J [DATASHEET]           75

                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.  Register Description

        Registers can be 8, 16, or 32 bits wide. Atomic 8-, 16- and 32-bit accesses are supported. In addition, the

        8-bit quarters and 16-bit halves of a 32-bit register, and the 8-bit halves of a 16-bit register can be

        accessed directly.

        Some registers are optionally write-protected by the Peripheral Access Controller (PAC). Optional PAC

        write-protection is denoted by the "PAC Write-Protection" property in each individual register description.

        For details, refer to Register Access Protection.

                                                           Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]          76

                                                           Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.1.  Control

          Name:     CTRL

          Offset:   0x0000

          Reset:    0x00

          Property: PAC Write-Protection

           

Bit          7              6             5             4              3           2    1                                           0

             SMSA           ARR                         CE             MBIST       CRC     SWRST

Access       W              W                           W              W           W                                                W

Reset        0              0                           0              0           0                                                0

          Bit 7 – SMSA: Start Memory Stream Access

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit starts memory stream access.

          Bit 6 – ARR: Auxiliary Row Read

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit starts the Auxiliary Row Read.

          Bit 4 – CE: Chip-Erase

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit starts the Chip-Erase operation.

          Bit 3 – MBIST: Memory Built-In Self-Test

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit starts the memory BIST algorithm.

          Bit 2 – CRC: 32-bit Cyclic Redundancy Check

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit starts the cyclic redundancy check algorithm.

          Bit 0 – SWRST: Software Reset

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit resets the module.

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                               77

                                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.2.  Status A

          Name:     STATUSA

          Offset:   0x0001

          Reset:    0x00

          Property: PAC Write-Protection

           

Bit          7              6             5                    4      3        2            1                                   0

                                                               PERR   FAIL     BERR         CRSTEXT        DONE

Access                                                         R/W    R/W      R/W          R/W                  R/W

Reset                                                          0      0        0            0                                   0

          Bit 4 – PERR: Protection Error

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit clears the Protection Error bit.

          This bit is set when a command that is not allowed in protected state is issued.

          Bit 3 – FAIL: Failure

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit clears the Failure bit.

          This bit is set when a DSU operation failure is detected.

          Bit 2 – BERR: Bus Error

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit clears the Bus Error bit.

          This bit is set when a bus error is detected.

          Bit 1 – CRSTEXT: CPU Reset Phase Extension

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit clears the CPU Reset Phase Extension bit.

          This bit is set when a debug adapter Cold-Plugging is detected, which extends     the CPU reset  phase.

          Bit 0 – DONE: Done

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit clears the Done bit.

          This bit is set when a DSU operation is completed.

                                                               Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                    78

                                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.3.  Status B

          Name:     STATUSB

          Offset:   0x0002

          Reset:    0x1X

          Property: PAC Write-Protection

           

Bit          7              6             5              4           3                  2  1                                 0

                                                         HPE         DCCD1  DCCD0          DBGPRES             PROT

Access                                                   R           R                  R  R                                 R

Reset                                                    1           0                  0  0                                 0

          Bit 4 – HPE: Hot-Plugging Enable

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit has no effect.

          This bit is set when Hot-Plugging is enabled.

          This bit is cleared when Hot-Plugging is disabled. This is the case when the     SWCLK function  is  changed.

          Only a power-reset or a external reset can set it again.

          Bits 3,2 – DCCDx: Debug Communication Channel x Dirty [x=1..0]

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit has no effect.

          This bit is set when DCCx is written.

          This bit is cleared when DCCx is read.

          Bit 1 – DBGPRES: Debugger Present

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit has no effect.

          This bit is set when a debugger probe is detected.

          This bit is never cleared.

          Bit 0 – PROT: Protected

          Writing a '0' to this bit has no effect.

          Writing a '1' to this bit has no effect.

          This bit is set at power-up when the device is protected.

          This bit is never cleared.

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       79

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.4.  Address

          Name:     ADDR

          Offset:   0x0004

          Reset:    0x00000000

          Property: PAC Write-Protection

           

Bit          31             30            29              28               27   26             25                                24

                                                              ADDR[29:22]

Access       R/W            R/W           R/W             R/W              R/W  R/W            R/W             R/W

Reset        0              0             0               0                0    0              0                                 0

Bit          23             22            21              20               19   18             17                                16

                                                              ADDR[21:14]

Access       R/W            R/W           R/W             R/W              R/W  R/W            R/W             R/W

Reset        0              0             0               0                0    0              0                                 0

Bit          15             14            13              12               11   10             9                                 8

                                                               ADDR[13:6]

Access       R/W            R/W           R/W             R/W              R/W  R/W            R/W             R/W

Reset        0              0             0               0                0    0              0                                 0

Bit          7              6             5               4                3    2              1                                 0

                                               ADDR[5:0]                                            AMOD[1:0]

Access       R/W            R/W           R/W             R/W              R/W  R/W            R/W             R/W

Reset        0              0             0               0                0    0              0                                 0

          Bits 31:2 – ADDR[29:0]: Address

          Initial word start address needed for memory operations.

          Bits 1:0 – AMOD[1:0]: Access Mode

          The functionality of these bits is dependent on the operation mode.

          Bit description when operating CRC32: refer to 32-bit Cyclic Redundancy Check CRC32

          Bit description when testing onboard memories (MBIST): refer to Testing of On-Board Memories MBIST

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                           80

                                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.5.  Length

          Name:     LENGTH

          Offset:   0x0008

          Reset:    0x00000000

          Property: PAC Write-Protection

           

Bit          31             30            29               28               27     26   25                                          24

                                                           LENGTH[29:22]

Access       R/W            R/W           R/W  R/W             R/W                 R/W  R/W  R/W

Reset        0              0             0                0                0      0    0                                           0

Bit          23             22            21               20               19     18   17                                          16

                                                           LENGTH[21:14]

Access       R/W            R/W           R/W  R/W             R/W                 R/W  R/W  R/W

Reset        0              0             0                0                0      0    0                                           0

Bit          15             14            13               12               11     10   9                                           8

                                                              LENGTH[13:6]

Access       R/W            R/W           R/W  R/W             R/W                 R/W  R/W  R/W

Reset        0              0             0                0                0      0    0                                           0

Bit          7              6             5                4                3      2    1                                           0

                                              LENGTH[5:0]

Access       R/W            R/W           R/W  R/W             R/W                 R/W

Reset        0              0             0                0                0      0

          Bits 31:2 – LENGTH[29:0]: Length

          Length in words needed for memory operations.

                                                           Atmel SAM D20E       /  SAM D20G / SAM D20J [DATASHEET]                      81

                                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.6.  Data

          Name:      DATA

          Offset:    0x000C

          Reset:     0x00000000

          Property: PAC Write-Protection

           

Bit             31           30           29                28               27      26   25                                          24

                                                                DATA[31:24]

Access          R/W          R/W          R/W       R/W                      R/W     R/W  R/W  R/W

Reset           0            0            0                 0                0       0    0                                           0

Bit             23           22           21                20               19      18   17                                          16

                                                                DATA[23:16]

Access          R/W          R/W          R/W       R/W                      R/W     R/W  R/W  R/W

Reset           0            0            0                 0                0       0    0                                           0

Bit             15           14           13                12               11      10   9                                           8

                                                                DATA[15:8]

Access          R/W          R/W          R/W       R/W                      R/W     R/W  R/W  R/W

Reset           0            0            0                 0                0       0    0                                           0

Bit             7            6            5                 4                3       2    1                                           0

                                                                DATA[7:0]

Access          R/W          R/W          R/W       R/W                      R/W     R/W  R/W  R/W

Reset           0            0            0                 0                0       0    0                                           0

          Bits 31:0 – DATA[31:0]: Data

          Memory operation initial value or result  value.

                                                            Atmel SAM D20E        /  SAM D20G / SAM D20J [DATASHEET]                      82

                                                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.7.  Debug Communication Channel 0

          Name:     DCC0

          Offset:   0x0010

          Reset:    0x00000000

          Property: -

           

Bit          31             30          29   28               27      26   25                                          24

                                                 DATA[31:24]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

Bit          23             22          21   20               19      18   17                                          16

                                                 DATA[23:16]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

Bit          15             14          13   12               11      10   9                                           8

                                                  DATA[15:8]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

Bit          7              6           5    4                3       2    1                                           0

                                                  DATA[7:0]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

          Bits 31:0 – DATA[31:0]: Data

          Data register.

                                             Atmel SAM D20E        /  SAM D20G / SAM D20J [DATASHEET]                      83

                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.8.  Debug Communication Channel 1

          Name:     DCC1

          Offset:   0x0014

          Reset:    0x00000000

          Property: -

           

Bit          31             30          29   28               27      26   25                                          24

                                                 DATA[31:24]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

Bit          23             22          21   20               19      18   17                                          16

                                                 DATA[23:16]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

Bit          15             14          13   12               11      10   9                                           8

                                                  DATA[15:8]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

Bit          7              6           5    4                3       2    1                                           0

                                                  DATA[7:0]

Access       R/W            R/W         R/W  R/W              R/W     R/W  R/W  R/W

Reset        0              0           0    0                0       0    0                                           0

          Bits 31:0 – DATA[31:0]: Data

          Data register.

                                             Atmel SAM D20E        /  SAM D20G / SAM D20J [DATASHEET]                      84

                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.9.  Device Identification

          The information in this register is related to the Ordering Information.

          Name:     DID

          Offset:   0x0018

          Reset:    see related links

          Property: PAC Write-Protection

           

Bit          31                  30             29  28                   27               26                25                       24

                                 PROCESSOR[3:0]                                               FAMILY[4:1]

Access       R                   R              R     R                  R                R                 R                        R

Reset        0                   0              0     0                  0                0                 0                        0

Bit          23                  22             21  20                   19               18                17                       16

             FAMILY[0:0]                                                     SERIES[5:0]

Access       R                                  R     R                  R                R                 R                        R

Reset        0                                  0     0                  0                0                 0                        0

Bit          15                  14             13  12                   11               10                9                        8

                                      DIE[3:0]                                               REVISION[3:0]

Access       R                   R              R     R                  R                R                 R                        R

Reset        0                   0              0     0                  0                0                 0                        0

Bit          7                   6              5     4                  3                2                 1                        0

                                                         DEVSEL[7:0]

Access       R                   R              R     R                  R                R                 R                        R

Reset        0                   0              0     0                  0                0                 0                        0

          Bits 31:28 – PROCESSOR[3:0]: Processor

          The value of this field defines the processor used on the device.

          Bits 27:23 – FAMILY[4:0]: Product Family

          The value of this field corresponds to the Product Family part of the ordering code.

          Bits 21:16 – SERIES[5:0]: Product Series

          The value of this field corresponds to the Product Series part of the ordering code.

          Bits 15:12 – DIE[3:0]: Die Number

          Identifies the die family.

          Bits 11:8 – REVISION[3:0]: Revision Number

          Identifies the die revision number. 0x0=rev.A, 0x1=rev.B etc.

          Note:  The device variant (last letter of the ordering number) is independent of the die revision

          (DSU.DID.REVISION): The device variant denotes functional differences, whereas the die revision marks

          evolution of the die.

          Bits 7:0 – DEVSEL[7:0]: Device Selection

          This bit field identifies a device within a product family and product series. Refer to the Ordering

          Information for device configurations and corresponding values for Flash memory density, pin count and

          device variant.

                                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                   85

                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Table 13-7. Device Selection

DEVSEL    Device              Flash  (KB)             RAM (KB)  Pin count

0x0       SAMD20J18A          256                     32        64

0x1       SAMD20J17A          128                     16        64

0x2       SAMD20J16A          64                      8         64

0x3       SAMD20J15A          32                      4         64

0x4       SAMD20J14A          16                      2         64

0x5       SAMD20G18A          256                     32        48

0x6       SAMD20G17A          128                     16        48

0x7       SAMD20G16A          64                      8         48

0x8       SAMD20G15A          32                      4         48

0x9       SAMD20G14A          16                      2         48

0xA       SAMD20E18A          256                     32        32

0xB       SAMD20E17A          128                     16        32

0xC       SAMD20E16A          64                      8         32

0xD       SAMD20E15A          32                      4         32

0xE       SAMD20E14A          16                      2         32

0xF-0xFF  Reserved

                                  Atmel SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                     86

                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.10. CoreSight ROM Table Entry 0

        Name:     ENTRY0

        Offset:   0x1000

        Reset:    0xXXXXX00X

        Property: PAC Write-Protection

         

Bit        31             30               29      28               27  26                  25                           24

                                                   ADDOFF[19:12]

Access     R              R                R       R                R   R                   R                            R

Reset      0              0                0       0                0   0                   0                            0

Bit        23             22               21      20               19  18                  17                           16

                                                      ADDOFF[11:4]

Access     R              R                R       R                R   R                   R                            R

Reset      0              0                0       0                0   0                   0                            0

Bit        15             14               13      12               11  10                  9                            8

                              ADDOFF[3:0]

Access     R              R                R       R

Reset      0              0                0       0

Bit        7              6                5       4                3   2                   1                            0

                                                                                            FMT               EPRES

Access                                                                                      R                            R

Reset                                                                                       1                            0

        Bits 31:12 – ADDOFF[19:0]: Address Offset

        The base address of the component, relative to the base address of this ROM table.

        Bit 1 – FMT: Format

        Always reads as '1', indicating a 32-bit ROM table.

        Bit 0 – EPRES: Entry Present

        This bit indicates whether an entry is present at this location in the ROM table.

        This bit is set at power-up if the device is not protected indicating that the entry is not present.

        This bit is cleared at power-up if the device is not protected indicating that the entry is present.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                          87

                                                                        Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.11. CoreSight ROM Table Entry 1

        Name:     ENTRY1

        Offset:   0x1004

        Reset:    0xXXXXX00X

        Property: PAC Write-Protection

         

Bit        31             30               29      28                     27  26            25                                 24

                                                   ADDOFF[19:12]

Access     R              R                R       R                      R   R             R                                  R

Reset      0              0                0       0                      0   0             0                                  0

Bit        23             22               21      20                     19  18            17                                 16

                                                            ADDOFF[11:4]

Access     R              R                R       R                      R   R             R                                  R

Reset      0              0                0       0                      0   0             0                                  0

Bit        15             14               13      12                     11  10            9                                  8

                              ADDOFF[3:0]

Access     R              R                R       R

Reset      0              0                0       0

Bit        7              6                5       4                      3   2             1                                  0

                                                                                            FMT               EPRES

Access                                                                                      R                                  R

Reset                                                                                       1                                  0

        Bits 31:12 – ADDOFF[19:0]: Address Offset

        The base address of the component, relative to the base address of this ROM table.

        Bit 1 – FMT: Format

        Always read as '1', indicating a 32-bit ROM table.

        Bit 0 – EPRES: Entry Present

        This bit indicates whether an entry is present at this location in the ROM table.

        This bit is set at power-up if the device is not protected indicating that the entry is not present.

        This bit is cleared at power-up if the device is not protected indicating that the entry is present.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                88

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.12. CoreSight ROM Table End

        Name:     END

        Offset:   0x1008

        Reset:    0x00000000

        Property: -

         

Bit        31             30       29           28              27     26  25                                           24

                                                    END[31:24]

Access     R              R        R            R               R      R   R                                            R

Reset      0              0        0            0               0      0   0                                            0

Bit        23             22       21           20              19     18  17                                           16

                                                    END[23:16]

Access     R              R        R            R               R      R   R                                            R

Reset      0              0        0            0               0      0   0                                            0

Bit        15             14       13           12              11     10  9                                            8

                                                    END[15:8]

Access     R              R        R            R               R      R   R                                            R

Reset      0              0        0            0               0      0   0                                            0

Bit        7              6        5            4               3      2   1                                            0

                                                    END[7:0]

Access     R              R        R            R               R      R   R                                            R

Reset      0              0        0            0               0      0   0                                            0

        Bits 31:0 – END[31:0]: End Marker

        Indicates the end of the CoreSight ROM  table entries.

                                                Atmel SAM D20E      /  SAM D20G / SAM D20J [DATASHEET]                      89

                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.13. CoreSight ROM Table Memory Type

        Name:     MEMTYPE

        Offset:   0x1FCC

        Reset:    0x0000000X

        Property: -

         

Bit        31             30              29  28  27  26  25                                                  24

Access

Reset

Bit        23             22              21  20  19  18  17                                                  16

Access

Reset

Bit        15             14              13  12  11  10  9                                                          8

Access

Reset

Bit        7              6               5   4   3   2   1                                                          0

                                                                                                              SMEMP

Access                                                                                                               R

Reset                                                                                                                0

        Bit 0 – SMEMP: System Memory Present

        This bit indicates whether system memory is present on the bus that connects to the ROM table.

        This bit is set at power-up if the device is not protected, indicating that the system memory is accessible

        from a debug adapter.

        This bit is cleared at power-up if the device is protected, indicating that the system memory is not

        accessible from a debug adapter.

                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                          90

                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.14. Peripheral Identification 4

        Name:      PID4

        Offset:    0x1FD0

        Reset:     0x00000000

        Property: -

         

Bit        31              30             29  28                  27  26                           25                  24

Access

Reset

Bit        23              22             21  20                  19  18                           17                  16

Access

Reset

Bit        15              14             13  12                  11  10                           9                   8

Access

Reset

Bit             7          6              5   4                   3                 2              1                   0

                               FKBC[3:0]                                               JEPCC[3:0]

Access          R          R              R   R                   R                 R              R                   R

Reset           0          0              0   0                   0                 0              0                   0

        Bits 7:4 – FKBC[3:0]: 4KB Count

        These bits will always return zero when read, indicating  that this debug component occupies   one  4KB

        block.

        Bits 3:0 – JEPCC[3:0]: JEP-106 Continuation Code

        These bits will always return zero when read, indicating  an Atmel device.

                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                             91

                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.15. Peripheral Identification 0

        Name:      PID0

        Offset:    0x1FE0

        Reset:     0x00000000

        Property: -

         

Bit        31              30          29         28                   27        26                 25                            24

Access

Reset

Bit        23              22          21         20                   19        18                 17                            16

Access

Reset

Bit        15              14          13         12                   11        10                 9                             8

Access

Reset

Bit        7               6           5          4                    3         2                  1                             0

                                                     PARTNBL[7:0]

Access     R               R           R          R                    R         R                  R                             R

Reset      0               0           0          0                    0         0                  0                             0

        Bits 7:0 – PARTNBL[7:0]: Part Number Low

        These bits will always return 0xD0 when read, indicating that      this  device implements  a DSU  module

        instance.

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                    92

                                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.16. Peripheral Identification 1

        Name:       PID1

        Offset:     0x1FE4

        Reset:      0x000000FC

        Property: -

         

Bit        31               30                29  28   27                26               25                              24

Access

Reset

Bit        23               22                21  20   19                18               17                              16

Access

Reset

Bit        15               14                13  12   11                10               9                               8

Access

Reset

Bit             7           6                 5     4  3                 2                1                               0

                                JEPIDCL[3:0]                                PARTNBH[3:0]

Access     R                R                 R     R  R                 R                R                               R

Reset           1           1                 1     1  1                 1                0                               0

        Bits 7:4 –  JEPIDCL[3:0]: Low part of the JEP-106 Identity Code

        These bits   will always return 0xF when read, indicating a Atmel device (Atmel JEP-106 identity code                 is

        0x1F).

        Bits 3:0 –  PARTNBH[3:0]: Part Number High

        These bits   will always return 0xC when read, indicating that this device implements a DSU module

        instance.

                                                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                              93

                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.17. Peripheral Identification 2

        Name:      PID2

        Offset:    0x1FE8

        Reset:     0x00000009

        Property: -

         

Bit        31              30                29      28      27    26                     25                        24

Access

Reset

Bit        23              22                21      20      19    18                     17                        16

Access

Reset

Bit        15              14                13      12      11    10                     9                         8

Access

Reset

Bit             7          6                 5       4       3     2                      1                         0

                              REVISION[3:0]                  JEPU                         JEPIDCH[2:0]

Access     R               R                 R       R       R     R                      R                         R

Reset           0          0                 0       0       1     0                      0                         1

        Bits 7:4 – REVISION[3:0]: Revision Number

        Revision of the peripheral. Starts at 0x0 and increments by one at both major and minor revisions.

        Bit 3 – JEPU: JEP-106 Identity Code is used

        This bit will always return one when read, indicating that JEP-106 code is used.

        Bits 2:0 – JEPIDCH[2:0]: JEP-106 Identity Code High

        These bits will always return 0x1 when read, indicating an Atmel device (Atmel JEP-106 identity code            is

        0x1F).

                                                     Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       94

                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.18. Peripheral Identification 3

        Name:     PID3

        Offset:   0x1FEC

        Reset:    0x00000000

        Property: -

         

Bit        31             30               29         28          27       26              25                               24

Access

Reset

Bit        23             22               21         20          19       18              17                               16

Access

Reset

Bit        15             14               13         12          11       10              9                                8

Access

Reset

Bit        7              6                5          4           3        2               1                                0

                              REVAND[3:0]                                     CUSMOD[3:0]

Access     R              R                R          R           R        R               R                                R

Reset      0              0                0          0           0        0               0                                0

        Bits 7:4 – REVAND[3:0]: Revision Number

        These bits will always return 0x0 when read.

        Bits 3:0 – CUSMOD[3:0]: ARM CUSMOD

        These bits will always return 0x0 when read.

                                                      Atmel  SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                      95

                                                                           Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.19.  Component Identification 0

           Name:     CID0

           Offset:   0x1FF0

           Reset:    0x00000000

           Property: -

            

Bit           31             30        29                28  27              26  25                                           24

Access

Reset

Bit           23             22        21                20  19              18  17                                           16

Access

Reset

Bit           15             14        13                12  11              10  9                                            8

Access

Reset

Bit           7              6         5                 4   3               2   1                                            0

                                                         PREAMBLEB0[7:0]

Access        R              R         R                 R   R               R   R                                            R

Reset         0              0         0                 0   0               0   0                                            0

           Bits 7:0 – PREAMBLEB0[7:0]: Preamble Byte 0

           These bits will always return 0xD when read.

                                                         Atmel SAM D20E   /  SAM D20G / SAM D20J [DATASHEET]                      96

                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.20. Component Identification 1

        Name:     CID1

        Offset:   0x1FF4

        Reset:    0x00000000

        Property: -

         

Bit        31             30               29         28  27  26                                 25            24

Access

Reset

Bit        23             22               21         20  19  18                                 17            16

Access

Reset

Bit        15             14               13         12  11  10                                 9             8

Access

Reset

Bit        7              6                5          4   3   2                                  1             0

                              CCLASS[3:0]                     PREAMBLE[3:0]

Access     R              R                R          R   R   R                                  R             R

Reset      0              0                0          0   0   0                                  0             0

        Bits 7:4 – CCLASS[3:0]: Component Class

        These bits will always return 0x1 when read indicating that this ARM CoreSight component     is  ROM table

        (refer to the ARM Debug Interface v5 Architecture Specification at http://www.arm.com).

        Bits 3:0 – PREAMBLE[3:0]: Preamble

        These bits will always return 0x0 when read.

                                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]             97

                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.21.  Component Identification 2

           Name:     CID2

           Offset:   0x1FF8

           Reset:    0x00000000

           Property: -

            

Bit           31             30        29                 28  27              26  25                                           24

Access

Reset

Bit           23             22        21                 20  19              18  17                                           16

Access

Reset

Bit           15             14        13                 12  11              10  9                                            8

Access

Reset

Bit           7              6         5                  4   3               2   1                                            0

                                                          PREAMBLEB2[7:0]

Access        R              R         R                  R   R               R   R                                            R

Reset         0              0         0                  0   0               0   0                                            0

           Bits 7:0 – PREAMBLEB2[7:0]: Preamble Byte 2

           These bits will always return 0x05 when read.

                                                          Atmel SAM D20E   /  SAM D20G / SAM D20J [DATASHEET]                      98

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
13.13.22.  Component Identification 3

           Name:     CID3

           Offset:   0x1FFC

           Reset:    0x00000000

           Property: -

            

Bit           31             30        29                 28  27              26  25                                           24

Access

Reset

Bit           23             22        21                 20  19              18  17                                           16

Access

Reset

Bit           15             14        13                 12  11              10  9                                            8

Access

Reset

Bit           7              6         5                  4   3               2   1                                            0

                                                          PREAMBLEB3[7:0]

Access        R              R         R                  R   R               R   R                                            R

Reset         0              0         0                  0   0               0   0                                            0

           Bits 7:0 – PREAMBLEB3[7:0]: Preamble Byte 3

           These bits will always return 0xB1 when read.

                                                          Atmel SAM D20E   /  SAM D20G / SAM D20J [DATASHEET]                      99

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
14.    Clock System

       This chapter summarizes the clock distribution and terminology in the SAM D20 device. It will not explain

       every detail of its configuration. For in-depth documentation, see the respective peripherals descriptions

       and the Generic Clock documentation.

       Related Links

       GCLK - Generic Clock Controller on page 108

14.1.  Clock Distribution

       Figure 14-1. Clock distribution

                                                GCLK_DFLL48M_REF                       PM

                              GCLK                                          GCLK_MAIN        Main Clock

                                                       Generic Clock                         Controller

          XOSC                GCLK Generator 0         Multiplexer 0

          OSCULP32K                                    (DFLL48M Reference)

          OSC32K              GCLK Generator 1         Generic Clock                 Peripheral 0    AHB/APB System Clocks

          XOSCP32K                                     Multiplexer 1        Generic

          OSC8M               GCLK Generator x         Generic Clock        Clocks

          DFLL48M                                      Multiplexer y                 Peripheral z

       The clock system on the SAM D20 consists of:

       •  Clock sources, controlled by SYSCTRL

          –      A clock source provides a time base that is used by other components, such as Generic

                 Clock Generators. Example clock sources are the internal 8MHz oscillator (OSC8M), External

                 crystal oscillator (XOSC) and the Digital frequency locked loop (DFLL48M).

       •  Generic Clock Controller (GCLK) which controls the clock distribution system, made up of:

          •        Generic Clock Generators: These are programmable prescalers that can use any of the

                   system clock sources as a time base. The Generic Clock Generator 0 generates the clock

                   signal GCLK_MAIN, which is used by the Power Manager, which in turn generates

                   synchronous clocks.

          •        Generic Clocks: These are clock signals generated by Generic Clock Generators and output

                   by the Generic Clock Multiplexer, and serve as clocks for the peripherals of the system.

                   Multiple instances of a peripheral will typically have a separate Generic Clock for each

                   instance. Generic Clock 0 serves as the clock source for the DFLL48M clock input (when

                   multiplying another clock source).

       •  Power Manager (PM)

          •        The PM generates and controls the synchronous clocks on the system. This includes the

                   CPU, bus clocks (APB, AHB) as well as the synchronous (to the CPU) user interfaces of the

                   peripherals. It contains clock masks that can turn on/off the user interface of a peripheral as

                   well as prescalers for the CPU and bus clocks.

       The next figure shows an example where SERCOM0 is clocked by the DFLL48M in open loop mode. The

       DFLL48M is enabled, the Generic Clock Generator 1 uses the DFLL48M as its clock source and feeds

       into Peripheral Channel 20. The Generic Clock 20, also called GCLK_SERCOM0_CORE, is connected to

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                      100

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           SERCOM0. The SERCOM0 interface, clocked by CLK_SERCOM0_APB, has been unmasked in the

           APBC Mask register in the PM.

           Figure 14-2. Example of SERCOM clock

                                                                                            PM

                                                                                            Synchronous Clock

                                                                                                         Controller

                             GCLK                                                     CLK_SERCOM0_APB

           SYSCTRL

           DFLL48M           Generic Clock       Generic Clock           GCLK_SERCOM0_CORE               SERCOM 0

                             Generator 1         Multiplexer 20

14.2.      Synchronous and Asynchronous Clocks

           As the CPU and the peripherals can be in different clock domains, i.e. they are clocked from different

           clock sources and/or with different clock speeds, some peripheral accesses by the CPU need to be

           synchronized. In this case the peripheral includes a SYNCBUSY status register that can be used to check

           if a sync operation is in progress.

           For a general description, see Register Synchronization. Some peripherals have specific properties

           described in their individual sub-chapter “Synchronization”.

           In the datasheet, references to Synchronous Clocks are referring to the CPU and bus clocks, while

           asynchronous clocks are generated by the Generic Clock Controller (GCLK).

14.3.      Register Synchronization

           There are two different register synchronization schemes implemented on this device: common

           synchronizer register synchronization and distributed synchronizer register synchronization.

           The modules using a common synchronizer register synchronization are: GCLK, WDT, RTC, EIC, TC,

           ADC, AC and DAC.

           The modules adopting a distributed synchronizer register synchronization are: SERCOM USART,

           SERCOM SPI, SERCOM I2C.

14.3.1.    Common Synchronizer Register Synchronization

14.3.1.1.  Overview

           All peripherals are composed of one digital bus interface connected to the APB or AHB bus and running

           from a corresponding clock in the Main Clock domain, and one peripheral core running from the

           peripheral Generic Clock (GCLK).

           Communication between these clock domains must be synchronized. This mechanism is implemented in

           hardware, so the synchronization process takes place even if the peripheral generic clock is running from

           the same clock source and on the same frequency as the bus interface.

           All registers in the bus interface are accessible without synchronization. All registers in the peripheral core

           are synchronized when written. Some registers in the peripheral core are synchronized when read. Each

           individual register description will have the properties "Read-Synchronized" and/or "Write-Synchronized" if

           a register is synchronized.

                                                 Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                           101

                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           As shown in the figure below, the common synchronizer is used for all registers in one peripheral.

           Therefore, status register (STATUS) of each peripheral can be synchronized at a time.

           Figure 14-3. Synchronization

                                  Synchronous Domain                                       Asynchronous Domain

                                         (CLK_APB)                                         (generic clock)

                           Non Synced reg

                           INTFLAG                                           Sync          Write-Synced reg

           Peripheral bus                           SYNCBUSY

                           STATUS

                                                                                           Write-Synced reg

                           READREQ                                           Synchronizer

                                                                                           R/W-Synced reg

14.3.1.2.  Write-Synchronization

           Write-Synchronization is triggered by writing to a register in the peripheral clock domain. The

           Synchronization Busy bit in the Status register (STATUS.SYNCBUSY) will be set when the write-

           synchronization starts and cleared when the write-synchronization is complete. Refer to Synchronization

           Delay for details on the synchronization delay.

           When the write-synchronization is ongoing (STATUS.SYNCBUSY is one), any of the following actions will

           cause the peripheral bus to stall until the synchronization is complete:

           •               Writing a generic clock peripheral core register

           •               Reading a read-synchronized peripheral core register

           •               Reading the register that is being written (and thus triggered the synchronization)

                                                            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                102

                                                                                           Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           Peripheral core registers without read-synchronization will remain static once they have been written and

           synchronized, and can be read while the synchronization is ongoing without causing the peripheral bus to

           stall. APB registers can also be read while the synchronization is ongoing without causing the peripheral

           bus to stall.

14.3.1.3.  Read-Synchronization

           Reading a read-synchronized peripheral core register will cause the peripheral bus to stall immediately

           until the read-synchronization is complete. STATUS.SYNCBUSY will not be set. Refer to Synchronization

           Delay for details on the synchronization delay. Note that reading a read-synchronized peripheral core

           register while STATUS.SYNCBUSY is one will cause the peripheral bus to stall twice; first because of the

           ongoing synchronization, and then again because reading a read-synchronized core register will cause

           the peripheral bus to stall immediately.

14.3.1.4.  Completion of synchronization

           The user can either poll STATUS.SYNCBUSY or use the Synchronisation Ready interrupt (if available) to

           check when the synchronization is complete. It is also possible to perform the next read/write operation

           and wait, as this next operation will be started once the previous write/read operation is synchronized

           and/or complete.

14.3.1.5.  Read Request

           The read request functionality is only available to peripherals that have the Read Request register

           (READREQ) implemented. Refer to the register description of individual peripheral chapters for details.

           To avoid forcing the peripheral bus to stall when reading read-synchronized peripheral core registers, the

           read request mechanism can be used.

           Basic Read Request

           Writing a '1' to the Read Request bit in the Read Request register (READREQ.RREQ) will request read-

           synchronization of the register specified in the Address bits in READREQ (READREQ.ADDR) and set

           STATUS.SYNCBUSY. When read-synchronization is complete, STATUS.SYNCBUSY is cleared. The

           read-synchronized value is then available for reading without delay until READREQ.RREQ is written to '1'

           again.

           The address to use is the offset to the peripheral's base address of the register that should be

           synchronized.

           Continuous Read Request

           Writing a '1' to the Read Continuously bit in READREQ (READREQ.RCONT) will force continuous read-

           synchronization of the register specified in READREQ.ADDR. The latest value is always available for

           reading without stalling the bus, as the synchronization mechanism is continuously synchronizing the

           given value.

           SYNCBUSY is set for the first synchronization, but not for the subsequent synchronizations. If another

           synchronization is attempted, i.e. by executing a write-operation of a write-synchronized register, the read

           request will be stopped, and will have to be manually restarted.

           Note: 

           The continuous read-synchronization is paused in sleep modes where the generic clock is not running.

           This means that a new read request is required if the value is needed immediately after exiting sleep.

14.3.1.6.  Enable Write-Synchronization

           Writing to the Enable bit in the Control register (CTRL.ENABLE) will also trigger write-synchronization and

           set STATUS.SYNCBUSY. CTRL.ENABLE will read its new value immediately after being written. The

           Synchronisation Ready interrupt (if available) cannot be used for Enable write-synchronization.

                                                     Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         103

                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           When the enable write-synchronization is ongoing (STATUS.SYNCBUSY is one), attempt to do any of the

           following will cause the peripheral bus to stall until the enable synchronization is complete:

           •  Writing a peripheral core register

           •  Writing an APB register

           •  Reading a read-synchronized peripheral core register

           APB registers can be read while the enable write-synchronization is ongoing without causing the

           peripheral bus to stall.

14.3.1.7.  Software Reset Write-Synchronization

           Writing a '1' to the Software Reset bit in CTRL (CTRL.SWRST) will also trigger write-synchronization and

           set STATUS.SYNCBUSY. When writing a '1' to the CTRL.SWRST bit it will immediately read as '1'.

           CTRL.SWRST and STATUS.SYNCBUSY will be cleared by hardware when the peripheral has been

           reset. Writing a zero to the CTRL.SWRST bit has no effect. The Synchronisation Ready interrupt (if

           available) cannot be used for Software Reset write-synchronization.

           When the software reset is in progress (STATUS.SYNCBUSY and CTRL.SWRST are '1'), attempt to do

           any of the following will cause the peripheral bus to stall until the Software Reset synchronization and the

           reset is complete:

           •  Writing a peripheral core register

           •  Writing an APB register

           •  Reading a read-synchronized register

           APB registers can be read while the software reset is being write-synchronized without causing the

           peripheral bus to stall.

14.3.1.8.  Synchronization Delay

           The synchronization will delay write and read accesses by a certain amount. This delay D is within the

           range of:

           5 × GCLK + 2 × APB < < 6 × GCLK + 3 × APB

           Where GCLK is the period of the generic clock and APB is the period of the peripheral bus clock. A

           normal peripheral bus register access duration is 2 × APB.

14.3.2.    Distributed Synchronizer Register Synchronization

14.3.2.1.  Overview

           All peripherals are composed of one digital bus interface connected to the APB or AHB bus and running

           from a corresponding clock in the Main Clock domain, and one peripheral core running from the

           peripheral Generic Clock (GCLK).

           Communication between these clock domains must be synchronized. This mechanism is implemented in

           hardware, so the synchronization process takes place even if the peripheral generic clock is running from

           the same clock source and on the same frequency as the bus interface.

           All registers in the bus interface are accessible without synchronization. All registers in the peripheral core

           are synchronized when written. Some registers in the peripheral core are synchronized when read.

           Registers that need synchronization has this denoted in each individual register description.

14.3.2.2.  General Write synchronization

           Write-Synchronization is triggered by writing to a register in the peripheral clock domain. The respective

           bit in the Synchronization Busy register (SYNCBUSY) will be set when the write-synchronization starts

           and cleared when the write-synchronization is complete. Refer to Synchronization Delay for details on the

           synchronization delay.

                                                            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                     104

                                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           When write-synchronization is ongoing for a register, any subsequent write attempts to this      register     will  be

           discarded, and an error will be reported.

           Example:

           REGA, REGB are 8-bit peripheral core registers. REGC is 16-bit peripheral core register.

           Offset                                           Register

           0x00                                             REGA

           0x01                                             REGB

           0x02                                             REGC

           0x03

           Synchronization is per register, so multiple registers can be synchronized in parallel. Consequently, after

           REGA (8-bit access) was written, REGB (8-bit access) can be written immediately without error.

           REGC (16-bit access) can be written without affecting REGA or REGB. If REGC is written to in two

           consecutive 8-bit accesses without waiting for synchronization, the second write attempt will be discarded

           and an error is generated.

           A 32-bit access to offset 0x00 will write all three registers. Note that REGA, REGB and REGC can be

           updated at different times because of independent write synchronization.

14.3.2.3.  General read synchronization

           Read-synchronized registers are synchronized when the register value is updated. During

           synchronization the corresponding bit in SYNCBUSY will be set. Reading a read-synchronized register

           will return its value immediately and the corresponding bit in SYNCBUSY will not be set.

14.3.2.4.  Completion of synchronization

           In order to check if synchronization is complete, the user can either poll the relevant bits in SYNCBUSY

           or use the Synchronisation Ready interrupt (if available). The Synchronization Ready interrupt flag will be

           set when all ongoing synchronizations are complete, i.e. when all bits in SYNCBUSY are '0'.

14.3.2.5.  Enable Write-Synchronization

           Setting the Enable bit in a module's Control register (CTRL.ENABLE) will also trigger write-

           synchronization and set SYNCBUSY.ENABLE. CTRL.ENABLE will read its new value immediately after

           being written. SYNCBUSY.ENABLE will be cleared by hardware when the operation is complete. The

           Synchronisation Ready interrupt (if available) cannot be used for Enable write-synchronization.

14.3.2.6.  Software Reset Write-Synchronization

           Setting the Software Reset bit in CTRLA (CTRLA.SWRST=1) will trigger write-synchronization and set

           SYNCBUSY.SWRST. When writing a ‘1’ to the CTRLA.SWRST bit it will immediately read as ‘1’.

           CTRL.SWRST and SYNCBUSY.SWRST will be cleared by hardware when the peripheral has been reset.

           Writing a '0' to the CTRL.SWRST bit has no effect. The Ready interrupt (if available) cannot be used for

           Software Reset write-synchronization.

14.3.2.7.  Synchronization Delay

           The synchronization will delay write and read accesses by a certain amount. This delay D is within the

           range of:

           5 × GCLK + 2 × APB < < 6 × GCLK + 3 × APB

           Where GCLK is the period of the generic clock and APB is the period of the peripheral bus clock. A

           normal peripheral bus register access duration is 2 × APB.

                                                            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]             105

                                                                        Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
14.4.  Enabling a Peripheral

       In order to enable a peripheral that is clocked by a Generic Clock, the following parts of the system needs

       to be configured:

       •  A running Clock Source.

       •  A clock from the Generic Clock Generator must be configured to use one of the running Clock

          Sources, and the Generator must be enabled.

       •  The Generic Clock Multiplexer that provides the Generic Clock signal to the peripheral must be

          configured to use a running Generic Clock Generator, and the Generic Clock must be enabled.

       •  The user interface of the peripheral needs to be unmasked in the PM. If this is not done the

          peripheral registers will read all 0’s and any writing attempts to the peripheral will be discarded.

14.5.  Disabling a Peripheral

       When disabling a peripheral and if a pin change interrupt is enabled on pins driven by the respective

       peripheral, a wake condition may be generated. If this happen the interrupt flag will not be set. As a

       consequence the system will not be able to identify the wake source. To avoid this, the interrupt enable

       register of the peripheral must be cleared (or the Nested Vectored Interrupt Controller (NVIC) Enable for

       the peripheral must be cleared) before disabling the peripheral.

       Related Links

       Nested Vector Interrupt Controller on page 41

14.6.  On-demand, Clock Requests

       Figure 14-4. Clock request routing

                          Clock request  Generic Clock  Clock request    Generic Clock  Clock request      Peripheral

          DFLL48M                        Generator                       Multiplexer

          ENABLE                           GENEN                         CLKEN                             ENABLE

          RUNSTDBY                         RUNSTDBY                                                    RUNSTDBY

          ONDEMAND

       All clock sources in the system can be run in an on-demand mode: the clock source is in a stopped state

       unless a peripheral is requesting the clock source. Clock requests propagate from the peripheral, via the

       GCLK, to the clock source. If one or more peripheral is using a clock source, the clock source will be

       started/kept running. As soon as the clock source is no longer needed and no peripheral has an active

       request, the clock source will be stopped until requested again.

       The clock request can reach the clock source only if the peripheral, the generic clock and the clock from

       the Generic Clock Generator in-between are enabled. The time taken from a clock request being asserted

       to the clock source being ready is dependent on the clock source startup time, clock source frequency as

       well as the divider used in the Generic Clock Generator. The total startup time Tstart from a clock request

       until the clock is available for the peripheral is between:

       Tstart_max = Clock source startup time + 2 × clock source periods + 2 × divided clock source periods

       Tstart_min = Clock source startup time + 1 × clock source period + 1 × divided clock source period

       The time between the last active clock request stopped and the clock is shut down, Tstop, is between:

       Tstop_min = 1 × divided clock source period + 1 × clock source period

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       106

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
       Tstop_max = 2 × divided clock source periods + 2 × clock source periods

       The On-Demand function can be disabled individually for each clock source by clearing the ONDEMAND

       bit located in each clock source controller. Consequently, the clock will always run whatever the clock

       request status is. This has the effect of removing the clock source startup time at the cost of power

       consumption.

       The clock request mechanism can be configured to work in standby mode by setting the RUNSDTBY bits

       of the modules, see Figure 14-4.

14.7.  Power Consumption vs. Speed

       When targeting for either a low-power or a fast acting system, some considerations have to be taken into

       account due to the nature of the asynchronous clocking of the peripherals:

       If clocking a peripheral with a very low clock, the active power consumption of the peripheral will be lower.

       At the same time the synchronization to the synchronous (CPU) clock domain is dependent on the

       peripheral clock speed, and will take longer with a slower peripheral clock. This will cause worse

       response times and longer synchronization delays.

14.8.  Clocks after Reset

       On any reset the synchronous clocks start to their initial state:

       •  OSC8M is enabled and divided by 8

       •  Generic Generator 0 uses OSC8M as source and generates GCLK_MAIN

       •  CPU and BUS clocks are undivided

       On a Power Reset, the GCLK module starts to its initial state:

       •  All Generic Clock Generators are disabled except

          –  Generator 0 is using OSC8M as source without division and generates GCLK_MAIN

          –  Generator 2 uses OSCULP32K as source without division

       •  All Generic Clocks are disabled except:

          –  WDT Generic Clock uses the Generator 2 as source

       On a User Reset the GCLK module starts to its initial state, except for:

       •  Generic Clocks that are write-locked , i.e., the according WRTLOCK is set to 1 prior to Reset or

          WDT Generic Clock if the WDT Always-On at power on bit set in the NVM User Row

       •  Generic Clock is dedicated to the RTC if the RTC Generic Clock is enabled

       On any reset the clock sources are reset to their initial state except the 32KHz clock sources which are

       reset only by a power reset.

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                        107

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.    GCLK - Generic Clock Controller

15.1.  Overview

       Depending on the application, peripherals may require specific clock frequencies to operate correctly. The

       Generic Clock controller GCLK provides nine Generic Clock Generators that can provide a wide range of

       clock frequencies.

       Generators can be set to use different external and internal oscillators as source. The clock of each

       Generator can be divided. The outputs from the Generators are used as sources for the Generic Clock

       Multiplexers, which provide the Generic Clock (GCLK_PERIPHERAL) to the peripheral modules, as

       shown in Generic Clock Controller Block Diagram. The number of Peripheral Clocks depends on how

       many peripherals the device has.

       Note:  The Generator 0 is always the direct source of the GCLK_MAIN signal.

15.2.  Features

       •  Provides Generic Clocks

       •  Wide frequency range

       •  Clock source for the generator can be changed on the fly

15.3.  Block Diagram

       The generation of Peripheral Clock signals (GCLK_PERIPHERAL)                    and  the Main Clock (GCLK_MAIN)

       can be seen in the figure below.

       Figure 15-1. Device Clocking Diagram

                           GENERIC CLOCK CONTROLLER

          SYSCTRL                        Clock Generator

          XOSC

          OSCULP32K                                         Generic Clock Multiplexer

          OSC32K

          XOSC32K                                                                           GCLK_PERIPHERAL

          OSC8M                          Clock                      Clock

          DFLL48M                        Divider &                  Gate                                     PERIPHERALS

                                         Masker

       GCLK_IO

                                                                                            GCLK_MAIN        PM

       The GCLK block diagram is shown in the next figure.

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                              108

                                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         Figure 15-2. Generic  Clock Controller Block Diagram(1)

                                         Clock Generator 0                                                GCLK_MAIN

         Clock Sources                      Clock           GCLKGEN[0]                                        GCLK_IO[0]

                                            Divider &                        Generic Clock Multiplexer 0      (I/O output)

         GCLK_IO[0]                         Masker

         (I/O input)                                                                          Clock       GCLK_PERIPHERAL[0]

                                                                                              Gate

                               Generic Clock Generator 1                                                      GCLK_IO[1]

                                                                             Generic Clock Multiplexer 1      (I/O output)

                                            Clock           GCLKGEN[1]

         GCLK_IO[1]                         Divider &                                         Clock       GCLK_PERIPHERAL[1]

         (I/O input)                        Masker                                            Gate

                               Generic Clock Generator n

                                                                                                              GCLK_IO[n]

                                            Clock           GCLKGEN[n]                                        (I/O output)

                                            Divider &

         GCLK_IO[n]                         Masker                           Generic Clock Multiplexer m

         (I/O input)                                                                                      GCLK_PERIPHERAL[m]

                                                                                              Clock

                                                                                              Gate

                                                                         GCLKGEN[n:0]

         Note:  1. If GENCTRL.SRC=0x01(GCLKIN),             the GCLK_IO is set as an input.

15.4.    Signal Description

         Table 15-1. Signal Description

         Signal Name           Type                         Description

         GCLK_IO[7:0]          Digital I/O                  Clock source for Generators when input

                                                            Generic Clock signal when output

         Refer to PORT Function Multiplexing table in I/O Multiplexing and Considerations for             details    on  the            pin

         mapping for this peripheral.

         Note:  One signal can be mapped on several pins.

         Related Links

         I/O Multiplexing and Considerations on page 27

15.5.    Product Dependencies

         In order to use this peripheral, other parts of the system must be  configured       correctly,  as  described                 below.

15.5.1.  I/O Lines

         Using the GCLK I/O lines requires the I/O pins to be configured.

         Related Links

         PORT - I/O Pin Controller on page 320

15.5.2.  Power Management

         The GCLK can operate in all sleep modes, if required.

                                                            Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                 109

                                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         Related Links

         PM – Power Manager on page 129

15.5.3.  Clocks

         The GCLK bus clock (CLK_GCLK_APB) can be enabled and disabled in the Power Manager, and the

         default state of CLK_GCLK_APB can be found in the Peripheral Clock Masking section of PM – Power

         Manager.

         Related Links

         PM – Power Manager on page 129

         APBAMASK on page 150

15.5.4.  Interrupts

         Not applicable.

15.5.5.  Events

         Not applicable.

15.5.6.  Debug Operation

         Not applicable.

         Related Links

         FREQCORR on page 268

15.5.7.  Register Access Protection

         All registers with write-access can be optionally write-protected by the Peripheral Access Controller

         (PAC).

         Note:  Optional write-protection is indicated by the "PAC Write-Protection" property in the register

         description.

         When the CPU is halted in debug mode, all write-protection is automatically disabled. Write-protection

         does not apply for accesses through an external debugger.

         Related Links

         PAC - Peripheral Access Controller on page 45

15.5.8.  Analog Connections

         Not applicable.

15.6.    Functional Description

15.6.1.  Principle of Operation

         The GCLK module is comprised of eight Generic Clock Generators (Generators) sourcing m Generic

         Clock Multiplexers.

         A clock source selected as input to a Generator can either be used directly, or it can be prescaled in the

         Generator. A generator output is used as input to one or more the Generic Clock Multiplexers to provide a

         peripheral (GCLK_PERIPHERAL). A generic clock can act as the clock to one or several of peripherals.

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]             110

                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.6.2.    Basic Operation

15.6.2.1.  Initialization

           Before a Generator is enabled, the corresponding clock source should be enabled. The Peripheral clock

           must be configured as outlined by the following steps:

           1.  The Generic Clock Generator division factor must be set by performing a single 32-bit write to the

               Generic Clock Generator Division register (GENDIV):

               –           The Generic Clock Generator that will be selected as the source of the generic clock by

                           setting the ID bit group (GENDIV.ID).

               –           The division factor must be selected by the DIV bit group (GENDIV.DIV)

                           Note:  Refer to Generic Clock Generator Division register (GENDIV) for details.

           2.  The generic clock generator must be enabled by performing a single 32-bit write to the Generic

               Clock Generator Control register (GENCTRL):

               –           The Generic Clock Generator will be selected as the source of the generic clock by the ID bit

                           group (GENCTRL.ID)

               –           The Generic Clock generator must be enabled (GENCTRL.GENEN=1)

                           Note:  Refer to Generic Clock Generator Control register (GENCTRL) for details.

           3.  The generic clock must be configured by performing a single 16-bit write to the Generic Clock

               Control register (CLKCTRL):

               –           The Generic Clock that will be configured via the ID bit group (CLKCTRL.ID)

               –           The Generic Clock Generator used as the source of the generic clock by writing the GEN bit

                           group (CLKCTRL.GEN)

                           Note:  Refer to Generic Clock Control register (CLKCTRL) for details.

           Related Links

           CLKCTRL on page 119

           GENCTRL on page 122

           GENDIV on page 126

15.6.2.2.  Enabling, Disabling and Resetting

           The GCLK module has no enable/disable bit to enable or disable the whole module.

           The GCLK is reset by setting the Software Reset bit in the Control register (CTRL.SWRST) to 1. All

           registers in the GCLK will be reset to their initial state, except for Generic Clocks Multiplexer and

           associated Generators that have their Write Lock bit set to 1 (CLKCTRL.WRTLOCK). For further details,

           refer to Configuration Lock.

15.6.2.3.  Generic Clock Generator

           Each Generator (GCLK_GEN) can be set to run from one of eight different clock sources except

           GCLKGEN[1], which can be set to run from one of seven sources. GCLKGEN[1] is the only Generator

           that can be selected as source to other Generators but can not act as source to itself.

           Each generator GCLKGEN[x] can be connected to one specific pin GCLK_IO[x]. The GCLK_IO[x] can be

           set to act as source to GCLKGEN[x] or GCLK_IO[x] can be set up to output the clock generated by

           GCLKGEN[x].

           The selected source can be divided. Each Generator can be enabled or disabled independently.

           Each GCLKGEN clock signal can then be used as clock source for Generic Clock Multiplexers. Each

           Generator output is allocated to one or several Peripherals.

           GCLKGEN[0], is used as GCLK_MAIN for the synchronous clock controller inside the Power Manager.

                                                Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                          111

                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           Refer to PM-Power Manager for details on the synchronous clock generation.

           Figure 15-3. Generic Clock Generator

           Sources                                GCLKGENSRC

                                                                     0

                                                                                  GCLKGENSRC  Clock  GCLKGEN[x]

                                                                                              Gate

                                                  DIVIDER            1

           GCLK_IO[x]                                                                    GENCTRL.GENEN

                                     GENCTRL.SRC  GENCTRL.DIVSEL

                                                  GENDIV.DIV

           Related Links

           PM – Power Manager on page 129

15.6.2.4.  Enabling a Generic Clock Generator

           A Generator is enabled by setting the Generic Clock Generator Enable bit in the Generic Clock Generator

           Control register (GENCTRL.GENEN=1).

15.6.2.5.  Disabling a Generic Clock Generator

           A Generator is disabled by clearing GENCTRL.GENEN. When GENCTRL.GENEN=0, the GCLKGEN

           clock is disabled and clock gated.

15.6.2.6.  Selecting a Clock Source for the Generic Clock Generator

           Each Generator can individually select a clock source by setting the Source Select bit group in GENCTRL

           (GENCTRL.SRC).

           Changing from one clock source, for example A, to another clock source, B, can be done on the fly: If

           clock source B is not ready, the Generator will continue running with clock source A. As soon as clock

           source B is ready, however, the generic clock generator will switch to it. During the switching operation,

           the Generator holds clock requests to clock sources A and B and then releases the clock source A

           request when the switch is done.

           The available clock sources are device dependent (usually the crystal oscillators, RC oscillators, PLL and

           DFLL). Only GCLKGEN[1] can be used as a common source for all other generators except Generator 1.

15.6.2.7.  Changing Clock Frequency

           The selected source (GENCLKSRC) for a Generator can be divided by writing a division value in the

           Division Factor bit group in the Generic Clock Generator Division register (GENDIV.DIV). How the actual

           division factor is calculated is depending on the Divide Selection bit in GENCTRL (GENCTRL.DIVSEL), it

           can be interpreted in two ways by the integer divider.

           Note:  The number of DIV bits for each Generator is device dependent.

           Related Links

           GENDIV on page 126

           GENCTRL on page 122

15.6.2.8.  Duty Cycle

           When dividing a clock with an odd division factor, the duty-cycle will not be 50/50. Writing the Improve

           Duty Cycle bit in GENCTRL (GENCTRL.IDC=1) will result in a 50/50 duty cycle.

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                     112

                                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.6.2.9.  Generic Clock Output on I/O Pins

           Each Generator's output can be directed to a GCLK_IO pin. If the Output Enable bit in GENCTRL is '1'

           (GENCTRL.OE=1) and the Generator is enabled (GENCTRL.GENEN=1), the Generator requests its

           clock source and the GCLKGEN clock is output to a GCLK_IO pin. If GENCTRL.OE=0, GCLK_IO is set

           according to the Output Off Value bit. If the Output Off Value bit in GENCTRL (GENCTRL.OOV) is zero,

           the output clock will be low when generic clock generator is turned off. If GENCTRL.OOV=1, the output

           clock will be high when Generator is turned off.

           In standby mode, if the clock is output (GENCTRL.OE=1), the clock on the GCLK_IO pin is frozen to the

           OOV value if the Run In Standby bit in GENCTRL (GENCTRL.RUNSTDBY) is zero. If

           GENCTRL.RUNSTDBY=1, the GCLKGEN clock is kept running and output to GCLK_IO.

15.6.3.    Generic Clock

           Figure 15-4. Generic Clock Multiplexer

                          GCLKGEN[0]

                          GCLKGEN[1]

                          GCLKGEN[2]                         Clock                 GCLK_PERIPHERAL

                                                             Gate

                          GCLKGEN[n]                         CLKCTRL.CLKEN

                                             CLKCTRL.GEN

15.6.3.1.  Enabling a Generic Clock

           Before a generic clock is enabled, one of the Generators must be selected as the source for the generic

           clock by writing to CLKCTRL.GEN. The clock source selection is individually set for each generic clock.

           When a Generator has been selected, the generic clock is enabled by setting the Clock Enable bit in

           CLKCTRL (CLKCTRL.CLKEN=1). The CLKCTRL.CLKEN bit must be synchronized to the generic clock

           domain. CLKCTRL.CLKEN will continue to read as its previous state until the synchronization is

           complete.

15.6.3.2.  Disabling a Generic Clock

           A generic clock is disabled by writing CLKCTRL.CLKEN=0. The SYNCBUSY bit will be cleared when this

           write-synchronization is complete. CLKCTRL.CLKEN will stay in its previous state until the

           synchronization is complete. The generic clock is gated when disabled.

15.6.3.3.  Selecting a Clock Source for the Generic Clock

           When changing a generic clock source by writing to CLKCTRL.GEN, the generic clock must be disabled

           before being re-enabled it with the new clock source setting. This prevents glitches during the transition:

           1.  Write CLKCTRL.CLKEN=0

           2.  Assert that CLKCTRL.CLKEN reads '0'

           3.  Change the source of the generic clock by writing CLKCTRL.GEN

           4.  Re-enable the generic clock by writing CLKCTRL.CLKEN=1

15.6.3.4.  Configuration Lock

           The generic clock configuration can be locked for further write accesses by setting the Write Lock bit in

           the CLKCTRL register (CLKCTRL.WRTLOCK). All writes to the CLKCTRL register will be ignored. It can

           only be unlocked by a Power Reset.

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                113

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           The Generator source of a locked generic clock are also locked, too: The corresponding GENCTRL and

           GENDIV are locked, and can be unlocked only by a Power Reset.

           There is one exception concerning the GCLKGEN[0]. As it is used as GCLK_MAIN, it can not be locked.

           It is reset by any Reset and will start up in a known configuration. The software reset (CTRL.SWRST) can

           not unlock the registers.

15.6.4.    Additional Features

15.6.4.1.  Indirect Access

           The Generic Clock Generator Control and Division registers (GENCTRL and GENDIV) and the Generic

           Clock Control register (CLKCTRL) are indirectly addressed as shown in the next figure.

           Figure 15-5. GCLK Indirect Access

                                      User Interface                Generic Clock Generator [i]

                                      GENCTRL         GENCTRL.ID=i

                                                      GENDIV.ID=i         GENCTRL

                                      GENDIV                                          GENDIV

                                      CLKCTRL         CLKCTRL.ID=j  Generic Clock[j]

                                                                          CLKCTRL

           Writing these registers is done by setting the corresponding ID bit group. To read a register, the user must

           write the ID of the channel, i, in the corresponding register. The value of the register for the corresponding

           ID is available in the user interface by a read access.

           For example, the sequence to read the GENCTRL register of generic clock generator i is:

           1.  Do an 8-bit write of the i value to GENCTRL.ID

           2.  Read the value of GENCTRL

15.6.4.2.  Generic Clock Enable after Reset

           The Generic Clock Controller must be able to provide a generic clock to some specific peripherals after a

           reset. That means that the configuration of the Generators and generic clocks after Reset is device-

           dependent.

           Refer to GENCTRL.ID for details on GENCTRL reset.

           Refer to GENDIV.ID for details on GENDIV reset.

           Refer to CLKCTRL.ID for details on CLKCTRL reset.

           Related Links

           CLKCTRL on page 119

           GENCTRL on page 122

           GENDIV on page 126

15.6.5.    Sleep Mode Operation

15.6.5.1.  Sleep Walking

           The GCLK module supports the Sleep Walking feature. If the system is in a sleep mode where the

           Generic Clocks are stopped, a peripheral that needs its clock in order to execute a process must request

           it from the Generic Clock Controller.

                                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                 114

                                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           The Generic Clock Controller receives this request, determines which Generic Clock Generator is

           involved and which clock source needs to be awakened. It then wakes up the respective clock source,

           enables the Generator and generic clock stages successively, and delivers the clock to the peripheral.

15.6.5.2.  Run in Standby Mode

           In standby mode, the GCLK can continuously output the generator output to GCLK_IO.

           When set, the GCLK can continuously output the generator output to GCLK_IO.

           Refer to Generic Clock Output on I/O Pins for details.

15.6.6.    Synchronization

           Due to asynchronicity between the main clock domain and the peripheral clock domains, some registers

           need to be synchronized when written or read.

           When executing an operation that requires synchronization, the Synchronization Busy bit in the Status

           register (STATUS.SYNCBUSY) will be set immediately, and cleared when synchronization is complete.

           If an operation that requires synchronization is executed while STATUS.SYNCBUSY=1, the bus will be

           stalled. All operations will complete successfully, but the CPU will be stalled and interrupts will be pending

           as long as the bus is stalled.

           The following registers are synchronized when written:

           •  Generic Clock Generator Control register (GENCTRL)

           •  Generic Clock Generator Division register (GENDIV)

           •  Control register (CTRL)

           Required write-synchronization is denoted by the "Write-Synchronized" property in the register

           description.

           Related Links

           Register Synchronization on page 101

15.7.      Register Summary

Table 15-2. Register   Summary

Offset        Name        Bit

                          Pos.

0x0           CTRL        7:0                                                                                               SWRST

0x1           STATUS      7:0    SYNCBUSY

0x2           CLKCTRL     7:0                                                     ID[5:0]

0x3                       15:8   WRTLOCK   CLKEN                                                GEN[3:0]

0x4                       7:0                                                                     ID[3:0]

0x5        GENCTRL        15:8                                                          SRC[4:0]

0x6                       23:16                   RUNSTDBY         DIVSEL     OE           OOV             IDC              GENEN

0x7                       31:24

0x8                       7:0                                                                     ID[3:0]

0x9           GENDIV      15:8                                     DIV[7:0]

0xA                       23:16                                    DIV[15:8]

0xB                       31:24

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                  115

                                                                           Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.8.  Register Description

       Registers can be 8, 16, or 32 bits wide. Atomic 8-, 16-, and 32-bit accesses are supported. In addition,

       the 8-bit quarters and 16-bit halves of a 32-bit register, and the 8-bit halves of a 16-bit register can be

       accessed directly.

       Some registers require synchronization when read and/or written. Synchronization is denoted by the

       "Read-Synchronized" and/or "Write-Synchronized" property in each individual register description.

       Refer to Register Access Protection for details.

       Some registers are enable-protected, meaning they can only be written when the module is disabled.

       Enable-protection is denoted by the "Enable-Protected" property in each individual register description.

       Refer to Synchronization for details.

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]           116

                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.8.1.       Control

              Name:     CTRL

              Offset:   0x0

              Reset:    0x00

              Property: Write-Protected, Write-Synchronized

               

         Bit     7            6              5               4   3  2                          1                             0

                                                                                                             SWRST

Access                                                                                                                       R/W

Reset                                                                                                                        0

              Bit 0 – SWRST: Software Reset

              Writing a zero to this bit has no effect.

              Writing a one to this bit resets all registers in the GCLK to their initial state after a power reset, except       for

              generic clocks and associated generators that have their WRTLOCK bit in CLKCTRL read as one.

              Refer to GENCTRL.ID for details on GENCTRL reset.

              Refer to GENDIV.ID for details on GENDIV reset.

              Refer to CLKCTRL.ID for details on CLKCTRL reset.

              Due to synchronization, there is a delay from writing CTRL.SWRST until the reset is complete.

              CTRL.SWRST and STATUS.SYNCBUSY will both be cleared when the reset is complete.

              Value     Description

              0         There is no reset operation ongoing.

              1         There is a reset operation ongoing.

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                     117

                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.8.2.       Status

              Name:     STATUS

              Offset:   0x1

              Reset:    0x00

              Property: -

               

         Bit     7              6  5  4                      3  2                                      1         0

                 SYNCBUSY

Access           R

Reset            0

              Bit 7 – SYNCBUSY: Synchronization Busy Status

              This bit is cleared when the synchronization of registers between the clock domains is complete.

              This bit is set when the synchronization of registers between clock domains is started.

                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                              118

                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.8.3.       Generic Clock Control

              Name:     CLKCTRL

              Offset:   0x2

              Reset:    0x0000

              Property: Write-Protected

               

         Bit       15           14          13            12           11                    10             9                          8

                 WRTLOCK     CLKEN                                                                GEN[3:0]

Access             R/W          R/W                                    R/W                   R/W            R/W           R/W

Reset              0               0                                   0                     0              0                          0

         Bit       7               6        5             4            3                     2              1                          0

                                                                                    ID[5:0]

Access                                      R/W           R/W          R/W                   R/W            R/W           R/W

Reset                                       0             0            0                     0              0                          0

              Bit 15 – WRTLOCK: Write Lock

              When this bit is written, it will lock from further writes the generic clock pointed to by CLKCTRL.ID, the

              generic clock generator pointed to in CLKCTRL.GEN and the division factor used in the generic clock

              generator. It can only be unlocked by a power reset.

              One exception to this is generic clock generator 0, which cannot be locked.

              Value       Description

              0           The generic clock and the associated generic clock generator and division factor are not

                          locked.

              1           The generic clock and the associated generic clock generator and division factor are locked.

              Bit 14 – CLKEN: Clock Enable

              This bit is used to enable and disable a generic clock.

              Value       Description

              0           The generic clock is disabled.

              1           The generic clock is enabled.

              Bits 11:8 – GEN[3:0]: Generic Clock  Generator

              Table 15-3. Generic Clock Generator

              GEN[3:0]                Name                             Description

              0x0                     GCLKGEN0                         Generic clock  generator   0

              0x1                     GCLKGEN1                         Generic clock  generator   1

              0x2                     GCLKGEN2                         Generic clock  generator   2

              0x3                     GCLKGEN3                         Generic clock  generator   3

              0x4                     GCLKGEN4                         Generic clock  generator   4

              0x5                     GCLKGEN5                         Generic clock  generator   5

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                119

                                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
GEN[3:0]         Name                           Description

0x6              GCLKGEN6                       Generic clock generator 6

0x7              GCLKGEN7                       Generic clock generator 7

0x8-0xF          Reserved                       Reserved

Bits 5:0 – ID[5:0]: Generic Clock Selection ID

These bits select the generic clock that will be configured. The value of the ID bit group versus module

instance is shown in the table below.

A power reset will reset the CLKCTRL register for all IDs, including the RTC. If the WRTLOCK bit of the

corresponding ID is zero and the ID is not the RTC, a user reset will reset the CLKCTRL register for this

ID.

After a power reset, the reset value of the CLKCTRL register versus module instance is as shown in the

next table.

Table 15-4. Generic Clock Selection ID and CLKCTRL value after Power Reset

Module Instance  Reset Value after Power Reset

                 CLKCTRL.GEN           CLKCTRL.CLKEN                        CLKCTRL.WRTLOCK

RTC              0x00                  0x00                                 0x00

WDT              0x02                  0x01 if WDT Enable bit in NVM        0x01 if WDT Always-On bit in

                                       User Row written to one              NVM User Row written to one

                                       0x00 if WDT Enable bit in NVM        0x00 if WDT Always-On bit in

                                       User Row written to zero             NVM User Row written to zero

Others           0x00                  0x00                                 0x00

After a user reset, the reset value of the CLKCTRL register versus module instance is as shown in the

table below.

Table 15-5. Generic Clock Selection ID and CLKCTRL Value after User Reset

Module        Reset Value after a User Reset

Instance

              CLKCTRL.GEN              CLCTRL.CLKEN                               CLKCTRL.WRTLOCK

RTC           0x00 if WRTLOCK=0 and    0x00 if WRTLOCK=0 and CLKEN=0              No change

              CLKEN=0                  No change if WRTLOCK=1 or

              No change if WRTLOCK=1   CLKEN=1

              or CLKEN=1

WDT           0x02 if WRTLOCK=0        If WRTLOCK=0                               No change

              No change if WRTLOCK=1   0x01 if WDT Enable bit in NVM User

                                       Row written to one

                                       0x00 if WDT Enable bit in NVM User

                                       Row written to zero

                                       If WRTLOCK=1 no change

Others        0x00 if WRTLOCK=0        0x00 if WRTLOCK=0                          No change

              No change if WRTLOCK=1   No change if WRTLOCK=1

                                                Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                  120

                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value     Name                                       Description

0x00      GCLK_DFLL48M_REF                           DFLL48M Reference

0x01      GCLK_WDT                                   WDT

0x02      GCLK_RTC                                   RTC

0x03      GCLK_EIC                                   EIC

0x04      GCLK_EVSYS_CHANNEL_0                       EVSYS_CHANNEL_0

0x05      GCLK_EVSYS_CHANNEL_1                       EVSYS_CHANNEL_1

0x06      GCLK_EVSYS_CHANNEL_2                       EVSYS_CHANNEL_2

0x07      GCLK_EVSYS_CHANNEL_3                       EVSYS_CHANNEL_3

0x08      GCLK_EVSYS_CHANNEL_4                       EVSYS_CHANNEL_4

0x09      GCLK_EVSYS_CHANNEL_5                       EVSYS_CHANNEL_5

0x0A      GCLK_EVSYS_CHANNEL_6                       EVSYS_CHANNEL_6

0x0B      GCLK_EVSYS_CHANNEL_7                       EVSYS_CHANNEL_7

0x0C      GCLK_SERCOMx_SLOW                          SERCOMx_SLOW

0x0D      GCLK_SERCOM0_CORE                          SERCOM0_CORE

0x0E      GCLK_SERCOM1_CORE                          SERCOM1_CORE

0x0F      GCLK_SERCOM2_CORE                          SERCOM2_CORE

0x10      GCLK_SERCOM3_CORE                          SERCOM3_CORE

0x11      GCLK_SERCOM4_CORE                          SERCOM4_CORE

0x12      GCLK_SERCOM5_CORE                          SERCOM5_CORE

0x13      GCLK_TC0, GCLK_TC1                         TC0, TC1

0x14      GCLK_TC2, GCLK_TC3                         TC2, TC3

0x15      GCLK_TC4, GCLK_TC5                         TC4, TC5

0x16      GCLK_TC6, GCLK_TC7                         TC6, TC7

0x17      GCLK_ADC                                   ADC

0x18      GCLK_AC_DIG                                AC_DIG

0x19      GCLK_AC_ANA                                AC_ANA

0x1A      GCLK_DAC                                   DAC

0x1B      GCLK_PTC                                   PTC

0x1C-0x3  -                                          Reserved

F

                                Atmel  SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                  121

                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.8.4.       Generic Clock Generator Control

              Name:     GENCTRL

              Offset:   0x4

              Reset:    0x00000000

              Property: Write-Protected, Write-Synchronized

               

         Bit     31          30        29                    28           27   26                 25                            24

Access

Reset

         Bit     23          22        21                    20           19   18                 17                            16

                                       RUNSTDBY  DIVSEL                   OE   OOV                IDC                 GENEN

Access                                 R/W       R/W                      R/W  R/W                R/W                 R/W

Reset                                  0                     0            0    0                    0                           0

         Bit     15          14        13                    12           11   10                   9                           8

                                                                               SRC[4:0]

Access                                           R/W                      R/W  R/W                R/W                 R/W

Reset                                                        0            0    0                    0                           0

         Bit     7           6         5                     4            3    2                    1                           0

                                                                                         ID[3:0]

Access                                                                    R/W  R/W                R/W                 R/W

Reset                                                                     0    0                    0                           0

              Bit 21 – RUNSTDBY: Run in Standby

              This bit is used to keep the generic clock generator running when it is configured to be output to its

              dedicated GCLK_IO pin. If GENCTRL.OE is zero, this bit has no effect and the generic clock generator

              will only be running if a peripheral requires the clock.

              Value     Description

              0         The generic clock generator is stopped in standby and the GCLK_IO pin state (one or zero)

                        will be dependent on the setting in GENCTRL.OOV.

              1         The generic clock generator is kept running and output to its dedicated GCLK_IO pin during

                        standby mode.

              Bit 20 – DIVSEL: Divide Selection

              This bit is used to decide how the clock source used by the generic clock generator will be divided. If the

              clock source should not be divided, the DIVSEL bit must be zero and the GENDIV.DIV value for the

              corresponding generic clock generator must be zero or one.

              Value     Description

              0         The generic clock generator equals the clock source divided by GENDIV.DIV.

              1         The generic clock generator equals the clock source divided by 2^(GENDIV.DIV+1).

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       122

                                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Bit 19 – OE: Output Enable

This bit is used to enable output of the generated clock to GCLK_IO when GCLK_IO is not selected as a

source in the GENCLK.SRC bit group.

Value  Description

0      The generic clock generator is not output.

1      The generic clock generator is output to the corresponding GCLK_IO, unless the

       corresponding GCLK_IO is selected as a source in the GENCLK.SRC bit group.

Bit 18 – OOV: Output Off Value

This bit is used to control the value of GCLK_IO when GCLK_IO is not selected as a source in the

GENCLK.SRC bit group.

Value  Description

0      The GCLK_IO will be zero when the generic clock generator is turned off or when the OE bit

       is zero.

1      The GCLK_IO will be one when the generic clock generator is turned off or when the OE bit

       is zero.

Bit 17 – IDC: Improve Duty Cycle

This bit is used to improve the duty cycle of the generic clock generator when odd division factors are

used.

Value  Description

0      The generic clock generator duty cycle is not 50/50 for odd division factors.

1      The generic clock generator duty cycle is 50/50.

Bit 16 – GENEN: Generic Clock Generator Enable

This bit is used to enable and disable the generic clock generator.

Value  Description

0      The generic clock generator is disabled.

1      The generic clock generator is enabled.

Bits 12:8 – SRC[4:0]: Source Select

These bits define the clock source to be  used as the source for the generic  clock  generator,  as  shown            in

the table below.

Value  Name                               Description

0x00   XOSC                               XOSC oscillator output

0x01   GCLKIN                             Generator input pad

0x02   GCLKGEN1                           Generic clock generator 1 output

0x03   OSCULP32K                          OSCULP32K oscillator output

0x04   OSC32K                             OSC32K oscillator output

0x05   XOSC32K                            XOSC32K oscillator output

                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                            123

                                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value     Name                              Description

0x06      OSC8M                             OSC8M oscillator output

0x07      DFLL48M                           DFLL48M output

0x08-0x1  Reserved                          Reserved for future use

F

Bits 3:0 – ID[3:0]: Generic Clock Generator Selection

These bits select the generic clock generator that will be configured or read. The value of the ID bit group

versus which generic clock generator is configured is shown in the next table.

A power reset will reset the GENCTRL register for all IDs, including the generic clock generator used by

the RTC. If a generic clock generator ID other than generic clock generator 0 is not a source of a “locked”

generic clock or a source of the RTC generic clock, a user reset will reset the GENCTRL for this ID.

Values                                  Names                        Description

0x0                                     GCLKGEN0                     Generic clock generator            0

0x1                                     GCLKGEN0                     Generic clock generator            0

0x2                                     GCLKGEN0                     Generic clock generator            0

0x3                                     GCLKGEN0                     Generic clock generator            0

0x4                                     GCLKGEN0                     Generic clock generator            0

0x5                                     GCLKGEN0                     Generic clock generator            0

0x6                                     GCLKGEN0                     Generic clock generator            0

0x7                                     GCLKGEN0                     Generic clock generator            0

0x8-0xF                                 -                            Reserved for future use

After a power reset, the  reset  value  of  the GENCTRL register     is as shown in  the  next  table.

GCLK Generator ID                           Reset Value  after    a  Power Reset

0x00                                        0x00010600

0x01                                        0x00000001

0x02                                        0x00010302

0x03                                        0x00000003

0x04                                        0x00000004

0x05                                        0x00000005

0x06                                        0x00000006

0x07                                        0x00000007

After a user reset, the reset value of the GENCTRL register is as shown in the table below.

                                               Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       124

                                                                     Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
GCLK          Reset Value after a User Reset

Generator ID

0x00          0x00010600

0x01          0x00000001 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x02          0x00010302 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x03          0x00000003 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x04          0x00000004 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x05          0x00000005 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x06          0x00000006 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x07          0x00000007 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                   125

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
15.8.5.       Generic Clock Generator Division

              Name:     GENDIV

              Offset:   0x8

              Reset:    0x00000000

              Property: -

               

         Bit       31           30            29       28                 27        26                     25                   24

Access

Reset

         Bit       23           22            21       20                 19        18                     17                   16

                                                            DIV[15:8]

Access             R/W       R/W              R/W      R/W                R/W       R/W                    R/W         R/W

Reset              0            0             0        0                  0         0                      0                    0

         Bit       15           14            13       12                 11        10                     9                    8

                                                            DIV[7:0]

Access             R/W       R/W              R/W      R/W                R/W       R/W                    R/W         R/W

Reset              0            0             0        0                  0         0                      0                    0

         Bit       7            6             5        4                  3         2                      1                    0

                                                                                                  ID[3:0]

Access                                                                    R/W       R/W                    R/W         R/W

Reset                                                                     0         0                      0                    0

              Bits 23:8 – DIV[15:0]: Division Factor

              These bits apply a division on each selected generic clock generator. The number of DIV bits each

              generator has can be seen in the next table. Writes to bits above the specified number will be ignored.

              Generator                                     Division Factor Bits

              Generic clock generator 0                     8 division factor bits - DIV[7:0]

              Generic clock generator 1                     16 division factor bits - DIV[15:0]

              Generic clock generators 2                    5 division factor bits - DIV[4:0]

              Generic clock generators 3 - 8                8 division factor bits - DIV[7:0]

              Bits 3:0 – ID[3:0]: Generic Clock Generator Selection

              These bits select the generic clock generator on which the  division  factor  will  be  applied,  as  shown       in  the

              table below.

              Values                      Description

              0x0                         Generic clock generator 0

              0x1                         Generic clock generator 1

              0x2                         Generic clock generator 2

              0x3                         Generic clock generator 3

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                             126

                                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Values                 Description

0x4                    Generic clock generator 4

0x5                    Generic clock generator 5

0x6                    Generic clock generator 6

0x7                    Generic clock generator 7

0x8-0xF                Reserved

A power reset will reset the GENDIV register for all IDs, including the generic clock generator used by the

RTC. If a generic clock generator ID other than generic clock generator 0 is not a source of a ‚“locked”

generic clock or a source of the RTC generic clock, a user reset will reset the GENDIV for this ID.

After a power reset, the reset value of the GENDIV register is as shown in the next table.

GCLK Generator ID                   Reset Value   after  a  Power  Reset

0x00                                0x00000000

0x01                                0x00000001

0x02                                0x00000002

0x03                                0x00000003

0x04                                0x00000004

0x05                                0x00000005

0x06                                0x00000006

0x07                                0x00000007

After a user  reset, the reset value of the GENDIV register is as shown in next  table.

GCLK              Reset Value after a User Reset

Generator     ID

0x00              0x00000000

0x01              0x00000001 if the generator is not used by the RTC and not     a source of a 'locked'

                  generic clock

                  No change if the generator is used by the RTC or used by a     GCLK with a WRTLOCK         as

                  one

0x02              0x00000002 if the generator is not used by the RTC and not     a source of a 'locked'

                  generic clock

                  No change if the generator is used by the RTC or used by a     GCLK with a WRTLOCK         as

                  one

0x03              0x00000003 if the generator is not used by the RTC and not     a source of a 'locked'

                  generic clock

                  No change if the generator is used by the RTC or used by a     GCLK with a WRTLOCK         as

                  one

                                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         127

                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
GCLK          Reset Value after a User Reset

Generator ID

0x04          0x00000004 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x05          0x00000005 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x06          0x00000006 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

0x07          0x00000007 if the generator is not  used by the  RTC and not   a source of a 'locked'

              generic clock

              No change if the generator is used  by the RTC   or used by a  GCLK with a WRTLOCK                as

              one

                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                   128

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.    PM – Power Manager

16.1.  Overview

       The Power Manager (PM) controls the reset, clock generation and sleep modes of the device.

       Utilizing a main clock chosen from a large number of clock sources from the GCLK, the clock controller

       provides synchronous system clocks to the CPU and the modules connected to the AHB and the APBx

       bus. The synchronous system clocks are divided into a number of clock domains; one for the CPU and

       AHB and one for each APBx. Any synchronous system clock can be changed at run-time during normal

       operation. The clock domains can run at different speeds, enabling the user to save power by running

       peripherals at a relatively low clock frequency, while maintaining high CPU performance. In addition, the

       clock can be masked for individual modules, enabling the user to minimize power consumption. If for

       some reason the main clock stops oscillating, the clock failure detector allows switching the main clock to

       the safe OSC8M clock.

       Before entering the STANDBY sleep mode the user must make sure that a significant amount of clocks

       and peripherals are disabled, so that the voltage regulator is not overloaded. This is because during

       STANDBY sleep mode the internal voltage regulator will be in low power mode.

       Various sleep modes are provided in order to fit power consumption requirements. This enables the PM

       to stop unused modules in order to save power. In active mode, the CPU is executing application code.

       When the device enters a sleep mode, program execution is stopped and some modules and clock

       domains are automatically switched off by the PM according to the sleep mode. The application code

       decides which sleep mode to enter and when. Interrupts from enabled peripherals and all enabled reset

       sources can restore the device from a sleep mode to active mode.

       The PM also contains a reset controller to collect all possible reset sources. It issues a device reset and

       sets the device to its initial state, and allows the reset source to be identified by software.

16.2.  Features

       •  Reset control

          –      Reset the microcontroller and set it to an initial state according to the reset source

          –      Multiple reset sources

                 •  Power reset sources: POR, BOD12, BOD33

                 •  User reset sources: External reset (RESET), Watchdog Timer reset, software                reset

          –      Reset status register for reading the reset source from the application code

       •  Clock control

          –      Controls CPU, AHB and APB system clocks

                 •  Multiple clock sources and division factor from GCLK

                 •  Clock prescaler with 1x to 128x division

          –      Safe run-time clock switching from GCLK

          –      Module-level clock gating through maskable peripheral clocks

          –      Clock failure detector

       •  Power management control

          –      Sleep modes: IDLE, STANDBY

          –      SleepWalking support on GCLK clocks

                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                             129

                                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.3.    Block Diagram

         Figure 16-1. PM Block  Diagram

                                POWER MANAGER

                                                         CLK_APB

         OSC8M                  SYNCHRONOUS              CLK_AHB  PERIPHERALS

         GCLK                   CLOCK CONTROLLER         CLK_CPU

                                SLEEP MODE                                     CPU

                                CONTROLLER

         BOD12                                                    USER RESET

         BOD33                                                    POWER RESET

         POR                             RESET

         WDT                    CONTROLLER

         CPU

         RESET

         RESET SOURCES

16.4.    Signal Description

         Signal Name                     Type                                       Description

         RESET                           Digital input                              External reset

         Refer to I/O Multiplexing and Considerations for details on the pin mapping for this peripheral. One signal

         can be mapped on several pins.

         Related Links

         I/O Multiplexing and Considerations on page 27

16.5.    Product Dependencies

         In order to use this peripheral, other parts of the system must be configured correctly, as described below.

16.5.1.  I/O Lines

         Not applicable.

16.5.2.  Power Management

         Not applicable.

16.5.3.  Clocks

         The PM bus clock (CLK_PM_APB) can be enabled and disabled in the Power Manager, and the default

         state of CLK_PM_APB can be found in Table 16-1 related to the Peripheral Clock Masking. If this clock is

         disabled in the Power Manager, it can only be re-enabled by a reset.

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       130

                                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           A generic clock (GCLK_MAIN) is required to generate the main clock. The clock source for GCLK_MAIN

           is configured by default in the Generic Clock Controller, and can be re-configured by the user if needed.

           Refer to GCLK – Generic Clock Controller for details.

           Related Links

           Peripheral Clock Masking on page 134

           GCLK - Generic Clock Controller on page 108

16.5.3.1.  Main Clock

           The main clock (CLK_MAIN) is the common source for the synchronous clocks. This is fed into the

           common 8-bit prescaler that is used to generate synchronous clocks to the CPU, AHB and APBx

           modules.

16.5.3.2.  CPU Clock

           The CPU clock (CLK_CPU) is routed to the CPU. Halting the CPU clock inhibits the CPU from executing

           instructions.

16.5.3.3.  AHB Clock

           The AHB clock (CLK_AHB) is the root clock source used by peripherals requiring an AHB clock. The AHB

           clock is always synchronous to the CPU clock and has the same frequency, but may run even when the

           CPU clock is turned off. A clock gate is inserted from the common AHB clock to any AHB clock of a

           peripheral.

16.5.3.4.  APBx Clocks

           The APBx clock (CLK_APBX) is the root clock source used by modules requiring a clock on the APBx

           bus. The APBx clock is always synchronous to the CPU clock, but can be divided by a prescaler, and will

           run even when the CPU clock is turned off. A clock gater is inserted from the common APB clock to any

           APBx clock of a module on APBx bus.

16.5.4.    Interrupts

           The interrupt request line is connected to the Interrupt Controller. Using the PM interrupt requires the

           Interrupt Controller to be configured first. Refer to Nested Vector Interrupt Controller for details.

           Related Links

           Nested Vector Interrupt Controller on page 41

16.5.5.    Events

           Not applicable.

16.5.6.    Debug Operation

           When the CPU is halted in debug mode, the PM continues normal operation. In sleep mode, the clocks

           generated from the PM are kept running to allow the debugger accessing any modules. As a

           consequence, power measurements are not possible in debug mode.

16.5.7.    Register Access Protection

           Registers with write-access can be optionally write-protected by the Peripheral Access Controller (PAC),

           except the following:

           •  Interrupt Flag register (INTFLAG).

           •  Reset Cause register (RCAUSE).

           Note:  Optional write-protection is indicated by the "PAC Write-Protection" property in the register

           description.

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]            131

                                                                  Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           Write-protection does not apply for accesses   through  an  external  debugger.  Refer  to  PAC  –  Peripheral

           Access Controller for details.

           Related Links

           PAC - Peripheral Access Controller on page 45

           INTFLAG on page 160

           RCAUSE on page 161

16.5.8.    Analog Connections

           Not applicable.

16.6.      Functional Description

16.6.1.    Principle of Operation

16.6.1.1.  Synchronous Clocks

           The GCLK_MAIN clock from GCLK module provides the source for the main clock, which is the common

           root for the synchronous clocks for the CPU and APBx modules. The main clock is divided by an 8-bit

           prescaler, and each of the derived clocks can run from any tapping off this prescaler or the undivided

           main clock, as long as fCPU ≥ fAPBx. The synchronous clock source can be changed on the fly to respond

           to varying load in the application. The clocks for each module in each synchronous clock domain can be

           individually masked to avoid power consumption in inactive modules. Depending on the sleep mode,

           some clock domains can be turned off (see Table 16-4).

16.6.1.2.  Reset Controller

           The Reset Controller collects the various reset sources and generates reset for the device. The device

           contains a power-on-reset (POR) detector, which keeps the system reset until power is stable. This

           eliminates the need for external reset circuitry to guarantee stable operation when powering up the

           device.

16.6.1.3.  Sleep Mode Controller

           In ACTIVE mode, all clock domains are active, allowing software execution and peripheral operation. The

           PM Sleep Mode Controller allows the user to choose between different sleep modes depending on

           application requirements, to save power (see Table 16-4).

16.6.2.    Basic Operation

16.6.2.1.  Initialization

           After a power-on reset, the PM is enabled and the Reset Cause register indicates the POR source

           (RCAUSE.POR). The default clock source of the GCLK_MAIN clock is started and calibrated before the

           CPU starts running. The GCLK_MAIN clock is selected as the main clock without any division on the

           prescaler. The device is in the ACTIVE mode.

           By default, only the necessary clocks are enabled (see Table 1).

           Related Links

           RCAUSE on page 161

16.6.2.2.  Enabling, Disabling and Resetting

           The PM module is always enabled and can not be reset.

16.6.2.3.  Selecting the Main Clock Source

           Refer to GCLK – Generic Clock Controller for details on how to configure the main clock source.

                                                          Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                        132

                                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           Related Links

           GCLK - Generic Clock Controller on page 108

16.6.2.4.  Selecting the Synchronous Clock Division Ratio

           The main clock feeds an 8-bit prescaler, which can be used to generate the synchronous clocks. By

           default, the synchronous clocks run on the undivided main clock. The user can select a prescaler division

           for the CPU clock by writing the CPU Prescaler Selection bits in the CPU Select register

           (CPUSEL.CPUDIV), resulting in a CPU clock frequency determined by this equation:

           CPU  =  main

                    2CPUDIV

           Similarly, the clock for the APBx can be divided by writing their respective registers (APBxSEL.APBxDIV).

           To ensure correct operation, frequencies must be selected so that fCPU ≥ fAPBx. Also, frequencies must

           never exceed the specified maximum frequency for each clock domain.

           Note:  The AHB clock is always equal to the CPU clock.

           CPUSEL and APBxSEL can be written without halting or disabling peripheral modules. Writing CPUSEL

           and APBxSEL allows a new clock setting to be written to all synchronous clocks at the same time. It is

           possible to keep one or more clocks unchanged. This way, it is possible to, for example, scale the CPU

           speed according to the required performance, while keeping the APBx frequency constant.

           Figure 16-2. Synchronous Clock Selection and Prescaler

                                       Sleep Controller  Sleep mode

                                                                                APBCMASK

                                                                     Clock  CLK_APBC      CCgClgolaolacotcktecekk  CLK_PERIPHERAL_APBC_n

                                                                     gate                 gate                     CLK_PERIPHERAL_APBC_1

                                                                                                                   CLK_PERIPHERAL_APBC_0

                                                         APBCDIV                APBBMASK

                                                                     Clock  CLK_APBB      CCgClgolaolacotcktecekk  CLK_PERIPHERAL_APBB_n

                                                                     gate                 gate                     CLK_PERIPHERAL_APBB_1

                                                                                                                   CLK_PERIPHERAL_APBB_0

                                                         APBBDIV                APBAMASK

                                                                     Clock  CLK_APBA      CCgClgolaolacotcktecekk  CLK_PERIPHERAL_APBA_n

                  GCLK_MAIN                                          gate                 gate                     CLK_PERIPHERAL_APBA_1

                                                                                                                   CLK_PERIPHERAL_APBA_0

           GCLK              CLK_MAIN

           OSC8M                                         APBADIV                AHBMASK

                                                                     Clock  CLK_AHB      CCgClgolaolacotcktecekk   CLK_PERIPHERAL_AHB_n

                    BKUPCLK                                          gate                 gate                     CLK_PERIPHERAL_AHB_1

                                                                                                                   CLK_PERIPHERAL_AHB_0

                           Clock                                     Clock  CLK_CPU

                          Failure      Prescaler                     gate

                          Detector

                                                         CPUDIV

16.6.2.5.  Clock Ready Flag

           There is a slight delay from when CPUSEL and APBxSEL are written until the new clock setting becomes

           effective. During this interval, the Clock Ready flag in the Interrupt Flag Status and Clear register

           (INTFLAG.CKRDY) will read as zero. If CKRDY in the INTENSET register is written to one, the Power

                                                         Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                    133

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           Manager interrupt can be triggered when the new clock setting is effective. CPUSEL must not be re-

           written while CKRDY is zero, or the system may become unstable or hang.

           Related Links

           CPUSEL on page 144

           INTENSET on page 159

16.6.2.6.  Peripheral Clock Masking

           It is possible to disable or enable the clock for a peripheral in the AHB or APBx clock domain by writing

           the corresponding bit in the Clock Mask register (APBxMASK - refer to APBAMASK register for details)                to

           zero or one. Refer to the table below for the default state of each of the peripheral clocks.

           Table 16-1. Peripheral Clock Default State

           Peripheral Clock                                                   Default State

           CLK_PAC0_APB                                                       Enabled

           CLK_PM_APB                                                         Enabled

           CLK_SYSCTRL_APB                                                    Enabled

           CLK_GCLK_APB                                                       Enabled

           CLK_WDT_APB                                                        Enabled

           CLK_RTC_APB                                                        Enabled

           CLK_EIC_APB                                                        Enabled

           CLK_PAC1_APB                                                       Enabled

           CLK_DSU_APB                                                        Enabled

           CLK_NVMCTRL_APB                                                    Enabled

           CLK_PORT_APB                                                       Enabled

           CLK_PAC2_APB                                                       Disabled

           CLK_SERCOMx_APB                                                    Disabled

           CLK_TCx_APB                                                        Disabled

           CLK_ADC_APB                                                        Enabled

           CLK_AC_APB                                                         Disabled

           CLK_DAC_APB                                                        Disabled

           CLK_PTC_APB                                                        Disabled

           When the APB clock for a module is not provided its registers cannot be read or written. The module can

           be re-enabled later by writing the corresponding mask bit to one.

           A module may be connected to several clock domains (for instance, AHB and APB), in which case it will

           have several mask bits.

           Note:  Clocks should only be switched off if it is certain that the module will not be used. Switching off the

           clock for the NVM Controller (NVMCTRL) will cause a problem if the CPU needs to read from the flash

           memory. Switching off the clock to the Power Manager (PM), which contains the mask registers, or the

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                        134

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
           corresponding APBx bridge, will make it impossible to write the mask registers again. In this case, they

           can only be re-enabled by a system reset.

           Related Links

           APBAMASK on page 150

16.6.2.7.  Clock Failure Detector

           This mechanism allows the main clock to be switched automatically to the safe OSC8M clock when the

           main clock source is considered off. This may happen for instance when an external crystal oscillator is

           selected as the clock source for the main clock and the crystal fails. The mechanism is to designed to

           detect, during a OSCULP32K clock period, at least one rising edge of the main clock. If no rising edge is

           seen, the clock is considered failed.

           The clock failure detector is enabled by writing a '1' to the Clock Failure Detector Enable bit in CTRL

           (CFDEN_CTRL).

           As soon as the Clock Failure Detector Enable bit (CTRL.CFDEN) is one, the clock failure detector (CFD)

           will monitor the undivided main clock. When a clock failure is detected, the main clock automatically

           switches to the OSC8M clock and the Clock Failure Detector flag in the interrupt Flag Status and Clear

           register (INTFLAG.CFD) is set and the corresponding interrupt request will be generated if enabled. The

           BKUPCLK bit in the CTRL register is set by hardware to indicate that the main clock comes from OSC8M.

           The GCLK_MAIN clock source can be selected again by writing a zero to the CTRL.BKUPCLK bit.

           However, writing the bit does not fix the failure.

           Note: 

           1.  The detector does not monitor while the main clock is temporarily unavailable (start-up time after a

               wake-up, etc.) or in sleep mode. The Clock Failure Detector must be disabled before entering

               standby mode.

           2.  The clock failure detector must not be enabled if the source of the main clock is not significantly

               faster than the OSCULP32K clock. For instance, if GCLK_MAIN is the internal 32kHz RC, then the

               clock failure detector must be disabled.

           3.  The OSC8M internal oscillator should be enabled to allow the main clock switching to the OSC8M

               clock.

           Related Links

           CTRL on page 142

16.6.2.8.  Reset Controller

           The latest reset cause is available in RCAUSE, and can be read during the application boot sequence in

           order to determine proper action.

           There are two groups of reset sources:

           •   Power Reset: Resets caused by an electrical issue.

           •   User Reset: Resets caused by the application.

           The table below lists the parts of the device that are reset, depending on the reset type.

                                                               Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]       135

                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Table 16-2. Effects of the Different Reset Events

                                 Power Reset                    User Reset

                                 POR, BOD12,                    External Reset  WDT Reset,

                                 BOD33                                          SysResetReq

RTC                              Y                              N               N

All the 32kHz sources

WDT with ALWAYSON feature

Generic Clock with WRTLOCK

feature

Debug logic                      Y                              Y               N

Others                           Y                              Y               Y

The external reset is generated when pulling the RESET pin low. This pin has an internal pull-up, and

does not need to be driven externally during normal operation.

The POR, BOD12 and BOD33 reset sources are generated by their corresponding module in the System

Controller Interface (SYSCTRL).

The WDT reset is generated by the Watchdog Timer.

The System Reset Request (SysResetReq) is a software reset generated by the CPU when asserting the

SYSRESETREQ bit located in the Reset Control register of the CPU (See the ARM® Cortex® Technical

Reference Manual on http://www.arm.com).

Figure 16-3. Reset Controller

                                 RESET CONTROLLER                                  RTC

         BOD12                                                              32kHz clock sources

         BOD33                                                              WDT with ALWAYSON

                                                                                Generic Clock with

             POR                                                                   WRTLOCK

     RESET                                                                         Debug Logic

             WDT                                                                   Others

             CPU

RESET SOURCES                       RCAUSE

                                                   Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                 136

                                                                   Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.6.2.9.  Sleep Mode Controller

           Sleep mode is activated by the Wait For Interrupt instruction (WFI). The Idle bits in the Sleep Mode

           register (SLEEP.IDLE) and the SLEEPDEEP bit of the System Control register of the CPU should be

           used as argument to select the level of the sleep mode.

           There are two main types of sleep mode:

           •       IDLE mode: The CPU is stopped. Optionally, some synchronous clock domains are stopped,

                   depending on the IDLE argument. Regulator operates in normal mode.

           •       STANDBY mode: All clock sources are stopped, except those where the RUNSTDBY bit is set.

                   Regulator operates in low-power mode. Before entering standby mode the user must make sure

                   that a significant amount of clocks and peripherals are disabled, so that the voltage regulator is not

                   overloaded.

           Table 16-3. Sleep Mode Entry and Exit Table

           Mode            Level  Mode Entry                         Wake-Up Sources

           IDLE            0      SCR.SLEEPDEEP = 0                  Synchronous(2) (APB, AHB), asynchronous(1)

                           1      SLEEP.IDLE=Level                   Synchronous (APB), asynchronous

                                  WFI

                           2                                         Asynchronous

           STANDBY                SCR.SLEEPDEEP = 1                  Asynchronous

                                  WFI

                   Note: 

                    1.    Asynchronous: interrupt generated on generic clock or external clock or external event.

                    2.    Synchronous: interrupt generated on the APB clock.

           Table 16-4. Sleep Mode Overview

           Sleep    CPU    AHB    APB    Oscillators                                                     Main   Regulator  RAM

           Mode     Clock  Clock  Clock  ONDEMAND =   0              ONDEMAND = 1                        Clock  Mode       Mode

                                         RUNSTDBY=0      RUNSTDBY=1  RUNSTDBY=0        RUNSTDBY=1

           Idle 0   Stop   Run    Run    Run             Run         Run if requested  Run if requested  Run    Normal     Normal

           Idle 1   Stop   Stop   Run    Run             Run         Run if requested  Run if requested  Run    Normal     Normal

           Idle 2   Stop   Stop   Stop   Run             Run         Run if requested  Run if requested  Run    Normal     Normal

           Standby  Stop   Stop   Stop   Stop            Run         Stop              Run if requested  Stop   Low power  Low power

           IDLE Mode

           The IDLE modes allow power optimization with the fastest wake-up time.

           The CPU is stopped. To further reduce power consumption, the user can disable the clocking of modules

           and clock sources by configuring the SLEEP.IDLE bit group. The module will be halted regardless of the

           bit settings of the mask registers in the Power Manager (PM.AHBMASK, PM.APBxMASK).

           Regulator operates in normal mode.

           •       Entering IDLE mode: The IDLE mode is entered by executing the WFI instruction. Additionally, if the

                   SLEEPONEXIT bit in the ARM Cortex System Control register (SCR) is set, the IDLE mode will

                   also be entered when the CPU exits the lowest priority ISR. This mechanism can be useful for

                   applications that only require the processor to run when an interrupt occurs. Before entering the

                   IDLE mode, the user must configure the IDLE mode configuration bit group and must write a zero to

                   the SCR.SLEEPDEEP bit.

                                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                          137

                                                                                       Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
         •  Exiting IDLE mode: The processor wakes the system up when it detects the occurrence of any

            interrupt that is not masked in the NVIC Controller with sufficient priority to cause exception entry.

            The system goes back to the ACTIVE mode. The CPU and affected modules are restarted.

         STANDBY Mode

         The STANDBY mode allows achieving very low power consumption.

         In this mode, all clocks are stopped except those which are kept running if requested by a running module

         or have the ONDEMAND bit set to zero. For example, the RTC can operate in STANDBY mode. In this

         case, its Generic Clock clock source will also be enabled.

         The regulator and the RAM operate in low-power mode.

         A SLEEPONEXIT feature is also available.

         •  Entering STANDBY mode: This mode is entered by executing the WFI instruction with the

            SCR.SLEEPDEEP bit of the CPU is written to 1.

         •  Exiting STANDBY mode: Any peripheral able to generate an asynchronous interrupt can wake up

            the system. For example, a module running on a Generic clock can trigger an interrupt. When the

            enabled asynchronous wake-up event occurs and the system is woken up, the device will either

            execute the interrupt service routine or continue the normal program execution according to the

            Priority Mask Register (PRIMASK) configuration of the CPU.

16.6.3.  SleepWalking

         SleepWalking is the capability for a device to temporarily wak-eup clocks for peripheral to perform a task

         without waking-up the CPU in STANDBY sleep mode. At the end of the sleepwalking task, the device can

         either be waken-up by an interrupt (from a peripheral involved in SleepWalking) or enter again into

         STANDBY sleep mode.

         In this device, SleepWalking is supported only on GCLK clocks by using the on-demand clock principle of

         the clock sources. Refer to On-demand, Clock Requests for more details.

         Related Links

         On-demand, Clock Requests on page 106

16.6.4.  Interrupts

         The peripheral has the following interrupt sources:

         •  Clock Ready flag

         •  Clock failure detector

         Each interrupt source has an interrupt flag associated with it. The interrupt flag in the Interrupt Flag Status

         and Clear (INTFLAG) register is set when the interrupt condition occurs. Each interrupt can be individually

         enabled by writing a one to the corresponding bit in the Interrupt Enable Set (INTENSET) register, and

         disabled by writing a one to the corresponding bit in the Interrupt Enable Clear (INTENCLR) register. An

         interrupt request is generated when the interrupt flag is set and the corresponding interrupt is enabled.

         The interrupt request remains active until the interrupt flag is cleared, the interrupt is disabled or the

         peripheral is reset. An interrupt flag is cleared by writing a one to the corresponding bit in the INTFLAG

         register. Each peripheral can have one interrupt request line per interrupt source or one common interrupt

         request line for all the interrupt sources. Refer to Nested Vector Interrupt Controller for details. If the

         peripheral has one common interrupt request line for all the interrupt sources, the user must read the

         INTFLAG register to determine which interrupt condition is present.

         Related Links

         Nested Vector Interrupt Controller on page 41

                                                        Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       138

                                                                              Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.6.5.  Events

         Not applicable.

16.6.6.  Sleep Mode Operation

         In all IDLE sleep modes, the power manager is still running on the selected main clock.

         In STANDDBY sleep mode, the power manager is frozen and is able to go back to ACTIVE mode upon

         any asynchronous interrupt.

                                      Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                   139

                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.7.   Register  Summary

Offset  Name      Bit Pos.

0x00    CTRL      7:0                                  BKUPCLK           CFDEN

0x01    SLEEP     7:0                                                                   IDLE[1:0]

0x02

...     Reserved

0x07

0x08    CPUSEL    7:0                                                             CPUDIV[2:0]

0x09    APBASEL   7:0                                                             APBADIV[2:0]

0x0A    APBBSEL   7:0                                                             APBBDIV[2:0]

0x0B    APBCSEL   7:0                                                             APBCDIV[2:0]

0x0C

...     Reserved

0x13

0x14              7:0                                  NVMCTRL  DSU      HPB2     HPB1                               HPB0

0x15    AHBMASK   15:8

0x16              23:16

0x17              31:24

0x18              7:0                EIC      RTC      WDT      GCLK     SYSCTRL  PM                                 PAC0

0x19    APBAMASK  15:8

0x1A              23:16

0x1B              31:24

0x1C              7:0                                           PORT     NVMCTRL  DSU                                PAC1

0x1D    APBBMASK  15:8

0x1E              23:16

0x1F              31:24

0x20              7:0       SERCOM5  SERCOM4  SERCOM3  SERCOM2  SERCOM1  SERCOM0  EVSYS                              PAC2

0x21    APBCMASK  15:8        TC7    TC6      TC5      TC4      TC3      TC2      TC1                                TC0

0x22              23:16                                         PTC      DAC      AC                                 ADC

0x23              31:24

0x24

...     Reserved

0x33

0x34    INTENCLR  7:0                                                             CFD                                CKRDY

0x35    INTENSET  7:0                                                             CFD                                CKRDY

0x36    INTFLAG   7:0                                                             CFD                                CKRDY

0x37    Reserved

0x38    RCAUSE    7:0                SYST     WDT      EXT               BOD33    BOD12                              POR

16.8.   Register Description

        Registers can be 8, 16, or 32 bits wide. Atomic 8-, 16-, and 32-bit accesses are supported. In addition,

        the 8-bit quarters and 16-bit halves of a 32-bit register, and the 8-bit halves of a 16-bit register can be

        accessed directly.

        Exception for APBASEL, APBBSEL and APBCSEL: These registers must only be accessed with 8-bit

        access.

                                              Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                            140

                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Optional write-protection by the Peripheral Access Controller (PAC) is denoted by the "PAC Write-

Protection" property in each individual register description.

Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                                                141

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.1.       Control

              Name:     CTRL

              Offset:   0x00

              Reset:    0x00

              Property: Write-Protected

               

         Bit     7            6          5          4                        3  2      1                                         0

                                                    BKUPCLK                     CFDEN

Access                                              R/W                         R/W

Reset                                               0                           0

              Bit 4 – BKUPCLK: Backup Clock Select

              This bit is set by hardware when a clock failure is detected.

              Value     Description

              0         The GCLK_MAIN clock is selected for the main clock.

              1         The OSC8M backup clock is selected for the main clock.

              Bit 2 – CFDEN: Clock Failure Detector Enable

              This bit is set by hardware when a clock failure is detected.

              Value     Description

              0         The clock failure detector is disabled.

              1         The clock failure detector is enabled.

                                                    Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                142

                                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.2.       Sleep Mode

              Name:      SLEEP

              Offset:    0x01

              Reset:     0x00

              Property: Write-Protected

               

         Bit       7            6        5            4      3                        2  1                                             0

                                                                                              IDLE[1:0]

Access                                                                                   R/W                   R/W

Reset                                                                                    0                                             0

              Bits 1:0 – IDLE[1:0]: Idle Mode Configuration

              These bits select the Idle mode configuration after a WFI instruction.

              IDLE[1:0]        Name      Description

              0x0              CPU       The CPU clock domain is stopped

              0x1              AHB       The CPU and AHB clock domains are stopped

              0x2              APB       The CPU, AHB and APB clock domains are stopped

              0x3                        Reserved

                                                             Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                             143

                                                                                      Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.3.       CPU Clock Select

              Name:     CPUSEL

              Offset:   0x08

              Reset:    0x00

              Property: Write-Protected

               

         Bit       7            6        5        4                   3                 2       1                                 0

                                                                                                CPUDIV[2:0]

Access                                                                                  R/W     R/W          R/W

Reset                                                                                   0       0                                 0

              Bits 2:0 – CPUDIV[2:0]: CPU Prescaler Selection

              These bits define the division ratio of the main clock  prescaler  (2n).

              CPUDIV[2:0]                   Name                                 Description

              0x0                           DIV1                                 Divide by 1

              0x1                           DIV2                                 Divide by 2

              0x2                           DIV4                                 Divide by 4

              0x3                           DIV8                                 Divide by 8

              0x4                           DIV16                                Divide by 16

              0x5                           DIV32                                Divide by 32

              0x6                           DIV64                                Divide by 64

              0x7                           DIV128                               Divide by 128

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                   144

                                                                                 Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.4.       APBA Clock Select

              Name:     APBASEL

              Offset:   0x09

              Reset:    0x00

              Property: Write-Protected

               

         Bit       7          6                     5  4                    3              2       1                                 0

                                                                                                   APBADIV[2:0]

Access                                                                                     R/W     R/W           R/W

Reset                                                                                      0       0                                 0

              Bits 2:0 – APBADIV[2:0]: APBA            Prescaler Selection

              These bits define the division ratio     of the APBA clock prescaler  (2n).

              APBADIV[2:0]                             Name                         Description

              0x0                                      DIV1                         Divide by 1

              0x1                                      DIV2                         Divide by 2

              0x2                                      DIV4                         Divide by 4

              0x3                                      DIV8                         Divide by 8

              0x4                                      DIV16                        Divide by 16

              0x5                                      DIV32                        Divide by 32

              0x6                                      DIV64                        Divide by 64

              0x7                                      DIV128                       Divide by 128

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                 145

                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.5.       APBB Clock Select

              Name:     APBBSEL

              Offset:   0x0A

              Reset:    0x00

              Property: Write-Protected

               

         Bit       7          6                     5  4                    3              2       1                                 0

                                                                                                   APBBDIV[2:0]

Access                                                                                     R/W     R/W           R/W

Reset                                                                                      0       0                                 0

              Bits 2:0 – APBBDIV[2:0]: APBB            Prescaler Selection

              These bits define the division ratio     of the APBB clock prescaler  (2n).

              APBBDIV[2:0]                             Name                         Description

              0x0                                      DIV1                         Divide by 1

              0x1                                      DIV2                         Divide by 2

              0x2                                      DIV4                         Divide by 4

              0x3                                      DIV8                         Divide by 8

              0x4                                      DIV16                        Divide by 16

              0x5                                      DIV32                        Divide by 32

              0x6                                      DIV64                        Divide by 64

              0x7                                      DIV128                       Divide by 128

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                 146

                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.6.       APBC Clock Select

              Name:     APBCSEL

              Offset:   0x0B

              Reset:    0x00

              Property: Write-Protected

               

         Bit       7          6                     5  4                    3              2       1                                 0

                                                                                                   APBCDIV[2:0]

Access                                                                                     R/W     R/W           R/W

Reset                                                                                      0       0                                 0

              Bits 2:0 – APBCDIV[2:0]: APBC            Prescaler Selection

              These bits define the division ratio     of the APBC clock prescaler  (2n).

              APBCDIV[2:0]                             Name                         Description

              0x0                                      DIV1                         Divide by 1

              0x1                                      DIV2                         Divide by 2

              0x2                                      DIV4                         Divide by 4

              0x3                                      DIV8                         Divide by 8

              0x4                                      DIV16                        Divide by 16

              0x5                                      DIV32                        Divide by 32

              0x6                                      DIV64                        Divide by 64

              0x7                                      DIV128                       Divide by 128

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                                 147

                                                                                    Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.7.       AHB Mask

              Name:     AHBMASK

              Offset:   0x14

              Reset:    0x0000007F

              Property: Write-Protected

               

         Bit     31           30         29      28                27       26    25                                         24

Access

Reset

         Bit     23           22         21      20                19       18    17                                         16

Access

Reset

         Bit     15           14         13      12                11       10    9                                          8

Access

Reset

         Bit     7            6          5       4                 3        2     1                                          0

                                                 NVMCTRL           DSU      HPB2  HPB1  HPB0

Access                                           R/W               R/W      R/W   R/W   R/W

Reset                                            1                 1        1     1                                          1

              Bit 4 – NVMCTRL: NVMCTRL AHB Clock Mask

              Value     Description

              0         The AHB clock for the NVMCTRL is stopped.

              1         The AHB clock for the NVMCTRL is enabled.

              Bit 3 – DSU: DSU AHB Clock Mask

              Value     Description

              0         The AHB clock for the DSU is stopped.

              1         The AHB clock for the DSU is enabled.

              Bit 2 – HPB2: HPB2 AHB Clock Mask

              Value     Description

              0         The AHB clock for the HPB2 is stopped.

              1         The AHB clock for the HPB2 is enabled.

              Bit 1 – HPB1: HPB1 AHB Clock Mask

                                                 Atmel SAM         D20E  /  SAM D20G / SAM D20J [DATASHEET]                      148

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value    Description

0        The AHB clock   for the  HPB1  is  stopped.

1        The AHB clock   for the  HPB1  is  enabled.

Bit 0 –  HPB0: HPB0 AHB  Clock    Mask

Value    Description

0        The AHB clock   for the  HPB0  is  stopped.

1        The AHB clock   for the  HPB0  is  enabled.

                                            Atmel SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                  149

                                                                Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.8.       APBA Mask

              Name:     APBAMASK

              Offset:   0x18

              Reset:    0x0000007F

              Property: Write-Protected

               

         Bit     31           30         29             28         27       26       25                                      24

Access

Reset

         Bit     23           22         21             20         19       18       17                                      16

Access

Reset

         Bit     15           14         13             12         11       10       9                                       8

Access

Reset

         Bit     7            6          5              4          3        2        1                                       0

                              EIC        RTC            WDT        GCLK     SYSCTRL  PM   PAC0

Access                        R/W        R/W            R/W        R/W      R/W      R/W  R/W

Reset                         1          1              1          1        1        1                                       1

              Bit 6 –  EIC: EIC APB Clock Enable

              Value     Description

              0         The APBA clock for the EIC  is  stopped.

              1         The APBA clock for the EIC  is  enabled.

              Bit 5 – RTC: RTC APB Clock Enable

              Value     Description

              0         The APBA clock for the RTC is stopped.

              1         The APBA clock for the RTC is enabled.

              Bit 4 – WDT: WDT APB Clock Enable

              Value     Description

              0         The APBA clock for the WDT is stopped.

              1         The APBA clock for the WDT is enabled.

              Bit 3 – GCLK: GCLK APB Clock Enable

                                                        Atmel SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                      150

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value    Description

0        The APBA clock for the GCLK is stopped.

1        The APBA clock for the GCLK is enabled.

Bit 2 –  SYSCTRL: SYSCTRL APB Clock Enable

Value    Description

0        The APBA clock for the SYSCTRL is stopped.

1        The APBA clock for the SYSCTRL is enabled.

Bit 1 –  PM: PM APB Clock Enable

Value    Description

0        The APBA clock for the PM is stopped.

1        The APBA clock for the PM is enabled.

Bit 0 –  PAC0: PAC0 APB Clock Enable

Value    Description

0        The APBA clock for the PAC0 is stopped.

1        The APBA clock for the PAC0 is enabled.

                                      Atmel SAM D20E  /  SAM D20G / SAM D20J [DATASHEET]                  151

                                                         Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.9.       APBB Mask

              Name:     APBBMASK

              Offset:   0x1C

              Reset:    0x0000007F

              Property: Write-Protected

               

         Bit     31           30         29              28         27       26       25                                      24

Access

Reset

         Bit     23           22         21              20         19       18       17                                      16

Access

Reset

         Bit     15           14         13              12         11       10       9                                       8

Access

Reset

         Bit     7            6          5               4          3        2        1                                       0

                                                                    PORT     NVMCTRL  DSU  PAC1

Access                                                              R/W      R/W      R/W  R/W

Reset                                                               1        1        1                                       1

              Bit 3 –  PORT: PORT APB Clock Enable

              Value     Description

              0         The APBB clock for the PORT  is  stopped.

              1         The APBB clock for the PORT  is  enabled.

              Bit 2 – NVMCTRL: NVMCTRL APB Clock Enable

              Value     Description

              0         The APBB clock for the NVMCTRL is stopped.

              1         The APBB clock for the NVMCTRL is enabled.

              Bit 1 – DSU: DSU APB Clock Enable

              Value     Description

              0         The APBB clock for the DSU is stopped.

              1         The APBB clock for the DSU is enabled.

              Bit 0 – PAC1: PAC1 APB Clock Enable

                                                         Atmel SAM D20E   /  SAM D20G / SAM D20J [DATASHEET]                      152

                                                                             Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value  Description

0      The APBB clock  for  the  PAC1  is  stopped.

1      The APBB clock  for  the  PAC1  is  enabled.

                                           Atmel SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                  153

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.10.  APBC Mask

          Name:     APBCMASK

          Offset:   0x20

          Reset:    0x00010000

          Property: Write-Protected

           

Bit          31           30         29           28           27       26       25                                      24

Access

Reset

Bit          23           22         21           20           19       18       17                                      16

                                                               PTC      DAC      AC                 ADC

Access                                                         R/W      R/W      R/W                R/W

Reset                                                          0        0        0                                       1

Bit          15           14         13           12           11       10       9                                       8

             TC7          TC6        TC5          TC4          TC3      TC2      TC1                TC0

Access       R/W          R/W        R/W          R/W          R/W      R/W      R/W                R/W

Reset        0            0          0            0            0        0        0                                       0

Bit          7            6          5            4            3        2        1                                       0

             SERCOM5      SERCOM4    SERCOM3      SERCOM2      SERCOM1  SERCOM0  EVSYS              PAC2

Access       R/W          R/W        R/W          R/W          R/W      R/W      R/W                R/W

Reset        0            0          0            0            0        0        0                                       0

          Bit 19 – PTC: PTC APB Clock Enable

          Value       Description

          0           The APBC clock for the PTC  is stopped.

          1           The APBC clock for the PTC  is enabled.

          Bit 18 – DAC: DAC APB Clock Enable

          Value       Description

          0           The APBC clock for the DAC is stopped.

          1           The APBC clock for the DAC is enabled.

          Bit 17 – AC: AC APB Clock Enable

          Value       Description

          0           The APBC clock for the AC is stopped.

          1           The APBC clock for the AC is enabled.

          Bit 16 – ADC: ADC APB Clock Enable

                                                  Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                           154

                                                                        Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value  Description

0      The APBC clock for the ADC is stopped.

1      The APBC clock for the ADC is enabled.

Bit 15 – TC7: TC7 APB Clock Enable

Value  Description

0      The APBC clock for the TC7 is stopped.

1      The APBC clock for the TC7 is enabled.

Bit 14 – TC6: TC6 APB Clock Enable

Value  Description

0      The APBC clock for the TC6 is stopped.

1      The APBC clock for the TC6 is enabled.

Bit 13 – TC5: TC5 APB Clock Enable

Value  Description

0      The APBC clock for the TC5 is stopped.

1      The APBC clock for the TC5 is enabled.

Bit 12 – TC4: TC4 APB Clock Enable

Value  Description

0      The APBC clock for the TC4 is stopped.

1      The APBC clock for the TC4 is enabled.

Bit 11 – TC3: TC3 APB Clock Enable

Value  Description

0      The APBC clock for the TC3 is stopped.

1      The APBC clock for the TC3 is enabled.

Bit 10 – TC2: TC2 APB Clock Enable

Value  Description

0      The APBC clock for the TC2 is stopped.

1      The APBC clock for the TC2 is enabled.

Bit 9 – TC1: TC1 APB Clock Enable

Value  Description

0      The APBC clock for the TC1 is stopped.

1      The APBC clock for the TC1 is enabled.

                                    Atmel SAM  D20E  /  SAM D20G / SAM D20J [DATASHEET]                  155

                                                        Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Bit 8 –  TC0: TC0 APB Clock Enable

Value    Description

0        The APBC clock for the TC0 is stopped.

1        The APBC clock for the TC0 is enabled.

Bit 7 –  SERCOM5: SERCOM5 APB Clock Enable

Value    Description

0        The APBC clock for the SERCOM5 is stopped.

1        The APBC clock for the SERCOM5 is enabled.

Bit 6 –  SERCOM4: SERCOM4 APB Clock Enable

Value    Description

0        The APBC clock for the SERCOM4 is stopped.

1        The APBC clock for the SERCOM4 is enabled.

Bit 5 –  SERCOM3: SERCOM2 APB Clock Enable

Value    Description

0        The APBC clock for the SERCOM3 is stopped.

1        The APBC clock for the SERCOM3 is enabled.

Bit 4 –  SERCOM2: SERCOM2 APB Clock Enable

Value    Description

0        The APBC clock for the SERCOM2 is stopped.

1        The APBC clock for the SERCOM2 is enabled.

Bit 3 –  SERCOM1: SERCOM1 APB Clock Enable

Value    Description

0        The APBC clock for the SERCOM1 is stopped.

1        The APBC clock for the SERCOM1 is enabled.

Bit 2 –  SERCOM0: SERCOM0 APB Clock Enable

Value    Description

0        The APBC clock for the SERCOM0 is stopped.

1        The APBC clock for the SERCOM0 is enabled.

Bit 1 –  EVSYS: EVSYS APB Clock Enable

                                        Atmel SAM D20E  /  SAM D20G / SAM D20J [DATASHEET]                  156

                                                           Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
Value    Description

0        The APBC clock for the EVSYS    is stopped.

1        The APBC clock for the EVSYS    is enabled.

Bit 0 –  PAC2: PAC2 APB Clock Enable

Value    Description

0        The APBC clock for the PAC2 is  stopped.

1        The APBC clock for the PAC2 is  enabled.

                                         Atmel SAM    D20E  /  SAM D20G / SAM D20J [DATASHEET]                  157

                                                               Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.11.  Interrupt Enable Clear

          Name:     INTENCLR

          Offset:   0x34

          Reset:    0x00

          Property: Write-Protected

           

Bit          7                6      5               4                 3  2  1                                             0

                                                                             CFD  CKRDY

Access                                                                       R/W                                      R/W

Reset                                                                        0                                             0

          Bit 1 – CFD: Clock Failure Detector Interrupt Enable

          Writing a zero to this bit has no effect.

          Writing a one to this bit will clear the Clock Failure Detector Interrupt Enable bit and the corresponding

          interrupt request.

          Value     Description

          0         The Clock Failure Detector interrupt is disabled.

          1         The Clock Failure Detector interrupt is enabled and will generate an interrupt request when

                    the Clock Failure Detector Interrupt flag is set.

          Bit 0 – CKRDY: Clock Ready Interrupt Enable

          Writing a zero to this bit has no effect.

          Writing a one to this bit will clear the Clock Ready Interrupt Enable bit and the corresponding interrupt

          request.

          Value     Description

          0         The Clock Ready interrupt is disabled.

          1         The Clock Ready interrupt is enabled and will generate an interrupt request when the Clock

                    Ready Interrupt flag is set.

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                       158

                                                                          Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.12.  Interrupt Enable Set

          Name:       INTENSET

          Offset:     0x35

          Reset:      0x00

          Property: Write-Protected

           

Bit          7                6      5               4                   3  2  1                                             0

                                                                               CFD                            CKRDY

Access                                                                         R/W                                    R/W

Reset                                                                          0                                             0

          Bit 1 – CFD: Clock Failure Detector Interrupt Enable

          Writing a zero to this bit has no effect.

          Writing a one to this bit will clear the Clock Failure Detector Interrupt Enable bit and the corresponding

          interrupt request.

          Value       Description

          0           The Clock Failure Detector interrupt is disabled.

          1           The Clock Failure Detector interrupt is enabled and will generate an interrupt request when

                      the Clock Failure Detector Interrupt flag is set.

          Bit 0 – CKRDY: Clock Ready Interrupt Enable

          Writing a zero to this bit has no effect.

          Writing a one to this bit will set the Clock Ready Interrupt Enable bit and enable the Clock Ready

          interrupt.

          Value       Description

          0           The Clock Ready interrupt is disabled.

          1           The Clock Ready interrupt is enabled.

                                                       Atmel SAM D20E / SAM D20G / SAM D20J [DATASHEET]                         159

                                                                            Atmel-42129P-SAM-D20_Datasheet_Complete-09/2016
16.8.13.  Interrupt Flag Status and Clear

          Name:     INTFLAG

          Offset:   0x36

          Reset:    0x00

          Property: -

           

Bit          7                6            5                  4             3  2  1                                             0

                                   &n