LPC2000

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Die LPC2000 von NXP (ehemals Philips) waren die ersten wegen ihrer einfachen Handhabung hobbytauglichen ARM-basierten Mikrocontroller. Entsprechend sind auch zum LPC2000 mehr Informationen verfügbar als z.B. zum AT91SAM7, und man findet leichter Hilfe bei Problemen. Ein weiterer Vorteil des LPC2000 ist der einfach zu benutzende serielle Bootloader, mit dem sich der Controller auch ohne JTAG-Interface einfach programmieren lässt. Ansonsten ist die Hardwareausstattung recht ähnlich im Vergleich zum AT91SAM7. Hervorzuhebende Unterschiede sind das schnellere Flash-ROM des LPC2000, die etwas höhere Taktfrequenz, beim gleichen Gehäuse mehr I/O-Pins und die größere Auswahl von Modellen im Low-End-Bereich (LPC2103).

  • 2-64 kB SRAM.
  • bis zu 512 kB Flash-ROM-Programmspeicher (LPC2138/2148/2368/2378)
  • vorinstallierter serieller Bootloader mit automatischer Baudrate-Erkennung
  • JTAG-Interface
  • ETM Trace-Interface
  • 2-4 UART-Schnittstellen (bei einigen Modellen auch mit allen "Modem"-Leitungen (Handshake, Ring, DTR etc.)
  • 1-2 SPI-Schnittstelle(n), bei einigen Modellen auch SSP-Schnittstelle(n) (erweiterte Konfigurationsmöglichkeiten und Funktionen)
  • Hardware-I2C(I²C)-Schnittstelle(n)
  • teilw. mit CAN-Schnittstellen
  • Mit Ausnahme der ersten Chips LPC2104/5/6 haben alle Typen einen integrierten A/D-Wandlern
  • teilw. mit D/A-Wandler (LPC2132/34/36/38, LPC2142/44/46/48)
  • 2 32 Bit Timer, zusätzlicher 32-bit Timer mit 6 PWM-Ausgängen, RTC, Watchdog
  • bis 75 MHz Taktfrequenz
  • LQFP48-Gehäuse (LPC210x) bis LQFP144 (LPC22xx)
  • LPC213x und LPC214x benötigen zum Betrieb 3V
  • Für die anderen Typen werden Core-Spannung 1,65-1,95V und IO-Spannung 3,0-3,6V benötigt (d.h. zum Betrieb sind 2 Versorgungsspannungen erforderlich)
  • geringe Leistungsaufnahme (ca. 60 mW bei 60 MHz und Endlosschleife)
  • 5V-tolerante IOs
  • USB 2.0 (LPC214x und LPC23xx/24xx)
  • Ethernet MAC (LPC23xx/24xx)
  • Jeweils eigene DMA und eigener AHB-Bus für Ethernet, USB und sonstige schnelle Schnittstellen (LPC23xx und LPC24xx)
  • RTC (teilweise mit eigenem Oszillator)

Verwendung des Bootloaders

Benötigte Software gibt es unter http://groups.yahoo.com/group/lpc21isp (Registrierung nötig, Source Code und Binaries in der File Section dieser Gruppe)

  1. BSL-Jumper setzen
  2. Reset-Knopf drücken
  3. lpc21isp starten
    • Linux: lpc21isp programm.hex /dev/ttyS0 115200 14746
    • Windows: lpc21isp programm.hex com1 115200 14746

Die Übertragung des Programms zum Controller sollte jetzt beginnen. Um das Programm zu starten den BSL-Jumper entfernen und Reset drücken.

Alternativ kann unter MS-Windows das von Philips bereitgestellte "Flash-Tool" oder Flash Magic von Embedded Systems Academy genutzt werden. Diese Programmiersoftware bieten eine grafische Benutzeroberfläche.

Sowohl lpc21isp also auch das Philips-Tool und Flash Magic können Reset und BSL per DTR/RTS-Signal steuern, bei entsprechender Beschaltung auf dem Board muss man somit keine Jumper setzen (vgl. z.B. Schaltpläne der Evaluation-Boards von Keil).

Allgemeine Hinweise

  • Der Softwareschutz bei den LPC2104/5/6 ist nicht implementiert (Stand 4/2005). Dies wird Anfang 2007 geändert. Ein Schutz des geistigen Eigentums ist also bei diesen 3 Controllern derzeit nicht gewährleistet. Andere Controller aus der LPC2000-Serie sind davon nicht betroffen.
  • Auf vielen (Stand 4/2005) LPC2000 existiert ein Fehler bei der Verwaltung der Interrupt-Flags ("race condition", "timer issue"). Der Fehler und mögliche Abhilfen sind in den Errata von NXP erläutert.
  • Die CAN Controller in den LPC2100,2200 sind so gründlich mit Bugs und Designfehlern gespickt, dass letztlich nur ein kleiner Bruchteil der dokumentierten Funktionen nutzbar ist. Die Bugs finden sich im Errata Sheet, die Konstruktionsfehler darf man selber finden.
  • Bei Nutzung des SPI-Interfaces im "Master-Mode" ist bei einigen LPC2000-Typen auf die richtige Beschaltung des "Chip-Select"-Pins zu achten (vgl. Manuals und Erratas).
  • Viele Fehler in der "ersten Generation" der ICs wurden bei neueren Versionen behoben. Vgl. Datenblätter/Errata zu LPC2xxx/01.
  • Bei neueren LPCs (LPC213x/4x) sollte die aktuelle Fassung der NXP ISP-Software genutzt werden (Stand 3/2006: V2.2.2, erhältlich auf der NXP Web-Site). Ältere Versionen funktionieren nicht zuverlässig oder garnicht.
  • LPC23xx/24xx werden von der Philips ISP-Software nicht unterstützt. Alternativen: Flashmagic oder lpc21isp.
  • Bei Problemen immer auch das Archiv der LPC2000 yahoo-Gruppe absuchen. Dort finden sich, leider oft etwas zerstreut, sehr nützliche Hinweise. Die Anmeldung bei der Gruppe (yahoo-Account erforderlich) gewährt Zugang zum Download-Bereich der Gruppe. Dort finden sich sehr nützliche Beispielprogramme, Libraries und Dokumente.
  • Bei Entwicklungen mit der GNU-Toolchain erweisen sich Beispiele von kommerziellen Compiler/IDE-Anbietern, die ebenfalls den GNU-Compiler nutzen, oft als gute Informationsquelle vor allem bei Einstellungen zum Startup-Code oder im Linker-Script. (vgl. u.a. Rowley, Keil, Anglia-Designs)
  • siehe auch: LPC2100-Tips im ARMuC Wiki (englisch)

Siehe auch

Weblinks