Пролог
Прошло уже два года после выхода статьи о первой версии контроллера управления усилителем и набором управляющих модулей Ctrl-Amp. Очень рад, что система вызвала интерес в нашем сообществе и нашла своих последователей. Благодаря вашему интересу, вопросам и предложениям, контроллер и модули активно развивались — добавилось много новых функций, появилась поддержка бистабильных реле, добавились новые модули. Поэтому прежде всего хочу поблагодарить всех за активное участие в проекте, предложения, помочь в поиске ошибок прошивки, тестирование и просто обмен мнениями!
Но пора двигаться дальше, так как не все идеи можно реализовать на текущей аппаратной платформе контроллера. Кроме того, у меня было огромное желание изучить STM32. Первые эксперименты с тестовой платой Blue Pill показали, что даже у младшего и самого доступного контроллера F103 огромные возможности. Поэтому год назад были сформулированы новые требования к контроллеру:
- прежде всего современный цветной графический интерфейс
- поддержка всех функций, уже наработанных в старом контроллере
- обратная совместимость со всеми созданными исполнительными модулями
- возможность простой перенастройки системы на другие будущие исполнительные модули ( регуляторы громкости/тембра и т.д )
- доступная элементная база с корпусами, которые реально монтировать в домашних условиях
В это же время начались эксперименты с контроллером и экраном с целью оценки быстродействия самого камня и возможностей вывода на экран графики по последовательной шине. По началу шина экрана казалась узким местом, но к счастью опасения не подтвердились. Нормальную отрисовку экрана удалось получить только на максимально возможной частоте шины и при использовании DMA. STM успевал одновременно рассчитывать преобразование фурье, выводить данные в виде спектра с частотой 30 кадров в секунду, параллельно рисовать индикатор уровня, не теряя при этом связь с окружающим миром ( кнопками и энкодером )
Общая концепция системы
Контроллер управления усилителем и управляющие модули Ctrl-Amp 2 — гибкая система для создания усилителя мощности или предварительного усилителя. Она включает в себя контроллер управления на базе микроконтроллера STM32 с графическим дисплеем и исполнительные модули, непосредственно осуществляющие контроль, регулировку или коммутацию. Управление системой осуществляется с помощью кнопок, энкодера и пульта дистанционного управления.
Конкретный набор подключенных модулей и остальные параметры, касающиеся настройки системы, определяются с помощью конфигурационного экранного меню. Текущее состояние оперативных регулировок (вход, громкость, тембр и т.д.) сохраняется в энергонезависимой памяти и восстанавливается после включения устройства.
На момент написания статьи контроллер поддерживает все наиболее востребованные функции управления и контроля:
- Мягкий старт, задержка полного включения настраивается от 0 до 30 сек.
- Задержка подключения АС, настраивается от 0 до 30 сек.
- ДУ стандарта NEC c настройкой на пульт пользователя из системы меню.
- Коммутация АС c помощью плат защиты: включение/выключение или переключение зон A/B/выкл. (кнопка, ДУ), переключение левая/правая АС (ДУ). Данную функцию можно использовать для переключения выходов предварительного усилителя.
- Контроль состояния защиты на предмет постоянного напряжения на выходе и отключение усилителя при аварии.
- Управление входным селектором на 2-4 входа (кнопки, ДУ, энкодер с нажатой кнопкой). Количество входов задается в конфигурационном меню.
- Управление громкостью и балансом с помощью микросхемы PGA23XX или релейным РГ Никитина (энкодер, ДУ). Возможно подключение двух РГ Никитина для регулировки баланса.
- Режим приглушения звука Mute c настраиваемой громкостью (кнопка, ДУ)
- Управление регулятором тембра Матюшкина c релейной регулировкой НЧ и ВЧ (энкодер, ДУ).
- Режим отключения регулятора тембра, Direct (ДУ).
- Поддержка обычных и бистабильных реле в селекторе входов и модулях регулировки громкости и тембра.
- Контроль температуры радиаторов на базе цифрового датчике LM75, один или два канала, выходы управления вентиляторами, выключение усилителя при перегреве. Температура выключения и включения/выключения обдува задаются в конфигурационном меню.
- Кнопки включения, переключения АС, четыре кнопки селектора входов и Mute.
- Пользовательская команда (ДУ) и выход для управления другими устройствами.
- Регулировка яркости подсветки экрана (ДУ).
- Индикатор уровня с запоминанием пиков.
- Анализатор спектра.
- Часы.
- Настройка цвета интерфейса.
- Отключаемая индикация команд ДУ светодиодом дежурного режима.
- Индикация ошибок: перегрев, постоянное напряжение на выходе, чтение термодатчиков, клавиатуры, памяти.
Лишние функции для конкретной реализации могут быть отключены в конфигурационном меню. Вместе с отключением функций, отключается и их индикация на экране контроллера.
Все исполнительные модули системы не содержат контроллеров. В основном управление осуществляется обычными транзисторными ключами или сдвиговыми регистрами, которые получают данные от внешнего контроллера по последовательной шине SPI. Данные в регистры управления модулей передаются только в момент регулирования. В остальное время ключи и регистры не тактируется и находится в неизменном состоянии. Это исключает влияние цифровых помех от контроллера на полезный сигнал. Кроме того, графический дисплей и модули подключаются на разные шины SPI, чтобы исключить возможное влияние обмена данными с дисплеем на аналоговые управляющие модули. Наиболее зашумленное питание контроллера и дисплея отделено от шин питания модулей стабилизатором 3.3в и не выходит за пределы платы контроллера.
Большая часть модулей описана ранее в статье про Ctrl-Amp и в ветке обсуждения на форуме. Список список модулей системы Ctrl-Amp 2 на данный момент:
- Селектор входов с обычными или бистабильными реле ( форум )
- Регулятор громкости Никитина с обычными реле ( статья )
- Регулятор громкости Никитина с бистабильными реле ( форум )
- Регулятор громкости на базе PGA23XX c входным селектором на 4 входа ( статья )
- Предварительный усилитель Натали и регулятор тембров Матюшкина c релейной регулировкой НЧ и ВЧ (обычные или бистабильные реле) ( форум )
- Защита АС от постоянного напряжения c коммутацией двух зон A/B, левая/правая и возможностью мониторинга контроллером
- Блок дежурного питания с входным фильтром, фильтром постоянного напряжения в сети, управлением мягким стартом, управляемым питанием защиты АС
- Термо-датчики ( статья )
Основные исполнительные модули (громкость , селектор, регулятор тембра ) подключаются к последовательной шине контроллера SPI в определенной последовательности. Контроллер Ctrl-Amp 2 допускает следующие варианты подключения модулей:
- SPI Контроллера -> РГ Никитина -> Селектор
- SPI Контроллера -> РГ Никитина левый -> РГ Никитина правый -> Селектор
- SPI Контроллера -> Темброблок -> РГ Никитина -> Селектор
- SPI Контроллера -> Темброблок -> РГ Никитина левый -> РГ Никитина Правый -> Селектор
- SPI Контроллера -> РГ PGA 23xx -> Селектор
- SPI Контроллера -> Темброблок -> РГ PGA 23xx -> Селектор
Модуль селектора можно вообще не подключать к контроллеру и подавать сигнал на вход РГ. Работоспособность РГ и ТБ сохранится. Но при этом на экране он все равно будет отображаться. Остальные модули ( бп, защита, датчики температуры ) подключаются к своим разъёмам на плате контроллера.
Схема контроллера
Схема контроллера в некоторых деталях подобна первой версии. Устройство питается от не стабилизированного источника 12-8в и имеет на борту два стабилизатора — U1 на 5в для питания внешней периферии и подсветки экрана и U2 на 3.3в для микросхемы контроллера и экрана. Кроме того, предусмотрен вход для питания схемы часов от внешней батарейки. Без подключения батареи часы будут сбрасываться при каждом отключении питания.
Контроллер тактируется двумя кварцами — основной Q1 8мгц и часовой Q2. Так как STM32 не имеет своей энергонезависимой памяти, установлена внешняя память U5 c шиной I2C. К этой же шине подключен регистр U6 для работы с клавиатурой. Шина I2C с питанием 5В выведена на разъем X3 для подключения датчиков температуры и другой периферии.
Для работы индикатора уровня и анализатора спектра на разъем X13 подается аналоговый сигнал. После нормализации сигнал подается на входы АЦП контроллера. На основе данных, полученных от АЦП, реализуются функции индикатора уровня и анализатора спектра. Входы АЦП микроконтроллера U2 работают с сигналом в диапазоне 0-3.3в, поэтому аудио сигнал нужно привести к этому виду — усилить/ослабить до амплитуды 1.65в и добавить постоянную составляющую 1.65в. Для этого используется операционный усилитель U4. Чтобы обеспечить данные условия, ОУ должен быть Rail-to-Rail по входу и выходу и работать при питании 5в. Входной сигнал ограничивается резисторами R9,R10. Коэффициент усиления U5 определяется резисторами R11/R18 и R12/R19. Резисторы R13 и R14 обеспечивают необходимое смещение на 1.65в.
Индикация осуществляется с помощью цветного графического дисплея на базе контроллера ILI9341 с разрешением 320×240 и шиной SPI. Такие дисплеи достаточно доступны как по цене, так и по наличию и имеют диапазон диагоналей от 2.2 дюйма до 3.2 дюйма. Дисплей подключается к разъему X4. Контроллер дисплея ILI9341 позволяет управлять яркостью, но в известных мне и примененных в контроллере дисплейных модулях к сожалению цепи контроля подсветки не разведены их производителями. Поэтому яркость подсветки дисплея регулируется широтно-импульсной модуляцией, импульсы которой подаются на ногу включения подсветки дисплея. Tuch-screen и разъем для SD-карты на дисплейных модулях пока не используются.
Из за небольшого размера платы пришлось немного нарушить принцип обратной совместимости — на разъёме термодатчика пропал выход OS, и сам разъем остался один. Зато без этого вывода датчики LM75 можно соединять в одну общую шину, для чего одного разъема достаточно. Управление вентиляторами теперь приняла на себя прошивка и две ноги контроллера. Теперь активный уровень — 3в, а не ноль, как в первой версии. Поэтому для первой версии контроллера на Atmega была выпущена новая прошивка с подобными дополнениями.
Программирование контроллера осуществляется программаторами St-Link через разъем X11. USB на x9 и USART на X10 выведены на будущее и в данный момент не используются. Нога Boot0 c возможностью установки перемычки так же выведена на разъем X12 для возможности альтернативных вариантов прошивки контроллера.
Конструктив
Плата контроллера сделана под габариты дисплея 2.4 дюйма. Это дает возможность устанавливать контроллер на узкие лицевые панели высотой всего 5 см. Дисплей 2.2 дюйма тоже можно подключить к плате с помощью шлейфа. Дисплей 2.8-3.2 дюйма могут быть подключены непосредственно к разъему на плате, но их крепежные отверстия будут выходить за размер платы контроллера и потребуют для крепления дополнительных отверстий в корпусе.
Разъемы подключения прочей периферии при необходимости могут быть не угловыми и установлены с нижней стороны платы. Если необходимо минимизировать высоту бутерброда контроллер-экран, с платы экрана можно демонтировать разъем для карты SD и опустить экран до уровня разъемов.
Для настройки нормирующего усилителя АЦП на обратной стороне платы предусмотрены контрольные точки. На эти точки выведены выходы усилителя.
Плата контроллера получилась достаточно сложной, поэтому не макетировалась, а сразу была заказана на заводе. Несмотря на высокие требования по размерам дорожек и переходным отверстиям, удалось вписаться в нормы производства для прототипов известных фирм PCBWay и JLPcb. Все платы проекта в последнее время я заказываю у них, сроки изготовления и качество очень радуют. При доводке схемы и прошивки плата выдержала неоднократные перепайки микросхем и не пострадала.
Индикация и управление
Принципы управления и настройки Ctrl-Amp2 во многом подобны реализованным в первой версии. Основное отличие только в индикации и обработке ошибок. Поэтому кратко рассмотрим основные режимы и экраны. Более детальное описание будет сделано немного позже в виде руководства по сборке и настройке, аналогичного руководству к первой версии.
![]() |
В дежурном режиме экран либо выключен, либо отображает текущее время, если это указано в настройках. |
![]() |
При включении полностью отрисовывается экран и в зоне отображения изменяемых параметров линейкой показывается процесс мягкого старта, если это указано в настройках. |
![]() |
Далее индицируется процесс задержки включения акустики. По окончании этого процесса включается выбранный вход селектора, устанавливаются тембры, громкость и подключаются АС. В дальнейшем в процессе софт-старта и подключения АС хочу добавить возможность изменять вход и громкость. |
![]() |
После старта на экране отображается громкость и графический символ, показывающий весь диапазон регулировки и текущее состояние. Отображение часов и температуры отключается вместе с отключением данных функций в настройках. |
![]() |
По команде Mute устанавливается громкость, заданная в настройках для этого режима и снижается яркость цифр, которые по прежнему отображают нормальную громкость. В режиме Mute полностью сохраняется все управление — можно поменять вход, переключить АС, изменить громкость. При выходе из Mute громкость будет восстановлена на уровне, соответствующей цифрам на экране. |
![]() |
Вход в остальные регулировки звука осуществляется по нажатию на кнопку энкодера. После первого нажатия индикация громкости сменяется на индикацию баланса. Баланс, как и другие настройки, доступные по нажатию энкодера, выключаются после 10 секунд бездействия и экран возвращается к регулировке громкости. Как и при регулировке громкости, баланс отображается цифровым значением и картинкой, показывающей весь диапазон регулировки. В дальнейшем после баланса может появится аналогичная регулировка Фронт/Тыл. |
![]() |
Если после регулировки баланса снова нажать на энкодер, появляется возможность изменить регулировку НЧ. На данном экране показана регулировка ТБ Матюшкина. Но интерфейс прошивки уже готов к отображению настраиваемого диапазона от -X до +Х дб для других вариантов регуляторов тембра. |
![]() |
Следующее нажатие энкодера приводит нас к регулировке ВЧ. И вот они, любимые многим рога на эквалайзере 🙂 ! Естественно эти регулировки появляются только в случае присутствия в системе такой возможности в соответствии с настройкам конфигурации системы. Кроме того, баланс и тембры отображаются на экране сразу, как только пользователь подаст команду с пульта ДУ и так-же будут активны в течении 10 секунд. |
![]() |
Если в настройках включена заставка, через заданное в настройках время отображается анализатор спектра. При получении любой команды от кнопок, ДУ или экрана, возвращается индикация громкости. |
![]() |
Вход в меню настройки производится так-же, как в первом контроллере — длительным нажатием на кнопку включения в дежурном режиме. Выбор каждого пункта осуществляется нажатием кнопки энкодера. Выйти из режима настройки можно в любой момент нажатием на кнопку включения. |
![]() |
Пункты главного меню настройки раскрываются в подменю с конкретными параметрами и их значениями. В первой строке отображается название данной группы. Первый пункт каждого подменю — выход в главное меню настройки.
Для редактирования конкретного параметра, нужно его выбрать с помощью курсора поворотом энкодера и нажать на кнопку энкодера. |
![]() |
Переход в режим редактирования индицируется появлением стрелок справа и слева от значения параметра. Наличие стрелок влево/вправо показывает возможность уменьшить/увеличить параметр или наличие значения в списке значений при вращении влево/вправо. Для выбора значения необходимо вращать энкодер. После изменения параметра снова нажмите кнопку энкодера. |
![]() |
Некоторые пункты, типа яркости экрана или цвета текста позволяют сразу увидеть результат своих действий. Изменение часов и минут так-же сохраняется в данные часов в момент изменения. |
Проблемы с запуском шины I2C, описанные ниже, привели к тому, что у контроллера появилась развитая внутренняя диагностика и индикация ошибок. Обрабатываются внутренние ошибки — чтение термодатчиков, клавиатуры, памяти, и внешние — перегрев, постоянное напряжение на выходе. При возникновении любой ошибки АС отключаются и выключается сам УМ. Ошибка отображается на экране, пока не будет нажата кнопка включения. Далее контроллер переходит в дежурный режим и можно снова включить устройство. Но лучше конечно сначала разобраться с причиной ошибки.
В приведенных ниже экранах нет ошибки по памяти, так как проблемы c IC я решил и получить ее можно только демонтажем микросхемы. На экране с перегревом отсутствует информация о канале, так как в текущем сетапе использовался один датчик температуры. При подключении двух датчиков информация о канале отображается так же, как и при обнаружении постоянной составляющей на выходе.
![]() |
![]() |
![]() |
![]() |
![]() |
Защита АС
Недавно к проекту был добавлен еще один модуль — защита АС с возможностью коммутации и мониторинга состояния контроллером. При аварии усилителя и появлении постоянной составляющей контроллер выключает усилитель и индицирует канал с проблемой. Так же модули защиты могут работать автономно. Вместо контролера к управляющим входам может быть подключен обычный галечник для включения/выключения АС с лицевой панели. Защита срабатывает от 2B, питается от источника 12в. Уровни на управляющих входах 3В, что дает совместимость как со старым, так и новым контроллером.
Article2
Принцип работы. Так как для контроля состояния защиты мне нужны были четкие логические уровни 0 и 1 на затворах Q1, Q2, применен компаратор U2 TS321. Порог срабатывания компаратора задается резисторами R3, R4. При нормальной работе на выходе компаратора присутствует напряжение питания. Делителями R5, R6 и R7, R8 из него получается 3В, открывающее ключи Q1, Q2. При появлении постоянной составляющей, открывается транзистор оптрона U1, напряжение на прямом входе компаратора падает и на его выходе появляется четкий 0В, закрывающий ключи Q1, Q2. С2 обеспечивает задержку включения АС при автономном использовании. При необходимости можно уменьшить чувствительность увеличением резистора R1.
Управление. Контроллер для выключения АС подает на затворы Q1, Q2 0В. Для включения нужной АС контроллер переводит соответствующую ногу на вход и считывает состояние защиты. При срабатывании защиты контроллер видит на своем входе 0В, выключает все остальные АС и сам усилитель. При автономном использовании можно замыканием контактов А/В разъема X8 на землю выключать соответствующие АС. Так же на эти контакты можно повесить индикацию, если это необходимо.
Конструктив. Защита сделана на двух зеркальных платах, отдельно для каждого канала. Платы крепятся на выходные клеммы. Изначально разрабатывалась версия на две зоны АС A/B, чтобы использовать все возможности Ctrl-Amp. Версия с одной парой АС получается банальным обрезанием схемы и платы с ненужной парой. При применении SMD компонентов данная схема легко упаковывается в очень скромные габариты — 44×62 и 44×37 при стандартном расстоянии между клеммами 19мм. Дополнительно на платы защиты установлена катушка для компенсации емкости кабелей к АС. Катушка специально вынесена подальше от УМ, так как создает достаточно сильное магнитное поле, которое может добавить помех к работе усилителя.
Блок дежурного питания
Этого модуля давно не хватало в системе. Он позволяет запитать контроллер, защиту и плавно включить усилитель мощности. Кроме того, на плате предусмотрен фильтр от постоянной составляющей в сетевом напряжении, что очень полезно для тороидальных трансформаторов. Можно собрать три варианта дежурного БП:
- Классический Soft-start.
- Soft-start c использованием Термистора. Реле K1 и резисторы R1, R2 не устанавливаются, вместо резисторов устанавливается термитор. В настройках контроллера устанавливается нулевая задержка soft-start.
- Без Soft-start. Реле K2 и резисторы R1, R2 не устанавливаются. В настройках контроллера устанавливается нулевая задержка soft-start.
Это возможно благодаря прошивке, которая при установке задержки включает реле K1 и K2 последовательно, а при нулевой задержке включает оба реле одновременно. При включении реле К2 открываются ключи Q1 и Q2, подавая питание на платы защиты.
Данная схема вполне умещается на плату 75×75мм:
Грабли на пути к совершенству
Как оказалось, сам контроллер STM32 и его библиотеки CubeMX + HAL содержат неприятные ошибки. Когда что-то пишешь для него в первый раз, вся легкость в конфигурировании и использовании периферии превращается в ад. Если что-то работает не так, приходится все равно докапываться до самых основ, попутно разбираясь в чужом коде библиотек. Поэтому кратко опишу, с чем я столкнулся и как это решается. Надеюсь, таким же, начинающим, как я, это поможет:
I2C. Существенную задержку в реализацию проекта внесла работа аппаратной части I2C. Шина, прекрасно работавшая на макетной плате с длинными проводами и плохими контактами, отказалась работать в реализации на плате. Совершенно случайным образом она впадала в состояние BUSY. Поднятие ног микросхем SDA и SCL на плате, подключение их Dip-версий проводами на макете решало проблему, шина снова стартовала, а я терялся в догадках. Замена микросхем, уменьшение резисторов подтяжки, снижение частоты шины проблему не решали.
Погружение в тему показало, это известная проблема, описанная в Errata на чип. На ногах SDA и SCL контроллера предусмотрен не отключаемый аналоговый фильтр, который должен служить увеличению помехозащиты. Однако, при старте контроллера и инициализации периферии, он может приводить к зависанию шины в состоянии BUSY. Так же Errata предлагает метод решения, очень похожий на «постучать по колесам, похлопать дверями»:
- после инициализации I2C отключить шину
- перевести соответствующие ноги порта в режим выхода
- записать в них 1, 0, прочитать результат
- сбросить флаги и снова инициализировать шину
К счастью этот способ сработал, и удалось добиться надежной работы. Перевод рекомендаций Errata в код с использованием библиотек HAL выглядит следующим образом:
// Реинициализация I2C для сброса BUSY по Errata GPIO_InitTypeDef GPIO_InitStruct; I2C1->CR1 &= ~(I2C_CR1_PE); // Выключение I2C GPIO_InitStruct.Pin = I2C_SC_Pin|I2C_SD_Pin; // порты i2c на выход с открытым коллектором GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // HAL_GPIO_Init(I2C_Port, &GPIO_InitStruct); // GPIOB->ODR |= I2C_SC_Pin|I2C_SD_Pin; // set tо 1 GPIOB->ODR &= ~I2C_SD_Pin; // set SD tо 0 GPIOB->ODR &= ~I2C_SC_Pin; // set SC tо 0 GPIOB->ODR |= I2C_SC_Pin; // set SC tо 1 GPIOB->ODR |= I2C_SD_Pin; // set SD tо 1 // повторная инициализация ног для I2C GPIO_InitStruct.Pin = I2C_SC_Pin|I2C_SD_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); SET_BIT(RCC->APB1ENR, RCC_APB1ENR_I2C1EN); // тактирование i2c I2C1->CR1 |= I2C_CR1_SWRST; // сброс флагов I2C1->CR1 &= ~(I2C_CR1_SWRST); // сброс флагов I2C1->CR1 |= I2C_CR1_PE; // повторная инициализация I2C MX_I2C1_Init()
CubeMX и RTC. При конфигурировании часов в CubeMX, нет возможности отключить ногу PC13 от выхода часов, даже если она уже сконфигурирована на выход. В генерируемый Кубом код упорно прописывается ее связь с часами. Поэтому после каждой генерации кода Кубом, приходится в процедуре инициализации MX_RTC_Init исправлять одну строчку:
hrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE;
CubeMX и RTC 2. При инициализации тактирования от внешнего кварца и тактирования часов так же от внешнего кварца в библиотеках HAL, генерируемых для проекта Кубом, почему-то отсутствовало само включение тактирования. Поэтому после штатной инициализации необходимо все включить самостоятельно. В самой последней версии CubeMX это исправлено, но лучше об этом знать:
// Запуск RTC вручную вставить после RTC_INI if(!(*(volatile uint32_t *) (BDCR_RTCEN_BB)))__HAL_RCC_RTC_ENABLE();
Часовой кварц. Во первых, не каждый кварцевый резонатор подойдет. Использование самых доступных деталей из материнских плат может привести к разочарованию — емкость резонатора для часов должна быть 6пф. Но даже купленный кварц SP-T2A с нужной емкостью преподнес сюрприз — точка на корпусе вовсе не означает маркировку первой ноги, все с точностью до наоборот! Вот пример, как не надо припаивать подобные устройства:
Что дальше?
Как показал опыт первого контроллера, на этом все не закончится :). К сожалению я не успел реализовать все, что было задумано применительно к STM. Изучение STM оказалось несколько сложнее, чем Atmega, но при этом значительно интереснее! На текущий момент планы на будущее данного контроллера выглядят следующим образом:
- Добавить более красочную заставку анализатора спектра, возможно с настройками отображения, причесать графику
- Добавить поддержку четырех каналов и регулировку фронт-тыл
- Аттенюатор на каждый вход
- Научить контроллер работать с наиболее распространенными процессорами TDA74XX и PT232X. Конечно к качественному звуку это не имеет никакого отношения, но интересно сделать еще более универсальную и гибкую систему.
- Попробовать ловить клип на данных с АЦП и на основе этого не давать увеличивать громкость в этом случае
- Может добавить таймер на выключение и включение
- Разобраться с boot loader для обновления прошивки по USB
- Подключить по USART ESP8266 и попробовать сделать управление по сети и отказаться от экрана совсем 😀 !
Надеюсь, найду время на воплощение этих идей. Все новости по контроллеру, обновление прошивки, вопросы и ответы ищите в ветке форума по Ctrl-Amp.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот | |
---|---|---|---|---|---|---|---|
Контроллер | |||||||
U1 | Линейный регулятор | L7805AB | 1 | TO-252 | |||
U2 | МК STM32 | STM32F103C8 | 1 | LQFP-48 | |||
U3 | Линейный регулятор | AMS1117-3.3 | 1 | SOT-23 | |||
U4 | Операционный усилитель | LMC6482 | 1 | SO-8 | |||
U5 | EEPROM | AT24C02 I2C 2Кбит | 1 | SO-8 | |||
U6 | ИС I2C интерфейса | PCF8574A | 1 | SOP-16 | |||
T1, T2 | Биполярный транзистор | MMBT3904 | 2 | SOT23 | |||
D1 | Диод Шоттки | SS14 | 1 | SMA | |||
PH1 | ИК-приемик | TL1838 | 1 | ||||
C1, C5, C13, C14, C15, C16 | Конденсатор | 0.1 мкф | 6 | 1206 | |||
C2, C3, C4, C7, C12 | Конденсатор | 10 мкф | 5 | 1206 | |||
C8, C9, C10, C11 | Конденсатор | 22 пф | 4 | 1206 | |||
Q1 | Кварц | 32.768 кГц 6пф | 1 | ||||
Q2 | Кварц | 8 мГц | 1 | HC49 | |||
R1, R2, R11, R12, R20, R21 | Резистор | 4.7 кОм | 6 | 1206 | |||
R3, R4, R13, R14, R18, R19 | Резистор | 10 кОм | 6 | 1206 | |||
R5 | Резистор | 470 Ом | 1 | 1206 | |||
R6 | Резистор | 1.5 кОм | 1 | 1206 | |||
R7, R8 | Резистор | 22 Ом | 2 | 1206 | |||
R15 | Резистор | 20 кОм | 1 | 1206 | |||
R16 | Резистор | 100 Ом | 1 | 1206 | |||
R17 | Резистор | 1 мом | 1 | 1206 | |||
R9, R10 | Подстроечный резистор | 50 кОм | 2 | 3266 | |||
X1, X3, X8 | Разъем | S4B-XH-A | 3 | Вилка на плату угловая XH 2.5мм 4 контакта | |||
X2, X6 | Разъем | S5B-XH-A | 2 | Вилка на плату угловая XH 2.5мм 5 контактов | |||
X4, X5, X13 | Разъем | S3B-XH-A | 3 | Вилка на плату угловая XH 2.5мм 3 контакта | |||
X7 | Разъем | PLS-9R | 1 | Вилка угловая 9 контакторв | |||
X9 | Разъем | PLD-4 | 1 | Вилка 4 контакта | |||
X10, X12 | Разъем | PLS-3 | 2 | Вилка 3 контакта | |||
X11 | Разъем | PLS-4 | 1 | Вилка 4 контакта | |||
X14 | Разъем | PBS-14 | 1 | Гнездо 14 контактов | |||
Защита | |||||||
U1, U3 | Оптопара | PC814 | 2 | DIP-8 | |||
U2, U4 | Операционный усилитель | LM321 | 2 | SOT-23-5 | |||
Q1, Q2, Q3, Q4 | MOSFET-транзистор | MMBF170 | 4 | SOT-223 | |||
D1, D2, D3, D4 | Выпрямительный диод | PMLL4148L | 4 | MiniMelf | |||
C1, C3 | Электролитический конденсатор | 47мкф NP | 2 | ||||
C2, C4 | Электролитический конденсатор | 4.7мкф | 2 | ||||
R1, R4, R9, R12, R6, R8, R14, R16 | Резистор | 10 кОм | 8 | 1206 | |||
R2, R10 | Резистор | 100 кОм | 2 | 1206 | |||
R3, R11 | Резистор | 1 кОм | 2 | 1206 | |||
R5, R7, R13, R15 | Резистор | 24 кОм | 4 | 1206 | |||
X7, X15 | Разъем | B2B-XH-A | 2 | Вилка на плату XH 2.5мм 2 контакта | |||
X8, X16 | Разъем | B3B-XH-A | 2 | Вилка на плату XH 2.5мм 3 контакта | |||
X5, X6, X13, X14 | Разъем | Вилка 6.3мм | 4 | ||||
X1, X3, X9, X11 | Разъем | Терминал Banana Красный | 4 | Резьба 5мм | |||
X2, X4, X10, X12 | Разъем | Терминал Banana Черный | 4 | Резьба 5мм | |||
K1, K2, K3, K4 | Реле | SMIH-12VDC-SL-C | 4 | ||||
Дежурный БП | |||||||
Q1, Q2 | Биполярный транзистор | BC807 | 2 | SOT23 | |||
D1 | Выпрямительный диод | STTH2003 | 1 | D2-PAC | |||
D2, D3, D4, D5 | Диод Шоттки | SS14 | 4 | SMA | |||
D6, D7 | Выпрямительный диод | PMLL4148L | 2 | MiniMelf | |||
R1, R2 | Резистор | 68 Ом | 1 | SQP 5W | |||
R3, R4, R5, R6, R7 | Резистор | 470 Ом | 5 | 1206 | |||
R8, R10, R9, R11 | Резистор | 4.7 кОм | 4 | 1206 | |||
C1 | Конденсатор | 100 нф | 1 | MKP X2 | |||
C2 | Конденсатор | 220 нф | 1 | MKP X2 | |||
C3, C4 | Конденсатор | 10000 мкф | 2 | 16мм | |||
C7 | Конденсатор | 4700 мкф | 1 | 16мм | |||
C5, C6 | Конденсатор | 100 нф | 2 | 1206 | |||
K1, K2 | Реле | 835-1A-B-C | 2 | ||||
L1 | Синфазный дроссель | PLY10 | 1 | ||||
T1 | Трансформатор | ТП-132 | 1 | ||||
X1, X2, X3 | Разъем | DS1072-3M | 3 | Вилка на плату 3.96мм | |||
X4, X5 | Разъем | B2B-XH-A | 2 | Вилка на плату XH 2.5мм 2 контакта | |||
X6 | Разъем | B4B-XH-A | 1 | Вилка на плату XH 2.5мм 4 контакта | |||