Главная » Звук
Призовой фонд
на сентябрь 2017 г.
1. 1000 руб
PCBWay
2. Осциллограф DSO138
Паяльник
3. Тестер компонентов MG328
Паяльник
4. 100 руб.
От пользователей

Индикатор выходной мощности стереоусилителя на PIC-контроллере

Многие радиолюбители считают делом чести собрать выходной усилитель мощности. Благо, что современный рынок радиоэлементов сегодня изобилует интегральными схемами для построения подобных устройств. Для визуализации работы УМЗЧ применяются разнообразные индикаторы, отображающие уровень аудиосигнала. В сегодняшней публикации будет описано устройство для индикации выходной мощности стереоусилителя. Устройство было построено на базе микроконтроллера младшего семейства Microchip Pic12f629.

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

Поскольку контроллер  Pic12f629 не содержит в своем составе аналого-цифрового преобразователя, то в качестве его заменителя используется модуль компаратора совместно с источником опорного напряжения.

Остановимся подробнее на работе компаратора.

Он состоит из двух аналоговых входов и одного цифрового выхода и работает следующим образом:

Т.е. если уровень сигнала на выводе Vin+ превышает уровень сигнала на выводе Vin-, то на выходе компаратора формируется логическая «1»

Работой модуля компаратора управляет регистр “CMCON”. Он служит для включения модуля, изменения режимов его работы и содержит бит, в который записывается состояние компаратора на текущий момент. 

Опишем основные рабочие биты этого регистра:

CMCON <2:0> - определяют режим работы компаратора (т.е. схему его подключения к портам и источнику опорного напряжения)

CMCON <4> - инверсия выхода компаратора (т.е. если на выходе компаратора была установлена лог. «1», то при установки этого бита в «1» она изменится на лог. «0» )

CMCON <3> - подключение входов компаратора (т.е. при определенных настройках режима работы аналоговый вход компаратора может переключаться между портами GP0 и GP1 микроконтроллера)

CMCON <6> - собственно сам выход компаратора (т.е. бит отображающий состояние выхода компаратора)

Поскольку в составе Pic12f629 всего лишь один компаратор, а обрабатывать необходимо 2 сигнала, то используется схема работы с переключениями между аналоговыми входами, т.е.:

К другому аналоговому входу (+) подключен источник опорного напряжения (CVref). Он используется для сравнения поступающих на вход компаратора сигналов с заранее установленным напряжением.

Теперь об источнике опорного напряжения. Его работой управляет регистр «VRCON»

Основные байты этого регистра:
VRCON <7>-включение источника опорного напряжения «1», либо его отключение «0»
VRCON <5>-диапазон выходного напряжения: «1» - нижний диапазон, «0» -верхний диапазон
VRCON <3:0>- калибровка выходного напряжения (т.е. выходное напряжение будет соответствовать загруженной в эти биты константе)

В данном случае используется нижний диапазон опорного напряжения, который рассчитывается по формуле:

CVref = (VR<3:0>/24)*Vdd

где VR<3:0> - значение калибровки, Vdd – напряжение питания контроллера

Значение VR

(десятичный Формат)

Опорное напряжение, В

1

0,208

2

0,417

3

0,625

4

0,833

5

1,042

6

1,25

7

1,458

8

1,667

Именно с этими напряжениями будет сравниваться сигнал, подаваемый на входы котроллера.

Далее необходимо сформировать управляющие коды, соответствующие уровням сигналов, и загрузить их в регистры сдвига.

Регистры сдвига SN54/74HC595 представляют собой 8 битный регистр хранения и 8 битный сдвиговый регистр.  Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий.

Q0…Q7 – выходы которыми будем управлять. Могут находится в трёх состояниях: логическая единица, логический ноль и  высокоомное Hi-Z состояние, к ним можно непосредственно подключать слаботочную нагрузку (через токоограничивающие резисторы)

  • GND – земля
  • Q7′ – выход предназначенный для последовательного соединения регистров.
  • MR – сброс регистра.
  • SH_CP – вход для тактовых импульсов
  • ST_CP – вход «защёлкивающий» данные
  • OE – вход переводящий выходы из HI-Z в рабочее состояние
  • DS – вход данных
  • VCC – питание 5 вольт

Когда на тактовом входе SH_CP появляется логическая единица, регистр считывает бит со входа данных DS и записывает его в самый младший разряд. При поступлении на тактовый вход следующего импульса, всё повторяется, только бит записанный ранее сдвигается на один разряд, а его место занимает вновь пришедший бит. Когда все восемь бит заполнились и приходит девятый тактовый импульс то регистр снова начинает заполнятся с младшего разряда и всё повторятся вновь. Что бы данные появились на выходах Q0…Q7 нужно их «защёлкнуть». Для этого необходимо подать логическую единицу на вход ST_CP.

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

Первым должен быть записан старший бит, последним – младший. При этом старший бит займет место Q7, младший – Q0 на выводах регистра. Согласно этому принципу управляющие коды примут следующий вид:

Значение VR

(десятичный Формат)

Опорное напряжение, В

Управляющий код

1

0,208

«00000001»

2

0,417

«00000011»

3

0,625

«00000111»

4

0,833

«00001111»

5

1,042

«00011111»

6

1,25

«00111111»

7

1,458

«01111111»

8

1,667

«11111111»

О программе

Используется внутренний тактовый генератор на 4 мГц.

В основной программе реализован последовательный опрос портов GP0 и GP1 при ступенчато изменяющемся опорном напряжении. При установлении «1» на выходе компаратора (признак того, что уровень сигнала превысил уровень опорного напряжения) управляющий код записывается в ячейку памяти контроллера (для левого канала и для правого канала). Цикл опроса по всем уровням опорного напряжения составляет примерно 100 мкс. После этого выполняется подпрограмма индикаций, в которой полученные ранее управляющие коды последовательно загружаются в оба регистра и происходит «защелкивание», т.е. отображение уровня сигналов в течении 100 мс. (при желании это время можно изменить т.е. сделать более или менее инерционным).    

Индикатор подключается к предоконечному или оконечному каскаду УМЗЧ. Настройка сводится к установке подстроечными резисторами «пиковых» значений индикации по максимальной громкости воспроизводимой фонограммы.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
МК PIC 8-бит
PIC12F629
1 Поиск в LCSCВ блокнот
Сдвиговый регистр
SN74HC595
2 Поиск в LCSCВ блокнот
Линейный регулятор
MC7805E
1 Поиск в LCSCВ блокнот
Светодиод
АЛ307А
16 Поиск в LCSCВ блокнот
Стабилитрон
КС147А
2 Поиск в LCSCВ блокнот
Диод
КД522Б
2 Поиск в LCSCВ блокнот
Конденсатор10 мкФ х 25 В4 Поиск в LCSCВ блокнот
Конденсатор470 мкФ х 10 В1 Поиск в LCSCВ блокнот
Конденсатор22 пФ1 Поиск в LCSCВ блокнот
Резистор
1 кОм
2 Поиск в LCSCВ блокнот
Подстроечный резистор10 кОм2 Поиск в LCSCВ блокнот
Резистор
470 Ом
16 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 22.11.2015 0 0
Я собрал 0 2
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 1 Проголосовало: 2 чел.

Комментарии (12) | Я собрал (0) | Подписаться

+1
Mrshilov #
Что-то я не заметил здесь выпрямления сигнала, ни программного, ни аппаратного, ни полупериодного, ни двухполупериодного. Отрицательная полуволна сигнала будет индицироваться как минимум уровня.
Интегрирования выпрямленного сигнала нет - индикатор будет просто мерцать.
Конденсаторы 22пФ по питанию и 0,1мкФ на входе, мягко говоря, маловаты.
Ну хоть бы раз автор попытался книжки по теме почитать и собрать свои творения.
Ответить
-2

[Автор]
dima1983 #
А то, что на входе сигнала стоит компаратор с большим входным сопротивлением и реализована задержка на индикацию в 100 миллисекунд? Поймает максимум - покажет максимум.
Ответить
0
Mrshilov #
На входе стоит резисторный делитель с суммарным импедансом 43к, поэтому что там дальше - уже не важно.
Задержка не поможет - он так и будет ловить то максимум, то минимум. Будет мерцание.
Ответить
0

[Автор]
dima1983 #
Хотя согласен с вами. Без диода и ёмкости тут не обойтись. Среднеквадратичное за период
Ответить
+1
Александр #
верно, Mrshilov
я ему тоже самое во всех его статьях-"творениях" пишу... пока ленится парень почитать учебники...
Ох попортят ему карму проклятия собравших его устройства... Так же он забывает ставить керамику 0.1-0.5 мкф по питанию всех цифровых микросхем...
Неплохо было бы и вывод сброса МК подтянуть к +питания резистором. Да, "но работает же", но чуть помеха или даже поднесённая рука - и всё, аля улю :(

Автору рекомендованы на ночь:
Искусство схемотехники. Хоровиц и Хилл
Юный радиолюбитель.В.Борисов
Занимательная электроника. Ревич Ю. В.
PIC-микроконтроллеры. Практика применения. Тавернье К.
Ответить
0

[Автор]
dima1983 #
Уважаемый, сброс в моих конструкция не задействован. Он как порт прописан. Не позорьтесь сами!
Ответить
-1

[Автор]
dima1983 #
Это вам:
Сид Катцен pic-микроконтроллеры все что вам необходимо знать
Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. МК-Пресс, Киев, 2006
Яценков В.С. - Микроконтроллеры MicroChip Практическое руководство. (2002)
Предко М справочник по pic-микроконтроллерам
Ответить
0
Mrshilov #
А еще максимальный уровень здесь 1,667V, т.е. до делителя на входе должно быть боле 7V. С какого же это предварительного такой уровень можно снять? В любом случае нужно дорабатывать входную часть.
И Александр правильно говорит - у вас порт MCLR все равно никуда не подключен, поэтому лучше его использовать по назначению.
Ответить
0

[Автор]
dima1983 #
Сейчас он не подключен. Когда понадобиться я его задействую. Входную часть схемы изменил. И не с предварительного, а с оконечного или с предоконечного!
Отредактирован 23.11.2015 06:49
Ответить
0
Александр #
Mrshilov, не спорьте с ним... Автор - писатель
Года через 4 Дмитрий научится читать ФИРМЕННУЮ документацию, потом и поймёт, что негоже давать ТАКИЕ конструкции, и в детских темах уровня "как рассчитать сопротивление резистора в цепи светодиода" делать грубейшие ошибки
Для Дмитрия: PIC бросил в 2005. Буквально пощупал МК и сразу ушел на АВР
Предко у меня долго лежал, так как на 90% бесполезная трата бумаги (Просил жену на работе распечатать, потом на черновики пустил: вторая сторона шла в дело).
Ответить
+1
Mrshilov #
Если до 32 лет не научился, то дальше ждать бесполезно.
Ответить
0
Григорий Т. #
Схема фейковая. Последовательно соединённые конденсатор и диод на входе, делают всё остальное бесполезным.
И ещё, совет всем "писателям" - детали на схеме нужно маркировать.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
МиниПК MK809V - 4 ядра, Android 4.4.2 Радиореле 220В
вверх