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

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

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


Александр 84
Открыл глаза
Сообщения: 75
Зарегистрирован: Вт дек 11, 2018 06:25:42
Откуда: г Омск

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

Сообщение Александр 84 »

СПАСИБО!
Реклама
Edkel
Родился
Сообщения: 3
Зарегистрирован: Вс июн 06, 2021 10:59:06

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

Сообщение Edkel »

Народ выручайте! Никак не могу победить компилятор, уже все перепробовал.. голова кругом. В общем нужна последняя прошивка для m32. Аудио процессор TDA7448, дисплей KS0108B, тюнер не будет использоваться.
Единственно подкорректировал в tda7448.h порядок под свою разводку, файл прикладываю. Кому не сложно, скомпилируйте пожалуйста прошивку.
Вложения
tda7448.h
(777 байт) 313 скачиваний
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

А в чём проблема при сборке?
Вложения
ampcontrol_atmega32_ks0108b.hex.7z
(27.3 КБ) 353 скачивания
Edkel
Родился
Сообщения: 3
Зарегистрирован: Вс июн 06, 2021 10:59:06

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

Сообщение Edkel »

Спасибо WiseLord! Ошибку компилятор выдает, причем пробовал собирать вашу последнюю прошивку без каких либо изменений. Делал все по инструкциям этой темы, ничего не помогает.. Скажите пожалуйста, чтобы проверить работоспособность экрана, достаточно только его припаять или еще что-то надо?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Stinger
Сверлит текстолит когтями
Сообщения: 1152
Зарегистрирован: Сб ноя 16, 2013 16:23:02
Откуда: Fe-City (46)
Контактная информация:

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

Сообщение Stinger »

Я бы рекомендовал после запайки экрана, подать напряжения питания +5 вольт.
СпойлерБороться и искать, найти и перепрятать...
Реклама
siwix8888
Родился
Сообщения: 2
Зарегистрирован: Сб янв 13, 2018 12:42:46

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

Сообщение siwix8888 »

друзья всех приветствую. такой вопрос - можно ли разнести на примерно 2м друг от друга либо кнопки с энкодером, либо дисплей по i2c/ суть, есть старое авто. хочется сохранить внешний вид магнитолы, но у нее очень маленький дисплей. точнее место под 16х2, но есть место на потолке под вполне себе 128 дисплей. точные измерения приведу позже, равно как и фото.
Можно ли в магнитолу установить аналоговую часть с унч и источниками звука, а в потолок образно говоря - плату с процессором и дисплеем, соответствено вниз надо будет тянуть энкодер и кнопки управления, либо всё остается в магнитоле, а вверх в потолок тянем только дисплей? возможно ли это технически, не будет ли проблем из-за длин проводников?
СпойлерИзображение Изображение[/url]
Последний раз редактировалось siwix8888 Вт июл 06, 2021 15:29:47, всего редактировалось 1 раз.
Реклама
ZyaK
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Сб май 03, 2014 20:01:51
Откуда: Ижевск

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

Сообщение ZyaK »

i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
siwix8888
Родился
Сообщения: 2
Зарегистрирован: Сб янв 13, 2018 12:42:46

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

Сообщение siwix8888 »

[uquote="ZyaK",url="/forum/viewtopic.php?p=4057343#p4057343"]i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.[/uquote]

хорошо, какое тогда решение?
экранирование и витая пара спасёт?
ZyaK
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Сб май 03, 2014 20:01:51
Откуда: Ижевск

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

Сообщение ZyaK »

[uquote="siwix8888",url="/forum/viewtopic.php?p=4057388#p4057388"][uquote="ZyaK",url="/forum/viewtopic.php?p=4057343#p4057343"]i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.[/uquote]

хорошо, какое тогда решение?
экранирование и витая пара спасёт?[/uquote]

i2c не только капризна к помехам, но и к ёмкости проводов, можно конечно попробовать, но по питанию придется ставить внушительные фильтры.
можно попробовать использовать токовую петлю на шине i2c, но оптопары надо подбирать соответствующие, а они будут стоить денег. http://easyelectronics.ru/tokovaya-petlya.html
то есть нужны быстрые оптопары с минимальным временем срабатывания
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
Аватара пользователя
ksa69
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

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

