Форум РадиоКот https://radiokot.ru/forum/ |
|
Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864 https://radiokot.ru/forum/viewtopic.php?f=25&t=98758 |
Страница 1 из 238 |
Автор: | WiseLord [ Пн дек 30, 2013 22:36:53 ] |
Заголовок сообщения: | Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864 |
Вопросы и предложения по статье 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. Информация в шапке темы также актуальна на эту дату. |
Автор: | ntv [ Пн дек 30, 2013 22:58:52 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
WiseLord - браво. Не могу не отметить комплексное и свежее решение. Пожалуй лучшее на данный момент на AVR. Однако экран не самый оптимистичный по цене. (Тимофей Носов). |
Автор: | WiseLord [ Пн дек 30, 2013 23:37:08 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
По сути этот проект был у меня "оцифровкой" ранее сделанного усилителя на TDA7293 / LM1036. Высота корпуса около 9см позволила поставить такой дисплей (плата дисплея намного шире высоты самого дисплея) У меня в закромах есть ещё один аналогичный усилитель, но корпус я у него пониже. Его я планирую "оцифровать" в ближайшее время, и туда поместится только что-то поменьше, вроде WH1602. Так что, в ближайшее время (в течение этой зимы, думаю) должна появиться аналогичная более простая конструкция (со спектроанализатором) уже на более привычных HD44780-based знакосинтезирующих дисплеях. Благо, самое сложное - математика (разные преобразования Фурье) уже отработана, а перевести схему на другой дисплей много проще. |
Автор: | bav123 [ Ср янв 01, 2014 15:06:06 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
WiseLord возможно ли прошивку изменить под PT2313L (аналог TDA7313) ? |
Автор: | WiseLord [ Ср янв 01, 2014 17:03:24 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Думаю, да. У меня только нет этой микросхемы, поэтому протестировать не смогу. Но поменять коды команд, по идее, не сложно. |
Автор: | bav123 [ Ср янв 01, 2014 18:23:21 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Это хорошо. А мне проще было достать PT2313L, сейчас собран блок на ней.Тему закину в закладки, когда индикатор появится, то напомню о себе |
Автор: | alexfick [ Чт янв 02, 2014 00:02:48 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Добрый вечер. Отличная работа. Статья понравилась. На данный момент собрано управление отсюда http://radiokot.ru/circuit/audio/amplifier/31/ только по третьей версии . Ваша привлекла спектроанализатором который мне нравится. После праздников попробую повторить если найду дисплей тот что хочу. С надеждой жду развития девайса. |
Автор: | mur_myau1 [ Чт янв 02, 2014 04:40:56 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Ссылка, в начале статьи, не действительна. |
Автор: | WiseLord [ Чт янв 02, 2014 18:54:38 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
http://radiokot.ru/circuit/audio/filter/05/ Имелась в виду эта ссылка, статью пока поправить не могу (на модерации) |
Автор: | Vit318 [ Чт янв 02, 2014 20:02:26 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Хорошая идея, но мне кажется он еще сыроват. Шрифт на дисплее рубленый, если б сделать его покрасивее, возможно добавить какие-нибудь иконки (например настройки и рядышком шестеренка нарисована) и обычно спектранализатор делается один, а не два, неплохо было бы добавить термометр чтоб включал кулер на выходном каскаде, ну и как сказал автор, тюнер тоже не помешал бы=). Надеюсь что автор не оставит свой усилок на таком этапе и будет его совершенствовать=)) |
Автор: | WiseLord [ Чт янв 02, 2014 20:45:17 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Красивые шрифты высотой 16/24 мне рисовать было просто лень, я и с 8x6 шрифтом помучился. Поэтому я просто смасштабировал в 2-3 раза имеющиеся высотой 8. Хотелось побыстрее получить рабочую схему, не отвлекаясь особо на дизайн. Спектроанализатор кнопкой на пульте переключается в другой режим (вместо двух спектров обоих каналов - один смешанный). На разъёме управления вентилятором оставлены пара неиспользуемых ног контроллера, как раз на случай подключения чего-нибудь вроде датчика температуры. Худо-бедно снятый видеоролик работы устройства можно посмотреть на YouTube. Там же в моём профиле ещё пара роликов на разных этапах разработки. |
Автор: | Andy_sv [ Пт янв 03, 2014 02:13:00 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Очень понравилось устройство. Как увидел и прочитал статью, захотелось собрать. А можно будет вместо энкодера PEC-12 применить валкодер на базе шагового двигателя? Такой как в этой конструкции: http://radiokot.ru/circuit/audio/amplifier/31/ Там автор что-то в прошивке "подкручивал" специально, чтобы нормально работали и контактные и бесконтактные энкодеры. |
Автор: | WiseLord [ Пт янв 03, 2014 10:53:47 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Бегло погуглил такую замену валкодера. Насколько я понимаю, он выдаёт похожие импульсы, поэтому его, наверное, всё же можно подключить. Разве что понадобится отключить по этим входам микроконтроллера внутренние резисторы подтяжки. Да и импульсов на оборот у него 200 - в 10 раз больше, чем у механического - придётся в коде делить импульсы. Так что, наверное, доработка программы всё же понадобится, но, не имея на руках такого девайса, судить сложно. |
Автор: | alexfick [ Сб янв 04, 2014 23:36:46 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
просмотрев видео появилось небольшое предложение: надписи немного посдвигать от краем к центру будет смотреться красивее |
Автор: | bav123 [ Вт янв 07, 2014 08:05:20 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
WiseLord Да, было бы очень удобно, если такой вариант прошивки написали. |
Автор: | masy [ Сб янв 11, 2014 11:22:08 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
если кому не трудно, выложите скрин с фузами под пони прог, а то в програмировании не особо силен. собрал сейчас устройство, прошил мегу, поставил вот это lfuse:w:0xff:m -U hfuse:w:0xd1:m. включаю ни кого, очень слабо на матрице светится подсветка, регулеровка фокуса ни к чему ни привела, что может быть и что должно быть на матрице при первом включении? |
Автор: | WiseLord [ Сб янв 11, 2014 20:10:03 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
При первом включении должны отображаться часы на слабой яркости (определяемой суммарным сопротивлением R10 и R17. Идти они не будут, так как в часах реального времени DS1307 не сброшен один бит, который автоматически сбросится при начале настройки часов, и они пойдут. Если нажать одну из кнопок (подключенную к PD0 микроконтроллера), откроется транзистор Q1, яркость повысится и система выйдет из режима ожидания, в котором будут работать и все остальные кнопки, помимо PD0. Там и часы можно настроить (длительное нажатие на кнопку PD5). По поводу fuse-битов - галочки должны стоять (бит включен = 0) на SPIEN, EESAVE, BOOTSZ0 и BOOTSZ1. Остальное - галочки сняты (бит выключен = 1). Для проверки дисплея попробуйте зашить hex-файл (приложен к посту). Это я последние пару дней переписывал библиотеку для дисплея и рисовал красивые гладкие шрифты + текущая версия библиотеки более корректна в плане таймингов. В прошивке для спектроанализатора используется более простой первоначальный вариант жёстко заданным таймингом 10 мкс на команду дисплею (для моего дисплея хватало с двухкратным запасом, но нет гарантии, что попадётся более медленный дисплей). В новой библиотеке команда посылается дисплею только после проверки флага его готовности. В ближайшее время подключу новую библиотеку к основному проекту и выложу новые прошивки. |
Автор: | masy [ Сб янв 11, 2014 21:34:16 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
что-то непонятки вобще!!!!!! зашиваю вашу тестовую прошивку, все отлично, побежали циферки и буковки), а те прошивки которые из архива к схеме, не хотят, в чем дело??? |
Автор: | WiseLord [ Сб янв 11, 2014 23:24:09 ] |
Заголовок сообщения: | Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128 |
Как я и думал, дело может быть в таймингах дисплея. В старой прошивке они жёстко заданы (10мкс), и ваш экземпляр дисплея может не успевать отрабатывать. P.S. Попробуйте прошивку из вложения. Здесь я перенёс систему опроса статуса дисплея на новый лад (пока только её, без новых шрифтов). |
Страница 1 из 238 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |