Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Dzielnik częstotliwości przez 1,5 - działający układ

soltyk 25 Feb 2015 20:29 4212 14
Altium Designer Computer Controls
  • #1
    soltyk
    Level 21  
    Witam

    Stanąłem przed koniecznością zbudowania układu, który na każde 3 impulsy na wejściu wygeneruje 2 na wyjściu. Domyślam się, że nie da się tego zrobić jednym scalakiem, pewnie potrzebny jest podwajacz oraz dzielnik przez 3. A może jestem w błędzie?

    Na forum jest dużo o dzielnikach, ale są to schematy blokowe na zajęcia, a ja potrzebuję zbudować działający, niezawodny układ. Czy pomoglibyście mi?

    Całość będzie zasilana napięciem 14V, ale było by wspaniale gdyby działało już od 6V. Sygnał na wejściu to odkształcony prostokąt 14V (z przepięciami) o częstotliwości do 350Hz. Myślę, że kształt sygnału wyjściowego jest dowolny, może być nawet sinusoida.

    Najlepszy byłby prosty układ, łatwy do wykonania.
  • Altium Designer Computer Controls
  • #2
    nasty_photon
    Level 22  
    Są układy dzielników z połykaniem impulsów, wtedy można realizować takie podziały. Do czego to ma być? Nie dostaniesz w ten sposób koherentnego sygnału.


    Zobacz tutaj, strona 28:

    http://cc.ee.ntu.edu.tw/~jrilee/course/COMMIC08/CommIC_07.pdf

    jest dzielnik przez 3/2. Układ da się zrobić na bramkach z serii CD4000.
  • #3
    jarek_lnx
    Level 43  
    Quote:
    pewnie potrzebny jest podwajacz oraz dzielnik przez 3
    Do powielania zazwyczaj stosuje sie pętle PLL, ale mnożenie przez dwa łatwo wykonać jest to po prostu detektor zbocza.
  • #4
    soltyk
    Level 21  
    nasty_photon wrote:
    jest dzielnik przez 3/2. Układ da się zrobić na bramkach z serii CD4000.

    Przypuszczam, że brak koherencji będzie ok. Jak najbardziej chciałbym spróbować z takim ,,połykaczem''. Dał byś radę narysować, jak wpiąć go w układ?

    Potrzebuję to do obrotomierza. Wygląda na to, że nie da się go dostroić w inny sposób. Jest w nim jakiś układ scalony. Są wprawdzie 2 kondensatory, ale one podobno nie odpowiadają za kalibrację tylko kształtują sygnał. Gdy zwiększyłem pojemność jednego z nich, wskazówka spadła na 0, a drugiego - nic nie zmieniło się.
    Obrotomierz jest podłączony bezpośrednio do cewki.
  • Altium Designer Computer Controls
  • #6
    soltyk
    Level 21  
    To może zaczniemy od podziału przez 3. Czy coś takiego, wpięte pomiędzy cewkę a obrotomierz, obniży trzykrotnie wskazania?
    Dzielnik częstotliwości przez 1,5 - działający układ
  • #7
    nasty_photon
    Level 22  
    soltyk wrote:
    To może zaczniemy od podziału przez 3. Czy coś takiego, wpięte pomiędzy cewkę a obrotomierz, obniży trzykrotnie wskazania?
    Dzielnik częstotliwości przez 1,5 - działający układ


    No ale już przecież dostałeś gotowy wzór na podział przez 1,5.
  • #8
    soltyk
    Level 21  
    Niestety nie umiem z niego skorzystać. Kiedyś zbudowałem jeden dzielnik, ale dzięki temu, że stworzyliście schemat.
    Znalazłem opis UCY7490 dzielącego przez 3, na podstawie którego wymyśliłem powyższy obwód. Nie mam pojęcia czy jest on prawidłowy.

    ===================

    Nikt nie zaproponuje układu? Panowie, nie takie rzeczy budowaliśmy w przeszłości. Może poprawicie chociaż schemat który ja narysowałem (nie jestem elektronikiem, więc na pewno jest on błędny).
  • Helpful post
    #9
    kspro
    Level 27  
    Twój schemat się raczej do niczego nie nadaje, no bo jeśli wejście z impulsami podajesz na wyjście Q0 to dalej niczego już nie trzeba analizować. Wzoru układu do podziału przez 1.5 jednak nie dostałeś, ponieważ ten układ ze strony 28 na dwóch przerzutnikach D i dwóch bramkach nie jest dzielnikiem dzielącym przez 3/2 tylko przez 3 albo przez 2. Tym niemniej wykorzystałem go do stworzenia własnego układu, bo chociaż można to zrobić na dwóch przerzutnikach typu JK bez żadnej bramki, to jednak bez dodatkowych bramek i tak się nie obejdzie. Oto schemat:
    Dzielnik częstotliwości przez 1,5 - działający układ
    Najpierw próbowałem zaprojektować układ, który nie tyle połyka co trzeci impuls ile korzystając z obydwu zboczy generuje w miarę równomiernie rozłożone w czasie impulsy, jednak okazało się to niełatwe, do tego nie wiadomo jaki jest kształt impulsów wejściowych. To mogłoby mieć sens dla fali prostokątnej o wypełnieniu zbliżonym do 50%, ale w przypadku wąskich szpilek nic by nie dało, więc dałem spokój i wróciłem do idei połykania co trzeciego impulsu, koncentrując się raczej na zachowaniu szerokości impulsów. Założyłem sobie przy tym, że impulsy są szpilkami dodatnimi, jeżeli jest odwrotnie to układ należałoby przeprojektować, jednak bardzo możliwe, że to w ogóle nie ma żadnego znaczenia.

    Dwa przerzutniki typu D i bramka U1B stanowią licznik modulo 3 reagujący na narastające zbocze zegarowe, jednak wejściowa bramka Schmitta U1A neguje sygnał, w związku z tym licznik taktowany jest zboczem opadającym. Na wyjściu Q przerzutnika U2B pojawiają się na przemian stan wysoki trwający 2 takty i stan niski trwający 1 takt, ten sam cykl występuje na wyjściu Q przerzutnika U2A opóźniony o jeden takt. Dzięki temu, że cykl wytwarzany jest przez zbocze opadające impulsów wejściowych, zmiany na wyjściach przerzutników dokonują się już po skończeniu impulsów (dodatnich) i dlatego szerokość impulsów przepuszczanych przez bramkę U1C nie ulega zmianie.

    Filtr wejściowy R1C1 oraz opornik R2 zabezpieczający wyjście układu są przykładowe, trudno powiedzieć co tam powinno być bez szczegółowych danych. Wspominałeś coś o przepięciach, więc może na wejściu powinny być jakieś diody obcinające, chociaż z drugiej strony opornik szeregowy 10kΩ filtru również całkiem dobrze zabezpiecza wejście bramki przed uszkodzeniem. Układy CMOS 4000 mogą pracować z zasilaniem od 3V do 15V, więc żaden stabilizator nie będzie raczej potrzebny, zwłaszcza że pobór prądu jest znikomy, co najwyżej można dać filtr RC na zasilanie.

    Zapomniałem dodać, że układ odwraca polaryzację przepuszczanych impulsów z dodatnich na ujemną, ale na razie zostawiłem to tak jak jest, bo nic nie wiadomo odnośnie tych impulsów, sam sobie coś tam założyłem i bardzo możliwe, że potrzebne są jakieś zmiany. Należałoby wykonać jakieś pomiary albo zmontować układ na próbę i po prostu sprawdzić, czy działa jak należy. Może się okazać, że w ramach dopasowywania do poziomów napięć czy zwiększania histerezy trzeba dołożyć na wejściu lub na wyjściu stopnie na tranzystorach, wówczas będzie można bez trudu przywrócić właściwą polaryzację. Tak więc na razie tego nie ruszałem, traktując układ jako propozycję wyjściową do właściwego projektu.
  • #10
    soltyk
    Level 21  
    Bardzo dziękuję za twój schemat. Praca mogła ruszyć z miejsca. Tradycyjnie, lokalni elektronicy nie potrafią ugryźć tematu (lub standardowe ,,umiem, ale nie zrobię bo nie opłaca się" itp), więc muszę działać sam.

    Złożyłem układ ,,na pająka''. Zajęło to kilka godzin, nie jest taki prosty jak się wydaje. Test wykazał, że układ, o ile prawidłowo połączyłem elementy, nie wpływa na wskazania obrotomierza. Pokazuje on takie same wartości jak wcześniej. Pominąłem jedynie kondensator na zasilaniu, podpiąłem się bezpośrednio do akumulatora, gdzie tętnienia nie są duże.

    Może spróbował bym złożyć wszystko jeszcze raz na płytce, ale najpierw muszę znaleźć jakiś program do projektowania ich.
  • Helpful post
    #11
    kspro
    Level 27  
    No to teraz jest zagwozdka, czy zmontowałeś wszystko poprawnie, czy może układ jest źle zaprojektowany przeze mnie, czy też może w ogóle nie o to chodzi z tym obrotomierzem. Przeanalizowałem mój układ jeszcze raz i wygląda na to, że wszystko jest OK. Najpierw dzielnik przez 3, bo to podstawa. Oznaczając wyjście Q (pin 1) jako Q1 oraz wyjście Q (pin 13) jako Q0 mamy następujące przejścia dla pary (Q1, Q0):
    00 --> 01
    01 --> 11
    10 --> 01
    11 --> 10
    Wejście D (5) pierwszego przerzutnika jest podłączone wprost do wyjścia Q0 (13) drugiego, więc na Q1 zawsze wpisywany jest stan Q0, natomiast wejście D (9) drugiego przerzutnika podłączone jest wyjścia bramki NAND U1B, więc na Q0 wpisywane jest zero tylko wtedy, gdy Q1=1 i Q0=1, a we wszystkich pozostałych przypadkach jedynka. W rezultacie wyjścia (Q1, Q0) licznika zmieniają stany według schematu:
    00 -- 01 - 11 - 10 -- 01 - 11 - 10 -- 01 - 11 - 10 -- ...
    Jak widać, nawet jeśli licznik wystartuje ze stanu 00 to od razu wpada w sekwencję 01-11-10, która potem powtarza się już w nieskończoność. Oczywiście każda zmiana stanu powodowana jest przez opadające zbocze sygnału wejściowego ze względu na obecność bramki Schmitta U1A. Następna bramka U1D ponownie neguje sygnał do postaci niezanegowanej a jedynie trochę opóźnionej (o czas propagacji dwóch bramek) w stosunku do wejścia układu, a ostatnia bramka U1C stosownie do stanu wyjścia licznika Q0 (13) wycina co trzeci impuls. Bramkowanie sygnału jest czyste, bez fałszywych szpilek, ponieważ licznik zmienia swój stan wraz ze zboczem opadającym, a więc przed początkiem i zaraz za końcem każdego impulsu, oczywiście przy założeniu, że są to impulsy dodatnie, o czym już pisałem. Jeżeli są to impulsy ujemne, to również na wyjściu nie będzie fałszywych szpilek, tyle że co drugi impuls będzie poszerzony o cały okres, co jednak w przypadku obrotomierza nie powinno mieć żadnego znaczenia, bo przypuszczam, że zlicza on po prostu ilość impulsów na jednostkę czasu bez względu na ich kształt.

    Zanim weźmiesz się za projekt płytki drukowanej, wpierw uruchom układ na pająku i przekonaj się, że metoda wycinania co trzeciego impulsu działa. Skoro w tej chwili układ nie wpłynął na wskazania obrotomierza, to wobec podejrzenia, że mogłeś coś źle zmontować, powinieneś w pierwszym rzędzie przekonać się, czy układ działa na stole. Potrzebny jest oscyloskop lub miernik częstotliwości oraz jakiś generator impulsów prostokątnych o dowolnej częstotliwości. Układ można zasilać z jakiegoś zasilacza o napięciu 5V, 9V czy 12V, a nawet z bateryjki 9V. Najprostszy generator można zbudować na jednej bramce dodatkowego układu 4093 (wyjście bramki przez opornik R do obu wejść połączonych razem, a od nich kondensator C do masy), dodając drugą bramkę jako bufor. Dla R=10kΩ i C=0.1µF lub podobnych wartości dostanie się falę prostokątną o częstotliwości rzędu kilku kHz, zresztą częstotliwość nie ma znaczenia. Mając to wszystko będziesz mógł sprawdzić, czy układ działa i poprawnie dzieli częstotliwość. Jeżeli nie masz oscyloskopu ani częstotliwościomierza, to niektóre multimetry mają funkcję pomiaru częstotliwości, nawet jeśli niezbyt dokładną i nie sięgającą poza kilkaset kHz to w zupełności wystarczającą. Możesz nawet obyć się bez miernika i po prostu posłuchać, czy częstotliwość na wyjściach układów się obniża. Wystarczy użyć dowolnych słuchawek od komputera czy walkmana dodając w szereg z nimi opornik 1-10kΩ żeby obniżyć napięcie i zbytnio nie obciążać wyjść CMOS. Możesz też w generatorze na 4093 zjechać z częstotliwością do pojedynczych Hz (dając R=100kΩ, C=22µF lub podobnie) i na pozostałych bramkach zrobić sobie prymitywne sondy logiczne dając na wyjściu LED z opornikiem kilka kΩ w szereg do plusa zasilania, żeby obserwować błyśnięcia LED-ów na wejściu i na wyjściu. Jak widzisz, jest trochę możliwości obserwacji, wystarczy dobrać odpowiednią częstotliwość.

    Brak kondensatora blokującego zasilanie to błąd! Nie chodzi o to, że akumulator ma stabilne napięcie, tylko o zakłócenia powodowane przez same układy cyfrowe, powodowane przez szarpnięcia prądu w momencie przełączania na indukcyjnościach doprowadzeń. Bez kondensatorów powstają wtedy szpilki na szynie zasilającej i na masie, przesuwające poziomy, dające fałszywe zbocza, itd. Akurat układy CMOS serii 4000 są pod tym względem dość wybaczające, bo nie są zbyt szybkie ani wydajne prądowo, ale mimo to koniecznie dodaj kondensatory 22-100nF jak najbliżej pinów zasilania układów (na krótkich połączeniach), a przynajmniej jeden na oba układy. To muszą być kondensatory ceramiczne, takie jak na płytach komputerowych, żadne tam MKT czy inne foliowe. Bardzo możliwe, że po tym uzupełnieniu układ ruszy.

    Przyszło mi też na myśl, że w docelowym układzie warto by dodać jakiś opornik w szereg z zasilaniem (przed kondensatorem blokującym), w celu odfiltrowania ewentualnych zakłóceń pochodzących od układu zapłonowego, itd. Wartość tego opornika będzie oczywiście zależeć od prądu pobieranego przez układ, który w tej chwili jest minimalny ale może wzrosnąć w przypadku dodania jakichś układów formujących na wejściu i na wyjściu. Jak na razie, 100Ω powinno być OK.

    I to już wszystko, więcej pomysłów nie mam i raczej nie będę miał, bo nie da się niczego więcej zaproponować nie wiedząc nic ani o obrotomierzu, ani o postaci impulsów, ani o samym układzie je generującym. Na wszelki wypadek ponownie przeanalizowałem swój układ dokładnie to opisując, ale wszystko wydaje sie być OK i jeśli gdzieś robiłem wciąż ten sam błąd (co się czasem zdarza) to już ktoś inny będzie musiał go wykazać.
  • Helpful post
    #12
    _jta_
    Electronics specialist
    Sprawdzenie poprawności działania w sensie zgodności ze schematem: równolegle do C1 podłączyć kondensator o większej pojemności (1uF nie zawadzi, ale musi być coś dobrej jakości - nie elektrolit, nie ferroelektryczny, może być np. MKSE, jakie stosowano w starych telefonach), a na wejście podawać sygnał poprzez opornik (choć ze 100k, może być i 1M), do generowania sygnału użyć przełącznika, który będzie łączył wejście z masą, albo z +zasilania (może być wyłącznik zwierający wejście do masy, wtedy opornik 1k do +zasilania); przełączając wejście (albo łącząc je z masą i rozłączając) można generować stany 0/1; najpierw należy sprawdzić (ale to pewnie działa), co dzieje się ze stanem na wejściach zegarowych (czyli na wyjściu U1A); potem po każdej zmianie stanów na wejściu sprawdzać stany na wyjściach Q_U2A i Q_U2B; powinna być sekwencja trzech kombinacji stanów: (0,1) (1,1) (1,0), na początku może być (0,0), ale układ nie powinien wracać do tego stanu; na koniec można sprawdzić stany na wyjściu w całym cyklu (6-cio elementowym) - powinno być 0, kiedy na wyjściu U1A jest 0 i na Q_U2B jest 1, co występuje 2 razy w tym cyklu.

    Jeśli tak wyjdzie, to logika układu jest zgodna z założeniami.






    Lp.Clk(O_U1A)Q_U2AQ_U2BD_U2AD_U2B-Clk(O_U1D)Out(O_U1C)
    00100111
    11011101
    20011110
    31111001
    40111010
    51100101


    Może jeszcze występować problem wyścigu: dwa układy "jednocześnie" zmieniają stan swoich wyjść, przy czym stan przed zmianą i po zmianie jest prawidłowy, ale jeśli króryś układ jest nieco wolniejszy, to przez krótki czas (ułamek us) wystąpi stan nieprawidłowy, który może wygenerować dodatkowy impuls na wyjściu. Taka sytuacja grozi przy zmianie Clk z 0 na 1, jeśli zmienia się Q_U2B, czyli między elementami 0 i 1, oraz 4 i 5; między 4 i 5 oba wejścia U1C zmieniają stan w tę samą stronę i nie ma problemu, jeśli któreś zmieni go wcześniej, niż drugie, ale między 0 i 1 jest gorzej, bo jeśli Q_U2B będzie szybszy, to na wyjściu pojawi się stan 0 przez czas między zmianą Q_U2B z 0 na 1, a zmianą O_U1D z 1 na 0. Problemu wyścigu nie wykryjemy sprawdzając stany miernikiem. Ale wydaje się, że raczej U1D powinien być szybszy, bo to jest prosta bramka.
  • #13
    soltyk
    Level 21  
    Ostatecznie spróbowałem testu z przełącznikiem, zwierającym wejście raz z zasilaniem a raz masą. Dioda LED podpięta do wyjścia zapalała się i gasła w przeciwfazie do napięcia (stanu) na wejściu, co potwierdza że układ nie modyfikował częstotliwości. Znalazłem przyczynę: błędnie podłączyłem U2B. Po poprawnym przylutowaniu przewodów do podstawki, omyłkowo odwrotnie włożyłem scalak i spaliłem go ... Oto efekt zmęczenia przez kilkugodzinne ślęczenie nad układem.

    Wcześniej jeszcze sprawdziłem U1A (działa on jako odwracacz stanu) oraz U2A, który nie działał - na nóżkach 1 i 5 ciągle brak napięcia. Może spowodowane było to błędnym podpięciem U2B, albo on także był spalony już wcześniej. Na wszelki wypadek kupię 2 sztuki.

    Choć na papierze ten układ nie wygląda na skomplikowany, dodatkowe przewody do zasilania wszystkich scalaków czynią z niego prawdziwy węzeł gordyjski. Bardzo ciężko jest zmontować to wszystko bez pomyłki, sprawdzać stany na scalakach czy cokolwiek. Ściągnąłem TurboPcb aby wykonać płytkę, ale nie mogę rozgryźć tego programu.

    Czy uda mi się ogarnąć TurboPcb czy nie, praca staje w miejscu do czasu zakupu nowych 4013.
  • #14
    soltyk
    Level 21  
    Może nie znam się, może nie potrafię ... W każdym razie uważam, że nie da się tego układu zrobić na pająku. Duże ryzyko pomyłki, przypadkowego zwarcia w czasie pracy, piekielnie trudna weryfikacja poprawności montażu.

    Zacząłem od zera i zrobiłem ten układ na płytce. W stosunku do pierwszego, dodałem po kondensatorze w miarę blisko zasilania 4013 oraz zmieniłem kondesator na wejściu na 1 µF i opornik na 100 kΩ. Po siedmiu godzinach pracy mogłem zrobić test z diodą. Dioda na wyjściu gaśnie, gdy do wejścia podaję 12 V, a ponownie zapala się, gdy odłączam zasilanie (nie jest konieczne zwieranie do masy). Co trzecie podanie zasilania dioda nie gasła, więc układ prawidłowo pomija co trzeci impuls. Jutro testy z obrotomierzem!

    =============================================================

    NIESTETY UKŁAD NIE DZIAŁA
    Obrotomierz pokazuje bardzo niskie wartości, a jego wskazania są niestabilne. Na wolnych obrotach leży albo faluje trochę powyżej 0, a po dodaniu gazu coś tam się podnosi, ale też jakby przerywało. Wymieniłem kondensator z powrotem na 1 nF - bez zmian. Co ciekawe, dioda podłączona do wyjścia ochoczo miga. Może faktycznie jakiś stopień wyjściowy?
  • #15
    soltyk
    Level 21  
    Uwaga! Dostałem pw, że w założeniach układu wkradł się błąd. Otóż napisałem, że sygnał wejściowy to przybliżony prostokąt 14 V. Jednakże przebieg na cewce zapłonowej daleko odbiega od moich przypuszczeń. Za pomocą wejścia mikrofonowego w notebooku, z dzielnikiem napięciowym, spróbowałem zobrazować przebieg. Oto orientacyjny kształt przebiegu:
    Dzielnik częstotliwości przez 1,5 - działający układDzielnik częstotliwości przez 1,5 - działający układ
    Na drugim wykresie, dla porównania, widać wyprostowaną sinusoidę ze zwykłego prostownika akumulatorowego. Widać, że wejście mikrofonowe wprowadza zniekształcenia, ale daje to jakiś zgrubny podgląd przebiegów na cewce. Niestety byłem w błędzie, to nie jest prostokąt.
    Być może wystarczy zmodyfikować wejście układu, aby był w stanie przyjąć taki sygnał i wszystko będzie działać.