PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfängerfragen



Mountainking
19.08.2009, 17:47
Also ich möchte jetzt auch mit der Programmierung von Microcontrollern anfangen und habe mich auch schon informiert, bin mir aber über einige Dinge immer noch nicht im klaren:

Welche Desktop-Plattform ist zum Entwickeln besser geeignet (Windows/Linux)?

Was genau ist der Unterschied zwischen einem application/embedded processor?

Programmiert ihr am blanken Eisen des Microcontrollers (also ohne Betriebssystem)?

Oder ist es notwendig ein Linux auf dem ARM laufen zu lassen?

Welches Linux ist hierfür zu empfehlen?

Sind die ARM Core M3 Microcontroller überhaupt schon erhältlich?

Wie lässt sich am besten die Software auf den ARM übertragen?
Mit einem JTAG-Adapter? Warum gibt es hier nur Adapter die dem Anschein nach von ein paar Hobby-Bastlern zusammengelötet wurden?
Welcher JTAG-Adapter ist zu empfehlen?

Was brauche ich für Software um Code auf den ARM zu übertragen? Reicht das Toolchain und dessen Debugger bzw. Compiler aus?

Wäre super wenn mir jemand den Einstieg etwas erleichtern würde.

rideyourstyle
19.08.2009, 19:16
Wenn du dich wirklich mit Mikrocontroller beschäftigen willst, dann empfehle ich dir folgende Seiten:

http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht
http://www.mikrocontroller.net/articles/AVR-Tutorial

Ich habe zwar noch nie etwas mit einem ARM-Kontroller gemacht, aber ich weiss, dass diese vorallem für extrem leistungshungrige Anwendungen geamcht sind. Für viele Bereiche reicht ein "normaler" Mikrocontroller ohne Probleme. Auf diesen läuft dann das Programm auf dem Zitat: "blanken Eisen" obwohl ich doch eher auf Silicium wetten würde als auf Eisen! ;-)
Soweit ich weiss, sind die ARM's viel teurer, nicht in anfängertauglichen Gehäusen zu erhalten und benötigen eine aufwändigere Beschaltung bzw Programmierung!

Felix G
20.08.2009, 00:59
Also...

Ob Windows oder Linux ist erstmal wurscht, nimm das was dir besser gefällt, bzw. was du sowieso schon installiert hast.


Auf dem Controller selbst benötigst du nicht zwangsläufig ein Betriebssystem. Bei den schwächeren (z.B. ARM7) würde ich sogar eher davon abraten, da sich diese ähnlich simpel in C programmieren lassen wie etwa ein AVR. Anders sieht es bei den leistungsfähigeren Controllern aus (etwa ARM9), bei denen kann ein Betrebssystem durchaus sinnvoll sein (ohne lassen sich manche Features kaum nutzen).

Was das Flashen der Controller angeht, das geht meist recht simpel per UART (RS232) ... die LPC µCs von NXP (z.B. der LPC2364) jedenfalls haben schon einen passenden Bootloader drin, so daß sie sich recht bequem flashen lassen.

JTAG ist schön, aber die kommerziellen Adapter sind leider sehr teuer (was wohl auch der Grund dafür sein dürfte, daß viele Bastler auf Selbstbau-Lösungen zurückgreifen). Da sollte man sich die Frage stellen ob man das wirklich braucht, oder ob man nicht doch ohne auskommt.


Die µCs selbst sind übrigens nicht sehr teuer, die kleineren sind vom Preis her durchaus vergleichbar mit den AVRs. Ein Problem für Anfänger könnte allerdings das Gehäuse sein, denn alle mir bekannten ARM µCs gibts nur als SMD.

Vitis
20.08.2009, 02:17
Für den Einstieg würde ich ARM7 oder höher nicht empfehlen ...
Der Frustfaktor bis das Ding mal endlich läuft, bzw. die Toolchain
steht, Startup Code funzt etc. ist recht hoch bei den Dingern.
Wenn Du später in die Leistungsklasse vorstoßen willst ist
es sinnvol in C zu proggen ... einsteigen würd ich auf 8 Bit
"normalen" AVR. Ist preislich sehr überschaubar und wird in verschiedenen
Foren auch gut supportet.
Das Register Summary ist auch noch recht übersichtlich.
Wenn DU dann mit dem Teil firm bist würde ich erst den Aufstieg angehen.
Dann aber zuächst mit fertigem Evalboard um Hardwarefehler zum Anfang
auszuschließen. Olimex hat da recht brauchbare geschichten und auch
den passenden OCD.

Mountainking
20.08.2009, 13:04
Schonmal danke für die Antworten. Ich habe mich ganz bewusst gegen die AVR's entschieden, da ich später sowieso Funktionen nutzen möchte wie z.B. GPS was wohl mit ARM-Microcontrollern einfacher zu realisieren ist. Privat programmiere ich eh viel mit C & C++.

@Felix G
Das mit dem UART war ein guter Tipp, habe gerade nochmal mein Mainboard angeschaut und festgestellt, dass ich sogar noch einen seriellen Anschluss habe. Das erspart mir schonmal ne Menge Ärger mit dem JTAG-Adapter.

Was mich noch interessieren würde ist, wie man ein Linux auf einen ARM-µC flasht. Und welche Linuxversionen hier geegnet sind?

Vitis
20.08.2009, 19:05
hmmm ... GPS hat mit dem µC nix zu tun ... die Module geben alle
Sekunde neue Daten aus, das macht n ATTiny mal nebenher
die Abfragen. ;)
Kommt halt drauf an was sonst noch gehen soll ... unterschätz die
8-Bitter nicht, bei intelligenter Programmierung sind das mächtige
Zwerge.
Was die Linuxdistri angeht ... also SuSe wird nicht einfach so gehen.
Das Problem beim Einsatz eines OS ist, das Du u.U. mächtig
Performance verlierst gegenüber der "direkt am Eisen" Methode.
Soweit ich in der Materie drin bin ists auf ARM7 recht selten
Linux einzusetzen, dort eher den kleinen Bruder RTOS ...
Linux eher auf >= ARM9 oder AVR32 Plattformen.
Wie man die Linuxdistri auf den µC bekommt ist von µC zu µC
unterschiedlich. Oft ist aber n JTAG notwendig, viele Controller
haben Bootloader fest drauf, dann kann man sogar u.U. per
USB flashen (AT91SAM z.B.).

rideyourstyle
21.08.2009, 00:02
Also Mountainking

So wie ich das heraus höre, solltest du anfangen, dich mit der Materie zu befassen. Egal ob AVR oder ARM. Du must dir das Wissen selber beibringen. Ein AVR kann genau so gut mit GPS Daten umgehen wie ein ARM. Wenn du dich ohne Vorwissen an ein ARM machst, wirst du kläglich scheitern oder ungalublich viel Zeit investieren. Während dieser Zeit hättest du dich längst in die unendlichen Weiten des AVRs gearbeitet und dein GPS-Problem gelöst.

Du willst von diesem Forum Tips und Ratschläge? Dann befolge sie auch oder du lässt es ganz sein.

Obwohl die AVR's nur kleine 8bitter sind, sind sie überhaupt nicht blöd. Immerhin schaffen die bis zu 20'000'000 Befehle pro Sekunde. Und intelligent programmiert, kann man da seeeeehhhhhhhhhhr viel rausholen....

Hellmut
31.08.2009, 01:06
Hallo Leute

Ich möchte für ein Projekt auf denSTM32 M3 Cortex Controller setzen. Ich habe als Systemumgebung Xp Pro. Trotz langer Recherchen finde ich keine kostenlose Entwicklungsumgebung für XP für den M3 Cortex!
Ich glaube ihr nennt das Tool Chain!
Leider muss ich für dieses Projekt von meiner bewerten BASCOM-Umgebung Abschied nehmen und mich in die "Untiefen" der C-Entwicklung stürzen.
Wenn ich in den verschiedenen Foren lese welche Probleme "Experten" haben ihre "Tool Chain" zum Laufen zu bekommen, ja überhaupt klar zu sagen was man braucht und wie man das unter XP zum Laufen bringt, dann frage mich mich warum das mit C alles so schwer sein muss? Schon die Erklärungen was man alles machen sollte und mit welchen mehr als kryptischen Fehlermeldungen man sich herumschlagen muss, so frage ich mich warum es keinen einfachen klaren und sofort umsetzbaren Kurs gibt ein "Hello World" zu erreichen!
Natürlich könnte man für 650,- € von Hitex und anderen ihre jeweiligen "Low Cost" Entwicklungsumgebungen kaufen. Solange man noch nicht bezahlt hat sagen sie ja das alles easy geht! Werden die das auch halten können wenn man das Geld auf den Tisch gelegt hat? Beschränkungen auf 32kByte halte ich auch für nicht akzeptabel.
Bei Diskussionen um die "bessere" Programmiersprache höre und lese ich von den C freaks wie minderwertig BASCOM wäre, aber was entsprechendes für C und für den M3 Cortex und das kostenlos oder max. 100,- €?
Zeigt einem C-Anfänger wie er eine einsatzfähige Umgebung und ein "Hello World" bekommt!

