LPC2000-Boards von Olimex

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

LPC-P2148

Das LPC-P2148 und auch andere Development-Boards für LPC2000-Contoller von Olimex haben zwei kleine "Macken", die es zu umschiffen gilt, wenn man schnell und einfach Programmcode mit dem vorinstallierten Bootloader in den Flash-Speicher des LPC übertragen will.

  • Das Autobauding des Bootloaders erlaubt nur mit einem Baudratenquarz eine Übertragung mit maximaler Transferrate (115200).
  • Der Pin zur Aktivierung des Bootloaders muss per Jumper (oder Taster) manuell bedient werden, obwohl es die Möglichkeit gibt dies automatisch über eine Leitung der seriellen Schnittstelle zu steuern.

Ist auf dem Board kein Baudratenquarz sondern z. B. ein 12MHz Quarz für USB-Kompatibiltät oder für "gerade" CAN-Baudraten, beträgt die maximal mögliche Transferrate 38400bps. Beim Philips Flash-Utility (für MS Betriebssystem) kann man dies in der grafischen Nutzeroberfläche einstellen, bei lpc21isp ist dies per Kommanodzeile anzugeben:

lpc21isp lpc2148_USB.hex  /dev/ttyS1 38400 12000

Die automatische Steuerung von Reset und BSL (per RTS und DTR) kann ebenfalls in der grafischen Nutzeroberfläche des Programms von Philips eingestellt werden. Bei lpc21isp dient dazu die Option -control, z. B.

lpc21isp -control lpc2148_USB.hex  /dev/ttyS1 38400 12000

Die Olimex-Boards wie z. B. deas LPC-P2148 unterstützen die automatische Steuerung von BSL (EnableBootloader-Pin, "Bootloader-Select") jedoch nicht (im Gegensatz zu anderen Evaluation-Board, z. B. denen von Keil). Die eigentliche Funktion der Option -control kann sich am LPC-P2148 also nicht entfalten. Zwar kann ein Reset von lpc21isp ausgelöst werden, aber der EnableBootloader-Pin kann von der Software nicht gesteuert werden. Dieses Feature spart beim Entwickeln aber einige Zeit, daher hier eine kleine Umbauanleitung:

R12 (1k) wird ausgelötet am GND-Pin kommt der Emitter eines NPN-Transistors hin, der Kollector kommt an den 2. Pin freigewordenen Pin. Jetzt noch eine Z-Diode (Kathode an die Basis, Anode an GND) und einen R(bei mir 18k weil er gerade da war ) zum Strombegrenzen (zwischen Kathode bzw Basis und RTS von RS232_0 - also Pin 7). Schon kann lpc21isp selbst den Bootloader starten und nach dem Flashen das Programm laufen lassen :)

Auf allen Olimex-Boards ist das JTAG-Interface der Controller auf einen 20-poligen Steckverbinder herausgeführt. Alternativ zur Programmierung des Flash-Speichers über den Bootloader bietet sich die Programmierung über JTAG-Schnittstelle mittels OpenOCD an. OpenOCD unterstützt günstige JTAG-Hardware (Wiggler-clones und FTDI FT2232-basierte Geräte).

--Hans 19:34, 23. Dez 2005 (CET) (leicht modifiziert von mthomas 29.10.2006)

LPC-P2129

Wird mit einen 14,7MHz Baudratenquarz ausgeliefert. Das vermeidet das o.A. ISP-Problem, auf Kosten eines anderen Problems: Die Bitraten der CAN-Schnittstellen werden letztlich daraus abgeleitet. Die üblichen CAN-Bitraten lassen damit aber nicht exakt erzeugen - bei niedrigen Raten (<= 125kbps) immerhin noch mit akzeptabler Abweichung, darüber sollte der Quarz getauscht werden.

Auch hier lässt sich der Bootloader nur per Jumper, nicht jedoch via serieller Schnittstelle aktivieren.