|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:15 pm
| Автор |
Съобщение |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 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 |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: DDS генератор
Със същия успех можеш просто да си оправиш фазовия инкремент. Сметката за фазов акумулатор е почти никаква. Освен ако изпускам нещо.
|
| Чет Мар 06, 2014 8:42 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
 Re: DDS генератор
Никола, не бях заглеждал такива усилватели. Има си регулиране на усилването с напрежение ... Трябва да помисля в каква схема да го свържа. Вероятно с някой от вътрешните DAC- ове на проца ще се изработи управляващото напрежение за контрол на усилването. На всичкото отгоре усилвателя има и як изход ... Кофтито е, че офсета на изхода трябва да се изработи от отделен DAC, който да се сумира с изхода на PGA усилвателя.
Woody, Сметките не са сложни, но защо да се правят в реално време, когато могат да се направят предварително? Така ще мога да постигна максимален рефреш рейт, който ще зависи само от максималната скорост на трансфер на DMA-то.
|
| Чет Мар 06, 2014 10:59 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: DDS генератор
Хм, сметки почти няма - едно сумиране и индексиране е. Ако чак толкова гониш голям sample rate, сложи си едно FPGA.
|
| Чет Мар 06, 2014 11:12 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
 Re: DDS генератор
В тоя апликейшън ноут: http://www.cypress.com/?rID=37793на стр. 13 като тригер клок на DMA са посочили clock component - 1 MHz 
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Пет Мар 07, 2014 12:16 am |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: DDS генератор
В конкретния AN това според мен се определя от скоростта на семплиране на ADC-то. Няма връзка с апликацията на Емил.
_________________ 'просто' е технически синоним на 'красиво'
|
| Пет Мар 07, 2014 1:10 am |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 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 |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: DDS генератор
+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 |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
 Re: DDS генератор
Да, абсолютно си прав. Този процесор отпада ... Знам, че истинския вариант е с програмируема логика, но нямам никакъв опит с такава, а и точно в момента нямам време да започвам да я уча. За това търсих вариант (макар и свързан с разучаване на нов за мен процесор), който предполагам би ми отнел в порядъци по-малко време ... За това така започнах и темата ... Е, "Оно кое си треме, оно си сака" както е казал щопа. Ако не се намери подходящ процесор - идеята ще "отлежава" докато се науча да използвам програмируема логика... Пълно щастие НЯМА 
|
| Пет Мар 07, 2014 4:16 pm |
|
 |
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 11:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
 Re: DDS генератор
Мии и от броячи ли не разбираш? 
|
| Пет Мар 07, 2014 7:45 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: DDS генератор
DDS-a от линка на ike съм го пробвал с PIC18F на 40MHz, работи много добре, не помня точно каква честота извадих, но ми се върти някъде около 60kHz. Пробвах синусоида, правоъгълни сигнали, трионообразни. Иска се точни 0.1% резистори и 16-битов порт. След като не го мислиш за производство можеш да използваш и 1%, като ги подбереш. Кодът е смешен за реализиация: сумираш един индекс в акумулатор, после вземаш СТАРШИЯ байт на фазовия акумулатор и с него адресираш таблицата с формата на сигнала. Събира се в 10-12 инструкции. Удобно е и за DMA реализация. Ако обаче използваш МЛАДШИЯ байт на акумулатора с малко експерименти можеш да получиш интересни модулации 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Мар 12, 2014 12:08 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 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 сигнал.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Апр 02, 2014 1:55 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
 Re: DDS генератор
Прав си, но идеята ми беше да мога да зареждам няколко килобайта (поне 16кб) произволен патърн (в РАМ-а), който да плейвам след това.
Май козата си сака пръч и като остане време ще мисля за FPGA вариант.
|
| Чет Апр 03, 2014 10:32 am |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
 Re: DDS генератор
Че колко често и бързо трябва да му сменяш патерна? Ако е рядко и бавно - по-добре да си препрограмираш флаша на PIC16F17.. (да се ползва като генератор, към друг процесор  ) Това PIC16F17.. струва долар-два. Много хубава идея на "¶" (гаден никнейм - що не сложиш нещо човешко  ?  ). Сега ползвам едни AD9833, AD9837 и мисля да пробвам да ги сменя с тая идея на "¶".
|
| Пет Апр 04, 2014 1:23 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: DDS генератор
Полечка да не ги предобриш тез генератори дето ше ги правиш  как смяташ да постигнеш нещо по-добро от 28 бит резолюция  ,
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пет Апр 04, 2014 3:57 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 0 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|