Например TDA7294

Форум РадиоКот • Просмотр темы - Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср июл 30, 2025 23:07:41

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4782 ]     ... , , , 134, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Ср фев 22, 2017 22:01:53 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Не сейчас, нет времени.

Оставьте задачу (issue) на github, как будет время - посмотрю

А вообще заниматься этим, не имея в железе, не самое интересное занятие. Можете своими силами попробовать, там довольно похоже на 7439 должно быть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт фев 23, 2017 03:20:07 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт апр 05, 2011 15:39:55
Сообщений: 196
Откуда: Красноярск
Рейтинг сообщения: 0
FOLKSDOICH У каждого свое мнение . Если есть желание переплачивать за никому не нужный (в рамках этого проекта) функционал , пожалуйста . :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 16:53:41 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
Прежде всего хочу поблагодарить автора за отличный проект.
Собрал на меге 16 - что было в наличии, RDA5807. Хочу собрать еще аудио контролер на tda7318.
Когда то по случаю купил дисплей 20*2 Noritake Itron CU20025ECPB-U1J. На нем получилась отличная картинка, так как он менее инерционен. Проект адаптировал под разрешение 20*2.
Но есть вопрос к автору: Данный дисплей умеет сам менять програмно яркость. Не могли бы Вы ткнуть носом что подправить в исходнике что бы управление яркостью шло не через ШИМ как сейчас, а использовать команды дисплея?
В приложении краткий даташит.
Спасибо.


Вложения:
CU20025ECPB-U1J.rar [24.99 KiB]
Скачиваний: 167
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 17:03:23 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Вероятно, опечатка в даташите. При такой комбинации RS и RW, что указана там в табличке для якобы установки яркости, на самом деле происходит запись данных в память, что в той же табличке видно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 17:29:39 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
Вот еще не могли бы посмотреть здесь?
Может действительно ошибка?


Вложения:
CU-U_Application_Note.rar [988.08 KiB]
Скачиваний: 176
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 17:34:30 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Ага, действительно, есть какое-то хитрое включение - если сразу после команды Function Set послать байт 0b000000xx, то будет установлена яркость. Всего доступно 4 градации - 25%, 50%, 75% и 100%. Хотя может зависеть от типа модуля.

В общем, отключайте ШИМ, и врезайте в эти функции посылку нужных команд/данных


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 17:55:36 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
Спасибо, завтра попытаюсь поменять :beer:
Еще вопрос: экран спектроанализатора можно растянуть на 20 позиций?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 18:07:51 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Можно. Там всего 32 полосы, в данный момент на KS0066 отображаются по две в одном столбце, но можно легко переделать под свои нужды.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 02, 2017 18:14:53 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
Спасибо, завтра буду менять. А то сегодня уже не соображаю :?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Сб мар 04, 2017 16:37:21 
Родился

Зарегистрирован: Сб мар 04, 2017 16:27:44
Сообщений: 5
Рейтинг сообщения: 0
WiseLord Доброго времени суток!
Появился вопросик, можно ли сделать переключение входов PT2323 при помощи Второго энкодера, если убрать пару кнопок управления?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Вс мар 05, 2017 19:44:59 
Первый раз сказал Мяу!

Зарегистрирован: Вт фев 14, 2017 21:23:13
Сообщений: 22
Откуда: Кострома
Рейтинг сообщения: 0
WiseLord Доброго времени суток. Не подскажите, как адаптировать регулировку громкости (на полный диапазон - 84дб) и тембра (регулируется только вч) под TDA7468? Изменив grid с -79 на -63, громкость регулируется, но не полностью гасит. Если ставлю -84, то до -63 регулируется также, а с -64 увеличивается и до -84 опять уменшается. А тембра имеют один субадрес и на "вч" и на "нч", разделены на старший и младший полубайт.


Вложения:
TDA7468.pdf [248.49 KiB]
Скачиваний: 151
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Вс мар 05, 2017 21:33:59 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Насколько я понял, у этого контроллера есть два регулятора громкости. Первый, до регуляторов тембров, от -63 до 0дБ, с шагом 1дБ. Второй, после регуляторов, от -24дБ до 0дБ с шагом 8дБ.

Технически проще выставить второй постоянно на 0 (или вывести его в канал "Preamp") и регулировать его отдельно. А основную громкость - первым регулятором от -63 до 0дБ.

Либо просто программно совместить оба регулятора в один виртуальный, и регулировать как-то так:
Код:
Virtual -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 ...
Vol 1   -63 -62 -61 -60 -59 -58 -57 -56 -63 -62 -61 -60 -59 -58 -57 ...
Vol 1   -24 -24 -24 -24 -24 -24 -24 -24 -16 -16 -16 -16 -16 -16 -16 ...

Но я бы всё же для простоты это в отдельные регулировки вынес, "слотов" хватает. Для домашнего использования можно было бы выставить Vol2 в минимум, а основной громкости -63..0 вполне бы хватило. Нужно громче - можно отдельным регулятором поднять.

P.S. Смотрю, в даташите "виртуальная" громкость тоже как-то так и реализована.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Пн мар 06, 2017 05:21:35 
Родился

Зарегистрирован: Чт фев 16, 2017 09:01:02
Сообщений: 3
Рейтинг сообщения: 0
Хотел плату начать делать, пока придут с Али комплектующие, не получается открыть pcbs.lay6, пишет "pcbs.lay6" ist keine Sprint-Layout Dadei. Что такое может быть?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Пн мар 06, 2017 17:33:16 
Первый раз сказал Мяу!

