Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
- Реклама
- Сообщения: 3
- Зарегистрирован: Вс июн 06, 2021 10:59:06
Народ выручайте! Никак не могу победить компилятор, уже все перепробовал.. голова кругом. В общем нужна последняя прошивка для m32. Аудио процессор TDA7448, дисплей KS0108B, тюнер не будет использоваться.
Единственно подкорректировал в tda7448.h порядок под свою разводку, файл прикладываю. Кому не сложно, скомпилируйте пожалуйста прошивку.
Единственно подкорректировал в tda7448.h порядок под свою разводку, файл прикладываю. Кому не сложно, скомпилируйте пожалуйста прошивку.
- Вложения
-
- tda7448.h
- (777 байт) 313 скачиваний
А в чём проблема при сборке?
- Вложения
-
- ampcontrol_atmega32_ks0108b.hex.7z
- (27.3 КБ) 353 скачивания
- Сообщения: 3
- Зарегистрирован: Вс июн 06, 2021 10:59:06
Спасибо WiseLord! Ошибку компилятор выдает, причем пробовал собирать вашу последнюю прошивку без каких либо изменений. Делал все по инструкциям этой темы, ничего не помогает.. Скажите пожалуйста, чтобы проверить работоспособность экрана, достаточно только его припаять или еще что-то надо?
Я бы рекомендовал после запайки экрана, подать напряжения питания +5 вольт.
Спойлер
Бороться и искать, найти и перепрятать...- Реклама
- Сообщения: 2
- Зарегистрирован: Сб янв 13, 2018 12:42:46
друзья всех приветствую. такой вопрос - можно ли разнести на примерно 2м друг от друга либо кнопки с энкодером, либо дисплей по i2c/ суть, есть старое авто. хочется сохранить внешний вид магнитолы, но у нее очень маленький дисплей. точнее место под 16х2, но есть место на потолке под вполне себе 128 дисплей. точные измерения приведу позже, равно как и фото.
Можно ли в магнитолу установить аналоговую часть с унч и источниками звука, а в потолок образно говоря - плату с процессором и дисплеем, соответствено вниз надо будет тянуть энкодер и кнопки управления, либо всё остается в магнитоле, а вверх в потолок тянем только дисплей? возможно ли это технически, не будет ли проблем из-за длин проводников?
Можно ли в магнитолу установить аналоговую часть с унч и источниками звука, а в потолок образно говоря - плату с процессором и дисплеем, соответствено вниз надо будет тянуть энкодер и кнопки управления, либо всё остается в магнитоле, а вверх в потолок тянем только дисплей? возможно ли это технически, не будет ли проблем из-за длин проводников?
Последний раз редактировалось siwix8888 Вт июл 06, 2021 15:29:47, всего редактировалось 1 раз.
i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
- Сообщения: 2
- Зарегистрирован: Сб янв 13, 2018 12:42:46
[uquote="ZyaK",url="/forum/viewtopic.php?p=4057343#p4057343"]i2c не советовал бы так далеко тащить, до кучи в авто очень много помех.[/uquote]
хорошо, какое тогда решение?
экранирование и витая пара спасёт?
хорошо, какое тогда решение?
экранирование и витая пара спасёт?
[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
то есть нужны быстрые оптопары с минимальным временем срабатывания
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
- Сообщения: 162
- Зарегистрирован: Ср фев 02, 2011 16:22:32
Вчера час почти бился с дисплеем ssd1306. Оказалось в описании неверно указано куда к атмега328р подключать линии sda и куда scl. Перепутаны они местами в описании на гитхаб.ио Кстати по версии на атмега328 вообще невнятное описание, схема всего одна для всех дисплеев. Непонятно почему линия i2c в версии для атмега328 раздельная для часов и для дисплея. Можно наверное использовать одну шину i2c? Ну и ещё по-мелочи вопросы: термодатчик и вентиляторы нельзя в этой версии использовать? И где бы посмотреть параметры компиляции для одного pt2313 без тюнера, а то в маке файле там целая строка тюнеров и строка аудиопроцессоров
И ещё вопрос— почему в версии для упомянутого контроллера нет PGA2310? Он же даже для атмеги8 есть.
И ещё вопрос— почему в версии для упомянутого контроллера нет PGA2310? Он же даже для атмеги8 есть.
В 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?
- Сообщения: 162
- Зарегистрирован: Ср фев 02, 2011 16:22:32
Понял. Либо тормозной дисплей ssd1306, либо вентиляторы и термодатчики с pga2310. Хотя не понятно что будет там критически сильно тормозить, кроме отображения спектроанализатора и уровня сигнала. Остальные параметры вроде не быстроменяющиеся величины.
Не совсем так.
Либо 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 тюнер.
- Сообщения: 162
- Зарегистрирован: Ср фев 02, 2011 16:22:32
Это я и пробую сделать. Только что-то не пойму— в 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 и не меняется какой бы порт атмеги не замыкал на землю
Так, на счёт совсем свободных линий 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()
- Сообщения: 162
- Зарегистрирован: Ср фев 02, 2011 16:22:32
Разобрался с энкодером. Получается без него кнопками громкость не регулируется?
Если вместо энкодера подключить две кнопки, а в редакторе eeprom задать разрешение энкодера 0, то должно работать. По крайней мере, так задумывалось.
- Сообщения: 162
- Зарегистрирован: Ср фев 02, 2011 16:22:32
Понял. Я имел ввиду с существующими пятью кнопками громкость не порегулируешь. Одна вкл/выкл, вторая выбор входов, третья выбор регулируемого параметра. А четвёртая и пятая вообще не понял пока зачем нужны. В атмеге328 вообще 6 кнопок, шестую как ни нажимал— ничего не происходит. Коды кнопок в настройках показывает нормально. В исходниках нашёл место где коды этих кнопок присваиваются, а для чего они непонятно. Хотя у меня только темброблок используется на pt2313. Ни тюнера ни ещё чего-то нет.
Добавлено after 6 minutes 32 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Где можно посмотреть описание функций кнопок?
Добавлено after 6 minutes 32 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Где можно посмотреть описание функций кнопок?
В статье
- Сообщения: 162
- Зарегистрирован: Ср фев 02, 2011 16:22:32
Подскажите какая версия 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



