Potrzebuję opóźnić impuls - jak zrobić opóźniacz

Szczegóły:

Na wejściu A pojawia się impuls (szpilka) Na wyjściu B musi pojawić się szpilka po czasie t + delta t

Na wejściu B pojawia się impus (szpilka) Na wyjściu A musi pojawić się szpilka po czasie t - delta t

czas t powinien mieć możliwość zmiany niekoniecznie płynnej ale przynajmniej skokowej (kilka pozycji) Wynosi on orientacyjnie 1,6ms

czas "delta t" powinien mieć możliwość zmiany w zakresie od 0 do 1us niekoniecznie płynnie ale przynajmniej skokowo (optymalnie byłoby 10 pozycji)

Gdzie leży problem

Opóźniacz musi działać precyzyjnie, gdyż ma służyć do kalibracji urządzenia pomiarowego. Więc wytwarzanie czasu t przy pomocy generatora RC raczej odpada. Myślę raczej o generatorze kwarcowym i odpowiednim podziale Czas delta t który ma być zmieniany przez użytkownika jest na przemian dodawany do czasu t a następnie odejmowany Ponieważ ten czas jest ponad 1000 razy mniejszy od czasu t możnaby tu zastosować monowibrator RC gdyż niestabilność nie wpłynie w znacznym stopniu na czas całkowity ale jak zrobić odejmowanie ? A może ktoś miałby całkiem inny pomysł ?

Leszek

Reply to
Leszek
Loading thread data ...

Użytkownik "Leszek" snipped-for-privacy@spam.pl napisał w wiadomości news:ets6e0$pi3$ snipped-for-privacy@atlantis.news.tpi.pl...

no ok, albo linia opozniajaca albo rejestr przesuwny

ale to juz jest czarna magia i okultyzm. skad uklad ma wiedziec ze ma wygenerowac impuls na wyjsciu skoro jeszcze go nie ma na wejsciu ??

@
Reply to
Miller Artur

Użytkownik "Miller Artur" snipped-for-privacy@nowhere.com napisał w wiadomości news:etsa0q$7oj$ snipped-for-privacy@news.interia.pl...

Chyba nie wszytko zrozumiałeś:

Na A pojawia się impuls Na B pojawia się po czasie np. 1,6ms + 500ns

i teraz na odwrót

Na B pojawia się impuls Na A pojawia się po czasie 1,6ms - 500ns

i tak w kółko

chyba teraz wszystko jasne tylko nie wiem jak zrobić to odejmowanie i jak wygenerować te czasy błąd opóźnienia jaki mogę dopuścić to jakieś 20ns Urządzenie będzie wtedy miało dokładność ok 5% Dobrze by było uzyskać lepszy bład niż 10ns

Leszek

Reply to
Leszek

Użytkownik Leszek napisał:

A nie można tego zapisać np tak: Na A pojawia się impuls Na B pojawia się po czasie np. 1,6ms + 500ns i teraz na odwrót Na B pojawia się impuls Na A pojawia się po czasie 0,6ms + 500ns

Pozdrawiam Grzegorz

Reply to
Grzegorz Kurczyk

Użytkownik "Leszek" snipped-for-privacy@spam.pl napisał w wiadomości news:etsc3h$n8j$ snipped-for-privacy@nemesis.news.tpi.pl...

no tak wlasnie myslalem, zeby wprowadzic jakies stałe opoznienie tak, zeby "cofniecie" impulsu nie powodowało pojawienia się minusa przy czasie. jesli jest to impuls cyfrowy, to pozostaje rejestr przesuwny z wyjsciem równoległym - w zależności częstotliwości taktowania rejestru i od numeru wyjścia, z którego odbierzesz swój impuls, takie będziesz miał opóżnienie. oczywiscie impuls wejsciowy musi byc dluzszy niz okres zegara taktującego, na wyjsciu dostaniesz impuls będący wielokrotnością okresu zegara, więc dlugosc impulsu wejsciowego determinuje Ci czestotliwosc taktowania, a więc wymaganą długość rejestru do uzyskania wymaganych opóźnien ... ale tu juz trzeba posiedziec z kartką i ołówkiem :)

@
Reply to
Miller Artur
[...]

male fpga lub pld z 24 bitowym licznikiem + oscylator

100Mhz da ci dokladnosc ~10ns i taki sam skok regulacji;

JA

Reply to
JA

Hej zrobilem opozniacz impulsow...czas opoznienia ograniczony jest dlugoscia pamieci. Impuls probkowany jest co 400ps, uzylem ukladow SER/DES ,na 2.5GHz oraz FPGA i wewnetrzenej pamieci. SERDES chodz ina 150MHz Czas opoznienia jest nieograniczony, pod warunkiem ze impuls miescie sie w

1Kx16 pamieci. czyli rejestruje wszystko co popadnie ,wrzucam do bufora, gdy przyjdzie wlasciwy impuls dogrywam pamiec do konca i wlaczam odliczanie. jesli opoznienie ma byc mneijsze niz dlugosc pamieci, wtedy traktuja ja jako FIFO. Jesli wieksze, po zapelnieniu RAM czekam zadana ilosc taktow i wysylam do SER'a zawartosc bufora. Dziala bez zarzutu. mozesz oczywiscie nie uzywac zewnetrzengoSERDES'a i zrobic takowy w srodku FPGA, Cyclone lyknie dane z szybkoscia ok 300MHz.
Reply to
Greg(G.Kasprowicz

Greg, autor watku mowi o milisekundach, a Ty o GHz, buforach, probkowaniu ... z armata na muchy :);

