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

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

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


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

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

Сообщение WiseLord »

Леонид Иванович писал(а):Можно использовать условную компиляцию.
Да, и я про то же. Просто придётся хорошо перелопатить Makefile, чтобы за одну команду make делалось сразу несколько прошивок (раньше так было для A/B типов дисплеев, сейчас тип дисплея определяется "на лету").
Александр76 писал(а):Есть закрепленное за кнопками какое то действие?
Да, конечно.
На данный момент:
Кнопка 1: Включение/выключение. Длинное нажатие - отключение подсветки.
Кнопка 2: Переключение входов. Если на данный момент активен вход FM-тюнера, длинное нажатие включает его интерфейс (правда, там пока только частота отображается).
Кнопка 3: Вывод времени. Повторное нажатие - редактирование времени. В режиме FM-тюнера —100кГц, длинное нажатие - сканирование вниз по диапазону.
Кнопка 4: Mute. В режиме FM-тюнера +100кГц, длинное нажатие - сканирование вверх по диапазону.
Кнопка 5: Перебор параметров (Громкость-Тембр...).

В планах, если получится немного ужать прошивку, длинное нажатие кнопки 5 будет сохранять текущую частоту в EEPROM. Причём, для упрощения, список частот в EEPROM будет, наверное, всегда отсортированным. Т.е. нажали кнопку "сохранения частоты" - она "вклинилась" между двумя соседними сохранёнными. Второй раз нажали - удалилась из списка.

А с пульта сейчас кнопками CH_UP/CH_DOWN пока только ±100кГц. Потом будет перемещение по станциям. Т.е. настройка станций предполагается с передней панели, а пультом только щёлкать по ним.

С ATMega16 жить было бы, конечно, много проще. Тем более что они с ATmega16 фактически полностью идентичны, исключая больший размер RAM/Flash/EEPROM у первой.
Там бы вообще можно было бы из половины ОЗУ (128x64 / 8 = 1кБайт) сделать фреймбуфер для вывода на дисплей, что открыло бы совсем другие возможности по интерфейсу. Но.. это на будущее, а пока хочется на ATmega16 до ума довести.
_________________

P.S. На googlecode можно взять самые свежие прошивки (для графических дисплеев). В них в плане FM-радио работает практически всё, кроме пока сохранения списка станций в EEPROM (осталось пару функций дописать). Сам EEPROM уже совершенно в новом формате, так что нужно не забыть его тоже прошить.
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Финальная версия прошивки с поддержкой FM-модуля TEA5767.

(для графических дисплеев)


Особенности прошивки (по сравнению с версией без FM-радио):

1. Поддерживается сканирование вверх/вниз по диапазону (с передней панели), ручной проход по шкале (±100кГц), сохранение частот станций в EEPROM (до 64 станций).

2. Список станций всегда сохраняется отсортированным по частоте. При сохранении какой-то частоты номера станций с частотами выше сдвигаются вправо, при удалении - наоборот, влево.

3. Кнопка сохранения/удаления общая. Если станции нет в списке - вставляется в список в нужном месте (между соседними ближайшими по частоте), если уже есть - то удаляется из списка.

4. Цифровые кнопки на пульте также задействованы - быстрый доступ к первым десяти станциям в списке.

Раскладка по элементам управления (пульт и кнопки передней панели):

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

