CMD + K
Transistorer
NMOS og PMOS sett som styrte brytere. Inverter med pull-up/pull-down, og bruk av transistor som digital og analog bryter.
- 01Forklare NMOS og PMOS som styrte brytere og når hver av dem leder
- 02Tegne en NMOS-inverter med pull-up-motstand og forklare hvorfor V_ut ikke blir helt null når NMOS leder
- 03Skissere en CMOS-inverter og forklare hvorfor den nesten ikke trekker strøm i ro
- 04Sammenligne pull-up- og pull-down-motstand og velge riktig topologi for en gitt logisk funksjon
Transistoren som styrt bryter
Vi kan tegne en transistor på mange måter — som forsterker, som strømkilde, som ikke-lineær motstand. For digital design holder det å se den som en styrt bryter: en bryter mellom to terminaler, med en tredje terminal som styrer om bryteren er åpen eller lukket.
De to MOS-typene vi møter er nmos-transistor og pmos-transistor. En NMOS sitter typisk mellom utgangen og jord, og leder når gate-spenningen er høyere enn terskelspenningen VT. En PMOS sitter mellom VDD og utgangen, og leder når gate-spenningen er lavere enn VDD minus |VT|. De to er hverandres speilbilder, og det er ingen tilfeldighet at det er nettopp dette paret som dominerer digital elektronikk.
Selv om bryteren er enklere å tenke på, må vi huske at den ikke er perfekt. Når NMOS leder, har den en on-motstand R_on (typisk noen ohm til noen hundre ohm avhengig av størrelse). Når den er av, leker det fortsatt en bittel-strøm — i moderne prosesser ikke ubetydelig hvis du har milliarder av transistorer.
Når leder hvilken?
ƒnmos av/på sier at NMOS er på når vGS overstiger terskelspenningen. Source-en sitter normalt på jord, så vGS er bare gate-spenningen. Settes gate til V_DD (typisk 1.8 V, 3.3 V eller 5 V), leder NMOS-en kraftig.
ƒpmos av/på sier at PMOS leder når vGS ligger lavere enn -|VT|. PMOS har source-en på VDD, så vGS = vgate - VDD. For at v_GS skal bli tilstrekkelig negativ, må gate trekkes ned mot jord. Settes gate til 0 V, leder PMOS-en kraftig.
Kort sagt: NMOS leder når gate er høy, PMOS leder når gate er lav. De er hverandres komplement, og det er nettopp denne komplementariteten som CMOS-logikken hviler på.
En primitiv NMOS-inverter
Bygg den enkleste inverter-en av en NMOS og en motstand.
pull-up-motstand-motstanden går mellom V_DD og utgangen Q. NMOS-en går mellom Q og jord, med gate som inngang A.
Når A er lav, er NMOS av. Ingen strøm flyter gjennom motstanden, så Q sitter på V_DD — altså høy. Når A blir høy, leder NMOS, og Q trekkes ned mot jord gjennom NMOS sin on-motstand. Resultatet er ƒinverterutgang: utgangen er det motsatte av inngangen.
Men «trekkes ned mot jord» er ikke helt nøyaktig. Utgangen blir en spenningsdeler mellom pull-up og NMOS i on-tilstand: ƒon-motstand som spenningsdeler. Med Rpull = 10 kΩ og Ron = 100 Ω blir Vut ≈ VDD · 100/10100 ≈ 0.01·V_DD. Lavt nok til å regnes som logisk 0, men ikke null.
Det er to ulemper med denne topologien. For det første: når NMOS leder, går det konstant strøm fra VDD til jord gjennom motstanden — statisk effektforbruk proporsjonalt med VDD²/R. For det andre: jo høyere R, jo tregere blir overgangen fra lav til høy, fordi motstanden må lade kapasitansen på utgangsnoden.
Pull-up og pull-down i kombinasjon
pull-down-motstand-motstand er motsatt: en motstand mellom utgang og jord, som trekker utgangen lav når den styrte transistoren er av. Sammen med en PMOS som «pulls up» får du en speil-versjon av NMOS-inverter-en over.
I praksis bygges nesten all moderne digitalelektronikk uten motstander. I stedet bruker man en NMOS og en PMOS sammen — én som drar opp, én som drar ned, aldri begge samtidig.
CMOS-inverteren
cmos er det dominerende prinsippet. Plasser en PMOS mellom V_DD og Q, og en NMOS mellom Q og jord. Begge gate-ene kobles til inngangen A.
Når A er lav, leder PMOS og NMOS er av. Q dras opp til VDD — utgangen er høy, og det går ingen_ statisk strøm, fordi NMOS er åpen. Når A er høy, leder NMOS og PMOS er av. Q dras ned til jord, og igjen er det ingen statisk strøm gjennom transistor-paret.
Effektforbruket er dermed nesten utelukkende dynamisk: strøm flyter bare når utgangen bytter tilstand, fordi kapasitansen på utgangsnoden må lades eller utlades. Det er denne egenskapen som gjør CMOS attraktivt for prosessorer med milliarder av porter. ƒcmos-inverter er den minimale CMOS-byggeklossen, og NAND, NOR og resten bygges etter samme oppskrift med flere transistorer per inngang.
Det er likevel en hake: når Q er midt mellom VDD og 0 i en bytteperiode, leder både NMOS og PMOS et øyeblikk samtidig. Det gir en shoot-through_-strøm som er liten per bytte, men ganget med milliarder av brytinger per sekund i en CPU blir det reell varme.
Transistor som analog bryter og kontaktor
En NMOS kan også brukes som ren signalbryter for analoge spenninger. Gate styrer om signalet på source slipper igjennom til drain. Spennings-tap og forvrengning gjør at dette ikke er ideelt for store signaler, men for små analoge målinger fungerer det.
Når strømmen blir for stor for en liten transistor, må vi over på en kontaktor. Det er en elektromagnetisk bryter: en lav-spent spole tiltrekker en metallarm som lukker en høy-strøm-krets. Brukes for motorer, varmeelementer og generelt alt der hovedstrømmen ville stekt en transistor. Drives kontaktor-spolen via en logikk-utgang, må vi alltid sette en flyback-diode over spolen for å lede vekk den induktive spenningstoppen når kretsen brytes.
CMOS-NAND og CMOS-NOR
Inverteren er én transistor av hvert slag. NAND-en med to innganger er to NMOS i serie mot jord og to PMOS i parallell mot VDD. Utgangen blir lav bare når begge_ NMOS leder samtidig — altså når begge inngangene er høye. Det er per definisjon en NAND-port.
NOR-en er den motsatte topologien: to PMOS i serie mot V_DD, to NMOS i parallell mot jord. Utgangen blir høy bare når begge PMOS leder samtidig — altså når begge inngangene er lave. NAND er ofte å foretrekke fordi NMOS leder bedre enn PMOS av samme størrelse, så serie-NMOS-en i NAND har mindre forsinkelse enn serie-PMOS-en i NOR ville hatt.
Alle mer kompliserte porter (AOI, OAI, mux, vipper) bygges etter samme oppskrift: tegn pull-down-nettet av NMOS-er etter sumform, og lag pull-up-nettet av PMOS-er som duale. Bytt serie mot parallell, parallell mot serie. Da blir nettene alltid komplementære, og kretsen bruker null statisk effekt.
Mikrokontroller-pinner i praksis
En vanlig GPIO-pin på en mikrokontroller er en CMOS-port med begge transistorene tilgjengelige. Du kan konfigurere pinnen som «push-pull» (begge styrt aktivt, både opp og ned), «open-drain» (bare NMOS, og en ekstern pull-up motstand bestemmer høy-nivået), eller som ren inngang (begge transistorer av, men en justerbar intern pull-up eller pull-down kan slås på).
Open-drain er praktisk når flere kretser deler en signallinje — som i I²C-bussen. Hvilken som helst kan trekke linjen lav, men ingen kan tvinge den høy. Det betyr at vi unngår kortslutninger hvis to enheter snakker samtidig; verste fall blir signalet bare «lav».
Det store bildet
NMOS og PMOS som komplementære, styrte brytere er hele basisen for moderne digitalelektronikk. Med pull-up- og pull-down-motstand kan vi bygge primitive invertere som virker, men forbruker strøm. Bytter vi motstanden med en transistor av motsatt type, får vi CMOS — som bruker strøm bare når noe faktisk endrer seg. NAND og NOR bygges etter samme oppskrift med to transistorer av hvert slag, og hele moderne digitalelektronikk hviler på den enkle ideen om komplementære brytere. Det er teknologisk omtrent like nær gratis brytning som vi kommer i en fysisk verden.
Tenker du «styrt bryter» når du ser en transistor i et kretsskjema, kommer du svært langt. Detaljene om V_T, on-motstand og lekkasje er nyanser du henter inn etter behov, men hovedfortellingen — gate styrer om bryteren leder eller ikke — er den samme uansett om transistoren sitter i en mikroprosessor med milliarder av søsken eller i en enkelt LED-driver på et hobbykort.