Hallo, ich beschäftige mich seit ein paar Wochen mit den Cortex-M3 Controllern STM32F10x. Sind eine echte Alternative zu Atmel-ARM und NXP-ARM meiner Meinung nach. Max. 72 MHz Takt, 128k Flash, 20 k RAM, viel Peripherie (2 x SPI, 3 x UART, 2 x I2C, USB, CAN) alles DMA-fähig. Vor allem die aufwändigen Timer des STM32 sind zu erwähnen. Ohne Software zu schreiben, kann zum Beispiel ein Drehimpulsgeber angeschlossen werden. Nur ein paar Register initialisieren und der Counter wird automatisch beim Drehen aktualisiert und braucht nur noch ausgelesen zu werden. Wer programmiert die Teile auch, zwecks Erfahrungsaustausch? Erwin
Hallo, schön daß sich noch jemand mit der Familie beschäftigt. Bin gerade dabei ein Board mit einem STM32F103VBT6 zu machen. Meßdatenerfassung und Motorsteuerung. Sotwareentwicklung mit IAR. Gruß Dieter
Ich nutze Luminary-Cortex-M3. Ist letztlich das Gleiche. Meiner hat 256KBit Flash und 64KBit RAM. Die Teile sind echt gut. Dank ordentlicher Software von Luminary ist der Einstieg auch echt simpel. Machen echt Spaß, die Kerlchen. Meiner Meinung nach ist der Cortex-M3 der logische Schritt leistungsmäßig vom AVR nach oben.
Hallo, ich überlege mir auch gerade mir ein Cortex-M3 Entwicklungsboard zu zu legen. Und zwar find ich das Board hier ganz gelungen: STM32-P103, das ist mit 50€ auch recht Preiswert. Dazu dann noch ein kleines Farbdisplay und fertig ist das Luxusboard. Was mir nur noch nicht ganz klar wird (ich bin bisher nur mit 8051er vertraut und will mich in was neuem einarbeiten), kann ich den direkt vom PC über USB programmieren oder brauch ich noch ein extra Programmiergerät? Laut Beschreibung würde ich sagen das er sich direkt programmierne lässt, was ich aber noch nicht so recht glauben möchte. Fänd ich gut wenn sich da schnell ein paar leute finden würden die sich auch für den Prozessor interessieren. Danke. MFG Bonito
STM32 verfügen über einen vorinstallierten Bootloader für serielle Schnittstelle, damit kann man ohne extra Hardware Programme in den Conroller übertragen (o.k. eine serielle Schnittstelle ist ja inzwischen schon "extra", anonsten USB-seriell-Wandler). Vgl. Manual Abschnitt "Boot configuration". Entsprechende PC-Software gibt es bei st.com. Soweit selbst ausprobiert, allerdings mit einem Board von Manley. Beim Olimex-Board scheint der RS232-Pegelwandler mit UART2 verbunden zu sein, eingebauter Bootloader "hört" aber an UART1 (lt. Datenblatt und eigenen Tests). So ich das richtig sehe, müsste man wohl ein wenig basteln, um den eingebauten Bootloader nutzen zu können. "Programmieren" über USB wird meines Wissens (=ich habe es bisher nicht selbst ausprobiert) nicht von "farbikneuen" Controller unterstützt. Notwendige Vorarbeit ist aber gut vorgekaut: die USB-Library von STmirco enthält Code für DFU (device firmware upgrade) via USB. Das damit erzeugt Binary (w.r.e liegen sogar welche bei) muss auf den STM32 übertragen werden, was man ja über den seriellen Bootloader machen kann, so man Zugriff darauf hat. Ansonsten kostet ein FT2232-basiertes oder Wiggler(-clone) Interface für JTAG nicht die Welt. Kann man evtl. ausleihen, um die DFU firmware aufzuspielen. OpenOCD ("gratis") unterstützt STM32 flash-programming über diese Art Adapter. Danach kann der Controller dann auch "Update per USB". Vgl Dokumentation/Quellcode von stm.com (UM0424 und UM0412). > Fänd ich gut wenn sich da schnell ein paar leute finden würden die sich > auch für den Prozessor interessieren. Nur an der richtigen Stelle suchen: z.B. im STM32 Forum von st.com.
Ich programmiere den STM32 ohnehin nur per JTAG mit OpenOCD, das klappt einwandfrei. Es ist mir einfach zu umständlich, jedes mal den Bootloader zu starten und dann noch die lahme serielle Datenübertregung. Zum Thema USB-Library oder generell ST-Library möchte ich anmerken, daß die zwar ganz nett ist, aber einen riesen Overhead produziert, was natürlich auch auf Kosten der Geschwindigkeit geht. Was nutzt uns ein Controller mit 72MHz Taktfrequenz und Prefetch Buffer wenn zum setzen oder lesen eines Registers ständig irgendwelche Subroutinen angesprungen werden müssen. Erwin
Hat denn jemand nen Schaltplan für ein JTAG für den Controller zum selber basteln? Für die 8051er hab ich das schon öfters gemacht, nur hab ich von dem STM32 halt noch nicht so viel Ahnung. Danke. MFG Christof PS: Was haltet ihr von den 11" und 12" LpptopDisplays von Pollin? Kann man damit was anfangen oder sollte man besser die Finger davon lassen?
@Erwin Reuss: Hast du schon einmal den generierten Assembler Code studiert? Der Optimizer im GCC ist wirklich nicht schlecht. Sinnlose Sprünge in Subroutinen werden elegant wegoptimiert. Aber schön geschrieben ist die FwLib überhaupt nicht. Viel Copy&Paste, falsche Kommentare,... Die Migration von v1.0 auf v2.0 bloss mit Migrationsmanual machbar (aka broken). Naja, für Initialisierungen und solange der Code nicht eingefroren ist, verwende ich die FwLib.
Hallo, schön zu sehen, daß sich inzwischen mehr und mehr mit den STM32 beschäftigen. Ich programmiere die Teile mit dem freien Compiler von Codesourcery und benutze die Library fast gar nicht. Ich binde nur die MAP-Datei zur Definition der Adressen ein und benutze die Library für NVIC-Konfiguration, da ich hier noch nicht ganz den Durchblick habe. Für alles andere programmiere ich die Register direkt. Dies spart jede Menge Code und geht natürlich auf die Geschwindigkeit. Der erzeugte ASM-Code ist super kompakt und es wundert mich manchmal, wie aus einer ziemlich komplizierten C-Routine ein recht kurzer ASM-Code entstanden ist. Zur Programmierung des Flash-Speichers des STM32 muß ich ergänzen, daß ich das inzwischen nur noch über den íntegrierten Bootloader mache. JTAG benutze ich gar nicht mehr, da ich zum Debuggen in der Regel ein LC-Display angeschlossen habe. Ich benutze einen kleinen USB-Seriell-Wandler über den ich auch die Reset- und BOOT0-Leitung schalte, sowie ein selbstgeschriebenes Programmiertool. Damit brauche ich keinerlei Jumper oder Schalter, die Umschaltung zwischen Bootloader und Bios macht alleine die Software. Wer Interesse an dieser Lösung hat, kann sich gerne mal bei mir melden. Erwin Reuss
Hallo Erwin, das hört sich gut an! Schaltest Du über zwei Steuerpins der seriellen Schnittstelle(via USB) das Reset und Boot0? Du könntest auch einen dezenten Hinweis im STM Forum fallen lassen und damit vielen dieses lästige rumfummeln an den Schaltern ersparen :-) Ich plane mir folgendes Board zu kaufen: http://www.futurlec.com/ET-STM32_Stamp.shtml Bei weitem genug zum spielen und günstig. Viele Grüße
Hallo! Mach grade an der Fh den Stm32 Discovery. Programmieren geht über Keilv4. Bin absoluter Neuling unschuldig müssen in 2 Wochen ein Projekt abliefern in dem Wir zwei Geräte über die Usart kommunizieren lassen. Einer dient als Steuereinnheit und der andere als Signalgenerator. Über eine Ps2 Tastatur wird in die Steuereinheit Art der Spannung (Sägezahn,Sinus,Rechte) dann die Frequenz mit max.1Mhz. Und die Amplitude ûber ein Poti eingelesen. Danach übrtragen und über Dac Output in einem Aci wieder eingelesen und nachjustiert. Hoffe ich finde hier im Forum Hilfe! ;)
Für alle Um- und Einsteiger in die Cortex-Welt, hier der Artikel: STM32 Mit: - Tipps - Demo-Boards - Programmieradapter - Programmiersoftware/Compiler
Hi, ich hatte mir damals folgendes gebaut http://www.mikrocontroller.net/articles/Cortex_M3_OCM3U Hab auch noch Platinen dafür herumliegen bin nie über das LED blinken hinausgekommen, allerdings mit einen kleinen aber behebbaren Fehler auf den Platinen falls jemand eine haben möchte würde die für 4€ inkl. abgeben.
Ich würde von einem Eval-Board ohne JTAG sehr vehement abraten (sorry, K.J.!) Ein Programm runterladen und laufen lassen, ist eins. Was aber, wenn man das Programm dann startet und es tut sich einfach gar nichts? Ohne Debugger tastet man dann gewaltig im Dunkeln. Natürlich kann man über GPIOs irgendwelche "Ich war hier"-Meldungen rausgeben. Und mit einem Terminal kann man auch einiges anstellen - sobald printf dazu überredet wurde, auf den ensprechenden COM-Port zu senden. Aber die Möglichkeiten sind halt doch sehr stark beschränkt. Über JTAG kannst Du halt sehr genau verfolgen, was der STM32 gerade so macht, Du kannst Variablen anschauen, verändern, Breakpoints setzen... So macht Debuggen (und somit auch Programmieren) sehr sehr sehr viel mehr Spass. Gruäss Simon
Naja recht haste eigentlich zum Kennenlernen ist das finde ich OK. Die Platine ist entstanden wo der j-link noch recht teuer war mittlerweile kostet der um 30$, ich hab mir hinterher nen STM32Primer gegönnt der hat nen integrierten Debugger, aber wie gesagt ich bin übers LED Blinken eh nicht raus gekommen.
wo kann man denn den jlink für 30$ kaufen? Würde mir gerne einen zulegen, aber finde keinen günstigen Anbieter. Danke Grüße Andi
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.