|
Введение
Удел системного контроллера - согласование действий различных блоков. Включая пользователя. Системный контроллер следит за командами
пользователя и, в соответствии с ними и своей программой, раздаёт команды различным участкам схемы. Для чего имеет много лапок -
блестящих и разных.
Системный контроллер для видеопроцессора tda8842 стоит около 300р. К тому же фиг знает, как он там внутри работает. К тому же
неизвестно, понравится ли мне его пользовательский интерфейс. К тому же ему надо питание 3,3 в. К тому же он может
начать привередничать на тему включения видеопроцессора. Типа "а почему тут шины защиты не подключены" или что нибудь ещё.
К нему, кстати, нужен его родной пульт. Даже если узнать марку микросхемы-передатчика - в каком магазине мне дадут справку
о том, в каких пультах она используется ? Неизвестно, с каким тюнерами он дружит. Поэтому только свой проц и своё фирмваре.
AT89C2051
Первые четыре ТВ строились на процессоре AT89C2051. Эту версию я подробно описывать не буду, только приведу схему
и несколько комментариев.
Эта версия, на фоне ATmegи выглядит неудачной. Несмотря на то, что стоимость процессора AT89 почти в два раза ниже ATmegи,
стоимость сборки и деталей получается выше. Для AT89 нужен детектор ошибок питания (brown-out), нужна энергонезависимая память...
Попробовать обойтись без BO-детектора можно, но я опасался за содержимое памяти и за ошибки в управлении (ну, правда,
нехорошо же, если ТВ, например, сам включится из-за броска напряжения в сети...)
Но это ещё мелочи. Хуже то, что поскольку мне не хватало памяти программ у AT89, текстовые строки (менюшки, например) были перенесены во
внешнюю flash-память. Т.е. код будет работать только с предварительной прошивкой памяти. Дампа прошивки у меня нет :).
Память заполнялась специальным perloвским скриптом, который читал фрагмент исходного текста программы и общался
с отладочной прошивкой (ей флеш не нужен). Такие вот
пирожки с котятами.
ATmega8
Здесь всё гораздо проще. В частности, удалось упросить управляющие силовыми цепями каскады. Одно из требований к ним - если лапки процессора
находятся в послесбросовом состоянии (у ATmegи это Z-состояние, у AT89 - PullUp) - все внешние цепи должны быть обесточены. Мало ли что...
Теперь про каждый фрагмент схемы в отдельности:
- Конденсаторы по цепи питания ставятся так: 0.22 - вблизи стабилизатора напряжения кр142ен5а (7805), 0.1 - вблизи лапок питания ATmegи (я использовал
SMD, чтобы подсунуть их как можно ближе).
- PullUp резисторы i2c подключены к шине +5 в основного (!) питания ТВ. Т.е. эта та шина, которая питает OSD и тюнер. Зачем ? Чтобы при обесточивании
этих блоков их i2c-входы также были без напряжения. Как известно, входы (особенно цифровых CMOS микросхем) не любят, чтобы напряжение на них
было выше приложенного в данный момент напряжения питания. В версии AT89 фирмваре даже выставляло на выходы i2c постоянный ноль на время standby
(из-за чего flash-память также становилась недоступной, хотя её питание подводится от дежурного источника).
Номиналы резисторов не должны быть слишком низкими - см раздел о тюнере. В некоторых версиях я использовал 5,6 к, в других - 6,2 к.
- Биззер/BELL - неразборная кварцевая пищалка со встроенным генератором. Она похрюкивает после получения команды "Пуск" до появляется картинки (т.е. в то время,
когда идет прогрев катода и силовое питание ещё отключено). Добавлена по просьбе заказчика ("а то не понятно - включился он или нет").
Резистор, отмеченный "*" последовательно с пищалкой подбирается индивидуально, если нужен.
- Светодиод и приёмник ИК были подробно рассмотрены в разделе "подготовка".
- Тактирование выбрано внутренним, 8 МГц. Никому, кроме анализатора команд ДУ, точность установки этой частоты не интересна. Но и анализатору
ДУ нужно подстраиваться под скорость пульта, так что он переживёт отсутствие кварца. Никаких режимов standby для процессора
не предусмотрено. Он и так есть мало. Остальные установки [fuse-ов] есть в архиве с исходными текстами.
- Кнопок на морде ТВ нет. Смешно сказать - а в 80-х бы от смеха вообще умереть можно было - но управление через ДУ дешевле. Потому что
пульт ДУ с гордой надписью forGoldStar стоит около 70 рублей да ещё ИК приёмник рублей 30 и всё это
требует единственной ножки контроллера. А как насчёт замутить самому красивую панельку с кнопками на морде ? Мне бы она обошлась всяко
дороже сотки (моральных страданий :) ... от необходимости аккуратной работы).
Пульт forGoldStar 105-210a был выбран исходя из цены. Про разные
пульты, в т.ч. и этот, можно почитать здесь.
- Силовые каскады, в количестве трех штук, расположены на общей плате, а вот их нагрузки разбросаны гораздо дальше. Первый каскад
включает два реле (или одно, но с минимум тремя контактами на переключение) - первая секция подает 220 в на силовой БП,
вторая и третья переключают цепи накала кинескопа между цепями предпрогрева и основным питанием. Второй и третий каскады - предпрогрев кинескопа.
Ему посвящён отдельный раздел ниже.
- Цепочка из резистора, подключенная к лапке B5 (13) - контроль силового блока питания. По появлению напряжения на ней контроллер судит о том,
как прошел старт, но что ещё важнее - по отсутствию напряжения на ней после выключения контроллер может предотвращать (пищанием только)
ситуацию, когда накал катода обесточен, но напряжение анод-катод присутствует (см. в Google "отравление катода").
- UART/rs232 - последовательный интерфейс - используется для отладки и, в версии ATmega, для перепрошивки фирмваре
(SPI не рулит - он не поддерживается аппаратно PC, не проверяет контрольных сумм, а к тому же плотность
потока данных при программировании слишком низкая - на каждые 32 переданных бита только 8 - значимых).
- Линия RESET подключена к плюсу питания. В более ранних контроллерах с ней няньчились, продолжают няньчится
и сейчас - в большинстве любительских схем in system programmimg реализован через SPI, а для него
нужна линия RESET. Мне такой вариант
не понравился, параллельное программирование вызывает большее уважение. Поэтому SPI просто
отключен через фьюзы. Если вам такой образ мысли не близок и хочется использовать RESET более полно,
напомню основные рекомендации:
Документ AVR415: рекомендуется внешний резистор 3 к между RESET и питанием для уменьшения реакции на
внешний шум (ATtiny28). Это всё таки лучше, чем никуда не подключать.
AVR042: ...а также не забыть про диод (анод к RESET, катод к плюсу питания), чтобы устройство не перешло в
режим параллельного программирования. Можно вообще пристегнуть RESET к Vcc.
- Перемычка INIT, между "землёй" и D3 (5), нужна при первом включении, до сохранения параметров яркости/контрастности/цветности,
и настройки на, хотя бы один, канал. Она предотвращает чтение из EEPROM некоторых неверных (до первого
сохранения) параметров.
- Цепочка питания содержит стабилитрон и предохранитель, на случай сбоя в стабилизаторе питания: при
увеличении напряжения свыше 5.6 в стабилитрон будет удерживать этот уровень либо, если ток
будет велик, возможно, сгорит предохранитель.
- Резисторы между базами и эмиттерами транзисторов (отмечены "?"), возможно, не нужны. Поставил их по инерции.
- Там, где транзисторы обозначены как мп37 - на самом деле я не помню, что ставил. Возможно, на самом деле, мп10. Хотя,
применительно к данной схеме они аналогичны. Можно спокойно заменять их любыми маломощными n-p-n.
- Микросхему кр152ен5а можно посадить на небольшой радиатор: пластинка примерно 2x3 см. Хотя её температура и так невысокая.
- В этом разделе почти ничего не говорится о том, каким образом строится программное обеспечение контроллера.
Это связано с тем, что его сложность не очень высока, а исходные тексты содержат много комментариев.
Кроме того, в разделе, посвященном тюнеру, описаны детали взаимодействия с ним (мне кажется,
алгоритмически это самый неочевидный участок кода).
Часть фрагментов кода (самопрограммирование и пользовательские меню, например) почти без изменений
перенесена в Orfey и подробно там описана.
Предпрогрев кинескопа
О его необходимости споры не утихнут, пока существуют вакуумные приборы. В умных статьях просто пишут о том, что
это продлевает жизнь кинескопа, но только в одной статье (ссылка потерялась) автор упомянул о собственной статистике, показывающей
до 2-х кратного увеличения жизни советских кинескопов (он знакомым ставил схему защиты, причём не всем подряд и следил
за развитием событий). Т.е. спор не о том - нужно ли, а о том - какой, численно, выигрышь, причём как для отечественных
так и для импортных труб ? Но производители телеков хранят молчание - в СССР просто не успели развить эту
схему, как мне кажется, а за рубежом и кинескопы дохнут меньше и мало у производителя стимулов слишком долгоживущим делать
аппарат. Может, если бы зелёные подсуетились насчет налога на утилизацию техники... Ну а пока живем как есть. И
обращаем внимание на то, что делаем аппарат для себя, для внутреннего употребления.
Теперь к сути явления. Предпрогрев нужен по двум причинам:
- Пока нить накала холодная, сопротивление её низкое. Очень. Значит
тепловой удар при подключении к источнику напряжения (т.е. с очень низким внутренним сопротивлением) обеспечен. Сопротивление
резко возрастает даже при 20 % от номинального нагрева. Причём очень быстро. Пара секунд и спираль готова. У импортных ТВ
(да и у наших последних) стали последовательно со спиралью ставить резистор. Видимо, как раз для того, чтобы
смягчить тепловой удар.
- Вторая причина мне понятна хуже, но она от этого не исчезнет. Называется "отравление катода". Оно происходит в том
случае, если через катод протекает ток, но температура находится за пределами расчетной. Причем плох и перегрев и недогрев.
И вообще - жить вредно. Катод греется долго - полминуты, например. Импортный телевизор может выйти в рабочий режим
быстрее, но это, скорее всего, из-за того, что на недогретый катод автоматика как следует давит микропроцессорным
интеллектом. От чего он дохнет ещё быстрее. В общем, прежде чем подавать высокое напряжение (т.е. включать блок развёртки,
а без него нельзя включить и блок силового питания (см. особенности МП-3)) катод нужно аккуратно прогреть.
Как решается эта задача ? По разному. Сложность любительских схем возрастает из принципа "подайте кто сколько может".
Кто-то делает предпрогрев от трасформатора с низким выходным напряжением, кто-то ставит резистор и релюшку в основную цепь,
в одной статье даже предлагалось постоянно питать накал небольшим напряжением, чтобы по команде "старт" телек включался сразу. Были варианты
и медленного увеличения напряжения накала специальной схемой.
При проектировании этой цепи я исходил из следующих соображений:
- В рабочем режиме, когда блок разверток включен, потенциал между нитью накала и катодом должен быть не более 70 в. Может в цифре
немного ошибся, но порядок верен. Если потенциал будет выше - пробой между катодом и нитью возможен. Катод висит на уровне 0..250 в над
уровнем "земли", накал приподнимают в разных моделях ТВ на уровень 30-70в. Т.е. нужна гальваническая развязка накала в рабочем режиме от "земли".
- Кинескоп - штука дорогая. Если в результате ошибки в схеме управления на него попадёт высокое напряжение - можно попалить накал.
Значит разнообразные версии импульсного питания (моей реализации) отпадают. Мягкий запуск - только большим резистором. Рабочий режим
- только штатной схемой.
- Силовой блок питания и строчный трасформатор на время прогрева остановлены.
- Микропроцессору нельзя доверять стабилизацию питающих напряжений, но нельзя также упустить возможность использовать
его в качестве дополнительного контроля (с возможностью полного обесточивания аппарата или
громким и противным озвучиванием аварийной ситуации).
Таким образом получается следующее - предпрогрев возможен только от источника дежурного питания. Для простоты - через резистор. Для
понтов - в два этапа. Поскольку резистор можно только подключить или отключить (ШИМ-управление запрещено, да и не факт, что от него
здесь польза будет...) - значит для двух ступеней нужны две лапки контроллера и два силовых транзистора. Опытным путём удалось определить (измеряя
ток КЗ катод-модулятор при отключенном аноде - т.е. без приложения каких либо напряжений к кинескопу, кроме накала), что катод греется
долго (ток может "плыть" минут пять), но основной нагрев приходится на первые 10-15 секунд для очередной включенной ступени. Первый этап прогрева
выбран в районе 1,5..3,5 в (т.е. 1,5 в в начальный момент, потом, по мере прогрева нити, напряжение на ней возрастает из-за изменения её сопротивления)
- предположим, что он предотвращает тепловой удар. Ток на этом этапе растет от ~300 ма до 400 ма.
затем "догрев" - 4,5..5,5 в (сопротивление плывёт уже меньше) - это уже чтобы катод был догрет перед подачей анодного напряжения. Здесь ток
приближается к 0.6 а.
После предпрогрева происходит переключение релюшкой нити накала к штатной обмотке строчного трансформатора. Для контроля переключения сделана
обратная связь, которая следит за тем, чтобы цепь предпрогрева была разорвана. В противном случае накал остается подключенным к обесточенной
уже цепи предпрогрева, а в цепи анод-катод уже бегут электрончики и интенсивно портят катод. Работа от штатного трансформатора обеспечивает
точность поддержания напряжения накала и гальваническую развязку.
NB: после врезки в цепь накала дополнительного реле и проводов напряжение в штатном режиме упадёт примерно на 0,1-0,2 в. Как с этим справиться будет рассмотрено
в разделе "Настройка".
|