3.8. Nivåomvandling

Ett GPIO-stift på kameran driver ungefär 3,3 V när det är högt. En enhet på andra sidan kan köra på 5 V (äldre mikrokontroller, många sensorkort) eller 1,8 V (nyare sensorer, vissa chip-till-chip-bussar). Att koppla ihop de två direkt är ibland säkert och ibland förödande; nivåomvandling är den krets som tillförlitligt överbryggar glappet.

3.8.1. Varför direkt drivning över spänningsnivåer kan skada ett stift

Varje chips I/O-platta har ett par inbyggda skyddsdioder: en från stiftet till jord, en från stiftet till chipets matningsskena. De finns där för att absorbera elektrostatisk urladdning (ESD) – en kort högspänningsspik från statisk elektricitet som kan träffa ett stift när kortet hanteras. En person som har gått över en matta kan bära på flera kilovolt statisk laddning; att röra vid fel stift överför den laddningen till chipet på nanosekunder. Den övre skyddsdioden framspänningssätts och leder bort pulsen säkert till matningsskenan innan den når transistorerna inuti chipet.

När en 5 V-signal läggs kontinuerligt på ett 3,3 V-stift som inte är 5 V-tolerant, leder den övre skyddsdioden för evigt. Dioderna är dimensionerade för korta ESD-pulser, inte för stationär ström; matningsskenan börjar stiga över 3,3 V, dioden hettas upp, och antingen stiftet eller den inbyggda spänningsregulatorn går sönder.

5 V-toleranta stift använder ett annat ingångssteg – den övre dioden går till en högre skena eller saknas – så att lägga på 5 V är ofarligt. Huruvida ett korts stift är 5 V-toleranta varierar mellan kort; kontrollera snabbreferensen för OpenMV Cam.

Den andra riktningen har sitt eget problem. Ett 3,3 V GPIO-stift som driver högt ger ~3,3 V på ledningen. En 5 V-mottagare som behöver 0.7 × Vcc för att känna igen högt har sin tröskel vid 3,5 V; 3,3 V kan läsas som lågt eller som tvetydigt. Även utan skada fungerar signalen inte tillförlitligt.

En nivåomvandlare löser båda riktningarna.

3.8.2. N-MOSFET:en som en strömställare

Kretsarna nedan använder en enda N-kanals MOSFET. Den har tre stift – gate, drain och source – och beter sig som en elektriskt styrd strömställare.

Styringången är spänningen mellan gate och source, skriven Vgs (gate-till-source-spänning):

Vgs = (gate voltage) - (source voltage)

MOSFET:en bryr sig om denna skillnad, inte om den absoluta spänningen på något av stiften ensamt. Dess beteende följer av Vgs:

  • När Vgs ligger över MOSFET:ens tröskelspänning (vanligtvis runt 1 V för en småsignal-logiknivåkomponent), slås transistorn och ström flödar fritt från drain till source.

  • När Vgs är vid eller under 0, slås transistorn av och nästan ingen ström flödar från drain till source.

Drain-source-banan är den kopplade strömbanan; Vgs öppnar eller stänger den strömställaren.

En N-MOSFET har också en kroppsdiod mellan drain och source som leder när drain dras under source med mer än ~0,6 V. Dioden är en bieffekt av tillverkningen; den dubbelriktade omvandlaren nedan använder den med avsikt.

3.8.2.1. Kopplingsregler

