Вот и готова новая версия. В ней параметр DPLL Bandwith запоминается в зависимости от частоты дискретизации. Когда частота дискретизации сигнала меняется, программа читает из памяти сохраненное значение DPLL Bandwith для текущей частоты дискретизации и автоматически посылает его в соответствующий регистр Сабри. Другими словами DPLL Bandwith меняется автоматически при изменении частоты дискретизации. Изменение входа больше не влияет на DPLL Bandwith. При нажатии на сброс (Reset) DPLL Bandwith инициализируется значениями по умолчанию, которые отличаются для разных частот дискретизации. Значения по умолчанию я взял отсюда:
http://www.diyaudio.com/forums/digital-line-level/117238-ess-sabre-reference-dac-8-channel-186.html#post2594386.
PCM 44.1Khz:MEDIUM
PCM 88.2Khz:MEDIUM_H
PCM 96Khz:HIGH
PCM 192Khz:HIGH
PCM 352.8KHz:Use best DPLL Settings
Кроме того в программе изменен механизм сохранения параметров в EEPROM. Я поставил защиту и теперь программа распознает формат данных, записанных в EEPROM. Если он не соответсвует текущей версии, данные из EEPROM не читаются. При любом изменении они записываются уже в новом формате. Это сделано, так как формат записываемых данных был изменен.
Я пока смог лишь поверхностно проверить новую версию программы. В ближайшее время постараюсь сделать более серьезное тестирование. Пока у меня просто не хватает времени на все...
Александр, если можешь, поиграйся с новой версией, жду твоих фидбэков.
и добавил...Выкладываю еще одну версию с небольшой оптимизацией. Она меняет регистр Сабри, только если есть изменение. Предыдущая писала в регистр все время.