Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller-Programmierung selber beibringen


von Dulfried (Gast)


Lesenswert?

Hallo miteinander,

ich möchte in meiner Freizeit gerne etwas über die 
Mikrocontroller-Programmierung lernen. Habe aber überhaupt keine Ahnung 
davon. Also hätte ich gerne einen Baukasten, wo schon alles drin ist 
(Erklärungen, Beispiele, Aufgaben).

Außerdem möchte ich den Controller in C programmieren.

Ich hoffe ihr könnt mir weiterhelfen.

von Noch einer (Gast)


Lesenswert?

Zur Zeit gibt es da 2 Varianten.

Die hardwarenahe Bitfummelei auf den AVRs. Und PC-artige Programmierung, 
alles in Libraries verpackt auf den ARMs.

Welche Richtrung willst du einmschlagen?

von STK500-Besitzer (Gast)


Lesenswert?

Dazu gibt es hier auf der Seite Tutorien, die sich auf die Atmel AVR 
beziehen.
Auf anderen Internetseiten kann man sich über den Einstieg in andere 
Controller-Familien einlesen.
Der AVR ist schon ziemlich verbreitet und wenn man zu einem schnellen 
Ergebnis kommen will, bietet sich die Arduin9o-Plattform an.
(Jetzt dürfen wieder die Bitschubser mit ihrem "Du musst auch wissen, 
wie man das Makefile anfässt" kommen - das würde ich auf einen späteren 
Zeitpunkt verschieben.)

von PICler (Gast)


Lesenswert?

Das Tutorial auf dieser Seite hat mir beim Einstieg sehr gut geholfen: 
http://pic-projekte.de/wordpress/?cat=13

von Frank (Gast)


Lesenswert?

Für den leichten Einstieg empfehlen sich mit Sicherheit die Arduinos. 
Sind extra für so was gemacht. Es gibt auch genügend Bücher etc wo viele 
Beispiele enthalten sind.

Der spätere Umstieg auf reines C ohne Bibs ist dann nicht zu extrem!
Ansonsten empfiehlt es sich auch C erst mal direkt auf dem PC zu lernen. 
Vorteil ist die viel bessere Debugmöglichkeit und du brauchst erst mal 
gar keine HW. Damit würde ich anfangen!

Auch würde ich am Anfang auf keinen Fall mit Steckbrett anfangen! Kauf 
dir ein fertiges Board, am besten noch ein Debugger dazu. Dann brauchst 
du dich "nur" um die Programmierung kümmern und kannst über den Debugger 
auch leichter Fehler im Code suchen als mit reinem Programmer!

Sobald du Routine in Sachen Software drin hast, kannst du auf eigene HW 
umsteigen.

von Tom (Gast)


Lesenswert?

Dulfried schrieb:
> Also hätte ich gerne einen Baukasten, wo schon alles drin ist
> (Erklärungen, Beispiele, Aufgaben).

Das Internet ist voll davon.

Arduino wurde schon genannt und gibts für ein paar € bei eBay (z.B. 
Arduino pro micro), dazu ein Steckbrett, ein paar LEDs/Widerstände/FETs
http://arduino.cc/

Und - viele glauben es nicht - Arduino-Boards verwenden ganz 
gewöhnlichen Atmel Prozessoren, die ganz gewöhnlich in C oder ASM 
programmiert werden können.

von Dulfried (Gast)


Lesenswert?

@PICler Die Seite sieht gar nicht übel aus. Aber welche 
Hardware/Bauteile brauche ich dafür?

@STK500-Besitzer Also müsste ich mir einen Avr mikrocontroller 
anschaffen und sonst nur einen geeigneten Compiler? Oder brauche ich 
sonst noch was? Und welcher avr ist für den einstieg am besten geeignet.

@Noch einer ich weiß jetzt nicht wirklich wo da dann beim Programmieren 
der unterschied sein soll, aber aus deiner Formulierung gehe ich mal 
davon aus, dass die ARMs für den Anfang besser sind?

von Dulfried (Gast)


Lesenswert?

zur Info: Also normales C habe ich die Grundlagen bereits gelernt.

@Frank Hättet ihr auch einen genauen Produktnamen oder link für solch 
ein komlettes Board?

von Dennis S. (eltio)


Lesenswert?

Dulfried schrieb:
> @PICler Die Seite sieht gar nicht übel aus. Aber welche
> Hardware/Bauteile brauche ich dafür?
Steht doch da alles.

> @STK500-Besitzer Also müsste ich mir einen Avr mikrocontroller
> anschaffen und sonst nur einen geeigneten Compiler? Oder brauche ich
> sonst noch was? Und welcher avr ist für den einstieg am besten geeignet.
Für AVR steht alles hier im Tutorial.

> @Noch einer ich weiß jetzt nicht wirklich wo da dann beim Programmieren
> der unterschied sein soll, aber aus deiner Formulierung gehe ich mal
> davon aus, dass die ARMs für den Anfang besser sind?
ARM sind sehr viel leistungsfähiger und werden oft "abstrakter" 
programmiert.. ob das für den Anfang sinnvoll ist!? Ich persönlich finde 
nicht, aber gleich werden mir x Leute wiedersprechen.

Das Problem bei Fragen wie deinen ist, dass viel zu viel nachgedacht 
wird. Es ist tausend mal wichtiger etwas zu MACHEN. Also arbeite 
"einfach" das Tutorial hier durch und du bist mitten drin in der 
Programmierung statt in der zweifellos hier ausufernden Diskussion was 
denn am Besten ist.

Gruß
Dennis

von Max D. (max_d)


Lesenswert?

http://www.ebay.de/itm/221606981761 kostet ~5€ und ist alles an HW was 
du für die erste blinkende LED brauchst (es ist eine direkt steuerbare 
LED auf dem Board).

Danach kannst du ihn auf ein Breadboard stecken und weiter-lernen.
IDE (= Editor + Compiler) ist GRATIS.

Wen du aus den Arduino-Kinderschuhen rausgewachsen bist, dann kannst du 
ihn mit avr-dude weiterbenutzen....

von PICler (Gast)


Lesenswert?

Dulfried schrieb:
> @PICler Die Seite sieht gar nicht übel aus. Aber welche
> Hardware/Bauteile brauche ich dafür?
Als Programmer würde ich das PICkit3 verwenden, die China Clones sollen 
auch ganz gut sein und dazu ein PIC Board. Ich habe mit dieses mit einem 
PIC18F45k22 nachgebaut: 
http://sprut.de/electronic/pic/test/index.htm#40pin
Für die ersten Schritte tut es aber auch ein PIC auf einem Breadboard.
Alternativ könnte man auch das "PICkit3 Debug Express" kaufen, da ist 
alles an Hardware dabei was man brauch.
Die Software gibt's kostenlos auf http://www.microchip.com/

von Dulfried (Gast)


Lesenswert?

ok dann werde ich mir den Arduino Nano V3.0 kompatibles Board holen, 
damit habe ich dann ja erstmal die hardware abgedeckt.

Welche IDEs sind gängig und kostenlos?
Und habt ihr hier auf der Seite auch noch eine Tutorial zu diesem Board? 
Oder kann ich mir jedes beliebige tutorial anschauen?

von Noch einer (Gast)


Lesenswert?

Das schöne am Arduino ist ja gerade, dass man da ein Komplettpaket aus 
Hardware, IDE und Tutorial bekommt und sofort los legen kann.

von R. F. (rfr)


Lesenswert?

Geh mal zu ebay und suche dort nach 'sunfounder'.
Ich hoffe, das ist nach deinem Geschmack. Ergänzungen findet man be Ada 
Fruit.

von U.G. L. (dlchnr)


Lesenswert?

Die Frage ist, was Du anstellen möchtest - und für jedes Szenario wirst 
Du wohl eine Unmenge an Vorschlägen erhalten :-)
Ich baue zur Zeit z.B. ein EPROM Reader für uralte EPROMs (z.B. 1702A) - 
die verwendeten Tools und die benutze Hardware läßt sich für alle 
Projekte verwenden, bei der man Daten auf einer externen Hardware 
sammeln und mittels eines PC-Programms auf den PC einlesen möchte.

Um eine Alternative zu VisualStudioC++/wxWidgets/Qt zu haben, habe ich 
für dieses Projekt auf der PC-Seite 
Codelite/MinGW(TDM-GCC)/wXWidgets/wxcrafter/Boost.Asio verwendet - alles 
Tools, die ich dann in gleicher/ähnlicher Weise unter Linux einsetzen 
könnte.

