Hallo,
ich programmiere seit einiger Zeit embedded Systeme auf der PPC Platform
(beruflich). Jetzt möchte ich auch privat in die embedded Welte
einsteigen. Dazu habe ich mir die ARM7 Platform ausgesucht. Jetzt stellt
sich die Frage: Was nehmen?
Ich finde die ARM7 von Atmel recht symphatisch, da hier viel
Documentation und User-Erfahrung im Internet zu bekommen ist. Leider
finde ich kein Entwicklerboard, das meinen Anforderungen genügt. Da
werde ich eher mit einem µC von NXP fündig (LCP2378 von Olimex).
Ich benötige an einem Entwicklerboard:
- Ethernet (100Mbit)
- 2x CAN 2.0B
- USB
- SD-Card
- JTAG
Optional wären:
- Buttons
- Display
Kennt jemand ein Board mit einem Atmel µC, das meine obigen
Anforderungen erfüllt?
Ist ein NXP Board ebenfalls eine gute Wahl (insbesondere, was den
Support im Internet angeht)?
Vielen Dank für Infos...
Lars
NXP ARM LPC 2368
LPC Board aus China für 45€ (siehe Fotobeitrag oben)
Rowley Crossworks IDE für 120€ mit GCC Compiler (top!)
USB Wiggler von Elektronikladen für 40€
es gibt hunderte Boards, für jeden etwas. Olimex ist schon gescheit.
fertig ist das einfach zu bedienende System.
Mit Armel habe ich keine Erfahrung., rate aber aus Erfahrung von
Freeware Developer Kits ab (Winarm, Yago etc) , da diese eine erhebliche
Kenntnis von Makefiles, Linkerskripten, Startup Code etc erfordern, was
Dir Kauflösungen abnehmen.
Hi
Ich habe das SAM7-EX256 von Olimex.
Kommt sehr nahe an deine Anforderungen heran, es fehlt nur 1xCAN.
Bin mit dem Board sehr zufrieden. Zum Programmieren / Debuggen nutze ich
den ARM-JTAG-TINY von Olimex. Dieser ist jedoch ein reiner FTDI
Signalumsetzer und macht bei mir mit manchen USB Ports und Hubs
Probleme. Auch werden von Olimex dafür keine 64 Bit Treiber
bereitgestellt, man kann sich aber die Original FTDI Treiber
entsprechend anpassen.
Ich kann dir auch nur Empfehlen die eine IDE zu kaufen, vor allem wenn
du noch nicht so viel Erfahrung mir Mikrocontrollern hast.
Der Einstieg mit OpenOCD und ähnlichen ist schon sehr frustrierend.
Hierbei bieten sich Rowley Crossworks ARM und IAR EWARM an.
Crossworks arbeitet direkt mit dem JTAG-TINY, EWARM nur mit dem neuen
JTAG-EW.
Allerdings finde ich dass der IAR Compiler mit der beste Compiler für
embedded ist. Vor allem wenn man auf verschiedenen Architekturen
arbeitet.
Er kostet aber auch mehr.
mfg Manuel
>Jetzt möchte ich auch privat in die embedded Welt einsteigen.>Dazu habe ich mir die ARM7 Platform ausgesucht.
Wieso ARM7?
Der ist veraltet. Der Nachfolger ist der Cortex-M3. Tu Dir selber einen
Gefallen und fang gleich mit dem an. Ist wesentlich besser, in
schnelleren Varianten erhältlich (100MHz), sowie deutlich
einsteigerfreundlicher und schlicht und einfach viele Krücken des ARM7
hat der nicht mehr.
Devboard gibt es in Kürze:
http://www.luminarymicro.com/products/dk-lm3s9b96.html
Bietet alles, was Du suchst.
Danke für diesen interessanten und unvoreingenommenen Beitrag.
Auf den Hinweis auf nicht lieferbare Controller und allgemeine
Vorurteile haben wir schon gewartet.
>Devboard gibt es in Kürze:>http://www.luminarymicro.com/products/dk-lm3s9b96.html>Bietet alles, was Du suchst.
Page not found...
Der 8051 ist bereits fast 30 Jahre alt und wird noch immer genutzt und
er scheint auch immer wieder in neuen Inkarnationen auf dem Markt. Und
sag nicht, das er keine "Krücken" besitzt.
Wer hier den ARM7 verteufelt, der hat noch nicht mit ihm gearbeitet.
Kai F. schrieb:
> Wer hier den ARM7 verteufelt, der hat noch nicht mit ihm gearbeitet.
Oder er hat, und hat bei der Gelegenheit über gewisse
Konstruktionsfehler geflucht. ;-)
Aber du hast natürlich Recht. Nur weil grad eine neue Sau mit bestimmten
Vorteilen durchs Dorf getrieben sind die bisherigen Viecher durchaus
nicht veraltet.
Vielen Dank für die interessanten Vorschläge.
Das Board mit dem LCP2368 habe ich auch schon gefunden. Wenn man ein
wenig trixt, dann hat dieses Board sogar 2x CAN. Durch Recherche über
dieses Board bin ich auch auf den LCP2378 und damit zum Olimex-Board
gekommen.
Der Hinweis mit der Kauf-IDE ist durchaus wertvoll. Ich werde das
ernsthaft ins Kalkül ziehen, obwohl ich mit Makefiles und auch mit BSPs
(sprich Startup-Code) keine Probleme habe. Dennoch beugt man diversen
Fehlerquellen und Stolpersteinen vor, indem man die problematischen
Stellen von vornherein vermeidet.
Das SAM7-EX256 hatte ich auch in Erwägung gezogen. Allerdings fehlt mir
da eigentlich der zweite CAN. Falls ich keine bessere Lösung finde, ist
dieses Board sicherlich weiter auf meiner Liste.
Die IAR Workbench hätte ich auch gerne. Mir sind aber mehr als $3000 als
Hobby-Investition für den Einstieg eindeutig zu viel.
Die Crossworks Tools werde ich mir mal genauer ansehen. Dennoch kommen
auch die freien Tools durchaus in Frage.
Ein Dev-Board, das "in Kürze" erhältlich ist, nutzt mir heute nichts. Zu
oft habe ich auf Hersteller gesetzt, deren Produkt "in Kürze erhältlich"
war, um dann nach ewigen Terminverschiebungen eben doch bei einer
anderen Lösung zu landen. Ich werde das trotzdem mal beobachten. Sollte
das Board verfügbar werden, bevor ich die Tools gekauft habe, bekommen
sie auch eine Chance. Dennoch vielen Dank für den Tipp.
Ich habe mit einem anderen ARM7 Derivat herumgespielt, für das es quasi
noch nichts gab. Dabei habe ich mit gnuarm / yagarto angefangen.
Rückwirkend muss ich sagen, dass sich die freien Umgebungen dahin
gelohnt haben, dass ich lernen musste, was ein Compiler, Linker usw. ist
und wie die einzelnen Komponenten ineinander spielen.
Auf der anderen Seite haben die kommerziellen Compiler einige Vorteile:
kürzere Entwicklungszeiten, viele fertige Libraries usw.
Crossworks kann ich auch empfehlen. Baut auf gnu-gcc auf. Ich hatte über
die Uni für einige Zeit die "Education" Version im Einsatz und war mit
dem Support sehr zufrieden.
Dirk hat recht cortex-A/R/M serien werden langfristig ARM palleten
ersetzen aus vielen gründen (unter anderem weil ARM das so will). Ob man
es will oder nicht. Das bedeutet aber nicht daß es keine ARM Prozessoren
mehr geben wird. Ich würde dir auch cortex-m3 (ST, luminary oder bald
auch NXP ;-) ) empfehlen.
Gruß
Kai F. schrieb:
> Der 8051 ist bereits fast 30 Jahre alt und wird noch immer genutzt
..
> Wer hier den ARM7 verteufelt, der hat noch nicht mit ihm gearbeitet.
Nö, gerade die 8051-Benutzer mögen den ARM-Cortex-M3, weil er auch die
wunderschönen Bitbefehle hat und man nicht von hinten durch die Brust
ins Auge auf Set- und Clear-Register schreiben muß.
Außerdem ist die Interruptlogik des ARM-Cortex-M3 bedeutend einfacher
und leistungsfähiger, als die des ARM7.
Ich sehe keinerlei Grund, wenn man eh neu anfängt, noch auf den alten
ARM7 zu setzen.
Die ARM-Cortex-M3 sind verfügbar in Volume-Production von Luminary, ST,
z.B. Farnell hat sie als Lagerware. Und Atmel, NXP wollen auch
mitmachen.
Peter
Also was die Entscheidung zwischen AT91SAM7 und LPC23XX sollte man auch
den Flash zugriff berücksichtigen vor allem wenn man den ARM(32Bit) Code
und nicht Thumb(16Bit) Code verwendet.
Das kann nämlich beim AT91SAM7 über 30MHz Takt zu Wartetzeiten im
Prozessor führen das dieser Prozessor auf Thumb Code optimiert ist und
ein 16Bit Flash Interface hat).
Wogen die meisten LPC23XX mit maximaler Geschwindigkeit ARM Code
abarbeiten, da 32Bit Flash Interface.
Außerdem fehlt dem gennanten Atmel das externe Speicherinterface.
Nur so als Anmerkung da man solche Sachen bei der Prozessor auswahl
leicht übersieht.
Allerdings würde ich auch gleich mit einem Cortex M3 anfangen!
N'abend,
Wunderbar. Es kristallisiert sich heraus dass man zwar durchaus noch auf
ARM7 setzten kann, wenn man jedoch sowieso völlig neu einsteigt, dann
lohnt es sich gleich den Cortex-M3 in Betracht zu ziehen. Ich werde mich
also mal auf die Suche nach einem passenden µC machen.
Was Entwicklerboards mit Cortex angeht, ist die Auswahl momentant noch
ziemlich dünn.
Mir ist kein (lieferbarer) M3 Controller bekannt der deine Anforderungen
erfüllt. Der einzige Lumi mit CAN und Ethernet hat kein USB. Und kein
STM32 hat Ethernet.
Die LPC17xx sind jetzt auch schon seit einem halben Jahr überfällig.
Immerhin sollen sie Pinkompatibel zu den 23ern sein. Man kann also -
wenn es sie irgendwann nochmal geben sollte - eine bestehende Platine
damit bestücken und den M3 testen.
Die LPC23xx und AT91SAM7X haben ETH, CAN und USB on-chip (AT91 nur 1x
CAN). Allerdings nur USB Device. USB Host hat der 2388 (144Pin).
Wenn du warten kannst/willst wäre der LPC1766 und v.a. die LM3S9Bxx
sicherlich interessant. Die LM3S sind für Q3/09 angekündigt. Wann die
tatsächlich ausgeliefert werden weiß nur der Himmel. Ich bezweifle das
das noch in diesem Jahr sein wird.
Stand heute gibt es nur zwei Möglichkeiten:
- ARM7 und gut
- M3 mit Einschränkungen, z.B. kein USB oder ETH.
Guten Morgen,
Das Resumee von let deckt sich völlig mit meinen Recherchen. Der LCP2388
von NXP schein auch noch nicht auf dem Markt zu sein.
Ich entwickle jetzt erstmal ein Development Board auf Basis des LCP2378.
Dieser deckt momentan meine Anforderungen am besten ab.
Warten werde ich nicht, weil es sich nicht lohnt. Niemand weiss, wann
die fehlenden Teile tatsächlich verfügbar sind. Also nehme ich jetzt,
was ich heute bekommen kann. Sollte ein geeigneterer µC dann verfügbar
werden, dann werde ich sehen, ob es sich lohnt ein neues Board mit dem
neuen µC zu bauen.
Auf jeden Fall waren die Hinweise sehr aufschlussreich. Vielen Dank
dafür...
> Der LCP2388 von NXP schein auch noch nicht auf dem Markt zu sein.
Doch, Digikey hat ihn. Der kam zusammen mit dem 2387. Aber Ein
Eval-Board dafür scheint es nicht zu geben.
Also der LPC2388 ist schon seit fast einem Jahr auf dem Markt verfügbar.
Ich habe im Juli 2008 bereits welche bei Digikey gekauft.
Als Eval-Board gibt es das MCB2388 von Keil. Gibt's z.B. bei Digikey als
OM11012 oder bei Mouser als MCB2388.
Im Prinzip ist der LPC2388 ein LPC24xx, bei dem der EMC beschnitten
wurde.
Als günstigere und flexiblere Alternative zum MCB2388 könnte für dich
dann auch das LPC-E2468 von Olimex in Frage kommen. Vorteil: massig
Speicher und viele Pins auf Steckverbinder herausgeführt.
Hi,
jedoch wäre die Atmel Lösung von Vorteil, wenn Du heute mit dem SAM7
anfängst, dann ist es egal auf welche Platform (m3, ARM9 etc.)
umsteigst. Häufig ist es so dass die Peripherie sich so arg ändert, dass
der Code von ARM7 auf ARM9 z.b. neu geschrieben werden muß. Bei Atmel
ist es zumindest bisher so gewesen, dass man leicht von Arm7 auf Arm9
umsteigen konnte. Sicherlich wird das für den CM3 genauso gelten.
MfG
Joe
Hallo,
Joe hat mit dem Recht, dass die Peripherieeinheiten von Atmel
untereinander zum Großteil kompatibel sind, egal ob SAM7 oder SAM9.
Das Problem bei der Atmel SAM7-Familie ist, dass sie keine USB-Host oder
zumindest USB-OnToGo wie der NXP hat. Weiss allerdings nicht welche
USB-Variante Lars benötigt.
Mfg
Ruppi66
Also zunächst hätte ich gerne nur das USB Device. Allerdings will ich
mal nicht ausschliessen, dass ich auch mal was mit dem USB Host machen
will. Wobei es natürlich zweifelhaft ist mit einer auf dem Board
aufgelöteten Typ B Buchse auch USB Host Anwendungen zu entwickeln.
Was sich mir aber durchaus aufdrängt ist, dass ich bei NXP scheinbar am
besten bedient bin. Und das ist gut so, da ich bis jetzt noch offen für
alle Möglichkeiten bin. Sobald ich mich mal festgelegt und auf einer CPU
eingerichtet habe, ist der Käse gegessen. Dann bleibe ich i.d.R. auch
dabei.
Ich werde jetzt wohl mit dem LCP2378 bzw. LCP2388 zur Tat schreiten.
Danke an alle für die wertvollen Hinweise.