logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak uzyskać odwrócony okres przebiegu prostokątnego 30kHz?

autoservice 27 Lut 2008 15:51 1647 10
REKLAMA
  • #1 4851481
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    Witam
    Mam przebieg prostokątny o wypełnieniu 0-50% generowany przez układ... chce uzyskać równolegle do przebiegu pierwotnego przebieg wtóry ale z "odwróconym" okresem... tak jakby czas liczony byłby od tyłu okresu... schematycznie przedstawione na rysunku. Przy zmianie wypełnienia przebieg pierwotny zmieniałby się od początku okresu w kierunku połowy okresu (w prawo) a przebieg wtórny od końca okresu w kierunku połowy ( w lewo! )... czyli szybciej by sie zaczynał stan wysoki...
    Ma ktos moze pomysl jak to zrealizować...czestotliwosc przebiegu 30kHz. Na bramkach napewno nie przejedzie zanegowanie bo neguje sie tez wypelnienie. Moze cos na przerzutnikach w zwiazku z opadajacym zboczem...tylko jak uzaleznic to od wypelnienia...
    Pzdr.
    Załączniki:
    • Jak uzyskać odwrócony okres przebiegu prostokątnego 30kHz? przebieg.JPG (5.18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 4851575
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    Jak ma byc ustawiane wypełnienie?
    Czy musi to być dokladne odzwierciedlenie przebiegu wejsciowego?
    prościej byłoby wytworzyć takie dwa przebiegi niż próbować negowac wejsciowy przebieg.
  • REKLAMA
  • #3 4851604
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    ...mam sobie taki generator, który generuje taki przebieg i w nim zmieniam wypełnienie i czestotliwosc. generator ma jedno wyjscie... ja chce uzyskac identyczny przebieg tyle ze okres (czas) ma byc "odwrocony" ... jedyne co moge wykorzystac to generowany przebieg, nic wiecej...mysle nad zastosowanie procka do obliczenia czasu trwania stanu wysokiego, okres znamy wiec na tej podstawie mozna by bylo wyliczyc kiedy i jak dlugi ma byc stan wysoki tego odwroconego przebiegu...
    mozna wytworzyc dwa takie przebiegi... przesuniete w czasie... ale sęk w tym ze stan wysoki drugiego musi sie konczyc wtedy kiedy pojawia sie stan wysoki drugiego....hmm i tu mi przyszlo na mysl zastosowanie bramki AND do "wylaczenia" drugiego przebiegu...gdy pojawi sie "1" na pierwszym tylko, ze przesuniecie fazowe miedzy przebiegami zmienia sie wraz z wypelnieniem... mam jeszcze taka mozliwosc ze w generatorze moge "polaczyc" dwa przebiegi tj wygenerowac od stany wysokie na poczatku i koncu okresu, oba zmienialyby sie zgodnie z wypelnieniem...tylko teraz jak to rozbic na dwa przebiegi.... moze na przerzutnikach? ktorze reaguja na zobacze wysokie lub niskie...
    Pzdr.
    Załączniki:
    • Jak uzyskać odwrócony okres przebiegu prostokątnego 30kHz? przebieg2.JPG (5.12 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 4851620
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    Ja miałem innym pomysł. Napisałes ze to ma być 30kHz
    wiec wymysliłem ze mozna zbudowac generator 60kHz a z tego uzyskiwac dwa przebiegi takie jak narysowane na ukladzie dwóch monostawbilnych przerzutników np 74HC123. PISAŁES COS O BRAMKACH wiec myslałem ze procesor nie wchodzi w grę.
  • REKLAMA
  • #5 4851688
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Nie wiem na ile to ma być dokładnie i jakie są inne wymagania ale ja bym to zrobił tak. Są sobie w liczniki (taktowane z zewnętrznego źródła o większej częstotliwości niż częstotliwość sygnału "przetwarzanego" i odpowiedniej długości).
    L1. zerowany zboczem narastającym i zatrzaskiwany stan na wyjściu zboczem opadającym L1max
    L2. zerowany zboczem narastający i zatrzaskiwany następnym zboczem narastającym w L2max, z jednoczesnym zerowaniem L2
    Warunek na sygnał wyjściowy jest taki
    Jeśli L2 > L2max-L1max to stan wysoki.
    Wszystko da się ładnie wystrugać na bramkach i licznikach, są gotowe układy arytmetyczne i porównujące. Jednak ja bym widział ten układ w postaci CPLD albo FPGA.
    Być może dałoby się to zaimplementować w mikroprocesorze (generalnie ten sam algorytm), ale przy 30kHz możesz być na granicy tego co się da zrobić programowo (a nie w każdym procesorze da się sprzętowe zrealizować tak opisane liczniki).
  • #6 4851820
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    W wersji analogowej ten układ mógłby wyglądać jakoś tak:

    Jak uzyskać odwrócony okres przebiegu prostokątnego 30kHz?

    Można to w miarę prosto wystrugać na kilku układach analogowych.
    Działanie - zbocza przednie przebiegu synchronizują przebieg w generatorze piły, dalej mamy detektor szczytowy (MAX) wyznaczający maksimum piły oraz układ sample/hold rejestrujący poziom Ua piły przy zboczu opadającym sygnału sterującego. Dalej już prosta arytmetyka generująca lustrzany impuls (porównanie na komparatorze K piły z wyliczoną na wzmacniaczu różnicowym wartością napięcia Umax-Ua).
  • #7 4851992
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    ...a ja wymyslilem cos takiego...jak na rysunku.... jest sobie lacznik ktory wykrywa "poczatek" okresu i steruje dwoma kluczami (bramkami-buforami 3 stanowymi lub 2 wejsciowa bramka AND)... lacznik wie ile trwa caly okres wiec na pol okresu bedzie zalaczal T1 a w drugim polokresie tylko T2.... ciekawe czy to dobre by bylo... i skad lacznik bedzie wiedzial ktore zbocze narastajace jest wlasnie tym poczatkowym w danym okresie...potrzebna by byla jakas synchronizacja albo impus synchronizacji... moze zrobic detektor-generatorek, takiego impulsu , krotkiej szpilki... mozna wykorzystac fakt ze po wystapieniu "1" na poczatku przebiegu potem musi byc chwilka "0" ale wtedy wypelnienie musialbym okroic np do 45% tak aby miec mozliwosc wykryc to "0". bo jesli uklad wykryje zbocze narastajace w drugiej polowce to po tej drugiej "1" natychmiast zaczyna sie 2 okres z "1ką" z pierwszej polowki okresu... i jest minimalna ujemna szpilka... wlasnie moze to wykorzystac...
    pzdr.
    Załączniki:
    • Jak uzyskać odwrócony okres przebiegu prostokątnego 30kHz? przebieg2.JPG (15.14 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 4854304
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    W dwóch postach nad Twoim ostatnim masz opisane metody zbudowania układu "łącznika", który "wie" kiedy załączyć i wyłączyć przebieg na drugim wyjściu.

    Nie bardzo zrozumiałem Twoje kolejne posty, począwszy od drugiego. W jaki sposób chcesz wygenerować przebieg zawierający przebieg pierwotny i lustrzany, nie mając tego drugiego. A skoro go już masz, to po co mieszać z przebiegiem pierwotnym :?:

    Jeśli użyjesz do tego celu mikroprocesor, to przebiegi gotowe (wejściowy i lustrzany) możesz wygenerować na dwóch bitach tego samego portu, co zagwarantuje pełną zgodność czasową zbocz (równo z końcem lustrzanego rozpocznie się przebieg "wejsciowy"), tak wiec nie ma potrzeby stosowania dodatkowych bramek, czy łączników.
  • #9 4857644
    gondoljerzy
    Poziom 23  
    Posty: 553
    Pomógł: 37
    Ocena: 67
    A gdyby wziąć dwie kostki timera 555, jedna pracująca jako astabilny generator sygnału prostokątnego o zmiennym wypełnieniu, a druga w układzie monostabilnym wyzwalana opadającym zboczem tego pierwszego i też o zmiennej długości sygnału. Tylko trzeba dobrać elementy odpowiedzialne za wypełnienie przebiegu w obu układach i ich jednoczesne sterowanie.
  • #10 4857685
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    A nie można tego programowo zrobić na kontrolerze? Nawet najprostrzym (np. pic12c509). Po prostu będzie tylko liczenie czasu potem proste odejmowanie czasów i ustawienie portów.
  • #11 4858298
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Fyszo napisał:
    A nie można tego programowo zrobić na kontrolerze? Nawet najprostrzym (np. pic12c509). Po prostu będzie tylko liczenie czasu potem proste odejmowanie czasów i ustawienie portów.


    Najprościej to zrobić na kontrolerze ;) (wspomniany PIC czy jakiś ATTiny), jeśli tylko ta rozdzielczość czasowa jest dla autora tematu wystarczająca. Kawałek kodu w asemblerze i problem rozwiązany.

Podsumowanie tematu

✨ Dyskusja dotyczy uzyskania przebiegu prostokątnego o częstotliwości 30 kHz z odwróconym okresem względem sygnału pierwotnego, przy zmiennym wypełnieniu 0-50%. Problem polega na generacji sygnału wtórnego, którego czas stanu wysokiego liczy się od końca okresu pierwotnego, co wymaga synchronizacji i odpowiedniego sterowania. Propozycje rozwiązań obejmują: zastosowanie dwóch generatorów o podwojonej częstotliwości (np. 60 kHz) i monostabilnych przerzutników 74HC123 do uzyskania przesuniętych fazowo sygnałów; implementację układu z licznikami taktowanymi z wyższą częstotliwością, realizującymi porównania i arytmetykę do generacji sygnału lustrzanego, najlepiej w CPLD lub FPGA; analogowy układ z generatorem piły, detektorem szczytowym i układem sample/hold do wyznaczenia czasu trwania stanu wysokiego sygnału wtórnego; użycie dwóch timerów 555 – astabilnego i monostabilnego – sterowanych zboczem opadającym pierwszego; oraz realizację programową na mikrokontrolerze (np. PIC12C509, ATTiny), który liczy czas trwania stanu wysokiego i generuje oba sygnały na wyjściach portu, zapewniając synchronizację i precyzję. Wskazano, że negacja sygnału prostokątnego nie jest odpowiednia, gdyż zmienia wypełnienie. Synchronizacja zboczy i detekcja początku okresu są kluczowe dla poprawnej pracy układu.
Wygenerowane przez model językowy.
REKLAMA