Отговори на тема  [ 128 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5 ... 9  Следваща
DDS генератор 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: DDS генератор
Н'бабане Гт'муан'га написа:
Според мен PSoC5LP е подходящия микроконтролер

В случая песока няма да помогне много, защото логиката му е ограничена до честотата на проца, а и няма нужда кой знае от каква логика.
Всъщност тук честотите са важни, да може да са високи, колкото повече толкова повече и да са програмируеми.


Сря Мар 05, 2014 12:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Съвсем диагонален 10 минутен прочит (повече - довечера на спокойствие) на CY8C5668AXI-LP010 - IC, PSOC5 ми дава някаква надежда ...
Имат вградени 4бр. 8-bit 8 Msps IDAC
Ако правилно съм разбрал - RAM-a може да се аксесва едновременно от процесора и ДМА-то ако всеки един работи в своята 32кБ страница. (проца има 64кб рам)
"The SRAM can be accessed simultaneously by the
Cortex-M3 CPU and the DMA controller if accessing different 32
KB blocks."

Допълнително
"Auto Repeat DMA - Auto repeat DMA is typically used when a static pattern is
repetitively read from system memory and written to a peripheral.
This is done with a single TD that chains to itself"

От малкото прочетено до момента не разбрах тригерирането на ДМА-то може ли да става от таймер през определен период от време. Ако и това може - сингъл чип решението с 32кБ буфер за патърните ми изглежда напълно възможно, при това с честота на опресняване на DAC-a почти 3 пъти над 20msps както писах в първия си пост...
Ако се използват вградените 8 битови дак-а ( IDAC) - без външен DAC ще се постигне опресняване 8msps.

Ще трябва и програматор/дебъгер CY8CKIT-002 - MINIPROG3

Сещате ли се за вариант как най-лесно мога да регулирам амплитудата на изходния сигнал, без да губя разрядност на DAC-a?

За да се направи регулируем офсет (отместване спрямо нулата) на изходния сигнал вероятно ще е оправдано загубата на половината от обхвата на DAC-a (1 бит от 16-те бита на външния паралелен DAC примерно) ...


Сря Мар 05, 2014 4:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Програмируемото Регулиране на амплитудата на изходния сигнал на генератора се оказва сериозно предизвикателство, когато трябва да се постигне и "някаква" точност. С цифров потенциометър (примерно майкрочипските) не знам дали е възможно да стане, а допълнително утежняващ фактор е и относително високата честота ...

Другия вариант за който се сещам е с DAC използван като делител. На референс входа му се подава входния сигнал, а на изхода му се получава "разделен" сигнал използвайки резисторната му матрица. Аналог девайс имат такива 4 квадрантни DAC-ове (примерно 14 битови), но проблема с относително високата честота си остава ...

Някой знае ли как се прави цифровото (електронно) регулирането на амплитудата на изходния сигнал в лабораторните генератори?

Имате ли идея как относително лесно и що-годе точно може да се направи програмируем делител или усилвател с програмируемо усилване ?

п.п.
Не ми се иска да правя регулиране на изходното ниво чрез модифициране (умножение или деление) на патърна, който зареждам в буфера за "плейване", тъй като така ще загубя динамичен обхват и ще вкарам нелинейни изкривявания на изходния сигнал. (И без друго губя половината от обхвата заради възможността да променям офсета на изходния сигнал)


Сря Мар 05, 2014 9:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: DDS генератор
Ако ползваш външен ДАК, имащ изведен резистор за изходния ток на ДАК-а (на аналог дивайс са такива), то регулацията на амплитудата можеш да я направиш с друг прост ДАК. Като сметки и референтна схема можеш да метнеш 1 око на това.


Сря Мар 05, 2014 9:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: DDS генератор
Емо колкото повече пишеш, топлкова по-неясно става какво се опитваш да направиш...

Започни от параметрите и сложи някаква летва. Значи имаш клок за семпълите - първо до колко семпъла в секунда искаш да постигнеш и второ с каква стъпка да може да се променя, трето колко стабилен да е и т.н.
После семплите какъв диапазон да са, каква точност...

Въпросът не е толкова да фиксираш някакви цифри, а принципно какво целиш. Защото едно е да семпъл клока да ти е с цифров делител и от 8МHz следващата стъпка да ти е 7 MHz друго е да е 7.9999. Едно е да ползваш процесорен Pll дето обикновено му слагат spread spectrum друго е да е стабилизиран. Едно е да имаш много семпъли, друго е да ги осмислиш, щото извинявай ако изходния сигнал ще е до 50 херца ебаси и генератора...


Сря Мар 05, 2014 11:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Сеп 26, 2013 2:24 pm
Мнения: 1765
Мнение Re: DDS генератор
Емил се е решил най-накрая да стане хардуерист. Много неща не стават само с контролер. И за много неща няма готови чипове и трябва да се ползва класическа схемотехника.
Като цяло е решил да прави това:

Изображение

Изображение

Ама за без пари. Аджилента е уникално готин но си е няколко хиляди $. Ригола е перфектен за 500-те си долара.
За съжаление без ФПГА няма как да стане нещо сериозно. И съответната изходна електроника естественно.


Чет Мар 06, 2014 12:20 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: DDS генератор
Pif написа:
... Ригола е перфектен за 500-те си долара.....

Таман ме зарадва с тия 500$, но се оказа че риголчето е само 3.5к $ :D


Чет Мар 06, 2014 12:54 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Pif, точно за еквивалент на такъв вид генератор говоря.
Функцията която най-вече ме интересува е Custom Waveform Generation.
Тази функционалност на агилент-а който визираш и ме интересуват е:
"With the 33250A, you can generate arbitrary waveforms with 12-bit vertical resolution, 64K memory depth, and a sample rate of 200 MSa/s.

Генератора си го представям като устройство свързано през USB към РС. Захранва се и се управлява през USB-то.

Обхвата на аналоговия му изход е +/-5V и ще е добре, ако е е галванично изолиран от USB-то (масата на РС-то).
Това би могло да стане, ако се използва DC/DC трансформаторен конвертор захранен от USB-то (за получаване на необходимите захранвания за устройството + галванична изолация) + УСБ изолатор. Така ще се мине само с един микроконтролер за всичко.
Вместо усб изолатор може да се използва примерно USB to Serial port конвертор + 2 оптрона за изолация, но в този случай контролерите ще са два.

Трябва да може да се управляват амплитудата и офсета на изходния сигнал в обхвата +/-5V.
Например ако амплитудата на изходния сигнал е 1V, то ще може да се задава офсет до +/-4V. Ако амплитудата на сигнала е 4V, то максималния офсет който ще може да се задава ще е +/- 1V.

Амплитудата на сигнала да може да се променя от 0.05-5.00V, като това би било добре, ако не е за сметка на динамичния обхват. Т.е. да не се постига чрез преизчисляване на даните в патерн буфера. Т.е. дори при амплитуда 0.05V на сигнала, той да се описва с поне 10 битова стойност. (не знам разбираемо ли го описах)

Относно буферната памет за зареждане на патърна - поне 32кB (16к точки при 16 битов DAC). Примерно процесора който визирах по-рано има толкова RAM памет за буфера.

Относно стабилността на семпъл рейта - трябва да е що-годе стабилен. Това означава, че не е добре да се използва PLL а директен външен клок от кварцов генератор (повечето процесори могат да се клочат с външен клок). Така няма да има фазов шум и spread spectrum историите покрай PLL-a.

Относто честотата на семпъл рейта - колкото по-голяма - толкова по-добре. В агилента тя е 200 MSa/s.
Е, в едночипов вариант няма как да е такава и трябва да е максимално възможната за процесора. Примерно 20 MSa/s като че ли е възможен и постижим вариант в едночипово изпълнение с PSoC-а, а предполагам и с доста други микроконтролери.

Относно стъпката на промяна на семпъл рейта - за съжаление няма да е много финна, а вероятно ще максимално-възможната делена на 1, 2, 3, 4, 5 и т.н. Примерно ако DMA трафика се тригерира от таймер клочен от максималния системен клок, то този клок можем да го делим на 1,2,3,4,5,6 и т.н. в зависимост от разрядността на таймера. за 16 бит таймер - макс. делител 65536 ...

Ако трябва да се синтезира синусоида примерно, то минималната стъпка на промяна на честотата не зависи само от семпъл-рейта, а и от заредения патърн. т.е. може да се получи промяна на честотата 0,1 Hz при генериране на 100 000 Hz (предполагам без да съм го смятал).
Т.е. за различните честоти, амплитуди, офсети на генерираната синусоида ще се зареждат различни патърни (с различен брой точки) и ще се избира различен семпъл рейт.
Определянето на семпъл рейта и синтезирането на въпросните патърни ще се смятат от PC-то в зависимост от зададените честота, амплитуда, офсет и форма на сигнала, след което ще се даунлоудват в генератора.

Параметрите които описвам са приблизителни и НЕ са задължителни. Колкото може да се "изцеди" от хадруера - толкова...


Чет Мар 06, 2014 1:46 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Като правя някакви груби сметки - при 16 бит. DAC и обхват +/-5V:
Резолюцията ще е 5V/32768 (щото е биполярен) = 153uV. Т.е.ако регулирането на амплитудата става САМО с преизчисляване на стойностите на патррна - при 8 битово описване на синусоидата (примерно) - минималната амплитуда ще е 39mV.
При 9 битово ще е 78mV, при 10 битово 156mV.

Т.е. ако се направи компромис с това - (примерно при минимална амплитуда на синусоидата 39mV тя да се описва с 8 бита, а при по-голямите обхвати с повече битове) - може след DAC-a да има САМО един ОУ като преобразувател I/U (заради токовия изход на DAC-a).
Т.е. схемата ще е MCU + 16 bit DAC + ОУ + DC/DC + изолация на USB-to. T.e. няма да е със 100 чипа ... :-)


