Регулятор громкости и прочего на TEA6320 и PIC16F84

       

усилитель хотя бы по своей


   

Автор: Килиба Юрий Владимирович

Регулятор громкости и прочего на TEA6320 и PIC16F84. 

Почти каждый радиолюбитель собирал самодельный усилитель. Регулятор громкости как правило просто резистор, в лучшем случае с отводом для тонкомпенсации. Но хочется, чтобы усилитель хотя бы по своей начинке не отставал от Научно-Технического прогресса.



Регулировки их разнообразие и удобство вот, что главное. Решил это дело возложить на цифровую технику, чтобы кнопками оперировать, с перспективой применения дистанционного управления.

Первым делом собрал схему цифрового регулятора на 155 серии (6шт.) и две КР572ПА1, две 544УД1 плата 50x100 (только регулировка громкости). Оказалось не то, три питания +5в, +15в, -15в потребляемый ток великоват и все греется. Но работало все исправно.

Следующий шаг – попытка скрестить малость переделаный цифровой регулятор на 155 серии и TDA1524 (древность еще та), но TDA1524 сгорела и пришлось ее заменить на К174УН10 и К174УН12. Поодиночке  УН10 и УН12 работали нормально, но в паре шипели как две змеи, шум частично устранил подбором наименее шумных экземпляров. Это регулятор меня еще больше разочаровал, четыре питания (+5в, +9в, +15в, -15в) потребляемый ток великоват и все очень сильно греется. Здесь было155 серии (24шт.) и 4шт. КР572ПА1, 4шт. 544УД1 этажерка из 5 плат 50x100 (регулировка громкости, баланса, тембра НЧ и ВЧ, светодиодная индикация регулировок).

После всех  этих мытарств мне в руки попала информация о TEA6320 ниже ее краткое описание.

 

Sound fader control circuit TEA6320

 (Моих знаний немецкого языка не хватило, чтобы достоверно перевести это с английского).

Возможности:

  • Селектор 4 стерео и 1 моно входов.
  • Интерфейсы для внешних шумоподавителя и эквалайзера.
  • Регулировка громкости с тонкомпенсацией.
  • Возможность регулировки громкости индивидуально на каждом из 4 выходов.
  • Балланс.
  • Кнопка Mute.
  • И все это хозяйство в 32 выводном корпусе SDIP32 или SO32 и управляется по I2C.
 

Единственная преграда – шина I2C.
Пришлось писать программу для PIC процессора. Которая позволила бы управлять работой TEA6320.

Ниже см. типовую схему включения.

Схема была нарисована в ACCEL EDA14, потом перенесена в ACAD 2000, окончательно обработана в Corel Draw 9. И плата.



В связи с тем, что на коленке я не смогу нарисовать плату под корпус SO32, изобразил под DIP корпус. Микросхема  висит на проводах, и залита компаундом КЛТ.

 Для понимания ниже приведен принцип работы шины I2C

I 2 C-Протокол для TEA6320

Таблица1.

Старт(1)

Адрес слуги(2)

Ответ слуги(3)

Субадрес(4)

Ответ слуги(3)

Данные(5)

Ответ слуги(3)

Стоп(6)

 Примечания к табл.1.

1. Передача условия старта.

2. Адрес слуги  (MAD) = 1000 0000 (для TEA6320).

3. Ответ слуги. (о том, что еще жив)

4. Субадрес (SAD), см табл.2

5. Данные, тоже надо таблицу смотреть.

6. Передача условия завершения передачи. (извиняюсь за тавтологию)

  Субадрес (SAD)

Таблица2.

Функция

Бит

7

6

5

4

3

2

1

0

Громкость

V

0

0

0

0

0

0

0

0

Громкость передний правый

FFR

0

0

0

0

0

0

0

1

Громкость передний левый

FFL

0

0

0

0

0

0

1

0

Громкость тыловой правый

FRR

0

0

0

0

0

0

1

1

Громкость тыловой левый

FRL

0

0

0

0

0

1

0

0

Тембр НЧ

BA

0

0

0

0

0

1

0

1

Тембр ВЧ

TR

0

0

0

0

0

1

1

0

Коммутатор

S

0

0

0

0

0

1

1

