Sida 1 av 1
Open drain, hur?
Postat: 4 januari 2023, 20:42:10
av sommarlov
Vill dubbelkolla hur Open Drain fungerar, jag har ett interface till en värmepump där den utgång jag är intresserad av att läsa är Open Drain. Som jag förstått OD är den fladdrande ut vid hög signal och nära noll om det är låg signal, och att man ska (i mitt fall då jag är enda "lyssnaren" på denna) dra den hög via pull-up. Men då jag i nästa steg har en optokopplare blir väl signalen inverterad? Därav min transistor i kretsen nedan. Har jag förstått det hela rätt?
kicad_2023-01-04_20-41-26.png
Re: Open drain, hur?
Postat: 4 januari 2023, 20:52:47
av danei
Varför inte koppla optokopplaren direkt till utgången utan transistorn?
Re: Open drain, hur?
Postat: 4 januari 2023, 20:58:45
av sommarlov
Det är här jag är osäker på hur OD fungerar. Om ..
* conn_01 = 0 så kommer den inre transistorn att dra utgången låg?
* conn_01 = 1 så kommer den inre transistorn att dra utgången flytande?
Om det är så det fungerar så kommer min pull-up göra att det blir rätt och jag behöver inte transistorn... ?
Jag vart fundersam om det blir inverterad signal, men om ovan stämmer följer signalen till optkopplaren vad conn_01 säger.
Re: Open drain, hur?
Postat: 4 januari 2023, 21:48:04
av Icecap
Tänk på open-drain som en brytare där ena ändan är kopplar till GND och den andra är ditt inkopplingspunkt.
Det enda signal du får ut är en 0 eller frånkopplat.
Med ett pull-up motstånd får du tydliga 0 och 1.
Om du vill att optokopplaren ska aktiveras när utgången går till 0 ska du koppla den mellan VDD och utgången, såklart med strömbegränsermotstånd i serie.
Re: Open drain, hur?
Postat: 5 januari 2023, 09:18:42
av sommarlov
Tack!
Re: Open drain, hur?
Postat: 6 januari 2023, 06:05:46
av Mindmapper
sommarlov skrev: ↑4 januari 2023, 20:42:10
Vill dubbelkolla hur Open Drain fungerar, jag har ett interface till en värmepump där den utgång jag är intresserad av att läsa är Open Drain. Som jag förstått OD är den fladdrande ut vid hög signal och nära noll om det är låg signal, och att man ska (i mitt fall då jag är enda "lyssnaren" på denna) dra den hög via pull-up. Men då jag i nästa steg har en optokopplare blir väl signalen inverterad? Därav min transistor i kretsen nedan. Har jag förstått det hela rätt?
kicad_2023-01-04_20-41-26.png
Du har redan fått förklaring till funktionen så jag går inte in på den. Jag kommenterar din konstruktion med transistorn BC546. När transistorn leder blir strömmen genom resistorn. I = U/R = 5 / 1000 = 5mA (Jag bortser ifrån att du får ett litet spänningsfall över transistorn (ca 0,1V).
När transistorn inte leder går strömmen genom optokopplarens LED istället. IL2 har ett spänningsfall av max 1,65 V. Nu leder den inte fullt så det blir lite mindre. Vi drar till med 1,5V. Kvar över resistorn blir alltså 3,5V. Strömmen genom resistorn blir alltså 3,5V / 1000 = 3,5 mA. Samma ström går igenom optokopplaren. 3,5 mA blir väldigt lite till optokopplaren. Nästan på gränsen till att den kommer att slå till riktigt. Om det räcker eller inte beror på hur mycket du vill belasta optokopplaren.
Du får också en konstig strömförbrukning. 5mA när du inte har signal till optokopplaren. 3,5 mA när du har signal till optokopplaren.
Kopplar du optokopplaren mellan transistorn och resistorn, dvs i serie med dessa. Då kommer strömmen att bli 0mA genom kretsen utan signal och 3,5mA med signal.
Jag skulle ökat strömmen genom LED i optokopplaren till 5 eller 10 mA. Men eftersom jag inte vet vad du belastar med är det svårt att säga om det är bra eller inte.
Re: Open drain, hur?
Postat: 6 januari 2023, 12:28:57
av sommarlov
Uppskattas att du kollat, kommer göra justeringar. Tack!
Re: Open drain, hur?
Postat: 6 januari 2023, 15:34:23
av Mindmapper
Vi kan gå vidare med baskretsen eftersom du verkar vilja ta åt dig och få en bättre förståelse.
Kopplingen som du har transistorn i kallas GE-koppling. Den används mest pga att den har en bra förstärkning både av spänning och ström. Du utnyttjar inte den förmågan.
Strömmen in på basen är beroende av 1 kohms resistorn. Normalt sett så är späningsfallet över basen Ube (spänning bas-emitter) ca 0,6 V. Strömmen Ib blir då Ib = 4,4 / 1000 = 4,4mA I princip lika stor som strömmen på kollektorn Ic. Du använder alltså transistorns möjlighet att förstärka väldigt dåligt. Utan problem klarar den transistorn du använder en förstärkning på 100 ggr. Strömmen på basen skulle alltså kunna vara 100ggr mindre på basen än den ström du vill ha på kollektorn.
Du skulle utan problem kunna ha 10 kohm i baskretsen. Ib blir då 0,44mA. Förstärkt 100ggr skulle du kunna ta ut en kollektorström på 44mA.
Du har alltså marginaler att öka resistorn i baskretsen ännu mera.
Re: Open drain, hur?
Postat: 6 januari 2023, 19:56:40
av sommarlov
Tack för att du tar dig tid.
För många år sedan läste jag 4-årig teknisk (el), men de kunskaperna är inte purfärska. Jag kommer dock ihåg hFE.
De elgrejer jag gör har så mycket utrymme att ta ut svängarna att jag aldrig behöver fundera på strömanvändning etc, använder mest transistorer som levelshifters 5v<->3.3v då jag bygger allt i mitt hus med esp8266.
Re: Open drain, hur?
Postat: 7 januari 2023, 06:11:46
av Mindmapper
Kul! Har också börjat lite med ESP8266 och hemautomation, men det har inte blivit så mycket än.