Danke für den Mutigen schon im Vorraus!

Mountainking
03.09.2009, 19:25
Hi Helmut, bei Amazon gibt es eine ganze Reihe von Büchern zum Cortex M3. Inwiefern dir diese helfen kann ich aber nicht sagen. Ich wusste gar nicht, dass es den M3 schon zu kaufen gibt. Wo hast du den denn gekauft?

So ich habe mir jetzt jeweils zwei ADUC7027 und ADUC7060 Samples bei ADI bestellt und möchte ein wenig mit diesen rumexperimentieren. Nach Möglichkeit möchte ich aber kein fertiges Board kaufen. Gibt es daher irgendwo Beispielschaltungen um ARM-Microcontroller zu programmieren? Und gibt es für die uC so eine Art Sockel, damit man diese nicht fest auf dem Board verlöten muss, sondern schnell tauschen kann?

PS: Könnt ihr mir ein gutes RS232-Kabel empfehlen?

Hellmut
03.09.2009, 22:22
Hallo Mountainking
Den STM32F103VBT6 gibt es bei Digikey.de, dort gibts eigentlich praktisch alle Typen. Das Löten des Bauteils ist allerdings nicht ohne!
Ich werde meinen auf einer Platine von Freunden in der KW39 mir löten lassen.
da ich aber immer mehr mit dem problem des Lötens solcher anspruchsvoller Bauteile konfrontiert bin und nicht den Komfort verlieren möchte mir Platinen jederzeit selber zu machen, habe ich mit den Aktivitäten begonnen mir hier die Gerätschaften anzuschaffen, bzw. zu bauen, die ich dazu brauche.

Mountainking
28.09.2009, 19:14
So ich habe jetzt alles beisammen um Platinen zu erstellen und möchte mich an meine erste Schaltung wagen. Diese soll so simpel wie möglich werden. Erstmal möchte ich einfach eine LED zum blinken bringen. Der uC (STM32F103VBT6) soll dabei über ein Sub-D Kabel mit dem PC verbunden werden können. Die Stromversorgung soll ein externes Netzteil liefern. So weit so gut.

Nun zu meinen Problemen. Wie verschaltet man den uC mit der RS232 Sub-D-Buchse auf der Platine? Brauche ich einen RS232-TTL-Wandler? Wo finde ich das Datenblatt vom STM32F103VBT6? Wofür steht hier das VBT6? Auf dem Homepage von ST kann ich nichts finden. Gibt es Gehäuse (für z.B. TQFP100), die man auf die Platine löten kann, so dass der uC selber nur eingesteckt wird?

Oder existiert evtl. im Netz eine ähnlich primitive Schaltung an der ich die Grundschaltung, um den uC erstmal nur programmieren zu können, nachvollziehen kann.

Hellmut
28.09.2009, 20:50
Hallo Mountainking
Du stehst jetzt genau vor dem Problem in dem ich mich nun auch schon seit einiger Zeit befinde. Nun zu deinen Fragen:
1. gehe zu st.com und gebe bei Part # die oben in deinem Beitrag genannte Teilenummer ein. Der Suchvorgang führt zu einem Eintrag in welchem du das Datenblatt zum herunterladen findest. Im Datenblatt findest du alle Antworten was die Bauteilbezeichnung bedeutet!
2. Für das Gehäuse gibt es keinen Sockel! das LQFP100 muss gelötet werden.
Falls es noch geht würde ich dir empfehlen bei rcline.de das Board zu erwerben das dort Mitglieder entwickelt haben um sich eine eigene Funkfernsteuerung zu bauen:

http://www.rclineforum.de/forum/board.php?boardid=149&sid=

Der Thread „rcos Bestellung 09/2009“ ist der Ort wo du die Leute findest über die ich meine Platine bekommen habe. Alternativ kannst du eine solche Karte mit Eagle selber entwickeln. Vielleicht kennen aber andere Mitglieder hier im Forum andere Quellen wo der Controller bereits montiert ist!

Mountainking
29.09.2009, 22:25
@Hellmut
Super, das Datenblatt hilft mir schonmal weiter. Auf fertige Boards wollte ich nur im Notfall zurückgreifen, falls ich gar nichts gebacken bekomme. Ich möchte ja später meine Schaltungen auch weiterentwickeln können. Da wäre ein fertiges Board nicht für geeignet. Außerdem macht das Board entwerfen ja auch Spaß ;).

Hier gibt es übrigens eine ganz brauchbare Schaltung:
www.mikrocontroller.net/articles/Cortex_M3_OCM3U

Allerdings wird der uC hier über die RS-232-Schnittstelle mit Spannung durch den RS232-TTL-Wandler versorgt, wenn ich das richtig sehe. Das macht die Schaltung halt schonmal ein ganzes Stück komplizierter.

Und zu allem Überfluss habe ich gerade bemerkt, dass ich mit meinen einseitig beschichteten Foto-Platinen nicht hinkommen werde. Naja man lernt aus Fehlern.

Hellmut
29.09.2009, 22:42
Hallo

Ich hoffe du hast bessere Augen als ich. Die Pins sind von Mitte-Pin zu Mitte-Pin 0,5mm! Der Abstand von Pad zu Pad entsprechend kleiner.

Ich war letzte Woche bei Martin-smt.de und habe dort ihren Dispenser das Lötzinn auf solche Pads setzen sehen! ich brauchte eine Lupe um zu erkennen, dass auf den Pads immer 3x ein Tröpchen Lötpaste mit einer 0,17mm Düse und spezieller Finepitch 6 Lötpaste mit Partikeln <= 0,14mm!

Ich baue mir jetzt basierend auf dem Clever-Dispense 05 und einem Selbstbau Portal wie man sie von Portalfräsen kennt. Merkmal bei dieser Implementation ist natürlich maximal mögliche Präzision bei der Wiederholbarkeit beim Anfahren von Positionen und weniger die Fähigkeit
große Kräfte aufzunehmen.

Es gibt allerdings Experten die können mit Fluxpaste und Entlötlitze das auch hinbekommen! Lass mich wissen wie du es machst! Ich verwende übrigen für Durchkontaktierungen die Nieten von Bungard und habe mir dafür die Vorrichtung von einem Freund drehen lassen!

Mountainking
30.09.2009, 12:49
Das Löten ist hoffentlich nicht so schwierig. Zumindest bei diesem Video sieht es eigentlich machbar aus:

http://www.youtube.com/watch?v=FGr3GRQdZZc&feature=related

Ich werde die Tage wenn ich mal Zeit habe eine Testplatine anfertigen und schauen, obs funktioniert.

Durchkontaktierungen mit Nieten würde ich auch gerne machen, dafür ist mir aber die Vorrichtung im Moment doch zu teuer. Ich werde einfach ein Loch bohren Draht durchstecken und diesen auf beiden Seiten festlöten. Das sollte für den Anfang erstmal reichen.

Hellmut
30.09.2009, 15:17
Die Vorrichtung dürfte bei dir und bei mir praktisch kostenlos sein. ich verwende meinen Bohrständer als Presse, nicht die teuere von Bungard und ich habe mit die Stempel nach den Abbildungen auf der Bungard Webseite selber gemacht, bzw. eine freund mit einer Drehbank gebeten diese zu drehen.
Habe damals zu dem Thema hier ein Thread geöffnet.

Mountainking
04.10.2009, 22:07
Muss mich auch mal erkundigen, wo man solche Stempel machen lassen kann. 200€ für das Teil sind schon recht viel und wenn man Pech hat gehen die feinen Stempel nach ein paar Nieten kaputt und kann sich diese dann nochmal für ca. 60 € kaufen.

Was ich aber nochmal fragen wollte. Mit welcher Software programmierst und debuggst du die uC?