Hallo, das ist bestimmt ne absolute Noob Frage, aber hat der Mega 8(Mega16) Open Collector Pins? irgendwie werde ich auchdem Datenblatt nicht schlau.. Danke schonmal.
collector schon mal gar nicht, da CMOS - wenn, dann wäre es open drain. Falls du das wirklich brauchst - eine einfache Diode 1N4148 (Katode zum Portpin) macht aus einem Gegentakt-Ausgang einen fast vollwertigen open-xx Ausgang. Fast, da der L-Pegel um die Durchlassspannung der Diode höher liegt. Ob das stört, hängt von den nachfolgenden Komponenten und der Betriebsspannung ab. Zur Not Schottky-Dioden einsetzen.
Hi kann man auch über das DDRx-Register simulieren. PORTx stellt man auf 0 und schaltet dann den Port über das DDRx-Register auf Low bzw. hochohmig. Matthias
Das einzige was man beachten muss, egal ob beim Verfahren mit der Diode oder der Lösung in Software: Man darf an einen solchen Ausgang keine höhere Spannung anlegen als die Versorgungsspannung des AVR, da sonst die Schutzdioden im AVR überlastet werden. Wenn man einen echten Open-Kollektor-Ausgang benötigt, nimmt man am aller einfachsten einen kleinen Mosfet, z.B. BS170 (TO-92, nicht für unter 5 Volt geeignet) oder BS130 (SOT-23, SMD, aber "schöner" Mosfet). Wer keinen Mosfet mag, kann auch einen normalen NPN-Transistor inkl. zweier Widerstände verwenden. Wenn er dann noch schnell schalten soll, benötigt der Transistor über den Basis-Widerstand noch einen Beschleunigungskondensator. Wenn den Transistor auch richtig lahm schalten darf, kommt man auch nur mit einem Widerstand aus.
@Michael "Wenn man einen echten Open-Kollektor-Ausgang benötigt..." Wenn Du das Portbit konstant auf 0 setzt und nur das DDR-Bit umschaltest, dann ist das "echt open drain", echter gehts nicht. Der obere FET ist immer gesperrt. In alten CMOS-Logikschaltungen hat man früher oft den 74HC125 genommen, um open-drain Ausgänge nach diesem Prinzip zu realisieren und in CPLDs macht man es genau so. Peter
Hi er hat schon recht. Die Schutzdiode ist trotz gesperrtem FET immer noch da. An einem "echten Open-Drain" Ausgang kann man einen LED-Strang an +12V betreiben. Das wird mit der DDRx Methode nicht funktionieren. Matthias
"An einem "echten Open-Drain" Ausgang kann man einen LED-Strang an +12V betreiben." Völlig falsch !!! Der 74LS03 ist ein "echter" open-collector und kann nur 5V ab. Der 74LS26 ist schaltungsmäßig identisch mit dem 74LS03, kann aber 15V ab. Welche Spannung der Ausgangstransistor abkann ist also kein Merkmal der open-collector Schaltung. Und Schutzdioden sind auch in den ULNxxx drin. Peter
Vielen danke euch allen, aber in meinem Fall brauche ich eine PWM Open Collector oder Drain, das geht mit den genannten TRicks ja nicht. Sven
@peter dannegger: Auch wenn der obere Fet gesperrt ist, hast Du immer noch eine Diode vom Ausgang nach VCC, also eine Beschaltung des Open-Kollektor- bzw. Open-Drain-Ausgang. Ich habe kein Datenblatt von so einem antiken 74LS03 da, aber im Datablatt zum 74HC03 von Philips kann man nachlesen: "The 74HC/HCT03 have open-drain N-transistor outputs, which are not clamped by a diode connected to VCC. In the OFF-state, i.e. when one input is LOW, the output may be pulled to any voltage between GND and VOmax. This allows the device to be used as a LOW-to-HIGH or HIGH-to-LOW level shifter." VOmax ist übrigens mit 7 Volt angegeben. Deine Aussage: > Wenn Du das Portbit konstant auf 0 setzt und nur das DDR-Bit > umschaltest, dann ist das "echt open drain", echter gehts nicht. ist so nicht richtig. Denn ein "echt open drain" ist überhaupt nicht beschaltet, auch nicht mit einer Diode nach VCC. Die Diode stört in vielen Fällen bei Open-Drain- bzw. Open-Kollektor-Anwendungen, wie z.B. Level-Shifter oder Schaltaufgaben. Und: > Welche Spannung der Ausgangstransistor abkann ist also kein > Merkmal der open-collector Schaltung. Das hat hier noch nie jemand behauptet. Es ging und geht ausschliesslich darum, dass Du mit der Softwarelösung oder der Beschaltung mit einer externen Diode in Reihe an die eingebaute Diode im AVR denken musst und nicht von einem reinem Open-Kollektor-Ausgang ausgehen darfst. VCC am AVR kann ja auch kleiner als 5 Volt sein und Du kannst trotzdem keine Spannungen wegschalten die höher als VCC ist weil über die Diode ein Strom nach VCC fliessen würde!
@peter dannegger: > In alten CMOS-Logikschaltungen hat man früher oft den 74HC125 > genommen, um open-drain Ausgänge nach diesem Prinzip zu > realisieren Der 74HC125 hat keine Open-Drain-Augänge sondern 3-State-Ausgänge. 3-State und Open-Drain sind zwei völlig verschiedene Sachen, auch wenn sie sich in bestimmten Anwendungsfällen ähnlich verhalten. Im AVR hast Du 3-State-Ausgänge und keine Open-Drain-Ausgänge. Kleiner, aber sehr entscheidender Unterschied.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.