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 zrobic na procku generator sinusa trojkata i pily i ...

Jethro 29 Lis 2003 00:48 10437 34
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak zbudować na mikrokontrolerze generator sinusoidy, trójkąta, piły i innych przebiegów oraz jak regulować częstotliwość wyjściową?

Najprościej zrobisz taki generator przez DAC albo nawet prostą 8-bitową drabinkę rezystorową 1k/2k/4k/8k/16k/32k/64k/128k z wtórnikiem, a mikrokontroler ma wtedy podawać kolejne próbki przebiegu [#418257] Sinus zapisujesz w tablicy w pamięci, a piłę, trójkąt, prostokąt i trapez możesz generować programowo z kilku parametrów, np. czasu narastania, opadania, trwania i opóźnienia [#418281] Częstotliwość zmieniasz przez tempo wywołania przerwania timera albo wartość autoładowania timera, czyli przez liczbę próbek na okres [#418281] Jeśli chcesz bardzo płynną zmianę częstotliwości, zastosuj DDS z akumulatorem fazy, bo daje bardzo dużą rozdzielczość strojenia [#550899]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 418244
    Jethro
    Poziom 17  
    Posty: 264
    Pomógł: 28
    Ocena: 4
    Jak zrobic na procesorku np. serii X51 lub AVR 2313 generator sinusa trojkata ,pily i innych sygnalow. Czy to trudne i jak zmieniac czestotliwosc wyjsciowa tych przebiegow?
  • REKLAMA
  • #2 418257
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Najlepiej byłoby zbudować jakikolwiek przetwornik C/A i za jego pomocą generować przebiegi. Najprostszy taki przetwornik to 8 rezystorów o wartościach w kolejności np. D7 - 1k, D6 - 2k, D5 - 4k, D4 - 8k, D3 - 16k, D2 - 32k, D1 - 64k, D0 - 128k i to wszystko. Drugie końce rezystorów podłączyć razem. Do tego przydałby się jakiś wtórnik i po sprawie. Dla perfekcjonistów - można użyć DSP, ale to rozwiązanie drogie i dość kłopotliwe.
    Pozdrawiam.
  • REKLAMA
  • #3 418281
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Miałem taki projekt na uczelni, zrobiliśmy to troche metodą "studenta" żeby się jak najmniej napracować. Otóż chodzi sobie procedura na timerze która wysyła kolejne próbki z pamięci do DAC, ilość próbek jest regulowana zmienną. W przypadku sinusa ustawiamy obszar zmiennych na stałą tablice w pamięci procka, w innym przypadku mamy procedure która generuje próbki pobierając 4 wartości (0-255) czas opóźnienia, czas narastania, czas "trwania", czas opadania. Na podstawie tych wartości są generowane próbki i obliczana jest ilość próbek. Timer pracował w trybie autoładowania (był to procesor SAB80535) i wartością ładowaną regulowaliśmy częstotliwośc (0-255). Przeliczanie częstotliwości z "magicznych" stałych uznaliśmy za zbyt skomplikowane (czytaj sesja się zbliżała) i projekt był zaliczany w takiej postaci. Na podstawie tych 4 zmiennych można generować dowolne sygnały piły, trójkąta, prostokąta i trapezu.
  • #4 418548
    h-doc
    Poziom 27  
    Posty: 1208
    Pomógł: 57
    Ocena: 21
    jest taki stary scalaczek - ICL8038 czy jakoś tak - generuje prostokąt, sinus i trójkąt do jakichś 100kHz. Strojenie odbywa się poprzez zmianę stałej czasowej obwodu RC. Więc może coś takiego? Z drugiej strony do takich rzeczy świetnie nadają się układy DSP. Najciekawsze są metody generacji sinusoidy (są co najmniej 3).
  • #5 418562
    CKsrv
    Poziom 32  
    Posty: 2378
    Pomógł: 8
    Ocena: 87
    ja tylko powiem xr2206 i max038
  • #6 418602
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Ten ostatni jest godny polecenia (MAX038). Ma jednak jedną zasadniczą wadę - wysoką cenę. Poza tym może być.
    Pozdrawiam.
  • #7 418834
    CKsrv
    Poziom 32  
    Posty: 2378
    Pomógł: 8
    Ocena: 87
    zapewniam cie ze max moze byc tanszy niz myslisz - ja mam 2 :)
    Nic wiecej nie powiem główkujcie.
  • REKLAMA
  • #8 418859
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Eee, po co. Prywatnie zamierzam robić moduł z DSP zapięty na magistrali komputera, nie będę sobie głowy zawracał MAX'em. To była tylko propozycja.
    Pozdrawiam.
  • #9 419203
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    w sumie generator pily nie jest taki trudny - tylko dwie funkcje proste. Wlasciwie to tylko jedna a nachylenie inne. W tej chwili nie bardzo pamietam z matmy ale to sie chyba wyraza wzorem y=ax+b. Y to jest wartosc ktora dostaniemy, X to aktualna wartosc czasu, a to wspolczynnik nachylenia, a b w tym przypadku mozna pominac(zaczynamy od zera). Jest to dosyc proste nawet w asemblerze(nie wiem bo nie umiem) ale wystarczy pomnozyc dwie liczby - tyle to chyba sie zalatwia jednym poleceniem. Trojkat jest prost ale sinus? chyba tylko jezyki wysokiego poziomu albo wartosci z tablicy. Co do wyjascia to rzeczywiscie przydalby sie jakis DAC.
  • REKLAMA
  • #12 419983
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    Nemo napisał:
    zamierzam robić moduł z DSP zapięty na magistrali komputera

    to rozwiązanie to juz "luksus" . Też przymierzam się do tego i stawiam na TMS320F241 i TLC320AC01 jak widać oba scalaki dostępne są jako sample w TI. A może jast ktoś na forum co juz wykonał podobne urządzonko ??.

    Tu jest pare informacji i plików:
    ftp://ftp.mlabsys.com/sft/
    http://www.musicdsp.org/
    http://www.mlabsys.com/
    http://141.19.61.198/fa/Daten_FH.htm
  • #13 420028
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Myślę raczej o czymś Analog Devices. Raczej starszym. Kiedyś w 1995 roku był ciekawy artykuł o generatorze na DSP. Pójdę tym śladem, tylko pewnie zastosuję coś nowszego. Ale to raczej sprawa na później. Na razie jestem załadowany. Jak coś wykombinuję, dam na forum.
    Pozdrawiam.
  • #14 420035
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    Nemo napisał:
    Kiedyś w 1995 roku był ciekawy artykuł o generatorze na DSP.
    masz na mysli artykuł w Elektorze o karcie do PC z procem DSP Analoga ??. czy coś innego.
  • #15 422552
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Tak, ten sam. ADSP2105. Niestety, chyba jest on trochę za cienki do tak wysokiej ceny. Patrzyłem na notę ADSP2101. Ciekawe, i wytrzymuje na dodatek 25MHz. Szybko jednak doszedłem to pewnego wniosku.
    DSP jest bardzo dobrym narzędziem do obróbki dźwięku. Do generowania prostych przebiegów jego użycie jest po prostu marnotrawieniem mocy obliczeniowej. Pomyślałem chwilę i doszedłem do wniosku, że zastosowanie jakiegoś szybkiego AVR'a z przetwornikiem 16 bit może załatwić sprawę i będzie tańsze. Być może zweryfikuję to twierdzenie w praktyce.
    Pozdrawiam.
  • #16 423575
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    Nemo napisał:
    DSP jest bardzo dobrym narzędziem do obróbki dźwięku. Do generowania prostych przebiegów jego użycie jest po prostu marnotrawieniem mocy obliczeniowej.

    jeszcze raz zachęcam Cie do zapoznaia się z 320F241. Jest darmowy a więc nic nie tracisz. A czy jest to marnowanie mocy, ja bym powiedział, że wykorzystanie możliwości proca nie w pełni ale.... :-).
    Pozdrawiam i zachęcam wszystkich do zapoznania się z techniką DSP. W pewnych dziedzinach (projektach) nie da się uciec od tych procków. Zastąpienie innym '51 czy AVR-em to zbedne komplikowanie PCB i softu a tu wszystko w jednym. Moze i na tym forum z czasem powstanie "kółko dyskusyjne o DSP" Byłoby SUPER.
    Nara.
  • #17 424585
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Tak, masz rację, ale... Zawsze muszę mieć jakieś ale :D
    W przypadku darmowych próbek jest takie niebezpieczeństwo, że po okresie próbnym, scalaki te są dostępne np. w ilościach powyżej 10.000 sztuk. Czyli konstrukcja nie może być powielona bez trudu. Jeśli zbuduję coś na popularnych elementach mam niejako gwarancję, że będzie to odtwarzalne i jutro, i być może za rok. Poza tym jak coś mi się zepsuje, nie będę tego miał jak naprawić.
    I jeszcze jedno. Programowanie. Konieczność nauki nowego asemblera, poszukiwanie (lub pisanie własnych) narzędzi do pracy i tym podobne. W przypadku popularnych układów albo coś mam gotowego, albo jestem w stanie napisać. Dlatego na razie raczej myślę o jakimś AVR'rze.
    Pozdrawiam.
  • #18 426327
    Jethro
    Poziom 17  
    Posty: 264
    Pomógł: 28
    Ocena: 4
    Dzieki za pomoc. Na pewno cos z tego wykorzystam bo chcialbym miec jakis generatorek,a procki stwarzaja niezle mozliwosci, a jeszcze jak jest tak fajnie to polaczone z kompem to jeszcze fajniej.
    Dzieki za odpowiedzi

    Zapomnialem zapytac o to czy moge w czasie pracy programu zmieniac wartosc timera bo chcialbym zmieniac czestotliwosc i chyba trzeba zastosowac wewnetrzny timer tylko nie wiem jak zmieniac ten czas czy jakies petle, warunki zastosowac??
  • #19 540874
    Sanjuro
    Poziom 18  
    Posty: 300
    Pomógł: 6
    Ocena: 7
    NEMO po pierwsze w przypadku TI (jak zerszta i innych producentow scalakow) probki sa dla celow testowych, prototypowych itp. Wiec okres nie ma czegos takiego jak okres probny. To producent usatala czy dac cos jako probke, czy nie.

    Po drugie wkurzyles mnie swoja odpowiedzia ...po okresie próbnym, scalaki te są dostępne np. w ilościach powyżej 10.000 sztuk. Czyli konstrukcja nie może być powielona bez trudu. Chciales skur... sprzedawac produkty zrobione na probkach? Nie umiesz angielskiego? Nie wiesz, ze probki sa dostepne TYLKO DLA CELOW NIE KOMERCYJNYCH co znaczy ze NIE robimy masowaj produkcji na probkach :evil: !!! Probki sa reklama, ktora ma celu pozniejsze kupno masowe tych ukladow scalonych, ktore reprezentuje probka!!!
    Moglem sie spodziewac tego po innych, ale nie po Specjaliscie 1 poziomu!
  • #20 541100
    h-doc
    Poziom 27  
    Posty: 1208
    Pomógł: 57
    Ocena: 21
    Sanjuro - co się tak wściekasz? To przecież oczywiste - sam miałem ten problem. Co z tego, że mogę sobie zamówić 1 próbkę i zrobić jedno urządzenie, jeśli do wyprodukowania kilku kolejnych będę musiał kupić 10.000 sztuk?

    To jest duży problem w Polsce - dostępność układów. Co innego zamówić darmową próbkę, a co innego kupić w Polsce ten sam układ. Wiem, bo straciłem kupę czasu podczas mojego ostatniego projektu, żeby tak dobrać wszystkie układy scalone, żeby były one bez problemu dostępne w Polsce w ilościach detalicznych i po rozsądnej cenie. Nigdy nie miałeś takiego problemu?
  • #21 541385
    Sanjuro
    Poziom 18  
    Posty: 300
    Pomógł: 6
    Ocena: 7
    Sorry, ale jestem ostatnio podminowany, bo szukam pewnego scalaczka i co znajde cos co mi odpowiada do potrzeb, to Polska jest poza lista programu darmowych probek (a najpierw trzeba sprobowac czy to jest to co sie spodziewam, nie jestem bogaty, by kupowac kazdy scalak jaki po przejrzeniu pdf'a stwierdze, ze sie nada do moich celow, a nieraz nawet jestem gotow zaplacic, ale cos olewaja ludzi z Polski :( ). A takie cos ma miejsce z kilku przyczyn:

    1) Nasz ukochany rzad nie chce by Polska sie rozwijala technologiczie (wysokie: ceny, stawki VAT, oplaty celne - a wszystko po to bo trzeba tych ***** utrzymywac :evil: )

    2) Wcholere jest ludzi, ktorzy mysla, ze tanim kosztem sie dorobia (cos jak urzednicy i poslowie, z tym, ze ci musza sie o 1 stopien wiecej trudzic) albo na sprzedarzy samych probek albo na urzadzeniach zbudowanych z probek (oczywiscie licza sobie cene jakby to kupili, zaplacili clo i VAT)

    A to co sugeruje NEMO to podchodzi pod punkt 2 (chyba, ze zle mnie nauczyli w szkole czytac :? ) czyz nie?

    Co do tych 10,000 sztuk to przesadzacie. Duzo firm orientuje sie, ze nie zawsze produkcja jest az tak masowa. TI sprzedaje tez mniejsze ilosci (chyba specjalnie dla biedna Polska firma :P ). A co do wysokich cen... patrz punkt 1 :(
  • #22 542974
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    :arrow: Sanjuro: No toś mnie bracie wkurzył... :evil:
    Bezmyślność twojej wypowiedzi mogę jedynie tłumaczyć twoim brakiem doświadczenia. Pomyśl logicznie...
    Miałem na myśli, że zrobię sobie prototyp jakiegoś urządzenia na próbce - spodobało mi się, mam odbiorców powiedzmy na 100 sztuk. A tu dowiaduję się, że muszę kupić 10.000 i to przez pośrednika z np. Niemiec, bo na skutek handlu próbkami w Polsce nasz kraj ma embargo na właśnie ten typ układu.
    Nie wiem, jak z mojej wypowiedzi można było wyciągnąć tak absurdalne wnioski, jakie napisałeś. Jak widać, daj człowiekowi słowo, a on dopisze całą encyklopedię...
    :!: Nie oskarżaj nikogo pochopnie, zanim nie poznasz sprawy. Bo trafisz pewnego razu na kogoś, kto wyegzekwuje przeprosiny w bardziej drastyczny sposób. :!:
    Pozdrawiam.
  • #23 543899
    Kwiatek X
    Poziom 12  
    Posty: 61
    Pomógł: 1
    Ocena: 2
    JA PIER.ICZE! Ludzie! DSP do generowania sinusai i piły!? może jeszcze wahadłowiec kosmiczny do transportu węgla?! :D Czy słyszycie co wy piszecie????? Inaczej. Czy wiecie co znaczy : "Przerost formy nad treścią" No chyba że macie za dużo czasu, kasy, lub w celach naukowo-hobbystycznych. Swoją drogą chciałbym zrobić sobie mrugającą diodę LED, co proponujecie, ATMega, PowerPC, Sun Silicon Graphics? .................
  • #24 544044
    Veteran
    Poziom 16  
    Posty: 224
    Ocena: 5
    :arrow:Kwiatek X
    A co cie tak boli w pomysle zaprzegniecia do budowy generatora procesora DSP? DSP wchodzi we wszystkie dziedziny zycia i znajomosc obslugi procesora jest jak najbardziej na miejscu. Zreszta, twoja sprawa...
  • #25 544083
    Kwiatek X
    Poziom 12  
    Posty: 61
    Pomógł: 1
    Ocena: 2
    Ano w pełni się zgadzam że jest to temat na czasie, jednak bydowanie generatora sinus na nim, chyba przyznasz że to jak strzelanie z armaty do mrówki. Przyznasz też że DSP to nie byle peryferia tylko PROCESOR za którym 51 "nie nadąży", nie mówiąc o tym że większość DSP ma 16 bitową architekturę i przetwarzają dane w czasie rzeczywistym- z resztą po co o tym pisać.... Jak się ktoś upiera nad takim rozwiązaniem- życzę powodzenia i sory że się wtrąciłem......
  • #26 544118
    h-doc
    Poziom 27  
    Posty: 1208
    Pomógł: 57
    Ocena: 21
    Kwiatek X - zrób dobry generator sinusa pracujący do 1MHz z 32-bitową precyzją, z odpowiednio małym THD, z możliwością modulacji AM i FM itd. na 8051...
  • #27 544914
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    h-doc napisał:
    Kwiatek X - zrób dobry generator sinusa pracujący do 1MHz z 32-bitową precyzją, z odpowiednio małym THD, z możliwością modulacji AM i FM itd. na 8051...
    Ciekawe który DSP coś takiego potrafi.
  • #28 545017
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Są takie DSP, ale kosztują dość dużo... (o ile dobrze zrozumiałem intencje przed-przedmówcy, chyba z 500 MIPS wystarczy) :)
    Poza tym generator na DSP i piła, czy sinus to tylko jedno z zastosowań. Do tego można wrzucić naprawdę sporo, a w szczególności przebiegi o bardzo dziwnym wyglądzie. A coś mi się wydaje, że w złomowanych nagrywarkach Philips CDD-2600 i pokrewnych jest właśnie ADSP2105 w PLCC. Coś takiego można kupić za grosze, a w środku jest jeszcze kilka podobnie ciekawych scalaczków (np. MC68000, czy spory Flash).
    Pozdrawiam.
  • #29 550285
    Kwiatek X
    Poziom 12  
    Posty: 61
    Pomógł: 1
    Ocena: 2
    Buahahahahaaaa!!!!!!!!!! :lol:

    "Kwiatek X - zrób dobry generator sinusa pracujący do 1MHz z 32-bitową precyzją, z odpowiednio małym THD, z możliwością modulacji AM i FM itd. na 8051..."

    A po co komu taka precyzja!!!!!!! Pamiętaj kolego że nawet najlepsze DSP żadko mają przetwornik C/A o rozdzielczości większej niż 20bit (o rzeczywistej dokładności około 18bit) dlaczego? Ano dlatego że większej rozdzielczości nie ma sensu robić, rozdzielczość 16 bitów można traktować jako wzorcową. Przy rozdzielczości 32bitów nap. odniesienia musiałoby być dzielone na 4 294 967 296 poziomów czyli przy nap. odn. 5V , na LSB przypadałoby 0,0000000012 V (!) Pytam zatem co dać na wyjściu takiego przetwornika (o ile taki istnieje) aby tak małego napięcia nie zaszumić???
    ....a na 8051 takiego generatora nie zrobię, ty na DSP też.... ale chyba nie o to chodziło autorowi pierwszego posta z tej serii. Nemo proponował 8bitową drabinkę rezystorową to jak najbardziej nadaje się do takich zastosowań, tani DAC08 da już całkiem zadowalające przebiegi, zastosowanie 12bitowego DAC da profesfonalny generator w.w. funkcji
  • #30 550880
    h-doc
    Poziom 27  
    Posty: 1208
    Pomógł: 57
    Ocena: 21
    Kwaitek X - co Cię tak śmieszy?
    Precyzja się przydaje - zobacz sobie na sprzęt (lub też oprogramowanie) do edycji dźwięku. Współczesne rozwiązania bazują na 32-bitowej precyzji (również zmienny przecinek). Ta nadmiarowa precyzja przydaje się, ponieważ zapewnia swobodę przy manipulacji sygnałem bez utraty końcowej precyzji lub też bez ryzyka utraty stabilności (w przypadku stosowania np. filtrów IIR). To jest normalna praktyka - nawet jeśli przetworniki C/A są 24, 18 lub 16 bitowe, dobrze jest wykonywać obliczenia z większą precyzją.

    pozdrawiam!

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy realizacji generatorów sygnałów sinusoidalnych, trójkątnych i piłokształtnych na mikrokontrolerach serii 8051 (np. X51) oraz AVR (np. ATtiny2313). Proponowane metody obejmują wykorzystanie prostych przetworników cyfrowo-analogowych (DAC) zbudowanych z drabinki rezystorowej R-2R, generowanie próbek sygnału z pamięci lub obliczanie ich w czasie rzeczywistym, a także sterowanie częstotliwością wyjściową poprzez zmianę wartości timera lub parametryzację procedur generujących próbki. Wskazano, że generacja sygnału piłokształtnego i trójkątnego jest stosunkowo prosta matematycznie (funkcje liniowe), natomiast sinus wymaga tablic lub bardziej zaawansowanych metod. Dyskutowano także o zastosowaniu układów analogowych (ICL8038, XR2206, MAX038) do generacji przebiegów oraz o wykorzystaniu procesorów DSP (np. TMS320F241, ADSP2105) dla bardziej zaawansowanych zastosowań, choć ich użycie do prostych generatorów bywa uznawane za przerost formy nad treścią ze względu na koszt i złożoność. Poruszono kwestie dostępności próbek układów scalonych, programowania i kompromisów między prostotą a możliwościami. Wskazano, że PWM może być alternatywną metodą generacji sygnałów na mikrokontrolerach AVR. Dyskusja zawierała także uwagi dotyczące precyzji DAC, rozdzielczości bitowej i praktycznych ograniczeń sprzętowych. Autor planuje implementację generatora z możliwością zmiany częstotliwości w czasie pracy programu, pytając o sposoby sterowania timerem i regulacji częstotliwości.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA