Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
VHEMaster
Потрогал лапой паяльник
Сообщения: 374
Зарегистрирован: Сб июл 14, 2012 09:20:09
Откуда: Украина, город Полтава

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение VHEMaster »

koka5555 писал(а):... синхронизации одного из входов с Радиоприёмник с дистанционным управлением + часы и термометр из статьи http://radiokot.ru/circuit/analog/receiv_transmit/37/ ?
Я автор этой статьи, по-этому вмешиваюсь.

В данный момент это невозможно, да и я против. Если мы с автором спекртоанализатора договоримся, то в дальнейшем можно будет их синхронизировать.
Всем канифоли :)
https://vk.com/maks_naumchuk
Реклама
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

А процесор Atmega16A использовать можно? И какая еепром для пульта rc5 без переделки пульта?
Последний раз редактировалось koka5555 Вт фев 25, 2014 00:41:33, всего редактировалось 3 раза.
Реклама
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

VHEMaster писал(а):
koka5555 писал(а):... синхронизации одного из входов с Радиоприёмник с дистанционным управлением + часы и термометр из статьи http://radiokot.ru/circuit/analog/receiv_transmit/37/ ?
Я автор этой статьи, по-этому вмешиваюсь.

В данный момент это невозможно, да и я против. Если мы с автором спекртоанализатора договоримся, то в дальнейшем можно будет их синхронизировать.
Большое Спасибо за статью.Работает приёмник чётко.Я повторил её полностью з tda8425.Купил их 3 штуки но ни одна так и незаработала,вот теперь и пробую как то выйти с зтой ситуации.
alexfick
Встал на лапы
Сообщения: 114
Зарегистрирован: Вс июн 28, 2009 21:51:15

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение alexfick »

VHEMaster хотелось бы узнать в чем причина того что Вы против синхронизации с Вашим проектом ведь выложив тут свой материал это становится личным делом каждого добавить его в свой проект или нет . Проекты ведь не комерческие. Поправте если я ошибаюсь.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Обновление прошивки. Теперь коды команд вычитываются из EEPROM.

Это позволяет настроить устройство на любой RC5 пульт без смены прошивки.

На данный момент поддерживается 14 команд, на которые можно повесить любые кнопки пульта. Названия команд говорят сами за себя:

Код: Выделить всё

CMD_STBY = кнопка STBY на передней панели,
CMD_MUTE = кнопка MUTE на передней панели,
CMD_MENU = кнопка MENU на передней панели,
CMD_VOL_UP = вращение валкодера по часовой стрелке,
CMD_VOL_DOWN = вращеие валкодера против часовой стрелки,
CMD_INPUT_0,
CMD_INPUT_1,
CMD_INPUT_2,
CMD_INPUT_3,
CMD_NEXT_INPUT = кнопка NEXT на передней панели,
CMD_TIME = кнопка TIME на передней панели,
CMD_EDIT_TIME = длительное удержание TIME на передней панели,
CMD_SP_MODE = длительное удержание MENU на передней панели,
CMD_LOUDNESS = длительное удержание MUTE на передней панели (только для TDA7313).
Для подключения своего пульта нужно внести коды этих кнопок в этом порядке в eeprom.bin по адресу 0x50 любым hex-редактором, и прошить eeprom. Код самого пульта, как и раньше, находится по адресу 0x10.

Для определения кодов кнопок и пульта в прошивку добавлен специальный режим. Для его активации нужно во включенном состоянии нажать одновременно кнопки MUTE, MENU и STBY на передней панели и удеживать около 1 сек. После этого появится специальный тестовый экран, на который будут выводиться коды нажимаемых на RC5-пульте кнопок и адрес самого пульта. Прошивка автоматически выйдет в рабочий режим через 20 секунд после последнего нажатия кнопки на пульте.

Прошивки и исходники - всё там же, на googlecode, для графических (128x64) и знакосинтезирующих (16x2) дисплеев.

Изображение Изображение

Помимо этого, в новой версии прошивок при вызове часов они не скрываются через 3 секунды, меняясь на спектр, а остаются на экране. Для возврата к спектру кнопку TIME надо нажать ещё раз. Режим запоминается. То есть, можно выбрать, что отображается при отсутствии активности - спектр или часы. В ждущем режиме, естественно, только часы.
Реклама
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

Спасибо за подсказку ,буду пробовать.Подскажите пожалуйста, для чего выводы FAN EXT1 EXT2 ?
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

