Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
-
Александр 84
- Открыл глаза
- Сообщения: 75
- Зарегистрирован: Вт дек 11, 2018 06:25:42
- Откуда: г Омск
- Реклама
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Народ выручайте! Никак не могу победить компилятор, уже все перепробовал.. голова кругом. В общем нужна последняя прошивка для m32. Аудио процессор TDA7448, дисплей KS0108B, тюнер не будет использоваться.
Единственно подкорректировал в tda7448.h порядок под свою разводку, файл прикладываю. Кому не сложно, скомпилируйте пожалуйста прошивку.
Единственно подкорректировал в tda7448.h порядок под свою разводку, файл прикладываю. Кому не сложно, скомпилируйте пожалуйста прошивку.
- Вложения
-
- tda7448.h
- (777 байт) 313 скачиваний
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
А в чём проблема при сборке?
- Вложения
-
- ampcontrol_atmega32_ks0108b.hex.7z
- (27.3 КБ) 353 скачивания
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Спасибо WiseLord! Ошибку компилятор выдает, причем пробовал собирать вашу последнюю прошивку без каких либо изменений. Делал все по инструкциям этой темы, ничего не помогает.. Скажите пожалуйста, чтобы проверить работоспособность экрана, достаточно только его припаять или еще что-то надо?
- Stinger
- Сверлит текстолит когтями
- Сообщения: 1152
- Зарегистрирован: Сб ноя 16, 2013 16:23:02
- Откуда: Fe-City (46)
- Контактная информация:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Я бы рекомендовал после запайки экрана, подать напряжения питания +5 вольт.
Спойлер
Бороться и искать, найти и перепрятать...- Реклама
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
друзья всех приветствую. такой вопрос - можно ли разнести на примерно 2м друг от друга либо кнопки с энкодером, либо дисплей по i2c/ суть, есть старое авто. хочется сохранить внешний вид магнитолы, но у нее очень маленький дисплей. точнее место под 16х2, но есть место на потолке под вполне себе 128 дисплей. точные измерения приведу позже, равно как и фото.
Можно ли в магнитолу установить аналоговую часть с унч и источниками звука, а в потолок образно говоря - плату с процессором и дисплеем, соответствено вниз надо будет тянуть энкодер и кнопки управления, либо всё остается в магнитоле, а вверх в потолок тянем только дисплей? возможно ли это технически, не будет ли проблем из-за длин проводников?
Можно ли в магнитолу установить аналоговую часть с унч и источниками звука, а в потолок образно говоря - плату с процессором и дисплеем, соответствено вниз надо будет тянуть энкодер и кнопки управления, либо всё остается в магнитоле, а вверх в потолок тянем только дисплей? возможно ли это технически, не будет ли проблем из-за длин проводников?
Последний раз редактировалось siwix8888 Вт июл 06, 2021 15:29:47, всего редактировалось 1 раз.
-
ZyaK
- Потрогал лапой паяльник
- Сообщения: 362
- Зарегистрирован: Сб май 03, 2014 20:01:51
- Откуда: Ижевск
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
[uquote="ZyaK",url="/forum/viewtopic.php?p=4057343#p4057343"]i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.[/uquote]
хорошо, какое тогда решение?
экранирование и витая пара спасёт?
хорошо, какое тогда решение?
экранирование и витая пара спасёт?
-
ZyaK
- Потрогал лапой паяльник
- Сообщения: 362
- Зарегистрирован: Сб май 03, 2014 20:01:51
- Откуда: Ижевск
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
[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
то есть нужны быстрые оптопары с минимальным временем срабатывания
хорошо, какое тогда решение?
экранирование и витая пара спасёт?[/uquote]
i2c не только капризна к помехам, но и к ёмкости проводов, можно конечно попробовать, но по питанию придется ставить внушительные фильтры.
можно попробовать использовать токовую петлю на шине i2c, но оптопары надо подбирать соответствующие, а они будут стоить денег. http://easyelectronics.ru/tokovaya-petlya.html
то есть нужны быстрые оптопары с минимальным временем срабатывания
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Вчера час почти бился с дисплеем ssd1306. Оказалось в описании неверно указано куда к атмега328р подключать линии sda и куда scl. Перепутаны они местами в описании на гитхаб.ио Кстати по версии на атмега328 вообще невнятное описание, схема всего одна для всех дисплеев. Непонятно почему линия i2c в версии для атмега328 раздельная для часов и для дисплея. Можно наверное использовать одну шину i2c? Ну и ещё по-мелочи вопросы: термодатчик и вентиляторы нельзя в этой версии использовать? И где бы посмотреть параметры компиляции для одного pt2313 без тюнера, а то в маке файле там целая строка тюнеров и строка аудиопроцессоров
И ещё вопрос— почему в версии для упомянутого контроллера нет PGA2310? Он же даже для атмеги8 есть.
И ещё вопрос— почему в версии для упомянутого контроллера нет PGA2310? Он же даже для атмеги8 есть.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
В 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Да, здесь было неверно. Хотя я в последнее вообще стараюсь уйти от этого общего для всех проектов github.io и размещать всю инфу прямо в readme.md проекта - так проще держать информацию актуальной.ksa69 писал(а):в описании неверно указано
Потому что этот вариант неофициальный. Оно вроде как и работает, но никаких гарантий, потому что живого проекта я на нём не делал, только в виде по сути макетки.ksa69 писал(а):по версии на атмега328 вообще невнятное описание, схема всего одна для всех дисплеев.
Потому что DS1307 и аудиопроцессоры только на 100кГц умеют работать, а дисплей хочется не тормозной видеть. Почему-бы тогда и не повесить на отдельную линию, тем паче что всего 2 пина нужно, а не 12, как у других.ksa69 писал(а):почему линия i2c в версии для атмега328 раздельная для часов и для дисплея
нет, не хватает ножек МК.ksa69 писал(а):термодатчик и вентиляторы нельзя в этой версии использовать?
по той же причине - он использует те же ножки, что и термодатчик/вентиляторы (EXT)ksa69 писал(а):почему в версии для упомянутого контроллера нет PGA2310?
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Понял. Либо тормозной дисплей ssd1306, либо вентиляторы и термодатчики с pga2310. Хотя не понятно что будет там критически сильно тормозить, кроме отображения спектроанализатора и уровня сигнала. Остальные параметры вроде не быстроменяющиеся величины.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Не совсем так.
Либо ATmega32 (с бОльшим числом ножек) и тогда есть куда подключить 3 линии термодатчиков/вентиляторов или PGA2310. Либо ATmega328 - тогда только I²C для внешних устройств на 100кГц (аудиопроцессоры, тюнеры, часы и т.д.). От дисплея это не зависит.
Да, если переходить на SSD1306 - освобождается куча (8 линий данных и ещё управляющие) линий дисплея, и к ним можно было бы подключить и PGA-шку, и термоконтроль, и что-то ещё даже. Правда, тогда теряется универсальность проекта - получается как бы разная схемотехника.
Но вообще, поскольку всё в исходниках по-прежнему есть - Вам никто не мешает вывести всё нужное на любые из осободившихся линий дисплея ("перевесить" EXT в pins.h) и убрать в Makefile исключение для ATmega32, чтобы он для ATmega328p также собирал нужные модули.
Но опять же, это будет выбор между: или термоконтроль, или PGA2310, или какой-нибудь SPI тюнер.
Либо ATmega32 (с бОльшим числом ножек) и тогда есть куда подключить 3 линии термодатчиков/вентиляторов или PGA2310. Либо ATmega328 - тогда только I²C для внешних устройств на 100кГц (аудиопроцессоры, тюнеры, часы и т.д.). От дисплея это не зависит.
Да, если переходить на SSD1306 - освобождается куча (8 линий данных и ещё управляющие) линий дисплея, и к ним можно было бы подключить и PGA-шку, и термоконтроль, и что-то ещё даже. Правда, тогда теряется универсальность проекта - получается как бы разная схемотехника.
Но вообще, поскольку всё в исходниках по-прежнему есть - Вам никто не мешает вывести всё нужное на любые из осободившихся линий дисплея ("перевесить" EXT в pins.h) и убрать в Makefile исключение для ATmega32, чтобы он для ATmega328p также собирал нужные модули.
Но опять же, это будет выбор между: или термоконтроль, или PGA2310, или какой-нибудь SPI тюнер.
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Это я и пробую сделать. Только что-то не пойму— в pins.h написано одно, а на схеме для меги328 другая распиновка кнопок и энкодера. Энкодер не хочет что-то работать ни по схеме если подключаю ни по pins.h. Плюс на схеме 6 кнопок, а в файле 5 кнопок. В итоге работают на меге328 сейчас 5 кнопок, но параметры не регулируются. Работает вкл/выкл, установка часов, переключение входов, а регулировка громкости и прочего не работает. Или она не будет работать пока рт2313 не подключу? Компилировал уже и так и так, но толку ноль
Добавлено after 29 minutes 7 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Состояние энкодера в меню настроек отображается всегда как 0b00 и не меняется какой бы порт атмеги не замыкал на землю
Добавлено after 29 minutes 7 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Состояние энкодера в меню настроек отображается всегда как 0b00 и не меняется какой бы порт атмеги не замыкал на землю
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Так, на счёт совсем свободных линий data дисплея я был не прав (уже забыл как оно там) - эти линии используются для кнопок и энкодера. PD1/PD2 в pins.h - это только для ATmega32.
Для ATmega328p используются 6 и 7 линии параллельного дисплея, как на схеме.
Если кнопки (PD6, PD7, PB0, PB1, PB2, PB3) работают, то и энкодер (PB6, PB7) должен работать, т.к. считывается состояние всего порта, на который вешался бы обычный дисплей.
А по поводу "на схеме одно, в pins.h другое" советую заглянуть в input.c и посмотреть на getPins()
Для ATmega328p используются 6 и 7 линии параллельного дисплея, как на схеме.
Если кнопки (PD6, PD7, PB0, PB1, PB2, PB3) работают, то и энкодер (PB6, PB7) должен работать, т.к. считывается состояние всего порта, на который вешался бы обычный дисплей.
А по поводу "на схеме одно, в pins.h другое" советую заглянуть в input.c и посмотреть на getPins()
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Разобрался с энкодером. Получается без него кнопками громкость не регулируется?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Если вместо энкодера подключить две кнопки, а в редакторе eeprom задать разрешение энкодера 0, то должно работать. По крайней мере, так задумывалось.
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Понял. Я имел ввиду с существующими пятью кнопками громкость не порегулируешь. Одна вкл/выкл, вторая выбор входов, третья выбор регулируемого параметра. А четвёртая и пятая вообще не понял пока зачем нужны. В атмеге328 вообще 6 кнопок, шестую как ни нажимал— ничего не происходит. Коды кнопок в настройках показывает нормально. В исходниках нашёл место где коды этих кнопок присваиваются, а для чего они непонятно. Хотя у меня только темброблок используется на pt2313. Ни тюнера ни ещё чего-то нет.
Добавлено after 6 minutes 32 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Где можно посмотреть описание функций кнопок?
Добавлено after 6 minutes 32 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Где можно посмотреть описание функций кнопок?
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Подскажите какая версия avr gcc нужна. Дома на std c99 ругалось, добавил опцию в строку компиляции и стало норм. На работе теперь вот установил и ругается на опцию -flto
теперь вообще не компилируется на рабочем компе. ни стд99 не помогает ни удаление -flto опции.
вот что пишет:
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
а вот это пишет когда вообще не меняю опции сборки:
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
теперь вообще не компилируется на рабочем компе. ни стд99 не помогает ни удаление -flto опции.
вот что пишет:
Спойлер
C:\Users\Admin\Downloads\ampcontrol-m32\src>makeavr-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>makeavr-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



