Forum: Mikrocontroller und Digitale Elektronik STM32F103C8T6 ARM STM32 Minimum System Development Board Module For Arduino


von STM32-Interessent (Gast)


Lesenswert?

Hallo,

kennt dieses kleine Board irgendjemand hier:
STM32F103C8T6 ARM STM32 Minimum System Development Board Module For 
Arduino
http://www.ebay.at/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-/311156408508?pt=LH_DefaultDomain_0&hash=item48725e00bc

Es scheint ziemlich neu zu sein, man findet im Internet nur wenig Infos 
dazu (OK, soviel ist ja nicht drauf), aber es erscheint mir praktisch, 
da klein und kompakt.

Vor allem würde mich interessieren, wie man den µC programmiert, weil 
ein Standard-JTAG-Anschluss nicht vorhanden ist, gegenüber z.B. einem 
anderen Board, das nur einen Euro mehr kostet und nur einen Zentimeter 
breiter wäre 
(http://www.ebay.at/itm/STM32F103C8T6-Evaluation-Board-STM32-ARM-STM32-M3-Cortex-m3-MCU-Kits-JLINK-ULINK-/310708816753?pt=LH_DefaultDomain_0&hash=item4857b04b71).

von Martin S. (sirnails)


Lesenswert?

STM32-Interessent schrieb im Beitrag #3891765:
> Vor allem würde mich interessieren, wie man den µC programmiert,

Über USB.

von dummy (Gast)


Lesenswert?

>> Vor allem würde mich interessieren, wie man den µC programmiert,
>
>Über USB.

SWD

von Oliver R. (orb)


Lesenswert?

Martin Schwaikert schrieb:
> STM32-Interessent schrieb im Beitrag #3891765:
>> Vor allem würde mich interessieren, wie man den µC programmiert,
>
> Über USB.

SWD-Schnittstelle ist auch rausgeführt.

von STM32-Interessent (Gast)


Lesenswert?

Bist du dir da sicher?

Auszug aus der Beschreibung:
"On-board Mini USB interface, you can give the board power supply and 
USB communication."

Unter USB-communication hätte ich jetzt eher an eine gewöhnliche 
Schnittstelle zur Kommunikation mit einem PC gedacht.

Oder funktioniert das beim anderen Board, das ich oben angeführt habe 
auch über USB (also die Programmierung), zusätzlich hat das andere Board 
auch ein JTAG-Interface (Debugger?).

von Dirk K. (dekoepi)



Lesenswert?

Und über die serielle Schnittstelle geht's notfalls auch ;)

Das ist eine Abwandlung des Leaflab Maple:
http://leaflabs.com/docs/ide.html

Kann man aber auch wie einen richtigen STM32-ARM programmieren. Etwa mit 
Eclipse, ARM-GCC, passender CDT, Standard Peripheral Lib, ...

Das andere Board mit JTAG ist für den Anfang ganz ok, aber billigste 
Komponenten verbaut (schlechte Kondensatoren und so). Ist insbesondere 
beim ADC nervig.

Besser sind die JM Electron-Boards! Da muss man gegebenenfalls einen 
32kHz-Quarz und Kondensatoren nachlöten, aber die USB-Anbindung ist per 
Jumper deaktivierbar, die Anschlüsse besser zugänglich (einreihige 
Pin-Header), ...

: Bearbeitet durch User
von Martin S. (sirnails)


Lesenswert?

Oder man kauft das Ding gleich direkt bei ST. Dann hat man wenigstens 
die entsprechend gute Qualität. Abgesehen davon, dass ST wahrlich nicht 
gierig ist.

von STM32-Interessent (Gast)


Lesenswert?

Noch ein paar kurze Fragen zur Programmierung dieser µCs:
(sorry, ich war µC-mäßig bis jetzt nur mit PICs in Kontakt und da habe 
ich Eigenbaubrenner verwendet) :-)

Gibt es Einschränkungen, wenn man den uC über USB programmiert?
Braucht man dazu einen Bootloader?
Wozu hat das andere Board ein JTAG-Interface zusätzlich verbaut - kann 
man über JTAG etwas machen, was man über USB nicht machen kann, oder ist 
das einfach ein zusätzliches Feature?
Kann man über USB auch debuggen, oder geht das nur über JTAG?

von dummy (Gast)


Lesenswert?

>Kann man über USB auch debuggen, oder geht das nur über JTAG?

Das debuggen geht über SWD bei dieser Platine.
Also brauchst du noch einen ST-LinkV2.
Über den USB Anschluss kannst du da nicht debuggen.
Du könntest dir aber auch gleich ein STM32F4-Discovery
kaufen. Kostet keine 16Euro, ST-Link ist mit drauf.

von STM32-Interessent (Gast)


Lesenswert?

dummy schrieb:
>>Kann man über USB auch debuggen, oder geht das nur über JTAG?
>
> Das debuggen geht über SWD bei dieser Platine.
> Also brauchst du noch einen ST-LinkV2.
> Über den USB Anschluss kannst du da nicht debuggen.
> Du könntest dir aber auch gleich ein STM32F4-Discovery
> kaufen. Kostet keine 16Euro, ST-Link ist mit drauf.

Gute Idee, das STM32F4-Discovery wollte ich mir sowieso kaufen. :-)
Ich wollte aber noch ein kleineres, das ich in einem Flugmodell 
unterbringen kann. ;-)

Aber: Wenn ich nicht debuggen will, bräuchte ich keine zusätzliche 
Hardware, wenn ich das Ding über USB programmiere. - Ist das richtig?

von Dirk K. (dekoepi)


Angehängte Dateien:

Lesenswert?

Bin da ganz bei Martin und dummy - zum Einstieg ist eine STM32-Disco 
sicherlich die beste Wahl, da dort SWD onboard ist (und sich die Boards 
dann für weitere µCs als SWD-Connector nutzen lassen) und die Qualität 
der verbauten Komponenten stimmt. Es muss nicht gleich eine F4xx-Disco 
sein, kleiner Anfang gelingt auch etwa mit der F0-Disco zu 9 Euro.

... voll die Diashow hier ;)

von grundschüler (Gast)


Lesenswert?

Dirk K. schrieb:
> Es muss nicht gleich eine F4xx-Disco

die 30€ sind aber schon wegen TFT und Ram gut angelegt

von Dirk K. (dekoepi)


Lesenswert?

Klaro ist die F429-Disco klasse. Da er jedoch kleine Boards sucht für 
den Fliegerbetrieb, und dazu noch preisbewusst rausgesucht hat, dachte 
ich, passe ich die Vorschläge mal an die Anforderung an.

von Martin S. (sirnails)


Lesenswert?

Martin Schwaikert schrieb:
> Abgesehen davon, dass ST wahrlich nicht
> gierig ist.

Da muss ich mir mal selbst zustimmen - soeben mein kostenloses STM8 
Päärchen (LIN Sender und Empfänger) bekommen. Danke ST :)

von STM32-Interessent (Gast)


Lesenswert?

Danke für die Infos.

Eine letzte Frage habe ich noch:

Ich habe gerade den STM32-Artikel hier überflogen.

Gesetzt den Fall, dass ich mich für die "Coocox Eclipse IDE" entscheide:

Gibt es nun ein frei verfügbares Software-Tool (möglichst für Windows) 
zur Programmierung über USB?

"stm32flash" z.B. ist nur für UART und I2C geeignet.

von greg (Gast)


Lesenswert?

ST-Link und viele andere JTAG/SWD-Adapter werden von OpenOCD 
unterstützt. Der Bootloader im STM32F103 kann prinzipiell nur UART, 
damit macht es keinen Spaß (kein Debugging etc).

von Putin (Gast)


Lesenswert?

Tool für USB von ST: 
http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF257916
Geht mit Controllern die ein DFU Bootloader haben, f103 hat das nicht.
http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf

Außerdem must du dein .hex file erst in ein .dfu file konvertieren, zum 
entwickeln völlige Bremse.

Würde mir ein ST-Link2 Stick für 3€ kaufen. Man kann zwar den ST_link 
vom Discoxxx nehmen ... aber richtig toll ist das nicht.

von Dirk K. (dekoepi)


Lesenswert?

Japps, so ein ST-Link-Clone für billig funktioniert wunderbar.
http://www.ebay.de/itm/121382669906

von STM32-Interessent (Gast)


Lesenswert?

