Start Elkretssimulator


Open Collector = Open Drain

Vad är en open collector eller en open drain -utgång?

Om man tittar i datablad eller läser på någon websida så pratas det ibland om att krets X eller mikrokontroller Y har open drain eller open collektor -utgångar. För en mikrokontroller går det ibland aktivera denna egenskap. Vad innebär det?



För det första är open collector och open drain från funktions -perspektiv samma sak. Skillnaden är att kretsen i ena fallet har en BJT (vanlig transistor) på utgången och i det andra fallet en FET på utgången.

Nedan beskrivet handlar om open collector eftersom det är lite onödigt göra exakt samma skisser fast med en FET på utgången.



Konceptet bakom open collektor

Detta innebär helt enkelt att utgången på kretsen är "halvfärdig". Du måste koppla färdigt den själv annars kommer den inte fungera som du vill.

Vi kan t.ex. titta på kretsen 74LS07 som är en krets som ger oss open collector -utgångar.

Om vi tittar hur varje utgång är konstruerad här, så ser vi att den är "halvfärdig".



Tillbaka till modellen på utgången. För att få saker att fungera här måste vi alltså bygga färdigt utgången med en pull-up-resistor.



Vad är poängen med open collector -utgång?

- Med en open collector -utgång kan du själv välja signalnivån på utgången. Du kan göra en pullup till 12 volt eller till 3.3 volt eller vilken spänning du vill.
- Open collector -utgångarna kan inom vissa gränser ibland användas som drivsteg, med bortåt 30 mA i sänkström. Det räcker till 2 eller 3 lysdioder utan problem.
- Det går att bygga bussar där logiken "flyttas ut i systemet".



- Med ovanstående som illustration kan man även lyfta fram möjligheten att koppla ihop utgångarna på open collector -kretsar. Ovanstående kretsar skapar en logisk OR mellan kretsarna. Dvs, en "omvänd logisk or" - tänk dig att det finns inverterare före transistorn. Det räcker att någon av kretsarna är är noll, så blir signalen noll.



Titta ovan. Utgångstransistorn på krets 2 får in en signal på basen och blir ledande så sänker den utgången. Krets 1 ligger och flyter och struntar i signalnivåerna.

Med vanliga logikkretsar har dataflödet alltid en riktning. Man kan inte köra in "1" på en utgång som är "0" på en vanlig krets. Eventuellt går kretsen sönder eller så händer andra mysko saker. Men open collector -utgångar är detta möjligt.

Man kan alltså summera det med att open collector -utgångar ger ett antal nya möjligheter hur man kan använda kretsen. Priset för detta är att man måste komma ihåg att det behövs en extern pullup.

Vilket värde på pullup -motståndet ska användas?

Hur exakt denna vetenskap måste bli beror ju såklart på vad som kopplas in och hur mycket ström denna drar samt vilken hastighet signalen har.

Det hjälper att hålla i minnet att pullup -resistorn skall hantera 2 situationer. I den första situationen är kretsens utgång öppen, dvs "hög", och då skall resistorn driva det som är inkopplat.



I den andra situationen är kretsens utgång påslagen, dvs "låg", och då måste den ström som går genom pullup -resistorn kunna hanteras av kretsen. Om kretsen är en buffer/driver med open collector -utgång kanske den kan hantera 20 mA utan problem. Om spänningen är 5 volt då kommer den troligtvis fixa 220Ω pullup. Vid 220Ω flyter det (5-0.7)/220 = 20 mA genom resistorn och kretsen. Jag räknar 0.7 volt spänningsfall över kretsen. Förutsatt att det som är inkopplat på signallinan inte drar någon ström.



Nu kanske inte alla open collector -utgångar fixar 20 mA. Det är något som får kollas upp. Vissa fixar 40 mA, andra 10 mA. Den kan variera.

Om man bara skall koppla ihop kretsar med varandra fungerar en pullup på kanske 1KΩ- 10KΩ. I sådana situationer är värdet inte så viktigt. Skall utgången från open collector driva en lysdiod behöver man kanske 10 mA ström. Om kretsen tål 10 mA (vilket är det första man ska kolla) så kan ju räkna lite. Om spänningen är 5 volt så behöver pullup vara på (5-0.7)/0.01A=430Ω

Å ena sidan kommer en låg resistans på pullup skapa effektförluster och värme. Å andra sidan kommer ett högt värde minska drivförmågan. Ett högt värde kan också skapa en långsammare stigtid på signalen vilket kan ha stor betydelse om hastigheten på signalen är hög. Speciellt gäller detta om lasten är kapacitiv och alltså måste "laddas upp" för att stiga till "1". Kombinationen hög hastighet och kapacitiv last kan göra dessa saker svåra att räkna ut. Men i vanliga hobbyprojekt blir sällan busshastigheter så höga att det är något att tänka på.

Open collector i simulatorn

Klicka här för att studera kretsen i simulatorn. Prova med att klicka sänk utgång med eller utan en pull-up inkopplad. Detta är precis hur en open collector eller open drain fungerar. Utan pull up fungerar inte kretsen som den ska, eller hur?