Forum: Mikrocontroller und Digitale Elektronik Arduino oder doch lieber ein Keil NXP ARM Board?


von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

vielleicht wurde die Frage hier schon mehrfach gestellt aber ich stehe 
am Scheideweg:

Bisher programmierte ich ARM7, so ein dickes Testboard von ebay mit 
allem möglichen dran, von Ethernet bis USD und SD karte, Potis, RS232. 
Programmieren kann ich, auch auf Hardwarebene, habe es viele Jahre 
beruflich gemacht.

Was mich aber nervt ist: Für alles und jedes Treiber schreiben zu 
müssen! Grade die SD Karte ist hochkomplex bei einem ARM, allein die 
interne Hardware des LPC 2368 versteht man erst nach Tagen oder gar 
nicht, bricht sich einen ab die zum laufen zu kriegen, ohne Messgeräte 
kaum möglich, weil man nicht weiss warum sie nicht reagiert. Ohne das SD 
Card Manual auch nicht möglich, diese Karten sind intern ebenfalls sehr 
komplex.

Fertige FATS müssen erst umständlich angepasst werden, laufen auch nicht 
auf Anhieb, zb die ChanFat. Kurz: Die Beschäftigung mit dem ARM intern, 
der nunmal nicht trivial ist kostet die meiste Zeit, die Anwendung tritt 
dabei in den Hintergrund.  USB? Wüsste ich gar nicht wie ich da anfangen 
sollte das Board mit dem PC zu verbinden, gleiches gilt für Ethernet. 
Einfach weil die Software zu komplex ist um sie "mal eben" einzubauen, 
zu verstehen und anwenden zu können.

Ist Arduino die Lösung? Oder lohnt es sich vielleicht doch lieber in ein 
Keil Board mit Grafikdisplay zu investieren, aber bitte dann mit Libary 
für das Display und wenn möglich einem RTOS, das die Hardware schon 
abstrahiert und eine dokumentierte API zur Verfügung stellt?

Arduino kommt mir noch ein bisschen vor wie "Mikrocontroller für 
Dummies" aber das Baukastenprinzip ist schon ganz clever.

von TestX .. (xaos)


Lesenswert?

wenn du keinen bock auf treiber usw. hast dann wäre ein embedded linux 
was für dich... arduino wird dich nerven wenn du schon soviel lowlevel 
zeug gemacht hast... für mal eben ne mini steuerung bauen kann man es ja 
nehmen, nur für alles das weiter geht würde ich schon zu c/c++ direkt 
tendieren..

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

ich habe mal für 12 Euro sio ein Board bestellt und einen Luftdruck 
Sensor dazu.

Beim ARM hatte ich damals keine Lust mich mit vielen einzelnen Freeware 
Tools zu beschäftigen, makefiles usw die dazu noch unter Linux laufen, 
was an sich schon eine Herausforderung ist. Damals kaufte ich die Rowley 
Crossworks Umgebung, die All-In-One ist, d.h. alles kann aus dieser 
Umgebung heraus gemacht werden, von der Codeerstellung, automatischer 
Startup Code, Setup des Cores mit ein paar Klicks (Code Generator) und 
Source Code Debugging über die JTAG. Was beim PIC die MPLAB eben ist. 
Diesen Komfort möchte man natürlich nicht missen, denn die zeit von der 
Programmänderung bis zum Test sollte kurz sein und mit wenigen Klicks 
ablaufen.

Wenn mir jemand sagt: Es gibt für den ARM7 eine Library, die sich an 
meine Hardware anpassen lässt, quasi nur noch Defintions der Pins, wäre 
ich sofort wieder beim  ARM7.

Linux? Das wäre ok aber wie aufspielen? Linux ist ja nicht ganz klein, 
verlangt diverse Hardware usw.

Ich habe dieses Board hier:

http://www.micro4you.com/store/lpc2368-development-board.html

Grüße,
Christian

von Christian J. (elektroniker1968)


Lesenswert?

PS:

Linux Boards basieren auf dem ARM9:

http://microcontrollershop.com/default.php?cPath=154_170_280

Inwieweit da noch einzelne Pins rausgeführt sind weiss ich nicht und 
meine Rowley Shell unterstützt den ARM9 nicht.

Aber das ist ja geil hier:

http://microcontrollershop.com/product_info.php?cPath=154_170_280&products_id=5561

Ein kleiner PC, Tastatur, Maus, Bildschirm, Ubuntu, alles auf einer 
Platine.

von TestX .. (xaos)


Lesenswert?

wie wärs mit einem raspberry pi oder beagle bone und dann schön c++ ?
kommt halt drauf an was du mit machen willst..

von Christian J. (elektroniker1968)


Lesenswert?

Rasberry Pi klingt auch gut, schnell mal drüber gelesen bei wiki. So, 
muss ins Bett jetzt, morgen um 6 wieder raus...

