Forum: Mikrocontroller und Digitale Elektronik ARM7 was wie wo?


von Ulli V. (vex)


Lesenswert?

Hallo!

Ich wollte demnächst mal mit dem Arm µC einsteigen und suche/frage mich 
wie man das am besten hinbekommt.
Die Suche im INET half mir, bezüglich irgendwelcher standards auch nicht 
grad weiter. Darum frag ich jetzt mal hier im Forum nach.

Also
1. Einstiegs µC von NXP oder Atmel? (ich tendiere eher zu NXP LPC)
2. µC sollte nicht zu klein aber auch nicht zu komplex sein. D.h. wenn 
da ein USB2.0 drauf ist und ich den fürs erste erst einmal gedanklich 
vernachlässige ist es auch ok - später kann ich damit ja noch evtl. was 
anfangen.
3. Programmieren -> welcher Compiler(c/c++) und welche Programmier 
Schnittstelle also JTAG oder per RS232/Bootloader???
4. Wäre es besser, als Einsteiger ein Eval board und/oder eine simple 
Aufteckplatine? Hab da sowas bei Olimex gesehen und auch nicht sehr 
teuer
5. Alles zusammen wie gesagt mit einem gewissen Standard -  es sollte 
sich schon (wenn möglich) eine menge Leute damit auseinandergesetzt 
haben, man sollte einfache Beispiel Sources bekommen können und es auch 
verstehen.
z.B.: ich nehme hauptsächlich xyzARM Compiler, benutze hauptsächlich den 
und den Dingsda-Controller(weil gut erhältlich, weil rel. einfach und 
später kann man damit auch noch viel vom Hocker reissen) und 
programmiere den in der Regel mit der blahblubbs-Schnittstelle

viele Fragen und hoffentlich auch viele Antworten
Danke schonmal Vex

von Mark .. (mork)


Lesenswert?

Hallo Ulli,