Für die externe Hardware verwende ich ein Atmel SAMD21 Xplained Pro Kit.
Wer einen schnellen Rechner hat, kann mit dem Atmel Studio dafür das 
Programm entwickeln, mit meinem Core2Duo Laptop bin ich auf die IAR 
Embedded Workbench für ARM (KS-Version) ausgewichen.

Beim SAMD21 Xplained Pro wird über ein USB-Kabel neben der Power und dem 
Lade/Debug-Interface auch ein Virtueller ComPort für die Verbindung zum 
PC/PC-Programm zur Verfügung gestellt, so dass die Schnittstelle 
zwischen externer Hardware und PC schon vorhanden ist.

Als Alternative für das Xplained Pro kommen auch ST NUCLEO Boards in 
Frage - die bieten 'ne Menge für 'nen Spottpreis, u.a. neben dem 
Lade/Debug-interface auch den Virtuellen ComPort.

Ich werde mein Projekt, wenn es fertig ist, auf meiner Webseite 
einstellen - falls Du in dieser Richtung was machen möchtest, kann ich 
Dir den aktuellen Stand schon vorab zur Verfügung stellen.

von Hartmud (Gast)


Lesenswert?

Dulfried schrieb:
> lso hätte ich gerne einen Baukasten, wo schon alles drin ist
> (Erklärungen, Beispiele, Aufgaben).
>
> Außerdem möchte ich den Controller in C programmieren.

Dann sind prinzipiell Evaluation Boards schon der richtige Weg. Die 
Frage ist nur: Welches?
Ein Anfänger soll sich immer auf seine aktuelle Problemstellung 
konzentrieren können und das "Drumherum" muss einfach laufen. Eine "all 
in one" Lösung ist anzustreben. Es muss eine sauber strukturierte 
Dokumentation geben, in der man sich schnell zurecht findet.

Mein erster Kandidat wäre daher der MSP430 mit dem Launchpad. Mit dem 
Launchpad erhält man ein lauffähiges Board, an dem alle Pins rausgeführt 
sind. Der Programmer, der Debugger, die UART/USB Bridge usw. sind 
bereits Onboard.
Der Family User Guide ist mit die beste µC Dokumentation.
Der MSP430 selbst ist einfach zu verstehen und hat keine Fallgruben. Das 
Forum hier zeigt sehr gut, welche µC welche Schwächen haben.

Es gibt im Netz viele Quellen für den Einstieg, z. B.
http://www.argenox.com/library/msp430/

Nach den ersten Schritten reicht schon der Family User Guide. Gerne wird 
zum Selbststudium das Buch
http://www.amazon.de/MSP430-Microcontroller-Basics-John-Davies/dp/0750682760
genommen.

von Max D. (max_d)


Lesenswert?

Dulfried schrieb:
> Welche IDEs sind gängig und kostenlos?

Also zu Anfang™ nimmst du die arduino IDE 
http://arduino.cc/en/Main/Software
Die reicht für die ersten Schritte von der blinkenden LED bis zu 
simpleren echten Applikationen. Hat den großen Vorteil, dass man sich 
rel. sicher sein kann, dass alles zusammen sofort funktioniert.

Danach ist der Umstieg auf AVRStudio oder Eclipse mit AVR-Plugin 
deutlich einfacher, weil man schon etwas in "µC-Sphären" denkt.

von U.G. L. (dlchnr)


Lesenswert?

Wie vermutet - bis ich meinen kleinen Roman geschrieben habe, sind schon 
etliche Vorschläge eingetroffen :-)

von peter (Gast)


Lesenswert?


von Noch einer (Gast)


Lesenswert?

"Spannung: 3,3V / 5V" ist wohl unsinnig zusammenkopiert.
"Spannung: 6V - 20V" -- Der AMS1117 ist ein Spannungsregler.

von Max D. (max_d)


Lesenswert?

Nachdem als Geschwindigkeit 16 MHz angegeben ist wird der Mega 5V haben 
wollen....

von Dulfried (Gast)


Lesenswert?

Mich verunsichtert bei  221606981761 nur, dass da nirgends etwas von 
einer Erklärung steht. Denn ohne diese kann ich damit leider nichts 
anfangen.

von Hartmud (Gast)


Lesenswert?

Tja, es hat noch nicht einmal richtig begonnen und man tummelt sich auf 
einem Nebenschauplatz.

Als Anfänger sollte man auf etwas funktionierendes bauen.

von Max D. (max_d)


Lesenswert?

Dulfried schrieb:
> Mich verunsichtert bei  221606981761 nur, dass da nirgends etwas von
> einer Erklärung steht. Denn ohne diese kann ich damit leider nichts
> anfangen.

Naja, es ist ein Arduino nano Klon.
Die Anleitung dazu gibt es hier:
http://arduino.cc/en/Guide/Windows

von Holger (Gast)


Lesenswert?

Frank schrieb:
> Arduinos

Tom schrieb:
> Arduino

Tom schrieb:
> Arduino pro micro

Tom schrieb:
> Arduino-Boards

Noch einer schrieb:
> Arduino

Max D. schrieb:
> Arduino

Man es nervt!
Sobald hier ein Neuling eine Frage ähnlich der des TOs stellt, kommen 
sofort die zig Leute der "Arduino-Fraktion" aus ihren "Löchern 
gekrochen, stürzen sich wie Fliegen auf eine verdorbene Obsttorte auf 
den Fragenden, und versuchen diesen zu bekehren.

Dulfried schrieb:
> ok dann werde ich mir den Arduino Nano V3.0 kompatibles Board holen,

Und haben damit auch noch meisten Erfolg.
Für einen Einsteiger, ist es meines Erachtens, so vollkommen unmöglich, 
einen neutralen Überblick über die gegebenen Möglichkeiten zu gewinnen, 
da dieser den Eindruck bekommen muss, der Kauf eines dieser Arduino- 
Dinger wäre der einzig gangbare Weg.
Anderweitig genannte Alternativen gehen unter, bzw. werden gar nicht 
erst in Erwägung gezogen.
Dies kann man bei jedem ähnlich geartetem Thread wie diesem beobachten.
Ich finde das schlimm und traurig zugleich.

Entschuldigt bitte diesen Off-topic-Beitrag, aber das musste einfach mal 
raus.
Ich weiß, jetzt werden gleich wieder alle Arduino-Fans aus ihren Hölen 
gestürzt kommen, und mich belehren dass ich ja ganz falsch liege. Aber 
sei es drum.

Grüße in die Runde.

Holger

von Axiom (Gast)


Lesenswert?

Noch einer schrieb:
> Zur Zeit gibt es da 2 Varianten.
>
> Die hardwarenahe Bitfummelei auf den AVRs. Und PC-artige Programmierung,
> alles in Libraries verpackt auf den ARMs.
>
> Welche Richtrung willst du einmschlagen?

Wat für'n Schwachsinn. Wie ein MC programmiert wird entscheidet der 
Programmierer und nicht der Chip. Sowohl ARM based als auch AVR's die es 
im übrigen auch mit ARM Core gibt können  sowohl Abstrakt als auch HW 
nah programmiert werden. Zun Endtieg eignet sich jeder Kontroller wenn 
ich persönlich auch nicht zuletzt wegen der guten Umsetzbarkeit auf dem 
Breadboard oder der eig. HW Realisierung aufgrund zahlreicher DIP 
Varianten stehst zu AVR raten würde. Auch gibt's bei AVR vom Hersteller 
eine hervorragende IDE.

Wenn man sich mit MC beschäftigt will man die Dinger wohl auch 
verstehen. Denn sie sind im übrigen dazu da um mit externer HW 
unmittelbar zu sprechen. Also per se HW nah. Wer bunte Bildchen 
Programmieren will und sich von HW fern halten möchte ist besser auf dem 
PC aufgehoben.

Es mag hier ne Menge Klugscheisser geben, die glauben sie schwimmen ganz 
oben auf der Suppe weil Sie auf eben ARM Dev Board ne LED zum blinken 
gebracht haben oder mittels vorgefertigter LIB Linien auf ein LCD gemalt 
haben, aber den Controller verstanden haben die meisten von denen indes 
nicht

von Noch einer (Gast)


Lesenswert?

>Wenn man sich mit MC beschäftigt will man die Dinger wohl auch
>verstehen.

Genau das war die Frage.

Wenn man das Zusammenspiel vom Hardwareregistern, Interrups und 
Verarbeitungslogik verstehen will, sind die alten MCs ideal. Man kann 
die Assembler-Beispiele im Datenblatt 1:1 nach C umsetzen.

Die 32-Bit MCs haben so viele Register - Man findet im Datenblatt gar 
keine vollständigen Assembler-Beispiele mehr. Man nimmt ein RTOS und 
gewöhnt sich einen Stil wie in der PC-Programmierung an - Nur mehr die 
Dokus für die Libraries lesen, die 1000 Details dahinter ignorieren.

von Achim S. (achims)


Lesenswert?

Hallo Gemeinde
bevor es zu einem Konflikt zwischen den Lagern kommt, möchte etwas zum 
ersten Start sagen. Leider kommt es bei einem Neuanfang zu sehr grossen 
Problemen. Es gibt so viele Seiten im Netz. Jede beschreibt ein anderes 
Board. Ob sie aus China kommen oder ein Clon sind, ob es Nachbau oder 
das Ori ist, ist eigentlich fast schon egal. Es kommt drauf an, wie die 
ersten Erklärungen sind, ob die Sache nachzuvollziehen sind und ob man 
es versteht. Damit kommt auf die Autoren sehr viel Verantwortung zu. Die 
Tut`s müssen so geschrieben werden, das man es versteht. Mit Bildern und 
genauen Anleitungen beschrieben ist, die passenden Beispiel dazu, 
Programme die laufen und komplett sind. Eine kostenlose Umgebung zählt 
auch dazu. Wenn ich einige Sachen sehe, könnte ich kot... .
Ich bin nicht unschuldig. Wenn ich meine Fragen sehe, versteh ich Falk 
und KH vollkommen. Die haben eine riesen Geduld mit mir.
Weil mir all die Produkte nicht gefallen haben, habe ich selber was 
gemacht. Etwas was super erweitert werden kann, viele verschiedene Teile 
hat, relativ billig ist und ständig erweiter wird.
achim

von Noch einer (Gast)


Lesenswert?

Ach was, den Konflikt müssen wir endlich mal klären.

Mühsam Assembler gelernt, in die Details von jedem Register 
eingearbeitet. Und dann bekommt ein Anfänger auf nem Arduino mehr 
zustande als ein echter Programmierer nach jahrelanger 
Einarbeitungszeit.

Na und -- Ist doch noch lange keine Entschuldigung für dieses 
Rumgepöbel.

(Hatte zu Z80 Zeiten noch jedes Register gekannt - für mich ist das die 
gute alte Zeit. Wenn Heutzutage noch jemand so etwas antiquiertes lernt, 
ist er selbst schuld.)

von Tombo (Gast)


Lesenswert?

mikroe.com Boards und wenn Du magst auch deren Software, da ist alles 
dabei inklive Beispielen.
Programmierung auch gleich in C, Pascal oder Basic

von Christian J. (Gast)


Lesenswert?

Noch einer schrieb:

> (Hatte zu Z80 Zeiten noch jedes Register gekannt - für mich ist das die
> gute alte Zeit. Wenn Heutzutage noch jemand so etwas antiquiertes lernt,
> ist er selbst schuld.)

Sollen wir das, den letzten Satz, mal persönlich ausdiskutieren? Ganz 
unter uns meine ich?

smöck

von Christian J. (Gast)


Lesenswert?

Dulfried schrieb:

> Welche IDEs sind gängig und kostenlos?
> Und habt ihr hier auf der Seite auch noch eine Tutorial zu diesem Board?
> Oder kann ich mir jedes beliebige tutorial anschauen?

Das Internet ist voll von Jehova...ähm Arrduino.....auf arduino.cc 
findet man alles was man braucht.

Nur, ich komme von den PIC, 10 Jahre lang in C programmiert, davor die 
Z80 Maschinen. VERSTEHEN wird Du mit Arduino nichts, völlig wumpe was da 
für eine CPU drunter ist, die sehen mit den Libs alle gleich aus.

Der Arduino ist vielen Cracks ein dorn im Auge, weil er sie vom heiligen 
Thron stürzte dass nur die Cracks mit Studium wussten wie man mit uC 
umgeht. Dass Schulkinder das jetzt machen wurmt die ganz schön :-)

Es dauert keine 10s nach Installation der IDE bis auf dem Ardu was 
blinkt :-)

von Christian J. (Gast)


Lesenswert?

Noch einer schrieb:

> Die 32-Bit MCs haben so viele Register - Man findet im Datenblatt gar
> keine vollständigen Assembler-Beispiele mehr. Man nimmt ein RTOS und
> gewöhnt sich einen Stil wie in der PC-Programmierung an

Dafür wurden sie auch konzipiert. Niemand der bei Trost ist programmiert 
einen ARM in Assembler. Und in unserer Entwicklung, die High Tech 
Produkte erzeugt gibt es auch niemanden, der ohne eine HAL (Low Level 
HAL) arbeitet. Der ARM wäre nie so gut verkauft worden, wenn die 
Hersteller nicht diese Fülle Docs und Hilfen dazu geschaffen hätten.

von Joachim B. (jar)


Lesenswert?

Christian J. schrieb:
> Es dauert keine 10s nach Installation der IDE bis auf dem Ardu was
> blinkt :-)

und dann steckt man noch ein shield auf und hat die ersten Erfolge und 
wenn man sich pö a pö einliest kommt man weiter, zumal ein Arduino mit 
32k (Uno für shields) noch übersichtlich ist. Später kann man immer noch 
auf einen mega2560 gehen und noch später auf einen ARM.

Klar kann man gleich mit ARM einsteigen, warum auch nicht, mache ich 
vielleicht wenn ich den m1284p oder m2560 ausgereizt habe :-)

von Max D. (max_d)


Lesenswert?

An alle arduino Hasser: ich benutze selbst KEINE arduinos.
Allerdings erinnere ich mich noch an meinen holprigen Start.
Der Spagat zwischen Hardware- und Softwareproblemen ist ziemlich 
schwierig.
Der arduino löst dieses indem er im allgemeinen direkt funktioniert und 
auf keine pfuschereien am serialport angewiesen ist.
Wer jetzt sagt ein Arm könnte das auch, der soll sich mal den Preis vor 
Augen halten. Gerade am Anfang ist man noch nicht zu so großen 
Investitionen bereit.
Wenn man mal "angefixt" dann findet man ganz von allein seine Sparte.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Christian J. schrieb:
> Der Arduino ist vielen Cracks ein dorn im Auge, weil er sie vom heiligen
> Thron stürzte dass nur die Cracks mit Studium wussten wie man mit uC
> umgeht. Dass Schulkinder das jetzt machen wurmt die ganz schön :-)

Quark!

Die Cracks sind die, die in den Lib's ihr Wissen für die Schulkinder 
verpackt haben ;-) Ich halte Arduino dann für absolut sinnvoll wenn das 
primäre Ziel die Entwicklung einer Embeded Solution  ist und die 
Programmierung des µC notwendiges Übel auf dem Weg zum Ziel. Wer das 
ganze verstehen will lässt erst mal die Finger von Systemen mit zu hoher 
Abstrahierung.

von F. F. (foldi)


Lesenswert?

Ich möchte auch noch was in das Rennen werfen - PSoC.
Für mich ist das was man heute im Auge behalten sollte und interessante 
Chip Konzepte haben die auch.
Einfach mal die Cypress Seite besuchen und ein paar Videos schauen und 
einen eigenen Eindruck gewinnen.
http://video.cypress.com/video-library/video/PSoC

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Max D. schrieb:
> Der arduino löst dieses indem er im allgemeinen direkt funktioniert und
> auf keine pfuschereien am serialport angewiesen ist.
> Wer jetzt sagt ein Arm könnte das auch, der soll sich mal den Preis vor
> Augen halten. Gerade am Anfang ist man noch nicht zu so großen
> Investitionen bereit.

Nicht zu vergessen das man auf guten Arduino Klonen (z.B 2560) für ein 
paar Euro aus China den Bootloader rausschmeißen kann und das Ding dann 
wunderbar ohne den C++ Ballast programmieren kann, wenn man es denn kann 
und hat keine Probleme mit der HW. Das sind dann sehr gute und extrem 
preiswerte DevBoards.

Die meisten (nicht alle) die hier ständig mit ihren Arms ankommen sind 
Angeber.

von F. F. (foldi)


Lesenswert?

Thomas Holmes schrieb:
> Das sind dann sehr gute und extrem
> preiswerte DevBoards.

Das sage ich ja auch immer die ganze Zeit.
Aber sobald du "Arduino" sagst, flippen hier einige total aus.

von Christian J. (Gast)



Lesenswert?

F. Fo schrieb:
> Aber sobald du "Arduino" sagst, flippen hier einige total aus.

Er hats schon wieder gesagt !

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Nochmal zu PSoC. Allein die Unterstützung ist schon toll. Habe gerade 
den Dokumentenmanager runter geladen und bin begeistert.
Nicht mehr mühsam Dokumente suchen (obwohl Atmel in der letzten Zeit 
viel getan hat) und die Software hält alles auf Stand.

von WehOhWeh (Gast)


Lesenswert?

Frank schrieb:
> Für den leichten Einstieg empfehlen sich mit Sicherheit die Arduinos.
> Sind extra für so was gemacht. Es gibt auch genügend Bücher etc wo viele
> Beispiele enthalten sind.
>
> Der spätere Umstieg auf reines C ohne Bibs ist dann nicht zu extrem!
> Ansonsten empfiehlt es sich auch C erst mal direkt auf dem PC zu lernen.
> Vorteil ist die viel bessere Debugmöglichkeit und du brauchst erst mal
> gar keine HW. Damit würde ich anfangen!


Ja, das klappt. Ich habe es auch so gemacht. Man kommt schnell zu 
Ergebnissen, das motiviert. Allerdings kommmt man auch schnell an 
Grenzen, das geht los, sobald man etwas mit Batterien betreiben will.

Als Testcompiler für den PC hab ich den hier genommen:
https://en.wikipedia.org/wiki/Dev-C%2B%2B
Der ist schön simpel und schell. Wenn ich C-Fragen klären muss, dann 
nehm ich den noch heute ganz gerne.

Wichtig ist aber, rechtzeitig einen richtigen Controller zu nehmen, 
sonst gehts dir dann wie einigen im Forum, die bei jeder Kleinigkeit 
nach einer fertigen Lib krakeelen. Daher ist der Arduino hier nicht so 
beiliebt.

Mein Arduino verstaubt inzwischen nur noch, ich hab einen PIC32MX250 auf 
einem Breadboard inklusive GLCD, USB und Segger J-Link. Zum 
Experimentieren und herumprobieren schlägt der den Adruino um 
Lichtjahre, alleine schon wegen dem Debugger und der Leistung.

Lass dir aber hier keine Controllerfamilie aufschwatzen. Lerne erst 
genug und entscheide selbst.

von F. F. (foldi)


Lesenswert?

Ich denke nicht, dass irgendjemand hier was aufschwatzen will. Der TO 
fragte ja "womit anfangen" und das Forum hat Vorschläge gemacht.

von Max D. (max_d)


Lesenswert?

Dadurch, dass man den Arduino nachdem man aus den "Babyschuhen" 
Arduino-IDE rausgewachsen ist einfach als AVR weiterbenutzen kann gibt 
es eigtl. nichts was gegen ihn spricht.
Der große Vorteil bei AVR ist die offene Toolchain in Verbindung mit der 
Einfachheit der Code-Erstellung.

Wenn man mit ARM eine offene TC haben will, dann frickelt man erstmal 
nen halben Tag mit Startup und Linker-Scripten bis man das genau auf das 
Szenario eingearbeitet hat (oder man man liefert sich halt einem 
geschlossenen System auf "Gedeih und Verderb" aus).

Bei den stärkeren PICs (PIC24, dsPIC & PIC32) ist das nochmal düsterer, 
da gibt es nichtmal eine frickelige 100% offene Toolchain und selbst der 
gratis-compiler wird nach nem monat kastriert....

von Lothar (Gast)


Lesenswert?

Noch einer schrieb:
> Die 32-Bit MCs haben so viele Register - Man findet im Datenblatt gar
> keine vollständigen Assembler-Beispiele mehr.

Bei den LPC ist selbstverständlich jedes Bit dokumentiert und die ARM 
Assembler Doku im Anhang.

Christian J. schrieb:
> Niemand der bei Trost ist programmiert einen ARM in Assembler.

- Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors (von ARM 
selbst)
- Raspberry Pi Assembly Language Beginners

ARM Assembler ist deutlich einfacher als AVR, einfach mal versuchen ...

Max D. schrieb:
> Der große Vorteil bei AVR ist die offene Toolchain in Verbindung mit der
> Einfachheit der Code-Erstellung.

Wo ist da eine offene Toolchain? Und AVR ist nur dann "einfach" wenn man 
es schon kann :-)

von Max D. (max_d)


Lesenswert?

Lothar schrieb:
> Wo ist da eine offene Toolchain?

avr-gcc mit gcc wie in "der GCC" andächtiges Schweigen ;)

Lothar schrieb:
> Und AVR ist nur dann "einfach" wenn man
> es schon kann :-)

Mal angenommen ich will als Anfänger bei einem AVR (nur mit offenen 
Tools) eine LED blinken lassen.
Dann erstell ich in der IDE/Editor meiner Wahl ein neues Projekt/Datei 
und #include da <avr/io.h> und <util/delay.h> .
Dann kommt in die main
1
DDRB |= (1<<PB5);
2
while(1){
3
   PORTB |= (1<<PB5);
4
   _delay_ms(500);
5
   PORTB  &= ~(1<<PB5);
6
   _delay_ms(500);
7
}
Dann compilieren "avr-gcc main.c -mmcu=atmega328 -DF_CPU=16000000UL -Os 
-o main.elf" und hochladen mit avrdude (der liest seit 6.0.1 direkt elf 
files).

Nennenswert einfacher wird das nur wenn man die ganzen Compiler-Schritte 
in einer IDE versteckt.....

von Lothar (Gast)


Lesenswert?

Max D. schrieb:
> #include da <avr/io.h> und <util/delay.h>

Und jetzt mal dasselbe auf einem LPC800 mit gcc ganz ohne Includes nur 
die Register im Datenblatt nachgesehen :-)

#define DIR0  0xA0002000
#define PIN0  0xA0002100

*((unsigned long *) DIR0) |= 1<<(5);  // output
*((unsigned long *) PIN0) ^= 1<<(5);  // toggle

Max D. schrieb:
> avr-gcc mit gcc

Dachte schon Du meinst Atmel Studio :-)

von Karl Käfer (Gast)


Lesenswert?

Hallo Holger,

Holger schrieb:
> Frank schrieb:
> Tom schrieb:
> Tom schrieb:
> Tom schrieb:
> Noch einer schrieb:
> Max D. schrieb:
>> Arduino
>
> Man es nervt!
> Sobald hier ein Neuling eine Frage ähnlich der des TOs stellt, kommen
> sofort die zig Leute der "Arduino-Fraktion" aus ihren "Löchern
> gekrochen, stürzen sich wie Fliegen auf eine verdorbene Obsttorte auf
> den Fragenden, und versuchen diesen zu bekehren.

Naja, das Arduino-Zeug ist preiswert, verfügbar, gut dokumentiert und es 
funktioniert auch ohne Arduino-"IDE" ganz gut. Das vermeidet viele fiese 
Fehlerquellen und verspricht schnelle erste Erfolge, insofern ist diese 
Empfehlung gar nicht mal die Schlechteste.

> Für einen Einsteiger, ist es meines Erachtens, so vollkommen unmöglich,
> einen neutralen Überblick über die gegebenen Möglichkeiten zu gewinnen,
> da dieser den Eindruck bekommen muss, der Kauf eines dieser Arduino-
> Dinger wäre der einzig gangbare Weg.
> Anderweitig genannte Alternativen gehen unter, bzw. werden gar nicht
> erst in Erwägung gezogen.

Statt hier herumzumeckern, hättest Du die Alternativen und ihre Vor- und 
Nachteile darstellen oder wenigstens erklären können, warum Arduino nach 
Deiner Meinung nicht so geeignet ist wie Alternative XY. Schade.

Liebe Grüße,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo Dulfried,

Dulfried schrieb:
> Hallo miteinander,
>
> ich möchte in meiner Freizeit gerne etwas über die
> Mikrocontroller-Programmierung lernen. Habe aber überhaupt keine Ahnung
> davon. Also hätte ich gerne einen Baukasten, wo schon alles drin ist
> (Erklärungen, Beispiele, Aufgaben).
>
> Außerdem möchte ich den Controller in C programmieren.
>
> Ich hoffe ihr könnt mir weiterhelfen.

Ich bin dann mal altmodisch und empfehle Bücher. Zunächst, besonders für 
absolute Einsteiger mit C-Vorkenntnissen empfehlenswert:

http://www.amazon.de/AVR-Mikrocontroller-programmieren-Selbstbauprojekte-ATtiny13-ATmega32/dp/3645650199/

Gibts auch als Komplettpaket mit Hardware, Breadboard, Bauteilen etc:

http://www.amazon.de/C-Programmierung-von-AVR-Mikrocontrollern-G%C3%BCnter-Spanner/dp/3645650954/

Danach zur Erweiterung des Wissens:

http://www.amazon.de/AVR-Mikrocontroller-Kochbuch-Lukas-Salzburger/dp/3645651268/

HTH,
Karl

von Marc (Gast)


Lesenswert?

Holger schrieb:
> Frank schrieb
> Noch einer schrieb:
>> Arduino
>
> Max D. schrieb:
>> Arduino
>
> Man es nervt!
> Sobald hier ein Neuling eine Frage ähnlich der des TOs stellt, kommen
> sofort die zig Leute der "Arduino-Fraktion" aus ihren "Löchern
> gekrochen, stürzen sich wie Fliegen auf eine verdorbene Obsttorte auf
> den Fragenden, und versuchen diesen zu bekehren.

Besser als sie AVR-Freaks, die hier noch lange vor der ersten 
Arduino-Erwähnung ihre Uralt-Architektur pushen mußten. Wohl aus Angst, 
denn sie wissen ja auch genau, daß sie kein heutiger Anfänger mehr 
anfaßt. Zu recht.

von WehOhWeh (Gast)


Lesenswert?

F. Fo schrieb:
> Ich denke nicht, dass irgendjemand hier was aufschwatzen will. Der TO
> fragte ja "womit anfangen" und das Forum hat Vorschläge gemacht.

Nein, niemals, doch nicht auf µC.net!!! Nie!!!!!11!!

Fakt ist, dass man die Architektur finden sollte, die einem persönlich 
gefällt. Und dazu sollte man sich nicht auf Empfehlungen aus dem Forum 
verlassen.

Und am besten sieht man sich außerhalb der hier empfohlenen Sachen um. 
Es gibt noch TI, NXP, SILABS, Analog Devices, Nuvoton, Infineon, 
Renesas, FCT, Freescale (noch) und andere, die mir gerade nicht 
einfallen.

Außerdem muss man die Dinger ja nicht heiraten.  Obwohl man bei den 
STM32-Leuten hier den Eindruck hat, sie wären damit verheiratet. Wie 
sonst könnte man erklären, dass man sich freiwillig CUBE oder die 
Peripheral Lib antut...

von Kruger (Gast)


Lesenswert?

F. Fo schrieb:
> Ich möchte auch noch was in das Rennen werfen - PSoC.
> Für mich ist das was man heute im Auge behalten sollte und interessante
> Chip Konzepte haben die auch.

Hast du damit schon etwas gemacht? Ich denke nicht und dann sollte man 
sich mit Empfehlungen (für Anfänger) zurück halten. :-(((

PSoc ist ist ein ganz anderes Konzept. Neben der CPU musst du dich in 
die analoge Programmierung einarbeiten. Und die Frage nach dem Kern 
stellt sich weiterhin: PSoC1, PSoC3, PSoC4 oder PSoC5?

von Bernd K. (prof7bit)


Lesenswert?

Thomas Holmes schrieb:
> Nicht zu vergessen das man auf guten Arduino Klonen (z.B 2560) für ein
> paar Euro aus China den Bootloader rausschmeißen kann und das Ding dann
> wunderbar ohne den C++ Ballast programmieren kann

Man kann sogar den Bootloader drin lassen und den µC trotzdem in nacktem 
C programmieren. Warum sollte man auf den Bootloader verzichten? Der ist 
nützlich und bietet sich geradezu an wenn eh schon ein 
USB/Seriell-Wandler und ne USB-Buchse auf dem Board drauf ist.

von Max D. (max_d)


Lesenswert?

Marc schrieb:
> Besser als sie AVR-Freaks, die hier noch lange vor der ersten
> Arduino-Erwähnung ihre Uralt-Architektur pushen mußten. Wohl aus Angst,
> denn sie wissen ja auch genau, daß sie kein heutiger Anfänger mehr
> anfaßt. Zu recht.

Anstatt zu erklären wieso AVR für den Einstieg nicht geeignet ist 
und/oder eine Alternative aufzuzeigen wetterst du gegen die 
Nutzergemeinde (also nichtmal die HW selbst). Fällt dir da was auf?

Lothar schrieb:
> Und jetzt mal dasselbe auf einem LPC800 mit gcc ganz ohne Includes nur
> die Register im Datenblatt nachgesehen :-)
>
> #define DIR0  0xA0002000
> #define PIN0  0xA0002100
>
> *((unsigned long *) DIR0) |= 1<<(5);  // output
> *((unsigned long *) PIN0) ^= 1<<(5);  // toggle

Das hier ist jetzt echtes Interesse meinerseits und kein 
"Gegenargument": Hat der gcc inzwischen die Startup Codes und dgl. 
eingebaut? Wäre nämlich ziemlich nice, hab selber noch ein paar LPC1114 
rumfliegen :D

von U.G. L. (dlchnr)


Lesenswert?

Also ich habe den AVR, seit der AT90S1200 erschienen ist, häufig und 
gerne eingesetzt, aber diesen einem Neulinge, der ja wohl was für die 
Zukunft lernen möchte, zu empfehlen - naja - schon etwas hanebüchend - 
schau' dich besser bei den ARMs (ST, NXP, Atmel, ...) um!

: Bearbeitet durch User
von U.G. L. (dlchnr)


Lesenswert?

WehOhWeh schrieb:
> NXP, ..., Freescale (noch)

U.a. im ARM-Bereich dürfte es da etliche Überschneidungen geben und so 
einiges gestrichen werden - und sicherlich nicht nur bei Freescale!

von peter (Gast)


Lesenswert?

peter schrieb:
> Ebay-Artikel Nr. 221606981761
>
> Ist dieses Teil für 5V oder 3,3V?


Da sich der TE auch dafür entschieden zu haben scheint!

Was braucht man als Software für dieses Teil um es zum Leben zu bringen?

Bitte keine Diskussion, Link und eine kleine Erklärung reicht.
Diskutiert wurde schon genug!
Danke

von Matthias (Gast)


Lesenswert?

Ich bin selbst erst vor ca. 6 Wo in die Materie eingestiegen. Habe auch 
div. Vorschläge zu versch. Plattformen erhalten und mich dann für die 
Atmel AVRs entschieden. Habe mir einen Arduino Nano Clone bestellt, hier 
http://arduino.cc/en/Main/Software die Arduino IDE heruntergeladen und 
damit schnell Ergebnisse erzielt. Installation enthält X kommentierte 
Beispiele für jeden denkbaren (Anfänger-)Anwendungsfall und wenn kein 
spezielles IDE Beispiel verfügbar, findest Du mit Sicherheit eines im 
Internet.
Ein Nano Clone kostet 6-8€ und die IDE ist kostenlos, somit kein Risiko.
Wenn Du dann etwas tiefer eingestiegen bist und z.B. Low Power Lösungen 
realisieren willst, kannst Du den Arduino dann noch als Programmer (ISP) 
nutzen und damit direkt den uC für 0,90-1,40€/Stck programmieren.

von google (Gast)


Lesenswert?

Hier gibt es das (Koch-)Buch zum Arduino kostenlos dazu:

http://4yourneed.blogspot.de/2013/08/arduino-kochbuchpdf.html

von Bernd K. (prof7bit)


Lesenswert?

Max D. schrieb:
> Hat der gcc inzwischen die Startup Codes und dgl.
> eingebaut? Wäre nämlich ziemlich nice, hab selber noch ein paar LPC1114
> rumfliegen :D

Das wäre ein reichlich ehrgeiziges Unterfangen die alle da einzupflegen 
bei der schieren Anzahl unterschiedlicher ARM MCUs die es von allerlei 
Herstellern so gibt. Aber zum Glück gibts ja praktisch immer vom 
Hersteller die entsprechenden Dateien, Header, Linker-Scripts, 
Demo-Projekte, etc. die man als Ausgangspunkt nehmen kann, oft findet 
man auch simple minimal-Projekte im Netz für gängige MCUs die abgespeckt 
sind bis auf das wirklich absolut notwendige Minimum, die eignen sich 
hervorragend zum Tiefeinstieg from scratch.

von peter (Gast)


Lesenswert?

http://www.mikrocontroller.net/link/ebay/221606981761

@ Matthias,@google

Das Teil mit der von euch angegebenen Software wird zum Leben erweckt.
Es soll eigentlich nur Lichttechnik auf Modellen steuern.
da ist der Preis von 5 Euro preiswert.
Es wird so wie es ist eingesetzt, können natürlich auch 10 werden.

von S. R. (svenska)


Lesenswert?

> Und jetzt mal dasselbe auf einem LPC800 mit gcc ganz ohne Includes nur
> die Register im Datenblatt nachgesehen :-)
>
> #define DIR0  0xA0002000
> #define PIN0  0xA0002100
>
> *((unsigned long *) DIR0) |= 1<<(5);  // output
> *((unsigned long *) PIN0) ^= 1<<(5);  // toggle

Du laberst Stuss, um nicht zu sagen großen Unfug.
Wenn ich das in eine C-Datei kippe und baue, funktioniert es trotzdem 
nicht. Auch dann nicht, wenn ich es in eine Funktion stecke.

Wo ist die Vektortabelle?
Wo initialisierst du den Stack-Pointer?
Wo ist der Startup-Code?
Wo ist das Linkerscript?
Wie schnell taktet das Teil? Von welcher Quelle?
Und die Masterfrage: Funktioniert das auf jedem ARM, oder nur auf ganz 
bestimmten?

Und nein, "aus den Beispielen kopieren" ist keine Lösung. Steht übrigens 
z.B. in den Atollic-Scripts vom STM32 oben drin, dass man die NUR für 
die eine Toolchain benutzen darf (Lizenz und so).

AVR ist deutlich einfacher zum Laufen zu kriegen auf ner nackten 
Hardware als ein ARM. Und wir nehmen die "guten" ARMs als Beispiele. 
Versuche das mal mit irgendeinem China-ARM mit Cortex M3-Kern. Da 
scheiterst du schon an den GPIOs.

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

S. R. schrieb:
> Du laberst Stuss, um nicht zu sagen großen Unfug.

Eigentlich macht eine Antwort wenig Sinn, aber ...

S. R. schrieb:
> Wo ist die Vektortabelle?

Solange nichts ausser der Reset auftritt, kann das Programm ab 0 über 
den anderen Vektoren liegen. Ist wie beim 8051 ...

Natürlich erstellt man sich ansonsten einmalig (!) eine Vektortabelle 
entsprechend Datenblatt und setzt dort die gewünschten Namen der 
Interrupt-Handler rein, wo ist das Problem?

> Wo initialisierst du den Stack-Pointer?

Gar nicht, braucht es nicht wenn es nur main und keine lokalen Variablen 
gibt.

Ansonsten im Datenblatt das Ende vom RAM - 1

> Wo ist der Startup-Code?

Braucht es hier (!) nicht, erste Instruktion bei 0 wird nach Reset 
ausgeführt. Ansonsten siehe oben.

> Wo ist das Linkerscript?

Ohne Includes, hier (!) wird nichts gelinkt. Ansonsten trivial: 
Anfang/Ende Flash und Anfang/Ende aller RAM-Blöcke aus dem Datenblatt 
und man hat die Memory Map.

> Wie schnell taktet das Teil? Von welcher Quelle?

Ohne nichts startet der interne Oszillator mit der Default-Frequenz, 
steht im Datenblatt, üblich sind 12 MHz

Ich nutze nur LPC habe aber gelesen das ist auch beim STM32 so.

von F. F. (foldi)


Lesenswert?

Kruger schrieb:
> Fo schrieb:
>> Ich möchte auch noch was in das Rennen werfen - PSoC.
>> Für mich ist das was man heute im Auge behalten sollte und interessante
>> Chip Konzepte haben die auch.
>
> Hast du damit schon etwas gemacht? Ich denke nicht und dann sollte man
> sich mit Empfehlungen (für Anfänger) zurück halten.

Nein, habe ich noch nicht, aber ich habe doch gar nicht gesagt, "Das 
musst du machen!", sondern nur, dass PSoC auch interessant sein könnte.
Die Entwicklungsumgebung ist schon mal sehr interessant.
Leider habe ich erst später gemerkt, dass ich eigentlich sehr wenig mit 
dem erworbenen PSoC4 anfangen kann und habe das noch nicht mal 
ausgepackt. Warte noch auf was günstiges mit PSoC5.

Also, um das nochmal klar zu stellen, ich wollte keine Empfehlung für 
Cypress abgeben, sondern nur sagen: "Schau mal, da gibt es auch was und 
vielleicht ist das für dich interessant!"

von Christian N. (mugen2013)


Lesenswert?

Ich kann echt nicht nachvollziehen, was manche Atmel-Leute gegen Arduino 
haben. Für mich ist es alles dasselbe.
Ja es gibt fertige Bibliotheken bei Arduino, ja wenn man nur die 
benutzt, würde man wahrscheinlich nie Programmieren lernen. Es gibt aber 
auch die Leute, die durch verschiedenen Beispiele lernen und die anderen 
wollen eben mit der Technik spielen. Warum sollte man denen diesen 
Wunsch verweigern?

von nurwie (Gast)


Lesenswert?

Christian N. schrieb:
> Ja es gibt fertige Bibliotheken bei Arduino, ja wenn man nur die

Es gibt auch Wörterbuch bei Duden. Abgesehen davon widerspricht 
"Mikrocontroller-Programmierung selber beibringen" sämtlichen 
Belehrungsversuchen.

von Bernd K. (prof7bit)


Lesenswert?

Lothar schrieb:
> Braucht es hier (!) nicht, erste Instruktion bei 0 wird nach Reset
> ausgeführt.

Nein!

Bei null steht keinesfalls die erste Instruktion sondern die Adresse 
der ersten Instruktion. Und bei 4 steht der initiale Stackpointer.

Und bei so chips wie dem Kinetis kommt bei 0x400 erst noch mal die flash 
Konfig, Davor liegt ein meist ungenutztes Loch, danach erst das 
Programm.

Also laber keinen solchen Unfug.

von Lothar (Gast)


Lesenswert?

Bernd K. schrieb:
> Bei null steht keinesfalls die erste Instruktion sondern die Adresse
> der ersten Instruktion

Sorry habe hier abwechselnd beides vorliegen:

Cortex-M : Adresse der ersten Instruktion

Cortex-A/R : erste Instruktion

von Stefan (Gast)


Lesenswert?

Lothar, in Hinblick auf die Summe Deiner "nurs" und Einschränkungen in 
Deinem Beitrag, Du glaubst ernsthaft dass das für einen Anfänger genauso 
einfach ist?

von Max D. (max_d)


Lesenswert?

Christian N. schrieb:
> Ja es gibt fertige Bibliotheken bei Arduino, ja wenn man nur die
> benutzt, würde man wahrscheinlich nie Programmieren lernen. Es gibt aber
> auch die Leute, die durch verschiedenen Beispiele lernen und die anderen
> wollen eben mit der Technik spielen. Warum sollte man denen diesen
> Wunsch verweigern?

Das Problem, dass viele mit den Arduino-Nutzern haben sind die "lauten 
10%".
Jede Plattform die "einfach so" funktioniert zieht magisch einen 
gewissen Schlag Leute an (quasi der "Apple-Effekt"). Diese angezogenen 
Leute machen zwar zahlenmäßig nur einen kleinen Teil aus, aber sind halt 
extrem extrovertiert in ihrer Meinung. Wer sich dieser Meinung nicht 
beugt wird runtergemacht.
Damit wird aber der Ruf der anderen 90% verdorben die wiederrum 
entsprechend harsch angegangen werden und defensiv-Positionen einnehmen.
Ein Teufelskreis.

Ich bemühe mich da eine etwas neutrale Position einzunehmen (bin selber 
übrigens avr-gcc und eclipse-avr-plugin user).

Von diesem (hoffentlich) neutralen Standpunkt aus kann ich dem Arduino 
die Eignung als Einstiegs-Plattform einfach nicht absprechen. Der 
niedrige Preis und die gut funktionierende Hardware sind hier einfach 
"killler-Features". Jeder der sich weiter in die Welt der Bits und Bytes 
wagt der stößt unweigerlich auf die Grenzen des Systems und überwindet 
die hoffentlich mit einer hardwarenäheren Toolchain (oder neuer 
Hardware). Wer auf dem Level blinkender LEDs und einiger Texte auf dem 
LCD zufrieden ist der wird sicher auch nur mit arduino glücklich.

von Lothar (Gast)


Lesenswert?

Stefan schrieb:
> Lothar, in Hinblick auf die Summe Deiner "nurs" und Einschränkungen in
> Deinem Beitrag, Du glaubst ernsthaft dass das für einen Anfänger genauso
> einfach ist?

Die Sache ist inzwischen etwas abgedriftet, aber der Anfänger hat doch 
die Wahl zwischen Einstieg von oben mit fertiger IDE vom uC-Hersteller 
der Wahl mit Beispielen  Libraries  Tutorials (dazu gehört sicher 
Arduino, aber eben auch LPC/mbed oder LCPXpresso/gcc) und dem Einstieg 
von unten mit Datenblatt  gcc  Startup-Code / Linker-Skripten ...

Ich wollte nur so pauschalen Aussagen entgegentreten:

Noch einer schrieb:
> Die hardwarenahe Bitfummelei auf den AVRs. Und PC-artige Programmierung,
> alles in Libraries verpackt auf den ARMs

S. R. schrieb:
> AVR ist deutlich einfacher zum Laufen zu kriegen auf ner nackten
> Hardware als ein ARM

von peter (Gast)


Lesenswert?

peter schrieb:
> http://www.mikrocontroller.net/link/ebay/221606981761
>
> @ Matthias,@google
>
> Das Teil mit der von euch angegebenen Software wird zum Leben erweckt.
> Es soll eigentlich nur Lichttechnik auf Modellen steuern.
> da ist der Preis von 5 Euro preiswert.
> Es wird so wie es ist eingesetzt, können natürlich auch 10 werden.


Was is's nun,geht das Teil oder nicht?
Das viele Wirrwarr von Meinungen ist nicht zu verstehen!

von S. R. (svenska)


Lesenswert?

>> Wo ist die Vektortabelle?
> Solange nichts ausser der Reset auftritt, kann das Programm ab 0 über
> den anderen Vektoren liegen. Ist wie beim 8051 ...

Falsch. Das gibt entweder direkt einen HardFault, oder du führst 
ungültigen Code aus, je nachdem ob das letzte Bit des zweiten Words 
gesetzt ist oder nicht.

> Natürlich erstellt man sich ansonsten einmalig (!) eine Vektortabelle
> entsprechend Datenblatt und setzt dort die gewünschten Namen der
> Interrupt-Handler rein, wo ist das Problem?

Wo stand das in deinem tollen Code-Beispiel? Beim AVR braucht man das 
nicht, weil der Compiler den Startup-Code integriert hat, und genau der 
das größte Problem darstellt, um eine Plattform erstmalig zum Laufen zu 
kriegen.

>> Wo initialisierst du den Stack-Pointer?
> Gar nicht, braucht es nicht wenn es nur main und keine lokalen Variablen
> gibt.

Stimmt. Damit startet dein Prozessor schonmal nicht, weil ab 
Flash-Adresse null der initiale SP steht... und du da eine Instruktion 
hingeschrieben hast. Damit ist dein Beispiel nichtmal lauffähig, 
gratuliere.

> Ansonsten im Datenblatt das Ende vom RAM - 1

Aha. Das steht wo? Gibt's da Unterschiede zwischen LPC800, LPC1114, 
STM32F100 und STM152L? Vordefinierte, überall verfügbare Konstanten 
irgendwo?

>> Wo ist der Startup-Code?
>
> Braucht es hier (!) nicht, erste Instruktion bei 0 wird nach Reset
> ausgeführt. Ansonsten siehe oben.

Falsch.
Flash-Adresse 0: initialer SP
Flash-Adresse 4: initialer PC

>> Wo ist das Linkerscript?
> Ohne Includes, hier (!) wird nichts gelinkt.

Das heißt, main() liegt ab Adresse 0? Wunderbar, denn dort befindet sich 
normalerweise kein Flash. Du solltest also tunlichst aufpassen, dass 
dein Compiler relozierbaren Code erzeugt, da du ihn gerade an eine 
ungültige Adresse gelinkt hast...

> Ansonsten trivial:
> Anfang/Ende Flash und Anfang/Ende aller RAM-Blöcke aus dem Datenblatt
> und man hat die Memory Map.

Die da wo wäre? Erneut, wo bei welchem Controller? Und wo steht das im 
Datenblatt, und wo ist in deinem "Minimal-"Beispiel die Information, wie 
man das macht?

>> Wie schnell taktet das Teil? Von welcher Quelle?
>
> Ohne nichts startet der interne Oszillator mit der Default-Frequenz,
> steht im Datenblatt, üblich sind 12 MHz

Manchmal ja, manchmal nein.
Ein STM32L152 startet mit ~2 MHz, ein SAM3X mit ein paar kHz. Was das 
für ein Oszillator ist, und ob da noch irgendwelche Teiler dabei sind, 
hängt vom Chip ab. Auch das hast du nicht dazu geschrieben.

PS: Es ist ziemlicher Aufwand, den Clock-Tree im ST-Datenblatt soweit 
auseinanderzufummeln, dass man die 2.048 MHz nachvollziehen kann. 
Nochmal: Das ist anfängerfreundlich?

> Ich nutze nur LPC habe aber gelesen das ist auch beim STM32 so.

Da hast du falsch gelesen.

Lothar schrieb:
> Die Sache ist inzwischen etwas abgedriftet, aber der Anfänger hat doch
> die Wahl zwischen Einstieg von oben mit fertiger IDE vom uC-Hersteller
> der Wahl mit Beispielen  Libraries  Tutorials (dazu gehört sicher
> Arduino, aber eben auch LPC/mbed oder LCPXpresso/gcc) und dem Einstieg
> von unten mit Datenblatt  gcc  Startup-Code / Linker-Skripten ...

Wenn der Anfänger keinen Arduino und keinen vorgekauten Code will, dann 
muss er sich wohl oder übel mit der Toolchain befassen. Und die 
vorgefertigten (GNU-kompatiblen) Startup-Scripte von ST darfst du nicht 
legal für deine eigenen Projekte benutzen, solange du nicht die richtige 
IDE benutzt. (Dass man das trotzdem kann, ist eine andere Sache.)

Und weder sind der Startup-Code und die Linkerscripte trivial, noch sind 
sie leicht zu finden.

> Ich wollte nur so pauschalen Aussagen entgegentreten:
>
> S. R. schrieb:
>> AVR ist deutlich einfacher zum Laufen zu kriegen auf ner nackten
>> Hardware als ein ARM

Tja, und dabei hast du Unmengen Stuss erzählt. Und damit eigentlich 
gezeigt, dass diese pauschalen Aussagen doch mehr Wahrheit beinhalten, 
als du zugeben möchtest.

Auf einer nackten Hardware brauchst du für einen AVR:
- korrekt gesetzte Fuses (für Anfänger schwer genug)
- C-Datei
- korrekte Compilerparameter
alles andere wird vom avr-gcc mitgeliefert und ist problemfrei.

Und für einen ARM:
- funktionierendes Linkerscript (Hersteller/Datenblatt)
- funktionierenden Startup-Code (Hersteller/Datenblatt)
- CMSIS-Header mit den Registerbeschreibungen (Hersteller, nicht 
zwingend aber empfehlenswert)
- C-Datei
- korrekte Compilerparameter
die ersten drei Punkte sind für Anfänger schlicht unmöglich selbst zu 
erfüllen, und von Hersteller zu Hersteller sehr unterschiedlich. Finde 
mal die CMSIS-Header von ST, nur so als Beispiel.

Da ist nix anfängerfreundlich. Wenn man sich da mal durchgebissen hat, 
nachvollziehbar. Aber nix, wenn man in Hard- und Software auf einem 
fremden Gebiet einsteigt, selbst wenn man schon fließend C kann.

von Andreas H. (ahz)


Lesenswert?

WehOhWeh schrieb:
> ich hab einen PIC32MX250 auf
> einem Breadboard inklusive GLCD, USB und Segger J-Link

Nur aus Neugier: Warum nimmst Du einen J-Link statt dem Pickit3 ?

/regards
Andreas

von Lothar (Gast)


Lesenswert?

S. R. schrieb:
> Auf einer nackten Hardware brauchst du für einen AVR:
> - korrekt gesetzte Fuses (für Anfänger schwer genug)

Genau das braucht man bei einem LPC nicht (ARM oder 8051), selbst wenn 
der Anfänger es geschafft hat die PLL so zu setzen, das nichts mehr 
läuft, kommt er immer noch mit dem ROM-UART-Bootloader rein. Dank 
internem Oszillator muss man auch keinen externen dranhalten wie beim 
AVR für die Rettung. Hier wurde noch kein einziger LPC gebrickt. Das hat 
aber wieder nichts mit AVR oder ARM zu tun sondern mit dem Hersteller: 
bei Atmel sind die 8051 und AVR gleich schnell verfused.

von S. R. (svenska)


Lesenswert?

Hier wurde auch noch nie ein AVR "gebrickt".
(Und die Angabe mit dem Hersteller ist auch ungenau. Einen Atmel SAM3X 
zu verfusen dürfte auch ziemlich schwierig sein.)

von peter (Gast)


Lesenswert?

peter schrieb:
>> http://www.mikrocontroller.net/link/ebay/221606981761
>>
>> @ Matthias,@google
>>
>> Das Teil mit der von euch angegebenen Software wird zum Leben erweckt.
>> Es soll eigentlich nur Lichttechnik auf Modellen steuern.
>> da ist der Preis von 5 Euro preiswert.
>> Es wird so wie es ist eingesetzt, können natürlich auch 10 werden.
>
> Was is's nun,geht das Teil oder nicht?
> Das viele Wirrwarr von Meinungen ist nicht zu verstehen!



Leute, ist Regen Nass?
Heute ist Montag?
Mein Hund hat Durchfall!

Ich bitte Euch,ist das Teil einfach Nutzbar.
Ist doch ein Bootslader drin?

Danke

von Ulli (Gast)


Lesenswert?

peter schrieb:
> Ich bitte Euch,ist das Teil einfach Nutzbar.
> Ist doch ein Bootslader drin?

Ja, da ist ein Bootloader drin (zumindest war es bei meinem so).
Das Teil ist ein ganz normales Arduinomodul.

Ulli

von Ulli (Gast)


Lesenswert?

Lothar schrieb:
Dank
> internem Oszillator muss man auch keinen externen dranhalten wie beim
> AVR für die Rettung. Hier wurde noch kein einziger LPC gebrickt.

Das ist doch ein Argument aus dem letzten Jahrhundert!
Ich habe in den letzten 20 Jahren vielleicht 20 Projekte mit einem AVR 
durchgezogen. Bin also kein Hardcore-Elektroniker (bin mehr 
Modellbauer).
In der Zeit habe ich mich aus noch keinem einzigen ausgesperrt, obwohl 
alle mit externem Quarz betrieben wurden.
Früher (TM) bedurfte es noch etwas mehr Konzentration beim Fuse setzen. 
Heutzutage gibt es Fuserechner im Netz und HowTos und anständige 
Software. Wer da noch die Fuses falsch setzt sollte sich ein anderes 
Hobby suchen oder nicht so viel saufen.

Natürlich muss sich so mancher wundern, weshalb das mit den Fuses bei 
den AVRs so gemacht wird.
Positiv ausgedrückt: Das ist der Charme alter Technologie.

Trotzdem zum Anfangen immer noch eine der besten Mikrocontroller.

Habe es vor langer Zeit mal mit PICs versucht. Da hatten mich die 
(bessere?) Hardwarefeatures gelockt.
Damals habe ich noch in Assembler programmiert. Das ist jedoch bei den 
PICs eine einzige Katastrophe!
Und PICs mit C kommt für mich nicht in Frage, da es keine ordentliche 
kostenfreie Software gibt (oder gab?)

Ich kann den TO zu seiner Entscheidung nur beglückwünschen. Damit macht 
er auf keinen Fall etwas falsch!

Ulli

von Moby (Gast)


Lesenswert?

Lothar schrieb:
> Ich wollte nur so pauschalen Aussagen entgegentreten:
> S. R. schrieb:
>> AVR ist deutlich einfacher zum Laufen zu kriegen auf ner nackten
>> Hardware als ein ARM

Da gibts nix entgegenzutreten, das ist und bleibt so, solange ARMs 
Unmengen an Funktionen enthalten, die kein Hobbybastler und erst recht 
kein Einsteiger je benötigen wird.
Das hier groß aufgeblasene Fuse-Problem hätte sich mit der Einführung 
der Xmegas auch erledigt. 99% der typischen Bastlerprojekte kann man mit 
der eingebauten, genauen, voreingestellten internen 2 MHz Takterzeugung 
erledigen.

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

peter schrieb:
> Ich bitte Euch,ist das Teil einfach Nutzbar.
> Ist doch ein Bootslader drin?
Was regst Du Dich auf, wurde doch schon beantwortet.

Matthias schrieb:
> Habe mir einen Arduino Nano Clone bestellt, hier
> http://arduino.cc/en/Main/Software die Arduino IDE heruntergeladen und
> damit schnell Ergebnisse erzielt.
Wenn man schnell Ergebnisse erzielen kann, wird das Teil wohl nutzbar 
sein.

Allerdings bin ich wg. Stromverbrauch der Arduino Platine (Serial-USB 
Wandler usw.) sehr schnell dazu übergangen, den Nano nur noch als ISP zu 
nutzen und damit die Roh-Chips zu programmieren (mit der gleichen 
Software).
Mit der Programmierplatine inkl. versch. Chip-Shields kann ich so die 
versch. Roh-Chips ohne Umsteckerei direkt programmieren und testen.

von Falk B. (falk)


Lesenswert?

@ Ulli (Gast)

>Früher (TM) bedurfte es noch etwas mehr Konzentration beim Fuse setzen.
>Heutzutage gibt es Fuserechner im Netz und HowTos und anständige
>Software. Wer da noch die Fuses falsch setzt sollte sich ein anderes
>Hobby suchen oder nicht so viel saufen.

Oder schlicht und ergreifend einen ganz normalen Programmieradapter ala 
AVR ISP MK II oder ähnlich mit AVR Studio & Co nutzen. Dort sind die 
Fuses ohne dreimal umrechnen und fummeln direkt sichtbar. Und keiner 
muss auf RSTDSBL clicken. Es gibt da sogar eine Warnung, wenn man es 
doch tut. Und schon ist das Problem gelöst. Ich hab in meiner Bastler- 
und Profikarriere bestenfalls 1-2 AVRs verfused. Und warum? Weil ich mit 
einem Frickeladapter und Frickelsoftware die Fuses gesetzt hatte!

>Positiv ausgedrückt: Das ist der Charme alter Technologie.

Schau dir EEPROMs und Röhren an, die haben auch Charme!

>Trotzdem zum Anfangen immer noch eine der besten Mikrocontroller.

Yep!

von DIL24 (Gast)


Lesenswert?

AVR stirbt. Das ist ein Pferd das ich nicht satteln würde.

Ich bastel gerade mit diesem Board: 
http://www.st.com/web/en/catalog/tools/PF260319

Auf der Embedded World hab ich dann herausgefunden dass es dazu eine 
freie Lizenz von ARM für deren MDK gibt. Das nehm ich her, weil da 
einfach alles von Anfang an lief. siehe 
http://www2.keil.com/stmicroelectronics-stm32/mdk

von Falk B. (falk)


Lesenswert?

@ DIL24 (Gast)

>AVR stirbt.

Totgesagte leben länger ;-)

von hp-freund (Gast)


Lesenswert?

Ohne Frage sind die "übersichtlichen" Controller für den Einstieg 
einfacher.

Wer aber die Zusammenhänge von startup, linker usw. für den STM32 und 
sicher auch andere ARM verstehen will, für den gibt es zum Beispiel so 
etwas:

http://fun-tech.se/stm32/OlimexBlinky/mini.php

Hier im Abschnitt: 0x09 The mini example
ist alles super erklärt und man kann es leicht nachvollziehen und darauf 
aufbauen. Damit kann man sich dem ARM schon sehr viel mutiger annähren.

von Bernd K. (prof7bit)


Lesenswert?

hp-freund schrieb:
> Wer aber die Zusammenhänge von startup, linker usw. für den STM32 und
> sicher auch andere ARM verstehen will, für den gibt es zum Beispiel so
> etwas:
>
> http://fun-tech.se/stm32/OlimexBlinky/mini.php

Das ist didaktisch wertvoll für den Einstieg! Besser geeignet als 
tausend Arduino libs.

von Max D. (max_d)


Lesenswert?

DIL24 schrieb:
> AVR stirbt.

Du meinst so wie der

hp-freund schrieb:
> Wer aber die Zusammenhänge von startup, linker usw. für den STM32 und
> sicher auch andere ARM verstehen will, für den gibt es zum Beispiel so
> etwas:
>
> http://fun-tech.se/stm32/OlimexBlinky/mini.php

Das ist ja ein cooles Projekt, aber ich denke einen blutigen Neuling 
wird es bei der ganzen "__attribute__" und "section()" Orgie etwas 
abschrecken.
Dazu kommt, dass eigtl. Null auf die Hardware eingegangen wird.
Eher geeignet für jemanden der schon mit Hintergrund umsteigt.

Für jemanden der noch nie einen µC aus der Nähe gesehen hat bleibt 
arduino einfach Sieger. Wenn man für nen ARM ein ähnliches plug&play 
system will, dann kostet das ein vielfaches. Gerade wenn man auf einem 
OS arbeitet, dass nicht im Mittelalter feststeckt hust CDC-Treiber 
hust, dann braucht man nichtmal eine feste Installation von irgendwas.

von U.G. L. (dlchnr)


Lesenswert?

DIL24 schrieb:
> Auf der Embedded World hab ich dann herausgefunden dass es dazu eine
> freie Lizenz von ARM für deren MDK gibt. Das nehm ich her, weil da
> einfach alles von Anfang an lief. siehe
> http://www2.keil.com/stmicroelectronics-stm32/mdk

Tolle Info!

Würd' ich dann damit kombinieren:
http://de.farnell.com/stmicroelectronics/nucleo-f091rc/entw-board-stm32f091rc-stm32-nucleo/dp/2456785

Hat 4faches RAM und Flash, außerdem CAN.
und für die Arduino Fans: Extension Arduino Uno Revision 3

: Bearbeitet durch User
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.