Forum: Mikrocontroller und Digitale Elektronik STM32 GPIO finder


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Ich habe einen STM32 auf mir unbekannter Platine und keine Lust das 
Layout zu reversen. Es sind diverse Ein- und Ausgänge verkabelt.

Meine Idee war alle GPIOs als Eingang zu definieren und über Debugging 
live zu monitoren an welchem GPIO sich was tut. Bin nicht so bewandert 
mit den STM Workbenches. Gibt es dafür schon was fertiges oder muss ich 
mir das in Arduino selbst schreiben?

Würde auf jeden Fall schneller gehen als die Platine wieder auszubauen.

edit: Ganz speziell suche ich den Eingang BKL und die Ausgänge Brake 
light und Light output. Die anderen GPIOs scheinen zu stimmen, einen 
Teil davon habe ich reversed.

edit2: Mir ist bewusst dass es schneller geht das selbst zu 
programmieren als hier im Forum zu fragen. Mich interessieren aber 
mögliche Boardmittel von denen ich noch nichts weiß.

: Bearbeitet durch User
von Peter (pittyj)


Lesenswert?

Wenn du schon das Debuggen auf dieser Platine beherrscht, also auch mit 
Ausgabe der Register und Werte, dann sollte es auch ein Klacks sein, das 
Abfrage-Programm dafür zu schreiben.

von Alexander (alecxs)


Lesenswert?

Nein das beherrsche ich nicht, ich beherrsche nur Arduino.

von Peter D. (peda)


Lesenswert?

Alexander schrieb:
> Meine Idee war alle GPIOs als Eingang zu definieren

Besser als Eingang mit Pullup, sonst zappeln die alle lustig vor sich 
hin.
Je nach Außenbeschaltung können sich noch seltsame Effekte ergeben.

von Andreas B. (abm)


Lesenswert?

Klar gibt's da was fertiges: Boundary Scan über JTAG. Dafür ist JTAG 
ursprünglich auch mal entwickelt worden.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Andreas B. schrieb:
> Klar gibt's da was fertiges: Boundary Scan über JTAG.

Soweit ich weiß hängen die IO-Register von STM32 nicht direkt in der 
JTAG-Chain. Stattdessen greift man über JTAG auf den Debug Port zu, 
welcher dann auf den Prozessorbus zugreifen kann und darüber auf die 
Peripherie-Register. Zählt das noch als Boundary-Scan?

von Dieter S. (ds1)


Lesenswert?

Niklas G. schrieb:
>
> Soweit ich weiß hängen die IO-Register von STM32 nicht direkt in der
> JTAG-Chain. Stattdessen greift man über JTAG auf den Debug Port zu,
> welcher dann auf den Prozessorbus zugreifen kann und darüber auf die
> Peripherie-Register. Zählt das noch als Boundary-Scan?

Boundary Scan und Debugging über JTAG haben wenig miteinander zu tun, 
außer dass beides über JTAG gemacht wird. Die STM32 können beides (falls 
sie JTAG und nicht nur SWD haben).

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

Niklas G. schrieb:
> Soweit ich weiß hängen die IO-Register von STM32 nicht direkt in der
> JTAG-Chain. Stattdessen greift man über JTAG auf den Debug Port zu,
> welcher dann auf den Prozessorbus zugreifen kann und darüber auf die
> Peripherie-Register. Zählt das noch als Boundary-Scan?

Jeder anstaendige Debugger kann die IO-Register mehr oder weniger
auskodiert anzeigen, und auch modifizieren.
Es ist mir herzlich egal wie er das macht, so lange es keinen
extra Trace/Bla-Adapter braucht.

Es ist uebrigens eine nette (Vor-)Fingeruebung, mal alles notwendige
nur mit dem Debugger zu initialisieren und an den Pins zu wackeln.

von Flunder (flunder)


Lesenswert?

Kannst Du nicht einfach den Text in den hellgrünen bzw. grauen Kästchen 
auf Deinem Bild nehmen ?

Oder zeigt das gar nicht Dein Board, und hast Du das nur so zur 
allgemeinen Verwirrung angehängt ?

von Alexander (alecxs)


Lesenswert?

Doch das kann ich. PB9 schaltet aber nur das Rücklicht an, für das 
Vorderlicht muss es auch noch einen Pin geben. Auf dem Blue Pill hab ich 
es grob getestet, auf dem richtigen Controller jedoch nicht. Jetzt hab 
ich es auf dem Teststand.

Ich habe noch nicht mit Cube gearbeitet, in meiner Vorstellung war das 
eine grafische Variante Code zusammen zu klicken. Hätte ja sein können 
da gibt's auch ne grafische Darstellung für die GPIO Konfiguration.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Alexander schrieb:
> Hätte ja sein können
> da gibt's auch ne grafische Darstellung für die GPIO Konfiguration.

Da steht aber auch nur ob die einzelnen Bits des GPIO als Eingang oder 
Ausgang, mit/ohne pulldown/pullup usw. konfiguriert sind. Ggf. noch ob 
sie aktuelle 0 oder 1 sind. Da gibt es keine Infos darüber was auf der 
"anderen Seite" des µC da dranhängt.

Alle auf Eingang konfigurieren wird dir auch keine Info darüber liefern, 
was da eventuell aus Ausgang dran beschaltet ist. Im schlechtesten Fall 
erkennst du so noch nicht mal ob da überhaupt eine Leitung dran hängt 
oder der Pin in der Luft hängt. Bei denen, die als Eingang beschaltet 
sind, bekommst du auch höchstens angezeigt ob die gerade 0 oder 1 sind. 
Die "verraten" dir aber auch nichts darüber von welchem Teil der 
Schaltung der Zustand gerade kommen. Das alles verrät dir nur ein 
Schaltplan, oder du musst irgendwie versuchen gezielt irgendwelche Pegel 
in die Schaltung einzuspeisen, um zu schauen ob sich was verändert 
(möglichst ohne die Schaltung dabei zu himmeln:-).

von Adam P. (adamap)


Lesenswert?


von Joachim B. (jar)


Lesenswert?

Alexander schrieb:
> grafische Variante Code zusammen zu klicken

Klasse Methode, hilft immer :-)

von Alexander (alecxs)


Lesenswert?

Kann ich nicht mitreden, ich hab nur die SW4STM32 installiert. Wenn Du 
da Erfahrung hast...

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.