Модуль генераторов для Mercury DAC
В последней ревизии своего ЦАПа на PCM1794 я заложил возможность подачи внешнего сигнала мастерклока. А для переключения генераторов разных сеток частот на входной разъем I2S следует подать управляющий сигнал на 2 вывод. Лог. 0 соответствует сетке x48, лог. 1 - сетке x44. Далее после гальванической развязки он попадает на разъем CTRL.
Поэтому был разработан модуль, который содержит пару генераторов на обе сетки частот мастерклока и управляющий микроконтроллер ATtiny24/44/84.
Схема модуля имеет вид:
Логика работы программы до безобразия проста. После инициализации контроллера производится инициализация ЦАПа (опционально), включается один из генераторов в зависимости от сигнала SEL_OSC (Select of Oscillator). Далее МК переключается в режим сна с отключением всех источников тактирования (режим Power-Down). При изменении уровня сигнала SEL_OSC МК пробуждается, приглушает выход ЦАПа путем записи соответствующего бита в его регистр по SPI (бит MUTE регистра 18 PCM1796), переключает генератор и возвращает нормальный режима работы ЦАПа. После этого МК снова уходит в сон до очередной смены уровня сигнала управления генераторами.
Объем программы не занимает и 512 байт.
Печатная плата:
Скачать прошивку под микроконтроллер ATtiny44 (13/03/19) для SW управления.
Конфигурационные биты (fuses) следует установить в следующие значения:
SELFPRGEN = [ ] RSTDISBL = [ ] DWEN = [ ] SPIEN = [X] WDTON = [ ] EESAVE = [X] BODLEVEL = 4V3 CKDIV8 = [ ] CKOUT = [ ] SUT_CKSEL = INTRCOSC_8MHZ_6CK_14CK_0MS EXTENDED = 0xFF (valid) HIGH = 0xD4 (valid) LOW = 0xC2 (valid)
0 Комментариев
Рекомендуемые комментарии
Комментариев нет
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.