Forum: Mikrocontroller und Digitale Elektronik STM32: open drain output und input gleichzeitig.


von es_gibt_nur_bloede_fragen (Gast)


Lesenswert?

Hallo Forum
Was prinzipielles, schwer im Internet zu suchen.
Kann ich bei einem STM32 MCU einen Pin als open drain bidirektional 
verwenden?
Also dass der MCU ihn bei Bedarf auf 0 ziehen kann (also Mode auf 
OUTPUT, OD). Ein extern angeschlossener IC darf auch auf Null ziehen.
Wenn ich den GPIO dann abfrage ohne ihn auf Input gestellt zu haben 
möchte och eine Null auslesen wenn extern auf Null gezogen wird.
Geht das prinzipiell?

von HildeK (Gast)


Lesenswert?

es_gibt_nur_bloede_fragen schrieb:
> Was prinzipielles, schwer im Internet zu suchen.

Das steht auch im Internet, denn da findet man sicherlich das 
Datenblatt!

Bei Atmel z.B. gibt es den Satz:
"Independent of the setting of Data Direction bit DDxn, the port pin can 
be read through the PINxn Register bit."

Also da geht es, beim STM32 solltest du selbst mal den Abschnitt über 
die IOs durchlesen.

Beitrag #5290722 wurde von einem Moderator gelöscht.
von es_gibt_nur_bloede_fragen (Gast)


Angehängte Dateien:

Lesenswert?

Laut Datenblatt sollte das funktionieren (Siehe Bild).
Leider bei mir im Code nicht. Ist noch mit StdPeripheralLibrary.
GPIO_ReadInputDataBit() liefert ständig SET obwohl in dem Moment bereits 
auf Null gezogen.
GPIO_SetBits() und GPIO_ResetBits() funktioniert wie erwartet.

von Johnny B. (johnnyb)


Lesenswert?

es_gibt_nur_bloede_fragen schrieb:
> Kann ich bei einem STM32 MCU einen Pin als open drain bidirektional
> verwenden?

Das sollte eigentlich bei fast allen Mikrocontrollern gehen, denn das 
braucht man noch oft bei softwaremässig implementierter Kommunikation 
zur Kollisionsdetektion CSMA/CD.
https://de.wikipedia.org/wiki/Carrier_Sense_Multiple_Access/Collision_Detection

von es_gibt_nur_bloede_fragen (Gast)


Lesenswert?

Hat sich erledigt, das funktioniert, war ein anderer Programmierfehler 
der mit der Problematik nichts zu tun hat.

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.