Forum: Mikrocontroller und Digitale Elektronik ARM Einstieg


von Einsteiger (Gast)


Lesenswert?

Hallo,

Ich plane den Einstig in die ARM Microcontrollerwelt.

C kann ich programmieren, ein paar anwendungen mit 8bt AVR habe ich 
schon geschrieben

Da ich generell ein UC änfänger bin suche ich einen für den einstieg 
geigneten UC mit einem guten Board. Über tipps für eine gute 
dokumentation oder passende Tutorials bücher würde ich mich freuen.

Mir wurden der NXP LPC2000 aufgrund der verbreitung sowie prozessoren 
mit cortexm3 architektur aufgrund der aktualität sowie der leichteren? 
programmierbarkeit empfohlen.

Was empfehlt Ihr mir?

mfg
tosch

von Stefan (Gast)


Lesenswert?

Hi tosch!

Als Anfänger würde ich dir den Primer2 empfehlen. Als uC hast du dann 
einen STM32F103VE, massenhaft der Peripherie und eine kostenlose IDE zu 
einem vertretbaren Preis. Außerdem gibts noch ein eigenes Forum auf 
http://www.stm32circle.com/hom/index.php mit vielen Beispielaplikationen 
+ Hilfe.

Zum Einstieg also bestens geeignet ;)

Gruß Stefan

von Einsteiger (Gast)


Lesenswert?

Hallo,

danke für deine Antwort.

Ich habe mir den Primer angeschaut und der scheint in der tat ganz gut 
zu sein.

Jedoch greifen die meisten Programme auf das Circle OS zu, was mich ein 
wenig stört.

Ich habe vor mir nach der einarbeitung einen erweiterten datenlogger mit 
anzeigefunktion zu bauen. In dem fall muss ich auch ohne das os 
zurechtkommen.

Gibts noch weitere gut dokumentierte alternativen mit cortex m3 kern?

mfg
tosch

von (prx) A. K. (prx)


Lesenswert?

Such mal im Forum und bei ebay (oder futurlec.com) nach STM32.

von Einsteiger (Gast)


Lesenswert?

Hallo

was haltet Ihr von diesem Board? Das scheint mir preiswert und passend?

mfg
tosch

von (prx) A. K. (prx)


Lesenswert?

Wenn du das gleiche meinst wie ich: Ist das günstigste mir bekannte 
Einsteigerboard, und ziemlich komplett. CAN- und RS485-Transceiver kann 
man sich ggf. noch auf das kleine Lochrasterfeld bauen, dann fehlt 
nichts mehr von dem was der Controller drin hat.

Nützlich ist allerdings noch ein zusätzlicher JTAG-Debugger.

von Martin (Gast)


Lesenswert?

Hallo,

des ist glaub ich mal ein richtiges Forum für mich

Hab auch ein STM32 board und noch sehr wenig erfahrung darin.
Kann mir jemand sagen wie ich irgendeinen Pin auf High oder Low lege.

wollte eine BCD anzeige realisieren, mit 8 Ausgängen über Vorwiderstand. 
Um einfach mal irgendwelche Zahlen auszugeben.

Danke für eine schnelle Antwort !!!

von (prx) A. K. (prx)


Lesenswert?

Welches Board?

von Martin (Gast)


Lesenswert?

ET-STM32F103

von Einsteiger (Gast)


Lesenswert?

Danke für die Antwort.

Meinte eigendlih den Olimex stm32-103sdk aber das von dir vorgeschlagene 
Board scheint noch besser zu sein.

Da kann man per stecker direkt auf die einzelnen ports zugreifen.

Habt ihr dazu noch eine Buch / tutorialempfehlung?

mfg
tosch

von Martin (Gast)


Lesenswert?

Ja sowas such ich auch !! das board ist schon ziemlich gut. Aber ich 
kenn mich einfach noch zuwenig damit aus !!

von (prx) A. K. (prx)


Lesenswert?

Martin schrieb:

> ET-STM32F103

Beispielprogramm ist auf der CD.

Ein Einsteiger-Tutorial wie hier im Board für AVR ist mir dafür nicht 
bekannt. Im Grunde setzen die 32-Bit Controller durch ihre Komplexität 
voraus, dass man den Anfängerstatus bereits hinter sich gelassen hat.

Der Hitex-Guide ist bekannt?

von Martin (Gast)


Lesenswert?

Hab mir die schon angeschaut.

in welchem von dem Beispielprogrammen find ich das den wie man nen PIN 
auf High oder Low lege !? Doofe frage ich weis.
Oder kann nicht einfach jemand den Befehl kurz hier posten !!!

von (prx) A. K. (prx)


Lesenswert?

Martin schrieb:

> Oder kann nicht einfach jemand den Befehl kurz hier posten !!!

Hat wenig Sinn, weil's nicht viel kürzer wird als das Beispiel von ETT:
- Port mit Takt versorgen.
- Pin als Ausgang definierten.
- Pin setzen oder löschen.

Ebendies steht im Beispiel von der CD drin. Plus ein bischen mehr 
Einstellungen für den Takt, beispielsweise, aber das ist erst einmal 
weniger wichtig.

Eines muss dir klar sein: Wenn du ohne gute Vorkenntnisse bei 
Controllern bei einem hochkomplexen 32-Bit Controller einsteigst, dann 
wirst du nicht schon nach 15min Erfolg haben, sondern vor dir liegt viel 
Arbeit, Manual und Beispielcode zu verstehen. Alle halbe Stunde im Forum 
zu fragen wird dich dabei kaum weiterbringen.

von (prx) A. K. (prx)


Lesenswert?

Martin schrieb:

> in welchem von dem Beispielprogrammen find ich das

Z:\ET-STM32F103 r0\ET-STM32F103RB\ETT EXAMPLES\ET-STM32F103_LED\project

von Martin (Gast)


Lesenswert?

Hmm wenn ich des Projekt mit uvision öffne dann ist die main.c leer !? 
ist des normal ?!

Ich weis das des nicht perfekt ist zum einstieg deshalb will ich auch 
ganz langsam damit anfangen. Ich hab mit dem 16x2 LCD schon etwas 
rumgespielt und jetzt will ich es mit der BCD anzeige versuchen.

Kennst du dann vielleicht ein Gutes Buch wo man sowas auch nachlesen 
kann. Mein Problem ist halt das ich immer auf Fertige Programme baue und 
an denen rumspiele. Für nen anfänger find ich des mal gar nicht so 
schlecht.

von (prx) A. K. (prx)


Lesenswert?

Martin schrieb:

> Mein Problem ist halt das ich immer auf Fertige Programme baue und
> an denen rumspiele. Für nen anfänger find ich des mal gar nicht so
> schlecht.

Also weitgehend verständnisfreier Blindflug der ab und zu mal zum 
Ergebnis führt? Mit diesem Ansatz wünsche ich dir in der 32-Bit Klasse 
viel Vergnügen - und vor allem viele sehr sehr geduldige Supporter.

> Kennst du dann vielleicht ein Gutes Buch wo man sowas auch nachlesen
> kann.

Auf der STM32 Seite gibt's den "Insider's Guide" von Hitex. Eher eine 
Übersicht und keine Schritt-für-Schritt Anleitung, aber eine solche 
kenne ich nicht.

von Martin (Gast)


Lesenswert?

des Problem ist halt wo soll man da richtig anfangen!? In meiner 
Hochschule verwendet man nur den ARM7 32 Bit Controller. Jetzt wollte 
ich mich damit selber etwas Weiterbilden.

Auch wenn es manchmal ein Blindflug ist, kennst du trotzdem ne Seite 
oder Buch wo man Code Beispiele findet. Speziel des mit den I/O Ports.

von Einsteiger (Gast)


Lesenswert?

Hey A. K.

danke für den Link auf den Hitex-Guide.
Genau soetwas habe ich gesucht. Mit einem ähnlichen Script habe ich 
meine ersten schritte in der 8bit AVR welt unternommen

Bis jetzt habe ich leider nur den insiders guide für den LPB2100 und 
verschiedene str-modelle ohne cortex3m prozessor gefunden.

Wisst Ihr zufällig ob es auch ein script für den cortex gibt oder geben 
wird?

Und falls nicht, welcehn prozessor würdet ihr mir dann empfehlen ? den 
LPB2100?

mfg
Tosch

von (prx) A. K. (prx)


Lesenswert?

Einsteiger schrieb:

> Bis jetzt habe ich leider nur den insiders guide für den LPB2100 und
> verschiedene str-modelle ohne cortex3m prozessor gefunden.

Hit #1 bei Tante Gugel:
http://www.st.com/mcdfiles/1221142709.pdf

von (prx) A. K. (prx)


Lesenswert?

ARM7 Modelle wie die LPC2100/2200 haben den Vorteil, schon länger auf 
der Welt zu sein, folglich gibt es mehr Material darüber. Andererseits 
sind sie etwas veraltet und deutlich teurer. Ist deine Wahl.

von Einsteiger (Gast)


Lesenswert?

Hallo A.K.

ich habe mich jetzt durch diverse quellen gekämpft und denke dass der 
LPB2100 für den Einstieg besser geeignet ist. Auf die paar € kommts 
schlussendlich auch nicht an.

Wie groß schätzt du die Unterschiede zwieschen einem NXP cortex und NXP 
lpb2100 ein?

Ist dass mit verschieden AVR Familien zu vergleichen (Tiny - Mega)oder 
eher mit gänzlich verschiedenen Arten wie PIC und AVR?

PS: vielen Dank für deinen Support.

Mfg

von (prx) A. K. (prx)


Lesenswert?

Versuch mal, dich an die Bezeichnung LPC2000 zu gewöhnen. C, nicht B. 
Wird sonst schwer, was dazu zu finden.

von (prx) A. K. (prx)


Lesenswert?

Einsteiger schrieb:

> Ist dass mit verschieden AVR Familien zu vergleichen (Tiny - Mega)oder
> eher mit gänzlich verschiedenen Arten wie PIC und AVR?

Wenn du nicht grad in Assembler programmieren willst, dann ist der 
durchaus vorhandene Unterschied im Befehlssatz erst einmal weniger 
wichtig.

von Einsteiger (Gast)


Lesenswert?

Danke,
hast mir sehr geholfen

mfg
jonas

von (prx) A. K. (prx)


Lesenswert?

Über den Daumen gepeilt sind neuere Geräte komplexer als alte Geräte. 
Dafür sind die Bug der alten besser bekannt als die der neuen. ;-)

So ist das integrierte Interrupt-System der Cortexe viel besser als das 
etwas schwach entwickelte vom ARM7, selbst wenn man dem einen 
Interrupt-Controller zur Seite stellt wie bei den LPC2000.

Andererseits ist ebendieses Interrupt-System der Cortexe nicht unbedingt 
leicht verständlich. Das Interrupt-System der LPC2100 ist einfacher, 
aber auch nicht ohne Fallstricke (spurious/surprise interrupts lassen 
grüssen).

Ungefähr so zieht sich das auch durch die Peripherie. Die Timer der 
STM32 sind ziemlich leistungsfähig, aber das wird erkauft durch mehr 
Lernarbeit. Die der LPC2000 sind einfacher gebaut.

Kleiner Tip, zu allem was nicht AVR heisst: Immer auch das Erratasheet 
lesen. Bei AVRs ist man gewohnt, dass da (am Ende vom Datasheet) fast 
nichts drin steht. Nicht so bei den ARMs, Cortexen usw. Kann schon sein, 
dass im Manual eine Feature wortreich beworben wird, die nach Lektüre 
des Erratasheets erheblich zusammenschrumpelt (z.B. CAN im LPC2129, 
Originalversion) oder ganz gestrichen werden muss (z.B. Taktüberwachung 
in manchen LM3). Aber wer Microchip kennt ist das schon gewohnt.

