Например TDA7294

 Форум РадиоКот • Просмотр темы - Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт сен 26, 2017 06:43:53



Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3019 ]  На страницу 1, 2, 3, 4, 5 ... 151  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
СообщениеДобавлено: Пн дек 30, 2013 23:36:53 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 10
Вопросы и предложения по статье 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 10:54:20, всего редактировалось 3 раз(а).
22.03.2016 года внес изменения в данный пост по просьбе автора.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Пн дек 30, 2013 23:58:52 
Нашел транзистор. Понюхал.

Карма: 3
Зарегистрирован: Пн авг 29, 2011 20:40:22
Сообщений: 182
Рейтинг сообщения: 0
WiseLord - браво. Не могу не отметить комплексное и свежее решение. Пожалуй лучшее на данный момент на AVR. Однако экран не самый оптимистичный по цене. (Тимофей Носов).


Вернуться наверх
 Профиль  
 
От идеи до готового устройства! Нужен только EasyEDA!

Бесплатный инструмент для проектирования печатных плат - нарисуй свою плату прямо сейчас!

JLCPCB for PCB Prototyping, всего $2 за 10 печатных плат 10×10см. Доставка 2-3 дня.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Вт дек 31, 2013 00:37:08 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 3
По сути этот проект был у меня "оцифровкой" ранее сделанного усилителя на TDA7293 / LM1036. Высота корпуса около 9см позволила поставить такой дисплей (плата дисплея намного шире высоты самого дисплея)
У меня в закромах есть ещё один аналогичный усилитель, но корпус я у него пониже. Его я планирую "оцифровать" в ближайшее время, и туда поместится только что-то поменьше, вроде WH1602. Так что, в ближайшее время (в течение этой зимы, думаю) должна появиться аналогичная более простая конструкция (со спектроанализатором) уже на более привычных HD44780-based знакосинтезирующих дисплеях. Благо, самое сложное - математика (разные преобразования Фурье) уже отработана, а перевести схему на другой дисплей много проще.


Вернуться наверх
 Профиль WWW  
 

Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Ср янв 01, 2014 16:06:06 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Зарегистрирован: Ср окт 12, 2011 21:37:13
Сообщений: 1358
Рейтинг сообщения: 0
WiseLord
возможно ли прошивку изменить под PT2313L (аналог TDA7313) ?


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Ср янв 01, 2014 18:03:24 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 0
Думаю, да.
У меня только нет этой микросхемы, поэтому протестировать не смогу. Но поменять коды команд, по идее, не сложно.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Ср янв 01, 2014 19:23:21 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Зарегистрирован: Ср окт 12, 2011 21:37:13
Сообщений: 1358
Рейтинг сообщения: 0
Это хорошо. А мне проще было достать PT2313L, сейчас собран блок на ней.Тему закину в закладки, когда индикатор появится, то напомню о себе :))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Чт янв 02, 2014 01:02:48 
Встал на лапы

Зарегистрирован: Вс июн 28, 2009 22:51:15
Сообщений: 95
Рейтинг сообщения: 0
Добрый вечер. Отличная работа. Статья понравилась. На данный момент собрано управление отсюда http://radiokot.ru/circuit/audio/amplifier/31/ только по третьей версии . Ваша привлекла спектроанализатором который мне нравится. После праздников попробую повторить если найду дисплей тот что хочу. С надеждой жду развития девайса.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Чт янв 02, 2014 05:40:56 
Первый раз сказал Мяу!

Зарегистрирован: Вт окт 25, 2011 04:27:05
Сообщений: 26
Рейтинг сообщения: 0
Ссылка, в начале статьи, не действительна.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Чт янв 02, 2014 19:54:38 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 0
http://radiokot.ru/circuit/audio/filter/05/ Имелась в виду эта ссылка, статью пока поправить не могу (на модерации)


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Чт янв 02, 2014 21:02:26 
Открыл глаза

Зарегистрирован: Пн апр 09, 2012 22:18:08
Сообщений: 63
Откуда: Минск
Рейтинг сообщения: 0
Хорошая идея, но мне кажется он еще сыроват. Шрифт на дисплее рубленый, если б сделать его покрасивее, возможно добавить какие-нибудь иконки (например настройки и рядышком шестеренка нарисована) и обычно спектранализатор делается один, а не два, неплохо было бы добавить термометр чтоб включал кулер на выходном каскаде, ну и как сказал автор, тюнер тоже не помешал бы=). Надеюсь что автор не оставит свой усилок на таком этапе и будет его совершенствовать=))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Чт янв 02, 2014 21:45:17 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 0
Красивые шрифты высотой 16/24 мне рисовать было просто лень, я и с 8x6 шрифтом помучился. Поэтому я просто смасштабировал в 2-3 раза имеющиеся высотой 8. Хотелось побыстрее получить рабочую схему, не отвлекаясь особо на дизайн. Спектроанализатор кнопкой на пульте переключается в другой режим (вместо двух спектров обоих каналов - один смешанный).
На разъёме управления вентилятором оставлены пара неиспользуемых ног контроллера, как раз на случай подключения чего-нибудь вроде датчика температуры.

