Skocz do zawartości

Regulacja częstotliwości enkoderem STM32F0


Feynman

Pomocna odpowiedź

Cześć,

załóżmy, że wygenerowałem przebieg sinusoidalny(składający się z 1000 próbek) przy użyciu DAC wyzwalanego Timerem6 w STM32F303VCTx. Przebieg ten ma częstotliwość równą Freq = 72MHz/1000(próbek)/3(prescaler)/1(counter period) = 24 kHz. Czy jest możliwość płynnej regulacji częstotliwości w zakresie od 0 do 24 kHz programowo?(myślałem nad wrzucaniem liczby zmiennoprzecinkowej np do counter period ale niestety, timer przyjmuje tylko liczby całkowite). Czy lepiej regulować ją jakimś układem elektronicznym? 

  • Lubię! 1
Link do komentarza
Share on other sites

Tego nie robi się w ten sposób. Po pierwsze napisz do czego to ma być. Po drugie zastanów się jakie pasmo analogowe Cię interesuje. Po trzecie koniecznie przeczytaj (dowolną liczbę razy, aż dobrze zrozumiesz) o idei DDS (tzw. Direct Digital Synthesis). Poniżej masz link na coś na początek. Analog pisze tak by wyszło na to, że jego scalaki DDS są najlepsze i niezastąpione - w pewnych przypadkach tak jest i możesz tak postąpić, ale możesz też zrobić taki generator czysto programowo na procesorze i stałej częstotliwości przerwań od timera (który nota bene tylko wyzwala transfer kolejnej próbki z RAMu do DACa przez DMA, bo sam program to jednak jitter i dodatkowe szumy - od tego masz mocny procesor by z niego korzystać). Przecież CD-audio czy radio DAB czy komputer odtwarzający muzyczkę ze Spotify nie zmieniają częstotliwości próbkowania wysyłając do głośnika różne dźwięki, prawda? Ty też nie musisz.

https://www.analog.com/en/analog-dialogue/articles/all-about-direct-digital-synthesis.html

 

  • Lubię! 1
Link do komentarza
Share on other sites

Chciałbym zrobić generator funkcyjny nie używając scalonego układu generatora ADXXXX. Offset mogę regulować programowo, napięcie potencjometrem, tylko zastanawiam się jak regulować częstotliwość(tu mam trochę chaos w głowie). 

Link do komentarza
Share on other sites

Acha, wciąż się zastanawiasz? A nad czym? Bo przecież dostałeś na talerzu rozwiązanie. Może tak: jeszcze raz przeczytaj powoli cały mój post a potem artykuł który podlinkowałem. Tam jest napisane jak masz to zrobić. W razie wątpliwości pytaj o szczegóły, ale tylko wtedy gdy zrozumiesz jak działa DDS - przecież to nie jest nazwa jakiegoś magicznego bloku sprzętowego w konkretnym scalaku tylko pewnej ogólnej metody syntezy częstotliwości, a jej właśnie potrzebujesz. Nie ma sensu żeby po raz któryś na łamach Forum to tłumaczyć skoro jest tyle dobrej literatury. To nie jest żaden rocket science tylko proste dodawanie modulo, które STM32 zrobi z palcem w.. nosie. Jeśli skończyłeś podstawówkę albo gimnazjum to zrozumiesz. Do roboty.

Edytowano przez marek1707
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.