Forum: Mikrocontroller und Digitale Elektronik Einstieg in die ARM Welt


von Paganini (Gast)


Lesenswert?

Hallo,
ich stoße langsam auf die Grenzen vom AVR.
Nun möchte ich auf ARM umsteigen (ideal ARM9!?).
Da mir nichts daran liegt erstmal ein fertiges board zu kaufen (es hat 
mir beim AVR echt 0 gebracht), wollte ich mir diverse Schaltpläne 
anschauen und mir dadurch die Grundschaltung erschließen.

Was für ein µC nehme ich am besten?
Gibt es dazu gute hilfsseiten?
Wo finde ich schaltpläne zu dem ARM?

(ich weiß nicht, ob man von einem fertig board was lernt. Sehen wie eine 
schaltung aufgebaut sein muss, tut man nicht und bei der programmierung 
ist es kaum ein Thema - mein Vater arbeitet mit ARM's (programmierung) 
und hier gibt es ja auch ein tut dazu)

von Paganini (Gast)


Lesenswert?

Ist der AT32AP7000 zu empfelen?

von Paganini (Gast)


Lesenswert?

Ich merke gerade, dass dieser ARM garnicht lötbar ist.

Könnt ihr mir weiterhelfen?

von Robert S. (razer) Benutzerseite


Lesenswert?

Paganini wrote:
> Ist der AT32AP7000 zu empfelen?

Das ist kein ARM, sondern ein AVR32!

von Martin (Gast)


Lesenswert?

Hallo, fang mal mit den LPC22XX oder LPC21XX an. Die sind noch nicht soo 
groß in der Pinanzahl.

Auf Arbeit programmiere ich mit einem LCP2468, der ist schon echt fett, 
hat allerdings über 100 Beinchen und 512kb Flash und 32kb sram.

von Dirk (Gast)


Lesenswert?

Nimm lieber einen mit Cortex-M3-Kern.
Die sind nicht so vergurkt und es gibt bei denen nicht so viele 
Fallstricke wie bei den ARM7. Gerade für Anfänger deutlich besser 
geeignet. Kein krudes Interruptsystem, nur ein Befehlssatz, etc.

Derivate gibt es momentan von Luminary und ST, NXP bringt im Sommer 2008 
erste Modelle.
Luminary hat z.B. einfach lötbare SOIC28-Gahäuse im Programm. Die würden 
sich perfekt für Dich eignen.

von Daniel W. (danie)


Lesenswert?

Ich würde einen von Atmel empfehlen:
AT91SAM7S256 (ARM7TDMI)

wenn man CAN und Ethernet braucht:
AT91SAM7X256 (ARM7TDMI)

bis auf das etwas kryptische TWI (I²C) eine ganz gute CPU, man braucht 
als einsteiger nicht mal nen programmieradapter.

ps, das gehäuse ist zwar smd aber durchaus lötbar.

grüße danie
dieses posting spiegelt MEINE persöhliche meinung dar, wenn jemand 
anderer meinung ist habe ich NICHTS dagegen einzuwenden.
aber MISSIONIERT werden will ich nicht.

von Peter (Gast)


Lesenswert?

Einen Schaltplan mit Beschreibung gibt es unter 
www.microcontroller-starterkits.de -> ARM vorläufige Beschreibung -> 
Dokumentation. Ist für den LCP2129 bzw. LPC2194.

von Paganini (Gast)


Lesenswert?

Wie sieht es mit dem EP9302 aus?

von Paganini (Gast)


Lesenswert?

hmm, ich sage euch leiber was ich will.
Und zwar eine art technischen Taschenrechner bauen.
- Touchdisplay: 240x128
- um wie 70 tasten
- Funkmodul
- SD-adapter


Nun kennt ihr die grenzen des AVR. Die berechungen werden sehr komplex 
sein und jeden avr in die knie zwingen ;).

Vll. fällt es euch leichter mir nun zu helfen.