von Peter D. (peda)


Lesenswert?

Christian J. schrieb:
> Grade die SD Karte ist hochkomplex bei einem ARM

Ist sie bei anderen auch.
Komplexe Sachen bleiben komplex, egal auf welcher Maschine. Im 
Gegenteil, auf nem 8Bitter mit kleinem Adreßraum wird es sogar 
komplexer.

Christian J. schrieb:
> allein die
> interne Hardware des LPC 2368 versteht man erst nach Tagen oder gar
> nicht

Ist beim AVR einfacher.
Allerdings auch nur, wenn Du diesen ganzen Overhead (SD, Ethernet, USB, 
FAT, GUI usw.) nicht brauchst.
Wer viele Bells & Whistles haben will, braucht diesen ganzen 
Treiberschrunz und ist mit einem fertigen OS am besten bedient.

Christian J. schrieb:
> Arduino kommt mir noch ein bisschen vor wie "Mikrocontroller für
> Dummies"

Die 8Bitter sind eben reine Steuerungsknechte, also mit Sensoren, 
Aktoren, Tasten, LEDs, Relais, Motoren in knallharter Echtzeit fühlen 
sie sich am wohlsten. Große Datenmengen schaufeln, ist nicht ihr Ding.

von Christian (Gast)


Lesenswert?

Hallo Peter,

ich habe mir jetzt mal diesen Linux Knécht bestellt, Raspberry. Scheint 
sehr gut dokumentiert zu sein und hat eine große Community dahinter. 
Extension Cards gibt es auch, um mehr Ports zu haben, eine Uhr usw.
Für das Geld jedenfalls unschlagbar und den Treiberdöns muss ich nicht 
selbst schreiben, auch keine extra IDE kaufen. Als Steuerknecht ist der 
aber weniger geeognet, eher als Multimedia im Brotkastenformat. Schauen 
wir mal, freue mich schon wenn er von Pollin ankommt.

Was zur SD Karte beim LPV2368: Wenn Du das slebst aufsetzen willst musst 
du alles scelbst schreiben, vom Bitlayer bis zur FAT. MMC über SPI ist 
nicht schwer, das habe ich mit PIC gemacht, ganz einfach die Karte als 
unendliche Reihe von 256 Byte Paketen betrachtet. Aber bis du die 
Support Hardware des ARM zum Laufen kriegst sind 2-3 Monate im Land und 
ohne Messgeräte nicht möglich, nur trial & error wäre das.

Gruss,
Christian

von Lothar (Gast)


Lesenswert?

Christian schrieb:
> SD Karte beim LPC2368

Man kann ja auch ein Board nehmen wo das also Demo dabei ist:

https://www.olimex.com/Products/ARM/NXP/LPC-P2378/

Aber der LPC2xxx ist ohnehin veraltet besser LPC17xx:

https://www.olimex.com/Products/ARM/NXP/LPC1766-STK/

von Wusel D. (stefanfrings_de)


Lesenswert?

> Grade die SD Karte ist hochkomplex bei einem ARM

Das hat doch nichts mit dem Mikrocontroller zu tun! Die SD Karte 
kommuniziert seriell, im einfachsten Fall per SPI. Das kann jeder 
Mikrocontroller auf die gleiche Weise.

Die hier im Forum hinterlegte avrfat32 kann SD Karten sowohl über 
hardware-SPI, als auch über drei GPIO Pins ansteuern. Sie ist gut 
kommentiert und sauber strukturiert.

Ich brauchte nur einen einzigen Nachmittag, um mich mit ihr zu 
beschäftigen und sie für ein Xmega Board zu portieren. Wenn Du schon mit 
dem ARM vertraut bist, dann sollte das für Dich auch nicht aufwändiger 
sein.

Arduino bietet viele fertige Libraries. Da Du aber schon mit ARM 
vertraut bist, könnte mbed (vor allem wegen der Libraries) für Dich 
attraktiv sein.

http://mbed.org/

Falls Dir das alles nicht zusagt, würde ich auch zu einem embedded Linux 
raten.

von W.S. (Gast)


Lesenswert?

Christian J. schrieb:
> Bisher programmierte ich ARM7, so ein dickes Testboard von ebay mit
> allem möglichen dran, von Ethernet bis USD und SD karte,

Christian J. schrieb:
> Grade die SD Karte ist hochkomplex bei einem ARM, allein die
> interne Hardware des LPC 2368 versteht man erst nach Tagen

nanana, mein Lieber.

Wenn dir das Verständnis des SDIO bzw. MCI Interfaces schon zu hoch ist, 
dann frag ich mal, was du denn so an echt benutzbaren Produkten mit 
ARM's bisher gemacht hast? guck ruhig mal hier:
http://www.mikrocontroller.net/attachment/183024/LPC2478_SDIO.zip
das läuft - und zwar ohne daß ich dafür aufwendige Meßgeräte benötigt 
hätte.