Putin schrieb:
> Tool für USB von ST:
> http://www.st.com/web/en/catalog/tools/FM147/CL179...
> Geht mit Controllern die ein DFU Bootloader haben, f103 hat das nicht.
> http://www.st.com/web/en/resource/technical/docume...
>
> Außerdem must du dein .hex file erst in ein .dfu file konvertieren, zum
> entwickeln völlige Bremse.
>
> Würde mir ein ST-Link2 Stick für 3€ kaufen. Man kann zwar den ST_link
> vom Discoxxx nehmen ... aber richtig toll ist das nicht.

Sehr gut, danke sehr!

von STM32-Interessent (Gast)


Lesenswert?

Dirk K. schrieb:
> Japps, so ein ST-Link-Clone für billig funktioniert wunderbar.
> Ebay-Artikel Nr. 121382669906

OK, das werde ich mir zulegen.

von Tom F. (tomfox)


Lesenswert?

STM32-Interessent schrieb im Beitrag #3891765:
> kennt dieses kleine Board irgendjemand hier:
> STM32F103C8T6 ARM STM32 Minimum System Development Board Module For
> Arduino
> Ebay-Artikel Nr. 311156408508

Hat schon jemand einen Schalplan für das Board ausfindig gemacht?

Habe den Chinamann angeschrieben, der hat aber seit 1 Woche nicht 
geantwortet

von Daniel R. (sparker)


Angehängte Dateien:

Lesenswert?

Leider habe ich noch keinen Schaltplan gefunden!
Aber das kann ich anfügen (ein Poster oben hat das auch schon erwähnt - 
das scheint eine ähnliche Version zu sein):
http://static.leaflabs.com/pub/leaflabs/maple-docs/latest/hardware/maple-mini.html

Gestern ist auch das ST-Link V2 angekommen.
Nach einem Firmwareupdate (über das STM32 STLink-Utility) habe ich 
gleich ein LED-Blink-Testprogramm getippt und gestartet.
Funktioniert hervorragend - und auch das Debugging ist im Coocox 
komfortabel ohne gröbere wahrnehmbare Delays möglich.

Sehr schön, wenn ich so zurückdenke, wie ich mit 8-Bit PICs vor Jahren 
begonnen habe, und jetzt...
- gibt es endlich DMA :-), bei den 8/16-Bit-PICs war das ja eine 
ziemliche Bremse, Sensoren z.B. über I2C ohne DMA auszulesen.
- kriegt man wesentlich bessere ICs fertig auf einer Platine inkl. 
Programmer für unter 10 Euro (gut - aus China, aber 
Original-Discovery-Boards sind ja auch in diesem Bereich).

Danke nochmals für die Infos!

: Bearbeitet durch User
von Eddy C. (chrisi)


Angehängte Dateien:

Lesenswert?

Hi, ich benutze auch diese Leiterplatte, ist ein feines kleines Teil.

Im Anhang ein rückwärts entwickelter Schaltplan.

von drama (Gast)


Lesenswert?

Eddy Current schrieb:
> Hi, ich benutze auch diese Leiterplatte, ist ein feines kleines
> Teil.
>
> Im Anhang ein rückwärts entwickelter Schaltplan.

Vielen Dank dafür. Ich habe dieses Board auch für einige private Dinge 
in Benutzung.

von Ecki (Gast)


Lesenswert?

Eddy Current schrieb:
> Im Anhang ein rückwärts entwickelter Schaltplan

Interessant! Der feste USB pullup R10 war mir schon immer laestig beim 
entwickeln von USB-Anwendungen, und R2 sollte wohl auch besser 
rausgeschmissen werden (der STM32F103 hat einen internen pullup).

Danke fuer den Schaltplan!

von Hans L. (holzwurm56)


Lesenswert?

Hallo,
ich habe das Teil mal zum experimentieren als Mapleminiclone gekauft.
Brauch man für den USB Anschluß einen speziellen Treiber? Bei mir kommt 
immer die Meldung "Unbekanntes USB Gerät". Hier habe ich auch noch eine 
Beitrag gefunden zur Programmierung über die serielle Schnittstelle.
http://www.rogerclark.net/stm32f103-and-maple-maple-mini-with-arduino-1-5-x-ide/

MfG

Hans

von Dirk K. (dekoepi)


Lesenswert?

Liste dir mal die unbekannten USB-Geräte auf. Vid&Pid 0000:0000 sind zu 
recht unbekannt. Die musst du im Programm setzen.

von Matthias (Gast)


Lesenswert?

Hallo,

ich mache auch gerade erste Versuche mit dieser kleinen Platine.

Ein richtiges Datenblatt finde ich aber nicht.
Geht es nach wie vor allen so oder habe ich nur etwas übersehen?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Matthias schrieb:
> Ein richtiges Datenblatt finde ich aber nicht.

Datenblatt + Referenzhandbuch
https://github.com/TorstenC/Notizblog/wiki/STM32FxxxC8T6

Da ist auch der Schaltplan-Link zuück in diesen Thread^^.

Programmierung klassisch:
Beitrag "STM32 Tutorial"

Programmierung mit neuer HAL-API und Cube:
Beitrag "Re: STM32Cube & Eclipse & GCC"

Allerdings muss man noch die eine startup_stm32fxxx.S löschen, sonst 
gibt es einen Haufen Fehlermendungen, wie im o.g. Thread.

von temp (Gast)


Lesenswert?

Für den Anwendungsfall würde ich dir ehr ein STM32F334 Nucleo empfehlen. 
Den gibt's als Chip auch im 32poligem Gehäuse das sich einigermaßen gut 
löten lässt. Durch die FPU sind viele Sachen die auf kleinen Controllern 
mit Festkomma und viel Trickserei erledigt werden müssen schneller in 
float gerechnet. sinf bei 64MHz gibts für unter 2µs. Die Nucleos haben 
eine virtuelle COM-Schnittstelle über den USB Treiber, ich glaube das 
alte F4 Disco hat das nicht. Macht sich beim Entwickeln immer sehr gut.

von Matthias (Gast)


Lesenswert?

Torsten C. schrieb:
> Datenblatt + Referenzhandbuch
> https://github.com/TorstenC/Notizblog/wiki/STM32FxxxC8T6
>
> Da ist auch der Schaltplan-Link zuück in diesen Thread^^.

Danke, das bringt mich bedingt weiter.

Dieser Schaltplan suggeriert mir aber, dass eine Spannungsversorgung des 
Chips über die SWD-Schnittstelle möglich ist. Das kleine Board sagt aber 
nein ;)
Ich gehe von aus, dass ich noch 5V rüber führen muss, ehe mir 
STlinkGDB.exe keinen Timeout mehr bringt?

von Matthias (Gast)


Lesenswert?

Matthias schrieb:
> Ich gehe von aus, dass ich noch 5V rüber führen muss, ehe mir
> STlinkGDB.exe keinen Timeout mehr bringt?

hat sich erledigt ;)

von Matthias (Gast)


Lesenswert?

Eine erneute Frage zu dem Board:
Auf den Stromlaufplan weiter oben beziehend müssten zwischen CN2-SRP20 
PIN 2 und 3 ja 5V anliegen ....
ich messe hier aber nur knapp 3 mit dem Multimeter.

Gibt es da noch irgend einen Trick dabei?

von Matthias (Gast)


Lesenswert?

Matthias schrieb:
> Gibt es da noch irgend einen Trick dabei?

ja gibt es, Laborsteckbretter auf anständige Konnektivität überprüfen 
.... :(

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Matthias schrieb:
> Gibt es da noch irgend einen Trick dabei?

Blöde Frage: Versorgst Du mit 3,3V oder mit 5V?

von Matthias (Gast)


Lesenswert?

Torsten C. schrieb:
> Blöde Frage: Versorgst Du mit 3,3V oder mit 5V?

mit beidem ;)

über swd kommen die 3,3V mit, die 5V gibts gratis oben drauf ....
bringe die jetzt über die micro-USB-Schnittstelle rein, das ist recht 
zuverlässig bis jetzt

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Matthias schrieb:
> mit beidem ;)

Also Ausgang auf Ausgang? Na denn…

von Matthias (Gast)


Lesenswert?

Torsten C. schrieb:
> Also Ausgang auf Ausgang? Na denn…

wieso Ausgang auf Ausgang?
Laut dem Stromlaufplan weiter oben im Thread sollte es relativ egal 
sein, wie ich das Potential rein bringe, solange ich es an 5V anlege.

