Drobnicky

Drobničky 003 – Dvojitý emitorový sledovač

Když nevím, co se někde děje, tak tam vrazím LEDku s rezistorem (a pak se divím, proč to nefunguje). Anebo to můžu udělat líp…

… ona LEDka s rezistorem bere asi 20 mA, při 5 Voltech, to je jako pulldown o velikosti  5V/20 mA = 250 Ω. A to takovou I2C sběrnici, kde se používají pullupy 4k7 prakticky natvrdo uzemní a zabije. To už jsem tam mohl vrazit dvacítku hřebík a nebyl by to podstatný rozdíl. A ani jiné obvody, které něco přenášejí, takovou zátěž často nenesou zrovna dobře. Prostě to moc žere a ovlivňuje mi to výsledky až hrůza. Osciloskop nebo aspoň měřák se vstupním odporem v řádu megaOhmů by byl rozhodně lepší, ale kde jich tolik sebrat, když potřebuju sledovat řadu signálů naráz?

Tak si přečtu  Petra Kubáče a dostanu zajímavý nápad:

emitorový sledovač … ve své podstatě je to zesilovač proudu. Nepatrným proudem do báze spínáme veliký proud v emitoru.

Vstupní odpor je navíc (výstupní odpor * zesílení tranzistoru) – no to přesně potřebuju.

Popadnu teda „libovolný NPN tranzistor“, například BC547A, nebo jakýkoli jiný malý, který mám po ruce a zkusím to s ním. LEDka svítí jak divá a odběr z měřeného místa neměřitelný. WOW. Tak přidám druhý tranzistor, tentokrát PNP, a zapojím to „vzhůru nohama“ proti VCC místo proti zemi a mám i krásnou detekci, že je signál dole (obrázek 2).

A pokud je signál uprostřed, tak obě LEDky tak slabě žíří a já vím, že jsem v pásmu nikoho, šedé zóně, někde, kde jsem asi nechtěl být, zatímco pokud mi tam běží PWM, tak svítí obě dvě docela jasně. Paráda.


Vezmu teda lepší měřák, dám si potenciometr mezi napětí a zem (obr.1) a změřím odběr přesněji – při 0 V tam teče asi 30 μA, při 2,5 V asi tak 0 μA a při 5 V teče obráceně asi 50 μA, (holt je jedna ledka červená, druhá modrá, tím je na nich jiný úbytek napětí a omezovací rezistory taky mají různé). Takže přidáním tranzistoru jsem se dostal z odporu 250Ω na nějakých 100-160 kΩ. To je asi tak tisíckát lepší a ani zmlsaná sběrnice to nijak nepocítí.

Ale stejně nejsem zcela spokojen a říkám si, co to ještě vylepšit. Takhle LEDky svítí naplno jen na příslušných krajích a ke středu postupně slábnou – má to svůj půvab, když hledám, jestli ten signál  není „nějaký slabý“, ale pokud to tam chci instalovat na stálo, jako pevný výstup, dal bych možná přednost tomu, aby to pořádně svítilo i při „ještě přijatelném“ signálu.

Tak tam místo LEDky s nelineární charakteristikou vrazím pořádný rezistor, třeba takových 10 kΩ a na něj  pověsím další emitorový sledovač a ještě ho oddělím předřadným rezistorem taky 10 kΩ , ať má emitorový zesilovač pořádný odpor k zesilování (EDIT: což je vlastně zbytečné, protože ten druhý stupeň má sám odpor jako hrom a tak se nějakých 10k vůbec neprojeví). A skutečně, teď měřák bere jen nějaké 0-3 μA v celém rozsahu, tedy efektivní odpor je kolem 1,6 MΩ a přítom mi LEDky krásně svítí v širokém rozsahu (modrá (logická nula) v rozsahu 0-2,2V (a do 2,7 ještě slabě žhne), zatímco červená to bere naplno od 5 V do 2,0 V (a ještě nějak žhne do 1,6 V). Takže chybový stav teď místo skoro zhasnutých LEDek indikuje naopak rozsvícení obou naráz (viz obrázek 3).

Zároveň si povšimněme, že druhý stupeň je opřený o opačný pól než první, jinak by se nám nůžky ještě více rozevřely ( pokud prohodíme druhé stupně mezi sebou a prohodíme v nich LEDky (aby modrá zase byla logická nula), tak máme plynulou indikaci asi tak 0-0,8V jasně, pak tmavne do 1,6 V, pak asi do 2,8 V nic, načež se začne rozsvěcet druhá a od 3,5 V do 5 V jasně svítí)


Pokud někoho zajímá trochu víc teorie, ať si projde Kubáče celého, tam je spousta zajímavých věcí 🙂

Nicméně orientačně při otevřeném tranzistoru je úbytek napětí na báze-emitor asi tak 0,7 V (teda jak kdy a jak kde a taky záleží na proudu a vůbec), na LEDkách je to hodně různé, červená bere tak 1,5-2 V, modrá 2,5-3,7 V, když se to posčítá, tak zhruba dostaneme ty hranice, odkud to začíná svítit, případně odkud to svítí pořádně v tom prvním zapojení (u PNP a tudíž i modré to pochopitelně počítáme od Vcc dolů).

U druhého případu je potřeba si povšimnout, že když se první stupeň otevře, tak se druhý stupeň naopak zavře. Jde si s tím různě pohrát, případně oba druhé stupně pověsit na jeden první a tím získávat různé prahové úrovně pro rozsvěcení a zhasínání a také získat  buď plynulou regulaci, nebo naopak docela ostré přechody. Přitom pořád máme velmi vysoký vstupní odpor a patrně zvládáme i docela vysoké frekvence. (Jak píše Kubáč: „Tranzistor je schopen, díky popsané zpětné vazbě, pracovat až téměř do své mezní frekvence – u BC337 až do 250 MHz teoreticky – prakticky bych nad 50 MHz nešel (s tranzistorem za korunu je to i tak dost)“. A klasické Arduino Uno běží na 16MHz, přičemž digitalWrite() se dokáže vyšplhat někam k 94kHz a I2C běží až na 400 kHz – tady asi  nenarazíme 🙂  )

Takže si každý může poladit indikátor, jak se mu pro daný účel hodí nejlíp.

Já si s tím zatím jak vidno pořád ještě hraju, ale až budu s výsledkem spokojen, tak se to pokusím z Totemu převést na SMD a co nejmenší místo a pokud se to nějak podaří, poreportuju.