Вопросы и предложения по статье 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правил форума. Подредактировал. Предупредил!
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения