3.8. Tasonsiirto¶
Kameran GPIO-nasta ajaa noin 3,3 V:n jännitettä ollessaan korkealla. Toisella puolella oleva laite voi toimia 5 V:n (vanhemmat mikro-ohjaimet, monet sensorikortit) tai 1,8 V:n (uudemmat sensorit, jotkin sirujen väliset väylät) jännitteellä. Näiden kahden kytkeminen suoraan toisiinsa on joskus turvallista ja joskus tuhoisaa; tasonsiirto on piiri, joka sillottaa eron luotettavasti.
3.8.1. Miksi suora eri jännitteen ajo voi vahingoittaa nastaa¶
Jokaisen sirun I/O-padilla on pari sisäänrakennettuja suojadiodeja: yksi nastasta maahan ja yksi nastasta sirun käyttöjännitekiskoon. Ne ovat siellä vaimentamassa staattista purkausta (ESD) – lyhyttä, korkeajännitteistä piikkiä staattisesta sähköstä, joka voi osua nastaan korttia käsiteltäessä. Maton yli kävellyt henkilö voi kantaa useita kilovoltteja staattista sähköä; väärään nastaan koskettaminen siirtää tämän varauksen siruun nanosekunneissa. Ylempi suojadiodi siirtyy myötäsuuntaan ja ohjaa pulssin turvallisesti käyttöjännitekiskoon ennen kuin se saavuttaa sirun sisällä olevat transistorit.
Kun 5 V:n signaali kytketään jatkuvasti 3,3 V:n nastaan, joka ei ole 5 V:tä sietävä, ylempi suojadiodi johtaa ikuisesti. Diodit on mitoitettu lyhyille ESD-pulsseille, ei pysyvälle virralle; käyttöjännitekisko alkaa nousta yli 3,3 V:n, diodi kuumenee, ja joko nasta tai sirulla oleva jännitesäädin pettää.
5 V:tä sietävät nastat käyttävät erilaista sisääntuloastetta – ylempi diodi menee korkeampaan kiskoon tai puuttuu kokonaan – joten 5 V:n syöttäminen on vaaratonta. Se, ovatko kortin nastat 5 V:tä sietäviä, vaihtelee kortin mukaan; tarkista OpenMV Cam -pikaopas.
Toisella suunnalla on oma ongelmansa. Korkealle ajava 3,3 V:n GPIO tuottaa johtimeen ~3,3 V. 5 V:n vastaanotin, joka tarvitsee 0.7 × Vcc tunnistaakseen korkean, näkee kynnysarvonsa 3,5 V:ssa; 3,3 V voi tulkkiutua matalaksi tai epäselväksi. Vaikka mitään vauriota ei syntyisi, signaali ei toimi luotettavasti.
Tasonsiirrin ratkaisee molemmat suunnat.
3.8.2. N-MOSFET kytkimenä¶
Alla olevat piirit käyttävät yhtä N-kanavaista MOSFETiä. Siinä on kolme nastaa – hila (gate), nielu (drain) ja lähde (source) – ja se toimii sähköisesti ohjattuna kytkimenä.
Ohjaussisääntulo on jännite hilan ja lähteen välillä, merkitään Vgs (hila-lähde-jännite):
Vgs = (gate voltage) - (source voltage)
MOSFETiä kiinnostaa tämä erotus, ei kummankaan nastan absoluuttinen jännite yksinään. Sen toiminta seuraa Vgs:n arvosta:
Kun
Vgson yli MOSFETin kynnysjännitteen (tyypillisesti noin 1 V pienisignaalisella logiikkatason komponentilla), transistori kytkeytyy päälle ja virta kulkee vapaasti nielusta lähteeseen.Kun
Vgson 0 tai sen alle, transistori kytkeytyy pois päältä eikä juuri lainkaan virtaa kulje nielusta lähteeseen.
Nielu-lähde-polku on kytketty virtapolku; Vgs avaa tai sulkee tämän kytkimen.
N-MOSFETissä on myös runkodiodi (body diode) nielun ja lähteen välillä, joka johtaa, kun nielu vedetään lähdettä alemmas yli ~0,6 V:lla. Diodi on valmistuksen sivuvaikutus; alla oleva kaksisuuntainen siirrin käyttää sitä tarkoituksella.
3.8.2.1. Kytkentäsäännöt¶
N-MOSFET ei ole symmetrinen kolminapainen komponentti. Runkodiodi osoittaa lähteestä (anodi) nieluun (katodi), ja Vgs ohjaa kanavaa. Tästä seuraa kaksi sääntöä, joiden on pädettävä jokaisessa N-MOSFET-kytkinpiirissä:
Lähde menee alempaan jännitteeseen; nielu korkeampaan. Kun nielu on korkeammassa kiskossa, runkodiodi on estosuunnassa eikä tee mitään. Vaihda ne keskenään, ja runkodiodi on koko ajan myötäsuunnassa: virta kulkee nyt korkeammasta lähteestä runkodiodin läpi nyt matalampaan nieluun riippumatta siitä, mitä hila tekee. MOSFET lakkaa olemasta kytkin – se vuotaa jatkuvasti, signaalia ei voi kytkeä pois päältä, ja komponentti usein ylikuumenee ja pettää.
Hila sidotaan lähteen jännitekiskoon. Hilan pitäminen siinä kiskossa, jossa lähde lepää, tekee
Vgs = 0lepotilassa, hyvin alle kynnyksen; MOSFET pysyy tukevasti pois päältä, kunnes jokin joko ajaa hilan lähteen yläpuolelle (alla oleva yksisuuntainen piiri) tai vetää lähteen hilan alapuolelle (kaksisuuntainen piiri). Jätä hila kellumaan jonnekin muualle, ja off-tila lakkaa olemasta määritelty – kohina, vuoto tai hajakapasitanssi voivat ajelehduttaaVgs:n yli kynnyksen ja kytkeä MOSFETin satunnaisesti päälle.
Kumman tahansa säännön kääntäminen muuttaa tasonsiirtimen vuotavaksi, epäluotettavaksi poluksi. Molemmat alla olevat siirrinpiirit noudattavat näitä sääntöjä: lähde alemmalla puolella, nielu korkeammalla, hila sidottuna lähteen kiskoon tai ajettuna siitä.
3.8.3. Yksisuuntainen 3,3 V → 5 V¶
Yksinkertaisin tasonsiirrin työntää yksisuuntaisen signaalin kameran GPIO:sta 5 V:n sisääntuloon. Yksi N-MOSFET ja kaksi vastusta hoitavat homman.
N-MOSFET siirtää tasoa (ja invertoi) 3,3 V:n signaalin 5 V:n ulostuloksi.¶
Kun GPIO ajaa korkealle (3,3 V hilassa), Vgs on yli kynnyksen ja MOSFET kytkeytyy päälle; nielu vedetään alas ~0 V:iin. Kun GPIO ajaa matalalle (0 V hilassa), MOSFET on pois päältä ja 10 kΩ:n ylösvetovastus nostaa nielun 5 V:iin.
Ulostulo on sisääntulon käänteinen. Ohjelmisto voi kääntää signaalin takaisin (kirjoita 0 tarkoittamaan ”5 V ulostulo korkealla”), tai kaksi astetta voidaan ketjuttaa kääntämättömän signaalin saamiseksi kaksinkertaisella komponenttimäärällä.
3.8.4. Kaksisuuntainen yhdellä N-MOSFETillä¶
Linjalle, jota on voitava ajaa kummalta tahansa puolelta – jaettu väylä, jossa kumpi tahansa pää voi vetää linjan alas – vakiopiiri on yksi N-MOSFET linjaa kohden, jossa on yksi ylösvetovastus kummankin puolen käyttöjännitteeseen.
Yksi N-MOSFET sillottaa 3,3 V:n ja 5 V:n linjan; kummallakin puolella on oma ylösvetovastuksensa.¶
Hila on sidottu 3,3 V:n käyttöjännitteeseen, joten MOSFETin toiminta riippuu siitä, kumpi puoli ajaa:
Molemmat puolet lepotilassa. Lähde lepää 3,3 V:ssa vasemman ylösvetovastuksen kautta; hila on 3,3 V:ssa;
Vgs = 0; MOSFET on pois päältä. 5 V:n puoli kelluu 5 V:iin oikean ylösvetovastuksen kautta. Molemmat puolet lukevat korkealla.3,3 V:n puoli vetää matalalle. Lähde putoaa 0 V:iin;
Vgsnousee yli kynnyksen; MOSFET kytkeytyy päälle ja johtaa lähteestä nieluun. 5 V:n puoli vedetään matalalle transistorin kautta.5 V:n puoli vetää matalalle. Nielu putoaa 0 V:iin; MOSFETin runkodiodi (nielusta lähteeseen) siirtyy myötäsuuntaan ja johtaa; lähde (3,3 V:n puoli) vedetään alas noin 0,6 V:iin. Tällöin
Vgsylittää kynnyksen ja MOSFET kytkeytyy täysin päälle, jolloin molemmat puolet menevät matalalle.
BSS138 on vakiomuotoinen N-MOSFET tähän kaavaan; pienisignaaliset logiikkatason N-MOSFETit, joilla on samankaltaiset hila-kynnysjännitteet, käyttäytyvät tässä kaikki samalla tavalla.