Контроллер PLL. Трех кнопочный вариант. Я думаю, не открою секрет, что на "блошиных" рынках, в гаражах у знакомых "имеются" старые, неисправные, разбитые, просто морально устаревшие, в общем не нужные автомагнитолы. В таких автомагнитолах, с вероятностью 99%, плата приемника исправна. Так вот, в этом проекте реализовано управление таким приемником. И этот же контроллер, но с другой программой, используется в приборе для настройки приемников настройки приемников. вот его фотографии:.... ВНИМАНИЕ! ПРОЕКТ ЗАМОРОЖЕН.
.... а вот схема ... эта же схема в P-CAD и печатная плата в P-CAD, прошивка для работы с приемником и для работы с прибором для настройки приемников.... исходники ... Контроллер предназначен для управления синтезатором частоты на основе PLL серии LC72131 (LC72130). Позволяет задавать частоту настройки PLL, управлять выводами BO и IO, анализировать состояние захвата частоты (LOCK), считывать значение IF_counter , в режиме приемника. Порядок работы контроллера: - при включении (или по сбросу) считывается "последнее" состояние (номер канала и частота настройки) и производиться инициализация PLL с этими парамертами; - кнопка 1 (левая) предназначена для последовательного переключения каналов преднастройки; - кнопки 2 и 3 (средняя и правая) предназначены для уменьшения и увеличения частоты настройки с шагом 10 или 50 кГц, в зависимости от диапазона (65...75 и 88...108 МГц). Шаг перестройки определяется автоматически. - после нажатия одной из кнопок осуществляется немедленная перестройка PLL и включается 3-х секундный режим "ожидания" (в верхней строке индицируется "<<>>" см.рис "Настройка").. если ,в течение, 3-х секунд ни одна из кнопок не нажата, то проиводиться запись в EEPROM, о чем свидетельствует надпись в верхней строке "ЗАПИСЬ" (см.рис). Режим ожидания выбран для "экономии" цилов "записи" в EEPROM (100 000 по datasheet' у... и если заисывать при каждой перестройке, то хватит на 100000/400= 250 циклов полной от 88 до 108 перестройки, а с учетом наличия диапазона 65-76 ...еще меньше... :-) ) программа для приемника, в дополние к выше сказанному, имеет режим "правильной" автонастройки (анализируется сигнал SD, а затем настройка "доводится" по IF_C) Четырех кнопочный контроллер. Собран новый вариант контроллера (на плате про котурую был рассказ). с белой подсветкой...
кстати, это именно та плата, которая изготовлена при написании статьи про красивую плату... Кроме внешнего вида в контроллере: - изменена схема опроса клавиатуры...клавиатура опрашивается как в автомагнитолах и муз. центрах.... путем изменения, при нажатии кнопок, коэффициента деления резистивного делителя и и измерения его выходного напряжения; - введено автоматическое отключение выходного сигнала (снятие несущей) при переходе в режим UNLOCK; - добавлена ступенчатая (-10db, -20db, -30db, OFF) регулировка уровня выходного сигнала; - нажатие кнопок дублируется звуковым сигналом. Схема, плата, прошивка (HEX), исходник (CV_AVR) (исходник распространяется "как есть") Рекомендации по использованию исходника: В связи с использованием ADC ATMega для работы с клавиатурой необходима подстройка весовых коэффициентов кнопок. В чем причина понять не смог, но два одинаковых контроллера дают разные (3,5%) результаты работы ADC. Видимо, "настройка" ADC обязательна. Есть у этой "особенности" и положительная сторона - величина весовых резисторов в клавиатуре не критична. ... Алгоритм программирования предлагаю следующий: в файле def_stas.c, в строке #define KEYOTL 0 значение "0" меняется на "1", проект компилируется и прошивается в кристал. После начала работы на экране индицируется числовое значение "не нажатой клавиатуры ". При нажатии каждой из кнопок значение меняется и соответствует нажимаемой кнопке. От числа на экране отнимаем 10 и вносим изменения в строки: #define K4 0 На этом "калибровку" можно считать законченной. Возвращаем "0" в строку #define KEYOTL 0. В строках // выбор частоты кварца LC устанавливаем требуемые значения и..... Все... Компилируем, прошиваем и работаем. EEP память заполняется при первом использовании, но если лень - можно записать готовое. Удачи! Kонтроллер на 16-ти разрядном индикаторе. Собран вариант котроллера на 16-ти разрядном индикаторе. ВНИМАНИЕ! ПРОЕКТ ЗАМОРОЖЕН.
По сравнению с 4-х кнопочным в него "добавлены" часы, заложена возможность установки таймера включения (выключения), управление двумя внешними устройствами (TTL - сигналы), введена возможность батарейного питания, ну и "бегущая строка"... Внимание! В связи с тем, что на диодах (VD1) падает около 0,8 вольта, а нижнее рабочее напряжение контроллера равно 2,7 вольта - батарейное питание должно осуществляться от 4,5 вольт, а не от 3 вольт. Прошивка контроллера НО ВНИМАНИЕ!!!!! Простое копирование прошивки в кристалл не гарантирует правильную и надежную работу кнопок. Нужно настраивать ADC, как в 4-х кнопочном, но для этого нужны исходники, а их выкладывать не планирую, так как все составляющие "куски" программы уже выложены и дальнейшее развитие этого проекта не планируется. (C)STAS633 29.05.06г-01.11.06г. |