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
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.
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
>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.
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.