Худо-бедно снятый видеоролик работы устройства можно посмотреть на YouTube. Там же в моём профиле ещё пара роликов на разных этапах разработки.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Пт янв 03, 2014 03:13:00 
Открыл глаза

Зарегистрирован: Чт янв 06, 2011 00:21:02
Сообщений: 58
Откуда: Ставропольский край
Рейтинг сообщения: 0
Очень понравилось устройство. Как увидел и прочитал статью, захотелось собрать.
А можно будет вместо энкодера PEC-12 применить валкодер на базе шагового двигателя?
Такой как в этой конструкции: http://radiokot.ru/circuit/audio/amplifier/31/
Там автор что-то в прошивке "подкручивал" специально, чтобы нормально работали и контактные и бесконтактные энкодеры.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Пт янв 03, 2014 11:53:47 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 0
Бегло погуглил такую замену валкодера. Насколько я понимаю, он выдаёт похожие импульсы, поэтому его, наверное, всё же можно подключить. Разве что понадобится отключить по этим входам микроконтроллера внутренние резисторы подтяжки. Да и импульсов на оборот у него 200 - в 10 раз больше, чем у механического - придётся в коде делить импульсы. Так что, наверное, доработка программы всё же понадобится, но, не имея на руках такого девайса, судить сложно.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Вс янв 05, 2014 00:36:46 
Встал на лапы

Зарегистрирован: Вс июн 28, 2009 22:51:15
Сообщений: 95
Рейтинг сообщения: 0
просмотрев видео появилось небольшое предложение: надписи немного посдвигать от краем к центру будет смотреться красивее


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Пн янв 06, 2014 00:56:16 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 3
Описанный в статье усилитель отдал брату, так что сейчас для доводки программы буду собирать новый комплект управления/темброблока.

Сегодня на рынке купил дисплей 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 не особо различаются.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Вт янв 07, 2014 09:05:20 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Зарегистрирован: Ср окт 12, 2011 21:37:13
Сообщений: 1358
Рейтинг сообщения: 0
WiseLord
Да, было бы очень удобно, если такой вариант прошивки написали.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Сб янв 11, 2014 12:22:08 
Встал на лапы

Зарегистрирован: Пн фев 04, 2008 13:38:54
Сообщений: 126
Рейтинг сообщения: 0
если кому не трудно, выложите скрин с фузами под пони прог, а то в програмировании не особо силен.
собрал сейчас устройство, прошил мегу, поставил вот это lfuse:w:0xff:m -U hfuse:w:0xd1:m. включаю ни кого, очень слабо на матрице светится подсветка, регулеровка фокуса ни к чему ни привела, что может быть и что должно быть на матрице при первом включении?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Сб янв 11, 2014 21:10:03 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 0
При первом включении должны отображаться часы на слабой яркости (определяемой суммарным сопротивлением R10 и R17. Идти они не будут, так как в часах реального времени DS1307 не сброшен один бит, который автоматически сбросится при начале настройки часов, и они пойдут. Если нажать одну из кнопок (подключенную к PD0 микроконтроллера), откроется транзистор Q1, яркость повысится и система выйдет из режима ожидания, в котором будут работать и все остальные кнопки, помимо PD0. Там и часы можно настроить (длительное нажатие на кнопку PD5).

По поводу fuse-битов - галочки должны стоять (бит включен = 0) на SPIEN, EESAVE, BOOTSZ0 и BOOTSZ1. Остальное - галочки сняты (бит выключен = 1).

Для проверки дисплея попробуйте зашить hex-файл (приложен к посту). Это я последние пару дней переписывал библиотеку для дисплея и рисовал красивые гладкие шрифты + текущая версия библиотеки более корректна в плане таймингов. В прошивке для спектроанализатора используется более простой первоначальный вариант жёстко заданным таймингом 10 мкс на команду дисплею (для моего дисплея хватало с двухкратным запасом, но нет гарантии, что попадётся более медленный дисплей). В новой библиотеке команда посылается дисплею только после проверки флага его готовности.

В ближайшее время подключу новую библиотеку к основному проекту и выложу новые прошивки.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Сб янв 11, 2014 22:34:16 
Встал на лапы

Зарегистрирован: Пн фев 04, 2008 13:38:54
Сообщений: 126
Рейтинг сообщения: 0
что-то непонятки вобще!!!!!! зашиваю вашу тестовую прошивку, все отлично, побежали циферки и буковки), а те прошивки которые из архива к схеме, не хотят, в чем дело??? :( :(


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
СообщениеДобавлено: Вс янв 12, 2014 00:24:09 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2876
Откуда: Минск
Рейтинг сообщения: 0
Как я и думал, дело может быть в таймингах дисплея. В старой прошивке они жёстко заданы (10мкс), и ваш экземпляр дисплея может не успевать отрабатывать.

P.S. Попробуйте прошивку из вложения. Здесь я перенёс систему опроса статуса дисплея на новый лад (пока только её, без новых шрифтов).


Последний раз редактировалось AlekseyEnergo Вс янв 12, 2014 02:27:48, всего редактировалось 1 раз.
Нарушение пункта 2.7правил форума. Подредактировал. Предупредил!


Вернуться наверх
 Профиль WWW  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3019 ]  На страницу 1, 2, 3, 4, 5 ... 151  След.



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y