Elektroda.pl
Elektroda.pl
X
Texa Poland
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wspólny projekt generatora DDS na elektroda.pl

gdL 10 Lut 2019 13:53 7404 159
  • #61 10 Lut 2019 13:53
    Janusz_kk
    Poziom 18  

    khoam napisał:
    Janusz_kk napisał:
    Za 14 zł w tme jest ATXMEGA32A4U-AU z 1 przetw ADC i dwoma DAC tak jak wyżej pisałem.
    Jest nawet Arduino HAL dla tego procesora :)


    Dzięki za namiary, przyda się do szybkich projektów.

    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Texa Poland
  • #62 10 Lut 2019 15:10
    katakrowa
    Poziom 20  

    Co do problemów z odświeżaniem wyświetlacza to może zamiast męczyć się w kodzie jedengo uC zastosować np. 2x ATTINY. Wtedy jeden odpowiada za komunikację z użytkownikiem i działa jako "master" a drugi zajmuje się tylko i wyłącznie generowaniem przebiegów i działa jako "slave", do którego komendy wysyła się po UART. Obsługa UART jest bardzo mało wymagająca więc odpadło by wiele problemów ...
    2 układy AtTiny 2313 kosztują mniej niż jeden ATMEGA32. procesor można z założenia taktować 20MHZ a teoretycznie można by nawet pokusić się o sterowanie generatorem z komputera przez złącze USB używając np. taniego CH340G ( wtedy nawet niektórzy mogą oszczędzić na wyświetlaczu i enkoderze ).
    A żeby było jeszcze lepiej ( żeby osiągnąć "lepszy sinus" i większe częstotliwości ) do samego generowania sygnału użyłbym 32 bitowego uC 32F030F4P6 ( kosztuje 3,50zł ) ma 48Mhz i wsparcie dla float'a.
    Wtedy można tablicę wartości dla sygnału sinus, trójkąt, piła przeliczać "w locie" po każdej zmianie parametrów z dostosowaniem do ilości próbek / sek. Można się także pokusić o inne ciekawsze przebiegi ( suma 2 sinusów lub sin + kwadrat itp ... itd... ).

  • #63 10 Lut 2019 15:31
    rb401
    Poziom 34  

    drobok napisał:
    Jak już chcecie iść po kosztach to stm32f105 ma więcej pamięci i da się go kupić za 12zł


    Da się kupić albo i nie. A STM32F100R6T6 za ~4zł wygląda na pewniejsze źródło.
    Po za tym jeśli projekt "zmieści" się do F100R6 to nie ma problemu zrobić alternatywny wariant na F105Rx z odpowiednio podwyższonymi parametrami. A sprzętowo nie ma różnicy bo te kostki są pinowo zgodne 100%, czyli płytka ta sama.

    drobok napisał:
    byłby jako taki generator na bardzo niską częstotliwość / z b. małym próbkowaniem.


    Owszem, metoda generowania jaką przyjął kolega gdL w tym "referencyjnym" dla tematu projekcie na Atmega jest mało wydajna. Ale tu generalnie, osiągi limituje sam uC.
    Za to przenosząc się na STM32 jest do dyspozycji bez porównania szybsza metoda używająca skojarzonego ze sobą hardware (timer+dma+dac) gdzie można syntezować przebiegi bez opuszczania próbek z bardzo dużą częstotliwością, gdzie limitem staje się raczej analogówka.

    Tak że zmiana ATmega na STM32 to nie żadna kwestia że tak powiem "mody" ale przejścia na wyższy poziom parametrów, zarówno jak chodzi o próbkowanie i dokładność konwersji DA i to przy równoczesnym zmniejszeniu ceny i złożoności konstrukcji. Co jest nadzwyczaj istotne w świetle filozofii projektu, tzn. użyteczny ale tani gadżet.

  • Texa Poland
  • #64 10 Lut 2019 15:49
    krisRaba
    Poziom 26  

    katakrowa napisał:
    teoretycznie można by nawet pokusić się o sterowanie generatorem z komputera przez złącze USB używając np. taniego CH340G ( wtedy nawet niektórzy mogą oszczędzić na wyświetlaczu i enkoderze ).

    Ja preferowałbym "pocket-gen" ;) Bo komputer mam z dala od niektórych zabawek, a z kolei bieganie tam z laptopem też nie zawsze jest wygodne.
    Choć zadawanie przez USB może być ciekawą opcją, w tym np. jakiś rysowany z ręki przebieg, tzn. określasz jeden okres i zadajesz częstotliwość ;)
    Chyba że w ogóle pojechać po bandzie i wrzucić moduł Wi-Fi lub BT, a urządzeniem zawiadywać ze smartfona lub laptopa/PC ;)
    katakrowa napisał:

    A żeby było jeszcze lepiej ( żeby osiągnąć "lepszy sinus" i większe częstotliwości ) do samego generowania sygnału użyłbym 32 bitowego uC 32F030F4P6 ( kosztuje 3,50zł ) ma 48Mhz i wsparcie dla float'a.
    Wtedy można tablicę wartości dla sygnału sinus, trójkąt, piła przeliczać "w locie" po każdej zmianie parametrów z dostosowaniem do ilości próbek / sek. Można się także pokusić o inne ciekawsze przebiegi ( suma 2 sinusów lub sin + kwadrat itp ... itd... ).

    Też fajny pomysł :)

  • #65 10 Lut 2019 16:00
    drobok
    Poziom 29  

    te tanie stm32 mają DAC 1Msps, więc trza by wziąć i machać pinami ;) Ale jak wspomniałem to najtańsza opcja, dodatkowy - zewnętrzny przetwornik załatwiłby sprawę. Pomijając już sam przetwornik można by wziąć jakiś dedykowany scalak np wspomniany wcześniej AD9833, za stówkę moglibyśmy wykorzystać AD9106 - co dałoby już konkretne możliwości ;)

  • #66 10 Lut 2019 16:30
    rb401
    Poziom 34  

    krisRaba napisał:
    Ja preferowałbym "pocket-gen" ;) Bo komputer mam z dala od niektórych zabawek, a z kolei bieganie tam z laptopem też nie zawsze jest wygodne.


    Masz rację. Tutaj gra rolę tez inna ważna sprawa, by generator był, jak by to nazwać "pływający galwanicznie". Co uczyniło by go potencjalnie atrakcyjnym też dla profesjonalistów, jako pomocnicze źródło sygnału w jakiś testach, badaniach.

    krisRaba napisał:
    Choć zadawanie przez USB może być ciekawą opcją, w tym np. jakiś rysowany z ręki przebieg, tzn. określasz jeden okres i zadajesz częstotliwość ;)


    Opcję zadawania parametrów z PC, można by, bez naruszania cechy opisanej wyżej, zrealizować bardzo prosto tak jak jest to w popularnych multimetrach z RS232. Czyli sprzęg diody IR i fototranzystora zachowujący izolację. Tylko tu kierunek przesyłu byłby odwrotny niż w tych multimetrach.


    drobok napisał:
    te tanie stm32 mają DAC 1Msps, więc trza by wziąć i machać pinami ;)


    Tym parametrem się nie sugeruj, bo dotyczy warunków pracy DAC w trybie napięciowym.
    Jeśli użyć tego DACa w trybie prądowym to jest on o wiele szybszy. Sam widziałem.
    Tak że jedynym limitem jest tu naprawdę wydajność DMA.

  • #67 10 Lut 2019 16:37
    piotrva
    Moderator na urlopie...

    AD9833 - to nie ma po co robić projektu - każdy sobie podepnie do Arduino i już, no chyba, ze mamy zaprojektować obudowę ;P

    Co do DACów wbudowanych w STM32 - większość ma 1MSPS, więc jak chcemy więcej to trzeba i tak uC + zewnętrzny DAC.

    IMO fajną opcją byłoby żeby urządzenie było małe, zasilane z USB lub ewentualnie aku (jako opcja nieobowiązkowa - podobnie jak w popularnych mierniczkach USB UM24C - płytka bazowa jest stała, i ewentualnie do niej dopina się moduł BT). Mogłoby mieć 1 enkoder i mały wyświetlacz OLED. Domyślnie przebiegi podstawowe: Sinus, Trójkąt, Prostokąt z możliwością zmiany symetrii/wypełnienia, Szum plus bank kilku przebiegów możliwych do zdefiniowania po podpięciu do komputera i zapisania w urządzeniu.

    Dodano po 33 [sekundy]:

    rb401 napisał:
    Tym parametrem się nie sugeruj, bo dotyczy warunków pracy DAC w trybie napięciowym.
    Jeśli użyć tego DACa w trybie prądowym to jest on o wiele szybszy. Sam widziałem.
    Tak że jedynym limitem jest tu naprawdę wydajność DMA.

    Mógłbyś rozwinąć / poprzeć to danymi z dokumentacji?

  • #68 10 Lut 2019 17:20
    krisRaba
    Poziom 26  

    rb401 napisał:
    by generator był, jak by to nazwać "pływający galwanicznie"

    popieram

    piotrva napisał:
    IMO fajną opcją byłoby żeby urządzenie było małe, zasilane z USB lub ewentualnie aku (jako opcja nieobowiązkowa - podobnie jak w popularnych mierniczkach USB UM24C - płytka bazowa jest stała, i ewentualnie do niej dopina się moduł BT). Mogłoby mieć 1 enkoder i mały wyświetlacz OLED. Domyślnie przebiegi podstawowe: Sinus, Trójkąt, Prostokąt z możliwością zmiany symetrii/wypełnienia, Szum plus bank kilku przebiegów możliwych do zdefiniowania po podpięciu do komputera i zapisania w urządzeniu.

    super, takie coś też by mi odpowiadało :)

    Gdyby użyć wyświetlacza graficznego (są różne maleństwa z protokołem szeregowym, czy to OLED czy LCD), to można również wyświetlać jak wygląda generowany przebieg. Szczególnie przydatne przy tych zdefiniowanych niestandardowych. Niby można go podejrzeć na DSO, ale.. przy pocket-gen można się wtedy obyć bez niego ;)
    Oczywiście wyświetlenie na bazie przebiegu z pamięci, a nie feedbacku z wyjścia ;) Nie trzeba tu ładować DSO ;)

  • #70 10 Lut 2019 17:38
    rb401
    Poziom 34  

    piotrva napisał:
    Mógłbyś rozwinąć / poprzeć to danymi z dokumentacji?
    piotrva napisał:
    Mógłbyś rozwinąć / poprzeć to danymi z dokumentacji?


    Chodzi o to że w DS podane parametry DAC np. te 1MSPS czy Settling time, odnoszą się tylko do "gołego" DAC z obciążeniem (CLOAD ≦ 50 pF, RLOAD ≧ 5 kΩ).
    Ale to nie są graniczne osiągi tego DAC, jeśli zostanie użyta inna konfiguracja na wyjściu.
    Dokładnie tą kwestię opisuje Application note AN4566 (Extending the DAC performance of STM32 microcontrollers).
    Jest tam tabelka pokazująca o wiele większa prędkość DAC gdzie limitem jest wydajność DMA, zależna z kolei od taktowania APB (ale nie tylko).
    Wspólny projekt generatora DDS na elektroda.pl

  • #72 10 Lut 2019 17:56
    drobok
    Poziom 29  

    Innymi słowy stawiamy na STM32F401RBT6 ? W sumie fajna informacja, też przyjmowałem za pewnik że liczba z ds'a to max jakie da się wyciągnąć z danego układu ;) Można by też dołożyć złociszczy by mieć więcej pamięci ;)

  • #74 10 Lut 2019 19:05
    drobok
    Poziom 29  

    No ładnie teraz przysadziłem, ale np taki STM32F405RGT6 ma dac i 1MB flash i 192kB ram, kosztuje 30zł, ale ma fpu. Na pcb można by zrobić też miejsce na bufor / tłumik dla adc do prostych pomiarów. Co do wprowadzania danych, chiński budżetowy ekran dotykowy pozwoliłby wprowadzić coś innego niż 3 rodzaje przebiegów, np wzorki / proste modulacje.

    Jakby się zmieścić w 5x5cm można by mieć 40płytek za 2usd na jlcpcb. Urządzenie byłoby kompaktowe i mieściło się w 50-60zł.

  • #80 10 Lut 2019 19:44
    drobok
    Poziom 29  

    Aku od dronów powalają ceną bo tam się waga liczy. Do oleda można by dać usb i zaawansowane funkcje wklepywać z telefonu - o ile chcemy uzyskać coś wielkości bardzo niepewnego connectora ;)

  • #81 10 Lut 2019 19:49
    khoam
    Poziom 23  

    piotrva napisał:
    jakieś małe akumulatorki od dronów

    I do tego jakiś mały panel słoneczny, żeby można było te akumulatory podładowywać sobie np. pod lampką na biurku ;)

  • #82 10 Lut 2019 19:55
    Urgon
    Poziom 36  

    AVE...

    Można mieć generator warsztatowy za małe pieniądze, bogaty w funkcje, o dobrych parametrach, ale tylko wybierając dwie z tych trzech opcji.

    Przy 1MSPS i założeniu, że użyjemy 64 próbki na cały przebieg, to fmax wyniesie ledwo 15,625kHz. Tani, chiński moduł DDS na AD9833 ma znacznie wyższą częstotliwość pracy, bo do 12,5MHz, i do tego z krokiem 0,1Hz. No i cennik:
    - moduł DDS 12-20PLN
    - wyświetlacz LCD ok. 10-15PLN
    - mikrokontroler ok. 4-15PLN
    - drobnica 10PLN
    - płytka 1PLN
    W najgorszym razie będzie 61PLN tak na moje oko.

    Ale jak chcecie generator arbitralny o przyzwoitych parametrach, to może lepiej użyć jakiegoś równoległego DACa sterowanego albo za pomocą pamięci RAM, albo przez układ FPGA. Będzie to drższe rozwiązanie, ale da wyższą częstotliwość pracy. Przykładowo można użyć AD9742 za około 40PLN mający aż 210MSPS przy 12 bitach, i jest to najtańsza opcja o takich parametrach.

    Można też iść na całość i użyć ultra-szybkich układów szeregowych z interfejsami LVDS albo JESD204, jak AD9739 dającego 14 bitów 2,5GSPS czyli fmax wyniesie prawie 40Mhz przy 64 próbkach. Szkoda, że jeden układ kosztuje 50 dolców, i to przy dużym zamówieniu. Rezygnując z trzech bitów mamy AD9737A za niecałe 38 dolarów.

    Można też ostatecznie sparować szybką pamięć DRAM z drabinką R2R, załadować do pamięci próbki i przełączać adresy z pomocą jakiegoś licznika lub z użyciem FPGA. Będzie tani, szybki i arbitralny, ale na pewno nie będzie dobry.

  • #83 10 Lut 2019 20:09
    khoam
    Poziom 23  

    Urgon napisał:
    Tani, chiński moduł DDS na AD9833 ma znacznie wyższą częstotliwość pracy, bo do 12,5MHz, i do tego z krokiem 0,1Hz


    I to jest najbardziej rozsądna propozycja, biorąc pod uwagę koszty i czas, jaki trzeba będzie poświęcić na dokładne przetestowanie oprogramowania (samo jego napisanie to jeszcze trochę za mało).
    Całość może być zasilana z USB. Będzie więc to mobilny gadżet, bo zawsze można go będzie podłączyć pod powerbank.

  • #84 10 Lut 2019 21:36
    And!
    Admin grupy Projektowanie

    OK, poczekajmy na ankietę i będziemy mogli wykorzystać zebraną tutaj wiedzę w optymalizacji parametrów i konstrukcji budowanego urządzenia, które w założeniu ma mieć szansę trafić do gadżetów.

    Trochę oftopicowo zobaczcie jak zbudowany jest prosty generator 2 kanałowy 20MHz,
    1x CPLD, 1xDSP, 1xFPGA, 1x RAM, 1x FLASH,
    2x DAC i pełno analogu, wzmacniaczy, komparatorów i przekaźników:

    Link

  • #85 10 Lut 2019 22:32
    krisRaba
    Poziom 26  

    khoam napisał:
    Całość może być zasilana z USB. Będzie więc to mobilny gadżet, bo zawsze można go będzie podłączyć pod powerbank.

    To też jest ciekawa opcja. Odpada wtedy przetwornica do ładowania i rozładowania lion wewnątrz generatora.. A jak ktoś chce używać na biurku czy z laptopem, to tych klocków i tak nie potrzebuje.
    No i redukuje to koszt, dzięki czemu budżet można przekierować na inne rzeczy ;)

  • #86 10 Lut 2019 22:45
    rb401
    Poziom 34  

    Urgon napisał:
    Tani, chiński moduł DDS na AD9833 ma znacznie wyższą częstotliwość pracy, bo do 12,5MHz, i do tego z krokiem 0,1Hz. No i cennik:
    - moduł DDS 12-20PLN


    Jakiś czas temu oglądałem materiały na temat tej kości i oferty, ale utkwiła mi w pamięci jako fajna ale nie tania, przynajmniej do zastosowania w jakimś gadżeciku.
    Ale dziś nagle, otwieram sobie Aliexpress... :crazyeyes: i wysypuje się mnóstwo modulików z tą kością za niecałe półtora dolca z free shipping . Feedback'ów dużo, ale żaden nie tyczy sprawy że moduł nie działa albo działa źle.
    Tak że to zmienia postać rzeczy.
    Co prawda wolę mieć w ręce taki i sam go obadać. Dlatego już kilku Chińczyków dostało ważne zadanie. Zaraz jak skończą świętowanie, to mają zapakować i wysłać do mnie.

  • #87 10 Lut 2019 23:47
    lukaszd82
    Poziom 27  

    Ad9833 powyżej 1MHz to już trójkąt zmienia się w sinusoodę. Ale w google są informacje o skutecznym przetaktowaniu tego układu do 100-120MHz i wtedy jest ok. Podobno przetaktowanie powyżej 130MHz to już problemy i śmieci... Trzebaby zamówić taką kość i zrobić testy... Może ktoś z odpowiednim sprzętem jest chętny?
    Moduł z AD9833 na ali teraz to koszt ok 6zł...
    Tyle, że tutaj nie ma możliwości zmiany wypełnienia przy prostokącie, a to niekiedy się przydaje...
    Sam do zabawy pewnie kupię taki moduł :>
    Kiedyś miałem zbudować na nim na szybko DDS ale czasu i chęci brakło.

  • #88 11 Lut 2019 00:27
    Urgon
    Poziom 36  

    AVE...

    Z tego, co się dowiedziałem, te tanie moduły z AD9833 mogą dać dobry sygnał do około 8-10MHz, ale pod warunkiem użycia dobrego filtra LC Standardowo czegoś takiego nie posiadają. Co więcej, AD9833 nie ma jakiegoś odgórnego ograniczenia częstotliwości zegara, więc w praktyce do tych 100MHz dałoby się częstotliwość taktowania podnieść. Tak czy siak konieczne może być przeniesienie układu na nową płytkę, z lepszym filtrem i krótkimi połączeniami. Można pomyśleć o dodaniu jakiegoś szerokopasmowego wzmacniacza o wzmocnieniu sterowanym z pomocą prostego DACa, np MCP4812, i dodatkowym, szybkim komparatorem sprzęgniętym z tym DACiem by uzyskać też sygnał prostokątny PWM...

  • #89 11 Lut 2019 11:35
    Tajoka
    Poziom 20  

    Witam szanownych kolegów. Pozwólcie, że podłączę się do dyskusji.

    Od długiego czasu noszę się z zamiarem zrobienia generatora do warsztatu. Przechodziłem przez wiele opcji zaczynając od XR2206, AD9834, drabinki R-2R, FPGA+DAC.
    A co powiecie na AD9102? Dwa kanały, duża prędkość, 14bit rozdzielczości, dowolne przebiegi. Dedykowany układ do generatorów. Rozumiem, że może być za drogi (85PLN netto) jednak wydaje się być idealną platformą do stworzenia półprofesjonalnego generatora.
    Nie wiem na ile rozwinie się Wasz pomysł, ja mogę obiecać, że w tym roku popełnię taki projekcik na AD9102 bez kompromisów. Może i cała inwestycja będzie nie opłacalna cenowo ale jeśli ktoś będzie zainteresowany wydaje mi się, że będę mógł się podzielić projektem. O ile hardware opanuję to część programową pewnie długo będę rozwijał:)

  • #90 11 Lut 2019 13:29
    lukaszd82
    Poziom 27  

    Jesli chodzi o tani i mały DDS, płytka 3x3cm oparta o Atmega32 i AD9833.
    Oczywiście to tylko przykład czyjejś pracy - Piotrek SP8QEP.
    Źródło dla zainteresowanych Link
    Wszystkie niezbędne pliki znajdują się na stonie autora.
    Oczywiście użycie AD9833 to ograniczenie do kilku 1-3MHz, w zależności od potrzebnego przebiegu i akceptowalnych zakłóceń.
    Wspólny projekt generatora DDS na elektroda.pl Wspólny projekt generatora DDS na elektroda.pl Wspólny projekt generatora DDS na elektroda.pl
    Wspólny projekt generatora DDS na elektroda.pl Wspólny projekt generatora DDS na elektroda.pl

    I drugi układ na SI5351A (2k-160MHz)
    Źródło Link
    Wspólny projekt generatora DDS na elektroda.pl

    A jakby tak zrobić hybrydę z AD9833 do częstotliwości niższych oraz SI5351 do wyższych (przełączanie w zależności od zadanej częstotliwości...
    Obie płyteczki w Chinach to niewielki koszt...
    Wspólny projekt generatora DDS na elektroda.pl
    Wspólny projekt generatora DDS na elektroda.pl