Christian J. schrieb:
> bricht sich einen ab die zum laufen zu kriegen, ohne Messgeräte
> kaum möglich, weil man nicht weiss warum sie nicht reagiert.

Die eigentliche frage ist doch: Was soll dabei herauskommen? Bei einem 
blanken uC ist man direkt an der Hardware und kann damit Geräte bauen, 
ohne für die benötigten Peripherieteile auch noch Treiber für Linux 
oder WinCE schreiben zu müssen. dafür muß man aber eben sich mit der 
Peripherie befassen, die man benutzen will. Sei froh, daß es sowas wie 
Chan's FF gibt. Das bißchen Anpassen ist nun wahrlich fast nix im 
Vergleich zum kompletten Selberschreiben.

Im Übrigen kann man mit ARM-Controllern (sowie auch diversen anderen 
Typen.. jaja ;-) ) auch sinnvolle Dinge bauen, OHNE SD-Karten und OHNE 
USB und OHNE Netzwerkanschluß benutzen zu müssen. Die Welt ist voll 
davon.

W.S.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

Hallo,

bitte nicht falsch verstehen: Ich habe mal eine API für SD karten 
geschrieben für den PIC mit CCS Compiler auf SPI Basis. Dazu habe ich 
mir die Spec der Karten vorgenommen, gründlich durchgearbeitet und 
anschliessend die SPI entsprechend programmiert, so dass ich einen 
Treibersatz hatte, der einen Block schreiben und lesen kann an jeder 
Stelle der Karte. Mehr braucht man erstmal nicht.

Den ARM Code im Zip File habe ich mal eben überflogen, auch dort scheint 
die SPI Lösung genommen worden zu sein, aber nicht mal eine SPI 
verwendet worden zu sein, aber es gibt ja noch das MMC protokoll. Und 
der 2368 ARM hat eine komplette Montur an Bord, die vieles davon abnimmt 
die Karte anzusteuern aber die ist mir zu kompliziert die zu 
konfigurieren. Es gibt eine diskio.c die das macht aber ein Brief mit 
sieben Sigeln und nahezu unkommnetiert. Sie funktioniert aber. Die 
ChanFat habe ich verwendet beim ARN ohne den Code anzuschauen, damals 
unter DOS ca 1994 wusste ich noch wie eine FAT funktioniert, stand alles 
im "DOS intern", der Bibel für programmierer von PC damals. Die ChanFat 
funktioniert einfach, keine Fehler beim Kompilieren.

Mit dem Arduino bin ich nach 2 Tagen schon ganz gut dabei, ist sehr 
einfach, einfach die Libs raussuchen die jemand geschrieben hat, deren 
Klassen verwenden und ein paar Drähte zum Board stecken für den Sensor.

Nur als Beweis, hier mal meine API für PICs für MMC von 2006, läuft 
einwandfrei.

von Neo (Gast)


Lesenswert?


von Lothar (Gast)


Lesenswert?

Christian J. schrieb:
> Den ARM Code im Zip File habe ich mal eben überflogen, auch dort scheint
> die SPI Lösung genommen worden zu sein, aber nicht mal eine SPI
> verwendet worden zu sein, aber es gibt ja noch das MMC protokoll. Und
> der 2368 ARM hat eine komplette Montur an Bord, die vieles davon abnimmt
> die Karte anzusteuern aber die ist mir zu kompliziert die zu
> konfigurieren.

Genau so ist es doch angeschlossen und in der Demo programmiert (MCI):

https://www.olimex.com/Products/ARM/NXP/LPC-P2378/

von Christian J. (elektroniker1968)


Lesenswert?

Neo schrieb:
> 
http://www.kickstarter.com/projects/435742530/udoo-android-linux-arduino-in-a-tiny-single-board?ref=card
> Ne Mischung aus Raspberry Pi und Arduino

Logisch, dass es schnell immer noch etwas Besseres gibt, wenn der Erste 
auf dem Markt ist aber nach dem Motto kann man jedes Jahr was neues 
anfangen. Trotzdem nett aber da ist mir ein Laptop doch lieber, denn in 
die Richtung geht das ja.

Sowas habe ich noch hier aus den 80igen, nannte sich "Mikro Professor", 
Eingabe im Adress-Op Code Format .... leider wertlos heute aber damals 
habe ich in Tabellen umgerechnet und eingetippt. Und noch EPROMS 
gebrannt im eigenen Brenner am C64. Wahnsinn....

http://www.mikrocontroller.net/attachment/69015/DSCN0723.JPG

von W.S. (Gast)


Lesenswert?

