Ввиду того, что все мои "железяки" - это все-таки результат моего хобби, а не промышленные разработки, с одной стороны, и тот факт, что я радиолюбитель, а не профессионал, с другой, то со временем, при их эксплуатации всплывают мелочи и глюки, которые сразу не знал, не заметил, не обратил внимание.... Как следствие - возникает желание что-то улучшить, исправить и т.д. Собственно, модернизациям моих "творений" и посвящена данная страница.
А то вдруг, и вправду, их кто-то действительно надумает повторять...
Версия 0 - первая версия прошивки, опубликованная вместе со статьей, и лежащая на сайтеж. "Радиохобби". (Размер файла - 24 кБ)
Версия 1 - с исправлением ошибки. Ошибка была в начальной установке синтезатора частоты при включении ресивера в некоторых условиях. Если включать ресивер любой из кнопок с 1 по 9 (ячейки памяти тюнера), то все происходило правильно - в итоге ресивер настраивался на частоту, хранящуюся в этой ячейке. Но, если Вы выключили ресивер, когда он был настроен на какую-то станцию, а впоследствии включили его кнопками, не меняющими статуса, (кнопки - Setup, Menu, Plus или Minus) то ресивер настраивался не на ту частоту, которая была до выключения, а на произвольную. В данной версии прошивки эта ошибка исправлена. (Размер файла - 24 кБ)
"Черепашьими" темпами переделываю тюнер - не нравится он мне. Запущу - выложу тут. Пока вроде как вырисовывается, что на одной плате будет и синтезатор на LM7001 и радио-тракт: УВЧ на КТ368, смеситель и гетеродин на 174ПС1, УПЧ и детектор на 174ХА6...
!!! ЕЩЁ ДО ВСЯКИХ ТАМ УЛУЧШЕНИЙ И ИЗМЕНЕНИЙ - ВАЖНО !!!
При печати статьи в журнале ("Радиохобби" №1, 2005 год, стр. 55, рис. 1) обрезаны края схемы, как следствие - на схеме нет двух проводников. Выкладываю правильную схему, в которой красными стрелками указаны проводники, не пропечатавшиеся в журнале.
Тем, кто успел-таки прочитать это:
Уже обнаружены некоторые глюки - похоже, слишком часто в процесс вывода на дисплей встряют прерывания, и как следствие, понижена его контрастность, но все никак руки не доходят.
...спешу успокоить - при вскрытии "пациента" оказалось, что это не проблема софта, а банальный непропай в разъеме - пропадал контакт цепи регулировки контрастности дисплея.
Попозже надо будет все-таки доделать обработку пульта, а пока:
Версия 0 - первая версия прошивки, опубликованная вместе со статьей, и лежащая на сайте ж. "Радиохобби". (Размер файла - 24 кБ)
Версия 1 - (Размер файла - 24 кБ/выложен 15 апреля 2005 г.). В этой версии прошивки есть возможность самостоятельно установить старший байт слова конфигурации ЦАП-а (AD1853). Максимально кратко назначениебитов слова конфигурации я (на русском) описал здесь (PDF - 142 кБ). Зачем нужна эта самая возможность? В статье описано, какие аппаратные манипуляции нужно выполнить для того, чтобы обойти ASRC (AD1895), если Вы не хотите ее использовать, или у Вас попросту нет такой микросхемы. Но при этомнеобходимо изменить кратность передискретизации цифрового фильтра ЦАП-а. В предыдущей версии прошивки была жестко прописана кратность "х2". В этой версии кратность ЦФ Вы можете установить самостоятельно - она после этого будет записана в ЭНЗУ процессора и в дальнейшей работе аппарата будет использоваться именно значение, установленное Вами. Сама процедура как вхождения в режим, так и изменения значения конфигурационных битов, описана в статье (в разделе "ВАЖНО – Сервисные режимы !!!"). На приведенном ниже рисунке показаны все три варианта установки кратности цифрового фильтра.
ВНИМАНИЕ: При эксплуатации предварительного усилителя в случае установленной AD1895 обязательно нужно установить "2Х" (т.к. "по умолчанию" - 8Х). Можно попробовать режим "4Х". Режим "8Х" при работе с ASRC не поддерживается. Если же не устанавливать AD1895, то используется режим "8Х" (в данной прошивке именно он установлен "по умолчанию"). Можно попробовать режим "4Х". Режим "2Х" не поддерживается.
Необходимо также учесть еще следующее:
Версия 2 - (Размер файла - 25 кБ/выложен 19 апреля 2005). Причин столь скорого появления данной версии прошивки две:
Количество именно этих трёх, приведенных выше, ошибок и подсчитывает теперь программа. Ошибки валидности считаются отдельно, а ошибки бифазного кодирования и ошибки четности - вместе (показания на дисплее - алгебраическая сумма обоих типов ошибок). На каждый из счетчиков отведено по два байта ОЗУ (максимальное значение - 65535). Вывод на дисплей - шестнадцатиричный, о чем предупреждает символ (h) (я тоже лентяй). Подсчет осуществляется на протяжении всего диска. По его окончании или при извлечении диска из проигрывателя счетчики сбрасываются.
Теперь о том, как вывести показания на дисплей.
Всё, после этого нажать кнопку MENU еше раз, или через 10 секунд аппарат выйдет из режима установкм сам. После этого на дисплее будут отображены текущие значения счетчиков ошибок, обновляющиеся по мере их поступления (см. рисунок ниже)...
И последний нюанс - РЕЖИМ ОТОБРАЖЕНИЯ результата подсчета ошибок по умолчанию ВЫКЛЮЧЕН, факт его включения в память (ЭНЗУ) процессора НЕ СОХРАНЯЕТСЯ и при выключении аппарата СБРАСЫВАЕТСЯ. В отличие от САМОГО ПРОЦЕССА подсчета ошибок, который длится ВСЁ ВРЕМЯ!!! То есть, если отображение ошибок включить, допустим, во время прослушивания последнего трека, то счетчики покажут сколько ошибок произошло на протяжении ВСЕГО диска. Просто, я уверен, интерес к этому подсчету у Вас пропадет буквально после пары-тройки дисков...
Версия 3 - (Размер файла - 28 кБ/выложен 18 мая 2005). Главная новинка управляющей программы - обработка команд пульта. Усилителем воспринимаются команды только тех пультов, которые работают в системе RC-5. При разработке этой части программы большую помощь в понимании принципов декодирования команд системы RC-5 оказали следующие документы: статья Л. И. Ридико (на русском) и раздел сайта SB-Projects, посвященный ИК ПДУ (правда, он на английском; но зато не только про систему RC-5). Результатом работы подпрограммы декодирования являются значения принятых адреса устройства (device ID) и кода команды (command ID), сохраненные в соответствующих регистрах ОЗУ процессора. После того, как команда декодирована, первым делом процессор сравнивает полученный адрес устройства со значением, хранящимся в его ЭНЗУ. Только в случае, если они совпадут, выполняется поступившая команда. К адресу мы еще вернемся позже. А пока - немного о командах. По указанным выше ссылкам приводятся таблицы кодов наиболее "распространенных" команд, как это было определено стандартом RC-5. В итоге была составлена приведенная ниже таблица, в которой указано - какие значения кодов команд соответствуют каким кнопкам пульта, а также - и каким кнопкам на лицевой панели предварительного усилителя.
Код команды | Кнопка на пульте | Кнопка на панели предварительного усилителя |
---|---|---|
01 (hex) | 1 | - |
02 (hex) | 2 | - |
03 (hex) | 3 | - |
04 (hex) | 4 | - |
05 (hex) | 5 | - |
06 (hex) | 6 | - |
07 (hex) | 7 | - |
08 (hex) | 8 | - |
0C (hex) | Standby | POWER |
0D (hex) | Mute | - |
10 (hex) | Volume + | UP |
11 (hex) | Volume - | DOWN |
20 (hex) | Program + | RIGHT |
21 (hex) | Program - | LEFT |
25 (hex) | OK | MENU * |
3B (hex) | MENU | MENU * |
*ПРИМЕЧЕНИЕ: Как видно из приведенной таблицы, усилитель абсолютно одинаково реагирует на нажатие на пульте кнопок "ОК" и "MENU". Сделал я так потому, что у разных пультов в центре "креста" может стоять любая из этих кнопок.
КРОМЕ ТОГО: Как видите, приведенное в таблице количество кнопок пульта, больше числа таковых на панели усилителя. Думаю, на сегодняшний день это мало удивительный факт - аппаратуры, у которой "на лицевой панели пусто, а на пульте густо" - полным-полно. Назначение кнопок пульта, не продублированных на лицевой панели, - c "1"-й по "8"-ю включают соответствующий вход усилителя, а "Mute" приглушает звук. Хотя, думаю, что это было прекрасно понятно итак - по их названиям...
Но вернемся к адресу. Этот адрес - по сути, является идентификатором устройства, которому предназначена команда, посылаемая пультом. Нужно это на случай, если у Вас в доме несколько различных аппаратов, пульты которых работают в системе команд RC-5. Вы же не хотите, чтобы на один пульт реагировали сразу все устройства? Согласно стандарту, поле адреса в системе RC-5 равно 5 бит, что позволяет адресовать до 32-х различных устройств. Адреса некоторых из них, определенные стандартом, есть в ссылках, приведенных мною выше. Вы наверняка неоднократно слышали об обучаемых пультах. Здесь же всё в точности, да наоборот - усилитель "обучается" воспринимать конкретный пульт ДУ. То есть, эта прошивка предоставляет пользователю возможность настроить усилитель на любой адрес устройства, генерируемый пультом. Адрес, выбранный Вами, будет записан в ЭНЗУ процессора. По умолчанию прописан адрес 00 (hex) - "стандартный" адрес телевизора.
Настройка на другой адрес выполнена максимально простой. Нужно выполнить следующее:
ЧТО ПРИ ЭТОМ ПРОИСХОДИТ: Во-первых, не забывайте, что и в этом режиме также работает десятисекундный таймер возврата из установки в основной режим (если ничего не происходит). Во-вторых, в этом режиме нажатия кнопок пульта не управляют усилителем, а лишь декодируются и индицируются во второй строке дисплея. В ней отображается три пункта: первым идет символ "t" и следующее за ним значение бита toggle, которое меняется (0 или 1) при каждом нажатии кнопки пульта, и не меняется, если кнопку удерживать нажатой. Следующий пункт: две цифры стоящие после символа "а" - это и есть адрес устройства (device ID), передаваемый пультом. Последний пункт: символ "с" и две цифры стоящие следом - это код команды (command ID). Если же команда принята неверно, или пульт не стандарта RC-5, вместо этой цифробуквенной "абракадабры" выводится сообщение "Error" (Ошибка).
ПРИМЕЧАНИЯ:
Но лично мне пришлось искать вариант пульта, у которого либо был бы другой (отличный от "0"-го) device ID, либо имелась возможность его как-то изменить (как-никак, а телевизор LG, от которого у меня был пульт 105-230М, стоит дома в той же комнате, где и усилитель). "Первый блин вышел комом" - вскрытие купленного на базаре пульта показало, что в нем бескорпусная микросхема скрывалась под каплей компаунда. Как ей поменять адрес - было абсолютно не известно. Пришлось проконсультироваться с продавцами. Оказалось такие "капли" стоят в подавляющем большинстве пультов. После того, как я объяснил продавцам, чего хочу, они мне посоветовали купить пульт RC-6. О причинах такого выбора, а также его переделке см. ниже.
Вот пульты, которые я опробовал с усилителем:
Несколько слов о переделке пульта RC-6. Задача переделки единственная - получить device ID, отличный от "нуля". Заглянем-ка еще раз в datasheet. Во-первых, пульт работает в Single system mode - на выводе SSM (конт. 2) высокий уровень. В этом режиме device ID, генерируемый пультом, определяется перемычкой между одним из выводов Z0...Z3 (конт. 3-6) и одним из выводов DR0...DR7 (конт. 9-13, и 15-17) согласно таблицы "Table 2" на стр. 10 в datasheet-е.
В пульте RC-6 для получения "нулевого" device ID есть перемычка (дорожка на плате) между выводами Z0 (конт. 3) и DR0 (конт. 17). Можно, конечно, переделать его и на device ID, равный "16", как этого требует стандарт RC-5 для пультов, управляющих предварительными усилителями. Но, моему усилителю все-равно, какой при настройке запомнить device ID, а пульт RC-6 самой "малой кровью" переделывается на device ID, равный "8" (тюнер спутникового ТВ). Что нужно сделать? Нагрев паяльником вывод 3 (Z0) ИМС, аккуратно поднимаем его иголкой (обычной, швейной). Подняв ножку (3-ю) над контактной площадкой, загибаем её до упора вверх. После этого акуратно ставим "соплю" припоя между контактной площадкой вывода 3 и контактной площадкой вывода 4 (Z1). Теперь у нас соеденены между собой выводы Z1 (конт. 4) и DR0 (конт. 17), что дает нам device ID, равный "8". Вот и вся переделка...
Если же у Вас все-таки есть желание выставить device ID, равный именно "16" (предварительный усилитель), то, поднявши ножку 3 микросхемы, нужно припаять небольшую перемычку между выводами Z2 (конт. 5) и DR0 (конт. 17)...
Не опробованный, но тоже вариант пульта.
И еще один вариант (для самых ленивых) мне подсказали на форуме сайта ООО "Симтех". Вариант такой - использовать универсальный пульт и выбрать у него код устройства, для управления которым нужен сигнал стандарта RC-5, и при этом адрес устройства отличается от нуля. Цитирую:
Dmitry, к примеру польский
МАК
код 2023 адрес 5 (для VCR-a)
код 3020 адрес 8 (для SAT-а)
Ничего паять при таком варианте не нужно. Просто настроить пульт на один из приведенных кодов, а потом настроить усилитель на адрес, выдаваемый пультом (см. выше)...
Чтож, думаю, пока что с обновлением прошивок на усилитель я сделаю паузу...
...Эх, поспешил...
Своеобразным дайджестом всех, приведенных выше изменений прошивок (1-й, 2-й и 3-й версий), стала статья "ЦАП с громкостью - год спустя", которая была опубликована в журнале РХ № за 2006 год. Но самое веселое заключалось в том, что пока указанная статья ждала своей публикации, Ридико Л. И. переслал мне письмо от одного своего знакомого, сподвигнувшее меня на ...коренную переделку всей прошивки.
Итак, немного о будущей 4-й версии...
Всё дальнейшее - уже "по собственной инициативе". Как говорится, коль уж полез перекраивать алгоритмы...
Итак, вот она - эта прошивка:
Версия 4 - (Размер файла - 35 кБ/выложен 20 июля 2007 г.)
Решил "одним махом" ответить сразу всем на их вопросы об исходниках:
ZIP-архив с исходными текстами управляющей программы версии 4 - (Размер файла - 44 кБ/выложен 14 ноября 2007 г.)
Ввиду того, что изменений в программе было очень много, и часть из них достаточно радикльные, я начал писать "Руководство пользователя" к данному предусилителю. Возни много, и пока что инструкция не закончена, но, думаю, лучше "не все, чем совсем ничего". Выкладываю как есть, а когда доделаю, то естественно выложу готовую. Тогда и метка о "недоделанности" пропадет...
"Руководство пользователя" - НЕДОПИСАННОЕ !!! - (Размер файла - 797 кБ/выложен 20 июля 2007 г.)
ВНИМАНИЕ - ОШИБКА В ПЕЧАТНОЙ ПЛАТЕ !!!
При подготовке статьи к печати я допустил ошибку в рисунке печатной платы основного блока. Заключается она в неправильной разводке цепи питания "+3,3 Вольта" ИМС CS8416. По схеме видно,что данное напряжение должно поступать с выхода стабилизатора IC1 на вывод 6 (VA) микросхемы IC3. В то же время на рисунке платы ошибочно изображено, что напряжение "+3,3 Вольта" подается на вывод 5 микросхемы IC3. ЭТО НЕ ПРАВИЛЬНО!!! Ниже приведены два рисунка - слева, как нарисовано в статье (подписано "НЕ ПРАВИЛЬНО") и справа так, как должно быть (подписано "ПРАВИЛЬНО"). Увы, исходников этих чертежей у меня не осталось. Поэтому, выложить исправленный чертеж всей платы при всем желании я не могу...
А теперь непосредственно обновления...
P.S. Исходники прошивок (SORRY) пока выкладывать не планирую...
Последние изменения - 20 мая 2005 г. © Дмитрий Харций