[an error occurred while processing this directive]
|
Уважаемый коллега!
Ситуация такова:
Как же я добиваюсь такой дискретности?
32-разрядный сумматор и регистр.
Опорная частота: частота генератора АЕ1=20мГц
20мГц/2^32 = 0.004 Гц - вот такая дискретность DDS.
Генерирую 5.2-6 кгц с вот такой дискретностью...
Делал 2 варианта: "ручками" и с помощью CoreGeneratora (делал накапливающий сумматор). И тот, и тот варианты не работают.
Выходную частоту снимаю с выхода переполнения сумматора и делю ее на 2 - получаю меандр.
Почему я говорю об осциллографе? Получаемая частота является опорной частотой для демодулятора (ключа ADG333ABR), на который поступают 2 сигнала, находящихся в противофазе. Затем демодулированный сигнал оцифровывается. Так вот: на графике оцифрованного сигнала видно, где появляются срезы, которые сигнализируют о срыве вырабатываемой DDS-ом частоты. Вот почему я говорю о том, что на осциллографе она не должна дрожать. Не понимаю почему это происходит. Проект сделан в Foundation 2.1i и в временном моделировании вроде все в порядке - но ведь в реальности надо смотреть на промежутках времени гораздо более 1 секунды, а для этого в моделировании надо хранить кучу отсчетов, что проблематично - при большом количестве отсчетов во времени, машина начинает "говорить" что ей не хватает памяти. Действительно - реальная ситуация может быть оценена только на секундах, а не на миллисекундах.
Я прекрасно понимаю, что дело в ПЛИСе - но не знаю, как найти ошибку.
Подскажите, если можно.
E-mail: info@telesys.ru