Hallo, Frage an die Studenten (auch ehemalige), die im Studium mit Arm Mikrocontroller zutun haben/hatten. Mit welcher Lektüre lernt Ihr, welche Bücher, welche Controller? Dann, na ja, eine Frage, die natürlich von vielen Faktoren abhängig ist, aber ich stelle sie mal trotzdem. Wie lange braucht es ungefähr, bis man da so durchblickt und Programme, mit einigermaßen Anspruch schreiben kann? Hintergrund der Fragerei, ich habe bisher mit AVR alles erschlagen bekommen, was so anfällt. Jetzt starten wir ein neues Projekt mit Grafik-Display (eigentlich nur Text mit ein paar Symbolen), Bluetooth, Audioausgabe, Infrarot, Funk. Diese Peripherie wird aber nie gleichzeitig benutzt. Tja, mit welchem µC komme ich am schnellsten ans Ziel? Dicker AVR Xmega Arm7 Meine Kenntnisse beschränken sich im Moment auf AVR, C-Grundkenntnisse. Danke schon mal!
Gästchen schrieb: > Frage an die Studenten (auch ehemalige), die im Studium mit Arm > Mikrocontroller zutun haben/hatten. Mit welcher Lektüre lernt Ihr, > welche Bücher, welche Controller? > Dann, na ja, eine Frage, die natürlich von vielen Faktoren abhängig ist, > aber ich stelle sie mal trotzdem. Wie lange braucht es ungefähr, bis man > da so durchblickt und Programme, mit einigermaßen Anspruch schreiben > kann? Du wirst Deinen ARM in C programmieren. Deine Frage zerfällt also in zwei Teile: a) wie lange brauchst Du, bis Du vernünftig C kannst b) wie lange brauchst Du, bis Du einen beliebigen Controller verstanden hast. c) wie lange brauchst Du, um eine neue Entwicklungsumgebung zu verstehen (a) kann ich nicht beantworten. (b) liegt irgendwo im Bereich von n Wochen (c) liegt meist irgendwo im Bereich von n Tagen > Tja, mit welchem µC komme ich am schnellsten ans Ziel? > Dicker AVR > Xmega > Arm7 Vordergründig mit dem, mit dem Du Dich am besten auskennst und der die geforderte Leistung ohne große Bastelei liefert. Eigentlich ist der CPU-Kern eher unwichtig. Auf die Peripherie kommt es an, die macht nachher den Unterschied. Und: Arm7 solltest Du nicht mehr nehmen. Der Cortex M3 ist schneller und einfacher zu handhaben. Beim Arm7 brauchst Du immer noch zwingend Assemblercode für Interrupt- und Startup-Routinen, beim Cortex nicht mehr. fchk
Du hast also deinen AVR mit c programmiert. Meiner Meinung nach solltest du mit nem Arm dann auch keine zu Probleme bekommen. Die Cortex M3 Dinger kenn ich jetzt nicht, aber den ASM Startup code kannste dir recht problemlos aus zigtausend Beispielen im Internet "klauen". Ich persönlich programmier halt mir Arm7s (genauer die LPC Teile von NXP) und bin extrem zufrieden mit denen. Aber wahrscheinlich ist das im Endeffekt Geschmackssache. Ich würde auf jeden Fall drauf achten, dass du dir nicht schon am Anfang nen Flaschenhals strickst. Also nen zu "kleinen" µC für dein Projekt nimmst. Im Nachhinein ändern ist immer ziemlich doof...
Schnapp dir nen STM32. Software gibtz von Keil uVision (verwende ich privat), als günstigeren Debugger empfehle ich den JLink Edu für ca. 60,- von Segger, der läuft in vielen IDEs (u.a. Keil uVision, IAR, auch gdb). Demoversion von uVision sind für Cortex-M3 derivate dutzende Beispiele dabei, läuft bis 32k Codesize, RTX RTOS ist ebenfalls mit drin. Evaluation Boards gibtz auf keil.com zu kaufen, optional kann ein ULINK-ME mitbestellt werden, der ist dann etwas günstiger. Simulation Support mit Peripherals für u.a. STM32 (PLL, Timer, UART, ...). Demoversion von IAR geht glaub ich auch bis 32k Code, Examples ebenfalls dutzende dabei. Weiteres auf iar.com Raisonance z.B. arbeitet intern mit gnu, verwendet aber einen eigenen Debugger (bekannt von den Hitex-Sticks). Gibt auch freie IDEs, welche debugger die unterstützen, weiss ich nicht. Daher empfehle ich generell den JLink (für gnu mit gdb support), wenn man sich zu Beginn nicht auf eine IDE festlegen möchte. Achtung, meine Meinung: Für mich war uVision tatsächlich die einzige out-of-the-box IDE, mit der ich problemlos starten konnte (Beispiele, intuitive Bedienung, vom Karton zum Blinky-compile/download in <5 minuten). Und ich habe von gcc/makefiles angefangen doch schon ein paar Sachen durch im Bereich AVR, M16C, ARM7/Cortex-M3. > Meine Kenntnisse beschränken sich im Moment auf AVR, C-Grundkenntnisse. Meine Diplomarbeit war 2k6 der Umstieg von AVR auf Cortex-M3 am Beispiel Mega32 --> LM3S828. Hat man sich erst mal an die PLL und das Clock Gating gewöhnt, programmiert sich der Cortex-M3 wie ein AVR :-) Aus / seit dieser Zeit kenne ich auch das uVision. VG, /th.
Ich stimme bei der Wahl der Toolchain (Keil) und dem Core (CM3) zu. Allerdings wird Gästchen mit dem LCP17xx mehr Freude haben als mit dem STM32, da er schon LPC2000-Erfahrung hat.
Danke für die Tipps. Matthias schrieb: > Freude haben als mit dem > STM32, da er schon LPC2000-Erfahrung hat. Matthias, ich glaube du verwechselst mich, ich bin ein "neues" Gästchen :-) Ja, Tipps in Punkto µC-, und IDE-Wahl habe ich schonmal, aber mit was habt Ihr angefangen zu lernen, Welche Bücher habt ihr gewälzt? Die Basics, wo habt Ihr die her? Wo steht z.B. genau und ausführlich beschrieben, was ein DMA-Controller ist, oder was man mit den Bootloader alles machen kann, oder warum und wie man Codeteile remapt? So Sachen habt ihr doch irgendwie, irgendwo gelernt? Datenblätter, klar, aber da steht es halt ziehmlich komprimiert und nicht so gut verständlich. Und da ist alles so verteilt, da gibt es keinen "roten Faden". Wenn Ihr mir da noch Tipps geben könntet...
Moin, Der "Insider's Guide to STM32" von Hitex ist - finde ich zumindest - ganz nett: http://www.st.com/mcu/files/mcu/1221142709.pdf MfG, Heiko ...der erstmal wieder Platinen ätzen muss, um das theoretische Wissen auch praktisch auszuprobieren...
Einen groben Überblick über die Möglichkeiten des STM32 gibts in diesem Artikel: STM32 Ist in jedem Fall lesenswert und sind viele Links drin.
> aber mit was habt Ihr angefangen zu lernen, Welche Bücher habt ihr gewälzt? Wenn du dich mit AVRs auskennst, und Datenblätter lesen kannst, brauchst du keine Bücher zu wälzen im Falle von uVision und Cortex-M3, sondern dir nur die mitgelieferten Beispiele anzusehen. Alles, was du dann noch extra wissen musst ist: - PLL config (oder nimm CMSIS: SystemInit() ) - bevor eine Peripherie (z.B. GPIO) verwendet werden kann, muss erst die Clock dafür eingeschaltet werden, - wenn Alternate Function verwendet wird (z.B. UART) muss die entsprechende Clock Line für das verwendete GPIO (wo der UART Pin dran hängt), die Alternate Function Clock und der UART Clock eingeschaltet werden, bevor man was machen kann. Danach gehts im Datenblatt im entsprechenden Peripheral Kapitel weiter. Ansonsten verweise ich mal auf meinen Beitrag: Beitrag "Re: STM32 alias cortex m3 brauchbar?" VG, /th.
Ok, Datenblätter, die Sachen von Hitex, das habe mir schon mal angesehen. Einen schönen roten Faden finde ich da nicht so. Ich schau mir das aber noch mal an. Bisher hat niemand Bücher erwähnt! Habt ihr im Studium keine Bücher?
Schaltpläne gibt es z.B. von den Demo-Boards von Olimex im Internet. Ansonsten Demo-Code. Und die Hersteller-Doku.
Servus, wenn Englisch kein Thema ist: The Definitive Guide to the ARM Cortex M3 von Yui. Kostenpunkt ca. 40 €. Ich hab mir das für meine Masterarbeit besorgt, das Buch hat mir gut gefallen.
Achso vergessen: Der Hitex Insiderguide ist ok, aber auch nicht mehr. Bei manchen Themen ist es für Anfänger einfach zu knapp gehalten.
Markus Müller schrieb: > Ich nutze das Große Buch Internet. Haste's schon durch und alles kapiert? ;-) @Tom Ja, sowas meinte ich! Tom schrieb: > Bei manchen Themen ist es für Anfänger einfach zu knapp gehalten. Eben...!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.