FAN = 0 в ждущем режиме и 1 в рабочем. В моём усилителе идёт на базу транзистора, коммутирующего вентилятор охлаждения радиаторов. Фактически этот выход дублирует STBY.
EXT1, EXT2 в настоящее время не выполняют никаких функций. Потенциально, в будущем, могут быть использованы для каких-то ещё функций, например подключения термодатчика.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

А кнопки MUTE, MENU и STBY по схеме S1 S4 S5 ? Почему-то невходит в тестовый режим.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Да, они.
Прошивка точно последняя, взятая с googlecode? На всякий случай, прикладываю файлы.
Вход в тестовый режим - нажать все три кнопки одновременно (не в режиме ожидания) и подержать секунду.

P.S. У меня возникло подозрение, что тестовый режим может не работает, если в eeprom по адресу 0x10 пока ещё находится код несоответствующего пульта (для непеределанных пультов туда надо записать 0x00). Через пару часов проверю и, если так, подправлю. Всё-таки тестовый режим должен работать для любых пультов, а не только переделанных :) .

P.P.S. Так и оказалось. Перезалил архив.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

Спасибо,В тестовый режим вощёл.С кодами для кнопок разобрался,они совпадают из строкой в еепроме.Но в нормальном режиме ду невидима.С кодом ду помогите разобраться.В тестовом режиме написано RC=00,верхняя строчка 11100000001110 .А как пропмсать,извените меня,я непонял.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Прописать 0x00 любым hex-редактором по адресу 0x10 в eeprom_*.bin и прошить. Это 17-ый байт (0x10 = 17), по умолчанию там 0x19, для переделанного пульта.
Вообще, понять что где в eeprom, можно, посмотрев на файл eeprom.h исходников.
koka5555 писал(а):верхняя строчка 11100000001110
Это просто двоичное представление всей команды, кому-то может оказаться полезным:
- 11 - два стартовых бита
- 1 - toggle bit. Меняется с 0 на 1 при каждом нажатии кнопки. Это позволяет различать последовательное нажатие одной кнопки и её удержание.
- 00000 = 0x00 код устройства (пульта).
- 001110 = 0x0E - код нажатой кнопки.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

Большое спасибо! Заработало. А можна Вас попросить сделать в прошивке на выходе ext1 или ext2 логический 0 при включённом входе тюнер и 1 при других включеных входах. И предлагаю добавить отдельное отключение подсветки при работающем усилителе.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Добавил.
Ячейка в eeprom_*.bin с RC5-кодом кнопки отключения подсветки имеет адрес 0x5E, по умолчанию код 0x26.
С передней панели отключить подсветку можно длинным нажатием кнопки STBY.

Обновленные прошивки доступны на googlecode, для графических (128x64) и знакосинтезирующих (16x2) дисплеев.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

Большое Спасибо! Всё работает.Выкладываю фотки. И уменя вопрос ,негорит 2 в годе,хотя в английской епром горит,и в анализаторе горит первый столбик.Это так надо? Или что то не так? DS1307 пока неподключил.А ещё возможно добавить включение и выключение свободного EXT на пульте ду.Хочу подключить светомузыку которую добавил в усилитель.
http://img.radiokot.ru/files/91654/thum ... kpqg1s.jpg
http://img.radiokot.ru/files/91654/thum ... kkai2r.jpg
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