Bedenkt aber, dass es nicht zu exotisch sein soll, denn ich will was 
fürs leben lernen und nicht ein ARm nehmen wo ich mich einarbeite und 
danach nie wieder gebrauchen kann.

von let (Gast)


Lesenswert?

> und nicht ein ARm nehmen wo ich mich einarbeite und
> danach nie wieder gebrauchen kann

Also doch kein 9302 ;)

Du willst also den TI-92 nachbauen? Ich denke dafür reicht
ein ARM7. Ein LPC2368 (100pin) bzw. 2378 (144pin) bei 72MHz sollte
doch genug Feuer und IOs bieten - so du denn mit den 32kB RAM auskommst.
Ansonsten gibt es noch den 2468 mit externem Speicherinterface
(208pin).
Der M3 Cortex ist derzeit noch eher für kleinere Projekte vorgesehen.
Außerdem scheint der noch nicht so ganz ausgereift zu sein (siehe
Erratas von ARM).

Aber ein Evalboard würde ich schon empfehlen. Ich bastel mir zwar
auch gerne eigene Platinen aber es finde es immer wieder hilfreich
ein Board für Testzwecke zu haben.

 - Michael

von Peter D. (peda)


Lesenswert?

Paganini wrote:
> Und zwar eine art technischen Taschenrechner bauen.
> - Touchdisplay: 240x128
> - um wie 70 tasten
> - Funkmodul
> - SD-adapter
>
>
> Nun kennt ihr die grenzen des AVR. Die berechungen werden sehr komplex
> sein und jeden avr in die knie zwingen ;).

Das isn Witz, stimmts?

Mit manueller Ein-und Ausgabe kannst Du keinen AVR in die Knie zwingen.
Der Mensch ist schnarch langsam, da gähnt der AVR nur.


Peter

von Michael U. (amiga)


Lesenswert?

Hallo,

@Peter Dannegger: also ich weiß nicht so recht...

Für ein 30000! gruacht mein Windows-Taschenrechner schon etliche 
Sekunden.
Ich stelle es mir gerade auf einem Mega32@16MHz vor... ;-)

Gruß aus Berlin
Michael

von Dirk (Gast)


Lesenswert?

"Du willst also den TI-92 nachbauen? Ich denke dafür reicht
ein ARM7. Ein LPC2368 (100pin) bzw. 2378 (144pin) bei 72MHz sollte
doch genug Feuer und IOs bieten - so du denn mit den 32kB RAM auskommst.
Ansonsten gibt es noch den 2468 mit externem Speicherinterface
(208pin).
Der M3 Cortex ist derzeit noch eher für kleinere Projekte vorgesehen.
Außerdem scheint der noch nicht so ganz ausgereift zu sein (siehe
Erratas von ARM)."


Das ist natürlich völliger Quatsch.
Wo, bitteschön ist ein Cortex M3, z.B. von Luminary mit 256KiB Flash, 
64KiB RAM, Ethernet, CAN, 4 32Bit-Timern, etc. "eher für kleinere 
Projekte vorgesehen" als der von Dir genannte mit weniger RAM?
Richtig, gar nicht. Der M3 ist sogar performanter. Alleine die riesige 
Interruptlatenz vom Arm7 ist doch schon eine traurige Geschichte.

Machen wir uns nichts vor: Der M3 löst über kurz oder lang den Arm7 ab. 
Die Summe der Vorteile überwiegt klar die der Nachteile.

Was die Errata angeht, so sind die vom ARM7 auch nicht ohne - da tun 
sich die beiden Kerne nichts.

von Paganini (Gast)


Lesenswert?

Ich werde jetzt von euch hin und her gerissen :)

M3 - Arm7

von mr.chip (Gast)


Lesenswert?

Bedenke auch folgendes: Die ARMs sind nicht einfach 'grössere AVRs', die 
sind schon eine echte Klasse grösser. Besonders auch, was 
Herausforderungen und Fallstricke angeht. Beispielsweise hast du bei den 
AVRs das wunderbare AVR-Studio, für ARM hingegen musst du schon 
aufwändiger eine Toolchain basteln.

Und, in der Tat, die ARMs scheinen nicht gerade die saubersten 
Mikrocontroller zu sein. Vielleicht sollte man auch eine andere 
Architektur, beispielsweise AVR32 mal in Betracht ziehen. (Dieser Satz 
jetzt eher als Diskussionsinput, denn als Meinung.)

von Paganini (Gast)


Lesenswert?

z.B.  AT32AP7000 ?

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

"Und, in der Tat, die ARMs scheinen nicht gerade die saubersten
Mikrocontroller zu sein. Vielleicht sollte man auch eine andere
Architektur, beispielsweise AVR32 mal in Betracht ziehen. (Dieser Satz
jetzt eher als Diskussionsinput, denn als Meinung.)"


Daher mein Rat, zum M3 zu greifen. Der bietet für Einsteiger nicht so 
viele üble Stolperfallen.

Anbei ein White Paper von ARM selber, das die Vorzüge des Cortex M3 
gegenüber dem Arm7 recht gut herausstellt.

von Peter D. (peda)


Lesenswert?

Da er ja hauptsächlich äußerst komplizierte Berechnungen machen will, 
ist der M3 eindeutig dem ARM7-TDMI vorzuziehen, er kann nämlich in HW 
dividieren.


Peter

P.S.:
Vielleicht kannst Du ja mal näheres zu den wahnsinns Berechnungen sagen, 
damit man weiß, warum das ein AVR nicht mehr schaffen können soll 
(Neuronale Netze, Wettervorhersagen ?).

von Paganini (Gast)


Lesenswert?

Interessant Dirk.
Wie fingst du den mit den M3 an?

von Paganini (Gast)


Lesenswert?

@Peter Dannegger: Vll. würde das auch noch ein AVR schaffen. Doch möchte 
ich mich dennoch 'weiterbilden'. Lange genug habe ich mich mit den AVRs 
beschäftigt. Nun muss mal was neueres her.

von let (Gast)


Lesenswert?

> Das ist natürlich völliger Quatsch.
> Wo, bitteschön ist ein Cortex M3, z.B. von Luminary mit 256KiB Flash,
> 64KiB RAM, Ethernet, CAN, 4 32Bit-Timern, etc. "eher für kleinere
> Projekte vorgesehen" als der von Dir genannte mit weniger RAM?
> Richtig, gar nicht. Der M3 ist sogar performanter. Alleine die riesige
> Interruptlatenz vom Arm7 ist doch schon eine traurige Geschichte.

> Machen wir uns nichts vor: Der M3 löst über kurz oder lang den Arm7 ab.
> Die Summe der Vorteile überwiegt klar die der Nachteile.

Nun komm' mal wieder runter. Tut mir leid wenn ich dich beleidigt haben
sollte.

Die neuen Modelle von Luminary sind irgendwie an mir vorbei gegangen.
Ich kannte nur den 32kB Typ im 28Pin Gehäuse, sowie den STM32 mit
128kB. Aber wo ein M3 mit 50MHz performanter sein soll als ein ARM7 bei
72MHz im ARM-Mode, mußt du mir nochmal erklären.


 - Michael

von Dirk (Gast)


Lesenswert?

"Wie fingst du den mit den M3 an?"


Was meinst Du genau?

Angefangen habe ich mit dem LPC2138 und dem Keil Dev-Kit.
Danach dann ein Luminary Dev-Kit mit dem LM3S8962.

von Paganini (Gast)


Lesenswert?

Was sagt ihr zum LPC-H2106 auf http://www.olimex.com ?

von Paganini (Gast)


Lesenswert?

dirk, aus dem schaltplan wird man ja garnicht schlau:
http://www.olimex.com/dev/images/ARM/LPC/LPC-H2138-REV-B-SCH.gif

von let (Gast)


Angehängte Dateien:

Lesenswert?

Der Schaltplan vom LPC2148 Evalboard von ETT ist vielleicht etwas
übersichtlicher. Das Olimex Board hat aber den Vorteil das die
Steuerung des Bootloaders auch über RS232 erfolgt. ETT verwendet
Taster. An P0.0 und P0.1 kommt der MAX232.

von Peter D. (peda)


Lesenswert?

Paganini wrote:
> Was sagt ihr zum LPC-H2106 auf http://www.olimex.com ?

Diesen Witz von NXP habe ich auch nie verstanden. Ausgerechnet der 
kleinste kriegt den größten SRAM (64kB).
Und sobald man mehr Pins braucht, sind es nur noch 16KB.


Bei Luminary ist es richtig rum, die kleinen haben weniger SRAM und die 
großen 64kB.


Peter

von Paganini (Gast)


Lesenswert?

Wo finde ich den?

von let (Gast)


Lesenswert?

Hm? Wen den?

von Paganini (Gast)


Lesenswert?

Den LPC2148 Evalboard von ETT

von let (Gast)


Lesenswert?

Ach, den den. Den habe ich von Ebay. Das lohnt sich aber wahrscheinlich
nicht mehr, da es recht teuer geworden ist. Mwst. + Zoll kommt ja auch
noch dazu. Mit einer Suche nach LPC2148 müßtest du das finden.

Falls du dir eine eigene Platine machen willst, den 2148 gibt es
bei CSD. Und Reichelt hat immerhin den 2136. Allerdings ohne /01
dahinter. Ich habe mich doch etwas erschrocken als ich den Preis
für den 2148 gesehen habe. Der deutlich üppiger ausgestattete
2368 kostet nicht einmal die Hälfte. Wie ein Endkunde den außer
bei Digikey bekommen kann weiß ich leider nicht. Um damit Ethernet
machen zu können braucht man dann auch noch eine PHY und einen
25 oder 50MHz Oszillator dafür. Die Teile sind zwar einigermaßen
preiswert (zus. ca. 3,50€), man bekommt sie aber ebenfalls nicht
gerade an jeder Straßenecke.

 - Michael

von Robert T. (robertteufel)


Lesenswert?

Ein paar Bemerkungen zum Thema M3 versus ARM7

die Tatsache, dass ARM den M3 mit den hoechsten Toenen lobt ist sehr 
einfach zu erklaeren, der hat das Potential fuer ARM noch viel Geld zu 
bringen, die ARM7 Lizenzen sind bereits >> 100 mal verkauft, da ist 
nicht mehr viel Geld drin. Wir sprechen dabei von 2-3-stelligen Mio 
Betraegen nur fuer die 100-200 Lizenzen einen Chip auf M3-Basis fertigen 
zu duerfen. Also wenn man von voreingenommen sprechen koennte, das waere 
evtl. ein guter Ansatz. Der M3 war urspruenglich geplant ein 
Einstiegsteil zu werden, angesiedelt unterhalb des ARM7. So waren auch 
die ersten Bausteine, die auf den Markt gekommen sind von Luminary und 
selbst die existierenden von ST. Eher am unteren Ende des ARM Marktes 
angesiedelt. Es gibt wenig Zweifel daran, dass ARM ein paar 
Unzulaenglichkeiten des ARM7 beim M3 ausgebuegelt hat, ihn deshalb aber 
inkompatibel zu machen war einfach nicht so schlau. Alle anderen Cortex, 
z.B. R4 und R8 haben den Kompatibilitaetsmodus mit ARM mode, welchen der 
M3 nicht unterstuetzt. Der Gedanke war Chipflaeche einzusparen, das ist 
auch der Fall, allerdings sprechen wir bei heutigen Technologien 180nm 
oder kleiner von 0,xxmm2, also wenns mal hochkommt eine Chipflaeche, die 
1-2 cent kosten wuerde. Der M3 hat einfach VIEL zu lange gebraucht bis 
er am Markt war, weil er nicht genuegend Vorteile geboten hat. In 2002 
wurde er den Halbleiterherstellern bereits angeboten aber er ist auf 
breites Desinteresse gestossen. Erst die massive Marketingmaschine von 
ARM hat den M3 hoffaehig gemacht.

Zum Thema Performance M3 und ARM7. Wenn beide so laufen, dass der 
Flashzugriff keinen Flaschenhals darstellt ist der M3 schneller, 
mindestens in 9 von 10 faellen. Meistens nur wenig schneller ausser 
integer Divisionen sind gefragt, dann fuer diesen einen Befehle viel 
schneller. "Komischerweisse" sind M3 Benchmarks voller Divisionen 
waehrend ARM frueher immer behauptet hat, Divisionen waere sehr selten 
in Programmen. Da hatte der ARM7 eben auch noch keinen DIV Befehl.
Sobald die Frequenz der CPU schneller ist als der Zugriff auf das Flash 
ohne Waitstates erlaubt, ergeben sich wieder ganz andere Bilder. Ein 
ARM7 bei 60 MHz ohne WS ist deutlich flotter als ein M3, der da 2 WS 
benoetigt. Die WS koennen durch das Speicherinterface massgeblich 
beeinflusst werden und der M3 hat von Haus aus ein Interface drin, das 
wie ein "geschrumpftes NXP MAM" aussieht. Bis 50 MHz tut das 
hervorragende Dienste.

In den Firmen, fuer die ich und mit denen ich in den letzten 2 Jahren 
gearbeitet hab wurden viele Benchmarks gemacht und da ich jetzt mit den 
allermeisten Halbleiterherstellern als Partner arbeite werde ich mich 
auch etwas zurueckhalten, soviel aber sei gesagt, die Frequenz der CPU 
ist nur einer von vielen Performance Parametern.

M3 ist bei gleicher Speicheranbindung und gleicher Frequenz 
normalerweisse etwas schneller aber nur recht wenig als der ARM7.
M3 sollte eigentlich niedrigeren Stromverbrauch bringen aber ein 
Vergelich der Verbrauchswerte von Luminary, NXP, ST und Atmel lassen da 
keine so grossen Unterschiede erkennen, manchmal geht's sogar falsch 
herum und der ARM7 ist besser im Power Verhalten.

Der langen Rede kurzer Sinn, schaut Euch die Chips genau an, ein neuer 
Chip hat meistens mehr Bugs als einer der schon 1-2 Jahre da ist, fuer 
eine neue CPU gilt das ebenfalls.

Es gibt Gruende den ARM7 noch lange zu benuetzen aber auch Gruende bei 
kompletten Neuentwicklungen schon den M3 einzusetzen wenn man bereit ist 
sich mit 2 Anbietern zufrieden zu geben. Wird der M3 den ARM7 abloesen? 
Zumindest wird er viel staerker wachsen weil jetzt wohl in jedem Quartal 
neue Anbieter kommen werden.

Gruss, Robert

von Dieter (Gast)


Lesenswert?

@Michael
>Für ein 30000! braucht mein Windows-Taschenrechner schon etliche
>Sekunden.
und was machst du mit dem Ergebnis wenn ich fragen darf ...

von Gartenzwerg (Gast)


Lesenswert?

>>Für ein 30000! braucht mein Windows-Taschenrechner schon etliche
>>Sekunden.
>und was machst du mit dem Ergebnis wenn ich fragen darf ...

Hier ins Forum posten und rummosern, dass er etliche Sekunden auf das 
Ergebnis warten musste.

von Jochen (Gast)


Lesenswert?

Hallo Robert,

danke für die Infos und neuen Aspekte.
Ein paar Fragen bleiben doch noch für "Neueinsteiger" in die ARMe wie 
mich.

Ist es nicht so, daß der M3 eine feste Interrupt-Latenz von 12 Zyklen 
hat, ein ARM7 dagegen eine von 24 bis 42 Zyklen?
Zusammen mit dem Bit-Banding scheint mir der M3 besser an die typischen 
I/O-intensiven Mikrocontrolleranwendungen angepasst zu sein.


