=====Erste Schritte mit dem LPC810 - MCU 32-bit ARM Cortex M0 ===== Vorbereitung: Hardware: * LPC810 Chip organisieren- Heute (01.2015) sind die ersten 6 Exemplare des LPC810, im DIL-8 Bauform eingetroffen (Bezug über [[http://www.digitalsmarties.net/|JeeLabs]]). * USB to Serial Adapter bzw. Kabel aus der Bastelkiste Software: * Download der Entwicklungsumgebung LPCXpresso Windows (Current Edition wählen, zurzeit v7.5.0) von http://www.lpcware.com/lpcxpresso/downloads/windows * Download Flashtool zum übertragen der Software unter http://www.flashmagictool.com/ * Beispiel Projekt unter https://github.com/microbuilder/LPC810_CodeBase ==== Einrichten der Entwicklungsumgebung unter Windows 7 ==== === Installation === * Die Software LPCXpresso_7.5.0_254.exe auf dem Windows System installieren, zum Beispiel unter d:\nxp * Installer über LPCXpresso_7.5.0_254.exe starten * Installationsverzeichnis wählen "d:\nxp\LPCXpresso_7.5.0_254" * Alles weiter im Default belassen und installieren * Nach der eigentlichen Software Installation werden 7 USB Treiber von NXP installiert * Die Software Flash Magic installieren z.B. unter d:\tools\FlashMagic * LPC USB Treiber mit installieren === Software aktiveren === Über die Download Seite die Software als "Free Edition" aktiveren (Eingeschränkt in der Code Größe): * Auf der LPC Website http://www.lpcware.com einen Account anlegen, die Aktivierung E-Mail im Spamordner suchen und neu anmelden, Password ändern * * Über das Menü "Help->Activate->Create Serial number and register (Free Edition)" die Seriennummer anzeigen lassen und den Hacken "Open in external Browser" anwählen, mit OK Bestätigen * LPC Website wird geöffnet und über den Button "Register LPCXpresso" die Software registrieren * Der "LPCXpresso Activation Key" wird angezeigt, diesen kopieren * In der Software über den Menü Punkt "Help->Activate->Activate (Free Edition)." diesen Activation Key eintragen * Software wird neu gestartet ==== Aufbau des ersten Prototypen ==== Praktischer weise hat "CT Hacks" 4/2014 und das [[https://learn.adafruit.com/getting-started-with-the-lpc810|AdaFruit Tutorial LPC810 ]] die ersten Schritte zu einem ersten Demo Projekt gut beschrieben. === Pin Belegung des LPC810 Generell === {{ :elektronik:lpc81x:lpc810_pin_belegung_v01.png | Pinbelegung LPC810}} * TDO, TDI, TCK, TMS, und TRST — JTAG functions * PIOx_x — General purpose digital input/output port x pin x. * ACMP_Ix — Analog comparator input x. * CLKIN — External clock input * RESET — External reset input * SWDIO — Serial Wire Debug I/O * SWCLK — Serial Wire Clock. * Vdd — 3.3 V supply voltage. * Vss — Ground === Pin Belegung ISP Mode für den LPC810 === Für die In-System-Programmierung wird folgendes Pin Layout verwandt: {{ :elektronik:lpc81x:lpc810_pin_isp_v01.png | Pin Belegung In-System-Programmierung LPC810 }} === Aufbau der ersten Schaltung === Aufbau der 3,3 V Spannungsversorgung mit dem 3,3 Volt Spannungsregler [[http://www.ti.com/lit/ds/symlink/lp2950-n.pdf|LP 2950]] ACZ3,3 in der TO-92 Bauform. Die erste Schaltung frei nach dem [[https://learn.adafruit.com/getting-started-with-the-lpc810|Ada Fruit Tutorial]] sieht dann so aus: {{ :elektronik:lpc81x:lpc810_hello_world_schaltung_v01.png | lpc810 Hello World }} Erster Aufbau auf einem Steckbrett: ---- === Das erste "hello world" Beispiel === Software Projekt auf dem PC aufsetzen: * Basis Projekt unter https://github.com/microbuilder/LPC810_CodeBase aufrufen * Zip Datei "LPC810_CodeBase-master.zip" herunterladen * Im der LPCXpresso IDE als neues Projekt über "Import project(s)" importieren * Dazu in der rechten oberen Ecke in das "Quick Access" Feld "Import project(s)" eintippen und auswählen * Das heruntergeladenes Zip File im Dialog auswählen und Importieren auswählen Über das "Project/Build Project" das Projekt übersetzen. Unter "User Home\LPCXpresso_7.5.0_254\workspace\LPC810_CodeBase\Release" liegt dann die LPC810_CodeBase.bin mit dem Binären Code für den Mikrocontroller. === Binäre Datei auf dem Kontroller laden === Mit der Software "Flashmagic" (http://www.flashmagictool.com/) kann die Software auf den per USB angeschlossenen Kontroller geladen werden. FlashMagic starten und die richtigen Einstellung anwählen: * Controller Modell auswählen LPC810M021FN8 * Com Port einstellen (zuvor im Geräte Manager die Einstellung prüfen) * Baud Rate auf 115200 * Interface None (ISP) * Oscillator(MHZ) 12 * Verify after programming - check * Fill unsed Flash - check * ÜBer IPS => "Read Device Signiture" pürfen ob der lpc810 auch wirklich erkannt wird Fehler suchen, falls das nicht klappt, in meine Fall war einfach RX/TX vertauscht, wenn das dann klappt: * => Start {{ :elektronik:lpc81x:lpc810_flashmagic_v01.png?300 | lpc810 mit FlashMagic programmieren}} === Programm starten === Spannungsversorgung beenden, bzw. USB abstecken Pin 5 wieder von LOW entfernen USB und Spannungsversorgen wieder anstecken LED Blinkt! Hura!! Terminal im Flash Magic starten (Unter tools / Terminal): * {{ :elektronik:lpc81x:lpc810_flashmagic_v02.png?300 |Terminal im Flash Magic starten }} * {{ :elektronik:lpc81x:lpc810_flashmagic_v03.png?300 |Terminal im Flash Magic }} ---- ==== Arduino support package for NXP LPC chip==== Evlt. ist es dann doch etwas einfacher mit der Arduino IDE eine Dinge zu entwicklen: * https://github.com/bobc/OpenLasp ---- ==== Quellen ==== ARM Mikrocontroller - MCU 32-bit ARM CortexM0+ Microcontroller * http://www.nxp.com/products/microcontrollers/cortex_m0_m0/ * http://www.nxp.com/products/microcontrollers/cortex_m0_m0/LPC810M021FN8.html * http://www.embeddedartists.com/products/lpcxpresso/lpc812_max.php * http://www.embeddedartists.com/products/lpcxpresso/xpr_prototype.php Datenblatt: * * http://www.nxp.com/documents/data_sheet/LPC81XM.pdf ==Programmierung == * http://mbed.org/ == Tutorial == * http://learn.adafruit.com/getting-started-with-the-lpc810 * https://leanpub.com/jeebook/read ==Projekte== * http://www.hwhardsoft.de/deutsch/projekte/simon-says/ * http://www.lpcware.com/content/project/ioh/ioh-getting-started/ioh-getting-started-example-projects * http://vilaca.eu/lpc810/ * http://jeelabs.org * http://www.heise.de/hardware-hacks/links/1404150 * http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=152 * https://github.com/kodera2t/I2C_OSC2 LPC1114FN28 * http://www.hwhardsoft.de/deutsch/projekte/elektronischer-w%C3%BCrfel/ ==Debuging== * http://forum.stellarisiti.com/topic/637-black-magic-probe-for-stellaris-launchpad/ * http://www.blacksphere.co.nz/main/blackmagic == Bezugsquellen == * http://www.adafruit.com/products/1336 * http://de.farnell.com/nxp/lpc810m021fn8fp/mcu-32bit-cortex-m0-30mhz-8dip/dp/2320692?Ntt=LPC810 * http://de.farnell.com/nxp/om13053/eval-lpcxpresso-lpc812-cortex-m0/dp/2254492 * http://www.digitalsmarties.net/ * https://www.hbe-shop.de/