Управляющая программа для а/м – своими силами на примере BECKER BE0778

Предисловие

Мой первый практический проект на микроконтроллере. Статья старая, писалась в 2000 году. Само устройство было сделано еще раньше. Тема статьи в настоящее время совершенно не актуальна. Имеет интерес лишь для саморазвития. Программатор “жгучий кабель” в настоящее время сильно устарел и я убрал его описание. В остальном приводится почти без изменений.

Проект Becker

Работаю я регулировщиком РЭА на одном из предприятий нашей так называемой оборонки, а также в свободное от основной работы время занимаюсь ремонтом бытовой РЭА. Давненько, лет 5-6 назад попалась мне а/м BECKER, исправная, но с так называемым кодом. Долго тогда я с ней мучался, но одолеть не смог. Только в результате моих экспериментов сдох микроконтроллер (далее по тексту м/к). Долго эта магнитола пролежала в моих загашниках, и вот совсем недавно у меня возникла мысль её оживить, путём установки в неё какого-либо подходящего м/к с самостоятельно написанной прошивкой. Поводом к тому послужило наличие на рынке в настоящее время недорогих многократно перепрограммируемых м/к, наличие доступного Интернета для скачивания описаний к используемым м/c, а также желание попробовать свои силы и наличие свободного времени. Учитывая стоявший в BECKERе м/к типа 8049, наиболее подходящей заменой ему я выбрал м/к AT89S8252 изсемейства совместимых с MCS-51. У него достаточное число ног, а главное большой запас стираний/записи (по описанию – не менее 1000), достаточный объём РПЗУ (8 кб) и невысокая стоимость (в MITRAKONE 3.45$, на Митинском рынке купил за 70р). Cкачав из Интернета так называемые даташиты, оказалось нетрудно составить структурную схему BECKERа и выяснить назначение всех выводов прежнего м/к:

На основе полученных данных была составлена схема переходной платы:

Переходная плата потребовалась, т. к. цоколёвка AT89S8252, немного не совпадает с 8049.

В качестве программатора наиболее подошел так называемый “жгучий кабель”, собранный также самостоятельно. Он прост в сборке, не содержит дорогих комплектующих, а самое главное позволяет программировать кристалл прямо в схеме, что весьма удобно для начинающего программиста. Также весьма удобным оказалось то, что в этом программаторе COM-порт используется по прямому назначению, что дало возможность, установив на плате программатора дополнительный переключатель, использовать встроенный в AT89S8252 COM-порт для отладочной печати. В качестве среды для написания “прошивки” я выбрал PROVIEW производства Franklin Software Inc. Обладает понятным интерфейсом, хорошим HELP-ом и имеется встроенный отладчик.В среде PROVIEW возможно написание программ на ASSEMBLERE или СИ. Написав несколько cтрок на ASM, я понял, что для меня в данном случае ASM плохо подходит. Так в качестве языка был выбран СИ. Теперь о написании прошивки. Начал с примеров, имеющихся в PROVIEW. Потом поморгал лампочкой “DK”. Написал регулятор громкости и т.д. Принцип работы вполне понятен из исходного текста и комментариев в нём.

Несколько слов о использовании обновленной магнитолы. Учитывая больший объём памяти нового м/к, а также наличие на кристалле EEPROM, в состав магнитолы были введены новые функции – 30 каналов памяти UW, 30 каналов памяти MW и ДУ. Запрос кода не поддерживается, также в ввиду отсутствия в нашей стране службы VWF (German ‘Verkehrs Warnfunk’) не обрабатываются сигналы декодера VWF. Сразу после включения магнитола переходит в режим работы с каналами памяти, на индикаторе отображается “СHXX” где “XX” – номер текущего канала. Для переключения каналов используется ручка настройки. Для перехода в режим ручной настройки надо нажать и удерживать клавишу “DK”. Режим ручной настройки аналогичен работе с оригинальным BECRERом. Для записи выбранной частоты в память надо ещё раз нажать и удерживать клавишу “DK”, при этом загорится лампочка “DK” и будет предложено выбрать канал номер канала для записи, на индикаторе будет отображаться “CHXX”. Длительным нажатием клавиши “DK” можно записать частоту в выбранный канал памяти, для отказа от записи в память надо нажать “DK” кратковременно. Для перехода обратно в режим работы с каналами также нажать “DK” кратковременно. В качестве системы ДУ выбрана широкораспостраннённая RC500 фирмы Phlilips. В качестве пульта ДУ используется пульт от телевизора “Horizont”. Поддерживается регулировка громкости, перебор каналов по кольцу и прямой выбор первых 9-ти каналов (c 1-го по 9-ый).

Приложение 1. Используемые материалы и литература.

  1. Краткие описания на м/c, используемые в BECKERе. Полные описания можно найти на ALL DATASHEET.
    • TDA1062 – м/c для УКВ блока, отечественный аналог К174ХА15;
    • TDA4200 – УПЧ, частотный детектор;
    • TDA1001 – шумоподавитель;
    • TCA4500 – стереодекодер системы с пилот-тоном;
    • TDA1579 – декодер системы VWF;
    • LA2904 – ОУ;
    • TDA4001 – однокристальный радиоприёмник;
    • SAA1057 – PLL синтезатор частоты;
    • TDA1029 – аналоговый двухканальный переключатель на четыре входа и один выход в каждом канале, отечественный аналог К174КП1;
    • TDA 1524 – электронный регулятор громкости стереобаланса и тембра;
    • TDA2005 – УНЧ;
    • HEF4094 – 8-ми разрядный регистр сдвига с последовательной загрузкой и параллельным выходом. Используется совместно с резисторным ЦАП и TDA1524 как регулятор громкости;
    • HEF4014 – 8-ми разрядный регистр сдвига с параллельной загрузкой и последовательным выходом. Используется для опроса клавиш памяти (в других моделях BECKERa), клавиши U/M, и “AUTOMATIC”;
    • PCF2112 – контроллер индикатора.;
  2. Описание на AT89S8252 можно найти официальном сайте производителя ATMEL. Также много полезной информации по м/к AT89S8252 можно найти в справочнике: Бродин В.Б., Шагурин М.И. “МИКРОКОНТРОЛЛЕРЫ архитектура, программирование, интерфейс”.
  3. PROVIEW демонстрационную версию (ограничение памяти 8кб) можно скачать здесь. А также найти на диске “Современные микроконтроллеры”, выпускаемом фирмой Телесистемы”.
  4. В качестве справочника по языку СИ использовалась книга: Б.И. Березин, C.Б. Березин “Начальный курс С и С++”.
  5. Весь проект в одном файле можно скачать с моего сайта becker.
  6. Все иллюстрации подготовлены с помощью системы ORCAD.

Приложение 2. Исходный текст прошивки.

Программа получилась небольшой и вся была размещена в одном модуле-файле. Я решил его привести не только в виде архива, но и в виде записи. Перед размещением исходный текст был отформатирован с помощью программы SourceViewer. Проект Becker

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *