Сны

Nov 27, 2015 18:59



Кассетная дека Technisc RS-B965 очень хороша, но все же она имеет некоторые недостатки. Например, у нее нет пульта дистанционного управления. Это я бы назвал вторым по значимости недостатком.

Совсем еще недавно мы с грохотом переключали ручку ПТК телевизора, даже не мечтая ни о каком дистанционном управлении. Хорошо, если ручку. Из-за большого усилия она часто ломалась, в результате из недр телевизора торчал голый вал барабана ПТК. Его приходилось проворачивать плоскогубцами, которые всегда лежали рядом с телевизором. Не пульт, конечно, но тоже приспособление для переключения каналов. С появлением цветных телевизоров появились кнопки переключения каналов. Теперь дистанционное управление не казалось таким нереальным. За рубежом, говорят, пульты у телевизоров массово появились в конце 70-х. В то время, конечно, и каналов было не так много, особо переключать было нечего, но все равно в середине 80-х самой заветной мечтой многих был японский телевизор с пультом дистанционного управления.



В то время у нас дистанционное управление (ДУ) если и было, то оно было проводным. Умельцы порой пытались делать свое собственное беспроводное ДУ, но это было довольно сложно. Специализированных микросхем тогда не было, а на «россыпи» пульт получался большим и не очень экономичным.

Примерно в это же время журнал «Радио» публикует самую позорную в своей истории статью «ДУ Василия Билецкого» (№10 1991 год, стр. 83). Всем так хотелось иметь ДУ, что шли даже на такие сомнительные шаги.

Отсутствие ДУ в японской кассетной деке 1990 г. выпуска - это не совсем понятный факт. Хотя у этой деки были практически близнецы с ДУ, выпускавшиеся для рынка Японии - это Panasonic RS-B965 и Technisc RS-B900. Что ж, придется устранять недостаток самостоятельно.

Изучение плат деки Technisc RS-B965 показало, что в ней тоже предусмотрена установка фотоприемника, место на плате для этого есть. Но нет окна в передней панели. С этого логично и начать. Размеры и положение окна фотоприемника решил подсмотреть на фотографии передней панели деки Technisc RS-B900. Расположение окна вызвало некотрое недоумение - в отличие от кнопок, что находятся выше, оно не выровнено по левому краю. Единственное предположение - окно находится на оси кнопки «Direct CD», но несколько шире ее.



Первым делом я прорезал окно в алюминиевой накладке передней панели.



Стеклышко удалось подобрать от какого-то пульта ДУ, оно сразу имело бортики по краям. Хотя можно было фрезернуть подобное стеклышко из той же коробки от советского паяльника, остатки которой у меня хранятся до сих пор.



Внутри панели пришлось чуть подрезать пластмассовые вставки, после чего стекло идеально подошло.



На печатной плате кнопок предусмотрено место для фотоприемника. Но это, скорее, место для модуля фотоприемника в отдельном экране и с печатной платой внутри, но не для современного интегрального фотоприемника. Расположение выводов совершенно не такое. Пришлось в плате просверлить три отверстия и расклепать в них пистоны. Интегральный фотоприемник нужно поднять над платой, для чего из белой жести изготовил скобу, которую впаял в штатные отверстия печатной платы.



С другой стороны понадобились всего две коротких перемычки. В штатные отверстия платы, которые теперь оставались пустыми, я впаял конденсатор 100 мкФ параллельно питанию фотоприемника. Известный факт, что эти приемники очень чувствительны к помехам по питанию. Причем шунтирование их керамикой 0.1 мкФ обычно не приносит результата. Внутри фотоприемника находится усилитель с относительно узкой полосой пропускания, которая лежит в килогерцовом диапазоне. Именно в этом диапазоне повышена чувствительность к помехам. Соответственно, шунтирующая емкость должна иметь низкий импеданс на сравнительно низких частотах, т.е. должна быть большой.



Первым делом после установки фотоприемника захотелось проверить, работает ли пульт от дек-близнецов. Модель этого пульта нашел в Интернете - RAK-RS305W. К счастью, удалось такой пульт на некоторое время одолжить. Чтобы сигнал фотоприемника поступал на процессор, на основной плате деки надо убрать перемычку, заземляющую этот сигнал. А также установить перемычку, подключающую этот сигнал на ножку процессора 41 (REMOCOM). Эта ножка штатно заземлена через резистор 10 кОм, но на плате есть отверстия для установки этого резистора на AVCC в качестве подтягивающего. Все эти переделки я сделал и попробовал управление с пульта. Ничего не заработало.