ich habe einen LPC2138 auf einer Aufsteckplatine von ebay 
(http://cgi.ebay.de/ARM7-Philips-LPC2138-Stamp-Module-ARM-32-16-Bit_W0QQitemZ160134719037QQihZ006QQcategoryZ10662QQrdZ1QQssPageNameZWD1VQQcmdZViewItem)
Das Modul ist sehr günstig und es gibt viele Leute, die den LPC213x/4x 
nutzen. Compilieren tue ich meinen Code mit WinARM. Das ist ähnlich wie 
WinAVR und beinhaltet alles wan man braucht: arm-elf-gcc, linker, ein 
Programm zum flashen über RS232, viele Beispiele usw. Einen JTAG-Adapter 
hab ich nicht, da ich bisher kein JTAG gebraucht habe und das flashen 
problemlos mit dem on-chip-bootloader klappt.

Natürlich musst Du selbst entscheiden, was für Dich besser ist. Das 
hängt von deinen Vorlieben und Wünschen ab, und nicht zuletzt von Deinem 
Budget.

MfG Mark

von Ulli V. (vex)


Lesenswert?

Jau hört sich schonmal gut an.

Ich verate mal was ich mir dabei vorstelle, damit was zu entwickeln.

Da wäre z.B. ein Arm7 basierender Midi Synth. Gut ok jetzt werden 
bestimmt einige sagen, dass man dies mit nem Dsp besser lösen könnte 
aber zum Einen
meine ich, dass es mit dem Mitteln bestimmt auch sehr gut gehen würde 
und zum Anderen, ich sowas auch schon bei einen Avr gesehen und gehört 
hab.
Was mir für die Zukunft, falls ich es irgendwann mal gebacken bekomme 
Win Treiber zu programmieren, wäre dann noch ein USB2.0 2..4...8 Kanal 
Midi Port unter Win(wasweissichwiesichdasdannschimpft).
Also alles Ziele für die Zukunft und fürs Erste denke ich mal eher 
simplerere Sachen wie Leds ansteuern, Tasten einlesen, LcdAusgabe usw. 
ganz genau, wie ich bei nem Avr begonnen hab.

Übrigens  ..hab mir schon (falls denn der auch noch Einsteiger 
freundlich ist) den Lpc2148 ausgeguckt 512kb Flash, 40kb Ram und USB2.0 
hört sich net
schlecht an.

also was denkt ihr dabei?

Gruß Ulli

von Kai F. (k-ozz)


Lesenswert?

Wenn dir der LPC2148 schon so gut gefällt, dann kann ich dir das 
LPC-H2148-Board von Olimex nur sehr empfehlen. Da ist schon alles 
wichtige drauf, aber du kannst trotzdem alle I/Os frei nutzen, indem du 
das Modul auf eine Lochrasterplatine steckst. Und günstiger als ein 
komplettes Eval-Board ist es auch noch. Hier im shop.mikrocontroller.net 
gibts das Board für 38,90 und somit inkl. Versand nur 8 Euro teurer als 
das Board von ebay, welches ich für nicht sehr hochwertig halte (nur 
meine persönliche Meinung). Zusätzlich ist natürlich noch der USB- und 
der JTAG-Anschluss drauf.

von Ulli V. (vex)


Lesenswert?

Hi!

was mich auch noch mal interessieren würde, wäre .. wie schnell ist denn 
nun so ein Arm7 im Gegensatz zu nem Avr? Also macht der umgerechnet auf 
16/32 Bit(also klar, daß der Avr jetzt in einer 32 Bit Rechnung dagegen 
alt aussieht und der Arm wahrscheinlich zu großen Code bei einer 8 Bit 
Rechnung hat) so in etwa dasselbe?

Gruß Ulli

von Robert Teufel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Ulli,

einfach mal so ins Blaue.
Der ARM7 hat laut ARM durchschnittlich 1.9 cycles per instruction = CPI, 
also kannst Du ca. 31 Assembler instructions / us ausfuehren wenn der 
micro bei 60 MHz laeuft und der Speicher keine Bremse darstellt. Beides 
ist beim LPC2148 (oder auch LPC2138) moeglich. Dagegen kann ein AVR bei 
16 MHz eben unter keinen Umstaenden mehr als 16 Assembler Befehle in 
eine uSec ausfuehren. Bei einer kurzen Suche habe ich die Angabe 
gefunden, dass der AVR bei ca. 1.8 CPI liegt, das waeren dann 9 
Assembler Befehle.
Referenz: 
http://www.embeddedrelated.com/usenet/embedded/show/23496-1.php

Wie Du schon richtig gesagt hast, kommt es sehr darauf an, wieviel von 
Deinem Code mit 8-bit Variablen oder 16/32-bit Variablen durchsetzt ist. 
Wenn alles fuer AVR zu Beginn optimiert war, also alles mit Char 
definiert, dann wird sich der Code auf dem ARM wahrscheinlich mit einem 
Faktor 2 oder gar etwas mehr aufblaehen. Wenn der Code zu Beginn fuer 
einen 16/32-bit Controller geschrieben wurde, dann blaeht er sich evtl. 
sogar auf bei der Konvertierung zu 8-bit. Angenommen es gibt einen guten 
Grund, dass Du auf 32-bit gehst, also unter anderem Arithmetik mit 
16/32-bit, dann werden diese vermutlich neuen Programmteile auf dem ARM 
eher kompakter ausfallen als auf einem AVR, aber jede Abfrage nach 
Zustand von Bits oder Modifikation derselben kann der AVR mit weniger 
Bytes ausfuehren.

Bitte auch beruecksichtigen bei Codegroesse / Performance, der ARM hat 
zwei Modi. Abgenommen es gibt keinen Speicherflaschenhals, dann ist der 
ARM mode ca. 30% schneller als der Thumb mode aber er braucht halt auch 
30% mehr Bytes in der Codegroesse.

Der langen Rede kurzer Sinn, mit etwas Uebung wirst Du jede Menge 
zusaetzlicher Performance im ARM finden und es ist halt auch mehr 
konfigurierbar, so wie z.B. ARM/Thumb mode. Am Anfang ist es schlicht 
und ergreifend ANDERS und oft mit etwas Frustration durchsetzt :-|
Fuer den schnelleren Start wuerde ich Dir die angehaengte kleine 
Beispielprogramm-Sammlung empfehlen, die Version ist fuer Keil uVision.

Weitere Beispiele wie ein MP3 Player oder aehliches kann man hier 
finden:
http://www.standardics.nxp.com/support/documents/microcontrollers/all/?scope=LPC2148

Gruss, Robert

von Ulli V. (vex)


Lesenswert?

Oh prima!!!!
Das geht würde ich sagen. :-)
Es geht mir ja auch darum, 16/32Bit Anwendungen darauf zu schreiben und 
normale 8Bit Rechnungen weiterhin auf dem Avr zu belassen. Also ein z.B. 
ein Arm auf einer Aplikation die ab und zu 10Bit Messwerte berechnet, 
Tasten einliest und das Ganze dann in irgendeiner Form auf einen LCD 
ausgibt, halte ich für Oversized. Wie schon gesagt geht es mir darum
evtl. mal nen Midi-Synth damit zu bauen und da gibt es vorrangig 16/32 
Bit.
Wäre auch fast noch schöner wenn man da in C++ programmieren könnte, 
weil ich unter VC++ schon einiges damit gemacht hab und dann ein paar 
Klassen übernehmen könnte. Ich denke mir aber auch dabei, das sich der 
Code zusehr aufblähen würde und wahrscheinlich eh nicht alle C++ Befehle 
unterstüzt wird oder ist es dasselbe?

Gruß und vielen Dank!
Ulli

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.