"Die WS koennen durch das Speicherinterface massgeblich beeinflusst 
werden und der M3 hat von Haus aus ein Interface drin, das wie ein 
"geschrumpftes NXP MAM" aussieht. Bis 50 MHz tut das hervorragende 
Dienste."


Auf der eigenen Homepage schreibt ST, daß bis 72MHz der Zugriff aufs 
Flash mit voller Geschwindigkeit erfolgt. Ist das dann falsch oder sind 
nur die ST-Teile schneller als die von Luminary?

von Andreas K. (a-k)


Lesenswert?

Jochen wrote:

> Auf der eigenen Homepage schreibt ST, daß bis 72MHz der Zugriff aufs
> Flash mit voller Geschwindigkeit erfolgt.

Reference Manual:
 >48MHz 2 Waitstates
 >24MHz 1 Waitstate
wobei Prefetch Buffer existieren, die bei sequentiellem Code diese 
Waitstates kompensieren. Bei nichtsequentiellem Code (Sprünge) und 
Datenzugriffen jedoch nicht (anders als das MAM vom LPC2000).

Exzessive Verwendung von in 32bit codierten Befehlen könnte allerdings 
geeignet sein, bei 2 Waitstates den 64bit Pfad zum Flash zu überfordern. 
Daher wohl Roberts "bis 50MHz".

von Andreas K. (a-k)


Lesenswert?

Jochen wrote:

> Zusammen mit dem Bit-Banding scheint mir der M3 besser an die typischen
> I/O-intensiven Mikrocontrolleranwendungen angepasst zu sein.

Ist er. ARM entstand Mitte der 80er für den Acorn Computer, wurde dann 
aber bald als Prozessor für Embedded Systems verwendet. Und was man mal 
als Designfehler in eine Architektur reinsteckt, kriegt man aus 
Kompatibilitätsgründen später nur schwer wieder raus.

Der M3 hingegen ist fast 2 Jahrzehnte jünger und konnte aus den Fehlern 
und Schwachpunkten lernen. Ebenso wie beispielsweise AVR32, eine 
Architektur die unverkennbar von ARM/Thumb inspiriert wurde.

von Andreas K. (a-k)


Lesenswert?

Wie Robert schon schreibt, ist insbesondere für den Einstieg ein Chip zu 
empfehlen, der schon ein paar Jahre auf dem Markt ist, auch wenn der 
nicht so sexy aussieht wie die neuesten Oevres. In den ersten Jahren 
gehört man nämlich zur Riege der Betatester, die sich mehr oder weniger 
freiwillig auf die Suche nach den nicht ganz offensichtlichen Fehlern 
begeben.

Beim STR9 beispielsweise war die erste Version so schaurig, dass ST 
dieses Jahr eine "A" Version nachschob um sie deutlicher unterscheidbar 
zu machen. Wobei der STR9 nun mindestens 1,5 Jahre draussen ist, aber 
immer noch neue Fehler gefunden werden.

NXP wiederum hatte die zweifelhafte Ehre, die meisten der schon einige 
Jahre etablierten LPC2000er noch in 2007 mit einem neuen Fehler 
auszeichnen zu dürfen (was aber hoffentlich auch heisst, dass er nicht 
allzu oft auftritt). Wobei das Timing perfekt gewählt war, wurde der 
Fehler doch erst erkannt, als die erheblich verbesserten /01 Versionen 
schon soweit gediehen waren, dass sie diesen Fehler ebenfalls enthalten.

von Paganini (Gast)


Lesenswert?

und um auf die eigentliche frage zurück zu kommen ;) ...

von Jakob (Gast)


Lesenswert?

Also bedeutet das zusammengefasst:

Ich für meinen Teil warte noch bis ca. Mitte nächsten Jahres, bis die 
neue Cortex-M3 Revision von ARM in Silizium von NXP erhältlich ist. Bis 
dahin müssen die AVRs noch ausreichen.

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.