Можно сказать, что этому результату я был рад. Как только взял в руки пульт RAK-RS305W, сразу испытал к нему отвращение. Он оказался в реальности огромным, как лопата, похожим на современный мобильник. Кнопки разбросаны хаотично, да и самих кнопок там очень мало. Из 21 кнопки на передней панели деки пульт имеет лишь 13 кнопок. Оформление пульта совсем не похоже на оформление передней панели деки, не считая слова «Technisc», выполненного фирменным шрифтом. Видно, дизайнеры в этой работе участия не принимали.



Решено было пойти другим путем - сделать свой пульт. Полностью делать с нуля пульт в наши дни никакого смысла нет. По крайней мере, корпус можно подобрать готовый. В данном случае нужен пульт в стиле 80-х, без излишних плавных линий. Был найден пульт от CD-плейера Pioneer, который подходил по форме и размерам. К тому же, он имел примерно то количество кнопок, которое нужно. И что самое главное, он не имел «креста» из кнопок для навигации по меню, что здесь бы сильно мешало. Пульт построен на микроконтроллере NEC, скорее всего, имеет такой же и протокол. Но я никогда не делал декодера для пультов NEC. Если какую-то проблему можно решить аппаратно, то мне, как человеку старой формации, это удобнее, чем решать ее программно. Для пульта была сделана небольшая платка-переходник, которая позволила на место родной микросхемы установить SAA3010 с привычным протоколом RC-5. Для этого пришлось восстановить схему матрицы кнопок. Сделал это в наиболее удобном для меня Карандаш-CAD.



Плату развел в PCAD-2006, даже не рисуя принципиальной схемы.



На основной плате пульта почти ничего менять не пришлось, только заменил керамический резонатор (для RC-5 нужен 432 кГц), выпаял конденсаторы резонатора и заземлил его второй вывод.



По глупости решил поддержать отечественного производителя и поставить микросхему INA3010D, которая, вроде, является клоном SAA3010T.



Сразу нарвался на грабли - корпус микросхемы чуть шире, чем стандартный 0.3-дюймовый SOIC, хотя шаг выводов тот же. С некоторым трудом подогнул выводы и запаял микросхему. Проверил пульт, для этого у меня есть специальный самодельный тестер протокола RC-5.



Оказалось, что кнопки, принадлежащие одной из скан-линий, то срабатывают, то нет. Этот глюк окончательно разозлил меня, я выпаял интеграловскую микросхему и заменил на какой-то малоизвестный клон GS3010T, найденный в одном из пультов. И ширина корпуса нормальная, и функционирует, как надо.



Осталось назначить кнопкам функции и нарисовать этикетку пульта. Поскольку пульт свой, то можно продублировать все кнопки, которые есть на передней панели деки, а не только те, которые имеет фирменный пульт. Более того, можно пофиксить некоторые проблемы эргономики системы управления. Очень крупным неудобством является то, что для перемотки и автопоиска используются одни и те же кнопки. Вполне типичная ситуация - из режима "воспроизведение" надо перейти в режим "перемотка". Сделать это можно только через режим "стоп". Постоянно забываю его нажимать, привыкнув к самодельной деке, где для автопоиска используются отдельные кнопки. Это можно легко исправить на пульте ДУ. Там нужно сделать две пары кнопок: отдельная пара для перемотки, отдельная - для автопоиска. При получении команды "перемотка" сначала нужно имитировать нажатие кнопки "стоп", а затем - "перемотка". Для команды "поиск" сначала имитируется нажатие кнопки "воспроизведение", в результате поиск можно будет запустить из любого режима. Всего пульт имеет 24 кнопки, что позволяет дублировать 21 кнопку передней панели деки, выделить 2 кнопки для автопоиска, и в запасе остается 1 незадействованная кнопка. Назначение функций кнопок на пульте ДУ делается из соображений эргономики.

Technisc RS-B965 - очень красивая дека. Расположение элементов на передней панели можно назвать идеальным, а типографика передней панели - вообще уникальна. Почти все надписи выполнены строчными буквами, такое встречается очень редко. Пульт, естественно, должен максимально повторять стиль передней панели деки, включая шрифты. С этой точки зрения фирменный пульт RAK-RS305W неприятно удивил, его оформление не имеет ничего общего с оформлением передней панели деки. Все надписи на пульту выполнены заглавными буквами, расположение кнопок не является регулярным, но при этом и не напоминает расположение кнопок на деке.

Для исследования примененных на передней панели деки шрифтов, я сфотографировал панель с помощью объектива Nikkor 85mm f/1.8D, который имеет очень малые геометрические искажения (SMIA TV distortion 0.03%). Далее перетащил картинку в Corel Draw для подбора шрифтов. На панели использован шрифт семейства Sans Serif, немного похожий на Arial. Хотя есть и отличия. Наиболее подходящим явился шрифт Swis721BT.



Векторный логотип «Technisc» был найден в Интернете и очень хорошо совпал с нанесенным на панель. Логотип «dbx» также был найден в векторном виде. Примечательно, что шрифт меньшего размера на панели немного растянут по горизонтали (примерно на 9%). В принципе, читаемость шрифта при этом возрастает, что актуально при его малом размере. Сделали это дизайнеры Matsushita осознанно, или получилось случайно - неизвестно.



Чуть подкорректировав интервал между словами, а в некоторых коротких надписях (например, обозначение перемотки вперед «ff») и между буквами, получилось очень хорошее соответствие с изображением передней панели. Найденный шрифт подходит для использования на этикетке пульта ДУ.



Впоследствии планируется заказать этикетку у рекламщиков, для чего подготовил изображение с контурами для плоттерной резки. Ну а пока изготовил этикетку на лазерном принтере на самоклеющейся бумаге и покрыл сверху матовой пленкой для холодного ламинирования. Весьма трудоемко было с помощью надфиля вырезать 24 отверстия, но как временное решение результат пойдет.



Update: печать этикетки с плоттерной резкой заказал у рекламщиков. Сделали два варианта: на серебристой и золотистой пленке. Я выбрал второй вариант.



С пультом закончено, теперь можно приступать к декодеру ДУ, который будет установлен внутрь деки. Практика установки своего декодера ДУ в аппараты, где его не предусмотрено, является довольно распространенной. Такой декодер обычно содержит множество ключей (например, 4066), которые просто замыкают контакты каждой из кнопок управления. Решение универсальное, работает как для клавиатуры с отдельными кнопками, так и со сканируемыми матрицами кнопок. Я тоже когда-то делал подобные декодеры и встраивал их в различные аппараты. Одну из схем описывал в этой статье. Встраивание такого декодера нельзя назвать простой операцией. От него к кнопкам клавиатуры тянется множество проводов, что трудоемко в исполнении и сильно портит внутренний вид аппарата.

В некоторых аппаратах применяют весьма эксцентричный способ подключения кнопок управления, целью которого является экономия выводов микроконтроллера. Кнопки подключаются к длинному резисторному делителю, напряжение с которого подается на вход АЦП микроконтроллера. Чем более верхнюю точку делителя замыкает на землю кнопка, тем меньшее напряжение будет на входе АЦП. Такое решение не позволяет обрабатывать совместное нажатие нескольких кнопок. У кнопок появляется приоритет - при нажатии нескольких кнопок одновременно процессор всегда «видит» только ту кнопку, которая подключена к самому верхнему отводу делителя. Серьезным недостатком такого способа подключения кнопок является вероятность ложного срабатывания при окислении контактов в кнопках. Тогда вместо одной функции может включиться другая, чего никогда не бывает в случае цифрового опроса кнопок.

Именно такой способ подключения кнопок используется в Technisc RS-B965. Имеются два резисторных делителя с наборами кнопок, подключенные к двум входам АЦП управляющего микроконтроллера.



Когда кнопки подключены к АЦП через резисторный делитель, декодер с аналоговыми ключами на выходе тоже может быть с успехом использован. Но данный способ подключения кнопок дает возможность значительно упростить декодер ДУ. Для того чтобы микроконтроллер деки распознал нажатие кнопки, на входе АЦП должно появится напряжение, попадающее в некоторые пределы, уникальные для каждой кнопки. Это напряжение не обязательно должно поступать с делителя кнопок. Оно может быть сформировано на плате декодера. Сделать это можно с помощью ЦАП, который есть в некоторых микроконтроллерах. Большого разрешения здесь не требуется, 8 бит будет более чем достаточно. К сожалению, точный алгоритм, с помощью которого процессором деки определяется нажатая кнопка, неизвестен. Как быстро должно нарастать напряжение на входе АЦП, чтобы не было промежуточных срабатываний, сказать трудно. Зато известно, что любая кнопка имеет дребезг, длящийся несколько миллисекунд. Алгоритм обязательно должен иметь защиту от дребезга. Это дает основания предположить, что нарастание порядка нескольких миллисекунд работу не нарушит.

Сначала подумалось про микроконтроллеры, которые имеют на борту два ЦАП, это, например, STM32. В то же время здесь требуется работа от напряжения питания 4.6 В, чего STM32 не допускают. Можно взять STM8, но ЦАПы есть только у микроконтроллеров с большими корпусами. В результате плавно вернулся к старым добрым AVR, а напряжение решил формировать с помощью ШИМ. Идеально для этой задачи подходит ATtiny25 - миниатюрный 8-выводной корпус, два скоростных канала ШИМ, тактируемых от PLL. При разрядности 8 бит частота ШИМ получается 250 кГц. Это более чем достаточно. ШИМ остается только отфильтровать и через буфер подать на тот вход процессора деки, куда подключены кнопки. В RS-B965 есть еще кнопка «REC AUTO MUTE», которая подключена к отдельному порту, но с этим просто, у декодера для нее тоже можно выделить отдельный порт микроконтроллера.

К фильтрации ШИМ предъявляются противоречивые требования. С одной стороны, выходное напряжение должно нарастать как можно быстрее, иначе возможны промежуточные срабатывания. С другой стороны, пульсации должны быть минимальными, иначе алгоритм может не распознать нажатую кнопку. Выходное напряжение должно меняться в пределах от 0 (нажата самая верхняя кнопка делителя) до 3.22 В (нажата самая нижняя кнопка делителя). Причем, когда кнопки пульта ДУ отпущены, декодер не должен мешать работе внутренней клавиатуры деки. Поэтому он должен обеспечивать только втекающий ток, который позволит лишь понижать напряжение на входе АЦП. Как вариант, подойдет ОУ с одиночным транзистором на выходе. Транзистор лучше взять полевой, чтобы обеспечивались напряжения вблизи нуля. От ОУ требуется только rail-to-rail работа входов. Схему фильтра ШИМ лучше всего промоделировать в PSpice.



Моделирование позволяет без паяльника проверить разные варианты, причем даже попробовать разные глупости. Например, цепочку C3R6 в этой схеме. Она найдена исключительно подбором. Длительность перепада напряжения с этой цепочкой заметно меньше (красный график), чем без нее (зеленый график). Хотя общая задержка растет, но она в данном случае не волнует. Действие этой цепочки не поддается человеческому разуму. Оно не может быть объяснено в рамках линейной модели и связано с появлением ограничения на выходе ОУ.



Теперь можно рисовать окончательную схему декодера ДУ.



По этой схеме можно развести плату. При разводке платы нужно учесть конструктивные особенности деки, чтобы декодер ДУ как можно меньше вмешивался во внутреннюю схему. К счастью, все сигналы, необходимые для работы декодера, есть на разъеме CP5 платы клавиатуры. Сам разъем специфический, он имеет шаг 2 мм. На рынке удалось найти гребенку штырьков с таким шагом, а также ответную розетку для нее. Кусочек розетки на 10 контактов припаивается параллельно разъему платы клавиатуры. В эту розетку будет вставляться плата декодера. В итоге внутри деки не появляется ни одного лишнего провода!



Изготовление плат является, пожалуй, самой неприятной работой в практике радиолюбителя. Но в данном случае плата очень простая, маленькая, односторонняя, почти без отверстий. Ее удалось сделать без особых нервов. Использовал ЛУТ и все ту же глянцевую фотобумагу для струйников. После утюжки и охлаждения оторвалась одним движением, ничего не пришлось вычищать. После травления качество дорожек получилось, можно сказать, идеальным.

В качестве компенсации за неприятную работу - травление плат - позволил себе работу приятную - фрезеровку контура. Медитативная работа, получаешь наслаждение, когда после прохода фрезы видишь легкое утоньшение дорожки по контуру платы, которая имеет ширину 0.254 мм. Так за 5 проходов эту дорожку убрал совсем. Хотелось фрезеровать еще дольше, но нечего. Вспомнился старый анекдот про рабочего, который приехал отдыхать на море, а там станки, станки... Я никогда не смеялся с этого анекдота. Если бы такое случилось со мной, если бы вместо дурацкого моря на пляже обнаружились станки, да еще разные, да еще если бы на них дали поработать - это был бы лучший отпуск в моей жизни.



Контур плат обработан, платы готовы. Естественно, я обе платы изготавливал вместе, просто про плату для пульта был повод написать раньше.



На плате декодера единственным элементом, смонтированным в отверстия, является разъем. Второй разъем, который предназначен для программирования микроконтроллера, я припаял к поверхности площадок, предварительно сдвинув вверх пластмасску.



На фото платы видно, что резисторы R12, R13 были добавлены потом. Без ошибок жизнь была бы не так интересна. Я упустил из виду момент начального включения платы. Пока процессор сброшен, его выходы находятся в высокоимпедансном состоянии. Конденсаторы фильтра ШИМ разряжены, что соответствует нулевому напряжению ШИМ. На выходе тоже устанавливается нулевое напряжение, а это соответствует нажатой кнопке. Правда, через короткое время процессор стартует и выставляет на выходах ШИМ высокий уровень, но все равно проскакивает короткий ноль. Проверка показала, что процессор деки на это никак не реагирует, но для красоты глюк надо было устранить. Первое, что пришло на ум, это переключить конденсаторы фильтра C4 и C7 с земли на питание. Тогда их разряженное состояние будет соответствовать максимальному напряжению на выходе. Попробовал так переделать схему. На выходе все равно есть выброс, хотя не до нуля. Напряжение на выходе ОУ нарастает не мгновенно (тем более, при наличии конденсаторов C3, C6), если быстро зарядить C4 и C7, то на выходе выброса не будет. Никогда бы не подумал, что достаточно подтягивающих резисторов 47 кОм, чтобы выброс полностью исчез. На схему их внес, ну а плату перерисовывать не стал, они довольно удобно запаялись.

Внутри деки декодер ДУ трудно найти. На фото он отмечен стрелкой.



Плата декодера видна лучше, если снять экраны.



При желании его можно просто снять с разъема, при этом дека вернется к первозданному виду (не считая окна фотоприемника).



Теперь осталось самое неприятное (не считая изготовления плат) - программирование. Процессор декодера питается от того же напряжения, что и делитель кнопок. Фактически, стоит задача поделить это напряжение, или, другими словами, умножить на некий коэффициент меньше единицы. Любой ЦАП, в том числе на основе ШИМ, является умножающим. Это не всегда отражают в названии: настоящие умножающие ЦАП допускают изменение опорного напряжения в широких пределах и с довольно высокой частотой. В данном случае надо умножать постоянное напряжение питания на некий код, ШИМ с этим справится. Для 8-разрядного ЦАП выходное напряжение V = Vref * code / 256, где code может меняться от 0 до 255. Из формулы видно, что максимальное выходное напряжение ЦАП не равно опорному, а ниже его на одну ступеньку. Это справедливо для ЦАП любой структуры. Именно с этим связано, например, поведение ШИМ, которое не всем нравится: при нулевом коде на выходе все время ноль, а при максимальном - напряжение питания, но с короткими «иголками» в ноль. Действительно, для 8-разрядного ШИМ период поделен на 256 интервалов. При коде 0 ни один интервал не равен единице. При коде 1 один интервал единичный, при коде 2 - два интервала. При максимальном коде 255 единичных интервалов, но один интервал останется нулевым. В datasheet на ATtiny25 указано, что период ШИМ задается в специальном регистре OCR1C и равен OCR1C+1 тактов. Но при этом сказано, нулевому коду соответствует ноль на выходе, а коду, равному содержимому OCR1C - постоянная единица на выходе. Хотел посмотреть, что там происходит на самом деле, ведь получается явное несоответствие - состояний больше, чем разных кодов на входе ШИМ. Увы, прямо глянуть выход при разных кодах забыл, хотя косвенные факты говорят о том, что при максимальном коде «иголки» все-таки есть.

В данной задаче не надо оперировать напряжениями, которые получаются при нажатии той или иной кнопки. Гораздо удобнее оперировать коэффициентами деления, а номиналы резисторов делителя можно взять с принципиальной схемы. Чтобы не утруждать себя расчетами, можно написать макрос и просто задать в тексте программы номиналы используемых в деке резисторов.

//Номиналы резисторов в делителях кнопок, кОм:

#define R1 10.0
#define R2 0.82
#define R3 1.0
#define R4 1.2
#define R5 1.5
#define R6 1.8
#define R7 2.2
#define R8 3.3
#define R9 4.7
#define R10 6.8
#define R11 12.0

//Преобразование номиналов делителя в код PWM:

#define R2CODE(x, y) ((char)(MAX_PWM * (y) / ((x) + (y)) + 0.5))

//Коды PWM для кнопок управления:

//Выход OUT1 (pin 6):

#define KEY_CRESET R2CODE(R1, 0)
#define KEY_CMODE R2CODE(R1, R2)
#define KEY_RANGE R2CODE(R1, R2+R3)
#define KEY_MREPEAT R2CODE(R1, R2+R3+R4)
#define KEY_MSTOP R2CODE(R1, R2+R3+R4+R5)
#define KEY_OPEN R2CODE(R1, R2+R3+R4+R5+R6+R7)
#define KEY_MONITOR R2CODE(R1, R2+R3+R4+R5+R6+R7+R8)
#define KEY_DIRECT R2CODE(R1, R2+R3+R4+R5+R6+R7+R8+R9)
#define KEY_CAL R2CODE(R1, R2+R3+R4+R5+R6+R7+R8+R9+R10)
#define KEY_APRS R2CODE(R1, R2+R3+R4+R5+R6+R7+R8+R9+R10+R11)

//Выход OUT2 (pin 9):

#define KEY_STOP R2CODE(R1, 0)
#define KEY_FF R2CODE(R1, R2)
#define KEY_REW R2CODE(R1, R2+R3)
#define KEY_PLAY R2CODE(R1, R2+R3+R4)
#define KEY_REC R2CODE(R1, R2+R3+R4+R5)
#define KEY_PAUSE R2CODE(R1, R2+R3+R4+R5+R6)
#define KEY_DBX R2CODE(R1, R2+R3+R4+R5+R6+R7)
#define KEY_DOLBYC R2CODE(R1, R2+R3+R4+R5+R6+R7+R8)
#define KEY_DOLBYB R2CODE(R1, R2+R3+R4+R5+R6+R7+R8+R9)
#define KEY_MPX R2CODE(R1, R2+R3+R4+R5+R6+R7+R8+R9+R10)

Программный декодер RC-5 у меня был готовый, это ускорило работу. Единственной трудностью стало то, что ATtiny25 имеет всего 2 таймера, один занят формированием ШИМ (причем работает с тактовой частотой 64 МГц, формируемой с помощью PLL), другой работает в декодере RC-5. Для формирования временных интервалов (например, времени удержания кнопки) требуется системный таймер, сделать который не на чем. Из подходящей периферии остались последовательный порт и АЦП. Порт применить не получилось, так как он при включении задействует выводы контроллера. А вот на основе АЦП получился вполне нормальный системный таймер.

Чтобы получить одобрение у ортогональных аудиофилов (я так называю ортодоксов от аудио за их ортогональность образованию и здравому смыслу), нужно доказать, что процессор декодера ДУ не портит звук. Самое простое, это загнать процессор в режим power down, когда выключается его тактовый генератор. Пробуждаться процессор должен по сигналу от фотоприемника. Логика ухода в сон оказалась довольно нетривиальной, так как надо правильно реагировать на любые ИК-посылки, в том числе, ошибочные, связанные с помехами. При засыпании процессора выключается и PLL, но, к счастью, за время декодирования команды PLL успевает раскочегариться. Когда ни одна из кнопок не нажата, ШИМ должен формировать максимальное напряжение. Что с ним будет в режиме сна, когда тактирование таймера отсутствует? Если поверить тому, что написано в datasheet, то при максимальном коде на выходе всегда единица, поэтому нет разницы, в какой момент тактирование таймера прекратится. Но на практике при уход в сон изредка на выходе наблюдался ноль. Чтобы обезопасить себя от такой ситуации, при попытке загрузки в ШИМ максимального кода я просто переключаю выходы в обычный режим I/O с выводом единицы.

Ну вот, все собрано, дека Technisc RS-B965 обрела новые возможности. Теперь можно управлять ей, не вставая с дивана. Очень удобным оказалось разделение кнопок поиска и перемотки. Остается только радоваться. Лишь некоторую тревогу вызывает осознание того, что внутри деки теперь постоянно спит еще один процессор. Какие, интересно, ему снятся сны?

electronics, cassette deck, магнитофон

Previous post Next post
Up