Forum: Mikrocontroller und Digitale Elektronik wie STM32f407 in Serie Programmieren


von Peter (Gast)


Lesenswert?

Hallo,

ich bin gerade dabei einen STM32F407 auf eine Platine zu setzen und da 
stellt sich gerade die frage:

Wie wird der STM32f407 nachher "in Serie" programmiert?


Hat jemand damit Erfahrung und kann mir hier helfen?


VG, Peter

von Gerd E. (robberknight)


Lesenswert?

Es gibt 2 Möglichkeiten:

a) Du führst die Pins fürs SWD nach draußen und gehst dann bei der 
Produktion mit nem Programmer (dafür kannst Du z.B. den oberen Teil der 
Discoverys verwenden) dran und programmierst.

Für die Verbindung von Programmer zu Platine gibts verschiedene 
Varianten:

- Testpunkte auf der Platine und "Bed of Nails" um den Kontakt 
herzustellen
- Edge-Connector auf die Platine stecken
- spezielle Stecker die direkt auf die Platine gehen (suche nach Tag 
Connect)
- normale Buchsen auf der Platine, z.B. SMD-Micromatch

b) Du hast USB für Deinen F4. Dann sorgst Du über den Boot-Selector 
dafür daß der integrierte USB-Bootloader gestartet wird und Du kannst 
das Programm per DFU über USB hochladen

Du solltest Dir vor allem Gedanken machen wie Deine Platine hinterher 
getestet wird. Desto mehr Du da automatisieren kannst, desto günstiger 
wird nachher das Testen in der Serie. Den für nen automatisierten Test 
nötigen Feedback musst Du irgendwo abgreifen - entweder wenn Du noch 
freie IOs hast am µC selbst, oder eben über Testpunkte rausführen. Das 
entscheidet wesentlich über die verwendete Programmiermethode.

von Peter (Gast)


Lesenswert?

Danke für die Antwort.

Vielleicht sollte ich meine Definition von Serie mal mitteilen.
Es geht nicht um 10K pro Tag sonder nur um 2-20 im Jahr.

Ich würde aber gerne das Programm mit einfachsten Mitteln austauschen 
können.
Nicht jeder der die Hardware bekommt, hat gleich einen Debugger herum 
liegen.

USB war überhaupt nicht vorgesehen, als Device zum Programmierern würde 
ihn ich noch drauf bekommen.
Was für ein Programm (WIN) brauche ich denn dazu?

Ich habe gerade in einem Schaltplan gesehen das an SIO3 was von BOOT 
stand.
Würde das auch gehen?   Und wenn was für ein Programm bräuchte ich 
dafür?

VG, Peter

von holger (Gast)


Lesenswert?

>Vielleicht sollte ich meine Definition von Serie mal mitteilen.
>Es geht nicht um 10K pro Tag sonder nur um 2-20 im Jahr.

Dann lass dir die Dinger zum Softwareupdate zuschicken.

>Ich habe gerade in einem Schaltplan gesehen das an SIO3 was von BOOT
>stand.
>Würde das auch gehen?   Und wenn was für ein Programm bräuchte ich
>dafür?

Bootloader und die Software von STM dazu.
Du wirst dir kaum was eigenes schreiben können.

von Peter (Gast)


Lesenswert?

Selber schreiben würde ich das nie!
Bei STM werde ich suchen, mal sehen ob ich das Programm finde.


Zusenden wird nicht immer gehen und ich will auch nicht immer den 
Debugger dabei haben wenn ich das Programm mal schnell tauschen möchte.
USB oder SIO ist mir da schon lieber.

von Gerd E. (robberknight)


Lesenswert?

Schau mal bei ST in die AN3156.

Für das DFU von ST such mal nach DfuSe. Hier ein paar ganz gute 
Beschreibungen und Tools:
http://www.codeproject.com/Tips/540963/ST-Micro-electronics-Device-Firmware-Upgrade-DFU-D
http://dfu-util.gnumonks.org/

Wenn Du das Update seriell machen willst, brauchen die User nen 
USB-Seriell-Wandler mit 3,3V-Pegel. Wer nicht gerade Bastler ist hat 
sowas nicht rumliegen. Und nen extra Programm brauchst Du trotzdem. Ich 
würde daher USB nehmen. Und so ne kleine Micro-USB-Buchse findet fast 
überall Platz. Vom Smartphone her hat eh fast jeder nen Micro-USB-Kabel 
rumfliegen.

von Michael (Gast)


Lesenswert?

Peter schrieb:
> Zusenden wird nicht immer gehen und ich will auch nicht immer den
> Debugger dabei haben wenn ich das Programm mal schnell tauschen möchte.
> USB oder SIO ist mir da schon lieber.

Weißt du was ein Bootloader ist? Ein Bootloader ist ein einmal (mit dem 
Programmer) geflashtes Programm. Dieses Programm verleiht dem 
Mikrocontroller die Fähigkeit auf gewisse Kommandos an gewissen 
Schnittstellen so zu reagieren, dass er sich selbst programmieren kann. 
Beispiel USB-Bootloader: Beim Einschalten oder Tastendruck hört der mit 
Bootloader versehene Mikrocontroller auf das USB-Interface. Wenn dort 
ein gewissen Datensequenz ankommt dann weiß er - "aha jetzt muss ich 
mich selbst programmieren" und empfängt dort das zu schreibende 
Programm. Diese bekommt er über die USB-Schnittstelle mitgeteilt (kein 
Programmer erforderlich) und beschreibt sich selbst. Hierfür ist 
natürlich auch Software am PC erforderlich. Das ist aber das "Normale". 
Somit kann jeder Kunde selbst Updates ohne Programmer machen. Hier gibt 
es weitere Informationen: http://de.wikipedia.org/wiki/Bootloader

von Peter (Gast)


Lesenswert?

Da ich selber schon einen Bootloader geschrieben hatte,
glaube ich zu wissen was das ist.

Ich würde nie eine 3V3 SIO einbauen, ein Wandler wäre dann auf jeden 
Fall drauf.

Es wird wohl USB, auch wenn ich das passende Programm noch nicht 
gefunden habe.

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.