LPC1xxx für Umsteiger

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

Eine immer wiederkehrend Frage hier im Forum ist: "Auf welchen Mikrocontroller soll ich umsteigen?"

Die Frage kann vermutlich kaum eindeutig beantwortet werden, da es sehr viele wirklich gute Mikrocontroller gibt. Grundsätzlich kann man sagen, daß die schon länger existierenden Controllerfamilien wie AVR oder PIC oder ... (8-Bit)
sehr wohl viele sinnvolle Anwendungsbereiche haben, und für sehr viele unserer Anforderungen ausreichend sind.
Jedoch möchte man vielleicht nach vielen Jahren 8-Bit einfach mal Erfahrungen mit einem anderen µC sammeln... mal was "neues" machen...egal warum, Umsteigen lohnt sich auf jeden Fall, egal auf welche Prozessorfamilie. In diesem Artikel wird die 32-Bit Familie LPC1xxx von LPC kurz betrachtet. Die 32-Bit Controller der STM32-Familie werden in den Betrag STM32_für_Einsteiger und STM32 sehr schön vorgestellt, und sehr rudimentär mit dem LPC1xxx verglichen.

Die aktuellen 32-Bit Controller (zumindest von LPC) kostet weniger, und bringen mehr Features mit als wir von vielen 8-Bit Controllern kennen.
Natürlich ist der Preis nicht alles, aber warum mehr ausgeben, wenn es nicht zwingend erforderlich ist.

Beispiel:
Der preisgünstigste AVR-MEGA kostet 1€70 bei R*: ATMEGA 48PA-AU, TQFP32, 20MHz, 4kB-Flash, 512B-RAM, 256B-EEPROM, 2x8-Bit, 1x16Bit Timer, RT-Counter, 8x 10Bit ADC1xUSART, 1xSPI, 1xIIC,Power Consumption at 1MHz, 1.8V, 25°C Active: 0.2mA, Power-down: 0.1µA, Power-save: 0.75µA(inc. 32kHz RTC).
Der preisgünstigste XMEGA ATXMEGA 16A4-AU kostet bei R* schon 3€95 bei 32MHz.

Der preisgünstigsten CORTEX-M0 von NXP kostet 1€49[1€99] bei DARISUS für den LPC1111FHN33/101 [LPC1113FBD48/301], QFN33 [TQFP48], 50MHz, 8[24]kB-Flash, 2[4]kB-RAM, 2x16-Bit, 2x32Bit Timer mit je 4 Compare-Registern, RT-Counter, 8x 10Bit ADC1xUSART, 1[2]xSPI, 1xIIC,Power Consumption at 12MHz, 3V, 25°C Active: 2.2mA, Power-down: 5µA, Power-save: 0.2µA Power Consumption at 3MHz (XL-Type), 3V, 25°C Active: 0.7mA, Power-down: 2µA, Power-save: 0.2µA.

Wie man schon an diesem einfachen Beispiel sieht, erhält man für einen geringeren Preis einen größeren Speicher UND mehr Peripherie UND mehr Rechenleistung.

Die Mikrocontrollerfamilie LPC1xxx von NXP ist auch sehr vielfältig einsetzbar und bietet eine unglaubliche Auswahl an verschiedensten Bauformen und Ausstattungsvarianten. Von Cortex-M0 1€00 bis 4€99 und 20- bis 64-Pins und 50MHz zu Cortex-M3 zu 1€49 bis 6€59 sowie 33 bis 208 Pins und 72 bis 120MHz mit USB, 512KB-Flash, DMA, 12-Bit AD und TCP-IP Netzwerk. Der preisgünstigste Cortex-M3 LPC 1313 FBD 48/01 mit 72MHz kostet bei DARISUS 2€20, 100MHz d.h. den LPC1751FBD80 gibts bei elpro schon für 3€59. Hier findet sich für jeden Einsatzfall der passende Mikrocontroller. Quelle der genannten Preise: elpro oder DARISUS Die komplette LPC1xxx Familie ist durchgängig mit einem kostenlos verfügbaren Tool, einem C/C++ Compiler/Programmer/Source-Level Debugger zu bedienen, und unterstützt auch die größeren Doppelprozessoren des Cortex-M4 Serie. Ein Wechsel des Mikrocontrollers innerhalb der LPC1xxx-Familien ist codetechnisch ohne großen Aufwand möglich. Hier eine Übersicht über alle hier veröffentlichten Artikel zum LPC1xxx LPC1x.


Einstiegsvoraussetzungen

In diesem Artikel wird davon ausgegangen, dass Elektronik-Kenntnisse, grundlegende Kentnnisse im Programmieren, und zumindest Grundkenntnisse in C-Programmierung vorhanden sind. Im Zweifelsfall lieber die Artikel Absolute Beginner durcharbeiten, sowie die anderen Artikel aus der Kategorie Grundlagen. Das wars schon. Ansonsten gilt:

  1. Entwicklungskit kaufen, z.B. bei Watterott
  2. Beschreibungen durchlesen LPCXpresso-Entwicklungskits (PDF) und Beschreibung
  3. Entwicklungspacket runterladen LPC-Expresso (Kostenlos mit Debugger)
  4. Die Entwicklungsumgebung installieren
  5. Nach der Installation - die übrigens sehr einfach in einem Rutsch und nicht separat in Eclipse und Compiler verläuft - kann man das File "getting started" öffnen, und wie dort beschrieben loslegen.

Unterschiede zu 8-Bit-µCs

  • Mehr Features
  • Viele verschiedene Gehäuseformen
  • Jedes Peripheriemodul separt zu 100% kontrollierbar
  • Mehr Rechenleistung
  • Für jeden Pin gibt es mindestens den Mode "inactive, pulldown, pullup, repeater, hysterese_disabel, hysterese_enable, special_function" die auch kombiniert werden können, sowie z.B. knapp 100 32-Bit Register für die Konfiguration des UART.
  • Alles und Jedes muß konfiguriert werden, zumindest beim Einstieg eine weitere Hürde, aber kein Problem.

Diese Hinweise sollen zeigen, daß diese µC Familie sehr viele Möglichkeiten bietet. Die vielen Register stellen kein Problem dar diesen Prozessor zu konfigurieren, sind beim ersten mal jedoch ein wenig mehr Arbeit als bei den meisten 8-Bit Controllern. Der Weg dies sauber durchzuführen ist immer identisch, egal ob 8-Bit, STM32 oder LPC1xxx, und führt nur über das Datenblatt zum Ziel.

Für den Einstieg ist die Nutzung des mit der Programmierumgebung gelieferten Beispielcodes sehr zu empfehlen.

Sonstige Informationen

  • Spannungsversorgung 1,8 bis 3,3V
  • DIL Gehäuse: den LPC111xFD gibt es relativ neu auch im DIL-28 Gehäuse, Bezugsquellen werden asap hier genannt, sobald verfügbar.
  • Ein Programmieradapter ist bereits im Kit enthalten.

Achtung: über den gleichen Adapter kann man das Target vollständig debuggen, sogar auf C-Ebene. Wie man für eigene Applikationen einen Programmieradapter anaßt, ist hier ausführlich beschrieben.

  • Bezugsquelle der Controller: Fa. elpro oder DARISUS Fast alle Controller sind unter den hier angegebenen Adressen sehr preisgünstig zu finden, inzwischen auch der im SOT20. Ein DIL28 ist bereits auf dem Markt, und wird für Privatanwender in 2014 erwartet.

Weblinks, Foren, Tutorials