mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 32 bit ARM LPC810 für weniger als 1€ als Arduino


Autor: chris_ (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo Zusammen,

im Moment experimentiere ich mit dem LPC810.
Da der Prozessor so günstig ist, aber leider etwas kompliziert zu 
programmieren, habe ich begonnen, Arduino-kompatible Funktionen 
einzuführen. Das Blink-Beispiel des Arduino kann jetzt kopiert werden 
und in den LPC810 geladen.

Das geht denkbar einfach:

1. Beispielcode in das file sketch_ino.c kopieren
2. make eintippen
3. mit Flahsmagic das Programm auf den LPC810 laden

Es sind aber zur Zeit nur 3 Funktionen teilweise implementiert.

Könnte das für jemanden hier interessant sein?

Autor: ARM^3 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da der Prozessor so günstig ist, aber leider etwas kompliziert zu
> programmieren,

Nun, wer ARM will sollte auch ARM koennen.

Auf eine Ar*uinoblinkbibliothek hat die Welt sicher gewartet.

Autor: Ray (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino Due??

Autor: iizi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARM^3 schrieb im Beitrag #3790602:
>> Da der Prozessor so günstig ist, aber leider etwas kompliziert zu
>> programmieren,
>
> Nun, wer ARM will sollte auch ARM koennen.
>
> Auf eine Ar*uinoblinkbibliothek hat die Welt sicher gewartet.

du meinst wohl: wer nxp will, sollte nxp koennen? arm liefert nur das 
design für den kern, nxp macht die peripherie und die c-libs

Autor: Hanz Hanz (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Also da wüsste ich meine Zeit besser zu nutzen als irgendwelchen Noobs 
jetzt auch noch den ARM vorzukauen....

Autor: Moby A. (moby-project) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hanz Hanz schrieb:
> Also da wüsste ich meine Zeit besser zu nutzen als irgendwelchen Noobs
> jetzt auch noch den ARM vorzukauen....

Offensichtlich nicht, wenn die Zeit zu solchen geistlosen Postings 
langt.
Demonstriert aber ganz treffend 32bittige Herablassung und Arroganz ;-(

Autor: :-) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hanz Hanz schrieb:
> Also da wüsste ich meine Zeit besser zu nutzen als irgendwelchen
> Noobs
> jetzt auch noch den ARM vorzukauen....

Du hast bei Arduino das Prinzif des Miteinanders nicht verstanden!
Nur weil DU es nicht nutzen möchtest, bedeutet es nicht das DU dir 
erlauben kannst einen Kommentar abzuliefern der ANDEREN eventuell daran 
hindert es zu versuchen!

Wenn Du von Arduino nix wissen willst, aktivir nen SPamfilter, lass die 
Finger von den Tasten und geh dem TE nicht auf den Wecker!

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARM^3 (Gast) schrieb
>Nun, wer ARM will sollte auch ARM koennen.

Warum eigentlich genau, möchtest Du den Leuten die ARM-Prozessoren 
vorenthalten?
Guck mal hier: Beitrag "Arduino - bringt's das ?"

Autor: Franz (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal das Vorgehen.
Als Grundlage für die Lib wird folgendes Repository verwendet:
https://github.com/microbuilder/LPC810_CodeBase

Dort kann man einige Wrapperfunktionen erstellen:
void digitalWrite(uint8_t pin, uint8_t value)
{

if(value==1) LPC_GPIO_PORT->SET0 = 1 << pin;
else LPC_GPIO_PORT->CLR0 = 1 << pin;

}
...

}
void delay(uint32_t milliSeconds)
{
mrtDelay(milliSeconds);
}
....

Damit kann dann das Arduino-Blink Example kompiliert werden:
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
Das sieht doch deutlich übersichtlicher aus als das blink hier:
https://github.com/microbuilder/LPC810_CodeBase/blob/master/src/main.c

[/c]

Autor: bal (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Möcht mal wissen wer von den Arduinogegnern x86 oder x64 bis ins Detail 
kennen.

Folgerichtig dürfte man erst Konsolenprogramme fürn PC schreiben wenn 
man in der Lage ist, MMU und Co. auf Registerebene ohne 
darunterliegendem OS zu konfigurieren und sein Programm irgendwie in den 
Speicher zu laden.

Trotteln.

Autor: Ich mag das... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jeder ernstzunehmender Programmierer schreibt sich seine eigenen 
Bibliotheken oder nimmt, noch eher, bereits fertige.
Nichts anderes ist das Arduino-System - eine Sammlung vorgefertigter 
Biliotheken.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hoffentlich ist die Beta Testphase für das Neue arduino zero bald durch
http://blog.arduino.cc/2014/08/01/20-arduino-zero-dev-edition-available-for-beta-testing-join-us/

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>hoffentlich ist die Beta Testphase für das Neue arduino zero bald durch

Wie groß ist denn der Speicher des Zero?
Die SAMD21 gibt es von 32K-256K.

Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bal schrieb:
> wer von den Arduinogegnern

Der LPC810 ist grade auf Einfachheit ausgelegt und es macht nicht 
wirklich einen Unterschied ob Arduino oder direkt programmiert wird. Was 
aber klar gegen Arduino spricht, der LPC810 hat nur 4K Flash, da sollte 
man nicht mit Libraries anfangen. Übrigens auch die CMSIS für LPC8xx 
passt nicht auf den LPC810

Autor: Jojo S. (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Lothar schrieb:
> da sollte
> man nicht mit Libraries anfangen. Übrigens auch die CMSIS für LPC8xx
> passt nicht auf den LPC810

ich finde die abgespeckte microbuilder Lib recht gut und übersichtlich, 
es sind ja nur eine handvoll Komponenten drin. Richtig übel im Vergleich 
ist die LPCOpen, die passt auch erst ab LPC812. Ellenlange 
Funktionsnamen durch die Prefixe Chip_ und Board_, um ein Byte per SPI 
zu verschicken kämpft man sich durch >30 Zeilen Code.
Noch schöner finde ich die mbed lib, aber die ist auch für grössere 
Käfer, immerhin auch ab LPC812. In C++ sieht ein Pin setzen zB so aus:
DigitalOut step(p5);
step = 1;
Die Funktionalität der microbuilder LPC800 Lib bekommt man sicher auch 
noch in C++ hin.

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich finde die abgespeckte microbuilder Lib recht gut und übersichtlich,

Naja, die Arduino-lib ist halt sehr weit verbreitet. Mittlerweile 
versuchen viele Hersteller kompatible Boards zu machen.

Mittlerweile habe ich an der Lib für den LPC810 schon ein wenig weiter 
gebaut. Leider hat er keinen ADC. Es gibt ein Beispiel für eine 5Bit 
SAR, den ich gerade etwas angepasst habe.

http://blog.nano-age.co.uk/2014/08/creating-5-bit-successive-approximation.html

Ich schreibe die LIB in C, da ich auf die schnelle keinen leicht zu 
installierenden g++-arm-non-eabi für Ubuntu gefunden habe.

Das Testprogramm sieht im moment so aus:
#include "sketch_ino.h"

/*
    Arduino LPC810 compatibility test program
 */

int ledPin=2;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(ledPin, OUTPUT);
  Serial_begin(9600); // attention: slightly different syntax compared to Arduino
  Serial_println("I'm LPC810");
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);                  // wait for 00ms
  digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
  delay(100);                  // wait for 100ms
  Serial_print("ms time: ");
  Serial_printnumber(millis());
  Serial_print("ADC: ");
  Serial_printnumber(analogRead(2));
  Serial_println("");
}

Autor: chris_ (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Jetzt gibt es die Alpha-Version für die Arduino-IDE.

Damit soll sich der LPC810 direkt aus der Arduino-IDE programmieren 
lassen:

https://github.com/bobc/OpenLasp/archive/master.zip

Installation procedure:

    Copy the Arduino/hardware folder to your sketches folder
    Copy the OpenLaspExamples folder to your sketches folder
    Restart Arduino IDE

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann einen Arduino als Programmiergerät benutzen:
http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=152

Den LPC810 gibt es z.B. bei Adafruit oder Farnell.

Vielleicht hat mal jemand Lust Alpha-Tester zu spielen ;-)

Autor: TomSu (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hi,

ist das Projekt noch aktiv? Habe Interesse, zu testen. Hatte dieselbe 
Fragestellung, ob es eine Arduino Lib für LPC8xx gibt. Bin durch Google 
auf Euer Projekt gestoßen.

Gruß,

- Tom

Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da bist du etwas spät dran, die Produktion des LPC810 wurde schon 
eingestellt, da wirst du nur noch was aus Restbeständen bekommen.
Programmieren kann man den LPC auch mit einem einfachen USB-RS232 
Adapter mit TTL Pegeln und der Software FlashMagic.
Da der Käfer recht wenig Speicher hat macht da nur eine einfache Lib 
Sinn. Oder natürlich gleich Registerprogrammierung, die LPC Peripherie 
ist da wesentlich angenehmer zu programmieren als die STM32. Auf Github 
findest du z.B. https://github.com/microbuilder/LPC810_CodeBase von K. 
Townsend.
Wenn du nicht gerade eine genau passende Anwendung für den Kleinen hast 
würde ich einen der grösseren Brüder nehmen, LPC812 oder LPC824. Da es 
die nur in SMD gibt habe ich dafür Breakoutboards gemacht, davon kann 
ich bei Interesse welche abgeben.

Autor: Lutz (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Moin, ich will dir dein "Restpostengeschäft" ja nicht kaputtmachen, aber 
es gibt seit wenigen Tagen ein Breakoutboard mit dem PLC845 für etwas 
über 5 € netto (LPC845-BRK).

Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
guter Tipp, Danke.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.