Rpi GPIO napetostni nivoji

Maline, robidnice in podobni elektronski sadeži, ki imajo integriranega kar precej HW.

Moderator: tilz0R

Rpi GPIO napetostni nivoji

OdgovorNapisal/-a flomaster » 06 Mar 2019, 13:12

Napetostne nivoje Rpi sem raziskal z zbiranjem informacij na internetu. Ugotovil sem, da je glavno napajanje 5V, procesor in posledično vhodno-izhodni GPIO pini pa so na 3,3V. Najvišja napetost izhoda GPIO je 3,3V. Najvišja napetost, ki jo lahko pripeljemo na GPIO vhod je 3,3V. Če imam DIY senzor z LM358, ki je napajan s 5V in njegov izhod želim pripeljati na GPIO vhod, bi moral uporabiti vezje za prilagajanje napetostnih nivojev. Lahko uporabim uporov delilnik, lahko uporabim tranzistor, lahko uporabim serijski upor in napetost omejim s 3,3V zener diodo, možnosti je veliko. Z zbiranjem informacij sem našel tudi podatek, da je logična 0 za GPIO vhod 0-0,8V in logična 1 pa 1,3-3,3V, nekje sem zasledil, da je logična 1 še višje 1,8-3,3V.

Kateri podatki so pravi?
Kako prilagoditi napetostni nivo iz 5V na 3,3V, če je senzor narejen tako, da je lahko napajan s 3,3V ali 5V?
LM358 na izhodu ne zmore več kot 2V pri napajanju 3,3V in več kot 4V pri napajanju 5V.
Ali je v tem primeru najboljša napetostna prilagoditev kar serijski upor in zener dioda 3,3V?
Ali lahko uporabim samo serijski upor brez zener diode, saj so v GPIO zaščitne diode proti napajanju?
Senzor mora obvezno delati na napajanje 3,3V in 5V iz razloga, ker mora biti foolproof, ker so na GPIO napetosti 3,3V in 5V.
Kakšen upor na izhodu LM358 naj uporabim, da bo tok omejen dovolj in hkrati ne preveč?
Uporaba dodatnih tranzistorjev na izhodu odpade, ker mora biti senzor s čim manj elementi in čim bolj preprost.
flomaster
 
Prispevkov: 9
Pridružen: 22 Jan 2017, 13:23
Zahvalil se je: 0 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: Marholt
Število neizkoriščenih povabil: 0

Re: Rpi GPIO napetostni nivoji

OdgovorNapisal/-a Cloud » 06 Mar 2019, 13:43

Lahko uporabis OP Amp z rail to rail izhodom. Ce se bojis za napajanje lahko das 3.3V LDO, kateri prevaja tudi pri 3.3V.
Ce delas izdelek na nacin Instructables lahko das samo upor, vendar te diode na vhodih so namenjene samo za ESD zascito. In ponavadi so ESD pulzi kratki tako da das 3V3 zenner proti masi in 180Ohm upor.
Cloud
 
Prispevkov: 1583
Pridružen: 18 Mar 2015, 08:24
Kraj: Ljubljana
Zahvalil se je: 33 krat
Prejel zahvalo: 142 krat
Uporabnika povabil: BraneZ
Število neizkoriščenih povabil: 12

Re: Rpi GPIO napetostni nivoji

OdgovorNapisal/-a radix » 06 Mar 2019, 13:56

Če uporabljaš LM358 le kot napetostni primerjalnik, predlagam uporabo LM393. Ta ima izhod z odprtim kolektorjem, zato moraš na RPi vklopiti pull-up upore. S tem rešiš problem napetostnih nivojev brez dodatnih komponent.
radix
 
Prispevkov: 1234
Pridružen: 04 Feb 2015, 19:19
Kraj: Ljubljana
Zahvalil se je: 199 krat
Prejel zahvalo: 279 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 18


Re: Rpi GPIO napetostni nivoji

OdgovorNapisal/-a reber » 06 Mar 2019, 20:24

Upor in zener 3V3 bi moralo biti v redu. Predlagam, da dodaš še en upor, ki bo ščitil zener diodo, če bo kdo slučajno priključil 5V na izhod senzorja. GPIO vhod bi moral zdržat vsaj 3,6-3,7V, kar je napajalna napetost 3,3V + prag schottky diode, ki je na vsakem vhodu uC, oziroma procesorja, karkoli že je pravilno rečeno na raspberry-PI.

Po mojem mnenju ostajaš na varni meji s preprosto in ceneno rešitvijo, če na izhod tvojega LM358 daš upor kot je že predvideno, potem zener 3V3 proti GND in potem še en upor in iz tega upora je šele izhod. Upornost uporov ni kritična, lahko je v širokem razponu reda nekaj 100ohm.

LM393 z open collector izhodom je dobra rešitev, vendar zahteva zunanji pull-up upor na raspberry-PI oziroma je treba vklopiti interne pull-up upore na zeljenih pinih. Predvidevam, da je uporabljen LM358 z namenom, torej ni nujno da bi senzor deloval tudi z LM393 ali pa bi bilo treba spremeniti vezavo...

Če želiš imeti trotlziher, torej foolproof, potem mora tvoj senzor zdržat marsikatero neumnost, tudi napačno priključitev, boš dodal diodo na napajanje senzorja? če ja, potem boš imel napajanje manj kot 3,3V, posledično bo tudi izhod LM358 imel še nižjo izhodno napetost, ki je že lahko prenizka za doseganje praga 1,8V na raspberry-PI, potem ti ostane samo še napajanje na 5V, pač na 3,3V ne bo delalo, škode pa tudi ne bo, če bo kdo priključil na nižjo napetost.

Če je zahteva, da dela tudi na 3,3V, potem si diode na napajanju senzorja ne moreš privoščit, lahko pa zaščito narediš s P-ch FET tranzistorjem, ki mora biti obvezno logic level G, da se bo sploh vklopil na 3,3V ali pa vzameš kakšen FET, ki se uporablja za zaščito pri Li-ion celicah, ti imajo Vgsth še nižji. Mislim, da je čisto vseeno če izpustiš napajanje 3,3V, da se raje osredotočiš na 5V napajanje senzorja in poskrbiš, da bo napetost izhoda max 3,3V, pa na vezju narediš jumper, da lahko izklopiš zener, da bo uporabno še za 5V arduino, če bi bilo 3,3V premalo.

Kaj pa bo to za en senzor, nekaj kompliciranega najbrž ne, ker omenjaš čim manj elementov in čim bolj preprosto in LM358?
Sporočila sprejemam na e-mail objavljen na www.reber.si
Uporabniški avatar
reber
 
Prispevkov: 815
Pridružen: 17 Mar 2015, 20:30
Kraj: Bled
Zahvalil se je: 38 krat
Prejel zahvalo: 224 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 225


Vrni se na Malina

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost