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


von chris_ (Gast)


Angehängte Dateien:

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?

von ARM^3 (Gast)


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.

von Ray (Gast)


Lesenswert?

Arduino Due??

von iizi (Gast)


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

von Hanz Hanz (Gast)


Lesenswert?

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

von Moby A. (moby-project) Benutzerseite


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 ;-(

von :-) (Gast)


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!

von Franz (Gast)


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 ?"

von Franz (Gast)


Lesenswert?


von chris_ (Gast)


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:
1
void digitalWrite(uint8_t pin, uint8_t value)
2
{
3
4
if(value==1) LPC_GPIO_PORT->SET0 = 1 << pin;
5
else LPC_GPIO_PORT->CLR0 = 1 << pin;
6
7
}
8
...
9
10
}
11
void delay(uint32_t milliSeconds)
12
{
13
mrtDelay(milliSeconds);
14
}
15
....

Damit kann dann das Arduino-Blink Example kompiliert werden:
1
// the setup function runs once when you press reset or power the board
2
void setup() {
3
  // initialize digital pin 13 as an output.
4
  pinMode(13, OUTPUT);
5
}
6
7
// the loop function runs over and over again forever
8
void loop() {
9
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
10
  delay(1000);              // wait for a second
11
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
12
  delay(1000);              // wait for a second
13
}
Das sieht doch deutlich übersichtlicher aus als das blink hier:
https://github.com/microbuilder/LPC810_CodeBase/blob/master/src/main.c

[/c]

von bal (Gast)


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.

von Ich mag das... (Gast)


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.

von Stefan (Gast)


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/

von chris_ (Gast)


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.

von Lothar (Gast)


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

von Jojo S. (Gast)


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:
1
DigitalOut step(p5);
2
step = 1;
Die Funktionalität der microbuilder LPC800 Lib bekommt man sicher auch 
noch in C++ hin.

von chris_ (Gast)


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:
1
#include "sketch_ino.h"
2
3
/*
4
    Arduino LPC810 compatibility test program
5
 */
6
7
int ledPin=2;
8
9
// the setup function runs once when you press reset or power the board
10
void setup() {
11
  // initialize digital pin 13 as an output.
12
  pinMode(ledPin, OUTPUT);
13
  Serial_begin(9600); // attention: slightly different syntax compared to Arduino
14
  Serial_println("I'm LPC810");
15
}
16
17
// the loop function runs over and over again forever
18
void loop() {
19
  digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
20
  delay(100);                  // wait for 00ms
21
  digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
22
  delay(100);                  // wait for 100ms
23
  Serial_print("ms time: ");
24
  Serial_printnumber(millis());
25
  Serial_print("ADC: ");
26
  Serial_printnumber(analogRead(2));
27
  Serial_println("");
28
}

von chris_ (Gast)


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

von chris_ (Gast)


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 ;-)

von TomSu (Gast)


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

von Johannes S. (Gast)


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.

von Lutz (Gast)


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).

von Johannes S. (Gast)


Lesenswert?

guter Tipp, Danke.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.