Fórum témák
» Több friss téma |
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?
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.)
Ú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.
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...
Én a CD4010-et próbálnám meg a helyedben, ez kimondottan szintáttevésre használható és nem invertál.
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.
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.
Jót írogatunk itt egymás közt, de hol van a kérdező?
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?
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.
Köszönöm a tippet. Ezt mindenképpen ki fogom próbálni!
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.
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
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.
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.
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
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.
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
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
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
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.
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>
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
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?
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.
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.
Biztos működik... Én úgy használom ahogy mondtam. BTM112 és BTM222 modulok esetében is.
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...>> |
Bejelentkezés
Hirdetés |