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

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

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


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

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

Сообщение WiseLord »

Сигнала от ноутбука/компьютера/FM-модуля вполне достаточно для рисования спектра.

Естественно, в случае ноутбука/компьютера громкость, поступающая на темброблок, должна быть максимальна, а регулировка производиться уже за счёт темброблока, а не системного микшера в операционке.

Это также минимизирует возможные шумы и помехи.
Аватара пользователя
=Inspiron=
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вт апр 07, 2015 14:06:33

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

Сообщение =Inspiron= »

Проблема решилась! Накосячил при сборке - резистор ОС поставил 10к а не 100к как по схеме. Извиняюсь!!!! :oops:
rx-tx
Родился
Сообщения: 5
Зарегистрирован: Вт июл 14, 2015 21:53:48

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

Сообщение rx-tx »

Здравствуйте!
Хочу собрать Ваш проект с такой конфигурацией :
ampcontrol_m16_tda7313_ls020_lm7001.hex / ampcontrol_m16_tda7313_ls020_rda5807.hex
собрал все детали кроме tda7313.
Есть микросхема темброблока tea6330, если можно - поправьте пожалуйста под неё эти прошивки.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Нет, такой микросхемы у меня нету. Да и старую ветку под ATmega16 я развивать не планирую. Возможно, под ATmega32 с кадровым буфером поддержка TEA6330T когда-нибудь и появится (там это сделать много проще), но LS020 в этом случае отпадает.
rx-tx
Родился
Сообщения: 5
Зарегистрирован: Вт июл 14, 2015 21:53:48

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

Сообщение rx-tx »

понял, спасибо, буду искать 7313.
Shershnyov
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт фев 07, 2013 10:46:46
Контактная информация:

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

Сообщение Shershnyov »

Добрый день, сегодня наткнулся на ваш проект. Однозначно буду собирать. Подскажите пжлст, печатная плата из первого поста исчерпывающая для всех типов мк и прошивок? Планирую собирать на меге32. Или подскажите пжлст где можно взять актуальный архивчик. Гуглкод я так понял не работает =(
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Возможно, там не хватает каких-то подтягивающих резисторов, например, на линии 1-wire (к питанию). А так - да, плата подходит для дисплеев KS0108A и ST7920, а разводка у ATmega16 и ATmega32 одинаковая.
voffka_rostov
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

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

Сообщение voffka_rostov »

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

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

Сообщение WiseLord »

А какой смысл в анализаторе спектра без экрана?
voffka_rostov
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

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

Сообщение voffka_rostov »

WiseLord писал(а):А какой смысл в анализаторе спектра без экрана?

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

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

Сообщение WiseLord »

Фьюзы для Atmega8 устанавливаются на частоту работы 8МГц от внутреннего генератора. В Makefile проекта они указаны.
Аватара пользователя
FOLKSDOICH
Говорящий с текстолитом
Сообщения: 1580
Зарегистрирован: Ср окт 04, 2006 22:33:56
Откуда: М.о.

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

Сообщение FOLKSDOICH »

Мне то что-нибудь скажете?
Всё придумано до и для нас.
voffka_rostov
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

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

Сообщение voffka_rostov »

WiseLord, прошу помощи. Собрал плату для TDA7439, взял МК мега8, с Ваших исходников взял i2c.h, i2c.c, tda7439.h(немного дописав из audio.h).
Для пробы написал main вот так:
Спойлер

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

#include <avr/interrupt.h>
#include "i2c.h"
#include "tda7439.h"
#include <avr/io.h>

int main (void)
{
   I2CInit();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_INPUT_SELECT);
   I2CWriteByte(0x02); //вход2
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_INPUT_GAIN);
   I2CWriteByte(0x0A); //входной уровень 18dB
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_PREAMP);
   I2CWriteByte(0x08); //громкость -8dB
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_BASS); //bass 0db
   I2CWriteByte(0x0F);
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_MIDDLE); //middle 0db
   I2CWriteByte(0x0F);
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_TREBLE); //treble 0db
   I2CWriteByte(0x0F);
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_VOLUME_RIGHT); //balance 0db
   I2CWriteByte(0x00);
   I2CStop();

   I2CStart(TDA7439_I2C_ADDR);
   I2CWriteByte(TDA7439_VOLUME_LEFT); //balance 0db
   I2CWriteByte(0x00);
   I2CStop();
}


Собрал обвязку МК на макетке, дал питание от компьютерного бп +5 на мк, +12 через D-SUB-> +8 на TDA. На линии i2c pull-up резисторы.

