Добавляю к статье http://radiokot.ru/circuit/digital/measure/82/ исходник на ассемблере (для тех, кто обиделся на его отсутствие), схему, плату и обновлённую прошивку. В прошивке освобождены несколько регистров для возможностей усовершенствования и изменена задержка для подавления дребезга кнопки "UP" с целью подключения валкодера без переработки программы. Удалось, валкодер работает приемлемо.
Вложения:
Комментарий к файлу: Рисунок плат процессора и синтезатора ATMEGA16+LM7001+WH1602.lay [191.61 KiB]
Скачиваний: 2783
А что конкретно Вам не понятно, уважаемый radiokot__? Если тема интересна - давайте общаться, обменяюсь мнениями с удовольствием. А вот на вопросы заданные в стиле "мне ничего не понятно и для чего все это?" каждый отвечает для себя сам. Зачем, например, радиолюбительство в принципе? На вопросы по существу - приятно отвечать, а Ваши вопросы не несут конкретики. Таких ответов прошу не писать.
Написал версию для работы с валкодером, но пока без кнопок. Память последней частоты, после которой устройство выключили остается, функции занесения в память настроек и извлечения из памяти пока не реализованы. Прерывания не использовал. Валкодер подключается к свободным ранее линиям порта PB0 и PB1 и работает отлично, без сбоев. Этот вариант прошивки удобен для создания генератора частот. Секция управления валкодером (SCAN_VALCODER) может быть полезна в любых устройствах, создаваемых самостоятельно, но с одним ограничением - свободные линии порта, куда подключен валкдер не должны использоваться и должны быть сконфигурированы как выходы. Можно, в принципе, поработать над снятием и этого ограничения.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Спасибо за конструкцию. Пока нет возможности повторить, но это временно. У нас работа в подвальном помещении, с радиоприёмом напряжённо. Пришлось собрать приёмник с высокой чувствительностью на TEA5710. http://vrtp.ru/index.php?act=categories ... ticle=1902 Всё радует, кроме многооборотного резистора настройки. Когда соберусь изготовить стереовариант на TEA5711, Ваш синтезатор будет задействован. Удачи Вам.
Сейчас много разных вариантов синтезаторов. Но у меня была цель написать программу самостоятельно с нуля, не подглядывая в чужие фрагменты, обучаясь в процессе, и обеспечить чёткую работу всех узлов. Сейчас в работе вариант с валкодером (почти готов), которым быстрее и удобнее перестраивать. Многим не нравится в этом применении ATMEGA16, но я другого мнения, это моё решение.
Представляю новую версию программы синтезатора с управлением валкодером и кнопками MODE и MEMORY. Назначение кнопок - прежнее. Подключены кнопки так: MODE=PD2 (вывод 16); MEMORY=PD3 (вывод 17), кнопки RESET пока нет. Подключение валкодера: PB0 (вывод 1) и PB1 (вывод 2). В качестве валкодера применен механический энкодер на 16 положений. Подключения конденсаторов на линии валкодера не потребовалось - работает устойчиво.
Обновил прошивку с валкодером и кнопками: теперь кнопки переключаются не по нажатию, а по отпусканию. Начало диапазона перенёс на стандартное значение - 87,5 МГц.
Вот ещё одна доработка программы, без которой не всё было бы корректно. При работе в режиме PRESET, но когда память еще не заполнена станциями - на индикатор выводилось число, выходящее за диапазон FM. Устранил введением проверки, находится ли число в диапазоне 87,5...108.
Готова версия программы с отображением номера канала. Каналов пока 9 (с 1 по 9). При включении работа начинается с 0 канала, в который автоматически заносится последняя станция перед выключением. Перебор каналов по кольцу, как в большую сторону, так и в меньшую. Устранен один "пустой" шаг в режиме PRESET, который имелся при смене направления вращения.
И последняя доработка программы - количество каналов памяти может быть любым от 1 до 99 и может легко меняться в программе сменой одной константы. В данном случае я установил 15 каналов.
Доработал программу: теперь максимально можно записать 99 каналов, но при меньшем количестве желаемых станций ничего в программе менять не нужно, т.к. пустые каналы будут игнорироваться и будет производиться перебор только "непустых" значений частоты, даже если их будет, например, 3. Ввёл кнопку сброса каналов RESET (подключается к PD1 процессора). Теперь, чтобы стереть все станции из памяти, нужно нажать эту кнопку и, удерживая её, подать питание. Пол-секунды индикатор ничего не будет показывать (в это время идёт очистка EEPROM), а потом отобразится следующее: "87,5МГц СН:00".
Заметил маленькую "некрасивость": если на индикаторе число сотен Мгц сменяется числом только десятков МГц, то числа не находятся в своих знакоместах. Хотя это уже непринципиальная вещь, но всё же устранил.
Благодарю за хорошие отзывы! Не делаю секрета из исходников и подробно их комментировал, потому, как сам учился по разным материалам, но во многих слабое место - описательная часть. Если есть вопросы пишите, т.к. есть некоторые тонкости. Например, применённый энкодер (PEC16), видимо, имеет разную длительность импульсов по своим линиям, т.к. при опробовании в реальной конструкции выяснилось, что при "неправильном" подключении его линий к контроллеру происходит увеличение частоты при вращении в любую сторону. Возможно, это ошибочное заключение, но иного не приходит в голову, т.к. фрагменты программы, отвечающие за обработку импульсов с обеих линий одинаковы, а значит, только разная длительность импульсов приводит к такому результату. А некоторые энкодеры (китайские) вообще работают не так, т.е. у них на 2 щелчка формирутся один импульс. Правильное подключение (обозначения линий по datasheet) следующее: канал А - на PB1 (вывод 2); канал B - на PB0 (вывод 1); Прикладываю Datasheet и фотографию применённого мной энкодера PEC16 фирмы BOURNS. Именно под такой тип энкодера писалась программа (1 щелчок - 1 импульс). Сейчас делаю вариант для OLED индикатора WEH1602AL (красивее, контрастнее и имеет меньшее потребление, но и дороже... ). Он "один в один" подходит для замены WH1602B и по размеру и по цоколёвке (у WEH1602AL выводы 3, 15,16 -свободные), но процедура инициализации иная.
Вложения:
Комментарий к файлу: Datasheet энкодера pec16.pdf [303.99 KiB]
Скачиваний: 1389
Сделал вариацию синтезатора на LC72131, т.к. она имеет больший частотный диапазон и возможности ее более гибкие. Да и потребление в 5мА радует. Пока "прикрепил" к LC72131 прошивку для всё того же вещательного приёмника с диапазоном 87,5-108МГц. Всё работает замечательно. Не задействовал внутренний транзистор микросхемы для ФНЧ, а использовал, как и прежде, 2 транзистора BC847. Планирую развивать проект до синтезатора любительского диапазона 144-146 МГц. Фото синтезатора в сборе: Режим плавной настройки Режим предварительных настроек каналов Индикация после очистки памяти настроек Платы ситезаторов на LM7001 и LC72131 и плата процессора в сборе с индикатором
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения