Forum: Mikrocontroller und Digitale Elektronik STM32 aussperren möglich?


von Ada J. Quiroz (inschnier)


Lesenswert?

Hallo,

ich habe bei einem STM32 einen externen Oscillator als Taktgeber 
vorgesehen. Diesen kann ich jedoch über einen GPIO an/ausschalten.

Wenn ich zuerst versuche den Oscillator zu verwenden, ohne dass dieser 
aktiviert ist, kann ich mich dann aus dem Controller aussperren, vor 
allem wenn ich dafür die HAL Routine nutze?

von J. S. (jojos)


Lesenswert?

die STM haben einen Bootloader in den man starten kann wenn der Pin 
BOOT=1 ist. Dann kommt man wieder per SWD dran und kann korrigierten 
Code hochladen.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

J. S. schrieb:
> die STM haben einen Bootloader in den man starten kann wenn der
> Pin
> BOOT=1 ist. Dann kommt man wieder per SWD dran und kann korrigierten
> Code hochladen.

Nicht nötig. So gut wie alle Programmer ziehen den Reset-Pin auf Low und 
flashen dann. Da spielt es keine Rolle was für Code im Flash ist. Der 
Code kann völlig kaputt sein, den Takt abschalten, egal.

Aussperren kann man sich nur indem man per Option Bytes den Bootloader 
und das SWD/JTAG-Interface permanent abschaltet und zuvor kaputten Code 
flasht.

von J. S. (jojos)


Lesenswert?

wenn der Reset Pin am SWD angeschlossen ist. Ich habe mehrere Boards wo 
das nicht so ist, teilweise ist Reset nicht mal auf einem Headerpin 
rausgeführt und ich musste den am Reset Taster anlöten. Boot Button ist 
da vorhanden, aber lästig wenn die App die MCU ständig in den deep sleep 
schickt.
Bei den LPC hat im deep power down auch der Reset keine Funktion mehr, 
den muss man über WakeUp wieder starten, der liegt aber auch nicht auf 
dem SWD Interface.

von Andreas B. (abm)


Lesenswert?

Ada J. Quiroz schrieb:
> ich habe bei einem STM32 einen externen Oscillator als Taktgeber
> vorgesehen. Diesen kann ich jedoch über einen GPIO an/ausschalten.

Tja, es gibt mittlerweile über 1300 verschiedene (ohne wenn's teilweise 
nur Gehäusevarianten sind). Bei machen lässt sich die PLL gar nicht auf 
HSE umschalten, wenn der HSE gar keinen stabilen Takt liefert. Bei 
anderen wird bei Ausfall des HSE automatisch (oder konfigurierbar) auf 
HSI umgeschaltet.
Also: Nichts genaues weiß man nicht ... Wer nicht mal den Typ des 
"STM32" benennen kann, ist m. E. einfach ein Chaot.

von Bernd G. (Gast)


Lesenswert?

Andreas B. schrieb:
> Wer nicht mal den Typ des
> "STM32" benennen kann, ist m. E. einfach ein Chaot.

dann lohnt ein Blick ins Datenblatt.

J. S. schrieb:
> Ich habe mehrere Boards wo
> das nicht so ist,
+1
das ist das Problem!

von Cyblord -. (cyblord)


Lesenswert?

J. S. schrieb:
> wenn der Reset Pin am SWD angeschlossen ist. Ich habe mehrere Boards wo
> das nicht so ist

Das ist ja wohl dein Problem. SWD ohne Reset ist Mist und fällt einem 
irgendwann auf die FÜße.

Mit Reset kann man die Dinger immer wieder neu flashen, egal was man bei 
den Clock Einstellungen verzockt hat. Ein großer Vorteil gegenüber den 
Fuse-Bits bei AVR.
Aber klar, schmeiß den Vorteil weg und lass Reset weg. Und dann heul im 
Forum rum.
Kein Mitleid. Kriege deine Entwicklung auf die Kette.

von Steve van de Grens (roehrmond)


Lesenswert?

J. S. schrieb:
> Ich habe mehrere Boards wo das nicht so ist

Cyblord -. schrieb:
> Aber klar, schmeiß den Vorteil weg und lass Reset weg. Und dann heul im
> Forum rum. Kein Mitleid. Kriege deine Entwicklung auf die Kette.

Stell dir mal vor, er hat die Boards im Sinne von "besitzen" oder "damit 
arbeiten müssen", aber er hat sie nicht selbst entwickelt und kann das 
auch nicht beeinflussen. Ist jetzt nicht soooo ungewöhnlich, oder?

von Cyblord -. (cyblord)


Lesenswert?

Steve van de Grens schrieb:
> Stell dir mal vor, er hat die Boards im Sinne von "besitzen" oder "damit
> arbeiten müssen", aber er hat sie nicht selbst entwickelt und kann das
> auch nicht beeinflussen. Ist jetzt nicht soooo ungewöhnlich, oder?

Natürlich ist das ungewöhnlich. Man akzeptiert nicht einfach irgendeine 
Hardware. Wenn die entsprechenden Belegung für SWD nicht drauf sind, 
kann man damit nicht entwickeln. Dann kann man vielleicht noch Fädeln 
o.ä.
Aber einfach akzeptieren ist nicht.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Cyblord -. schrieb:
> Natürlich ist das ungewöhnlich. Man akzeptiert nicht einfach irgendeine
> Hardware. Wenn die entsprechenden Belegung für SWD nicht drauf sind,
> kann man damit nicht entwickeln. Dann kann man vielleicht noch Fädeln
> o.ä.
> Aber einfach akzeptieren ist nicht.

Gerade in großen Unternehmen, in denen die Hardware- und 
Firmwareentwicklung streng getrennt sind, kann man sich als 
Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse 
überhaupt auf der Leiterplatte vorhanden sind.

von J. S. (jojos)


Lesenswert?

Cyblord -. schrieb:
> Aber klar, schmeiß den Vorteil weg und lass Reset weg. Und dann heul im
> Forum rum.
> Kein Mitleid. Kriege deine Entwicklung auf die Kette.

Hat dein Chef dich heute morgen wieder gefickt?

SWD kommt ohne Resetleitung aus, Reset kann über die SWD 
Daten/Taktleitungen ausgelöst werden. Es funktioniert zuverlässig 
solange man den CPU Kern nicht schlafen lässt.
Krieg du deine Software Entwicklung in den Griff, ich kann es auch ohne 
HW Reset wenn nötig.

von J. S. (jojos)


Lesenswert?

Andreas S. schrieb:
> Gerade in großen Unternehmen, in denen die Hardware- und
> Firmwareentwicklung streng getrennt sind, kann man sich als
> Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse
> überhaupt auf der Leiterplatte vorhanden sind.

ja, Arduino mit seiner professionellen Portenta Machine Control SPS hat 
das auch fertiggebracht die SWD Pins für IO und Steuersignale zu 
verbraten.

von Cyblord -. (cyblord)


Lesenswert?

Andreas S. schrieb:
> Gerade in großen Unternehmen, in denen die Hardware- und
> Firmwareentwicklung streng getrennt sind, kann man sich als
> Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse
> überhaupt auf der Leiterplatte vorhanden sind.


J. S. schrieb:
> SWD kommt ohne Resetleitung aus, Reset kann über die SWD
> Daten/Taktleitungen ausgelöst werden. Es funktioniert zuverlässig
> solange man den CPU Kern nicht schlafen lässt.
> Krieg du deine Software Entwicklung in den Griff, ich kann es auch ohne
> HW Reset wenn nötig.

Kann ich auch. Will ich aber nicht.

Mir scheint ihr habt wenig zu melden und müsst fressen was die HW euch 
hinwirft. Ich entscheide welche HW akzeptabel ist oder nicht. Ich 
reviewe die Schaltung vorher, gerade im Hinblick auf 
Debug-Schnittstellen usw. Und SWD hat einen Reset oder die HW entwickelt 
die SW dafür selber. Da müsst ihr wohl erst noch hinkommen. Braucht ihr 
ein Rezept für ein paar Eier von Dr. Cox?

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Cyblord -. schrieb:
> Ich entscheide welche HW akzeptabel ist oder nicht.