In dem Punkt schneiden die STM32 ziemlich gut ab. Entweder hat ST seine 
Hausaufgaben gemacht, oder die Klöpse wurden einfach noch nicht 
gefunden. Nur den Bootloader der 105/107 Modelle der ersten Charge hat 
es bislang ernsthaft erwischt.

von Einsteiger (Gast)


Lesenswert?

Hallo

ich werde wohl für den Anfang mit einem LPC2100 / 200 er einsteigen. Die 
längere Marktpräsenz mit der größeren Auswahl an Dokumentaionen und 
Beispielprojekten ist entscheidend.

Bei meinem (noch fernen) Wunschprojekt, müsste ein solcher LPC2000 
reichen.

(Ich mcöhte mich schritt für schritt zu einem Telemrie-logger mit 2,4 
Ghz übertragung und LCD hinarbeiten. Werde mich wohl nach der generellen 
einarbeitung erstmal mit LED blinken USW. begnügen müssen g )


Könntet Ihr mir dafür ein board empfehlen? Mir wäre auc herbei ein 
externer Zugriff auf die Ports wichtig.

danke

von (prx) A. K. (prx)


Lesenswert?

Einsteiger schrieb:

> Mir wäre auc herbei ein
> externer Zugriff auf die Ports wichtig.

In Form von Pfostenleisten wie beim ETT-STM32 kenne ich keins. Mit genug 
Platz zum Nachrüsten schon: Schau dich mal bei embeddedartists.com und 
propox.com um. Beide bieten Headerboard plus Basisboard mit reichlich 
Lötpunktrasterfläche.

von let (Gast)


Lesenswert?

Bei aller Liebe zu den ARM7 Controllern allgemein und insbesondere
der LPC2000 Reihe, rate ich zu einem LPC23xx/24xx. Die sind moderner
und bieten auch mehr Peripherie als die LPC21xx/22xx.
Preiswerter für die Serie sind die auch.

Bei ebay gibt es diverse Evalboards mit einem LPC2368 für wenig Geld.
Einfach nach LPC2368 suchen.

von Einsteiger (Gast)


Lesenswert?

üüHallo,

wie groß ist denn der Unterschied zwieschen den LPC 21xx/22xx und den 
von dir genannten?


mfg

tosch

von let (Gast)


Lesenswert?

- Vier anstatt zwei 32Bit Timer (für Lumi-Fans: Input-Capture machen die
LPCs auch mit 32Bit).

- Verbesserter Interrupt-Controller mit Prioritäten und ohne Spurious 
Interrupt (ist kein generelles Problem des ARM7).

- Alle GPIOs mit schaltbaren Pull-up/down.

- Bootloader kann bis 115kBaud (LPC21xx kann 38k).

- EMAC integriert (schon deshalb habe ich die STM32 bisher ignoriert)

- Preiswerter - zumindest gegenüber den >= 64 Pin 21/22er

Die 21/22er Reihe ist halt schon etwas älter. Die 23/24er sind 
weitgehend
kompatibel zu den älteren Typen. Der Interrupt Controller Tickt aber
etwas anders und die Init-Sequenz für die PLL sieht anders aus.

von (prx) A. K. (prx)


Lesenswert?

let schrieb:

> - Verbesserter Interrupt-Controller mit Prioritäten und ohne Spurious
> Interrupt (ist kein generelles Problem des ARM7).

Verbessert ja, weil alle Interrupts vektorisiert sind. Spurious 
interrupts gibt es freilich trotzdem. Sie landen nur nicht im 
nonvectored Handler.

Die Prioritätslogik ist aber genausowenig wie die beim alten VIC auf 
transiente Interrupts ausgelegt. Transiente Interrupts sind bei 
Verwendung einer 16C550-artigen UART nicht vermeidbar. Das Ergebnis sind 
Interrupts ohne erkennbare Ursache, die zudem noch mit falscher 
Priorität laufen. In diesem Aspekt gleichen sich die VIC.

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.