Weitere Informationen zu der Platine habe ich leider nicht, wenn du mir 
da weiter helfen kannst: sehr gern.

das Ursprüngliche Problem war nur ein Wackler in nem Steckbrett was ich 
verwendet habe. Das ist behoben und die Potentiale können korrekt 
gemessen werden.

von Robert L. (lrlr)


Lesenswert?

hab jetzt auch mit dem "Minimum board" vom Chinesen (3,40$ wie machen 
die das ??) gespielt..

nach 1-2 Stunden einlesen, hat es tatsächlich funktioniert (mit 
funktioniert ist, es BLINKT gemeint ;-)

@Hans Lang

mach braucht den bootloader (hast du wohl schon)


https://github.com/rogerclarkmelbourne/STM32duino-bootloader

(muss per usb-Serial adapter flashed werden)


wenn die Arduino IDE + STM32 erweiterung installiert hast
ist der Treiber dann unter:

\hardware\Arduino_STM32\drivers\win

es funktioniert der COM port aber nicht sofort (was mich viel zeit 
gekostet hat)  bis ich rausgefunden habe, dass das egal ist, und man das 
"sketch" trotzdem per USB Programmieren , und DANN erst wird der 
Virtualle COM-Port installiert.. also nachdem man das 1. sketch uploaded 
hat..

: Bearbeitet durch User
von Afuf (Gast)


Angehängte Dateien:

Lesenswert?

Ein paar Bilder

von Afuf (Gast)


Angehängte Dateien:

Lesenswert?

Noch mehr

von Gerd B. (bertr2d2) Benutzerseite


Lesenswert?


von Ben W. (ben_w)


Lesenswert?

falls es jemanden interessiert ...

SWO (Single Wire Output) funktioniert auch problemlos auf dem board wenn 
man ein Discoveryboard als Debugger nutzt.

von Heinrich (Gast)


Lesenswert?


von Matthias D. (Firma: ESRA) (madias)


Lesenswert?

Wer ein bisschen mit STM32duino herumspielen möchte, der kann auch 
gleich einen maple-mini-clone kaufen, kostet ein paar cent mehr. Die 
haben einen Bootloader schon onboard (würde aber trotzdem den Bootloader 
2.0 verwenden) Vorteil ist, dass man überhaupt keine zusätzliche 
Hardware benötigt.
Ich verwende die BAITE clones (finde ich aus mehreren Gründen besser als 
die anderen Clones und sind auch nur unwesentlich teurer):
http://de.aliexpress.com/store/product/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/812021_1987703487.html

Wer ein bisschen mehr benötigt, der kann um gut 6-8 Euro (je nach 
Tagesangebot) einmal das STM32F103RCT6 board ausprobieren. 48kb RAM, 
256kb flash. (wenn man Glück hat 64kb RAM, 512kb Flash, STM drosselt 
manche Chips nur mittels Verkaufsdaten ;) ) Dazu kommt noch I2S und 2x 
DAC (12Bit)
Beispiel:
http://www.aliexpress.com/item/STM32F103RCT6-development-board-Cortex-M3-32-bit-RISC-USB-STM32F103RCT6-JTAG-SWD-Program-learning-board-STM32/32451683720.html

Als "Luxusmodel" (ca 10 Euro) kann ich das VET6 Board empfehlen, habe 
dies hier ausführlich beschrieben:
http://www.stm32duino.com/viewtopic.php?f=28&t=490

Auf alle Fälle würde ich immer auch gleich einen ST-Link clone 
dazukaufen, macht viele Experimente wesentlich einfacher.

LG
Matthias (madias im STM32duino Forum)

von Christopher Johnson (Gast)


Lesenswert?

Mir war die ganze Zeit gar nicht bewusst, dass die STM32 Minimum Boards 
keine Pin-kompatiblen Maple Mini Clones sind.

Abgesehen davon das die "richtigen" Maple Mini Clones (z.B. "Baite") den 
größeren Chip mit 128kB Flash haben gibts da ja doch noch eine ganze 
Menge an unterschieden. Auf den ersten Blick wären das:


Maple Mini          STM32 mini

Mini-USB            Micro-USB (der angeblich gerne mal abbricht)

dicker LDO          winziger LDO

zwei Buttons        nur ein Button

