Forum: Mikrocontroller und Digitale Elektronik STM32F4 Schaltung um Controller über USB zu programmieren


von jorg (Gast)


Lesenswert?

Hallo allerseits,

ich möchte eine Platine mit einem STM32F4 machen, den ich dann über eine 
USB-Buchse programmieren (mit Keil µVision) möchte.

Wie wird dies umgesetzt bzw. brauche ich noch ein extra Bauelement 
dafür?

von holger (Gast)


Lesenswert?


von jorg (Gast)


Lesenswert?

holger schrieb:
> https://www.youtube.com/watch?v=Kx7yWVi8kbU

Ok, bei dieser Variante brauche ich aber das extra Programm DfuSe. Ich 
würde aber gerne wie beim Discovery Board vom STM meinen Code einfach 
über KeilµVision auf den Controller laden. Hierfür benötige ich den 
ST-Link?

von jorg (Gast)


Lesenswert?

Ich finde allerdings keine Beschreibung für den ST-Link oder einen 
Schaltplan.
Nur dieses Datenblatt: 
http://www.st.com/content/ccc/resource/technical/document/data_brief/80/76/2b/dc/45/c5/46/90/DM00027105.pdf/files/DM00027105.pdf/jcr:content/translations/en.DM00027105.pdf

Aber das ist ein richtiges "Gerät", allerdings sollte es doch einfach 
ein IC sein oder nicht??? Bei meinem Discovery benötige ich ja auch 
nicht solch ein Gerät zum programmieren.

von Jim M. (turboj)


Lesenswert?

jorg schrieb:
> Aber das ist ein richtiges "Gerät", allerdings sollte es doch einfach
> ein IC sein oder nicht??? Bei meinem Discovery benötige ich ja auch
> nicht solch ein Gerät zum programmieren.

Wenn Du ein Discovery Board hast, kannst Du dessen ST-Link auch für 
externe Sachen benutzen, IIRC auch mit Keil. Handbuch mal lesen..?

von jorg (Gast)


Lesenswert?

Jim M. schrieb:
> Wenn Du ein Discovery Board hast, kannst Du dessen ST-Link auch für
> externe Sachen benutzen, IIRC auch mit Keil. Handbuch mal lesen..?

Ja genau, mein STM32F4 Discovery programmiere ich mit Keil µVision über 
einen USB-Anschluss. Und das müsste mit dem ST-Link funktionieren, wenn 
ich das richtig weiß.

Nun möchte ich eine kleine Platine mit dem Controller machen, den ich 
dann ja auch irgendwie programmieren will. Hier muss ich nun rausfinden, 
wie ich das mache, dass das Programmieren wie beim Discovery 
funktioniert (auch mit Keil).

Hat mir jemand hierfür einen Schaltplan oder kann mir sagen, wo ich ein 
IC für den ST-Link finde.

von Dr. Sommer (Gast)


Lesenswert?

jorg schrieb:
> Hat mir jemand hierfür einen Schaltplan oder kann mir sagen, wo ich ein
> IC für den ST-Link finde.
Das ist auch nur ein Mikrocontroller, und an die Firmware kommst du 
nicht so einfach (ohne viel Geld). Führe doch einfach das 
JTAG/SWD-Interface auf einen Stecker, die kannst du dann mit dem 
Pinheader auf dem Discovery verbinden und darüber programmieren. Da 
gibts sogar eine Standard-Pinbelegung (JTAG-Stecker), dann ist das auch 
kompatibel mit anderen/besseren Programmern als dem ST-Link.
Alternativ kannst du dir auch einen USB-Bootloader auf dem Controller 
flashen, aber darüber kannst du dann halt nicht debuggen.

von Christopher J. (christopher_j23)


Lesenswert?

Dr. Sommer schrieb:
> an die Firmware kommst du
> nicht so einfach (ohne viel Geld)

Ich weiß ja nicht ob ST die Firmware für Geld überhaupt anbietet. Was es 
für Geld zu kaufen gibt, ist die J-Link Firmware. Ansonsten kann man 
aber auch einfach die Black Magic Firmware nehmen. Die kostet nichts und 
lässt sich wie J-Link und ST-Link auf den STM32F103CBT6 flashen. Sogar 
die entsprechenden Schaltpläne sind frei verfügbar.
Falls es doch unbedingt der ST-Link sein muss, wären "i am key, wawawa" 
und "best performance" wichtige Schlüsselwörter um an die Firmware zu 
kommen.

von W.S. (Gast)


Lesenswert?

jorg schrieb:
> ich möchte eine Platine mit einem STM32F4 machen, den ich dann über eine
> USB-Buchse programmieren (mit Keil µVision) möchte.

Also was denn nun?

Entweder du benutzt den eingebauten Bootlader, sofern der über USB 
ansprechbar ist,

ODER

du brennst deinen µC per SWD, wofür du ein JTAG/SWD-Geschirre (JLink, 
ULink, STLink, sonstigen XYZLink) brauchst und guckst nach, ob dieses 
Geschirre von µVision unterstützt wird.

Es ist tatsächlich ein entweder oder und nicht ein sowohl-als-auch.
Ob der verbaute Bootlader per uSB geht, mußt du bei ST nachlesen. Die 
haben dafür eine spezielle AppNote, wo all die in den verschiedenen µC 
verbauten BL aufgelistet und beschrieben sind.

W.S.

von Arc N. (arc)


Lesenswert?

Dr. Sommer schrieb:
> Alternativ kannst du dir auch einen USB-Bootloader auf dem Controller
> flashen, aber darüber kannst du dann halt nicht debuggen.

Der USB-Bootloader ist integriert
AN2606
http://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf
Wie man den aus der eigenen Software nutzt:
https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FJump%20to%20internal%20bootloader&currentviews=10061
(wird z.T. auch am Anfang der AN2606 erklärt)

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.