Also Arbeitsverweigerung? In welchen Betrieben kann man vom Vorgesetzten 
angelieferte Schaltungen ablehnen ohne gegangen zu werden? Gerade in 
Zeiten von Rezession und Massenentlassungen wo selbst hochqualifizierte 
Fachkräfte Schwierigkeiten haben Stellen zu finden?

Ich habe tatsächlich letztens mit einem Board ganz ohne SWD arbeiten 
müssen, programmieren ging nur über den Bootloader. Das Board wurde von 
einem ehemaligen Mitarbeiter entwickelt und sollte wiederverwendet 
werden. Hätte ich dem Vorgesetzten, und damit auch dem Kunden, sagen 
sollen "kann ich nicht machen"? Es hing ein lukrativer Auftrag dran.

von J. S. (jojos)


Lesenswert?

Und ich rede von Chinaboards, z.B. ein STM32H743 Board das ich noch für 
ca 25 € gekauft hatte. Wenn der Controller davon schon 15 € kostet, dann 
mache ich mir auch nicht die Mühe ein eigenes Board zu entwerfen nur 
weil am SWD keine Resetleitung liegt.
In der 4ma machen meine Kollegen die Entwürfe und da wurde die 
Resetleitung bisher auch nicht auf dem Programmieranschluss 
herausgeführt. Aber wir reden wie normale Menschen miteinander und jetzt 
wird das gemacht, inklusive Rx/Tx auf dem SDC14 Stecker.
So einfach geht das.

von Cyblord -. (cyblord)


Lesenswert?

Niklas G. schrieb:

> Also Arbeitsverweigerung?

Unsinn.

> In welchen Betrieben kann man vom Vorgesetzten
> angelieferte Schaltungen ablehnen

Mein Vorgesetzter liefert keine Schaltungen an. Macht der Paketdienst.

Die Entscheidung was da drauf kommt, trifft man hoffentlich vorher.

> Ich habe tatsächlich letztens mit einem Board ganz ohne SWD arbeiten
> müssen, programmieren ging nur über den Bootloader. Das Board wurde von
> einem ehemaligen Mitarbeiter entwickelt und sollte wiederverwendet
> werden. Hätte ich dem Vorgesetzten, und damit auch dem Kunden, sagen
> sollen "kann ich nicht machen"? Es hing ein lukrativer Auftrag dran.

Wenn es um kritische Dinge im Bestand geht, muss man natürlich kreativ 
werden. Wie gesagt, man kann auch immer was fädeln, Stecker irgendwo 
anlöten usw.

von Cyblord -. (cyblord)


Lesenswert?

J. S. schrieb:
> Und ich rede von Chinaboards, z.B. ein STM32H743 Board das ich noch für
> ca 25 € gekauft hatte. Wenn der Controller davon schon 15 € kostet, dann
> mache ich mir auch nicht die Mühe ein eigenes Board zu entwerfen nur
> weil am SWD keine Resetleitung liegt.

Ja dann musst DU mit dem Schrott halt leben den du da gekauft hast.

von Cyblord -. (cyblord)


Lesenswert?

J. S. schrieb:
> In der 4ma machen meine Kollegen die Entwürfe und da wurde die
> Resetleitung bisher auch nicht auf dem Programmieranschluss
> herausgeführt.

Ist schlicht ein Problem der Person die das entscheidet. Eine 
Debug-Belegung sollte ja nun kein Zufall sein. Es sollte jemanden geben 
der sich das ausdenkt. Mit einer Begründung.


> So einfach geht das.

Jaja so einfach. Wenn man die HW machen lässt, wälzen die EINFACH solche 
Probleme auf die SW ab. Deshalb muss man Tacheles reden und dafür sorgen 
dass die das richtige machen.
Oder sie löten dann halt bei 25 Mustern höchstselbst Stecker auf oder 
fädeln. Geht auch.
Woran erkennt man den netten und verständigen Mitarbeiter? DER fädelt am 
Ende den Unsinn von anderen und das ganze Projekt verzögert sich auch 
noch. Nett hat keinen Erfolg.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Cyblord, was ist los mit dir? Ich kenne dich schon lange, aber so mies 
gelaunt ist neu.

von Hans-Georg L. (h-g-l)


Lesenswert?

Niklas G. schrieb:
> J. S. schrieb:
>> die STM haben einen Bootloader in den man starten kann wenn der
>> Pin
>> BOOT=1 ist. Dann kommt man wieder per SWD dran und kann korrigierten
>> Code hochladen.
>
> Nicht nötig. So gut wie alle Programmer ziehen den Reset-Pin auf Low und
> flashen dann. Da spielt es keine Rolle was für Code im Flash ist. Der
> Code kann völlig kaputt sein, den Takt abschalten, egal.
>
Leider ist das nicht immer so ...
Im aktuellen CubeMx V6.10.0 Code Generator ist ein Bug der bei einem H7 
mit 400/480 MHz die Flash wait-cycles falsch einstellt und dann lässt er 
sich nicht mehr mit VS-Code und GDB über ST-Link neu beschreiben. 
Meldung: can't reset Target. Mit dem ST stand alone Programmer kann man 
aber löschen oder ein funktionierendes Programm darüber bügeln.

von Bernd G. (Gast)


Lesenswert?

Andreas S. schrieb:
> Gerade in großen Unternehmen, in denen die Hardware- und
> Firmwareentwicklung streng getrennt sind, kann man sich als
> Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse
> überhaupt auf der Leiterplatte vorhanden sind.

Dann liefert man eben eine SW aus und lässt den HW-Entwickler testen. 
Dann lernt der das.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

🐻 Bernie - Bär schrieb:
> Dann liefert man eben eine SW aus und lässt den HW-Entwickler testen.
> Dann lernt der das.

Der war gut! Die finalen Tests machen immer die SW-Leute. Die finden 
dann auch die Fehler in Mechanik und Elektronik und müssen sich drum 
kümmern dass es funktioniert, während der Rest schon die nächsten tollen 
Projekte konzipiert.

von Bernd G. (Gast)


Lesenswert?

Niklas G. schrieb:
> Die finalen Tests machen immer die SW-Leute.

Es ging mir nicht um die finalen Tests. Die machen die Tester. Es ging 
um die angedeutete Inbetriebnahme der Software, wenn das debuggen nur 
eingeschränkt möglich ist, weil der Prototyp das nicht angemessen 
berücksichtigt ist.

Dazu möchte ich mit Heinweis auf dieses Thema hier
Beitrag "Meeting-Hölle/Scrum"

anmerken, daß in meinen Projekten die anfängliche Diskussion über die zu 
implementierenden inbetriebnahmeunterstützenden Testfunktionen ein 
zentraler Bestandteil der Konzeptphase ist. Würden das mehr Leitende im 
Auge haben, täten sich beide, SW- und HW-Entwickler, erheblich leichter. 
Etwas mehr Investition in Planungsdokumentation und damit weniger Stress 
bei Fehlersuchen. Dazu allerdings ist ein ausgereiftes Konzept nötig, 
das in der Vorentwicklungsphase niedergelegt und manifestiert wird; 
besonders was die Schnittstellen zwischen den Personen und die zu 
übergebenden Infos und Leistungen angeht. Das aber möchten manche nicht, 
weil sie sich in ihrer Denkfaulheit alle Türen offen lassen möchten, um 
alles aus dem Stegreif entscheiden zu können, womit sie das Projekt 
verscrummmen. Dieser Sorte fällt alles was sie brauchen erst ein, kurz 
bevor sie darüber stolpern und erwarten dann, dass es die anderen "agil" 
umsetzen und liefern.

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.