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

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

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


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

Сообщение 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 уже совершенно в новом формате, так что нужно не забыть его тоже прошить.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение 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-радио:

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

Сообщение Mazzz »

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

Сообщение WiseLord »

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

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

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

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

Сообщение Simplyman »

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

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

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

Сообщение Simplyman »

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

Сообщение WiseLord »

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

Сообщение jaxkz »

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

Сообщение VeryLazyCat »

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

Сообщение SergeyK »

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

Сообщение WiseLord »

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

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

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

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

Сообщение SergeyK »

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

Сообщение billy »

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

Сообщение VeryLazyCat »

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

Сообщение WiseLord »

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

Сообщение jaxkz »

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

Сообщение WiseLord »

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

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

Сообщение SergeyK »

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

Сообщение volgasl28 »

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

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