Fórum témák

» Több friss téma
Fórum » 5V <-> 3,3V interfész
Lapozás: OK   1 / 1
(#) Pepu hozzászólása Júl 11, 2009 /
 
Sziasztok!

Egy olyan problémám lenne, hogy egy 3,3V-ról üzemelő GPS-et (LS20031) szeretnék illeszteni egy 5V-on működő PIC mikrokontrollerhez (a kommunikációnak kétirányúnak kell lennie).

Sajnos a GPS UART-ja nem 5V toleráns, illetve további perifériák (LCD stb.) miatt, egy alacsonyabb feszültségen üzemelő PIC használata sem jelent megoldást.

A lehető legegyszerűbben, a legkevesebb plusz alkatrész felhasználásával szeretném megoldani ezt a problémát és ehhez várnám ez ötleteket!

Erre a célra lehet használni a MAX232, illetve MAX323 típusú IC-ket?

Több oldalon a 3,3V-os tápfeszültségű, de 5V toleráns bufferek használatát ajánlják, mint legegyszerűbb megoldást. Szerintetek is ez a legjárhatóbb út?
(#) potyo válasza Pepu hozzászólására (») Júl 11, 2009 /
 
Igen, az a legjárhatóbb út. 5->3,3V irányban egyszerű feszültségosztó, 3,3->5V irányban pedig pl. 74HCT125 állandóra kötött engedélyező lábakkal. Vagy bármelyik CMOS kapu jó, aminek van T betű a nevében, és be lehet úgy kötni, hogy bufferként működjön (pl. OR kapu egyik bemenete fixen nullára, AND kapu egyik bemenete fixen 1-re, stb.)
(#) Amarton válasza Pepu hozzászólására (») Júl 11, 2009 /
 
Úgy értem, hogy csak a GPS és a PIC közötti kommunikációs vonalnak kell 3,3V-nak lennie. Ha jól értem, akkor elég egyszerű a helyzet. A 3,3V-os bejövő kommunikációt a PIC még magas szintnek érzékeli, szóval itt nincs gond. A PIC viszont 5V-on adna a GPS modulnak. Ide csak be kell rakni egy zenert 3,3V-ost, esetleg egy nagyon kicsi előtét ellenállást 15 Ohm a zener védelmére. Gondolom a GPS modulnak saját 3,3V-os tápja van és nem kell foglalkozni az 5V-ról 3,3-at adó stabkockával.
(#) potyo válasza Amarton hozzászólására (») Júl 11, 2009 /
 
Nem épp 15 ohm, amit oda kell rakni, hanem inkább úgy 80-100! 1,6V/20mA=80ohm. De felesleges ekkora árammal terhelni a PIC kimenetét, így simán jó oda 270 ohmos ellenállás is.

A 3,3V-ot nem érzékeli a PIC magasnak, legalábbis meg kell nézni, hogy milyen bemeneti puffere van az RX lábon. 16F887-nek ST puffere van, az csak a 4V felettit érzékeli biztosan magas szintnek. Ha TTL puffer van, az jó, akkor már 2V is magasnak számít. De nem emlékszem, hogy lenne olyan PIC, aminek a hardveres RX bemenete TTL pufferrel rendelkezne...
(#) paul64 válasza Pepu hozzászólására (») Júl 11, 2009 /
 
Én a CD4010-et próbálnám meg a helyedben, ez kimondottan szintáttevésre használható és nem invertál.
(#) Hp41C válasza paul64 hozzászólására (») Júl 12, 2009 /
 
Szia!

PIC-GPS: ellenállásosztó: 2K - 3K.
GPS-PIC: Mivel a legtöbb PIC 5V táp mellett min. 4V feszültséget kíván a Rxd vételi vonalon, két tranzisztoros inverter fokozatot ajánlok. Mindkét tranzisztor földelt emitteres kapcsolásban Rb ~ 10k, Rc ~ 1k - 4.7k. A kollektor ellenállásokat a pic 5V tápjára kötve, bőven teljesül a 4V igény. A sebesség nem nagy követelmény, BC182 (vagy valami hasonló) tranzisztor bőven elég.
(#) vizor válasza Pepu hozzászólására (») Júl 12, 2009 /
 
Kifejezetten 5V <-> 3V transceiver IC-k: 74LVC4245A, 74ALVC164245. Adatlapjuk megtalálható a http://www.datasheetcatalog.com/-on. Beszerezhetőségéről nincs infóm.
(#) paul64 válasza Hp41C hozzászólására (») Júl 12, 2009 /
 
Jót írogatunk itt egymás közt, de hol van a kérdező?
(#) Pepu válasza paul64 hozzászólására (») Júl 12, 2009 /
 
Köszönöm az ötleteket!

potyo-nak teljesen igaza van, sajnos a legtöbb PIC USART bemenete Schmitt Trigger-es, így a közvetlen összekötés GPS->PIC irányban nem járható út, muszáj valamilyen szintkonvertálás.

Én is kutakodtam még egy kicsit, és a MicroChip oldalán találtam egy nagyon jó 5V<->3,3V Tippek-Trükkök doksit!

Ebben szerintem szinte az összes alap megoldás össze van foglalva:
3,3V -> 5V irány:
TIP #6 (MOSFET tranzisztoros): Valószínűleg a legegyszerűbb megoldás, azonban az invertálás miatt nekem sajnos nem jöhet szóba. (A kétfokozatos kialakításnál pedig sokkal egyszerűbb a következő megoldás.)
TIP #7 (Diódás eltolás): Nekem jelen pillanatban ez a legszimpatikusabb: Kevés alkatrész/hely igény, egyszerű kialakítás. Ki mit gondol erről a megoldásról? Mik lehetnek a hátrányai?

5V -> 3,3V irány:
A legegyszerűbb megoldás minden bizonnyal a feszültségosztó (TIP #12). Ezzel szemben többen írtátok a soros ellenállás+Zener diódás kialakítást. Miben nyújtana többet az a kapcsolás? (Esetleg a véletlenül (f)elmászó 5V-os tápfesz esetén se jutna túl nagy feszültség a 3V-os eszköz bemenetére?)

Őszintén szólva én is jobban szeretem az integrált áramkörös megoldásokat, azonban sajnos nem találtam olyan IC-t, amiben ne lenne túl sok buffer (nekem 1-2 bőven elég lenne) és mind a két irányban egyszerre használható lenne...

Végül még egy kérdés (tudom nem épp erről szól a topic):
Lenne egy tisztán 3,3V tápfesz igényű áramköröm, amit egy 3,7V-os LiPo aksiról szeretnék meghajtani. A kérdés, hogy miként tudnám én azt a 3,3V-ot elővarázsolni a 3,7V-ból? Én egy szimpla soros Schottky dióda bekötésére gondoltam, olyan 0,5V-os feszültség eséssel, mivel az áramkör maximum akár 500mA-t is felvehet. Létezhet erre jobb megoldás?
(#) Hp41C válasza Pepu hozzászólására (») Júl 13, 2009 /
 
Szia!

Ha IC-s megoldást keresel, használj open-collektoros kimenetű dupla komparátort: LM393 5V-os táppal. A referencia feszültség egy közös osztóval beálítható ~ 1.4V-ra (ellenállás osztó vagy ellenállás és 2 db dióda).
pic-gps: Nem invertáló komparátor, kimenete 3.3V-ra felhúzva.
gps-pic: Nem invertáló komparátor, kimenete 5.0V-ra felhúzva.
(#) Pepu válasza Hp41C hozzászólására (») Júl 13, 2009 /
 
Köszönöm a tippet. Ezt mindenképpen ki fogom próbálni!
(#) potyo válasza Pepu hozzászólására (») Júl 13, 2009 /
 
Komparátor helyett nyitott drain-es CMOS-t is használhatsz, és hogy ne legyen túl nagy, 74LVC1G07 jelzésűek jók lennének, RET-nél lehet is kapni ilyeneket (már persze ha smd megfelel). A táp mehet mindkettőnél 3,3V-ról, de amelyik a bemenetén az 5V-ot kapja, az akár 5V-ról is mehet. A kimeneteket meg a megfelelő szintre ellenállással felhúzni. Ettől egyszerűbb már csak az a chip lehet, amiben minden belül megvan, csak azt kérdés, hol lehet beszerezni. Ebből is létezik 2 kaput tartalmazó változat, 74LVC2G07 néven, de RET-nél nem láttam.
(#) nagyan válasza Pepu hozzászólására (») Aug 25, 2009 /
 
Sziasztok!

Ismeritek a MikroElektronika céget? C, Pascal, Basic forditójuk van PIC-hez, egy csomó fejlesztőpanel, etc, nem fizetnek érte, úgyhogy nem reklámozom. Nekem is tőlük van fejlesztőeszközöm.

A lényeg, hogy van nekik egy MCC/SD kártya proto paneljük. Azért érdekes, mert ezek a memóriakártyák 3,3V-ról mennek, nem 5 V toleránsak.

Ők így csinálták meg az illesztést:

MMC/SD card schmatic

És ez működik minden PIC-el. Szóval sima ellenállásosztó, visszafelé pedig direktben.

Remélem segitettem.

András
(#) SWORDFISH válasza Pepu hozzászólására (») Aug 25, 2009 /
 
Itt a megoldás kétirányú kommunikációra. 1 db BSS128-as és 2 db 10k ellenállással és bónuszként egy philips-es cik ugyanerről.
(#) bbatka válasza nagyan hozzászólására (») Aug 25, 2009 /
 
A feszültség osztó GND felőli R tagjával párhuzamosan szoktak kapcsolni egy néhány pikofarádos kondit a felfutás kompenzációhoz. Persze az értékét az ellenállás függvényében változtatni kell. Úgy emlékszem az EPE valamelyik számában olvastam róla.
(#) SWORDFISH hozzászólása Aug 25, 2009 /
 
Egyébként építettem már ilyet én is. (Ez az első mart panelem)
Gyorsan rámértem oszcilloszkóppal. Nyomógombot használtam valószínű azért sok a tranziens. De szépen működik mindkét irányban.

A fene jpg-ben kifakulnak a scope bmp képei
(#) Hp41C válasza nagyan hozzászólására (») Aug 28, 2009 /
 
Szia!

Az 5V -ról működő pic kontrollerek smidt triggeres bemenetein a minimális magas szint 0.8*Vdd = 0.8*5 = 4.00V. A 3.3 V-ról működő eszköz nem fogja tudni az ilyen bemenetet meghajtani....

Szia.
(#) nagyan válasza Hp41C hozzászólására (») Aug 28, 2009 /
 
Oksi, értem amit mondasz. Megnéztem és az SPI-s portok ST-sek, tényleg csak 4V fölött érzékeli magasnak.
De akkor a kapcsolás amit küldtem, az miért működik minden PIC-el aminek van SPI-je? Tuti hogy működik, mert nekem is van olyan próbapanelom. És semmilyen extra áramkör nincs még az útban, egy az egyben rámegy a port lábára.



Üdv, András
(#) Hp41C válasza nagyan hozzászólására (») Aug 28, 2009 /
 
Szia!

Lehet, hogy nem a beépített MSSI-t használják fel, hanem más portbiten, programozottan valósítját meg a kommunikációt. Egy TTL bufferrel rendelkező bemenetet meg tud hajtani (PORTB). Nem mindegy, hogy a pic melyik lábra megy a kártya adatkimenete....

Szia
(#) nagyan válasza Hp41C hozzászólására (») Aug 28, 2009 /
 
De azt használja. A hardveres SPI-t.
Már egy adatrögzítőt építettem ezzel, simán az SPI hardveres pin-re kötöttem rá, megy.
Lehet megkérdezem a céget, hogy miért működik a megoldásuk.

András
(#) potyo válasza nagyan hozzászólására (») Aug 28, 2009 /
 
Az adatlapban azt írják, hogy 0,8Vdd már biztosan magas szintnek lesz érzékelve. Hogy a valóságban mennyitől kezdődik a magas szint, azt csak egyenkénti méréssel lehet megmondani, de szinte biztosan lejjebb (talán egy chipen belül az összes lábnál egyforma, de még ez sem biztos). Szóval lehet, hogy a valóságban már 3V-nál is magasnak lesz a láb érzékelve, de erre nem lenne szabad semmit sem építeni. Érdemes lenne egy ilyen mérést csinálni egyszer, hogy mennyinél billen a láb.
(#) Hp41C válasza nagyan hozzászólására (») Aug 29, 2009 /
 
Szia!

Nem szeretnék kötekedni, de ez a terv nagyon bizonytalannak tűnik.
Az okok:
1- A pic minimálisan előírt Vih előírása 0.8*Vdd (a pic-é 5.00V) azaz 4.00V. Az alacsonyabb feszültséget alacsony szintnek tekintheti. Ráadásul az adatvezetéken a dinamikusan kialakuló szintet kell figyelembe venni. Az exponenciális felfutás miatt a pic bemenete a legmagasabb értéket nem is éri el, amikor már újra alacsony szintre hajtja meg a kimenet.
2- A memóriakártya kimenő feszültségének minimuma 0.75* Vdd (Vdd itt a kártyáé azaz 3.6 V) azaz 2.7V.
3- A vezekékeket inaktív szintre húzzák ellenállással, hogy, ha nincs bedugva kártya, akkor is megfelelő szintet érzékeljen a kontroller. Ha ezek az ellenállások az 5V-ra mennek, akkor a pic jól érzékelheti a magas szinteket, de a terv megsérti a kártya max. feszültség előírását Vdd+0,3 (a kártyáé azaz 3.6 V) azaz 3.9V. Ha a 3.6V-ra mennek, akkor a magas szint nem éri el a pic minimálisan előírt Vih (4.0V) értékét.

Lehet, hogy egy bizonyos kontrollerrel, egy bizonyos típusú kártyával megy, de a terv nem biztosítja azt, hogy minden körülmény között, minden kártyával működjön. A rendszerben a legrosszabb paraméterekkel rendelkező esetre nincs tartalék. A meg nem engedett feszültség tönkreteheti a memóriakártyát.

Egy lehetséges megoldást ne zárjunk ki, lehet, hogy a pic tápfeszültsége mégsem 5.00 V. Ha a kártya kiadja a 3.6V-os magas szintet (ellenállás), akkor a pic <=4.5V tápfeszültségnél már jól veszi a magas szintet.
Az új kontrollerek között vannak olyan típusok, melyekben belső egységgel állítják elő a 3.3V-os feszültséget a magnak. Ezek a kontrollerek ugyan 5V-ot kapnak a táp lábukon, de a számításoknál a belső stabilizátor feszültségét kell figyelembe venni.

Milyen típusú kontrollert használnak fel?

Szia>
(#) Hp41C válasza vizor hozzászólására (») Aug 29, 2009 /
 
Esetleg a 74LVC1T45 pontosan erre a feladatra tervezett áramkör. Ugyanakkora tok, mint a 74LVC1G07, de mindkét szinten aktív a kimenete (nem open collector-os).
(#) nagyan válasza Hp41C hozzászólására (») Aug 29, 2009 /
 
Szia!

Látom senki sem érti, én sem, hogy miért megy a dolog. Az MMC/SD modult, aminek a kapcsolását belinkeltem, egy fejlesztőrendszerhez adják kiegészítő modulnak. Ez a fejlesztőrendszer egy próbapanelből és egy szoftveres környezetből áll. A fejlesztésekhez a próbapanelt használtam, ahhoz csatlakoztattam az MMC modult. Mikor sínen volt a dolog, megépítettem a kapcsolást és ahhoz kapcsoltam ezt az MMC modult. A fejlesztőrendszer is 5V-ot ad a PIC-nek, de én a saját áramkörömben tuti biztos hogy 5V-ot adtam egy 7805-össel a 18F4523-as PIC-nek.
Kipróbáltam, működik 16F887-el is, többet nem próbáltam, de minden 12, 16, 18-as sorozatú PIC-et támogat a rendszer (DIP8 - DIP40 tokozásút), csak a legújabb 4 számjegyű 16-osokat nem.

Tényleg írok a cégnek, hogy mondjon már valamit, mitől működik a megoldásuk, megírom ide a válaszukat.

András
(#) lidi válasza nagyan hozzászólására (») Jún 2, 2010 /
 
Nem válaszoltak még ?
(#) balogpepe hozzászólása Jún 13, 2011 /
 
Sziasztok!

Egy 3,3V-os Bluetooth modult szeretnék összekötni egy 5V-os piccel UART-on keresztül. Az a kérésem, hogy a fentiekben ismertetett BSS128-al megvalósított interfészt módosítás nélkül alkalmazhatom UART esetén is?
(#) borvendeg válasza balogpepe hozzászólására (») Jún 13, 2011 /
 
Lusta vagyok visszakeresni, hogy mi az az áramkör amit kérdeztél. De én úgy oldottam meg az illesztést, hogy PIC TX lábára egy ellenállás osztó (mondjuk 10k-10k) az RX-re meg mehet a 3.3V ez így tökéletesen működik.
Szerintem felesleges bonyolítani, kivéve néhány speciális esetet.
(#) balogpepe válasza borvendeg hozzászólására (») Jún 13, 2011 /
 
Szia!

Köszönöm a gyors választ! Erről lenne szó: Bővebben: Link. Ha jól értelmezem a többiek hozzászólását, a pic 4V-tól értelmezi a magas szintet. Ezért gondoltam, hogy a 3,3V nem elég direktben.
(#) borvendeg válasza balogpepe hozzászólására (») Jún 13, 2011 /
 
Biztos működik... Én úgy használom ahogy mondtam. BTM112 és BTM222 modulok esetében is.
(#) Hp41C válasza balogpepe hozzászólására (») Jún 26, 2011 /
 
Szia!

Az RX bemenet működése nem garantált 5V táp mellett 3.3V -os meghajtóról.
- 16F88x adatlapja szerint az RC7 / RX láb aszinkron EUSART módban ST bemenet (ld. DS41291F-page 17)
- Az ST típusú bemenet minimális magas szintje 2.00 < Vdd < 5.5V között 0.8 * Vdd (ld. DS41291F-page 251), ami Vdd = 5.00V mellett 4.00V.

Ugyan ez a helyzet a 16F62x, 18F2525 - 4620, a dsPIC306011- 6014, 16F193x családoknál is - szúrópróba szerűen most ellenőritem.

A BSS128 -es megoldás működik itt is - egyébként egy kétirányú szintillesztő megoldás az I2C busz kétirányú vezetékeihez...>>
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem