Fórum témák

» Több friss téma
Fórum » Analóg elektronika (Pic kontra TTL/CMOS) alapok
Lapozás: OK   1 / 1
(#) Richie78 hozzászólása Okt 12, 2008 /
 
Helló!

Digitális elektronikába kezdek belejönni, de az analóghoz annyira nem értek. (még)

Néhány alapvető kérdésem lenne!

Lehet-e egy áramkörön belül közvetlenül TTL és/vagy CMOS IC-ket vegyesen használni. Pic(TTL) Számlálók, Inverterek (CMOS) Memóriák (TTL)
Azt tudom, hogy egy TTL Kimenetre közvetlenül beköthetek egy TTL Bemenetet! Ugyanezt megtehetem CMOS IC-kel is!

Konkrétum: Egy Pic PortA-ra bekötöttem egy CMOS számlálót. Adatot nem olvasott be róla. PortB-ről ugyanezt tapasztaltam. Viszont mikor a CMOS kimeneteit 10K-val földre húztam, és úgy kötöttem PortB-re akkor már tudtam PortB-ről adatot fogadni! Miért van ez?

Mi a különbség PortA és PortB között? (PortA: TTL-, PortB: Smith Trigger bemenet)

Egy Pic PortC (TTL) kimenetét Buszként szeretném használni. Olvastam, hogy egy Pic kimenetét nem szabad terhelni. Szükségem volna arra, hogy a fent említett kimenetet 1-16 (TTL) bemenetre kössek. Közvetlenül köthetem-e (1 TTL Out --> 16 TTL In) vagy kell valamiféle erősítő (Tranzisztoros) közéjük.

Ha kapcsolóüzemű tápról veszem le az 5V-ot a vegyes áramkörömhöz(TTL/CMOS), kell-e minden IC táp-föld közé 100nf kondi, vagy elég csak a Pic-nek?

Négyszögjelgenerátor? Ha mindegy milyen frekvenciára van szükségem, csak gyors legyen, (nem Pichez) haszálhatok-e 5 db CMOS Invertert egymásba kötve Órajelgenerátorként?

Lehet-e a fent említett kérdéseimre szájbarágós választ kapjak?

Egyenlőre több kérdés nem jut eszembe!

A válaszokat előre is köszönöm!

Richie
(#) icserny válasza Richie78 hozzászólására (») Okt 12, 2008 /
 
Idézet:
„Mi a különbség PortA és PortB között? (PortA: TTL-, PortB: Smith Trigger bemenet)”

A TTL jelszinteket szabványosították (hogy a különböző IC-k összekapcsolhatól lehenek). Az alacsony szint 0 - 0.8V között, a magas szint 2.2-5V között. A közbenső tartomány "tiltott", a két logikai szint között gyorsan kell átváltani.

Néha azonban olyan jeleket kell fogandi, amelyek a fönti értelemben véve nem szabványosak. Pl.lassan emelkedő jel. Ilyenkor jó szolgálatot tesz egy Schmitt triggeres bemenet, ami "diszkrétté" teszi a jelet, s hiszterézissel rendelkezve, megakadályozza a bemenet "pergését". Tehát pl. 2.2 V-nál H-ba billen, s csak akkor billen L-be ha a bemenő jel 1 V alá csökken.

Idézet:
„Olvastam, hogy egy Pic kimenetét nem szabad terhelni.”

Az adatlap pontosan megírja, hogy melyik kimenentet mekkora árammal lehet terhelni. Ha nem elég, akkor kell "erősítés". Pl. 74LS245 vagy 74LS244 (előbbi kétirányú) buszmeghajtó áramkörökkel.
Idézet:

kell-e minden IC táp-föld közé 100nf kondi”


Nagyon ajánlatos! Nem érdemes megvárni, amíg "kell"...
S nem a tápegység, hanem a TTL IC-k belső működése miatt: a kimenet átkapcsolásakor egy pillanatra megugrik az áramfelvétel.
(#) kobold válasza Richie78 hozzászólására (») Okt 12, 2008 /
 
Jó sok kérdés
A TTL-CMOS családok között a be- és kimeneti feszültségszinteket kell leginkább vesézgetni, ha az ember össze akarja őket kötni. Ha megnézed pl. ezen az oldalon a rajzot, akkor láthatod, hogy egy CMOS bemenet magas szintje 2.5 ... 3.7 V között van (vagyis legalább ekkora feszültség kell a kapunak ahhoz, hogy magas értéknek vegye), míg egy TTL kimenet magas szintje névlegesen 2 ... 3.3 V, persze, lehet magasabb (mindig az adatlap a döntő). Ez azt jelenti, hogy kritikus esetben a TTL kimenet olyan feszültséget ad magasként, ami a CMOS-nak még nem magas szint, de már nem is alacsony, azaz nem határozható meg egyértelműen, hogyan fog viselkedni a bemeneti kapu.
Érdemes a lapon lévő linkeket végignézni, és átolvasgatni.

Megmondhattad volna, milyen számlálót nem sikerült kezelned, és hogyan is volt bekötve. A gond szerintem ott volt, hogy valamit nem vettél figyelembe a PIC, vagy a számláló specifikációjánál. A TTL vs. Schmitt-trigger téma azt jelenti, hogy előbbinél a TTL specifikációnak megfelelően történik a bemenet állítása, utóbbinál pedig a belső hardver egy kicsit eltolja a kapcsolási értékeket: ha alacsonyról vált magasra, akkor megemeli a billenési küszöböt, visszafelé pedig lecsökkenti. Ez elég jó zavarvédelmet biztosít a bemenet esetleges "szőrözésével" szemben, továbbá lassú, vagy kicsit hullámos bemeneti feszültségnél is határozott kapcsolást fog eredményezni, kevesebb lesz az esélye annak, hogy véletlenül oda-vissza billeg a bemeneti bit értéke.

A PIC egyik nagyon jó tulajdonsága, hogy 20 mA áramot tud egy lábon nyelni vagy kiadni (jóllehet a teljes portra nem biztos, hogy annyit engedélyeznek, mint a bitek száma * 20 mA). Egy TTL bemenet alacsonyan tartásához a spec. szerint 1.6 mA áram kell, eszerint 25.6 mA kellene a 16-hoz, én ide már tennék egy tranzisztoros fokozatot. A magas szinttel nem volna baj, mert ott 40 uA-t ír a spec., vagyis egy PIC vonal névlegesen 500 TTL bemenetet is magasra tudna húzni.

A Vcc és Gnd közé a táplábakra tett hidegítő kondenzátort tekintheted kötelező érvényűnek, akármilyen tápod van. Nagyon sok gondtól megmenekülhetsz, ha ezt alapdolognak veszed és alkalmazod. Kapcsolóüzemű tápnál ferritgyűrűs fojtót is célszerű lehet alkalmazni a nagyfrekvenciás zavar csökkentésére, illetve a betápnál nem maradhat el egy nagyobb értékű (10 ... 470 uF, felvett áramtól függően) pufferkondi, meg egy kisebb (10 ... 100 nF) hidegítő sem (bár, az elemes tápot kivéve, ez is álatlánosan ajánlott).

Ha a PIC adatlapjában, az oszcillátorról szóló résznél ír lehetőséget külső órajeles meghajtásra, akkor akár a kontrollert is hajthatod az említett CMOS oszcillátorral, más jellegű órajelként természetesen simán alkalmazható. Kialakításánál Schmitt-triggeres fokozatokat célszerű alkalmazni, ezekkel nagyon szép, stabil négyszöged lesz, 50 % kitöltéssel. Inverteres, vagy NAND-kapus megoldásokat rengeteget találsz, szinte abból építhetsz, ami a kezedbe akad, sőt, ha kell a pontos frekvencia, kristállyal kiegészítve az is elérhető.

Még egy kis infó:
TTL-szintek
(#) Richie78 válasza icserny hozzászólására (») Okt 12, 2008 /
 
Először is köszönöm a gyors válaszokat, kezdem érteni a dolgot. Azt hiszem bajban leszek a megoldásokkal, hogy kiét fogadom el, de ez legyen egy későbbi probléma.

Eszerint PortA közvetlenül fogadhat TTL jeleket, míg PortB akár kevésbé érzékeny (szabványtól eltérő) jeleket is képes megkülönböztetni.

Szóval, ha jól értem, lehet keverni TTL - CMOS áramköröket, csak figyeljek a jelszintekre, a sebességre. (TTL gyorsan, CMOS lassan reagálhat)

A 74LS244 nagyon jó megoldásnak tűnik az adatlapja alapján, a busz minden bemenetét rákötöm, a kimenetek közvetlenül mennek tovább, és a G1-G2 földre húzom, és a jelek gond nélkül továbbítódnak céljaik felé!

A 100nf kondit a csatolt kép alapján képzelem el. Erre gondoltál?
(#) Richie78 válasza kobold hozzászólására (») Okt 12, 2008 /
 
Csatoltam a kapcsolást, amit szerettem volna megvalósítani. a 10K-s ellenállások nincsenek berajzolva a Buszra, de a linket megnézve értem, hogy miért nem tapasztaltam változást a PortB-n. Vagyis volt változás, csak a Pic nem tudott vele mit kezdeni.

Jelen esetben akkor zaj a segítségemre van, már ha nem károsítja az eszközöket, a kapcsolás valójában egy hardveres véletlenszám generátor.

A válaszodból felmerül bennem egy következő kérdés.
Idézet:
„Egy TTL bemenet alacsonyan tartásához a spec. szerint 1.6 mA áram kell”


A TTL bemenet alacsonyan tartása az az L szint, vagyis a 0V vagyis GND? A H szint +5V vagyis Táp! Persze névleges értékek! Ez most Pic-től független, szimpla TTL jelek!
De megnéztem néhány 74LSXXXX adatlapot és tényleg. Hogy lehet nagyobb áramfelvétele egy alacsony jelszintnek, és fordítva?

Circuit.jpg
    
(#) Ktulu válasza Richie78 hozzászólására (») Okt 12, 2008 /
 
A legegyszerubb veletlenszam generator a PIC, egy lebegve hagyott analog bemenete.
(#) potyo válasza Richie78 hozzászólására (») Okt 13, 2008 /
 
Idézet:
„Szóval, ha jól értem, lehet keverni TTL - CMOS áramköröket, csak figyeljek a jelszintekre, a sebességre. (TTL gyorsan, CMOS lassan reagálhat)”


Ha ez utóbbi igaz lenne, akkor manapság nem cmos technológiával készülnének a processzorok. Inkább arra figyelj, hogy a cmos kimenetek másként terhelhetőek, mint a a ttl kimenetek. A cmos szimmetrikus meghajtást biztosít (tehát ugyanakkora áramot tud adni és húzni a kimenetén), míg a TTL kimenete aszimmetrikus. A TTL igen tekintélyes áramot tud húzni (akár 100mA-t csúcsban), viszont adni csak nagyon keveset (max. néhány mA).

Ha CMOS kapunak kell fogadnia a TTL jelet, akkor használd a HCT sorozatú CMOS chipeket. A T betű azt jelenti a nevében, hogy TTL kompatibilis a bemenete.

Jól gondolod a kondenzátort. A lehető legközelebb a chip táplábaihoz kell elhelyezni, tehát az nem elég, hogy ahány chip, annyi kondenzátor.
(#) potyo válasza Richie78 hozzászólására (») Okt 13, 2008 /
 
Ha valóban így volt a kapcsolás, akkor itt valami más miatt nem tapasztaltál változást a PortB-n. A 4040 sajátmaga elég meredek és megfelelő szintű jelet tud szolgáltatni, ha csak a pic van rákötve.

Idézet:
„Hogy lehet nagyobb áramfelvétele egy alacsony jelszintnek, és fordítva?”


A TTL a tranzisztor-tranzisztor-logika rövidítése. A tranzisztor ezesetben a bipoláris tranzisztort jelenti. A bipoláris tranzisztor pedig áramvezérelt alkatrész. Namost ha áramvezérelt, akkor abból következik hogy valamekkora áramfelvétele eleve lesz a bemenetnek.

Ha megnézed egy TTL kapu alapelvét (Link), akkor látod, hogy ha a bemenetet alacsonyra húzod, akkor az áram a 4k7 ellenálláson és a baloldali tranziszotor bázis-emitter átmenetén keresztül folyik gnd felé. Vagyis az áram, amit el kell vezetned, az nagyjából 1mA. Ha viszont magas a bemenet, akkor nem te vezeted el a 4k7 áramát, hanem a jobboldali tranzisztor bázisába folyik be, vagyis az vezetni fog. Ám a baloldali tranzisztor inverz aktív üzembe kerül ekkor, amikoris kicsi az erősítése, de azért van neki valamekkora (nagyságrendileg 0,1). Ekkor a bemenetről az előbbi 1mA tizedét húzza, vagyis 100uA-t (nagyságrendileg).

Persze a valós TTL kapu nem ilyen egyszerű, de azt szépen szemlélteti, hogy miért folyik áram a TTL bemenetén, és miért nem azonos nagyságú magas és alacsony jelszintnél.

TTL kapunál van egy olyan jelenség is, hogy ha egy bemenetet lógni hagysz a levegőben, akkor a chip azt úgy érzi, mintha magas jelszint lenne a bemeneten. Ezt szintén jól lekövethető az előző ábrán.

Érdekes doksi, szép képekkel
(#) kobold válasza Richie78 hozzászólására (») Okt 13, 2008 /
 
Nem a legszerencsésebb ez a kapcsolás, mert közönséges invertereket használtál, az is előfordulhat, hogy a berezgés helyett lebegni fog minden bemeneted, így az inverter egyes kapui, és a számláló sem lát normális impulzusokat. Schmitt-triggeres fokozatot kellene inkább keresned, mint pl. a CD40106.
Véletlenszám-generálást valóban leginkább valami "fehér zaj" alapján szoktak csinálni, egy analóg bemeneten, de szoftveresen is lehet. Ennek az oldalnak a legalján egy álvéletlen generátor van (ismétlődni fog a sorozat, de kalkulálható gyakorisággal), a példaként mutatott rajz három adatregisztert igényel a PIC-ben, és kellő számú léptetési, összeadási műveletet.
(#) Richie78 válasza potyo hozzászólására (») Okt 14, 2008 /
 
Azt hiszem kezdem érteni. Itt aztán rengeteget lehet tanulni. Még 2 kérdés, és egyenlőre el leszek látva információval az itt megadott linkekkel.

Van-e gyakorlati különbség SMD és DIL között? Vagyis azt tudom, hogy mindkettő ugyan az, csak a tokozás és a mérete más, de a gyakorlatban (tapasztalat alapján) is ugyan az?

Ha legközelebb hasonló kérdéseim vannak, akkor "Csak cseverészek" típusú fórumot kell nyissak, ahol nem várok megoldást?

Nagyon köszönöm a segítségeteket!

Richie
(#) Richie78 válasza kobold hozzászólására (») Okt 14, 2008 /
 
Mindenképp hardveres megoldást szerettem volna csinálni, mert így nem veszek el órajelet a PIC-től, vagyis nem kell ezzel foglalkoznia, csak egyszerűen beolvas egy pillanatnyi értéket amikor szükséges. Külön egy Pic-et erre fenntartani, ami csak a véletlenszámot csinálja feleslegesnek találtam. De a 40106-al megoldódhat a probléma.
(#) icserny válasza Richie78 hozzászólására (») Okt 14, 2008 /
 
Idézet:
„Van-e gyakorlati különbség SMD és DIL között?”

Nem akarlak összezavarni, de SMD kivitelben is van DIL! Lásd SOIC vagy SSOP tokozás... A DIL ugyanis csak annyit jelent, hogy Dual in Line, azaz kétoldalt, sorban helyezkednek el a kivezetések.


Egy összefoglaló cikk erről

De a kérdés lényegére reagálva: ha az adatlap külön nem említi, akkor a "belbecsben" nincs különbség, csak a külcsínben.



(#) icserny válasza Richie78 hozzászólására (») Okt 14, 2008 /
 
Idézet:
„Külön egy Pic-et erre fenntartani, ami csak a véletlenszámot csinálja feleslegesnek találtam.”


Pedig egyszerűbb egy nyolclábú PIC12F629-et odarakni, mint az invertereket meg egy számlálót. Talán olcsóbb is...

A másik dolog pedig az, hogy egy PIC16F-hez képest a PIC18F kétszer annyi, egy PIC24F vagy PIC24H pedig 3-8-szor annyi utasítást hajt végre időegységenként, amiből kitelt volna a véletlenszám generálás.
(#) Moderátor hozzászólása Richie78 hozzászólására (») Okt 14, 2008
 
Idézet:
„Ha legközelebb hasonló kérdéseim vannak, akkor "Csak cseverészek" típusú fórumot kell nyissak, ahol nem várok megoldást?”

Csak akkor kell új témát nyitnod, ha még nincsen olyan, mint amit kérdeznél.
A megoldásnak jelölés problémáját meg tudjuk oldani, ha megmondod, kinek akarsz pontot adni, mi (moderátorok) megoldjuk.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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