AT91SAM
Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Die AT91SAM-Reihe von Atmel basiert auf dem ARM7TDMI-Kern (AT91SAM7) bzw. auf dem ARM926EJ-S-Kern (AT91SAM9). Innerhalb der AT91SAM7 gibt es eine weitere Unterteilung in AT91SAM7S, AT91SAM7SE, AT91SAM7X und AT91SAM7A. Die Ausstattung des AT91SAM7S ähnelt der der LPC2000-Reihe, speziell der des LPC2148 (USB), es gibt aber ein paar wichtige Unterschiede:
- Der Flash-Speicher des AT91SAM7 ist langsamer als der des LPC2000. Deshalb beschleunigt es die Ausführung häufig, Thumb- statt ARM-Code zu verwenden, da letzterer längere Befehlswörter besitzt und deshalb der Ladevorgang aus dem Speicher mehr Zeit benötigt. Um maximale Performance zu erzielen führt man zeitkritische Funktionen aus dem (schnelleren) RAM aus und compiliert diese im ARM-Modus.
- Der AT91SAM7 hat einen DMA-Controller, von Atmel "PDC" genannt, mit dem die Übertragung größerer Datenmengen von und zur Peripherie sehr viel schneller und einfacher wird. Weitere Informationen im Artikel DMA.
- Der AT91SAM7 hat ein synchrones serielles Interface (SSC), mit dem sich z. B. Audio-DACs und -ADCs ansteuern lassen.
Das Hauptmerkmal der AT91SAM7SE ist das externe Memory-Interface.
Das Hauptmerkmal der AT91SAM7X sind die zusätzlich integrierten Ethernet- und CAN-Interfaces.
Die AT91SAM7A sind für Steuerungsanwendungen gedacht. Sie besitzen weniger RAM als die AT91SAM7S aber dafür gleich mehrere CAN-Interfaces.
Weitere Informationen
- AT91SAM7S mit OpenOCD programmieren
- Produktwebsite
- Forum und Infos
- ARM7MODA Atmel AT91SAM7S based development boards
- ARM projects - AT91SAM7S-Beispiele von Martin Thomas
- SAM7 Remap & Flash Programming How To
- DMA-Beispiel für AT91SAM7
- TWI-Beispiel für AT91 TWI Beispiele und dessen BUGs
- Olimex AT91SAM7X256-Board SAM7-EX256
- Atmel AT91SAM7/9 based development boards
- SAM-BA 2.12 for linux [download http://www.atmel.com/System/GetBinary.ashx?target=tcm:26-42279&type=soft&actualTarget=tcm:26-42281]
SAM steht für Smart ARM-based Microcontrollers