JA

Reply to
JA

chodzi mi o sama idee, zawsze mozna ja przeskalowac w dol.. on potrzebuje 10ns lub lepiej.. dlatego wspomnialem o probkowaniu na 300MHz

Reply to
Greg(G.Kasprowicz

Podlacze sie do watku ;-)

Bede niedlugo potrzebowal (jak podpisza kontrakt) opoznienie z rozdzielczoscia <200ps. Any ideas? Cyfrowo chyba odpada, a jak zrobic analogowo to nie mam pomyslu. Regulowane 10ns-1s, krok <=200ps, jitter jeszcze nie zdefiniowany (ale podswiadomosc sugeruje <50ps)... Wiem, wiem, moge kupic duze bydle wielkosci polowy PCta - ino ja chce to malutkie miec.

Reply to
Jerry1111

Chcesz jitter 50ps przy opóźnieniu 1s ? :)))) Policzyłes ile tam jest zer? Oj, nie wiem czy masz taki gruby portfel :) I żeby było proste i malutkie... Analogowo to ci mogę takie coś zrobić, jak znajdę czas, ale na 10-50ns max. :)

Reply to
A. Grodecki

Jerry1111 wrote

ukladach stratix [moze w innych alterach tez] sa pll-ki programowane 'online', mozna programowac miedzu innymi opoznienie, z takim mniej wiecej skokiem jak podales; jak dotad nie uzywalem, wiec bardziej konkretnej wiedzy nie mam; jesli trzeba opoznic impuls, ktory jest synchroniczny z jakims zegarem, to trzebaby dorabic odpowiednia logike bramkujaca pll, i potezny licznik do odmierzania tej 1s; tzn. licznik odmierzajacy duze czasy, a phase-shift w pll pikosekundy;

ale osobiste wyczucie mowi mi, ze dostaniesz parametry co najmniej

2x gorsze niz napisales;

jesli masz opoznic impuls asynchroniczny, to chyba tylko analogowo, ale slabo wyobrazam sobie 10ns - 1s ze skokiem 200ps, tego to chyba nawet era nie daje :)

JA

Reply to
JA

mam w szufladzie scalaki SERDES na 10GHz..daje to krok 100ps do tego jakis Stratix, i da rade:) minimalny czas opoznienia to jakies 3ns ew uzyc rocketIO z virtexa - daloby go rade skonfigurowac jako prosty serdes i popedzic na 5GHz...

Reply to
Greg(G.Kasprowicz

Sa urzadzenia (Oxford cos tam firma sie nazywa), ktore maja regulowane opoznienie od 1ps do 1s co 1ps ;-) Powszechnie znane i uzywane do synchronizacji laserow.

Kupilbym i uzyl, ale troche za duze rozmiarami (tak z 10x za duze).

Nie ja - klient.

10...50ns to ja se zrobie sam ;-)
Reply to
Jerry1111

Nie wiem czemu o serdes nie pomyslalem. Transmisja 1-go bita ;-) Cyclony beda siedziec ze 3, to se jednego na Stratixa moge zamienic.

martwi mnie tylko jitter jesli to ma byc asynchroniczne...

Na razie jeszcze nieokreslone czy to ma byc sync czy async. Ja chce synchronicznie z jakims zegarkiem - klient jeszcze nie wie sam.

Reply to
Jerry1111

:-0 nie wiedzialem.

To nie problem.

Ja bym chcial... Nawet myslalem o czym w rodzaju opozniania analogowo powiedzmy do 1us, a wieksze opoznienie dodawane licznikiem. Ale wtedy pojawia sie problem licznikow na 10GHz. Siakies rejestry przesuwne pouzywac, czy cos?

Na razie niech sie klient okresli co chce - w 'miedzyczasie' poczytam o Stratixie.

Reply to
Jerry1111

Jerry1111 napisał(a):

No więc domyślasz się, że 1s z rozdzielczością 10^10 analogowo nijak nie zrobisz...

Zobacz tutaj:

formatting link
końcu jest jakiś adres komercyjny www...

A tu masz gotowca. Nieduży! Kto by pomyślał...

formatting link
Nie ma za co :)

Reply to
A. Grodecki

Dzieki ;-)

25ns +/-400ps. Gdyby nie te 400ps, to byloby super. No nic, moze sie nada.
Reply to
Jerry1111

jak sprobujesz, to napisz o efektach :) ja jeszcze nie uzywalem;

musze przyznac, ze czytajac pierwszy raz watek nie do konca zrozumialem idee Grega, teraz wydaje mi sie ona najdowcipniejszym rozwiazaniem i, co najwazniejsze, przetestowanymm w praktyce; altery maja ser-des w sobie, wiec wlasciwie nie trzeba elementow zewnetrznych;

nie wiem po co, nawet w malym fpga masz dosc ff by zrobic licznik na sekunde z dokladnoscia do jjitera zegara;

JA

Reply to
JA

JA napisał(a):

Tak łatwo jest zrobić licznik 34-bitowy z MONOTONICZNYM odmierzaniem dowolnego czasu z jitterem efektywnym na poziomie 200ps mając zegar z okresem 100ps? A jakie będą różnice w ustaleniu wartości licznika miedzy zmianą z

0x1fffffffe na 0x1ffffffff w porównaniu ze zmianą z 0x1ffffffff na 0x200000000 ? Chyba nie bez powodu markowe sprzęty maja błąd pomiaru/generacji wykładniczo rosnący powyżej pewnego progu.
Reply to
A. Grodecki

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.