Здравствуйте! Имеется 3 DDS AD9910. Управление ими осуществляется через ПЛИС cyclone3. Плата связывается с компьютером через com-порт. Под windows написана программа для управления всеми DDS, на подобии программы для отладочной платы AD9910. Управение всеми параметрами сигналов всех трех DDS реализовано. Все делаю согласно документации. Все DDS тактируются от одной опоры сфазированным кабелем, и до всех DDS опорный сигнал доходит с одинаковой фазой. Сигнал IO_UPDATE тоже доходит до всех одновременно. Один DDS работает в режиме мастера и генерит синхросигналы для остальных DDS и для себя. Сигнал SYNC_OUT мастера доходит на входы SYNC_IN всех трех DDS с одинаковой фазой. (С выхода SYNC_OUT сигнал идет на входы SYNC_IN на прямую через сфазированные кабели). В окне программы настраиваю, допустим, два DDS на 100МГц. На осциллографе вижу, что сигналы генерятся с некоторой разницей фаз. Далее в программе настраиваю первый DDS мастером и он начинает генерить синхросиналы (но амплитуда совсем маленькая), а второй-слэйвом. При этом на осциллографе вижу что оба сигнала стали синфазными. И все вроде хорошо... НО при изменении частоты на какой нибудь из этих DDS я вижу что разность фаз начинает меняться (фаза плывет...) и значит получается, что DDS не засинхронизированы. Так же сигнал SYNC_SMP_ERR постоянно в высоком состоянии. Такой вопрос: Как засинхронизировать несколько AD9910?
|