- posted
14 years ago
Generator sinusoidy od 0 do 400Hz na uC
- Vote on answer
- posted
14 years ago
Robbo pisze:
To czego szukasz to DDS:
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
On Mon, 31 Aug 2009 22:08:03 +0200, Robbo wrote: [ciach]
Wystarczy zrobić tablicę dla 1/4 i potem odpowiednio czytać wartości (w przód/w tył), ale jeśli pamięci w zapasie to można wrzucić 1/2.
Chyba bardziej poprawnie "400 Hz * 256" dla 256 próbek :) .
Hmm... ciężko. Przyszło mi do głowy żeby generować sinusoidę ze zmienną liczbą próbek na okres. Tę liczbę próbek tak dobierać aby pojedynczy kwant czasu był wielokrotnością możliwego kwantu uzyskiwanego z przerwania od timera. Np. dla 400 Hz i 100 próbek (na okres) musisz wysyłać próbkę co 25 us. Ustalasz sobie tick zegara na np. 2,5 us (4 MHz,
8 MHz i prescaler na 2, itd.) i co dziesiąty tik timera wysyłasz próbkę (korzystając z trybu CTC). Dla 399 Hz dobieramy ilość próbek tak alby przerwanie generowało się co wielokrotność 2,5 us, np. dla 125 wychodzi że trzeba wystawiać próbkę co 20,05 us czyli co ok. 8 taktów zegara timera. Dla 398 Hz i 84 próbek generujesz przerwanie co 29,91 us ~= 30 us => 12 taktów zegara i tak dalej. Lepiej zastosować szybkie taktowanie procesora, powinno być więcej rezerwy, można zejść niżej z tym kwantem (dla 10 MHz masz cykl 0,1 us, czyli 20 us to 200 instrukcji /realnie ze 140/). Do policzenia optymalnej liczby próbek dla danego kwantu i częstotliwości lepiej użyć stacjonarny komputer i zrobić z tego tabelkę - obliczenia raczej proste ale sinus by się musiał wstrzymać na trochę. Przy tej metodzie zawsze będziesz miał jakąś odchyłkę od całkowitej liczby Hz (błąd łatwo policzyć). Przy wyższych częstotliwościach CPU będzie i czas na inne rzeczy (np. miganie diodą).Inne rozwiązanie to generator sterowany napięciem + precyzyjny przetwornik D/A - ładny sinus, łatwe sterowanie.
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
I otrzymamy nieladny prostokat :-) No chyba ze transformator bedzie za maly, to wtedy otrzymamy cos zupelnie innego.
J.
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
Że co?
- Vote on answer
- posted
14 years ago
Bo te komplikacje w pewnych sytuacjach moga być najłatwiejszym i najtańszym rozwiązaniem problemu. Juz się nawet nie opłaca mrygałki robic na tranzystorach kiedy obok leży uC za $1.
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago
Witam,
marko1a pisze:
Podstawowa wada tego rozwiązania to cena. :) Po ile stoją teraz te układy w detalu? Kiedyś to chyba ponad 50zł na coś takiego chcieli, choć ten co podałeś to zdaje się staroć...
- Vote on answer
- posted
14 years ago
- Vote on answer
- posted
14 years ago