Fórum témák
» Több friss téma |
Fórum » Alapvető Flip-flop áramkör
Sziasztok!
Valamiért eltünt az imént beírt kérdésem, beírom még egyszer...Segítséget kérnék. Hibrid PWM/PDM meghajtást akarok csinálni egy teljes hidas megoldásra. Az elmélet rendben is van, a két PWM csatorna (PWM0,PWM1,PWM2,PWM3) is szépen működik 50%-os kitöltéssel, komplementer módban, csak az a gondom, hogy nem sikeredik a második csatornát, azaz a PWM2 és PWM3 jelet az első csatornához képest 50%-al odébb shiftelnem. Hogy érthetőbb legyek, csatolok két képet, az elsőn a szkópom képe van, a másodikon az a vázlatom, hogy milyennek kellene lennie. PIC18F4431 MCU-val dolgozom. A shiftelés változtatásával lehet a hagyományos PWM-től távolodni a PDM felé, így viszonylag jól be lehet állítani az optimális kimeneti állapotot. No, nekem jelenleg ezzel a shifteléssel van gondom. Van ugyan egy D flip-flopokból és AND kapukból álló kapcsolás, ami elvileg ezt megoldja (de szerintem a kapcsolás nem jó, megépítettem, de ugyanaz jön ki belőle shiftelés nélkül, mint ami bement, csak a 2. és 3. csatornánál egy fázissal odébb, de ezt ugye a szkópon nem lehet látni). Arra gondoltam, hogy ha ezt a shiftelést meg tudnám oldani közvetlen az MCU programjával, akkor az lenne a legegyszerűbb, de erre még nem találtam meg a megfelelő parancsot. Egyébként idecsatolom azt a bizonyos kapcsolási rajzot is, hátha van ötletetek, miért nem jó. Idecsatolom az eredeti megoldást is, amiről csináltam, csak én nem akartam használni az UCC3895-ös fázis shiftelt PWM controllert, hiszen a 4413-as PIC biztosít akár 8 PWM csatornát is. Az én rajzomon a PWM4 jel a proci harmadik PWM moduljából jön, ugyanolyan gyakorlatilag mint a szkópképen az 1. csatorna jele (sárga). Igazából, ha ezzel a kapcsolással lehet csak megoldani a shiftelést, az lenne a jó, hogy ennek a PWM4-nek a kitöltési tényezőjének a változtatásával lehetne a shiftelést tologatni, vagy a PWM3 kitöltési tényezőjének a változtatásával. Végül is a PWM-eket illetően mindent tudok változtatni, a lényeg, hogy a végén olyan PWM jelekek jöjjenek ki, amilyet a vázlatom mutat... ![]() A PWM4 jele jelenleg 90%-os kitöltéssel megy (végül is lehetne ebben a konfigban egy állandó magas jel is), hogy mindig jelen legyen a magas jel, amikor az órajel megérkezik a 0. és a 3. csatorna felfutó élének hatására. Azt megfigyeltem, hogy ha a PWM4 kitöltését 60% alá állítom, akkor a 2. és 3. csatorna jele megszűnik az AND kapuk kimenetén (Q3 és Q4). Ez, gondolom abból ered, hogy ilyen esetben, mikor a 3. csatorna magas jelet ad az 2. D tároló órajelére, akkor a PWM4 jele már nem magas (kevés a pl. 50% kitöltés). Lenne esetleg valami ötletetek a megoldásra?
Sziasztok!
Segítséget szeretnék kérni. Tranzisztoros RS flip-floppal szeretném eltárolni az ajtócsengő használatát. Azaz, ha valaki csenget, akkor átvált és egy erős fényű LED-et villogtat, amíg le nem "resetelem". A villogót már megcsináltam egy 555-össel és a Reset lábát szeretném használni a flip-flop kimenetéhez. Ha lehúzza negatívra, akkor nem villog tovább. Először a topik elején berakott flip-floppal próbálkoztam, de sajnos annyira érzékeny a csengő, hogy rákötéskor beindul a csengő. Annyit még tudni kell, hogy a nyomógombra rá van kötve a kaputelefon és egy dallam csengő is. A csengőről elvezetett két vezeték között 3V van, rövidre záráskor 4uA áram folyik. Esetleg egy ilyen flip-floppal próbálkozzak? Ehhez nem tudom, milyen értékek lennének jók. A tranzisztorok BC546C típusúak. A tápfeszültség egy telefontöltő 5V-os kapcs.üzemű tápja. A lényeg, hogy ez a jelző áramkör ne indítsa be a csengőt. Persze, ha van a flip-flop-nál jobb és egyszerűbb megoldás, akkor az is érdekel. Köszönöm előre is a segítségeteket.
Hello!
Erre a kérdésre maximum akkor lehet választ adni, ha lerajzolod a csengő áramkört, miből is áll. De indíthatod a bistabilt a csengő jelével is. Ott biztos nem 4uA van. Mert ez a 3V/4uA igencsak valami proci bemenetére hajaz. Oda akármit rákötsz visszahat. üdv! proli007
Nem lehetne valamilyen nagy impedanciás bemenettel megoldani?
Egyébként melyik flip-flop megoldás a jó? És Te milyen értékű elemekkel oldanád meg?
Hello!
Nem az impedanciával van itt gond, hanem nem EZ érthető, amit írsz. "A csengőről elvezetett két vezeték között 3V van, rövidre záráskor 4uA áram folyik." Most akkor mikor kellene bebillenjen az FF ? Amikor 3V van, vagy amikor "rövidrezárod". Nos, ezt nem lehet érteni. elsőként logikailag kell jónak lenni, aztán megoldást keresni.. üdv! proli007
Bocsánat, abban a mondatban félreérthetően fogalmaztam.
A kapcsolóról van elvezetve a két szál drót és természetesen rövidre záráskor van megnyomva a csengő gombja.
Hello! Egy CD4093-al megoldható a gond. De az egész működés is 555 nélkül is. üdv! proli007
Köszönöm.
Gondolom 7400-as nem jó csak MOS IC. Majd kerítek egyet. 555 nélkül hogy oldanád meg? A kondi mit csinál? A hozzászólás módosítva: Feb 6, 2013
Hello!
- Azt elírtam, hogy ebbe a kapcsolásba nem CD4093 kellene, hanem CD4011 mert a 93-nak van hiszterézisem ahol 5V táp mellett a felső küszöbszintje nagyobb mint a 3V. A 4011-nek nincs hiszterézise és váltása pedig kb. féltápon van. Mindenképpen MOS bemenetű eszköz kell mert a többi terheli a bemenetét. Mint ahogy a tranyós RS tár is tette azt. - A kondi a tápfesz megjelenésekor törli a tárolót, hogy feszültség kimaradás után ne kezdjen el villogni. De eyg alapállapotot egyébként is érdemes csinálni egy RS tároló esetén. - Ha az egészet egy 4093-al vagy hasonlóval szeretnéd megoldani, az is lehetséges, de akkor a tápfeszt le kell csökkenteni 3..4V közé. De egyszerű CMOS nem igazán szeret már 3V-ról üzemelni, vagy is működési paraméterei itt már változnak. - De az 555-ödet is ki lehet egészíteni egy másik 555-el, de annak is CMOS-nak kell lenni. De akkor maradhat a táp 5V. Ugyan is a Tr bement küszöbfeszültsége a táp 1/3-ad része, ami már megfelelő a 3V/0V érzékeléshez. A kimenetével meg kapcsolható, a villogó Reset bemenete ahogy szeretted volna. üdv! proli007 A hozzászólás módosítva: Feb 6, 2013
Nagyon szépen köszönöm a segítséget. Így már meg tudom majd oldani.
Átmenetileg kicsit kísérleteztem rajta. Rájöttem, hogy a kaputelefon nincs összekötve az ajtócsengővel, így ahhoz majd külön érzékelő kell. A dallamcsengőt szétszedtem és mérés szerint a hangszórón kb. 0,6V körüli váltó fesz. van, amikor szól. 2db AA-s elemmel megy, innen a 3V. A hangszóró +-ára rákötöttem egy 3,3K-s ellenállást és egy BC546 bázisát. Az elem negatívját (= hsz. negatív) az emitterre, a +-ra egy 43Ohm-os ellenállás, sorba ezzel egy erős LED, majd a tranyó kollektora. Az egész dobozt beraktam a csengő drótnak erre a felére, így most az arcomba csörög és világít amíg szól a dallam. ![]()
Hello!
"De indíthatod a bistabilt a csengő jelével is." Mint írtam, csak elkerülte a figyelmedet, gondolom. A tranyó, meg rángathatja kedvére a bistabilt, míg csengetnek. Az elsőre átbillen, és úgy is marad törlésig. üdv! proli007
Nem kerülte el a figyelmem csak véglegesen úgy akarom megoldani, ahogy először írtam, és a vezeték a csengőgombról van behúzva.
Ha kint hagyom az ajtónál a csengőt, akkor át kellene húzni a vezetéket a gombtól a csengő hangszórójához, de így ideiglenesen csak rá kellett akasztani a drótnak erre a végére. Meg amíg nem volt megoldás, gondoltam, kísérletezek. ![]() A hozzászólás módosítva: Feb 6, 2013
Hello!
Akkor itt az 555-nélküli megoldás. (De ha valaki tényleg nyomógombbal szeretné üzemeltetni, akkor a bemenetre egy felhúzó ellenállás kell, amit is a csengőáramkör biztosít.) üdv! proli007
Hello! Mivel hogy kérted..
![]()
Üdv mesteremberek!
Egy kis elméleti oktatást szeretnék, egyszerű a dolog, nekem mégis fejfájást okoz. Átnyálaztam ezt a bő 3 oldalt. A kérdésem: adott egy 4013-as D típusú flip-flop IC. Q, Q negált lábak jelentéseivel tisztában vagyok. A többi azonban kérdéseket vet fel bennem. Először is a Set (beíró), Data (adat) és a Clock (órajel vezérlés). Mi a különbség a 3 között? Ha át akarom billenteni az áramkört, akkor azt megtehetem, ha a Clock lábra egy pozitív feszültséget adok, ha a Set-re is pozitívat adok, akkor törlöm. Viszont akkor mire is jó a ReSet láb?? Mire jó a Data láb? Olvastam a hozzászólásokban egy ilyet: Idézet: . Tehát ha a Data lábra mondjuk 5V-ot kapcsolok, miközben a 14-esen 12V van, a Clock lábra egy impulzust adva a kimeneten 5V jelenik meg? Nagyon örülnék pár bemutató kapcsolásra, amiben lehet tanulmányozni, hogy mi történik, ha az egyes lábakat használom. „Az adatbemenetéről csak az órajel egyik élváltásakor kerül a kimenetre az adat.” Mellesleg ezen kapcsoláson belül tanulmányozom az IC-t. Már sikerült annyira megértenem, hogy leredukáltam 1 nyomogómbos, valamint 3-4-5-6 stb. nyomógombos kapcsolásra is bővítettem, tehát azért nagyjából értem a kapcsolást. Csak ez a pár láb... Illetve ezen kapcsoláson belül miért van földelve a ReSet és Data lábak?
Először is mindig célszerű az információkat autentikus helyről beszerezni. Ez pedig az IC adatlapja. Az adatlapon található egy "igazság táblázat", ami pontosan leírja az IC működését.
A Reset lábra 1 logikai szintet adsz, akkor a Q kimenet minden bemeneti jeltől függetlenül 0 logikai szintű lesz, egész addíg, amíg a reset 1 logikai szintű. A Set lábra adott logikai 1 a Q kimenetet 1 -re állítja, és úgy is marad, amíg a set 1. Ezek a bemenetek statikusan vezérlik a flip flopot. A másik bemeneti részek (D, és CLK) dinamikusan vezérlik, a D bemenetre adott logikai szint, a CLK (órajel) felfutó élének hatására íródik át a Q kimenetre. A Q negált kimeneten természetesen mindennek a negáltja jelenik meg. Természetesen az áramkörben vannak késleltetések, időzítések, amit a tervezéskor figyelembe kell venni. Erre nézve is található az adatlapon információ, Switching Time Waveforms cím alatt. A hozzászólás módosítva: Dec 1, 2013
Rákerestem erre a táblázatra, és igen, látom, hogy amit az előbb leírtál szövegesen, az az igazságtáblában van benne numerikusan /már ha a logikai szinteket 0-1-nek vesszük/.
Vegyünk egy példát a statikus vezérlésre. ReSet és Set: földön, Data: pozitívon. Órajel felfutó hatására (pozitív részre csatolásnál) a Q kimenetnek logikai 1-re kellene változnia. Ám akár a pozitív részre, akár a földre teszem a Clock-ot, nem változik egyik kimenet sem. Csak magát az IC-t használom, illetve egy tranzisztort, bázisán 18kOhm, kollektor +táp, emitterén 1kOhm és egy LED, ezeket a földre. Az IC egyes lábaira kellene ellenállás esetleg?
Illetve mit jelent az igazságtáblázatban a kimeneteknél az, hogy Q vagy épp Q negált?
A flip flopnak két kimenete van, ezek szoros kapcsolatban vannak egymással. Ha az egyik logikai 1 szintű, akkor a másik logikai 0. Azt használod a továbbiakban, amelyikre szükséged van. Mondjuk, egy esemény kapuzáshoz szükséged lehet bármelyikre.
A példádban persze hogy nem változik a Q kimenet. Azt írtam: a CLK pozitív felfutására a D bemenetre adott szint átíródik a Q kimenetre. Ha a D mindig 1, akkor minden órajel felfutó élére a Q =1 re változik, azaz nem változik semmi sem. Ezért hívák dinamikus tárolónak, ami nem ugyanaz, mint a dinamikus memória.
Kövezz meg kedves barátom, de még mindig nem értem, pedig meg szeretném érteni a működését.
![]()
Statikusan nehéz lekövetni. De ha a CL lábra kötsz egy négyszög generátort, és a D lábra egy nyomógombot, amivel 0, és 1 szinteket tudod váltani, akkor elérheted, pl. hogy míg nyomod a gombot, a Q kimeneten, 1 -et, (magas szintet) ha elengeded 0 szintet mérhetsz.
A D láb a data láb. Az erre adott logikai szint csak akkor jelenik meg a Q kimeneten, ha a CL bemenetre adott szint pozitívra (0 ról 1 re) vált. Ez a szint addíg itt is marad, amíg sem a D, sem a CL nem változik. A tároló Q kimenete csak akkor változik a CL bemenetén levő jel következő felfutására, ha a D lábon is megváltozott a szint. Ezt a fajta tárolót átmeneti tárolónak használják. Legjellemzőbb felhasználása pl egy számlánc állapotának kijelzése. Egy frekvencia mérőben a számláló lánc folyamatosan számol, a kapuidő elteltével újra kezdi. Igen nehéz lenne leolvasni a számlálás állapotát, a folyamatos "tekerés" miatt. Ekkor jön a D tároló, a számlánc kimenetei a D bemenetekre csatlakoznak, a megszámolt impulzusokat a kapuidő végén a CLK bemenetre adott jellel beírják a tárolóba, ami a következő kapuidő végéig ott is marad, így kénelmesen leolvasható. A következő kapuidő a számláló új értékét írja a D tárolóba, így ezzel egyidőben a kijelzés is frissül. De sok más feladatra is használható, pl soros párhuzamos átalakítókban shift regiszterekben, szinkron számlálókban. A hozzászólás módosítva: Dec 1, 2013
Találtam egy ilyen kapcsolást. Eddig nem is volt arról szó, hogy D lábat a Q negáltra kell kötni. Mostmár végképp nem értem és az igazságtáblázat sem igaz ebben az esetben. Ha CLK-on van jel Q2-őn is van, Q1-en pedig nincs. Ha CLK-on nincs jel, Q2-őn sincs, Q1-en meg van. Így az egész táblázat hülyeség.
![]()
A táblázat nem hülyeség, csak meg kell érteni.
Ha a D bemenetre visszacsatolod a Q negált kimenetet, akkor mi is történik? Az előzőek ismeretében gondold végig. Jó lenne, ha ideírnád a gondolatmenetet, és akkor megtalálhatnánk a hibát. A logika már csak ilyen. A hozzászólás módosítva: Dec 1, 2013
Összeraktam az astabil nélkül. Set-ReSet földön, Data a Q negálton, CLK a pozitívon. Eredmény: Q negálton van feszültség, Q-n nincs. CLK-ot földre teszem. Az eredmény ugyan az.
Az igazságtáblázat szerint ez az első sor lenne. Csak ugye a D-t valamiért nem a földre tesszük, hanem Q negáltra. De az igazságtábla szerint Q negálton logikai 1 van, akkor a D nem lehet 0! Ezért írtam, hogy akkor ez így nem igaz. Idézet: „a CLK pozitív felfutására a D bemenetre adott szint átíródik a Q kimenetre. Ha a D mindig 1, akkor minden órajel felfutó élére a Q =1 re változik, azaz nem változik semmi sem.” Ezt úgy értelmeztem, hogyha D mindig pozitívon van, akkor a CLK lehet bármi, Q mindig 1 lesz. Tehát ha D-t CLK-ra teszem, majd ezt kötöm a pozitívra egy impulzust szimulálva, D-re is jut egy logikai 1, ami Q-ra íródik át, de így sem változik.
Tehát akkor:
Idézet: „Set-ReSet földön, Data a Q negálton, CLK a pozitívon. Eredmény: Q negálton van feszültség, Q-n nincs.” De ha Q negáltat összekötöd a D -vel, ami logikai 1, akkor már a CL következő felfutására 0 -ról 1 re váltásával átíródik a Q kimenetre, így az 1 lesz. Ezzel egyidőben a Q negált 0 -ra vált, ezzel együtt a D bemenet is, de a CL felfutása már elmúlt, tehát nem történik semmi a CL következő felfutásáig. Amikor ez bekövetkezik, a Q negálton, és a D -n is 0 van, (az előző fázisban 1 volt) ez az előzőhöz képest változás, ézért most a 0 fog átíródni a Q kimenetre, szükségszerűen a Q negált lesz 1, és ezzel együtt a D is, és a következő CL felfutáskor ez fog átíródni. Így gyakorlatilag egy periódus késéssel a CL fog megjelenni a Q kimeneten. Rajzold le kockás papíron.
Üdv!
Esetleg így vizuálisan jobban megérted a működését. A fájlnévre kattints, mert az előnézeti képben nem működik az animáció. Legalábbis nálam... A hozzászólás módosítva: Dec 1, 2013
A kis mozgókép alapján csak akkor íródik a Q kimenetre logikai 1, ha egyidejűleg van magas szinten a clock és a data is. Igen, ezt tárgyaltuk korábban is. Engem már inkább az alapkapcsolás érdekelne, mert szerintem azt rontom el :/ Mellékelek egy kis rajzot, ahogy eddig csináltam.
Először S2-t nyomom be, aztán S1-et, de az van, amit korábban is írtam :/ A hozzászólás módosítva: Dec 1, 2013
Az S1, és S2 helyett váltókapcsolókat kellene használni, és a bemenetet nem illik csontra felkötni a tápra.
A váltó kapcsoló azért kell, hogy a szintek állandók maradjanak. Ezekután a flip flop -ot reseteled az R láb rövid idejű tápra húzásával, akkor beáll az induló állapot, és a LED1 világítani fog, a LED2 sötét lesz. A D bemenetre tápot adsz, ezután a CL bemenetet rövid időre tápra kötöd, a flip flop át fog váltani, amit a LED -ek jeleznek, A LED1 kialszik, a LED2 világít. Ameddíig a D tápon van, addíg az S1 inaktív lesz. Ha az S2 -vel testet adsz a D lábra, akkor az S1 kapcsolóval rövid időre táőot adsz a CL lábra, a flip flop megint váltani fog. |
Bejelentkezés
Hirdetés |