Forum: Mikrocontroller und Digitale Elektronik Stand-alone Programmer für STM32 Controller


von A. D. (egsler)


Lesenswert?

Ich nutze aktuell einen ST-Link, um meine STM32L4 Controller zu 
programmieren und für die Entwicklung find ich den auch gut.

Um unsere Boards in serie zu programmieren wär mir aber ein stand-alone 
programmer lieber, auf den ich die zu flashende FW aufspiele und dann 
kann ich mit dem Gerät überall und ohne PC die Controller flashen. 
Einfach ein Knopf drücken und fertig, absolut idiotensicher.

Das einzige was ich in die Richtung bisher gefunden habe ist der Flasher 
von Segger, der ist eigentlich exakt was ich suche, kostet aber mit 800€ 
deutlich mehr, als ich mir das für unsere Kleinserie erhofft hatte.

Kennt jemand ein günstigeres Gerät in diese Richtung? Andernfalls müssen 
wir da eben entweder in den sauren Apfel beißen und 800€ blechen oder 
jeder, der bei uns mal das Programmieren neuer Platinenlieferungen 
übernimmt, muss sich das Tool von ST installieren, das korrekte FW-File 
laden und dann über den Rechner flashen...

von Stefan F. (Gast)


Lesenswert?

A. D. schrieb:
> Kennt jemand ein günstigeres Gerät in diese Richtung?

Ich würde das "mal eben schnell" mit einem Shell Script auf einem 
Raspberry Pi umsetzen.

Beitrag #6270434 wurde von einem Moderator gelöscht.
von Johannes S. (Gast)


Lesenswert?

Wenn man ein Black Magic Probe als Programmieradapter nimmt, dann hat 
man schon die halbe Miete weil da die Flash Algorithmen drin sind. Dann 
entweder die Firmware modifizieren oder einen RPi als Host dran, dann 
wird es mit den Scripten wirklich einfach.

von A. D. (egsler)


Lesenswert?

Raspberry-Eigenbau wäre eine Überlegung, müsste dann aber immer erst 
booten und klingt jetzt spontan erstmal nicht so nach einer stabilen 
Lösung.

Aktuell haben wir noch PICs verbaut, dafür nutzen wir einen MPLAB 
PICkit. Kostet <100€ und ist absolut stand-alone nutzbar.
Aber scheinbar gibts sowas schön kostengünstiges wohl nicht für STM 
controller.

von Cyblord -. (cyblord)


Lesenswert?

A. D. schrieb:
> Um unsere Boards in serie zu programmieren wär mir aber ein stand-alone
> programmer lieber, auf den ich die zu flashende FW aufspiele und dann
> kann ich mit dem Gerät überall und ohne PC die Controller flashen.
> Einfach ein Knopf drücken und fertig, absolut idiotensicher.

Also für eine Serienfertigung kann ich solche Anforderungen überhaupt 
nicht nachvollziehen. Warum will man unbedingt ein Standlone Teil? Wie 
kommt da neue Firmware drauf? Sollte die nicht, je nach Gerät, 
automatisch von einem Server gezogen werden. Und zwar die jeweils letzte 
freigegebene Version?

"Idiotensicher" kann man einen Produktions-PC per Software machen. Dazu 
braucht es eine ordentliche Oberfläche und eine gute automatische 
Organisation (z.B. Gerät wird gescannt, dann wird die richtige FW 
automatisch geladen). Dafür braucht man keine spezielle Hardware.

Gibt bei euch keine Rückverfolgbarkeit? Wollt ihr keine Logs oder 
sonstiges speichern wenn ihr Geräte produziert?

Was wenn das falsche Kästchen am falschen Gerät angesteckt wird? Dann 
hat man das falsche Programm drauf.

Und wenn was schief geht? Leuchtet da dann eine rote Lampe auf? Und 
dann? Woran lags? Was ging jetzt genau schief? Keiner weiß es denn 
irgendjemand dachte ein Kasten mit einer LED reicht.

In welchem Kindergarten programmiert man SERIENGERÄTE mit einem kleinen 
Kästchen ohne jegliche Anbindung an die Produktionsinfrastruktur?

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Wenn Du keine 800€ investieren willst sondern Zeit (eigentlich auch 
Geld) dann bleibt Dir wohl nur ein Eigenbau.