Чет Мар 06, 2014 10:37 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение Re: DDS генератор
Може да направиш един програмируем делител който да се комутира с реленца. За грубо делене. Да кажем на 2 и 10 В комбинация с метода с DAC-a ще стане прилично.


Чет Мар 06, 2014 10:50 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
michev, погледнах възможността за регулиране на амплитудата с промяна на референсния ток на DAC-a. Става, но DAC-a който мисля да използвам ще загуби част от характеристиките си (точност, нелинейност, скорост и т.н.). Т.е. май идеята не е съвсем приложима. Става обаче за амплитудно модулиране, стига модулацията да не е много дълбока (100% примерно).

Миро, надявам се че горе-долу това може да се използва като някакво начално задание, от което да се тръгне да се мисли. На по-късен етап (евентуално, ама надали) може да се добави дисплей и клавиатура и с един външем +5V адаптер (вързан паралелно през диод към USB-захранването) устройството да се превърне и в стендалон такова...

Тънкото място е процесора и по-специално способността на периферията му (DMA-то основно) чисто хардуерно да успява да пише във външния DAC с възможно най-голяма скорост и през стабилен (без джитер) интервал от време, като същевременно DMA трансфера да може да се тригерира от някакъв таймер (за задаване на семпъл рета).

Никола, мислих го и този вариант. Така ще се запази броя на точките на синусоидата (примерно 9 - 10 битово описание) , но резисторите в делителя трябва да са точни или най-добре да са тримери позволяващи дочна донастройка. Ще го имам в предвид.
А ако може и релетата да се избегнат и да се заменят с нещо друго (аналогови ключове примерно) - нещата ще станат още "по-красиви"...


Чет Мар 06, 2014 10:58 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение Re: DDS генератор
ами може да се наложи и да настройваш капацитета в едното рамо на делителя ако изкривяванията получени в резултат на непропорционалността на капацитетите е окаже че е осезателна. С реле ще стане най лесно. Транзисторите ще вкарат допълнително по още 10-15 пикофарада. Ако ще го правиш сериийно изделие да се бориш да поевтиняваш конструкцията и да махаш релетата.

Друг вариант е да се ползва PGA. За пример само - VCA821ID


Чет Мар 06, 2014 11:08 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: DDS генератор
emilvtc написа:
Миро, надявам се че горе-долу това може да се използва като някакво начално задание


хм.. аз те питам за задание, за да се види целта и смисъла. Според мен още ти куца заданието...

Представиси че искаш да начертаеш синусоида на екрана. Задаваш X и Y с някаква точност/грешка. Ти залагаш супер висока точност по Y - 16-бит резолюция, а по X точността казваш че ще е 1 към гьотере. Искам да кажа че ако гониш едното, трябва да гониш и другото. Безсмислено е да се изхвърляш с 16-битов дак ако нямаш и 16 битова резолюция за времето. Синусоидата ти пак ще е назъбена ;-)


Чет Мар 06, 2014 11:24 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Никола, довечера ще погледна PGA-то.

Миро, резолюцията по Y я търся, за да мога да имам достатъчно точки за да мога да направя регулиране на изходната амплитуда само с DAC-a. Aко описвам синусоида - в най-тежкия случай когато амплитудата и е минимална (примерно 78mV) да мога да я опиша с 9 битова таблица.

От друга страна искам да мога да регулирам освен aмплитудата на изходния сигнал и офсета му (да вкарам DC отместване). За да намаля бропя на чиповете - това също искам да го правя "софтуерно" с DAC-a.

Относно резолюцията по Х - тя зависи изцяло от макс. семпъл рейт който ще може да се постигне с процесора. Ако приемем, че той е 20msps - значи на всеки 50nS ще мога да зареждам нова стойност в DAC-a.

Да приемем, че семпъл рейта ще е постоянен и ще е 50nS,
Честотата на синтезираната синусоида зависи от броя на точките с която тя се описва, дължината на буфера и семпъл рейта. Това означава че синусоиди с различни честоти ще се описват с различен брой точки.
Има готин дейташит за такова генериране на синусоида, но не мога да го изровя в момента.

Единствената лимитация е, че примерно ако приемем, че в най-лошия случай синусоидата трябва да се описва с 40 точки (таблицата описваща един период ще има 40 точки), максималната и честота ще е 40 * 50nS=2uS период или 500KHz. Ако искаме да генерираме 499kHz, семпъл рейта ще е същия, но вече патърна (таблицата) която ще трябва да заредим ще е по-голям и ще съдържа повече от един период. Не знам разбираш ли ме за какво говоря.

Принципа няма да е да се използва постоянен (фиксиран) патърн от 40 точки (примерно), описващ един период от синусоидата, който ще го плейвам с различен семпъл рейт (с много голяма резолюция по X), за да мога да получа плавна промяна на честотата, а съвсем друг. При постоянен (примерно) семпъл рейт ще зареждам различни по дължина и съдържание патърни, които ще съдържат повече от 1 период от синусоидата, която искам да генерирам...


Чет Мар 06, 2014 12:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
В изхода на ще имам някакъв вид НЧ филтър (RC), който ще е с малка времеконстанта, за да (изглади) стъпчиците на синусоидата. (с честота на среза 1MHz примерно)
Допълнително за "изглаждане" на синусоидата (при ниски честоти, когато един период от нея се описва с много точки) може да вкарам "джитер" (или зашумяване (разклащане)) в таблицата, за да мога да получа нещо като допълнително "изглаждане" - нещо като Сигма-Делта еднобитов модулатор, за да мога да "подобря" назъбеността във формата на синусоидата.

Не съм мислил в детайли дали това е добра идея и как ще се отрази на "спектъра" (заради назъбеността) на генерираната синусоида, но ако стигна до там - ще го мисля.


Чет Мар 06, 2014 12:16 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 128 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5 ... 9  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни