Реклама ⓘ
Главная » Звук
Призовой фонд
на апрель 2024 г.
1. 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 Поиск в магазине ОтронВ блокнот
Сдвиговый регистр
SN74HC595
2 Поиск в магазине ОтронВ блокнот
Линейный регулятор
MC7805E
1 Поиск в магазине ОтронВ блокнот
Светодиод
АЛ307А
16 Поиск в магазине ОтронВ блокнот
Стабилитрон
КС147А
2 Поиск в магазине ОтронВ блокнот
Диод
КД522Б
2 Поиск в магазине ОтронВ блокнот
Конденсатор10 мкФ х 25 В4 Поиск в магазине ОтронВ блокнот
Конденсатор470 мкФ х 10 В1 Поиск в магазине ОтронВ блокнот
Конденсатор22 пФ1 Поиск в магазине ОтронВ блокнот
Резистор
1 кОм
2 Поиск в магазине ОтронВ блокнот
Подстроечный резистор10 кОм2 Поиск в магазине ОтронВ блокнот
Резистор
470 Ом
16 Поиск в магазине ОтронВ блокнот
Добавить все

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

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

Теги:

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

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

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

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

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

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

[Автор]
dima1983 #
А то, что на входе сигнала стоит компаратор с большим входным сопротивлением и реализована задержка на индикацию в 100 миллисекунд? Поймает максимум - покажет максимум.
Ответить
+1
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 лет не научился, то дальше ждать бесполезно.
Ответить
+1
Григорий Т. #
Схема фейковая. Последовательно соединённые конденсатор и диод на входе, делают всё остальное бесполезным.
И ещё, совет всем "писателям" - детали на схеме нужно маркировать.
Ответить
0
Vadim #
Убираем стабилитрон, добавляем по одному диоду сразу после входного конденсатора анодом на корпус.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Автомобильный GPS-трекер с GSM/GPRS и дистанционным управлением USB осциллограф DSO-2090
вверх