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 zbudować stabilny generator prostokątny 1kHz-1MHz z cyfrowym strojeniem?

bindaz 05 Sty 2007 15:22 2079 4
REKLAMA
  • #1 3408628
    bindaz
    Poziom 14  
    Posty: 113
    Pomógł: 7
    Ocena: 6
    Witam!
    Chciałem zasięgnąć porady i pomocy bardziej doświadczonych kolegów w rozwiązaniu mojego zadania. Muszę zbudować generator prostokąta o wypełnieniu 1:1 ,bardzo stabilny i przestrajany cyfrowo (przyciski góra dół) z krokiem max 10Hz. Zakres częstotliwości to praktycznie od 1kHz do 1MHz.
    Co koledzy by zasugerowali. Jeden ze znajomych podsunął mi pomysł VCO z PLL, ale zupełnie nie mam pojęcia jak się za to zabrać.
    Za wszelkie sugestie i pomoc będę bardzo wdzięczny.
    Może ktoś zna układ takiej syntezy lub gotowy moduł do zrobienia.
  • REKLAMA
  • #2 3408774
    tszczesn
    Specjalista - oldradio
    Posty: 2495
    Pomógł: 383
    Ocena: 184
    bindaz napisał:
    Witam!
    Chciałem zasięgnąć porady i pomocy bardziej doświadczonych kolegów w rozwiązaniu mojego zadania. Muszę zbudować generator prostokąta o wypełnieniu 1:1 ,bardzo stabilny i przestrajany cyfrowo (przyciski góra dół) z krokiem max 10Hz. Zakres częstotliwości to praktycznie od 1kHz do 1MHz.
    Co koledzy by zasugerowali. Jeden ze znajomych podsunął mi pomysł VCO z PLL, ale zupełnie nie mam pojęcia jak się za to zabrać.
    Za wszelkie sugestie i pomoc będę bardzo wdzięczny.


    A nie prościej zrobić to na mikrokontrolerze. To tylko jeden scalak, osiągasz stabilność taką samą jak generator napędzający procesror, możesz użyć modułu termostatyzowanego generatora, to dostaniesz stabilność nawet rzędu 0.1ppm. Program do tego jest prosty, jako dodatkowy bonus dostajesz możliwość wyświetlania generowanej częstotliwości na wyświetlaczu. IMO dużo łatwiej niż bawić się w pętle PLL, męczyć z detektorem fazy i przestrajanym (i to u ciebie naprawdę szerokopasmowo) generatorem.
  • REKLAMA
  • #3 3410174
    tamam
    Poziom 17  
    Posty: 115
    Pomógł: 25
    Ocena: 2
    tszczesn napisał:

    A nie prościej zrobić to na mikrokontrolerze. To tylko jeden scalak, osiągasz stabilność taką samą jak generator napędzający


    Obawiam sie, ze zaden typowy mikrokontroler nie da tu rady. Gdy tylko czestotliwosc sygnalu wyjsciowego wzrosnie powyzej kilkunastu (kilkudziesieciu kHz) nie bardzo widze mozliwosc zmian czestotliwosci z krokiem max 10Hz jak chcialby bindaz. Czy probowales zrobic dla czestotliwosci kilkuset kHz? (np gdy f=1MHz tzn okres T= 1µs)
    Prosze wtedy tylko sprobowac podzialac cos na przerwaniach (a i ich czas obslugi i wywolanie +kilka taktow?). A jak czasowo wyrobisz sie z funkcjami klawiatury i wyswietlania jak proponujesz? Nawet programowalne wewnetrznie liczniki przy wyzszych czestotliwosciach (kilkadziesiat kHz to juz duzo) traca mozliwosc "przestrajania" nie tyle o te 10Hz, ale o kilka "KILO"Hz.
    Nawet chyba uklady z wbudowanym PWM nie dadza rady (wypelnienie ma byc przeciez 1:1, ale to mozna latwo obejsc przez dodanie zwyklego przerzutnika T na wyjsciu i przebieg bedzie mial 1:1, tylko czestotliwosc zmaleje 2x).

    Ten mikrokontroler, to swietny pomysl, ale jako czasc sterujaca, a nie jedna magiczna (w tym akurat zastosowaniu) kostka.
    Jezeli juz µC, to bez zewnetrznych ukladow "wspomagajacych" sie nie obejdzie.
    Ja radzilbym mimo wszystko "normalna" synteze czestotliwosci, chociaz ten krok=10Hz dla wyzszych czestotliwosci bedzie dosc uciazliwy (i trudny) do uzyskania.
  • REKLAMA
  • #4 3410948
    tszczesn
    Specjalista - oldradio
    Posty: 2495
    Pomógł: 383
    Ocena: 184
    tamam napisał:

    Obawiam sie, ze zaden typowy mikrokontroler nie da tu rady. Gdy tylko czestotliwosc sygnalu wyjsciowego wzrosnie powyzej kilkunastu (kilkudziesieciu kHz) nie bardzo widze mozliwosc zmian czestotliwosci z krokiem max 10Hz jak chcialby bindaz. Czy probowales zrobic dla czestotliwosci kilkuset kHz? (np gdy f=1MHz tzn okres T= 1µs)
    Prosze wtedy tylko sprobowac podzialac cos na przerwaniach (a i ich czas obslugi i wywolanie +kilka taktow?). A jak czasowo wyrobisz sie z funkcjami klawiatury i wyswietlania jak proponujesz? Nawet programowalne wewnetrznie liczniki przy wyzszych czestotliwosciach (kilkadziesiat kHz to juz duzo) traca mozliwosc "przestrajania" nie tyle o te 10Hz, ale o kilka "KILO"Hz.
    Nawet chyba uklady z wbudowanym PWM nie dadza rady (wypelnienie ma byc przeciez 1:1, ale to mozna latwo obejsc przez dodanie zwyklego przerzutnika T na wyjsciu i przebieg bedzie mial 1:1, tylko czestotliwosc zmaleje 2x).


    W sumie masz rację - myślałem o częstotliwości,a przecież tu trzeba odmierzać czas (okres), faktycznie przy wyższych czestotliwościach nie wyjdzie. Choć może jakby z algorytmami DDS pokombinować to może by się dało, choć raczej prościej by było na jakimś sygnałowcu.
  • #5 3418054
    bindaz
    Poziom 14  
    Posty: 113
    Pomógł: 7
    Ocena: 6
    Witam kolegów!
    Dzięki za sugestie. Niestety w mikrokontrolerach nie jestem orłem, więc programiku sam nie spłodzę. Wszelką pomoc z tego tematu chętnie przyjmę chociaż w moim wieku nauka już ciężko idzie. Bardzo mi zależy na tym generatorze, szczególnie na tym by był stabilny. Oczywiście są w handlu takie gotowe urządzenia ale pomijając wysoką cenę to nie oto chodzi żeby kupić.
    Znalazłem w "necie" coś podobnego, co pewnie spełniało by moje oczekiwania. Generator (DDS) sterowany z 2313. Niestety na trochę dziwnych i nieosiągalnych elementach zza wschodniej granicy (Wyświetlacz numeryczny z szeregowym wpisem i jakiś dziwny DAC).
    Załączam schemat i źródło programu w assemblerze do 2313. Może komuś z kolegów udałoby się to przerobić na inny dostępny wyświetlacz a za tego 10-bitowego DAC-a podłożyć jakiś inny i odpowiednio zmodyfikować program.
    Pozdrawiam. Jeszcze raz proszę o pomoc.
    Załączniki:
    • Generator.zip (30.73 KB) Musisz być zalogowany, aby pobrać ten załącznik.
REKLAMA