eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaGenerator sinusoidy od 0 do 400Hz na uC
Ilość wypowiedzi w tym wątku: 18

  • 1. Data: 2009-08-31 20:08:03
    Temat: Generator sinusoidy od 0 do 400Hz na uC
    Od: "Robbo" <p...@a...nie.mam>

    Witam,

    Przymierzam się do wykonania oprogramowania
    mikrokontrolera Atmel AVR ATmega, które
    służyłoby do generowania sinusoidy o częstotliwości
    od 0 do 400Hz. Rozważam tu podejście polegające
    na stablicowaniu próbek połówki sinusoidy i
    "wysyłaniu" ich na zewnętrzny przetwornik cyfrowo
    -analogowy. Zrobiłbym funkcję, która byłaby
    przez "timer" wywoływana z odpowiednią
    czestotliwością (np. 400*256Hz dla częstotliwości
    400Hz i przetwornika 8-bitowego).
    Problem jednak z płynną regulacją częstotliwości
    od 0 do 400Hz. Tzn. wystarczyłaby mi rozdzielczość
    1Hz. Niemniej i tak operując prescalerem i OCR2
    nie da się uzyskać wszystkich możliwych częstotliwości.
    Byłbym wdzięczny za radę, jak rozwiązać ten problem.

    Pozdrawiam,
    Robbo



  • 2. Data: 2009-08-31 20:18:19
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: Zbych <a...@o...pl>

    Robbo pisze:

    > Byłbym wdzięczny za radę, jak rozwiązać ten problem.

    To czego szukasz to DDS:
    http://www.myplace.nu/avr/minidds/index.htm


    --
    przeciez moje rozumowanie bylo bez skazy,
    no sam bym wskoczyl do tego wulkanu,
    ale kto by tak pieknie gwizdal...


  • 3. Data: 2009-08-31 20:21:03
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: "ici" <i...@p...onet.pl>

    Poszperaj na elektrodzie pod hasłem DAC Generator lub Generator sygnałowy.
    Problem jest już rozwiązany i opisany przez innych chobbystów.

    Tez się przymierzałem do tego tematu, znalazłem jedynie kody w Assemblerze i
    skompilowany wsad do AVR-ka.
    Szkoda, że więcej źródła nie znalazłem.


  • 4. Data: 2009-08-31 22:43:02
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: Łukasz Góralczyk <l...@g...com>

    On Mon, 31 Aug 2009 22:08:03 +0200, Robbo wrote:
    [ciach]
    > do 400Hz. Rozwa?am tu podej?cie polegaj?ce na stablicowaniu próbek
    > po?ówki sinusoidy i "wysy?aniu" ich na zewnetrzny przetwornik cyfrowo

    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.

    > -analogowy. Zrobi?bym funkcje, która by?aby przez "timer" wywo?ywana z
    > odpowiedni? czestotliwo?ci? (np. 400*256Hz dla czestotliwo?ci 400Hz i
    > przetwornika 8-bitowego).

    Chyba bardziej poprawnie "400 Hz * 256" dla 256 próbek :) .

    > Problem jednak z p?ynn? regulacj? czestotliwo?ci od 0 do 400Hz. Tzn.
    > wystarczy?aby mi rozdzielczo?ae 1Hz. Niemniej i tak operuj?c prescalerem
    > i OCR2 nie da sie uzyskaae wszystkich mo?liwych czestotliwo?ci. By?bym
    > wdzieczny za rade, jak rozwi?zaae ten problem.

    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.

    --
    Łukasz.


  • 5. Data: 2009-09-01 08:59:35
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: Sylwester Łazar <g...@a...pl>

    > 1Hz. Niemniej i tak operując prescalerem i OCR2
    > nie da się uzyskać wszystkich możliwych częstotliwości.
    > Byłbym wdzięczny za radę, jak rozwiązać ten problem.
    >
    > Pozdrawiam,
    > Robbo
    Tak jak kolega napisał, to czego Pan potrzebuje to pewnie koncepcja DDS.
    Trzeba ją dobrze przestudiować. To nie jest trudne.
    Najważniejsza sprawa to tzw. akumulator fazy np. 32- bitowy.
    Wyjaśnia to karta:
    www.alpro.pl/HSP45102.pdf
    do takiego akumulatora dodaje się sprzętowo, co tak zegara (np. 40MHz)
    wartość odpowiadającą częstotliwośc pożądanej.
    Trzeba to policzyć.
    Do tablicy, którą kolega chce zrobić, należy brać np. najstarsze 13 bitów z
    akumulatora fazy
    Trzeba mieć na uwadze, że sygnał z DDS jest stabilny częstotliwościowo, ale
    słaby ze względu na glitche,
    czyli drgania zboczy.
    Zależy do czego ma służyć ten generator. Może RC sterowany uC będzie lepszy?

    --
    -- .
    pozdrawiam
    Sylwester Łazar
    http://www.alpro.pl
    http://www.rimu.pl -oprogramowanie do edycji schematów
    i projektowania PCB


  • 6. Data: 2009-09-01 18:02:05
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: "wt" <s...@p...onet.pl>

    > Przymierzam się do wykonania oprogramowania
    > mikrokontrolera Atmel AVR ATmega, które
    > służyłoby do generowania sinusoidy o częstotliwości
    > od 0 do 400Hz.

    Dlaczego robi się takie komplikacje. Czy nie wystarczy przepuścić prostokąt
    przez mały transformatorek i otrzymamy naturalną, ładną ekologiczną
    sinusoidę.



  • 7. Data: 2009-09-01 19:00:38
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: "Papa Smerf" <P...@z...zalasami.trala.la>

    Órzytkownik "wt" napisał:
    > Dlaczego robi się takie komplikacje. Czy nie wystarczy przepuścić
    > prostokąt przez mały transformatorek i otrzymamy naturalną, ładną
    > ekologiczną sinusoidę.

    bo to jest modne, na topie, w technologii mikroprocesorowej, na dodatek jak
    sie wykona za pomocą wypasionych narzędzi programistycznych to będzie
    zajebisty generator zwykłej sinusoidy:O)


  • 8. Data: 2009-09-01 19:48:28
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: J.F. <j...@p...onet.pl>

    On Tue, 1 Sep 2009 20:02:05 +0200, wt wrote:
    >> Przymierzam się do wykonania oprogramowania
    >> mikrokontrolera Atmel AVR ATmega, które
    >> służyłoby do generowania sinusoidy o częstotliwości
    >> od 0 do 400Hz.
    >
    >Dlaczego robi się takie komplikacje. Czy nie wystarczy przepuścić prostokąt
    >przez mały transformatorek i otrzymamy naturalną, ładną ekologiczną
    >sinusoidę.

    I otrzymamy nieladny prostokat :-)
    No chyba ze transformator bedzie za maly, to wtedy otrzymamy cos
    zupelnie innego.

    J.


  • 9. Data: 2009-09-01 20:23:11
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: "Papa Smerf" <P...@z...zalasami.trala.la>

    Órzytkownik "J.F." napisał:
    > I otrzymamy nieladny prostokat :-)
    > No chyba ze transformator bedzie za maly, to wtedy otrzymamy cos
    > zupelnie innego.

    to był tylko jeden z wielu pomysłów, podejrzewam że najprostszy,
    a jak chcesz idealną sinusoidę to robisz prosty generator sinusoidalny
    sterowany napięciem i to napięcie możesz podawać z procesorka, proste i
    super wypasione?:O)


  • 10. Data: 2009-09-01 20:58:18
    Temat: Re: Generator sinusoidy od 0 do 400Hz na uC
    Od: RoMan Mandziejewicz <r...@p...pl>

    Hello wt,

    Tuesday, September 1, 2009, 8:02:05 PM, you wrote:

    >> Przymierzam się do wykonania oprogramowania
    >> mikrokontrolera Atmel AVR ATmega, które
    >> służyłoby do generowania sinusoidy o częstotliwości
    >> od 0 do 400Hz.
    > Dlaczego robi się takie komplikacje. Czy nie wystarczy przepuścić prostokąt
    > przez mały transformatorek i otrzymamy naturalną, ładną ekologiczną
    > sinusoidę.

    Że co?


    --
    Best regards,
    RoMan mailto:r...@p...pl
    Spam: http://www.allegro.pl/sklep/7416823_squadack :)

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: