Индикатор выполнен в виде отдельного модуля.
Навесные элементы на разъемах платы были изначально. Вообще, в этом аппарате на всех платах куча проводов и напаянных снизу элементов. Причем они явно шли с завода, так как даже их изображение нанесено на плату. Частично эти элементы имеют одинаковые обозначения с теми, что установлены на плате сверху. Со схемой из сервис-мануала тоже есть ряд несоответствий. А на некоторых платах есть вообще разрезанные дорожки.
На печатной плате модуля установлен ЖКИ, который контачит с золочеными ламелями через токопроводящую резинку – «зебру». Под индикатором находится контроллер. И этот контроллер не подает никаких признаков жизни – на сегменты индикатора ничего не выдает, на кварце генерации нет. Микросхема контроллера выполнены в виде «капли», заменить ее нет никакой возможности. Если менять, то плату целиком. Только где ее взять?
На плате управления тюнером установлен основной процессор uPD650C-062, который по нескольким проводам связывается с индикатором.
Этот процессор некоторые признаки жизни подает, но слабые. Тактовый генератор работает, на двух ножках после сброса устанавливается высокий уровень. На всех остальных – тишина. Клавиатуру не сканирует, в синтезатор частоты ничего не шлет. Возможно, такое поведение является следствием неисправности модуля индикации. Что там японцы намудрили в прошивке, мы не знаем. Хотя такое маловероятно. Скорее всего, процессор дохлый. Купить такой процессор, да еще и с прошивкой 062, нереально. Но даже если он и будет, это не спасет. Модуль индикации не работает, а по какому протоколу процессор с ним общается, узнать невозможно, не имея под рукой исправного аппарата. Поэтому если менять, так менять всё – и основной процессор, и контроллер ЖКИ.
Контроллер ЖКИ здесь не только управлял индикатором. Там еще были реализованы часы с двумя таймерами, которые могли включать аппарат. В режиме ожидания основной процессор обесточен, а модуль индикации питается от двух батареек «AA». Поэтому аппаратные контроллеры ЖКИ сюда не подойдут, нужен микроконтроллер со встроенным контроллером ЖКИ. Из распространенных есть ATmega169 и STM8L152. Оказалось, купить их в Минске невозможно. Как и многие другие детали, здесь с этим беда. В результате удалось купить аналог – ATmega329V, на нем и решил делать модуль индикации.
Само стекло ЖКИ оказалось исправным, проверить это очень легко – на ламели надо подать небольшое (порядка 3 В) напряжение (лучше переменное), соответствующие сегменты загорятся. Пробежав по всем ламелям, можно вычислить их соответствие сегментам. Это соответствие я нарисовал в Corel Draw, используя как заготовку рисунок другого ЖКИ.
Затем нарисовал и вытравил плату. Надо отдать должное японцам, размеры ламелей ЖКИ и самой платы сделаны в миллиметрах, а не в дюймах, что сильно упростило замеры.
Разъемы, кварц, подстроечный конденсатор перенес со старой платы.
Что любопытно, на старой плате имеются надписи «TOSHIBA», «JAPAN», а еще забавная надпись «NO (0) JEWELS». Часы все-таки, мало ли что подумают
После небольшого шаманства на языке Си, индикатор начал отображать время и все остальное, что ему скажут.
Поскольку часы должны работать от батареек, очень важно здесь получить низкое потребление. К счастью, встроенный контроллер ЖКИ способен работать даже когда сам процессор находится в режиме Power Save. Еще от кварца 32768 Гц работает таймер, который каждую секунду генерирует прерывание. Процессор просыпается, увеличивает время на одну секунду, выводит его на ЖКИ, проверяет время включения и снова засыпает. Поэтому потребление имеет вид коротких всплесков раз в секунду. Интересно среднее потребление, для его измерения пришлось сделать интегрирующую цепочку из конденсатора 6800 мкФ и резистора 1 кОм. Измеряя тестером падение на этой цепочке, можно узнать средний ток за несколько секунд. Каждый милливольт напряжения соответствует микроамперу потребляемого тока.
Делая малопотребляющие устройства, надо быть очень внимательным, одна ошибка – и потребление заметно увеличивается. Например, забытый включенный детектор снижения питания (BOD) дал прирост тока потребления 20 мкА. Когда отключил все лишнее, потребление часов оказалось примерно 35 мкА. Очень даже неплохо. С алкалайновыми батарейками «AA», заявленная емкость которых 2700 ма*ч, часы должны работать примерно 9 лет. Но это в теории, на практике есть еще саморазряд.
Теперь надо подыскать замену для основного процессора. С ним намного проще – никаких особых требований к нему нет. Лишь бы ног хватало. В оригинале стоял 4-разрядный uPD650, у которого было всего 2 K памяти, любой современный микроконтроллер его с легкостью заменит. Правда, ног было много – целых 42, но некоторое их количество использовалось для подключения внешнего ОЗУ TC5501, в котором хранились частоты настройки каналов. Питание этого ОЗУ поддерживалось от батарейки. Сейчас так делать смысла нет: у микроконтроллеров внутри есть EEPROM – энергонезависимая память данных. Все настройки можно хранить там, и они не будут теряться, даже если вынуть батарейки. В результате выбрал то, что было под рукой – ATmega88. Без внешней памяти ног как раз хватило. Из платы выпаял старый процессор и память, а взамен сделал небольшую платку, которая по ногам совпадала бы со старым процессором.
Ну а дальше требуется еще некоторое количество шаманства на языке Си. Нужно реализовать обработку нажатия кнопок, загрузку синтезатора частоты, обмен с процессором дисплея и написать все функции управления. Логику их работы почерпнул из сервис-мануала.
Синтезатор частоты здесь применяется древний – TC9125, вместе с внешним прескалером TD6102 для диапазона FM. Многие вещи по сегодняшним меркам выглядят довольно странно. Например, синтезатор программируется в двоично-десятичном коде. А чтобы получить европейскую сетку частот на FM-диапазоне (50 кГц), нужно на каждом втором шаге настройки включать вывод из синтезатора импульсов с выхода делителя, по которым внешний прескалер «проглатывает» импульсы, смещая сетку на 50 кГц. И это не сленг, такой счетчик в составе синтезатора частоты так и называется – «swallow counter». Но в современных синтезаторах это происходит внутри, а в данном случае все это напоминает «закат солнца вручную». Ну и надо не забыть про то, что у нас супергетеродин, у которого частота гетеродина выше частоты принимаемой станции на величину ПЧ. В диапазоне FM надо загружать в синтезатор частоту на 10.7 МГц выше частоты станции. В диапазонах AM – на 450 кГц выше. Правильность загрузки частоты на FM проверить просто – частоты всех станций точно известны. На AM пришлось прибегнуть к помощи генератора. Просто включил в его выходной разъем кусок провода, который приблизил к антенне магнитолы. При настройке на частоту генератора был слышен сигнал модуляции. Частота настройки в точности совпала с установленной на генераторе. С синтезатором закончено.
По ходу проверки тюнера оказалось, что прием на FM идет всегда в монофоническом режиме, индикатор «Stereo» не загорается. Наиболее типичная причина – отсутствие захвата частоты в PLL стереодекодера. С этого и начинаем. Обычно там есть один подстроечник, которым надо выставить номинальную частоту ГУН при отсутствии захвата (в режиме свободных колебаний). Обычно это учетверенная частота пилот-тона 18 кГц, т.е. 76 кГц. Настраиваюсь на наименее шумное место диапазона, где нет станций, становлюсь входом частотомера на контрольную точку, поворотом подстроечного резистора добиваюсь нужных показаний. Точность в пару сотен Гц здесь вполне достаточна. После регулировки стереоприем появился.
Логику управления старался сохранить оригинальную, лишь в некоторых местах позволяя себе небольшие улучшения. Например, в оригинале на каждом диапазоне было 6 пресетов (по числу кнопок каналов). Я увеличил их число до 12, на индикаторе они отображаются как «CH 1..CH 9, CH A, CH B, CH C», так как под номер канала выделена всего одна цифра. Чтобы ввести номер канала больше шести, надо удерживать кнопку «FAST». Еще в оригинале не было индикации, какой из двух таймеров в данный момент программируется. Об этом даже сказано в мануале, что надо помнить. Я задействовал второй разряд секунд (а секунды для таймеров не программируются), теперь номер таймера виден.
В результате весь функционал был восстановлен: магнитола в выключенном состоянии индицирует время, при включении приемника индицирует частоту настройки, делает автопоиск станций, запоминает их частоты на 12-ти каналах. Также умеет в заданное время по таймеру включать заданный канал радио, или воспроизводить кассету, или записывать ее с радио. Второй таймер позволяет в заданный момент времени перейти на другой канал. Не знаю, кому это надо, но так было в оригинале. Хотя просто таймер вполне может пригодиться в быту. Засыпая под радио, можно нажать кнопку «Sleep», магнитола выключится через 60 минут. А затем утром в назначенное время автоматически включится по таймеру.
Прошивки процессоров оттестированы, наиболее лютые глюки выловлены. Хотя, наверное, какие-нибудь добродушные маленькие глючки остались, их можно будет выловить после пробной эксплуатации аппарата.
Последний штрих: в оригинале плата дисплея всегда питалась от батареек. Без них аппарат вообще не включался. Логично, чтобы при включенной сетевой вилке батарейки не разряжались, а питание происходило от встроенного блока питания. Пришлось сделать миниатюрную дополнительную платку.
На ней разместил коммутатор батареек (P-канальный полевой транзистор IRLML5103) и стабилизатор LM1117 на 3.3 В, который через диод Шоттки BAT85 подключил к цепи питания часов. Теперь при наличии сетевого питания батарейки отключаются (проверил это, замерив потребляемый от них ток). Еще добавил второй диод Шоттки и резистор, чтобы обеспечить небольшой ток подзарядки батареек. Хоть формально батарейки не являются перезаряжаемыми, но небольшой ток зарядки способен продлить их жизнь. Такие цепи зарядки были встроены в некоторые модели микросхем часов фирмы Dallas.