Зарегистрирован: Вт фев 14, 2017 21:23:13
Сообщений: 22
Откуда: Кострома
Рейтинг сообщения: 0
WiseLord, спасибо за ответ. Я в принципе с громкостью так и сделал, -63 - 0дб. А вот как регулировать "нч" ("вч" регулируется) тембр, при едином суб-адресе не понимаю. Подскажите пожалуйста примерный код, как это реализовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Пн мар 06, 2017 18:24:02 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
В любой момент значения НЧ и ВЧ доступны как sndPar[MODE_SND_BASS].value и sndPar[MODE_SND_TREBLE].value (смотрите по аналогии с другими аудиопроцессорами). Поэтому при любой регулировке - НЧ или ВЧ, не важно - нужно просто посылать оба эти значения в одном байте.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 09, 2017 10:31:10 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
Снова обращаюсь к Автору.
Переделал я подсветку под Noritake Itron. Все завелось, яркость регулируется - 4 уровня.
У меня к Вам просьба - не могли бы Вы посмотреть исходник во вложении на предмет того правильно ли я отмаштабировал экран спектроанализатора под индикатор 20*2? Мне кажется что нет. А также не могли бы глянуть на то правильно ли отмаштабированы шкалы (Bar) под такой индикатор.
Спасибо.


Вложения:
noritake.rar [769.61 KiB]
Скачиваний: 167
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 09, 2017 14:02:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Не совсем корректно.
Код:
   uint8_t i;
   uint8_t lcdBuf[16];

   if (userSybmols != LCD_LEVELS) {
      lcdGenLevels();
      userSybmols = LCD_LEVELS;
   }

   for (i = 0; i < 16; i++) {
      lcdBuf[i] = buf[2 * i] + buf[2 * i + 1];
      lcdBuf[i] += buf[32 + 2 * i] + buf[32 + 2 * i + 1];
      lcdBuf[i] >>= 2;
   }

   for (i = 0; i < 16; i++) {
      ks0066SetXY(i, 0);
      if (lcdBuf[i] < 8)
         ks0066WriteData(0x20);
      else
         ks0066WriteData(lcdBuf[i] - 8);
      ks0066SetXY(i, 1);
      if (lcdBuf[i] < 8)
         ks0066WriteData(lcdBuf[i]);
      else
         ks0066WriteData(0xFF);
   }

Данные для спектрограммы сохраняются в массиве buf[64]. Первые 32 байта - данные для левого канала, последующие 32 - для правого. Код выше всё что делает - перекладывает эти данные в массив lcdBuf из 16 элементов. 0,1,32,33 байты buf[] => в lcdBuf[0], 2, 3, 34, 35 байты buf[] => в lcdBuf[1] и так далее. Потом уже lcdbuf[16] выводится на экран.

Нельзя просто взять и сделать lcdBuf[20], больше ничего не поменяв. В этом случае, даже если программа не упадёт, данные для 17-20 элементов всё равно будут мусором по сути.

С масштабированием тоже не всё ОК. У меня изначально в showBar:
Код:
   if (min + max) {
      value = (int16_t)48 * (value - min) / (max - min);
...
   } else {
      value = (int16_t)23 * value / max;

Цифры не от балды. 48 - это 16 (длина строки) умноженное на 3 (количество "палочек" бара в одном знакоместе, то есть длина бара в этих "палочках". 23 это фактически то же самое, но для симметричных (тембры) баров - центральный отображается всегда, плюс есть по 23 влево и вправо.
В случае длины строки 20 там, теоретически, должно быть 60 и 29.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 09, 2017 15:04:12 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
WiseLord, спасибо.
Буду переделывать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Чт мар 09, 2017 21:17:04 
Первый раз сказал Мяу!

Зарегистрирован: Вт фев 14, 2017 21:23:13
Сообщений: 22
Откуда: Кострома
Рейтинг сообщения: 0
WiseLord, замучился уже с тембрами. Скажите, при такой архитектуре секции регулировки тембров (на скриншоте), возможна независимая регулировка тембров нижних и верхних частот? У меня не получается так, при регулировке вч, изменяются высокие, но и уменшаюся низкие, и наоборот.


Вложения:
вч-нч.png [233.5 KiB]
Скачиваний: 462
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
СообщениеДобавлено: Пт мар 10, 2017 09:15:43 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Всё достаточно просто.

Возьмём, например, sndPar[MODE_SND_TREBLE].value. Диапазон -14..+14дБ с шагом 2 (используется grid_n14_14_2). В этом случае это .value будет числом от -7 до +7 - всего 15 возможных значений.

При этом значения от -7 до 0 согласно таблице выше должны превращаться в raw значения от 0 до 7 при посылке в шину, а значения от 0 до 7 - в raw значения от 15 до 8. Это согласуется с формулой val > 0 ? 15 - val : 7 + val, которая и для других аудипроцессоров применяется.

Соответственно, получится что-то вроде:
Код:
void tda7468SetBT(void)
{
   uint8_t data;
   int8_t val;

   I2CStart(TDA7468_I2C_ADDR);    // 0b10001000
   I2CWriteByte(TDA7468_TR_BASS); // 0b00000101

   val = sndPar[MODE_SND_BASS].value;
   data = val > 0 ? 15 - val : 7 + val;
   data <<= 4;

   val = sndPar[MODE_SND_TREBLE].value;
   data |= (val > 0 ? 15 - val : 7 + val);

   I2CWriteByte(data);

   I2CStop();
}

Эту функцию нужно дёргать и при регулировке тембра НЧ, и при регулировки тембра ВЧ, т.е. назначить в sndInit её на обе эти регулировки.

Практически никакой разницы с TDA7439 нет, только там на НЧ/СЧ/ВЧ выделены отдельные байты, и в tda7439SetBMT посылаются все они, один за другим (с автоинкрементом адреса). А здесь данные упаковываются в один байт согласно таблице, и посылается только этот один байт.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4782 ]     ... , , , 134, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: aleksey_1184, Andiss, chester17 и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y