Да, я думаю, что решил проблему с дребезгом, но не полностью. Я пришел к выводу, что полностью ее решить практически невозможно. Когда я меняю DPLL Bandwith с помощью регистров Сабри, Сабря теряет лок. Так это работает. В результате при изменении частоты дискретизации происходит следующее:
1. Сабря теряет лок при переключении на другую частоту дискретизации.
2. Сабря получает лок.
3. Программа читает из регистров Сабри данные и вычисляет новую частоту дискретизации.
4. Срабатывает логика, которая меняет DPLL Bandwith при изменении частоты дискретизации.
5. Сабря теряет лок.
6. Сабря возвращает лок.
Это приводит к прерыванию звука - дребезгу.
Как я попытался решить проблему. Программа вычисляет частоту дискретизации каждые 2 секунды. Я уменьшил это время до 200 милисекунд. При этом пришлось делать серьезные изменения в коде, так как нехорошо так часто обновлять экран. Пришлось разделять логику обновления экрана и логику вычислении частоты дискретизации. В результате дребезг в большинстве случаев исчез. У меня он проявляется редко.
и добавил...Но если на оптике вдруг включить MAX или HIGH, то довольно трудно стало переключиться на стабильный режим... все быстро так мельтишит...
Интересно, а как у Марата с этими режимами на входах COAX и OPT
Я и раньше наблюдал эти проблемы, особенно на MAX. Кажется, Марат не заходит в эту ветку. Нужно его спросить в соседней.