5. По-новому организован EEPROM:
- Код пульта расположен по смещению 0x003C (по умолчанию там значение 0x19, что соответствует переделанному пульту.
- Коды кнопок пульта расположены по смещению 0x0040. Порядок кодов кнопок следующий:
СпойлерCMD_RC5_STBY,
CMD_RC5_MUTE,
CMD_RC5_MENU,
CMD_RC5_VOL_UP,
CMD_RC5_VOL_DOWN,
CMD_RC5_INPUT_0,
CMD_RC5_INPUT_1,
CMD_RC5_INPUT_2,
CMD_RC5_INPUT_3,
CMD_RC5_NEXT_INPUT,
CMD_RC5_TIME,
CMD_RC5_BACKLIGHT,
CMD_RC5_SP_MODE,
CMD_RC5_LOUDNESS,
CMD_RC5_CHAN_UP,
CMD_RC5_CHAN_DOWN,
CMD_RC5_FM_DEC,
CMD_RC5_FM_INC,
CMD_RC5_FM_STORE,
CMD_RC5_1,
CMD_RC5_2,
CMD_RC5_3,
CMD_RC5_4,
CMD_RC5_5,
CMD_RC5_6,
CMD_RC5_7,
CMD_RC5_8,
CMD_RC5_9,
CMD_RC5_0,
Изучить коды, выдаваемые пультом, и занести их в EEPROM можно с помощью тестового режима, вход в который осуществляется из ждущего режима одновременным зажатием кнопок 1 и 2.

- Текстовые метки расположены по смещению 0x00E0. Каждая текстовая метка должна отделяться от следующей минимум одним нулевым (0x00) символом. Порядок меток следующий:
СпойлерLABEL_VOLUME,
LABEL_BASS,
LABEL_MIDDLE, /* Also loudness */
LABEL_TREBLE,
LABEL_PREAMP,
LABEL_BALANCE,
LABEL_GAIN_0,
LABEL_GAIN_1,
LABEL_GAIN_2,
LABEL_GAIN_3,
LABEL_MUTE,
LABEL_ON,
LABEL_OFF,
LABEL_DB,
LABEL_MONDAY,
LABEL_THUESDAY,
LABEL_WEDNESDAY,
LABEL_THURSDAY,
LABEL_FRIDAY,
LABEL_SADURDAY,
LABEL_SUNDAY,
Более подробно организацию EEPROM можно изучить по файлам eeprom.h и display.h исходного кода.

Исходные коды доступны на googlecode.
____________________

P.S. Перезалил архив, так как в предыдущую версию прошивки вкралась досадная ошибка инициализации дисплея. А обнаружилась она только после отключения питания от контроллера/дисплея.

Вот как выглядит интерфейс FM-радио:

Изображение
Реклама
Аватара пользователя
Mazzz
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Пт июл 05, 2013 01:31:35
Откуда: Владивосток

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

Сообщение Mazzz »

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

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

Сообщение WiseLord »

Обновление прошивки. Теперь радио поддерживается и на символьных дисплеях на базе ks0066/hd44780.

Код подвергся сильной реструктуризации, "мухи отделены от котлет", так что теперь добавить поддержку другого дисплея/радиомодуля/аудиопроцессора стало гораздо проще. Было бы железо под рукой и даташиты.

Выглядит радио на 16x2 дисплее так:

Изображение
Mazzz писал(а):Пожалуйста подскажите вместо MCP602T подойдет MCP6022?
Подойдёт абсолютно любой сдвоенный ОУ, лишь бы умел работать при питании 5В. MCP6022 более чем подходит.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Simplyman
Мучитель микросхем
Сообщения: 417
Зарегистрирован: Сб янв 23, 2010 14:51:46
Откуда: Киев

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

Сообщение Simplyman »

Вопрос к автору проекта:
Не планируете ли вы при конструировании темброблоков вместо TDA-образных "аудиопроцессоров" использовать программируемый DSP, например ADAU1401? Главной "фишкой" этой микросхемы есть возможность программного построения аудиотракта. То есть, в специальном графическом редакторе выстраивается аудиотракт, который может содержать от простого регулятора громкости, до цепочки устройств со всевозможными энхансерами, эквалайзерами, эффекторами и процессорами сабвуферного канала, dolby sorround и т.д. Потом это все компилится, и заливается либо во внешнюю память (если ADAU работает автономно), либо встраивается в прошивку для микроконтроллера. Помимо этого, данный DSP может принимать на вход как аналоговый, так и цифровой аудиосигнал.
Реклама
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

Сообщение Леонид Иванович »

Для построения FM-тюнера тоже есть замечательные IC с оцифровкой прямо ПЧ. Вот только надо ли этим заниматься?
Реклама
Аватара пользователя
Simplyman
Мучитель микросхем
Сообщения: 417
Зарегистрирован: Сб янв 23, 2010 14:51:46
Откуда: Киев

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

Сообщение Simplyman »

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

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

Сообщение WiseLord »

Simplyman писал(а):Не планируете ли вы при конструировании темброблоков вместо TDA-образных "аудиопроцессоров" использовать программируемый DSP, например ADAU1401?
Не планирую.
Аватара пользователя
jaxkz
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Вс май 18, 2014 07:42:07

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

Сообщение jaxkz »

Уважаемый WiseLord, я так понял, fm модуль на панельке-переходнике, контактами clock и data, подключается соответсвенно к контактам ext1 и ext2?
Аватара пользователя
VeryLazyCat
Опытный кот
Сообщения: 832
Зарегистрирован: Пн май 17, 2010 22:21:01
Откуда: Madagaskar

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

Сообщение VeryLazyCat »

подключается к контактам SCL и SDA
WiseLord писал(а): EXT1, EXT2 в настоящее время не выполняют никаких функций. Потенциально, в будущем, могут быть использованы для каких-то ещё функций, например подключения термодатчика.
Аватара пользователя
SergeyK
Говорящий с текстолитом
Сообщения: 1512
Зарегистрирован: Вт апр 21, 2009 20:52:29
Откуда: ХМАО Югра Белоярский
Контактная информация:

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

Сообщение SergeyK »

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

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

Сообщение WiseLord »

В какой-то момент - поменялось. Не уверен насчёт последней прошивки, выложенной здесь, но сейчас для тюнера используется самый первый вход.

Так получилось в результате "экономии на байтах". Первый вход есть всегда, поэтому проще делать проверку вроде if (chan == 0), чем брать последний вход, номер которого разный в разных микросхемах.

Так что вопрос весьма в тему.

Тут по просьбе одного форумчанина добавил минимальную поддержку радиомодуля TUX-032, который можно вроде как выковырять из автомагнитол SONY. Судя по отзывам, работает, но, возможно, нужна некоторая доработка. Пока официально не анонсирую, но кому интересно, может взять из отдельной ветки на git-сервере.
Аватара пользователя
SergeyK
Говорящий с текстолитом
Сообщения: 1512
Зарегистрирован: Вт апр 21, 2009 20:52:29
Откуда: ХМАО Югра Белоярский
Контактная информация:

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

Сообщение SergeyK »

WiseLord писал(а):В какой-то момент - поменялось. Не уверен насчёт последней прошивки, выложенной здесь, но сейчас для тюнера используется самый первый вход.
Хочу развести плату предварительного с уже встроенным тюнером, поэтому и интересуюсь. И как поведет себя прошивка без физически распаянного тюнера? Тюнер пока в пути, а включить и проверить руки уже чешутся :)))
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Аватара пользователя
billy
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс ноя 25, 2007 22:53:17
Откуда: Украина
Контактная информация:

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

Сообщение billy »

У кого нибудь кто прошивал мегу16, есть скриншот фьюзов под CodeVision AVR? :shock: Выложите пожалуйста, а то я в этих счетчиках-калькуляторах АВР ну не разбираюсь.. :oops: Плата уже вытравлена, все детали есть,а фьюзы - нет :?
Аватара пользователя
VeryLazyCat
Опытный кот
Сообщения: 832
Зарегистрирован: Пн май 17, 2010 22:21:01
Откуда: Madagaskar

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

Сообщение VeryLazyCat »

billy писал(а):У кого нибудь кто прошивал мегу16, есть скриншот фьюзов под CodeVision AVR?
CKOPT
EESAVE
BOOTSZ1
BOOTSZ0
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

SergeyK писал(а):И как поведет себя прошивка без физически распаянного тюнера?
Ничего особенного. Просто не будут работать функции, характерные для тюнера.
А если при этом не вносить в EEPROM коды кнопок управления тюнером (SCAN_UP, SCAN_DOWN, FREQ_UP, FREQ_DOWN), то поведение входа тюнера будет неотличимо от других входов, т.е. систему можно использовать как обычный темброблок с 4-мя равнозначными входами.
Аватара пользователя
jaxkz
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Вс май 18, 2014 07:42:07

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

Сообщение jaxkz »

Интересно, такой дисплей
Спойлерhttp://www.aliexpress.com/item/Free-Shi ... 65894.html
подойдет?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Нет, на данный момент дисплеи на таком контроллере не поддерживаются.

P.S. Заказал себе парочку. Так что, возможно, через пару месяцев...
Аватара пользователя
SergeyK
Говорящий с текстолитом
Сообщения: 1512
Зарегистрирован: Вт апр 21, 2009 20:52:29
Откуда: ХМАО Югра Белоярский
Контактная информация:

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

Сообщение SergeyK »

Собрал цифровую часть Изображение
Первое что бросилось в глаза, отдельно кнопка включения тюнера и отдельно можно выбрать вход Тюнер. Не проще сделать включение тюнера при выборе соответствующего входа. Кнопкой выбора входа включаем вход "Тюнер" и соответственно включается сам тюнер.
Изображение
Изображение
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
volgasl28
Родился
Сообщения: 6
Зарегистрирован: Чт май 22, 2014 14:25:29

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

Сообщение volgasl28 »

Здравствуйте ! Собрал это чудо , но увы WG12864а отказывается раборать или я не разобрался с прошивками ?
ПОМОГИТЕ !
Ответить

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