формирование пачек на AD9850
- Войдите на сайт для отправки комментариев
Всем привет!
Делаю проект, связанный с акустическими измерениями, в котором нужно формировать пачки синусоидального сигнала примерно от 2 до 10 МГц строго по синхроимпульсу, и конкретно застрял на синхронизации.
Пример сигнала:
На данный момент схема такая: есть dds AD9850, частоту на нём задаю последовательно с ардуино. После запуска dds работает непрерывно, синхроимпульс от триггера запускает счётчик периодов прямоугольника от dds, запрограммированный на нужное число периодов в пачке, а также сигнал с триггера открывает аналоговый ключ 74hc4066, пропуская сигнал с аналогового выхода dds. Сигнал с выхода счётчика сбрасывает триггер и аналоговый ключ обрубает сигнал, вроде всё работает.
Проблема тут в том, что при таком вырезании пачки из непрерывного сигнала фаза "плавает", а необходимо, чтобы сигнал при любом значении периода синхроимпульса и частоты был неподвижен, а лучше - начинался всегда с нуля.
Т.е. нужно либо как-то приостанавливать и возобновлять формирование сигнала без повторного перепрограммирования, либо "по щелчку" выставлять косинус 0.
Мои неудачные идеи: 1) в даташите написано, что reset возвращает фазу в положение cos(0), но по сути всё сбрасывает и надо заново программировать, 2) подстраивать программно фазу - шаг 11.25 градусов великоват, 3) включать/отключать кварц dds-а когда надо - мутная идея, 4) после синхроимпульса ожидать нулевой фазы и тогда только начинать отсчёт - не годится, т.к. этот генератор должен зависеть от синхронизации, а не наоборот.
Вопрос: можно на AD9850 как-то организовать пачки в любой момент времени?
Если нет, то буду рад любым предложениям по замене dds-ки.
1) в даташите написано, что reset возвращает фазу в положение cos(0), но по сути всё сбрасывает и надо заново программировать
NOTE: The RESET does not reset the shift register. It only resets the FQ_UD’s register and the phase accumulator to COS(0).
NOTE: The RESET does not reset the shift register. It only resets the FQ_UD’s register and the phase accumulator to COS(0).
Ох, спасибо большое, действительно сработало, если добавить после ресета FQ_UD, частота не слетает, не догадался до этого. Смущала всегда эта фраза:
Сейчас не могу проверить на нужных частотах насколько постоянна задержка такой операции, но это уже отдельный разговор. Ещё раз благодарю.