koka5555 писал(а):негорит 2 в годе
Укоротите названия дня недели на один пробел (замените в eeprom последний пробел (0x20) на нулевой символ (0x00). Для каждого из дней недели. А то этот пробел загораживает двойку (в английском eeprom это уже сделано, я свой индикатор просто тестировал на нём, так как русской кодировки в нём не было).
koka5555 писал(а):DS1307 пока неподключил
При отсутствии DS1307 я у себя имел показания что-то вроде 06:06:06 06.06.2006, если не ошибаюсь.
koka5555 писал(а):в анализаторе горит первый столбик
Напряжение при отсутствии сигнала на входах ЦАП (выходах ОУ) должно быть ровно половине напряжения питания микроконтроллера - тогда столбика не будет.
Первый столбик - это частоты от 0 до 512Гц. Это значит, что в него попадает постоянная состовляющая относительно половины питания (0 Гц). В общем, резисторы обязательно нужно R1 = R4, а также R7 = R11, чтобы делитель давал ровно 2.5В на входе ОУ. Тогда и на выходе операционника постоянная составляющая сигнала будет равна 2.5В.

Добавить EXT2 на кнопку пульта можно. Только уточните, какой активный уровень нужен (0В или 5В), и что делать с ним в режиме ожидания (гасить в 0, ставить в 5В или оставлять как есть).
koka5555 писал(а):Выкладываю фотки
Ссылки плохие. Удалите thumbnail из URL для полноразмерного варианта.
Последний раз редактировалось WiseLord Чт фев 27, 2014 02:11:09, всего редактировалось 2 раза.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

Главное чтобы каждом нажатии менялось с 0 на1 и наоборот.Я буду подключать через транзистор на реле для розрыва питания цветомузыки.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Добавил эту функцию.
По умолчанию повешена на кнопку пульта с кодом 0x38, в eeprom_*.bin находится по адресу 0x5F.
Аватара пользователя
Djony
Прорезались зубы
Сообщения: 202
Зарегистрирован: Ср ноя 10, 2010 20:25:10
Откуда: Томск

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Djony »

Здравствуйте! :) Подскажите че за хрень на экране :( .... индикатор купил WINSTAR WG12864A-TGH-VNW в http://www.ekits.ru/index.php?ukey=prod ... uctID=1434


У этого дисплея WG12864A-TGH-VNW контроллер какой то другой S6B0108...
Вложения
2014-02-27-315.jpg
(74.5 КБ) 1928 скачиваний
2014-02-27-316.jpg
(77.83 КБ) 1599 скачиваний
Последний раз редактировалось AlekseyEnergo Вт мар 04, 2014 12:43:52, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.2 правил форума. Подредактировал. Предупредил!!
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Даже по маркировке можно предположить, что это аналог ks0108, так что не в этом проблема. Да и в целом символы-то выводятся.
Посмотрите на всякий случай приложенную тестовую прошивку (просто для проверки дисплея).
Ну и из одного из предыдущих постов. И из более ранних, там была другая система инициализации контроллера.
Кстати, при непрошитом контроллере (или просто при подключении дисплея в разъём "на горячую", без инициализации, что-нибудь на дисплее появляется? (Экран должен быть пуст, пока дисплей не инициализирован).

P.S. Не знаю, насколько Вы разбираетесь в программировании. Или вообще не разбираетесь. Но в любом случае попробуйте скомпилировать проект сами. Для этого (я предположу, что у Вас windows):
1. Скачайте исходники с googlecode (Там где Download zip).
2. Распакуйте их куда-нибудь, например, на диск C:
3. В файле Makefile удалите или закомментируйте строку CS = -fexec-charset=ks0066-ru, так как в windows нет iconv.
4. Установите компилятор avr-gcc. Для windows это WinAVR, скачать можно с оф. сайта. При установке не снимайте галочку Add directories to PATH.
5. В консоли (Сочетание Win+R -> cmd) зайдите в каталог с проектом:

Код: Выделить всё

c:
cd c:\ampcontrol-71a12af0a0cd\
6. Скомпилируйте проект командой make. В каталоге обновятся hex-файлы прошивки.

Если это получится, попробуйте теперь поэкспериментировать с исходниками. В файле ks0108.c, функциях writeStrob(), readStrob(), gdWriteCommand(), gdWriteData() попробуйте увеличить/добавить задержки: - больше команд asm("nop");, или в разных местах вызовы вроде _delay_us(5);.
Есть вероятность, что по какой-то причине дисплей некорректно отрабатывает тайминги. Вот и поэкспериментируйте с ними.
Попробуйте, например, вместо waitWhile(KS0108_STA_BUSY); повставлять что-то вроде _delay_us(20);. Это на случай, если вдруг дисплей некорректно сообщает о готовности принять следующую команду, тогда как он ещё по факту не готов это сделать.

Отредактированный код компилируйте той же командой make. Если будут ошибки синтаксиса (где-то точку с запятой забыли, или ещё чего), компилятор выдаст ошибку и номер строки с ней.

Кстати, если в Makefile прописать ваш программатор (переменные AD_PROG, AD_PORT в Makefile), то тут же можно будет и прошивать, командой make flash_a.

Если что-то получится, или не получится, сообщайте сюда.

У меня на трёх дисплеях двух разных типах (не считая отдельной прошивки для символьных дисплеев) всё работает, а чинить и так работающее я не умею :). Да и у других котов здесь тоже вроде пока работало.
Аватара пользователя
Djony
Прорезались зубы
Сообщения: 202
Зарегистрирован: Ср ноя 10, 2010 20:25:10
Откуда: Томск

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Djony »

залил вашу проверочную прошивку.тоже самое...мерцание и как бы раздвоение на две строки :( при подключении дисплея на горячую экран чист...попробую скомпилировать по вашему совету...я заказал на всякий случай уже другой дисплей MT-12864A-2FLA-T может с ним заработает..
Ответить

Вернуться в «Статьи»