Neuer Motor gefällig? –
Pin kompatibler Cortex™ Nachfolger für Atmels ARM7™ SAM7S-Derivate

Atmel SAM3-Zirkel

Von Dipl.Ing. (FH) Dirk Jansen, PM Atmel, MSC Vertriebs GmbH

Viele möchten ARM® Cortex™-M MCUs für ihr Neu-Design einsetzen. Ist es da nicht verlockend, dies ohne zusätzliches PCB Re-Design, nur durch Tausch der alten ARM7™ MCU gegen eine pin- und funktions-kompatible Cortex™-M3 MCU zu verwirklichen?

Atmels neue SAM3S und SAM3N Flash Cortex™-M3-Serien sind nämlich kompatibel zu der bewährten SAM7S Flash ARM7™-Serie und können mit leistungsfähigeren Peripherals, mehr Performance und größeren Speichern aufwarten.

Es war einmal in 2004 … SAM7S

Die bewährte SAM7S-Familie, die auf dem ARM7TDMI™ Core basiert, wurde von Atmel bereits im Jahre 2004 als erste Single-Chip-ARM7-Familie eingeführt. Sie hat bis zu 512 K Flash bei bis zu 64 K SRAM, Boot ROM, Full-Speed USB Device, 3 UARTs, I²C, SPI, einen achtkanaligen 10-bit ADC, PWM-Einheit und drei 16-bit Timer sowie einige Systemtimer. Verpackt wurde der SAM7S in LQFP/QFN 48- und 64-pin Gehäusen. Ein externes Businterface kannte der SAM7S nicht. Dieses wurde dann später mit der SAM7SE Familie eingeführt.

SAM3, die Cortex™-M3-Familien

Ungefähr sechs Jahre nach Einführung des ersten SAM7 stellte Atmel nun die nächste Generation von Single-Chip ARM®-Produkten vor, die Cortex™-M3 basierten SAM3-Flash-Familien. Hier wird nicht gekleckert, sondern gleich geklotzt: Atmel kommt im ersten Step mit 84 Derivaten in den turbulenten Cortex™-M Markt und spielt dabei ganz vorne in der ersten Liga mit. Und das Jahr 2011 verspricht noch einiges an interessanten Produktankündigungen.

Was ist neu?

Atmel lizensierte den Cortex™-M3 Rev. 2 mit MPU (nicht im SAM3N) und vollem Debug-System ohne ETM.

Atmel SAM3 Roadmap 2011

Atmel ging über auf 128-bit breites Embedded Flash mit Prefetch-Einheit, um die Ausführungsperformance aus dem Flash beispielsweise auf circa 86 DMIPs (SAM3U bei 96 MHz Taktung) zu erhöhen. Ein SAM7S brachte es auf maximal 38 DMIPs im Thumb Modus bei 55 MHz und Codeausführung aus dem 32-bit Flash.

Auch wurde die Stromaufnahme bei niedrigen Taktfrequenzen deutlich verringert, um beispielsweise die Low-Power Metering-Applikationen, welche mit niedrigeren Taktungen arbeiten, zu begünstigen. SAM3 MCUs arbeiten sogar „Batterie-kompatibel“ im Spannungsbereich von 1.62 bis 3.6V, lediglich der ADC benötigt mindestens 2V analoge Versorgung.

Auch wurden 8- und 16-bit breite externe Businterfaces in die mindestens 100-pin Derivate integriert, an denen statische Speicher wie FLASH, SRAM, memory mapped IO (LCD, FPGA) aber auch NAND Flash (ECC ist im SAM3 integriert) betrieben werden können.

Wer mehrphasige PWM mit Totzeitengenerator für Motoren oder Umrichter benötigt, findet im SAM3 nun endlich Motor-kompatible PWM-Einheiten, die bis zu 4 + 4 Phasen erzeugen können, mit DMA und Notstopp-Support.

SAM3 "Specials"…

Ganz neu ist der DMA gestützte Parallel I/O Capture Modus, der paralleles Einlesen von I/O Pins via DMA ermöglicht. So können beispielsweise „an der CPU vorbei“ Kameramodule ausgelesen werden und die Bilddaten ins RAM geschrieben werden.

Schutzmechanismen, wie Memory Protection Unit (MPU), eindeutige Chip-Seriennummern, CRC Unit und Busscrambler vereinfachen die Überwachung der Programmintegrität und vereiteln unerlaubte Kopierversuche.

Schnelle Signale an den Ports und am externen Bus werden durch integrierte Dämpfungswiderstände im Zaum gehalten und ersparen lästige Layoutänderungen und Abstrahlprobleme.

Last but not least optimierte Atmel das Power-Management und integrierte genaue RC-Oszillatoren, die mit Hilfe der PLLs den vollen Systemtakt generieren können. Batteriegestützte RTC Timer und RC-Oszillatoren erlauben jetzt sogar die Implementierung von Uhrenfunktionen.  Der Leistungsverbrauch im aktiven- und Standby Modus reduzierte sich um ca. 40%. Die Aufweckzeiten habe sich dank schnellem RC-Oszillator auf wenige Mikrosekunden reduziert.

Integrierte Speicher und Gehäuse

Größere Speicher werden in Kürze die Grenzen der SAM7 Welt sprengen und ermöglichen grundlegende Updates ihrer SAM7 Firmware auf ganz neue Features oder Protokoll Stacks. Wenn das Flash wächst, muss das SRAM folgen: Atmel wird SRAM bis zu 128 KB integrieren.

Die Verpackung der SAM3S hat sich nicht geändert. Es stehen weiterhin 48-, 64-pin LQFP- und QFN-Gehäuse zur Verfügung. Neu sind die 100-pin LQFP/BGA-Varianten, die beim SAM3S neben dem höheren I/O Count auch ein kleines 8-bit Businterface (EBI) spendiert bekommen hat. Auf dem Atmel ATSAM3S-EK Evalbaord hat man so am EBI ein kleines QVGA TFT Modul angeschlossen.

Kompatibilität zur SAM7S-Familie

Mit Blick auf die vielen im Markt befindlichen SAM7S-Applikationen, hat Atmel gleich zwei neue SAM3-Familien vorgestellt, die pin- und funktionskompatible zu den SAM7S-Familien sind und eine leichtes Upgrade auf Cortex™-M ermöglichen.

Die SAM3S-Familie ist als mögliches Upgrade zu verstehen, da hier deutlich mehr Peripherals, Timer und auch neue Features integriert wurden.

Atmel SAM3S-Blockdiagramm

Wer allerdings nur die Rechenleistung eines Cortex™-M3 benötigt, aber auf einige Peripherien verzichten kann, der kann gegebenenfalls auf die USB freie SAM3N-Familie downgraden.  Auch SAM3N ist pin-kompatibel zur SAM7S-Familie und zu allen SAM3S-Varianten.

Atmel SAM3N-Blockdiagramm

Wirklich kompatibel? Im Prinzip ja …

SAM3S ist nicht binär kompatibel zu SAM7S. Ein wenig Hand muss bei der Migration angelegt werden.  Folgende Dinge sind zu beachten:

  • Die SAM7S Firmware muss hinsichtlich Befehlssatz (Thumb2 versus Thumb/ARM), Interruptverabeitung, System-Timern, Bitmanipulation, Sleep Modes an die moderne Cortex-M Architektur angepasst werden. Nur so können die Vorteile des Cortex™ Cores voll ausgeschöpft werden.

  • Der Code muss mit einem Cortex-M3 Compiler kompiliert werden.
    Angenehmer Nebeneffekt: Der Flashhunger kann wegen der besseren Codeeffizienz kleiner ausfallen

  • Die Treiber für die Peripheriemodule müssen gegebenenfalls an die neuen Features angepasst werden. Hier ist bei den Standard Peripherals (Timer, UART, SPI) mit sehr kleinen Änderungen zu rechnen. Analoge Peripherals (12-bit ADC) zum Beispiel sind gänzlich neu und müssen natürlich reprogrammiert werden.
    Atmel unterstützt alle Peripherien durch entsprechende kostenlose Treiber (Software- Package) und reduziert damit den Entwicklungsaufwand auf das nötigste. Hierbei sind die Low-Level-Driver CMSIS konform.

  • Folgende Hardware-Randbedingungen des SAM3S und SAM3N sind zu beachten:

    • I/Os sind nicht 5V tolerant (SAM7S 5V-tolerant)
    • Der XIN Level bei externer Takteinspeisung ist 3.3V (SAM7S 1.8V)
    • Ein externes PLL-Filter ist beim SAM3 nicht mehr nötig.
      • Nur 48-pin-Package: Das Pin PLLRC muss beim SAM3S auf VDDIO gelegt werden.
    • Prüfen Sie Ihren SRAM-Bedarf.
  • So hat die 256 K-Variante SAM7S256 64 K SRAM, die entsprechende SAM3S4 256 K- Variante nur 48 K SRAM.

  • Schauen Sie sich die elektrischen Spezifikationen im SAM3-Datenblatt an und vergleichen Sie die für Ihre Applikation relevanten Werte.

Features

AT91SAM7S

ATSAM3S

ATSAM3N

System

ARM7TDMI™ 55 MHz

Cortex™-M3 64 MHz with MPU

Cortex™-M3 48 MHz

Supply

3.3 V

1.62 V … 3.6 V

1.62 V … 3.6 V

Powerconspt. active/stdby

approx. -40%

approx. -40%

Packages

LQFP/QFN 48/64

LQFP/QFN 48/64
LQFP/BGA 100 (EBI)

LQFP/QFN 48/64
LQFP/BGA 100

Memory (Flash/SRAM)

16K … 512K / 4K … 64K

16K … 1MB(*)/8K … 128K(*)

64K … 256K / 8K … 24

CRC Unit (DMA)

SAM-BA Boot

1st Generation (Recovery proc.)

2nd Generation

2nd Generation

External Bus

-

In 8-bit in 100-pin packages

-

I/O

max 32, 5 V tolerant

max 47 (3.3 V)

max 47 (3.3 V)

-

Input Capture Mode (DMA)

-

Pull-Up

Pull-Up / Pull-Down

Pull-Up / Pull-Down

Oscillator/ PLL

32 KHz RC (20%), 1 x PLL

2 x PLL, 32 KHz RTC (Crystal)
4/8/12 MHz RC <3%

2 x PLL, 32 KHz RTC (Crystal)
4/8/12 MHz RC <3%

Peripherals

10-bit ADC 384 Ksps

12-bit ADC 1 Mbps

10-bit ADC 384 Ksps

-

12-bit DAC 2 Msps

10-bit DAC

2+1 UARTs

2+2 UARTs with SPI, Manchester

2+2 UARTs with SPI, Manchester

PWM

New Motor PWM

New Motor PWM

USB FS Device 4 EP

USB FS Device 8 EP

-

TWI Master only, no PDC

1 x TWI Master, Slave , Multimaster, PDC

2 x TWI Master, Slave , Multimaster, PDC

Analog Comp, Temp. Sensor

Analog Comp, Temp. Sensor

3 x 16-bit Timer

6 x 16-bit Timer

6 x 16-bit Timer

-

Quadratur Encoder

-

Misc.

Free Qtouch® Support

Free Qtouch® Support

-

Unique ID (Serial number)

Unique ID (Serial number)

Atmel SAM3N-EK

Starthilfe

MSC stellt das ready-to-start AT91SAM3S-Startup Paket und AT91SAM3N-Startup Paket  vor, bestehend aus dem jeweiligen SAM3 Evaluation Kit und dem SAM-ICE JTAG Debugger.

Einer umfangreichen und schnellen Evaluation steht somit nichts mehr im Wege.

Atmel und MSC veranstalten im Juni 2011 wieder SAM3 Hands-on Workshops.