keine zus.          zwei Jumper (wofür auch immer die gut sind)
Jumper

SWD nicht zus.      SWD-Pins zusätzlich
herausgeführt       herausgeführt
aber vorhanden
(PA13, PA14)

kein RTC-Quarz      RTC-Quarz



Bei den Pin-Outs fällt mir auf, dass beim Maple-Mini noch die analogen 
Referenzpins herausgeführt sind (zwei mal GND beim STM32 Mini). Dafür 
hat das STM32 Mini noch den PB9, den man mit PB8 zusammen als CAN Pin 
remappen kann, da der CAN sonst auf den USB-Pins liegt.

Eine Übersicht über die unterschiedlichen Pinouts habe ich hier 
gefunden: http://stm32duino.com/viewtopic.php?f=28&t=37&start=10#p723

von Andreas R. (daybyter)


Lesenswert?

Anscheinend haben diese ganz billigen STM32 Clone auch 128kb Flash. Es 
wird nur nicht in den Daten erwähnt.

http://www.stm32duino.com/viewtopic.php?t=110

von Robert L. (lrlr)


Lesenswert?

>zwei Jumper (wofür auch immer die gut sind)

einer ist hierfür:
http://www.ctheroux.com/stm32-minimum-system-development-board/

von Benny (Gast)


Lesenswert?

Ecki schrieb:
> Eddy Current schrieb:
>> Im Anhang ein rückwärts entwickelter Schaltplan
>
> Interessant! Der feste USB pullup R10 war mir schon immer laestig beim
> entwickeln von USB-Anwendungen, und R2 sollte wohl auch besser
> rausgeschmissen werden (der STM32F103 hat einen internen pullup).
>
> Danke fuer den Schaltplan!

Kann das jemand bestätigen? Ich habe nachdem ich den Pullup 
runtergenommen habe, gerade feststellen müssen, dass dies nur bei 
OTG-USB-Schnittstellen im STM so ist (ab F105/F107).

von Eddy C. (chrisi)


Lesenswert?

Benny schrieb:
> dass dies nur bei
> OTG-USB-Schnittstellen im STM so ist (ab F105/F107).

Vermutlich sprichst Du von R10.

R10 wird benötigt. Dieser signalisiert dem Host, dass ein USB FS Gerät 
angeschlossen ist. Das Problem mit R10 ist, das Du mit dessen 
Vorhandensein keinen USB-Disconnect durchführen kannst (um z.B. einen 
anderen USB-Stack hochzufahren). In so einem Fall muss man R10 schaltbar 
machen. D.h. nicht auf VCC legen, sondern mit einem I/O verbinden, über 
welchen R10 dann beliebig geschaltet werden kann.

von Eddy C. (chrisi)


Lesenswert?

Christopher Johnson schrieb:
> Maple Mini          STM32 mini

Danke für die Übersicht!

Zu den Unterschieden möchte ich noch anmerken, dass der Maple Mini 
sicherlich die bessere Wahl für Leute ist, welche im Arduino-Universum 
unterwegs sind.

Das STM32 Mini-Board hat mit dergleichen eher nichts am Hut und ist für 
Programmierer geeignet, welche ihr System "from Scratch" aufsetzen. Die 
wissen dann auch mit den Jumpern umzugehen, bzw. klinken sich über SWD 
auf den Prozessor.

Entscheidender Unterschied ist, dass im Maple Mini ein Bootloader für 
Arduino vorprogrammiert ist, was beim STM32 Mini-Board nicht der Fall 
ist.

Virtueller User möge schreiben:
>Den Bootloader kann man aber nachprogrammieren!

Richtig. Wenn Du das kannst, steht Dir die Welt in alle Richtungen 
offen.

von Paul (Gast)


Lesenswert?

Eddy C. schrieb:
> R10 wird benötigt. Dieser signalisiert dem Host, dass ein USB FS Gerät
> angeschlossen ist. Das Problem mit R10 ist, das Du mit dessen
> Vorhandensein keinen USB-Disconnect durchführen kannst (um z.B. einen
> anderen USB-Stack hochzufahren). In so einem Fall muss man R10 schaltbar
> machen. D.h. nicht auf VCC legen, sondern mit einem I/O verbinden, über
> welchen R10 dann beliebig geschaltet werden kann.

