Вопросы и предложения по статье 1 и статье 2 можно складывать сюда.
P.S. Git-репозиторий с последними исходниками проекта находится на GitHub.
Основной прошивкой на текущий момент является вариант на ATmega32 с кадровым буфером. Он поддерживает графические дисплеи 128x64:
а) на базе KS0108: - тип А (прямые лог. уровни на входах CS1/CS2) (схема подключения); - тип Б (обратные лог. уровни на CS1/CS2), с другой распиновкой (схема подключения); б) на базе контроллера ST7920, с распиновкой совпадающей с с KS0108A (схема подключения).
Данный вариант прошивки наиболее предпочтителен ввиду наибольшей функциональности:
- Поддержка режима обучения кнопкам любого пульта стандарта RC5 без необходимости ручной правки EEPROM в hex-редакторе - Управление вентиляторами охлаждения усилителя мощности на базе данных от термодатчиков типа DS18B20 (функциональность лично мною проверена только в эмуляторе, не в железе) - Высокая скорость обновления дисплея за счёт кадрового буфера - Графические значки для регулируемых функций. - Редактор параметров EEPROM в виде отдельного приложения
Именно этот вариант прошивки будет расширяться функционально в будущем.
Также этот вариант прошивки может быть легко перекомпилирован под любой другой контроллер AVR с достаточным объёмом RAM(2kB)/Flash(32kB)/EEPROM(1кБ). Потребуется лишь перенастроить таймеры и источник внешнего прерывания для обработки сигнала с пульта ДУ и описать подключение ножек в отдельном файле pins.h.
Чуть менее функционален вариант на ATmega16 (исходный код). Его также можно собрать и под ATmega32 без правки исходников, изменив соответственно переменную MCU в Makefile. Просьба обновить первое сообщение в ветке форума. Ввиду того, что проект перехал с закрывшегося googlecode на github, практически все старые ссылки оказались битыми.
Поэтому целесообразнее всего полностью заменить первое сообщение новым, полный текст которого приведён ниже.
Достоинства: - поддержка графических дисплеев LS020 из телефонов Siemens *65 (мною вариант проверялся только в эмуляторе, по поводу схемы подключения интересуйтесь у форумчан или по файлу ls020.h.
Недостатки: - нет режима обучения пульту (только отображение кодов нажимаемых кнопок, которые можно записать на бумажку и потом руками внести в EEPROM); - нет поддержки термодатчиков для управления вентиляторами.
Также есть "дешёвый" вариант на ATmega8 (исходный код), поддерживающий только символьные дисплеи 16x2.
Достоинства: - доступные дисплей и контроллер. Недостатки: - только моно режим отображения спектра
Имеется ещё один вариант на ATmega8 (исходный код), с жёстко фиксированным сочетанием железа - дисплей 16x2, аудиопроцессор TDA7313, без поддержки тюнера.
Достоинства по сравнению с предыдущим вариантом: - возможность смены языка (русский - английский) на лету - "заточенность" под одну печатную плату
Имеющиеся схемы и проекты для всех вариантов можно найти на GitHub: m8, m8-lcd, m16, m32.
На данном этапе текущий функционал по указанным выше веткам "замораживается". Будут добавляться исправления ошибок, если они будут найдены. Не стесняйтесь использовать для сообщений об ошибках GitHub, там они точно не потеряются и будут рано или поздно исправлены.
Обновлённые прошивки на 21.03.2016 прикреплены к сообщению 2700954. Информация в шапке темы также актуальна на эту дату.
Последний раз редактировалось aen Пт авг 05, 2016 09:54:20, всего редактировалось 3 раз(а).
22.03.2016 года внес изменения в данный пост по просьбе автора.
WiseLord - браво. Не могу не отметить комплексное и свежее решение. Пожалуй лучшее на данный момент на AVR. Однако экран не самый оптимистичный по цене. (Тимофей Носов).
_________________ Нажмите кнопочку www под этим сообщением, если возникли вопросы.
По сути этот проект был у меня "оцифровкой" ранее сделанного усилителя на TDA7293 / LM1036. Высота корпуса около 9см позволила поставить такой дисплей (плата дисплея намного шире высоты самого дисплея) У меня в закромах есть ещё один аналогичный усилитель, но корпус я у него пониже. Его я планирую "оцифровать" в ближайшее время, и туда поместится только что-то поменьше, вроде WH1602. Так что, в ближайшее время (в течение этой зимы, думаю) должна появиться аналогичная более простая конструкция (со спектроанализатором) уже на более привычных HD44780-based знакосинтезирующих дисплеях. Благо, самое сложное - математика (разные преобразования Фурье) уже отработана, а перевести схему на другой дисплей много проще.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Добрый вечер. Отличная работа. Статья понравилась. На данный момент собрано управление отсюда http://radiokot.ru/circuit/audio/amplifier/31/ только по третьей версии . Ваша привлекла спектроанализатором который мне нравится. После праздников попробую повторить если найду дисплей тот что хочу. С надеждой жду развития девайса.
Хорошая идея, но мне кажется он еще сыроват. Шрифт на дисплее рубленый, если б сделать его покрасивее, возможно добавить какие-нибудь иконки (например настройки и рядышком шестеренка нарисована) и обычно спектранализатор делается один, а не два, неплохо было бы добавить термометр чтоб включал кулер на выходном каскаде, ну и как сказал автор, тюнер тоже не помешал бы=). Надеюсь что автор не оставит свой усилок на таком этапе и будет его совершенствовать=))
Красивые шрифты высотой 16/24 мне рисовать было просто лень, я и с 8x6 шрифтом помучился. Поэтому я просто смасштабировал в 2-3 раза имеющиеся высотой 8. Хотелось побыстрее получить рабочую схему, не отвлекаясь особо на дизайн. Спектроанализатор кнопкой на пульте переключается в другой режим (вместо двух спектров обоих каналов - один смешанный). На разъёме управления вентилятором оставлены пара неиспользуемых ног контроллера, как раз на случай подключения чего-нибудь вроде датчика температуры.
Худо-бедно снятый видеоролик работы устройства можно посмотреть на YouTube. Там же в моём профиле ещё пара роликов на разных этапах разработки.
Очень понравилось устройство. Как увидел и прочитал статью, захотелось собрать. А можно будет вместо энкодера PEC-12 применить валкодер на базе шагового двигателя? Такой как в этой конструкции: http://radiokot.ru/circuit/audio/amplifier/31/ Там автор что-то в прошивке "подкручивал" специально, чтобы нормально работали и контактные и бесконтактные энкодеры.
Бегло погуглил такую замену валкодера. Насколько я понимаю, он выдаёт похожие импульсы, поэтому его, наверное, всё же можно подключить. Разве что понадобится отключить по этим входам микроконтроллера внутренние резисторы подтяжки. Да и импульсов на оборот у него 200 - в 10 раз больше, чем у механического - придётся в коде делить импульсы. Так что, наверное, доработка программы всё же понадобится, но, не имея на руках такого девайса, судить сложно.
Описанный в статье усилитель отдал брату, так что сейчас для доводки программы буду собирать новый комплект управления/темброблока.
Сегодня на рынке купил дисплей WG12864B, весь вечер промучился с ним, да так что-то и не завёл. Подозреваю бракованный экземпляр. Тот факт, что в нём питание перепутано, учёл сразу, так что спалить не мог. И то, что в нём, как пишут в интернетах, CS1/CS2 сигналы другой полярности, нежели в A версии, тоже учитывал. Посему вопрос к котам, которые работали с такими дисплеями: никто не сталкивался с тем, что после подачи питания горит лишь одна строка и дисплей никак не реагирует на команды/данные?
Проштудировав даташиты на дисплеи, сделал для себя небольшую табличку (выше - графические, ниже - знакосинтезирующие):
В общем, производители издеваются над пользователями кто как хочет. Мало что посадочные места у дисплеев - где сверху, где снизу, где сбоку, где в один, где в два ряда, так ещё и выводы (особенно питания) кто как хочет делает. Плюс активный уровень CS1/CS2 в разных графических дисплеях может отличаться.
В сообщениях выше звучали просьбы/пожелания вроде поддержки разных дисплеев и микросхем темброблока. И глядя на эту табличку, я подумал, что теоретически можно написать программу так, чтобы "автодетектировать" это оборудование. Тут я, правда, немного лукавлю. На самом деле я имею в виду следующее:
В схеме (и печатной плате) предусмотреть на порту B (к нему подключается линия данных дисплея) возможность подключения подтягивающих резисторов ~1кОм на к земле.
Далее, при включении питания, перед инициализацией дисплеев и всего прочего переводить порт B в режим входов с встроенной подтяжкой к питанию и считывать состояние входа. Поскольку по даташиту встроенные pull-up резисторы имеют номинал 20-50кОм, то при наличии внешнего резистора на земле из порта будет читаться 0, при отсутствии - 1.
Ну а дальше - уже как программу напишешь. Например, при 0 на PB0 можно инициализировать дисплей как графический, при 1 - как текстовый, 0 или 1 на PB1 может отвечать за полярность CS1/CS2, на PB2 - за TDA7436/TDA7313, например. Так что одна и та же прошивка может работать с разным оборудованием, в зависимости от наличия этих резисторов. А на обычную работу они влиять, по идее, не должны.
Другой вопрос, поместится ли такая программа в flash. Особенно, если большие (16 или 24 пиксела высотой) шрифты рисовать, а не масштабировать из 8-пиксельных. Хотя тут можно и ATmega32 взять, они с ATmega16 не особо различаются.
если кому не трудно, выложите скрин с фузами под пони прог, а то в програмировании не особо силен. собрал сейчас устройство, прошил мегу, поставил вот это lfuse:w:0xff:m -U hfuse:w:0xd1:m. включаю ни кого, очень слабо на матрице светится подсветка, регулеровка фокуса ни к чему ни привела, что может быть и что должно быть на матрице при первом включении?
При первом включении должны отображаться часы на слабой яркости (определяемой суммарным сопротивлением R10 и R17. Идти они не будут, так как в часах реального времени DS1307 не сброшен один бит, который автоматически сбросится при начале настройки часов, и они пойдут. Если нажать одну из кнопок (подключенную к PD0 микроконтроллера), откроется транзистор Q1, яркость повысится и система выйдет из режима ожидания, в котором будут работать и все остальные кнопки, помимо PD0. Там и часы можно настроить (длительное нажатие на кнопку PD5).
По поводу fuse-битов - галочки должны стоять (бит включен = 0) на SPIEN, EESAVE, BOOTSZ0 и BOOTSZ1. Остальное - галочки сняты (бит выключен = 1).
Для проверки дисплея попробуйте зашить hex-файл (приложен к посту). Это я последние пару дней переписывал библиотеку для дисплея и рисовал красивые гладкие шрифты + текущая версия библиотеки более корректна в плане таймингов. В прошивке для спектроанализатора используется более простой первоначальный вариант жёстко заданным таймингом 10 мкс на команду дисплею (для моего дисплея хватало с двухкратным запасом, но нет гарантии, что попадётся более медленный дисплей). В новой библиотеке команда посылается дисплею только после проверки флага его готовности.
В ближайшее время подключу новую библиотеку к основному проекту и выложу новые прошивки.
что-то непонятки вобще!!!!!! зашиваю вашу тестовую прошивку, все отлично, побежали циферки и буковки), а те прошивки которые из архива к схеме, не хотят, в чем дело???
Как я и думал, дело может быть в таймингах дисплея. В старой прошивке они жёстко заданы (10мкс), и ваш экземпляр дисплея может не успевать отрабатывать.
P.S. Попробуйте прошивку из вложения. Здесь я перенёс систему опроса статуса дисплея на новый лад (пока только её, без новых шрифтов).
Последний раз редактировалось AlekseyEnergo Вс янв 12, 2014 01:27:48, всего редактировалось 1 раз.
Нарушение пункта 2.7правил форума. Подредактировал. Предупредил!
Сейчас этот форум просматривают: Igor5264, karin44 и гости: 59
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения