Forum: Mikrocontroller und Digitale Elektronik xmega pin als open-drain / open collector definieren


von xmega Neuling (Gast)


Lesenswert?

Hallo,

ich will einen Pin als Open-Drain schalten. D.h. bei einer logischen 1 
soll dieser PIN auf GND durschalten und bei einer logischen 0 hochohmig 
sein.

Wenn ich jetzt einen Pin folgendermaßen deklariere

z.B. Pin4 an Port C

PORTC.PIN4CTRL = PORT_OPC_WIREDANDPULL_gc;


reicht das aus. Macht diese Zeile schon das, was ich vorhabe??

Danke für Antworten.

von Alex (Gast)


Lesenswert?

Ja, probier's doch aus!
Der Pullup-Widerstand, der da eingeschaltet wird, ist für schnelle 
Signale mit ca. 60kOhm aber sehr hochohmig.

von Alex (Gast)


Lesenswert?

UUps, sehe gerade, dass es anders herum ist: 1 ist hochohmig, 0 ist GND.
Das Bit zu invertieren sollte aber zu bewerkstelligen sein.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Der Pin wird GND ausgeben, wenn eine 0 im Portregister steht und wird 
freigegeben, wenn eine 1 im Portregister steht. Um Deine Anforderung zu 
erfüllen, musst Du zusätzlich das INVEN im PINxCTRL setzen. Dadurch 
kehrt sich aber auch das Eingangssignal um, falls Du es an dem 
betreffenden Pin nutzen willst.

: Bearbeitet durch User
von xmega Neuling (Gast)


Lesenswert?

Jo,

danke für die Antworten. Es ist wohl besser die Logik im Programm zu 
invertieren als den Pin.

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.