1

  Таблицы с данными не буду рисовать- адова работа. Кому интересно пишите, я лучше по почте пошлю pdf файл с полным описанием на английском. Или что еще лучше обращайтесь к Philips, CD-ROM они пришлют с радостью. 

Характеристики шины I2C :

  • скорость обмена - до 100 кбит/сек для стандартного режима и до 400 кбит/сек для усовершенствованного быстрого режима;
  • максимальная длина линий - не более 2-х метров;
  • суммарная емкость линий - не более 400 пф;
  • входная емкость на каждую ИС - не более 10 пф;
  • величина подтягивающих резисторов 1...10 кОм;
  • адресация до 128 устройств.
Физически шина содержит две сигнальные линии, одна из которых (SCL) предназначена для передачи тактового сигнала, а вторая (SDA) для обмена данными.


Для управления линиями применяются выходные каскады с открытым стоком или открытым коллектором, чтобы устройства можно было соединять по схеме "Монтажное ИЛИ". Для обеспечения высокого уровня при отсутствии на шине активного устройства используются внешние подтягивающие резисторы к источнику питания +5 В сопротивлением 1...10 кОм, в зависимости от физической длины линии и скорости передачи данных.

Все абоненты шины делятся на два класса - "Master" (ведущий) и "Slave" (слуга). Устройство "Master" генерирует тактовый сигнал (SCL) и, как следствие, является ведущим. Оно может самостоятельно выходить на шину и адресовать любое ведомое устройство с целью передачи или приема информации. Когда ведущий хочет инициализировать передачу данных, он сначала передает адрес устройства, к которому он хочет обратиться. Все устройства на шине следят за выдаваемым адресом и сравнивают его с собственным. Вместе с адресом передается бит, определяющий, хочет ли ведущий читать из ведомого, или писать в него. Во время передачи всегда один из абонентов передатчик, а другой - приемник.

В начальный момент времени - в режиме ожидания, обе линии SCL И SDA находятся в состоянии лог. "1", так как притянуты подтягивающими резисторами  (транзистор выходного каскада с открытым стоком или открытым коллектором закрыт). Начало и конец передачи данных определяют условия START и STOP. Условие START определяется как переход SDA из высокого уровня в низкий при высоком уровне SCL, а условие STOP - как переход SDA из низкого уровня в высокий при высоком уровне SCL (см. ниже рисунок 1). Ведущий генерирует эти условия в начале и конце передачи данных. Ввиду такого способа определения START и STOP при передачи данных линия SDA может изменять свое состояние только при низком уровне SCL.

Для управления применен процессор PIC16F84. Приведена схема для отладки передачи данных по шине I2C.



 

Печатная плата:



Две кнопки регулируют громкость, светодиод индицирует ошибку передачи по шине I2C. Частота передачи около 50 кГц.



Отладочная программа выполняет следующие функции:

  • Проверяет ПЗУ данных на наличие там данных для управления  TEA6320, если данных нет, то они устанавливаются по умолчанию, и устанавливается признак необходимости записи данных. Если данные в  ПЗУ данных есть, то они считываются.
  • Данные по шине I2C передаются в TEA6320. Если возникла ошибка передачи, то она индицируется светодиодом, и передача повторяется. 
  • При нажатии на одну из кнопок проверяется возможность увеличения или уменьшения громкости, для того, чтобы число не вышло за пределы максимального или минимального значения. Если число выходит за допустимые пределы, то нажатие кнопки игнорируется. Если число находится в допустимых пределах, то новое значение передается в TEA6320, и устанавливается признак записи для этого параметра.
  • Для увеличения ресурса процессора новое значение записывается в ПЗУ данных не сразу, а через 3-4 секунды  после последнего нажатия на любую из кнопок. Это сделано для того, чтобы не записывать каждое изменение, и еще связано с тем, что запись в ПЗУ данных процесс довольно длительный, и «торможение»  процессора во время записи явление неприятное, пусть он (процессор) записывает когда  все отрегулировано, и пользователь уже успел отойти от усилителя.
 Скачать:

Схемы, платы (ACCEL EDA14), и программу управления в ахиве. 

При появлении окончательной версии, я ее выложу здесь же, но с некоторыми условиями. Желание простое, срубить денег, но вы платить ничего не бедете, за вас заплатят капиталисты. Подробности опишу, когда все будет готово.

 TO BE CONTINUED...

Наверх Если что-то не работает напишите.


Содержание раздела