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

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Не намерих PDF-a за който ви споменах преди, но и от този става ясно.

Идеята е:
A DDS produces a sine wave at a given frequency. The frequency depends on two variables, the reference-clock frequency and the binary number programmed into the frequency register (tuning word).
The binary number in the frequency register provides the main input to the phase accumulator. If a sine look-up table is used, the phase accumulator computes a phase (angle) address for the look-up table, which outputs the digital value of amplitude—corresponding to the sine of that phase angle—to the DAC. The DAC, in turn, converts that number to a corresponding value of analog voltage or current. To generate a fixed-frequency sine wave, a constant value (the phase increment —which is determined by the binary number) is added to the phase accumulator with each clock cycle. If the phase increment is large, the phase accumulator will step quickly through the sine look-up table and thus generate a high frequency sine wave. If the phase increment is small, the phase accumulator will take many more steps, accordingly generating a slower waveform.


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


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

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: DDS генератор
emilvtc написа:
За да не правя сметки в реално време или с хардуерен модул, мога да генерирам таблица с голяма дължина съдържаща повече от един периоди. Колко точно - зависи от точността с която искам да реконструирам синусоидата.

Със същия успех можеш просто да си оправиш фазовия инкремент. Сметката за фазов акумулатор е почти никаква.

Освен ако изпускам нещо.


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

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Никола, не бях заглеждал такива усилватели. Има си регулиране на усилването с напрежение ... Трябва да помисля в каква схема да го свържа. Вероятно с някой от вътрешните DAC- ове на проца ще се изработи управляващото напрежение за контрол на усилването. На всичкото отгоре усилвателя има и як изход ...
Кофтито е, че офсета на изхода трябва да се изработи от отделен DAC, който да се сумира с изхода на PGA усилвателя.

Woody, Сметките не са сложни, но защо да се правят в реално време, когато могат да се направят предварително?
Така ще мога да постигна максимален рефреш рейт, който ще зависи само от максималната скорост на трансфер на DMA-то.


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

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: DDS генератор
Хм, сметки почти няма - едно сумиране и индексиране е.
Ако чак толкова гониш голям sample rate, сложи си едно FPGA.


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

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: DDS генератор
В тоя апликейшън ноут:
http://www.cypress.com/?rID=37793
на стр. 13 като тригер клок на DMA са посочили clock component - 1 MHz :wink:

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пет Мар 07, 2014 12:16 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 9:14 am
Мнения: 5298
Мнение Re: DDS генератор
В конкретния AN това според мен се определя от скоростта на семплиране на ADC-то. Няма връзка с апликацията на Емил.

_________________
'просто' е технически синоним на 'красиво'


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

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: DDS генератор
стр.13 има точно DAC, който изкарва циклично lookup table. Нбабане не знам къде го видя това ADC.

Т.е. можеш да пращаш DMA request от таймер и да автоматизираш трансфера както го имаш като идея. Но не случайно са поставили 1MHz клок. Все пак DMA трансфера също отнема определен брой тактове за достъп до lookup table и после за да ги хвърли към GPIO или вътрешен DAC. При 67 MHz системен клок едва ли ще постигнеш 20 MSPS трансфер към DAC-a.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пет Мар 07, 2014 9:17 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: DDS генератор
woody написа:
Ако чак толкова гониш голям sample rate, сложи си едно FPGA.


+1
Даже въпросът не е само да е висок, а да е стабилен и да е променлив. С процесор може да се постигне висок трафик, има такива с DMA, но клокът ще е фиксиран, не особено стабилен и няма гаранция че няма да изпуска тактове.

За около 10$ има спартан 6 с 220кбита RAM, ако това не е достатъчно за 15-16$ има с 500кбита. Има и по-евтини, обаче спартан 6 може да работи с високи клокове и да докара прецизна стъпка. На теория може и до 1GHz но за тия честоти има проблемчета дето чак в 7-ците се изчистват.
Така че с 6-ците според мен си става до 200-300Mhz таван, прецизна стъпка, има и видео дакове на тия скорости, а отрани може да си направи управление на офсети и усилване, което също да е програмируемо и динамично - кеф ти асинхронно, кеф ти синхронно...
А между другото не е невъзможно да бие по показатели и ония уредчета от картинките, но тогова отива на Цинк, там има всичко от прецизни PLL-и до 1.8GHz с динамично програмируеми параметри, с драйвери на изходите които изкарват такива честоти и могат да се калибрират, неограничени буфери, абе всичко! Даже няма да му трябва DAC, до 6-7 бита си се постигат със съпротивления, а има и прецизни резисторни матрици с които се докарват 8 бита. Като тия 8 бита ако не му трябва 1GHz може да ги вдигне и до 24 bit, естествено на по-нисък рейт..


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

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Zdrav написа:
стр.13 има точно DAC, който изкарва циклично lookup table. Нбабане не знам къде го видя това ADC.