Ob man nun einen Raspberry PI oder PC nimmt ist dann geschmackssache.
Alternativ kann man auch einen STM32FXXX mit SD-Card, Treiber und 
Software nehmen.
Als Basis der Software wäre der Black Magic Probe oder ein andere 
Brenner (ST-Link) wohl eine gute Wahl. Dann musst Du "nur" noch deinen 
Code von SD laden und übertragen.
Ich denke das es zwar ein schönes Projekt wäre so was zu bauen und wäre 
bestimmt für eininge Interessant, aber wenn ich mal Zeit und Kosten 
überschalge dann sind 800€ nicht wirkich viel wenn das Teil alles kann.


Ich hätte jedenfalls interresse an so einer kleinen Kiste, weil ich auch 
immer den PC anwerfe und meinen Brenner rausholen muss nur um mal eben 
ein Update einzuspielen.

von Klaus (Gast)


Lesenswert?

So ein Kindergarten nemmt man Automatisches Einspielen der Software.
Das wird bei uns auch so gemacht, gut da ist ein PC dran der auf 
Komanndo einer SPS los legt. Die Anlage hat übrigens kein Ethernet und 
Updates einspielen ist mit tonnenweise Papierkram verbunden, da hollt 
sich keine Maschine mal eben Daten von einem Server.

von Cyblord -. (cyblord)


Lesenswert?

Klaus schrieb:
> So ein Kindergarten nemmt man Automatisches Einspielen der Software.

Der TE sucht eher genau das Gegenteil.

> Das wird bei uns auch so gemacht, gut da ist ein PC dran
Also auch wieder so gar nicht was der TE sucht.

> der auf
> Komanndo einer SPS los legt. Die Anlage hat übrigens kein Ethernet und
> Updates einspielen ist mit tonnenweise Papierkram verbunden, da hollt
> sich keine Maschine mal eben Daten von einem Server.

Es geht nicht um Updates sondern um verschiedene Firmware für 
verschiedene Geräte. Und das kommt in einer Produktion ja nun schon mal 
vor.

Wie viel Aufwand das nun im Einzelnen bedeutet, für ein Gerät eine neue 
Software Version freizugeben hat damit überhaupt nichts zu tun.

von W.S. (Gast)


Lesenswert?

A. D. schrieb:
> Um unsere Boards in serie zu programmieren wär mir aber ein stand-alone
> programmer lieber

Ach nö. Das ganze Problem sehe ich eher auf der Firmware-Seite. Ich habe 
sowas bei meinen Geräten so gelöst, daß meine Firmware(n) aus einem 
Starter und dem rest der Firmware bestehen. Dazu ein Programm für den 
PC, mit dem man als Kunde vom PC aus eine neue Firmware auf das Gerät 
bringen kann. Die hat zwar ein GUI, aber im Grunde ist das bloß eine 
Drei-Knopf-Angelegenheit: Neue Firmwaredatei suchen und laden, alte Fw 
löschen, neue Fw programmieren. Das kann selbst die Putzfrau richtig 
benutzen.

Die verschickbare Fw-Datei ist komprimiert, hat Versionseintrag, 
Geräteeintrag usw. und ist prüfsummengsichert. Da kann nix schiefgehen, 
weil der Lader im Gerät lediglich den Anwendungsteil löscht und neu 
schreibt, nicht jedoch sich selbst.

Und: nen PC hat wohl jeder herumlungern, ein USB-Kabel wohl auch.

W.S.

von Klaus (Gast)


Lesenswert?

Wie schon gesagt Bau dir einen Kasten am besten noch mit Display und 
deine Kleinserie genauso wie ein update von einem Gerät kannst Du damit 
machen.
Ich würde wenn es vielleicht sogar nachbauen, kommt auf den Aufwand an.

Einen internen Brenner kann man haben ist auch was feines nur der muss 
auch erst mal drauf. Klar geht auch der interne Bootloader für vieles, 
aber der muss auch erstmal gestartet werden und arbeitet leider nicth 
immer so zuverlässig, wie ich selber feststellen durfte (F407 und 
Seriel).

von Axel S. (a-za-z0-9)


Lesenswert?

Klaus schrieb:
> Als Basis der Software wäre der Black Magic Probe oder ein andere
> Brenner (ST-Link) wohl eine gute Wahl. Dann musst Du "nur" noch deinen
> Code von SD laden und übertragen.