Geht auch anders, nur via SW und ohne extra Schaltung:

https://github.com/rogerclarkmelbourne/STM32duino-bootloader

Man kann PA12 kurz als GPIO konfigurieren, auf low schalten, und dann 
zurück als USB-Pin konfigurieren.

von Eddy C. (chrisi)


Lesenswert?

Sehr gut! Gut, dass wir darüber gesprochen haben :-)

von hochsitzcola (Gast)



Lesenswert?

Ich habe eine deutschsprachige Anleitung zur Installation von STM32Duino 
und zum Flashen des Bootloaders geschrieben. Vielleicht hilft es ja 
jemandem...

von Matthias D. (Firma: ESRA) (madias)


Lesenswert?

Den Bootloader 2.0 kann man auch wesentlich einfacher flashen, ist 
jedoch riskant, wenn man kein Upload-Tool (STlink 2 oder so) zur Hand 
hat (falls etwas schief läuft):
https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/STM32F1/maple_mini_bootloaer_updater/maple_mini_bootloaer_updater.ino
Einfach den Sketch auf den mini (!!! - bitte nicht für andere Boards 
verwenden - sonst Pin-Konflikt) uploaden, ausführen, Befehlen folgen, 
Reset und dann unter "Tools" den "Bootloader 2.0" verwenden. Bei manchen 
ist es vorgekommen, dass sie den ersten Sketch noch mit Bootloader 1.0 
flashen mussten, kann ich nicht nachvollziehen (denk mal, dass sie kein 
ordentliches Reset gegeben haben), aber bei Problemen es so versuchen.
Habe gut 20 Minis damit geflashed (aus Faulheit) ohne Probleme.

von Torsten C. (tcurdt)


Lesenswert?

Ich habe jetzt auch auch so einen hier (STM32F103C8T6)

 https://www.mikrocontroller.net/attachment/273587/2.jpg

vor mir liegen. Außerdem hab ich mir auch einen ST-Link V2 besorgt. 
Installiert habe bisher die "stlink" tools - jetzt fangen die Fragen 
erst so richtig an.

Diese Video scheinen erst einmal hilfreich um mit Arduino zu starten:
https://www.youtube.com/watch?v=Ze6q6NidS5w
https://www.youtube.com/watch?v=G_RF0a0hrak

Aber was sollen die beiden Jumper?
Boot0 und Boot1 - was machen die?
Und warum per Serial programmieren?
Kann man auch per USB programmieren?

Für ST-Link nehme mal an

  Board     ST-Link
  DIO   <-> SWDIO
  GND   <-> GND
  DCLK  <-> SWCLK
  3.3V  <-> 3.3V

und dann sollte "st-util" was finden?

Ohne Board bekomme ich nur:

2016-04-13T23:38:33 INFO src/stlink-usb.c: -- exit_dfu_mode
2016-04-13T23:38:33 INFO src/stlink-common.c: Loading device 
parameters....
2016-04-13T23:38:33 WARN src/stlink-common.c: unknown chip id! 
0xe0042000

Dann cross-compilen und mit "st-flash" schreiben?

Gruss,
Torsten

von Andreas R. (daybyter)


Lesenswert?

Per USB kannst Du nur programmieren, wenn Du nen Bootloader drauf hast, 
der das unterstützt. Die meisten stm32 kommen wohl ohne diese Funktion. 
Du kannst aber z.B. den stm32duino Bootloader drauf machen. Der kann das 
z.B.

Beitrag "STM32 Boot0 / 1"

http://www.phreakmonkey.com/2015/08/programming-generic-stm32f103c-board-in.html


    Run mode:  Both jumpers at "0"
    Program Mode: Jumper 0 (top) at "1"

von Torsten C. (tcurdt)


Lesenswert?

Andreas R. schrieb:
> Per USB kannst Du nur programmieren, wenn Du nen Bootloader drauf hast,
> der das unterstützt. Die meisten stm32 kommen wohl ohne diese Funktion.
> Du kannst aber z.B. den stm32duino Bootloader drauf machen. Der kann das
> z.B.

Vielleicht eine doofe Frage - aber wie bekomme ich den drauf?

Ich hab das gefunden:
https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Bootloader

"Currently the only way to install the new bootloader is to flash your 
board using USB to Serial or STLink (or another SWD device e.g. JTAG or 
Black Magic Probe etc)."

Liegt der einfach an einer fixen Position (z.B. ganz am Anfang) und das 
Programm kommt dann später?


> Beitrag "STM32 Boot0 / 1"

Hilfreicher Thread - Danke!
Besonders der Verweiß aufs Manual :)

http://www.st.com/web/en/resource/technical/document/reference_manual/CD00171190.pdf

x0 Main Flash memory
01 System memory
11 Embedded SRAM

von Andreas R. (daybyter)


Lesenswert?

http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf

Wo der liegt hängt wohl vom Board ab. Ich hab den einmal einfach mit der 
Arduino IDE geflashed. War mir wurscht, wo der liegt.

von Tony (Gast)


Lesenswert?

Mal eine Frage:
Der USB-Pullup R10 ist auf der Platine mit 10k vorhanden. Müsste der 
nicht laut Spezifikation für USB2.0 nur 1k5 haben? Funktioniert es auch 
mit den 10k?

von Dirk K. (dekoepi)


Lesenswert?

Hatte irgendwo von Problemen mit den Pullups gelesen und die in einem 
Board dann irgendwann mal ausgetauscht. Macht keinerlei Unterschied, 
funktioniert bei mir mit beiden Varianten (bei Zimmertemperatur, habe da 
keine Extreme getestet).

: Bearbeitet durch User
von Max M. (maxmicr)


Lesenswert?

Das Board lässt sich, nehme ich mal an, ganz  normal mit ST-Link und ST 
Visual Develop nebst passendem Compiler programmieren?

von Ben W. (ben_w)


Lesenswert?

mit ST-Link stimmt
aber das Visual Devlop ist doch nur fpr ST8 und nicht STM32 Conrtoller 
gedacht.
Aber wenn du eine IDE suchst, hier wiki sind sehr viele aufgelistet.

von bianchifan (Gast)


Lesenswert?

Tony schrieb:
> Der USB-Pullup R10 ist auf der Platine mit 10k vorhanden. Müsste der
> nicht laut Spezifikation für USB2.0 nur 1k5 haben? Funktioniert es auch
> mit den 10k?

Bei mir nicht, ich hab' 2k2 drauf gelötet, passt.

Max M. schrieb:
> Das Board lässt sich, nehme ich mal an, ganz  normal mit ST-Link und ST
> Visual Develop nebst passendem Compiler programmieren?

So wie ich meine Arduinos über USBASP progge muss bei den MInimum System 
Boards ein ST-Link herhalten.
Allerdings musst Du entscheiden, ob Du den Bootloader nutzen möchtest 
oder nicht, im normalen Betriebsmodus über die "STM32duino"-IDE wird der 
Bootloader bei der Auswahl "ST-Link" als Programmiergeträt 
überschrieben.

Die Installation des ST-Link Flash-Utilitys von STM für ist nie 
verkehrt.

von Cube_S (Gast)


Lesenswert?

Ich experimentiere auch gerade mit diesem Board (Eclipse, GNU-ARM 
plugins, OpenOCD). Mit CAN und I2C habe ich erste Erfolge erzielt. USB 
klappt nicht. Ich habe bisher lediglich die von STM32CubeMX (Middleware 
USB/CDC) generierten Dateien ins Projekt übernommen und die 
USB-Initialisierung (MX_USB_DEVICE_Init) aufgerufen.

Beim Anstecken an den USB-Port wird das Gerät aber nicht erkannt:
1
Beim Start des Geräts USB\VID_0000&PID_0002\5&39176fe7&0&3 ist ein Problem aufgetreten.
2
3
Treibername: usb.inf
4
Klassen-GUID: {36FC9E60-C465-11CF-8056-444553540000}
5
Dienst: 
6
Untere Filter: 
7
Obere Filter: 
8
Problem: 0x2B
9
Problemstatus: 0x0

Mein Ansinnen ist einen COM-Port zu realisieren und damit mit dem STM zu 
kommunizieren.

Irgendwie fehlt mir da aber noch der richtige Einstieg in diese 
USB-Geschichte. Da wäre ich für jeden Hinweis dankbar.

von Max M. (maxmicr)


Lesenswert?

Benutzt das Board jemand mit der IAR IDE?

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.