Т.е. можеш да пращаш DMA request от таймер и да автоматизираш трансфера както го имаш като идея. Но не случайно са поставили 1MHz клок. Все пак DMA трансфера също отнема определен брой тактове за достъп до lookup table и после за да ги хвърли към GPIO или вътрешен DAC. При 67 MHz системен клок едва ли ще постигнеш 20 MSPS трансфер към DAC-a.

Да, абсолютно си прав. Този процесор отпада ...

Знам, че истинския вариант е с програмируема логика, но нямам никакъв опит с такава, а и точно в момента нямам време да започвам да я уча. За това търсих вариант (макар и свързан с разучаване на нов за мен процесор), който предполагам би ми отнел в порядъци по-малко време ...
За това така започнах и темата ...

Е, "Оно кое си треме, оно си сака" както е казал щопа.

Ако не се намери подходящ процесор - идеята ще "отлежава" докато се науча да използвам програмируема логика... Пълно щастие НЯМА :-)


Пет Мар 07, 2014 4:16 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Яну 20, 2009 11:54 pm
Мнения: 11338
Местоположение: "Занзибар"
Мнение Re: DDS генератор
Мии и от броячи ли не разбираш? :)


Пет Мар 07, 2014 7:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: DDS генератор
emilvtc написа:
ike, Нещо подобно имам в предвид, но да е малко "по-истинско".

DDS-a от линка на ike съм го пробвал с PIC18F на 40MHz, работи много добре, не помня точно каква честота извадих, но ми се върти някъде около 60kHz. Пробвах синусоида, правоъгълни сигнали, трионообразни. Иска се точни 0.1% резистори и 16-битов порт. След като не го мислиш за производство можеш да използваш и 1%, като ги подбереш. Кодът е смешен за реализиация: сумираш един индекс в акумулатор, после вземаш СТАРШИЯ байт на фазовия акумулатор и с него адресираш таблицата с формата на сигнала. Събира се в 10-12 инструкции. Удобно е и за DMA реализация.

Ако обаче използваш МЛАДШИЯ байт на акумулатора с малко експерименти можеш да получиш интересни модулации :-)

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Мар 12, 2014 12:08 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: DDS генератор
Тия дни разглеждах процесорите на Microchip, оказа се че имат много удобен кандидат за DDS генератор - PIC16F1713/1716. Разполага с 20-битов NCO(Numerical Control Oscillator), при Fosc=32MHz може да се тактува на 8MHz, DDS таблицата може да се пази в Flash паметта и да се индексира с MOVIW 0[FSRx], DAC 8-bit R2R + OpAmp. Ако ще се използва RAM-а DDS трябва да е максимум 64 байта поради липсата линейна RAM с по-голям размер ( може и 256 байта, но с допълнителна гимнастика ). Теоретично би трябвало да може да генерира 800kHz, практически мисля ще извади 500kHz сигнал.

Код:
; 256 bytes DDS Table into Flash
; 8-bit DAC R2R on PORTB
; Put code here to initialize NCO ( ACC, INCR, clk from CLC3(LC3_out) )
; Put code here to initialize CLC3 ( input clock, prescaler, etc. ), I/O ports
movlw LOW(DDS_Table)
movwf FSR1L
movlw HIGH(DDS_Table)
movwf FSR1H
DDSLoop:
; put code here to synchronize with CLC3, for example wait for CLC3IF to be set
movlb 9 ; Select NCO1 RAM bank
movlw 0xF0
andwf NCO1ACCH,W
swapf W,W
iorwf NCO1ACCU,W
movwf FSR0L
moviw 0[FSR0]
movwf PORTB
bra DDSLoop

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Апр 02, 2014 1:55 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение Re: DDS генератор
Прав си, но идеята ми беше да мога да зареждам няколко килобайта (поне 16кб) произволен патърн (в РАМ-а), който да плейвам след това.

Май козата си сака пръч и като остане време ще мисля за FPGA вариант.


Чет Апр 03, 2014 10:32 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение Re: DDS генератор
emilvtc написа:
Прав си, но идеята ми беше да мога да зареждам няколко килобайта (поне 16кб) произволен патърн (в РАМ-а), който да плейвам след това.
Май козата си сака пръч и като остане време ще мисля за FPGA вариант.

Че колко често и бързо трябва да му сменяш патерна? Ако е рядко и бавно - по-добре да си препрограмираш флаша на PIC16F17.. (да се ползва като генератор, към друг процесор :))
Това PIC16F17.. струва долар-два. Много хубава идея на "¶" (гаден никнейм - що не сложиш нещо човешко :?? :)).
Сега ползвам едни AD9833, AD9837 и мисля да пробвам да ги сменя с тая идея на "¶".


Пет Апр 04, 2014 1:23 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: DDS генератор
NikB написа:
....
Сега ползвам едни AD9833, AD9837 и мисля да пробвам да ги сменя с тая идея на "¶".

Полечка да не ги предобриш тез генератори дето ше ги правиш ;)
как смяташ да постигнеш нещо по-добро от 28 бит резолюция :?:,

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


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

Кой е на линия

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


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

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