Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

K
(Werbung für sinnlosen Webshop entfernt)
 
(15 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
ARM ist die Bezeichnung für eine 32-bit-Mikrocontroller-Architektur.  
+
{{Ausbauwunsch|Vorteile/Nachteile gegenüber AVRs, Hersteller, Bezugsquellen...}}
Namensgebend ist die englische Firma ARM Limited. Diese Firma produziert selbst keine Mikrocontroller, vertreibt aber Lizenzen an Lizenznehmer, die ARM-basierte Mikrocontroller entwickeln, fertigen und vermarkten. ARM Controller werden daher von vielen Herstellern produziert, auch von dem Hersteller [[Atmel]], der im Roboternetz durch die AVR Controller recht bekannt ist.
+
ARM ist die Bezeichnung für eine schnelle 32-bit-Mikrocontroller-RISC-Architektur.  
ARM Mikrocontroller bieten beachtliche Leistungsmerkmale zu einen günstigen Preis, weshalb sich diese Leistungsklasse sehr rasant verbreitet hat. ARM Mikrocontroller bilden das Herz vieler eingebetteter Systeme (Embedded Systems).  
+
Namensgebend ist die englische Firma ARM Limited. Diese Firma produziert selbst keine Mikrocontroller, vertreibt aber Lizenzen an Lizenznehmer, die ARM-basierte Mikrocontroller entwickeln, fertigen und vermarkten. Die Controller werden von sehr vielen Herstellern produziert, auch von dem Hersteller [[Atmel]], der im Roboternetz durch die AVR Controller recht bekannt ist. Verbreiteter sind jedoch Philips (NXP) ARM7 Controller als LPC2xxx in verschiedenen Ausstattungen sowie STM32Fxxx Controller von STMicroelectronics.  
Da die Anwendung von ARM Controllern gewöhnlich weit komplexer als von AVR Controllern ist, sind diese bislang bei Bastlern wenig verbreitet, was auch daran liegen mag, dass die ARM-Familie nur in SMD-Gehäusen gefertigt wird.
+
 
 +
Als verschiedene Leistungsklassen gibt es am unteren Ende Cortex M0, M3 und M4 und die älteren ARM7. ARM7 und Cortex M0 und M3 Mikrocontroller bieten beachtliche Leistungsmerkmale zu einen günstigen Preis, weshalb sich diese Leistungsklasse sehr rasant z.B. in MP3-Playern verbreitet hat. ARM9 Mikrocontroller bilden das Herz vieler eingebetteter Systeme (Embedded Systems) und bieten meist komplexe Funktionen und werden in WLAN-Router oder PDAs eingesetzt, sind aber für den Bastler auf Grund der hohen Packungsdichte (PQFP,BGA) kaum selbst zu verarbeiten. Die kleinen Cortex M0 sind immer noch leistungsfähiger als z.B. ein 8-Bit AVR.
 +
 
 +
Kleine Schwierigkeiten für den Bastler entstehen auch bei den kleineren ARM's: Die µC sind nur als SMD zu bekommen und viele (vor allem ARM7) benötigen 2 Versorgungsspannungen (z.B. 1,8 V und 3,3 V). Entsprechend, sind diese bislang bei Bastlern bisher weniger verbreitet. Es gibt jedoch auch diverse Ausführungen als "Stamp" oder komplette Experimentalboards incl. SD/MMC-Kartenleser, Bluetooth und USB, Ethernet und was das Herz sonst noch erfreut.
 +
 
 +
Dank des Bootloaders im Controller sind die Prozessoren mit normalen RS232 Schnittstellen programmierbar. Als Toolchain kann man einen dem WinAVR ähnlichen WinARM mit GNU gcc Compiler und Betriebssystemen von z.B. von FreeRTOS, UTOS, tn-Kernel oder bei ARM9-Systemen ucLinux bis hin zu Windows CE nutzen. Als einfache Plattform für erste Experimente kann z.B. ein ausrangierter WLAN-Access point oder PDA dienen, zu dem es Docu und ein System wie DD-WRT im Netz gibt. Wie man die diversen Geräte hackt, ist im Web einschlägig beschrieben. Für einfache Aufgaben wie Linien folgen/Schalter abfragen ist so ein ARM9 System etwas "oversized" aber wenn man dem Bot etwas mehr Intelligenz gönnen möchte (USBCam, WLAN, Ethernet, GPS, oder Dienste wie Webserver/SSH, eigenständige räumliche Orientierung), kommt man an diesen komplexeren Systemen kaum vorbei. Ein denkbares Szenario wäre z.B. die Kopplung eines oder mehrerer ARM7 (als ausführende, zeitkritische Einheiten) und einem ARM 9 Prozessors (als "denkende" Einheit) mittels I2C, CAN, RS423 oder RS485. (Was natürlich statt des ARM7 auch mit kleinen AVR CPUs geht). Aber auch ein ARM7 System mit 512KB Flash und 32KB Ram wie bei diversen LPC2138 Stamps (LPC2148 mit USB+8KRam DMA) kann schon einiges.
 +
 
 +
Der Einstieg in die ARM-Architektur ist mit C Kenntnissen nicht schwieriger als bei jeder anderen CPU und die Leistungsmerkmale von 30 (ARM7) bis weit über 200 (ARM9) MIPS oder Speicherverwaltung bis in den Megabyte Bereich (ARM9) sprechen für sich.
 +
 
 +
== Vergleich mit 8 /16 Bit µCs ==
 +
=== Vorteile gegenüber 8 Bit µCs ===
 +
* schnell, vor allem wenn mit 16 Bit oder 32 Bit Zahlen gerechnet wird
 +
* sehr leistungsfähige Peripherie (AD, Timer, UART) teils auch USB, CAN oder Ethernet
 +
* oft recht viele IO-Pins
 +
* Modelle mit großem Flash-speicher verfügbar (z.B. 1 MBytes) und ohne Einschränkung nutzbar
 +
* fertige Platinen ("Stamp", "Evalution-module", Breakout-boards, BeagleBone, Raspberry Pi, FOX Board G20, Aria G25) sind teils sehr günstig
 +
* JTAG-Interface ist günstig zu haben
 +
* geringer Stromverbrauch im Vergleich zur Leistung
 +
* Betrieb ab ca. 3 V mit voller Geschwindigkeit
 +
* leistungsfähige Betriebssysteme (z.B. Linux) einsetzbar
 +
 
 +
=== Nachteile gegenüber 8 Bit µCs ===
 +
* reine µC nur als SMD Version. Durch den geringen Pin Abstand (meist 0,5 mm) ist es sehr schwer hier selbst geätzte Platinen zu nutzen.
 +
* mit extra Platine oft teurer als 8 Bit µC. Auch reduziert sich damit die Auswahl der µCs deutlich und die mechanische Größe nimmt zu.
 +
* Timing durch Waitstates, und ggf. Puffer nicht so leicht berechenbar
 +
* teils relativ langsamer Zugriff auf IO Register
 +
* nur 3.3 V als Ausgangsspannung - ggf. Pegelwandler nötig
  
 
==Siehe auch==
 
==Siehe auch==
Zeile 9: Zeile 35:
  
 
==Weblinks==
 
==Weblinks==
 +
 
* http://arm.com/products/CPUs/architecture.html
 
* http://arm.com/products/CPUs/architecture.html
 +
* http://www.mikrocontroller.net/articles/ARM
 +
* http://www.freertos.org/
 +
* http://www.uclinux.org/
 +
* http://raspberrypi.org
  
 
[[Kategorie:Microcontroller]]
 
[[Kategorie:Microcontroller]]
 
[[Kategorie:Grundlagen]]
 
[[Kategorie:Grundlagen]]
 +
[[Kategorie:Abkürzung]]

Aktuelle Version vom 23. August 2014, 17:47 Uhr

Dieser Artikel ist noch lange nicht vollständig. Der Auto/Initiator hofft das sich weitere User am Ausbau des Artikels beteiligen.

Das Ergänzen ist also ausdrücklich gewünscht! Besonders folgende Dinge würden noch fehlen:

Vorteile/Nachteile gegenüber AVRs, Hersteller, Bezugsquellen...


ARM ist die Bezeichnung für eine schnelle 32-bit-Mikrocontroller-RISC-Architektur. Namensgebend ist die englische Firma ARM Limited. Diese Firma produziert selbst keine Mikrocontroller, vertreibt aber Lizenzen an Lizenznehmer, die ARM-basierte Mikrocontroller entwickeln, fertigen und vermarkten. Die Controller werden von sehr vielen Herstellern produziert, auch von dem Hersteller Atmel, der im Roboternetz durch die AVR Controller recht bekannt ist. Verbreiteter sind jedoch Philips (NXP) ARM7 Controller als LPC2xxx in verschiedenen Ausstattungen sowie STM32Fxxx Controller von STMicroelectronics.

Als verschiedene Leistungsklassen gibt es am unteren Ende Cortex M0, M3 und M4 und die älteren ARM7. ARM7 und Cortex M0 und M3 Mikrocontroller bieten beachtliche Leistungsmerkmale zu einen günstigen Preis, weshalb sich diese Leistungsklasse sehr rasant z.B. in MP3-Playern verbreitet hat. ARM9 Mikrocontroller bilden das Herz vieler eingebetteter Systeme (Embedded Systems) und bieten meist komplexe Funktionen und werden in WLAN-Router oder PDAs eingesetzt, sind aber für den Bastler auf Grund der hohen Packungsdichte (PQFP,BGA) kaum selbst zu verarbeiten. Die kleinen Cortex M0 sind immer noch leistungsfähiger als z.B. ein 8-Bit AVR.

Kleine Schwierigkeiten für den Bastler entstehen auch bei den kleineren ARM's: Die µC sind nur als SMD zu bekommen und viele (vor allem ARM7) benötigen 2 Versorgungsspannungen (z.B. 1,8 V und 3,3 V). Entsprechend, sind diese bislang bei Bastlern bisher weniger verbreitet. Es gibt jedoch auch diverse Ausführungen als "Stamp" oder komplette Experimentalboards incl. SD/MMC-Kartenleser, Bluetooth und USB, Ethernet und was das Herz sonst noch erfreut.

Dank des Bootloaders im Controller sind die Prozessoren mit normalen RS232 Schnittstellen programmierbar. Als Toolchain kann man einen dem WinAVR ähnlichen WinARM mit GNU gcc Compiler und Betriebssystemen von z.B. von FreeRTOS, UTOS, tn-Kernel oder bei ARM9-Systemen ucLinux bis hin zu Windows CE nutzen. Als einfache Plattform für erste Experimente kann z.B. ein ausrangierter WLAN-Access point oder PDA dienen, zu dem es Docu und ein System wie DD-WRT im Netz gibt. Wie man die diversen Geräte hackt, ist im Web einschlägig beschrieben. Für einfache Aufgaben wie Linien folgen/Schalter abfragen ist so ein ARM9 System etwas "oversized" aber wenn man dem Bot etwas mehr Intelligenz gönnen möchte (USBCam, WLAN, Ethernet, GPS, oder Dienste wie Webserver/SSH, eigenständige räumliche Orientierung), kommt man an diesen komplexeren Systemen kaum vorbei. Ein denkbares Szenario wäre z.B. die Kopplung eines oder mehrerer ARM7 (als ausführende, zeitkritische Einheiten) und einem ARM 9 Prozessors (als "denkende" Einheit) mittels I2C, CAN, RS423 oder RS485. (Was natürlich statt des ARM7 auch mit kleinen AVR CPUs geht). Aber auch ein ARM7 System mit 512KB Flash und 32KB Ram wie bei diversen LPC2138 Stamps (LPC2148 mit USB+8KRam DMA) kann schon einiges.

Der Einstieg in die ARM-Architektur ist mit C Kenntnissen nicht schwieriger als bei jeder anderen CPU und die Leistungsmerkmale von 30 (ARM7) bis weit über 200 (ARM9) MIPS oder Speicherverwaltung bis in den Megabyte Bereich (ARM9) sprechen für sich.

Vergleich mit 8 /16 Bit µCs

Vorteile gegenüber 8 Bit µCs

  • schnell, vor allem wenn mit 16 Bit oder 32 Bit Zahlen gerechnet wird
  • sehr leistungsfähige Peripherie (AD, Timer, UART) teils auch USB, CAN oder Ethernet
  • oft recht viele IO-Pins
  • Modelle mit großem Flash-speicher verfügbar (z.B. 1 MBytes) und ohne Einschränkung nutzbar
  • fertige Platinen ("Stamp", "Evalution-module", Breakout-boards, BeagleBone, Raspberry Pi, FOX Board G20, Aria G25) sind teils sehr günstig
  • JTAG-Interface ist günstig zu haben
  • geringer Stromverbrauch im Vergleich zur Leistung
  • Betrieb ab ca. 3 V mit voller Geschwindigkeit
  • leistungsfähige Betriebssysteme (z.B. Linux) einsetzbar

Nachteile gegenüber 8 Bit µCs

  • reine µC nur als SMD Version. Durch den geringen Pin Abstand (meist 0,5 mm) ist es sehr schwer hier selbst geätzte Platinen zu nutzen.
  • mit extra Platine oft teurer als 8 Bit µC. Auch reduziert sich damit die Auswahl der µCs deutlich und die mechanische Größe nimmt zu.
  • Timing durch Waitstates, und ggf. Puffer nicht so leicht berechenbar
  • teils relativ langsamer Zugriff auf IO Register
  • nur 3.3 V als Ausgangsspannung - ggf. Pegelwandler nötig

Siehe auch

Weblinks


LiFePO4 Speicher Test