Включаю это все дело, звук появляется на 1 секунду и то с хрипом, потом тишина. При выключение слышно затухающее жужание. Может ли это говорить о том, что я упалил уже TDA?

P.S.: если я правильно замерил, то на контактах RPRE и LPRE 0.5в постоянки... Незнаю влияет ли это но вместо 0.018мкФ я поставил 0.022мкФ, так как 0.018 не нашел
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Вроде как всё правильно. Но можно попробовать упростить код. Из даташита:

Изображение

То есть, достаточно только задать VOLUME, SPEAKER_LEFT и SPEAKER_RIGHT, и уже этого должно быть достаточно для работы во входу IN2.
voffka_rostov
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

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

Сообщение voffka_rostov »

WiseLord писал(а):Вроде как всё правильно.


Все оказалось правильно! Все работает, это просто мозгов еще мало. Я на выход стал включать наушники, напрямую от микросхемы, вот она и затыкалась. А щас повесил усилитель и все запело!!!

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

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

Сообщение WiseLord »

Обычный для I²C автоинкремент адреса. Можно писать без лишних перестартовок, что значительно быстрее:

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

I2CStart(TDA7439_I2C_ADDR);
I2CWriteByte(TDA7439_INPUT_SELECT | 0x10); // начальный адрес + бит автоинкремента
I2CWriteByte(0x02); //вход2
I2CWriteByte(TDA7439_INPUT_GAIN);I2CStop();
I2CWriteByte(TDA7439_PREAMP);
I2CWriteByte(TDA7439_BASS); //bass 0db
I2CWriteByte(TDA7439_MIDDLE); //middle 0db
I2CWriteByte(TDA7439_TREBLE); //treble 0db
I2CWriteByte(TDA7439_VOLUME_RIGHT); //balance 0db
I2CWriteByte(TDA7439_VOLUME_LEFT); //balance 0db
I2CStop();
voffka_rostov
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

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

Сообщение voffka_rostov »

WiseLord писал(а):Обычный для I²C автоинкремент адреса. Можно писать без лишних перестартовок, что значительно быстрее:
Спойлер

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

I2CStart(TDA7439_I2C_ADDR);
I2CWriteByte(TDA7439_INPUT_SELECT | 0x10); // начальный адрес + бит автоинкремента
I2CWriteByte(0x02); //вход2
I2CWriteByte(TDA7439_INPUT_GAIN);I2CStop();
I2CWriteByte(TDA7439_PREAMP);
I2CWriteByte(TDA7439_BASS); //bass 0db
I2CWriteByte(TDA7439_MIDDLE); //middle 0db
I2CWriteByte(TDA7439_TREBLE); //treble 0db
I2CWriteByte(TDA7439_VOLUME_RIGHT); //balance 0db
I2CWriteByte(TDA7439_VOLUME_LEFT); //balance 0db
I2CStop();


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

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

Сообщение WiseLord »

При первом включении. При регулировке громкости (SPEAKER_LEFT + SPEAKER_RIGHT). При реализации предустановок типа ROCK, POP, FLAT и т.п., когда нужно менять настройки всех трёх тембров за раз. В общем, в любых случаях, когда нужно одновременно поменять несколько байт подряд, не обязательно все.
voffka_rostov
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

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

Сообщение voffka_rostov »

WiseLord писал(а):При первом включении. При регулировке громкости (SPEAKER_LEFT + SPEAKER_RIGHT). При реализации предустановок типа ROCK, POP, FLAT и т.п., когда нужно менять настройки всех трёх тембров за раз. В общем, в любых случаях, когда нужно одновременно поменять несколько байт подряд, не обязательно все.

Спасибо за разъяснения, пошел вешать энкодер и экран. Будем пробовать дальше )))
Shershnyov
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт фев 07, 2013 10:46:46
Контактная информация:

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

Сообщение Shershnyov »

Добрый день, сегодня наткнулся на ваш проект. Однозначно буду собирать. Подскажите пжлст, печатная плата из первого поста исчерпывающая для всех типов мк и прошивок? Планирую собирать на меге32. Или подскажите пжлст где можно взять актуальный архивчик. Гуглкод я так понял не работает =( . И подскажите пжлст, http://ru.aliexpress.com/item/2014-1PCS ... 47863.html вот такой дисплей подойдет? Основные линии вроде бы такие же (распиновка) но по паре линий возник вопрос, т.к. не силен в этом спрашиваю у вас.
Ответить

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