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

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

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


Аватара пользователя
ala-a-din
Потрогал лапой паяльник
Сообщения: 376
Зарегистрирован: Пт май 07, 2010 01:42:09
Откуда: РФ

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

Сообщение ala-a-din »

Как вариант таймер можно организовать на пример так.
Выбрать кнопку на ПДУ и когда на нее нажимаем на экране появляется надпись "Включить таймер", нажимаем ту же кнопку еще раз и появляется время типа 5мин. и при каждом нажатии той же самой кнопки это время увеличивается на N минут. Сделать придел в 180мин. И так по кругу. В общем как это сделано в телевизорах.
Выбрали нужное время и ждем, на пример 5сек. если ничего больше не нажато то это время и будет установлено для отключения.

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

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

Сообщение WiseLord »

Итак, на пути к таймеру и будильнику (только для варианта на ATmega32 с дисплеем 128x64):

В выкладываемой прошивке эти функции пока не реализованы, но произошли довольно большие внутренние изменения, подготовившие нужную почву:

1. Изменено управление тюнером.
Раньше: кнопки 3-4 коротким нажатием изменяли частоту (±100кГц), длинным - сохранённую станцию.
Сейчас: короткое нажатие кнопок 3-4 изменяет станцию, длинное нажатие кнопки 4 - вход в режим настройки частоты энкодером.
Аналогично на пульте - кнопки для плавной настройки частоты убраны, вместо них используются кнопки громкости.
2. Освободившиеся кнопки выделены под будущие функции вызова таймера и будильника.
3. Структура EEPROM-файлов поменялась в связи со всем этим, поэтому их придётся перешить заново. И заново настроить как радио под свои станции, так и кнопки пульта.
4. На TDA7313 нет четвёртого входа, зато есть тонкоррекция. Поэтому на пульте две ранее отдельны кнопки объединены в одну, вызывающую нужную функцию.

Кто хочет, может пока потестировать новый вариант прошивки.
Вложения
ampcontrol-m32fb-a860ad1.7z
(104.55 КБ) 302 скачивания
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Собственно, вот и прошивка с функционалом таймера.
С пульта перебор времени отдельной кнопкой, с передней панели - сначала включаем кнопкой 3 часы, потом, длинным её нажатием - переключаемся на таймер, а дальше опять короткими нажатиями выбираем время таймера.
cbam
Родился
Сообщения: 13
Зарегистрирован: Вт апр 15, 2014 14:25:10

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

Сообщение cbam »

Автору огромное спасибо за проект! У меня будет только единственная просьба: если не трудно не могли бы вы сделать задержку (сколько активно меню Bass/Mid/Treble и т.д.) побольше.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Меняйте в исходниках (значения в миллисекундах) задержки, как Вам угодно.

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

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

Сообщение koka5555 »

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

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

Сообщение WiseLord »

Да, появился такой баг. Исправлен.

А возможность удалять станции лучше иметь и в режиме по частотам, и в режиме по станциям. Может быть полезно при удалении возможных дублей станций.

P.S. Выкладываю последние на текущий момент прошивки для всех вариантов.
- во всех вариантах исправлена работа индикатора уровня сигнала станции (особенно для RDA5807).
- в основном варианте повышено удобство управления тюнером. В режиме настройки по частотам энкодер регулирует частоту с шагом 0.1МГц, кнопки 3-4 - с шагом 1МГц.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

"Официальное" обновление прошивки для ATmega32.

- Добавлен таймер отключения.

- Добавлен будильник.

- Исправлена и ускорена работа по I2C шине.

- Изменены функции некоторых кнопок пульта и передней панели.

- Имена новых функций в EEPROM для всех поддерживаемых языков.

Переключение между режимами часов, таймера отключения и будильника производится длительным нажатием кнопки 3 на передней панели. Перебор параметров - коротким нажатием. Регулировка параметра - энкодером.
На пульте для всех трёх режимов есть отдельные кнопки.

Параметры будильника хранятся не в флеш, а в ОЗУ DS1307, т.е. их сохранность, как и времени, зависит от батарейки.

Теперь RDA5807 может работать и в режиме TEA5767, т.е. прошивка для TEA5767 будет работать как с модулем TEA5767, так и RDA5807. Но "родной" вариант лучше.

Это - результат появления новых функций и попытки втиснуть управление ими в старые рамки. На мой взгляд, несмотря на больший функционал, управлять стало даже удобнее.

Так как структура FLASH, по сравнению со старой прошивкой от 3 ноября, изменилась, при обновлении с той версии нужно зашивать новые версии как flash, так и EEPROM. Ну и заново настраивать кнопки пульта и FM-станции под себя.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

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

Сообщение koka5555 »

Протестировал,работает ,но при настройке будильника ,а в предыдущих версиях до таймера и будильника, шина IC виснет и нужно выключать из сети чтоб возобновить работу.Такое наблюдается в последней прошивке,а в прошивке только с таймером такое не наблюдалось. И ещё вопрос .А квадратики Это дни недели? Если да то неплохо было б поставить буквы Где понедельник а где воскресенье. А за прошивку Огромное Спасибо!
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

У меня на двух разных дисплеях проверено - ничего не виснет (RDA5807/TDA7439). Даже наоборот, в случае использования модуля RDA5807 при прошивке для TEA5767 шина действительно висла, а в последних - работает в режиме совместимости.

На каком железе наблюдается? Расставьте знаки препинания в своём сообщении, а то, судя по написанному, виснет при настройке будильника на прошивке, в которой будильника вообще не было. И да, пробел ставится после точки/запятой, а не до.

А по поводу подписывания дней недели.. до семи можно и так посчитать. Но вообще, можно и подписать. Место для букв есть.
staseshe
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2014 21:58:52

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

Сообщение staseshe »

Ув. Коты! Собрал плату на atmega16 (lcd 16x2), пока без TDA. Прошивку заливал последнюю с rda5807 через sinaprog 1.3. Фьюзы и hex успешно прошились а eeprom никак не могу залить. программатор usbtiny. в winavr открывал eeprom.bin но не пойму что ему сделать???? Подскажите чем его сделать eeprom.eep
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

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

Сообщение koka5555 »

Я имел ввиду что зависание наблюдалось ранее при настройке часов в прошивках до таймера, в прошивке с таймером такого замечено не было.А в последней прошивке виснет при настройке будильника, а тестирую с rda5807,tda7439,atmega32. Испытывал прошивку для tea5767 (в усилке стоит rda5807), работает и не виснет что б не перестраивал.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

staseshe писал(а):Подскажите чем его сделать eeprom.eep
Не умеете переименовывать файлы? Даже тем же проводником?

eeprom.bin - обычный бинарный файл, по размеру равный размеру eeprom контроллера и побайтно туда записываемый как есть, без каких бы то ни было преобразований.
koka5555 писал(а):тестирую с rda5807,tda7439,atmega32
У меня точно такой же набор железа, и никаких проблем с зависаниями нет. В какой момент проявляется? Интересует точная последовательность действий, приводящих к зависанию, дабы я смог повторить.

P.S. Добавил текстовые метки для дней недели в режиме будильника.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

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

Сообщение koka5555 »

Когда начинаю в будильнике метить квадратики (дни) виснет, а в прошивке для TEA5767 такое не наблюдается. А в будущем не желаете сделать будильник под DS3231 ,она более точная по х оду часов и с ней возможно сделать два будильника, к примеру рабочие дни в одно время включения, а в выходные другое.
staseshe
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2014 21:58:52

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

Сообщение staseshe »

расширение на .eep я изменил первым делом проводником и заливал, но выскакивает ошибка:
Вложения
ошибка.PNG
(78.44 КБ) 440 скачиваний
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Ну вот кручу энкодер со всей дури. Или кнопку VOL_UP/VOL_DOWN зажимаю на пульте - квадратики (выбор дня недели) носятся что бешеные, но ничего не виснет. Какого номинала подтягивающие резисторы на I2C шине? Может, если 10 кОм, лучше уменьшить раза в два, может там у Вас провода сильно длинные, и резисторы не успевают вытягивать шину в единицу из-за её большой ёмкости?

А DS3231 (есть у меня штуки 3 китайских модуля на них) по протоколу совместима с DS1307. Вот только насчёт моего программного будильника не уверен, что он будет работать и в DS3231, но склонен думать, что всё же будет.

2 staseshe: судя по всему, эта программка лишь графическая оболочка для avrdude. Можно ли увидеть командную строку, передаваемую avrdude? Должно быть что-то вроде

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

avrdude -p atmega32 -P <порт> -c <программатор> -U eeprom:w:eeprom_en.bin:r
Ну или напрямую через avrdude таким способом прошейте, без этой оболочки.

P.S. Ну и пробел в пути к eeprom мне не нравится.

P.P.S. И в avrdude можно скорость поменьше сделать (-B 20) попробовать. Не знаю, позволяет ли этот параметр передать эта оболочка.

P.P.S. И можно попробовать прошить не на частоте кварца (16МГц), а выставить фьюзы на 1МГц внутренний генератор, зашить в этом режиме флеш и еепром, и потом только выставить частоту 16МГц.
Последний раз редактировалось WiseLord Вс дек 07, 2014 23:59:26, всего редактировалось 2 раза.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

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

Сообщение koka5555 »

Протестировал прошивки с под писаными днями недели, всё класс , шина не виснет , прошивал обе и для TEA5767 и для rda5807 (в усилке rda5807), у меня ни кнопок ни энкодера не стоит , только пульт.
staseshe
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2014 21:58:52

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

Сообщение staseshe »

вот строка из avrdude C:\Windows\System32\avrdude.exe -C C:\Windows\System32\avrdude.conf -p m16 -P usb -c usbtiny -b 20 -U eeprom:w:C:\Windows\System32\eeprom.bin:r
закинул его в систем32 и пробел в eeprom убрал. ошибка та же
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

По идее, -b 20 - неправильно, должно быть -B 20.

Так как -b - это скорость порта (типа -b 115200), а -B - уже период тактовой частоты программатора, в микросекундах.

P.S. Добавил ещё одну мелочь. Возможно, кто-то замечал у себя, что первый столбик спектроанализатора (~0..150Гц) в отсутствие сигнала не равен нулю, а имеет высоту 1-2 пиксела. Это происходит из-за того, что на вход АЦП в отсутствие сигнала должна приходить ровно половина опорного напряжения, но из-за разброса параметров резистивного делителя в операционнике это может быть немного не так. Получается своего рода постоянное смещение, которое трактуется как НЧ и отображается спектроанализатором.

Раньше поправка была фиксирована для обоих каналов и равнялась 128 (0x80) (DC_CORR в adc.h). Сейчас она вычитывается из EEPROM по адресам 0x1E и 0x1F соответственно для левого и правого каналов. Значение по умолчанию там всё так же 128 (0x80). Если наблюдаете у себя такой мелкий глюк, можете поиграться с этими значениеми в пределах 125..131 (0x7D..0x83), больше вряд ли потребуется.
Последний раз редактировалось WiseLord Пн дек 08, 2014 08:47:53, всего редактировалось 1 раз.
staseshe
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2014 21:58:52

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

Сообщение staseshe »

поменял на -B 20 - не помогло.
Ответить

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