En N-MOSFET är inte en symmetrisk treterminalskomponent. Kroppsdioden pekar från source (anod) till drain (katod), och Vgs är det som styr kanalen. Två regler följer av detta och måste hålla för varje N-MOSFET-strömställarkrets:

  • Source går till den lägre spänningen; drain går till den högre. Med drain på den högre skenan är kroppsdioden backspänd och gör ingenting. Byt plats på dem och kroppsdioden är framspänd hela tiden: ström flödar från den nu-högre source genom kroppsdioden till den nu-lägre drain oavsett vad gate gör. MOSFET:en slutar vara en strömställare – den läcker kontinuerligt, signalen kan inte stängas av, och komponenten överhettas och går ofta sönder.

  • Gate binds till source-sidans spänningsskena. Att hålla gate på den skena som source vilar på i viloläge gör Vgs = 0 i tomgång, väl under tröskeln; MOSFET:en förblir säkert avstängd tills något antingen driver gate över source (envägskretsen nedan) eller drar source under gate (den dubbelriktade kretsen). Låt gate flyta någon annanstans och avstängt läge blir odefinierat – brus, läckage eller strökapacitans kan driva Vgs över tröskeln och slå på MOSFET:en slumpmässigt.

Att bryta mot någon av reglerna förvandlar nivåomvandlaren till en läckande, opålitlig bana. Båda omvandlarkretsarna nedan följer dessa regler: source på den lägre sidan, drain på den högre, gate bunden till eller driven från source-sidans skena.

3.8.3. Enväg 3,3 V → 5 V

Den enklaste nivåomvandlaren skjuter en enkelriktad signal från kamerans GPIO in i en 5 V-ingång. En enda N-MOSFET plus två motstånd gör jobbet.

En N-kanals MOSFET kopplad som en inverterare. 3,3 V GPIO-stiftet driver gate; source går till jord; drain dras upp till 5 V genom 10 kΩ; drain används också som 5 V-utgången.

En N-MOSFET nivåomvandlar (och inverterar) en 3,3 V-signal till en 5 V-utgång.

När GPIO:n driver högt (3,3 V på gate) ligger Vgs över tröskeln och MOSFET:en slås på; drain dras ned till ~0 V. När GPIO:n driver lågt (0 V på gate) är MOSFET:en av och uppdragningsmotståndet på 10 kΩ för drain till 5 V.

Utgången är inversen av ingången. Programvaran kan vända tillbaka signalen (skriv 0 för ”5 V-utgång hög”), eller kaskadkoppla två steg för att få en icke-inverterad signal till dubbla komponentantalet.

3.8.4. Dubbelriktad med en N-MOSFET

För en ledning som måste kunna drivas från endera sidan – en delad buss där vilken ände som helst kan dra ledningen låg – är standardkretsen en enda N-MOSFET per ledning, med ett uppdragningsmotstånd till varje sidas matning.

En dubbelriktad N-MOSFET-nivåomvandlare. MOSFET:en överbryggar en 3,3 V signalledning till vänster och en 5 V signalledning till höger; gate ansluts till 3,3 V-matningen, source ansluts till 3,3 V- signalen, drain till 5 V-signalen; varje signal- ledning har sitt eget uppdragningsmotstånd till sin matning.

En enda N-MOSFET överbryggar en 3,3 V- och en 5 V-ledning; varje sida har sitt eget uppdragningsmotstånd.

Gate är bunden till 3,3 V-matningen, så MOSFET:ens beteende beror på vilken sida som driver:

  • Båda sidorna i tomgång. Source ligger på 3,3 V via det vänstra uppdragningsmotståndet; gate ligger på 3,3 V; Vgs = 0; MOSFET:en är av. 5 V-sidan flyter till 5 V via det högra uppdragningsmotståndet. Båda sidorna läser högt.

  • 3,3 V-sidan drar lågt. Source faller till 0 V; Vgs stiger över tröskeln; MOSFET:en slås på och leder source-till-drain. 5 V-sidan dras lågt genom transistorn.

  • 5 V-sidan drar lågt. Drain faller till 0 V; MOSFET:ens kroppsdiod (drain till source) blir framspänd och leder; source (3,3 V-sidan) dras ned till ungefär 0,6 V. Vgs överstiger då tröskeln och MOSFET:en slås helt på, vilket drar båda sidorna låga.

BSS138 är standard-N-MOSFET:en för detta mönster; småsignal-logiknivå-N-MOSFET:ar med liknande gate-tröskelspänningar beter sig alla på samma sätt här.