Christian J. schrieb:
> Den ARM Code im Zip File habe ich mal eben überflogen, auch dort scheint
> die SPI Lösung genommen worden zu sein, aber nicht mal eine SPI
> verwendet worden zu sein...

Törööö! Gröhl....

Ich hätte nicht gedacht, daß du deine ersten Bemerkungen noch 
übertreffen kannst. Junge, das ist ne SD-Bedienung per dediziertem 
SDIO-Interface mit 4 Bit parallel, so wie es baugleich sowohl in NXP's 
LPCxxx als auch in ST's STM32xxx enthalten ist. Nix SPI. Mit 
Software-SPI hatte ich das mal in einem LPC2214 gemacht, lief auch.

Ich habe inzwischen den Eindruck, daß du deine Hobby-Prioritäten lieber 
neu ordnen solltest.

W.S.

von Christian J. (elektroniker1968)


Angehängte Dateien:

Lesenswert?

>> *** Definition der allgemeinen SDIO Fehlernummern *****/

Ok.... auf den zweiten Blick sehe ich es. Werde es mal ausprobieren.

Sind das die einzigen Funktionen, die man nutzen kann? Zusätzlich zu 
allen Infos, die in den variablen noch stehen? Ich weiss nicht was die 
FAT Routinen für Inputs benötigen, ob das reicht? Die discio.c. die ich 
habe sieht sehr anders aus.

extern bool SD_DriveInit    (void);
extern bool SD_ReadBlock    (dword SecNum, dword *readbuff);
extern bool SD_WriteBlock   (dword SecNum, dword *writebuff);

Welches FAT System kann ich den da drauf aufsetzen, ohne viel zu ändern?
PS: Ich frage weil das alles lange her ist bei mir,  nicht weil ich 
alles weiss. Ich habe mehr als 8 Jahre nichts mehr damit gemacht....

von Arduino P. (arduinopilot)


Lesenswert?

Ich würde die empfelen nicht das Arduino zu benutzen weil wen ich lese 
was du schon gemacht hast she ich das du Ahnung hast... Und Arduino ist 
nicht umbedingt ein "Mikrocontroller für Dummies" aber er ist eher was 
für Einsteiger.

Ich habe grade angefangen einen Blog über Arduino zu unterhalten der 
sich an Einsteiger wendet. Der Link ist hier: 
http://arduino-pilot.blogspot.de/ dort ist auch der Syntax beschrieben.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo Arduiono Pilot,

abgesehen davon dass gestern Schwimmbadwetter war und noch 
Modellflugplatz (geile Thermik) kam auch der Raspberry an. Nur mal kurz 
in Betrieb genommen am Flachbildfernseher im Wohnzimmer. Wahnsinn was so 
ein kleines Ding kann. Nicht der schnellste aber sicherlich der kleinste 
PC.

Arduino ist klasse für die schnelle Nummer. Die Sprache lernt man in 2 
Tagen wenn man C und C++ bzw Java kann. Die Oberfläche ist leider 
minimalistisch und das Debuggen fehlt leider ganz. Das Flash wird daher 
ganz schön strapaziert aber der Stein ist ja PDIP und daher 
austauschbar. Was ich richtig gut finde am Arduino (Einplatinencomputer 
habe ich ja schon vor 20 Jahren gebaut....) ist die Klassenbibliothek, 
damit man sich mit der Hardware nicht befassen, das Rad immer wieder neu 
erfinden muss. Habe nur wenige Stunden gebraucht einen GPS String aus 
meiner alten GPS RS232 Maus von 2002 auszulesen und auf dem Display 
darzustellen. Vorausgesetzt jemand schreibt die Libs, stellt sie ins 
Netz kann damit ein grosser Bereich der bekannten intelligenten Sensoren 
und Aktoren abgedeckt werden. Bei mir hauptsächlich Servos für Modelle.

Gruss,
Christian

von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

ich habe mir für das Arduino Mega Board einige Strippen gekauft udn 
stelle fest, dass diese Pins in den Buchsenleisten allesamt wackeln. 
Kein Pin hat wirklich halt da drin, die fallen quasi von allein wieder 
raus, so gering ist die Federkraft. Bei einigen etwas fester, bei 
anderen total locker.

Kennt da einer eine Abhilfe? Dürfte ja bei allen so sein denke ich. So 
auf jeden Fall nicht benutzbar :-((

Gruss,
Christian

von Arduino P. (arduinopilot)


Lesenswert?

Also ich hab grade einen UNO auf dem Tisch und hab mir das Mal angeguckt 
bei mir halten die strippen da drin ... ich benutze Klingeldraht 0,6mm².

von franz (Gast)


Angehängte Dateien:

Lesenswert?

Die Buchsen sind für diese Stifte gemacht:
Reichelt:
MPE 087-1-036 :: Stiftleisten 2,54 mm, 1X36, gerade

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.