Сообщение ksa69 »

Вчера час почти бился с дисплеем ssd1306. Оказалось в описании неверно указано куда к атмега328р подключать линии sda и куда scl. Перепутаны они местами в описании на гитхаб.ио Кстати по версии на атмега328 вообще невнятное описание, схема всего одна для всех дисплеев. Непонятно почему линия i2c в версии для атмега328 раздельная для часов и для дисплея. Можно наверное использовать одну шину i2c? Ну и ещё по-мелочи вопросы: термодатчик и вентиляторы нельзя в этой версии использовать? И где бы посмотреть параметры компиляции для одного pt2313 без тюнера, а то в маке файле там целая строка тюнеров и строка аудиопроцессоров
И ещё вопрос— почему в версии для упомянутого контроллера нет PGA2310? Он же даже для атмеги8 есть.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

В pins.h достаточно однозначно всё прописано. Для ATmega328p:

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

#define DISP_STROB          C
#define DISP_STROB_LINE     (1<<0)
#define DISP_DATA           C
#define DISP_DATA_LINE      (1<<1)

#define SSD1306_SCK         DISP_STROB
#define SSD1306_SCK_LINE    DISP_STROB_LINE
#define SSD1306_SDA         DISP_DATA
#define SSD1306_SDA_LINE    DISP_DATA_LINE
ksa69 писал(а):в описании неверно указано
Да, здесь было неверно. Хотя я в последнее вообще стараюсь уйти от этого общего для всех проектов github.io и размещать всю инфу прямо в readme.md проекта - так проще держать информацию актуальной.
ksa69 писал(а):по версии на атмега328 вообще невнятное описание, схема всего одна для всех дисплеев.
Потому что этот вариант неофициальный. Оно вроде как и работает, но никаких гарантий, потому что живого проекта я на нём не делал, только в виде по сути макетки.
ksa69 писал(а):почему линия i2c в версии для атмега328 раздельная для часов и для дисплея
Потому что DS1307 и аудиопроцессоры только на 100кГц умеют работать, а дисплей хочется не тормозной видеть. Почему-бы тогда и не повесить на отдельную линию, тем паче что всего 2 пина нужно, а не 12, как у других.
ksa69 писал(а):термодатчик и вентиляторы нельзя в этой версии использовать?
нет, не хватает ножек МК.
ksa69 писал(а):почему в версии для упомянутого контроллера нет PGA2310?
по той же причине - он использует те же ножки, что и термодатчик/вентиляторы (EXT)
Аватара пользователя
ksa69
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

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

Сообщение ksa69 »

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

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

Сообщение WiseLord »

Не совсем так.

Либо ATmega32 (с бОльшим числом ножек) и тогда есть куда подключить 3 линии термодатчиков/вентиляторов или PGA2310. Либо ATmega328 - тогда только I²C для внешних устройств на 100кГц (аудиопроцессоры, тюнеры, часы и т.д.). От дисплея это не зависит.

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

Но вообще, поскольку всё в исходниках по-прежнему есть - Вам никто не мешает вывести всё нужное на любые из осободившихся линий дисплея ("перевесить" EXT в pins.h) и убрать в Makefile исключение для ATmega32, чтобы он для ATmega328p также собирал нужные модули.

Но опять же, это будет выбор между: или термоконтроль, или PGA2310, или какой-нибудь SPI тюнер.
Аватара пользователя
ksa69
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

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

Сообщение ksa69 »

Это я и пробую сделать. Только что-то не пойму— в pins.h написано одно, а на схеме для меги328 другая распиновка кнопок и энкодера. Энкодер не хочет что-то работать ни по схеме если подключаю ни по pins.h. Плюс на схеме 6 кнопок, а в файле 5 кнопок. В итоге работают на меге328 сейчас 5 кнопок, но параметры не регулируются. Работает вкл/выкл, установка часов, переключение входов, а регулировка громкости и прочего не работает. Или она не будет работать пока рт2313 не подключу? Компилировал уже и так и так, но толку ноль

Добавлено after 29 minutes 7 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Состояние энкодера в меню настроек отображается всегда как 0b00 и не меняется какой бы порт атмеги не замыкал на землю
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Так, на счёт совсем свободных линий data дисплея я был не прав (уже забыл как оно там) - эти линии используются для кнопок и энкодера. PD1/PD2 в pins.h - это только для ATmega32.
Для ATmega328p используются 6 и 7 линии параллельного дисплея, как на схеме.

Если кнопки (PD6, PD7, PB0, PB1, PB2, PB3) работают, то и энкодер (PB6, PB7) должен работать, т.к. считывается состояние всего порта, на который вешался бы обычный дисплей.

А по поводу "на схеме одно, в pins.h другое" советую заглянуть в input.c и посмотреть на getPins()
Аватара пользователя
ksa69
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

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

Сообщение ksa69 »

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

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

Сообщение WiseLord »

Если вместо энкодера подключить две кнопки, а в редакторе eeprom задать разрешение энкодера 0, то должно работать. По крайней мере, так задумывалось.
Аватара пользователя
ksa69
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

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

Сообщение ksa69 »

Понял. Я имел ввиду с существующими пятью кнопками громкость не порегулируешь. Одна вкл/выкл, вторая выбор входов, третья выбор регулируемого параметра. А четвёртая и пятая вообще не понял пока зачем нужны. В атмеге328 вообще 6 кнопок, шестую как ни нажимал— ничего не происходит. Коды кнопок в настройках показывает нормально. В исходниках нашёл место где коды этих кнопок присваиваются, а для чего они непонятно. Хотя у меня только темброблок используется на pt2313. Ни тюнера ни ещё чего-то нет.

Добавлено after 6 minutes 32 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Где можно посмотреть описание функций кнопок?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

В статье
Аватара пользователя
ksa69
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Ср фев 02, 2011 16:22:32

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

Сообщение ksa69 »

Подскажите какая версия avr gcc нужна. Дома на std c99 ругалось, добавил опцию в строку компиляции и стало норм. На работе теперь вот установил и ругается на опцию -flto
теперь вообще не компилируется на рабочем компе. ни стд99 не помогает ни удаление -flto опции.
вот что пишет:
СпойлерC:\Users\Admin\Downloads\ampcontrol-m32\src>make
avr-gcc -Wall -Werror -std=c99 -lm -Os -mcall-prologues -fshort-enums -ffunction
-sections -fdata-sections -ffreestanding -mmcu=atmega328p -DF_CPU=16000000L -MM
D -MP -MT build/main.o -MF build/./main.d -D_atmega328p -D_ssd1306 -D_TDA7439 -D
_TDA731X -D_TDA7448 -D_PT232X -D_TEA63X0 -D_TUNER_AUDIO -D_TEA5767 -D_RDA580X -D
_TUX032 -D_SI470X -D_ALARM -D_UARTCONTROL -D_RDS -D_RDA5807_DF -c -o build/main.
o main.c
cc1.exe: warnings being treated as errors
In file included from main.c:8:
remote.h:88: error: declaration does not declare anything
make: *** [build/main.o] Error 1
а вот это пишет когда вообще не меняю опции сборки:
СпойлерC:\Users\Admin\Downloads\ampcontrol-m32\src>make
avr-gcc -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-sections
-fdata-sections -ffreestanding -flto -mmcu=atmega32 -DF_CPU=16000000L -MMD -MP
-MT build/display.o -MF build/./display.d -D_atmega32 -D_ST7920 -D_TDA7439 -D_TD
A731X -D_TDA7448 -D_PT232X -D_TEA63X0 -D_TUNER_AUDIO -D_PGA2310 -D_TEA5767 -D_RD
A580X -D_TUX032 -D_SI470X -D_LM7001 -D_LC72131 -D_ALARM -D_UARTCONTROL -D_RDS -D
_RDA5807_DF -D_TEMPCONTROL -D_SPISW -c -o build/display.o display.c
cc1.exe: error: unrecognized command line option "-flto"
make: *** [build/display.o] Error 1
Ответить

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