Например TDA7294

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



Текущее время: Пт ноя 24, 2017 10:20:03



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




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

Карма: 64
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2950
Откуда: Минск
Рейтинг сообщения: 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 
Нашел транзистор. Понюхал.

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


Вернуться наверх
 Профиль  
 
JLCPCB Prototype, $2 за 10 печатных плат (2 слоя, 100×100мм).

Крупнейший производитель печатных плат в Китае, 290,000+ заказчиков, 8,000+ он-лайн заказов в день.

Узнать цену прямо сейчас!

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

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

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


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

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

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


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

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

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


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

Карма: 13
Зарегистрирован: Ср окт 12, 2011 21:37:13
Сообщений: 1377
Рейтинг сообщения: 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 
Собутыльник Кота
Аватар пользователя

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


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

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


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

Карма: 64
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2950
Откуда: Минск
Рейтинг сообщения: 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 
Собутыльник Кота
Аватар пользователя

Карма: 64
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2950
Откуда: Минск
Рейтинг сообщения: 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 
Собутыльник Кота
Аватар пользователя

Карма: 64
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2950
Откуда: Минск
Рейтинг сообщения: 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 
Это не хвост, это антенна
Аватар пользователя

Карма: 13
Зарегистрирован: Ср окт 12, 2011 21:37:13
Сообщений: 1377
Рейтинг сообщения: 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 
Собутыльник Кота
Аватар пользователя

Карма: 64
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2950
Откуда: Минск
Рейтинг сообщения: 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 
Собутыльник Кота
Аватар пользователя

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

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


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


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



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


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

Сейчас этот форум просматривают: ANDR232, dumpkin, SergeyK, xep687@gmail.com, Yahoo [Bot] и гости: 26


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

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


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