Die 1. Frage wäre, ob es denn unbedingt SWD sein muß. Die STM's haben 
doch alle einen UART Bootloader im ROM. Das Protokoll ist simpelst. Da 
braucht man nur noch einen µC, der eine SD-Karte o.ä. ansprechen kann 
und die Firmware über den UART rausschickt. Dann geht das sogar mit 
Arduino.

Man müßte halt mal ein Pflichtenheft schreiben. Danach kann man ja immer 
noch in einem Forum herumnerven.

von Alexander K. (Gast)


Lesenswert?

Ein Arduino, ein paar Chips , Display paar Knöpfe und eine SD-Karte und 
das wars.

Da auf mein USBasp - Programmer auch ein Atiny-85 wusselt, stelle ich 
mir das nicht wirklich schwer vor.

Opfer anschließen, mit der Software des Arduino die Firmware aussuchen, 
und gib ihm. Vielleicht noch eine Testroutine ob alles OK drauf ist, und 
fertig ist.

Ich verstehe zu wenig davon das zu bauen, aber ich halte es absolut für 
machbar.

Das ganze in einen kleinen Kasten montiert und das war's.

Gruß

   Pucki

von georg (Gast)


Lesenswert?

Klaus schrieb:
> interresse an so einer kleinen Kiste, weil ich auch
> immer den PC anwerfe und meinen Brenner rausholen muss nur um mal eben
> ein Update einzuspielen.

Und du glaubst, so eine kleine Kiste hat ganz von selbst die neueste 
Softwareversion für ein bestimmtes Gerät? Ohne Verbindung irgendwohin 
und ohne Angaben dazu welche Version aktuell ist, und ohne diese von 
irgenwoher zu laden? Mit KI und Cloud über 5G?

Und das natürlich für ein paar wenige Euro...

Georg

von Peter (Gast)


Lesenswert?

Ich glaube das niemand der sowas einsetzt nicht in der Lage ist seine 
Daten auf einer sd aktuell zu halten. Muss er jetzt ja auch auf dem 
Rechner aktuell haben.

Einige der stm32 arbeiten nicht so gut auf der sio beim Update. Die 
meisten aber gehen super.
Stellt sich nur die Frage ob die sio erreichbar ist.

Ich denke auch das man für Arduino alles an Software finden kann. Aber 
die Pegel sind unterschiedlich wenn man einen avr hat.
Aber egal ob stm32 oder avr am Ende ist es die Software die die 
entsprechenden Funktionen benötigt.

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

A. D. schrieb:
> Das einzige was ich in die Richtung bisher gefunden habe ist der Flasher
> von Segger, der ist eigentlich exakt was ich suche, kostet aber mit 800€
> deutlich mehr, als ich mir das für unsere Kleinserie erhofft hatte.

Das ist der Preis vom Flasher Pro. Evtl. reicht dir auch ein Flasher ARM 
bzw. ein Flasher Portable, die kosten "nur" 600,- Euro.
https://www.segger.com/products/production/flasher/models/about-flasher-arm/
https://www.segger.com/products/production/flasher/models/flasher-portable-plus/

von Klaus (Gast)


Lesenswert?

Mir würde der "Flasher Portable PLUS" reichen, aber bis jetzt war der 
Druck nicht so gross das ich den jetzt kaufen würde!


Wie ich schon sagte ein STM32 mit passender Software und Du bist in X 
Stunden fertig.
Die Arduino AVR Lösung würde auch gehen aber dann bitte nicht über die 
Seriele und Pegel anpassung nicht vergessen dein Ziel ist ein 3,3V 
System! Eine Arduino STM32 Lösung wäre da besser, wenn es den umbegingt 
Arduino sein müsste.
Ich kenne nur keine ISP /SWD LIB für Arduino, sollte aber auch kein 
Hexenwerk sein.

Wenn Du das machst hätte ich wie gesagt interesse, aber habe keinen 
Druck das haben zu müssen.

von Sebastian R. (sebastian_r569)


Lesenswert?

Wir nutzen RaspberryPis mit OpenOCD.

Dazu Multiplexer, um das SWD auf 6 Targets zu verteilen.
Hard- und Software sind bei uns so ausgelegt, dass der Pi erkennt, wenn 
ein Target angeschlossen ist (nicht via SWD) und legt dann los und 
programmiert nacheinander.

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.