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

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


Ответить

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

Пн фев 24, 2014 17:36:48

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

Я автор этой статьи, по-этому вмешиваюсь.

В данный момент это невозможно, да и я против. Если мы с автором спекртоанализатора договоримся, то в дальнейшем можно будет их синхронизировать.

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

Пн фев 24, 2014 23:09:50

А процесор Atmega16A использовать можно? И какая еепром для пульта rc5 без переделки пульта?
Последний раз редактировалось koka5555 Вт фев 25, 2014 00:41:33, всего редактировалось 3 раз(а).

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

Пн фев 24, 2014 23:21:55

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

Я автор этой статьи, по-этому вмешиваюсь.

В данный момент это невозможно, да и я против. Если мы с автором спекртоанализатора договоримся, то в дальнейшем можно будет их синхронизировать.


Большое Спасибо за статью.Работает приёмник чётко.Я повторил её полностью з tda8425.Купил их 3 штуки но ни одна так и незаработала,вот теперь и пробую как то выйти с зтой ситуации.

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

Вт фев 25, 2014 00:42:55

VHEMaster хотелось бы узнать в чем причина того что Вы против синхронизации с Вашим проектом ведь выложив тут свой материал это становится личным делом каждого добавить его в свой проект или нет . Проекты ведь не комерческие. Поправте если я ошибаюсь.

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

Вт фев 25, 2014 01:09:49

Обновление прошивки. Теперь коды команд вычитываются из 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 надо нажать ещё раз. Режим запоминается. То есть, можно выбрать, что отображается при отсутствии активности - спектр или часы. В ждущем режиме, естественно, только часы.

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

Вт фев 25, 2014 01:48:28

Спасибо за подсказку ,буду пробовать.Подскажите пожалуйста, для чего выводы FAN EXT1 EXT2 ?

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

Вт фев 25, 2014 02:06:59

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

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

Вт фев 25, 2014 03:53:25

А кнопки MUTE, MENU и STBY по схеме S1 S4 S5 ? Почему-то невходит в тестовый режим.

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

Вт фев 25, 2014 08:19:13

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

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

P.P.S. Так и оказалось. Перезалил архив.

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

Вт фев 25, 2014 22:40:14

Спасибо,В тестовый режим вощёл.С кодами для кнопок разобрался,они совпадают из строкой в еепроме.Но в нормальном режиме ду невидима.С кодом ду помогите разобраться.В тестовом режиме написано RC=00,верхняя строчка 11100000001110 .А как пропмсать,извените меня,я непонял.

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

Ср фев 26, 2014 00:02:54

Прописать 0x00 любым hex-редактором по адресу 0x10 в eeprom_*.bin и прошить. Это 17-ый байт (0x10 = 17), по умолчанию там 0x19, для переделанного пульта.
Вообще, понять что где в eeprom, можно, посмотрев на файл eeprom.h исходников.

koka5555 писал(а):верхняя строчка 11100000001110
Это просто двоичное представление всей команды, кому-то может оказаться полезным:
- 11 - два стартовых бита
- 1 - toggle bit. Меняется с 0 на 1 при каждом нажатии кнопки. Это позволяет различать последовательное нажатие одной кнопки и её удержание.
- 00000 = 0x00 код устройства (пульта).
- 001110 = 0x0E - код нажатой кнопки.

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

Ср фев 26, 2014 00:37:03

Большое спасибо! Заработало. А можна Вас попросить сделать в прошивке на выходе ext1 или ext2 логический 0 при включённом входе тюнер и 1 при других включеных входах. И предлагаю добавить отдельное отключение подсветки при работающем усилителе.

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

Ср фев 26, 2014 09:46:08

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

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

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

Ср фев 26, 2014 22:43:50

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

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

Чт фев 27, 2014 00:13:37

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 раз(а).

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

Чт фев 27, 2014 01:16:06

Главное чтобы каждом нажатии менялось с 0 на1 и наоборот.Я буду подключать через транзистор на реле для розрыва питания цветомузыки.

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

Чт фев 27, 2014 02:04:59

Добавил эту функцию.
По умолчанию повешена на кнопку пульта с кодом 0x38, в eeprom_*.bin находится по адресу 0x5F.

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

Чт фев 27, 2014 20:17:30

Здравствуйте! :) Подскажите че за хрень на экране :( .... индикатор купил 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 KiB) Скачиваний: 1826
2014-02-27-316.jpg
(77.83 KiB) Скачиваний: 1525
Последний раз редактировалось AlekseyEnergo Вт мар 04, 2014 12:43:52, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.2 правил форума. Подредактировал. Предупредил!!

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

Чт фев 27, 2014 23:14:13

Даже по маркировке можно предположить, что это аналог 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.

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

У меня на трёх дисплеях двух разных типах (не считая отдельной прошивки для символьных дисплеев) всё работает, а чинить и так работающее я не умею :). Да и у других котов здесь тоже вроде пока работало.

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

Пт фев 28, 2014 04:48:53

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