Адаптер USB+COAX+OPT to I2S c блоком индикации на Ардуино Нано — audiohobby.ru
Благодаря Андрею собрал ЦАП AH-D6 и Усь Василича. Огромное ему спасибо за качественные и продуманные платы, и статьи с подробным описанием.
Добавил к усилителю управление по проекту Ctrl-Amp. Звуком доволен. Однако захотелось добавить на плату адаптера приёмник АК4113, что-бы для достойного ЦАПа расширить кол-во используемых входных сигналов. Потом захотелось управлять входами и фильтрами ЦАПа с пульта. Потом захотелось добавить OLEDы 2004 на ЦАП и Усь. Были изготовлены: плата адаптера, для ЦАПа плата дисплея на Ардуино Нано и плата дежурного режима. Изначально все 3 платы были изготовлены ЛУТом. Позже платы Адаптера и Дисплея сделал двухслойными. Ручного управления на ЦАПе не предусмотрено, управление только с пульта. В итоге имеем:
— отображение на дисплее — на каком чипе собран ЦАП: АК4399 — 4499
— отображение частоты дискретизации любого входного сигнала. Когда на выбранном входе нет сигнала на дисплее отображается Standbay.
— 3 переключаемых с пульта входа; USB, COAX, OPT с отображением подключенного входа на дисплее.
— переключение 4 фильтров ЦАПа с пульта с отображением выбранного фильтра на дисплее.
Прошивка в приватном вложении. Ссылка на заказ плат в Китае в конце статьи. Готовые изделия в корпусах выглядят так:
Схема Адаптера V3.1
Разъёмы JP3 I2S, JP4 Config, JP2 Indicator
Распиновка такая-же как на разъёмах адаптера Андрея, только зеркальная, разъёмы угловые с обратной стороны, на дисплей выводятся только F0-F3.
Разъём JP5 — Управление
Входы переключаются с платы Дисплея, подачей «0» на соответствующий вход разъёма JP5.
При «0» на входе SPIDIF через оптрон U3 сигнал Mute с приёмника передаётся на ЦАП, через оптрон U4 ЦАП переводится в режим Slave, через оптрон U5 включается буфер-переключатель U2 и передаётся сигнал I2S с АК4113 на ЦАП.
При «0» на входе USB выключаются оптроны U3-U5, через оптроны U8-U9 включается изолятор U10 и передаётся сигнал I2S с Аманерки на ЦАП. Через оптроны U15, U16 с АК4113 на плату Дисплея выводятся сигналы Mute и 96kHz. БП 3.3v на плате можно не распаивать. Плата потребляет не больше 60 мА и запросто может питаться от стабилизатора распаянного на плате ЦАПа, который способен на 150мА. В этом случае нужно воспользоваться перемычкой Р7.
Разъём под Аманеро с загнутыми ножками можно использовать стандартный если удастся найти, а можно загнуть и немного укоротить выводы разъёма с прямыми ножками. На плате держится очень крепко.
Плата Адаптера
Схема платы Дисплея V3.1
Платки Ардуино Нано и адаптера c I2C на дисплей 2004 стандартные. Их можно приобрести на Алиэкспресс. На дисплее, помимо состояния входного сигнала USB:
отображаются 3 состояния входного сигнала SPIDIF: Standby, 44,1kHz, 96kHz.
С помощью кнопки включения можно менять название чипа ЦАПа АК4399 — 4499, а также привязать три любых кнопки абсолютно любого пульта ДУ к управлению: 1) вкл./выкл дежурного режима. 2) переключение фильтров по кругу. 3) переключение входов по кругу. Включение и программирование осуществляется разными длительностями нажатия на кнопку включения.
При подаче напряжения на блок ДУ:
— загорается в полнакала светодиод кнопки включения.
— в течении 5сек. на дисплее появляется заставка, после чего дисплей выключается (дежурный режим).
— при коротком нажатии на кнопку включения срабатывает реле R1 на плате ДУ, АС напряжение подаётся на блок питания ЦАПа — ЦАП включается, светодиод в кнопке загорается в полный накал, на дисплее отображается текущая информация (рабочий режим).
— повторное короткое нажатие — выключает дисплей и ЦАП (дежурный режим).
— из дежурного режима, при очень длинном нажатии (4сек) — происходит переход в меню запоминания кнопок пульта ДУ и чипа ЦАПа.
— передвижение по строчкам меню — короткое нажатие
— перебор чипов ЦАПа в меню — длинное нажатие (2 сек.)
— после записи чипа ЦАПа и кнопок ДУ, выход из меню — очень длинное нажатие (4 сек.)
— короткое нажатие — рабочий режим.
Разъёмы:
Разъём Н1 Вход кода с АК4113.
Разъём Н2 Вход кода от Аманеро.
Разъём Н3 Включение основного и дополнительного реле ДР.
Разъём Н5 Переключение входов адаптера.
Разъём Н7 Переключение фильтров ЦАПа.
Разъём Н9 Кнопка вкл\выкл ДР.
Плата Дисплея
На фото V3.0. Для заказа в Китае доступна V3.1 подправленная.
Схема ДР V.1
12V реле подключены после моста. От 5V питается плата Дисплея. R1,D3 и R2,D4 нужны для изменения яркости свечения круглого светодиода в кнопке включения в рабочем и дежурном режимах.
Плата ДР
В корпусе
Заказ плат в Китае.
Adapter SPIDIF+USB to I2S V3.1
Display Board V3.1
Многопороговый компаратор на ардуино | AlexGyver Community
polyakov
✩✩✩✩✩✩✩
- #1
Требуется исполнитель : Кто умеет писать скетчи, поймёт задание и которого устроит оплата в гривнах, так как не знаю как там с конвертацией в другие валюты, но если есть конвертация то без разницы.
Надо изготовить : Нужно написать скетч к ардуино, или если она не потянет то к чему то другому, (ардуино нано у меня есть). Ещё у меня есть STM32F103C8T6, но залить скетч от ардуино я не смог, STMFlashLoader Demo на компьютере выдавал какую то ошибку.
Планируемый бюджет : договорная.
Сроки : хотелось бы за недельку.
Оплата : На карту.
Для связи : личные сообщения.
Высокоскоростной многопороговый компаратор.
В дальнейшем возможно усложнение проекта, так как пока определяюсь с ним.
На вход ардуино подаётся аналоговый сигнал, синус или музыка, нужно этот сигнал разбить на срабатывания ардуино по амплитуде сигнала.
Компаратор напряжения на ардуино много пороговый, чтобы это можно было выставить кнопками, например двух пороговый, трёх пороговый, — двадцати пороговый и т.д. На выходе ардуино нужно получить кратковременные выбросы напряжения которые можно настроить как по длительности, или продолжительности например сработал компаратор и импульс длится например от одной наносекунды до миллисекунд, чтобы этот параметр можно было выставить как программно так и кнопками, или резистором, или энкодером. А также время выходного импульса можно задать порогом напряжения, допустим срабатывание порога настроено на 0.
И если у меня появится ЦАП типа MCP4921, чтобы я мог подключить его к ардуино и увидеть ступенчатый сигнал — каждая ступень где это срабатывания компаратора.
Число ступенек зависит от изменения сигнала по амплитуде. Если скетчи не совпадают без ЦАП и с ЦАП MCP4921, пусть это будет два скетча, возможно они будут немного отличаться.
А это я сделал сам, и увидел на своём осциллографе, у вас должно примерно такое же получиться если с ЦАП MCP4921 ( длительность ступенек по времени на разных частотах будет разной), а если без, то только короткие импульсы с ардуино. У меня тут ступеньки идут по времени, через одинаковый промежуток времени, а мне нужны по амплитуде.
Изменено:
Войдите или зарегистрируйтесь для ответа.
Поделиться:
WhatsApp Электронная почта Ссылка
Innoesys 4 DAC Shield для Arduino
DEVO-4DAC+ — это плата Arduino Shield, основанная на 12-разрядном четырехканальном ЦАП MCP4728 от Microchip и обеспечивающая четыре аналоговых буферизованных или небуферизованных выхода. Каждый выход способен обеспечить 15 мА при работе без выходного буфера или 40 мА при работе с буферной схемой. Каждый выход может быть отдельно настроен для работы в буферизованном или небуферизованном состоянии, при этом коэффициент усиления по напряжению устанавливается с помощью соответствующего потенциометра от 1 до 11. Выходной буфер представляет собой усилитель напряжения с внешним источником питания до 26 В. Максимально достижимое выходное напряжение усилителя Внешнее питание – 1,5В.
Для одного канала выходное напряжение (Vdac) подается на ЦАП с шагом ≈1,22 мВ (максимальное выходное напряжение ЦАП 5,0 В). Vdac можно усилить с помощью встроенного усилителя напряжения, выбрав требуемый коэффициент усиления по напряжению (Gain) и подключив требуемый внешний источник питания. Обратите внимание, что выход усилителя (Vamp) может достигать напряжения Vext минус 1,5В (Vext – 1,5В). Например, если желаемое выходное напряжение находится в диапазоне от 0 В до 12 В, Vext следует установить на 13,5 В (12 В + 1,5 В), а коэффициент усиления должен быть установлен на 2,4 с помощью встроенного потенциометра. В данном конкретном примере шаг выходного напряжения составляет ≈2,93 мВ. Пользователь может выбрать, какое выходное напряжение (Vdac или Vamp) направляется на фактические выходные клеммы платы с помощью встроенных перемычек. Некоторые полезные уравнения для выходных напряжений приведены ниже.
DEVO-4DAC+ управляется по шине I2C в соответствии с командами ЦАП MCP4728, которые отправляются с выводов SCL и SDA по умолчанию на плате Arduino. Выходные напряжения направляются на стандартные клеммные колодки 3,81 мм вместе с блоком питания усилителя. Он предоставляет дополнительные контакты конфигурации для настройки параметров платы, как будет описано в следующем разделе.
Описание распиновки DEVO-4DAC+:
Контакт | 2Расположение 6 | Направление | Обязательно | Описание | |
5В | Коллектор | Питание | ДА | 9002||
Земля | Разъем | Питание | ДА | ||
SCL | Заголовок | Вход | ДА | Тактовый сигнал шины I2C | |
SDA | Заголовок | Вход/выход 00026 | ДА | Сигнал данных шины I2C | |
PB0 | Заголовок 3 | 6 3 | ДОПОЛНИТЕЛЬНО | Контакт цифрового выхода | |
PB1 | Заголовок | Выход | ДОПОЛНИТЕЛЬНО | Контакт цифрового выхода | |
90 | 0003 | Заголовок | Вход | ДОПОЛНИТЕЛЬНО | Сигнал LDAC MCP4728 102003 | 3Заголовок | Выход | ДОПОЛНИТЕЛЬНО | RDY сигнал MCP4728 |
A0 – A3 | Заголовок | Выход | ОПЦИЯ0003 | Аналоговые выходные контакты | |
OUT1 | Клемма | Выход 2 OPTION | |||
Выходное напряжение канала 1 | |||||
OUT2 | Клемма | Выход | ДОПОЛНИТЕЛЬНО | Выходное напряжение канала 2 | |
OUT3 | Терминал | Выход | ДОПОЛНИТЕЛЬНО | Канал 3 выходное напряжение 9020 | Терминал | Выход | ДОПОЛНИТЕЛЬНО | Канал 4 выходное напряжение |
VEXT | Терминал | Питание | ДОПОЛНИТЕЛЬНО | Блок питания усилителя напряжения | |
Земля | Клемма | Питание 2 OPTION | |||
Масса усилителя напряжения |
DEVO-4DAC+ для работы требуются сигналы источника питания и сигналы шины I2C. Остальные контакты являются необязательными в том смысле, что они используются в зависимости от требований конечного приложения.
· Контакты 5V и GND (заголовок)
Контакты питания для экрана DEVO-4DAC+. Вывод 5V напрямую подключен к MCP4728, поэтому следует соблюдать осторожность при подаче питания, чтобы не превысить максимальное напряжение питания (5V) MCP4728.
· Контакты SCL и SDA
Сигналы шины I2C, которые напрямую подключены к ИС MCP4728.
· Контакты PB0 и PB1
Контакты PB0, PB1 могут использоваться для целей тестирования и подключаются к встроенному светодиоду через 3-контактную перемычку.
· Контакт PB2 (LDAC)
Контакт PB2 подключен к сигналу LDAC MCP4728. LDAC используется для передачи содержимого входных регистров в соответствующие выходные регистры ЦАП и для выбора интересующего устройства при чтении или записи битов адреса I2C. Когда логическое состояние вывода LDAC изменяется с «High» на «Low», содержимое всех входных регистров (каналы 1–4) передается на соответствующие им выходы, и все аналоговые выходы напряжения обновляются одновременно. Если этот вывод постоянно привязан к «Low», содержимое входного регистра передается на его выход (OUTx) сразу после импульса подтверждения последнего входного байта данных. Для получения дополнительной информации о контакте LDAC и обновлении выходных напряжений обратитесь к техническому описанию MCP4728.
· Контакт PB3 (RDY)
Контакт PB3 подключен к сигналу RDY MCP4728. Этот контакт является индикатором состояния активности программирования EEPROM. Этот контакт имеет «высокий уровень», когда EEPROM не выполняет программирование, и «низкий», когда EEPROM находится в режиме программирования. Он становится «высоким», когда программа EEPROM завершена.
· Контакты A0–A3
Эти контакты можно использовать для целей отладки, если они сконфигурированы как аналоговые входы на плате Arduino. Выводы подключены через перемычки к выходным каналам MCP4728.
· Контакт клеммы OUT1
Контакт клеммы выходного напряжения канала 1. Он направляется либо на выход усилителя, либо непосредственно на выход канала 1 MCP4728 с помощью 3-контактной перемычки.
· Контакт клеммы OUT2
Контакт клеммы выходного напряжения канала 2. Он направляется либо на выход усилителя, либо непосредственно на выход канала 2 MCP4728 с помощью 3-контактной перемычки.
· Контакт клеммы OUT3
Контакт клеммы выходного напряжения канала 3. Он направляется либо на выход усилителя, либо непосредственно на выход канала 3 MCP4728 с помощью 3-контактной перемычки.
· Контакт клеммы OUT4
Контакт клеммы выходного напряжения канала 4. Он направляется либо на выход усилителя, либо непосредственно на выход канала 4 MCP4728 с помощью 3-контактной перемычки.
· Контакт клеммы VEXT
(Внешний) источник питания для усилителя напряжения, когда требуется усиление выходных сигналов MCP4528. Этот контакт должен быть подключен к источнику напряжения от 3В до 26В. Обратите внимание, что максимальное выходное напряжение усилителя равно Vext – 1,5 В .
· Штырь клеммы GND
Заземление для усилителя напряжения.
DEVO-4DAC+ предоставляет различные параметры конфигурации, которые могут быть установлены в зависимости от требований приложения. Имеются конфигурации для выходных клемм, встроенного светодиода и петлевых выходных соединений ЦАП. Единственная необходимая конфигурация при подключении выходных клемм. Остальные конфигурации опциональны.
· Конфигурации выходных клемм
Существует одна конфигурация для каждого выходного канала, которая выполняется с помощью перемычки. Конфигурация устанавливает выходное соединение одного канала с выходом усиленного напряжения или с выходом ЦАП. Рис. 3 описывает конфигурации для четырех каналов в версиях с усилением и без усиления. Для версии с усилителем перемычка должна быть установлена в положение AMP, а для конфигурации без усиления перемычка должна быть установлена в положение NAMP.
· Конфигурация цифрового выхода (PB0 и PB1)
С помощью одной перемычки (P5) пользователь может использовать встроенный светодиод для целей тестирования, подключив его к контакту PB0 или PB1 платы Arduino.
С помощью одной перемычки для каждого канала пользователь может направить выходы MCP4728 на аналоговые входы A0–A3 платы Arduino. В таблице ниже описаны соединения для каждого канала. Обратите внимание, что к этим контактам подключены выходы ЦАП, а не версии с усилителем. На рис. 5 показано расположение перемычки для подключения выхода канала 1 (выход ЦАП) к аналоговому входу A0 Arduino.
Перемычка | Канал | Аналоговый вход 6666 6 |
OUT1 | 1 | A0 |
OUT2 | 2 | А1 |
ВЫХ3 | 3 | А|
OUT4 | 4 | A3 |
Требуется бортовое напряжение на выходе усилителя MCP 4728.
Для платы Arduino существует много ресурсов для микросхемы MCP4728:
http://forum.arduino.cc/index.php?topic=51842.0
Все размеры указаны в мм.
· 4 канала без усиления
· 4 канала с усилением и максимальным выходным напряжением 12 В 9001 0003
· Каналы 1 и 2 без усиления и каналы 3 и 4 с усилением и максимальным выходным напряжением 24В
• • 2 мин чтения
Здесь мы демонстрируем, как генерировать синусоиду с помощью ЦАП Arduino Due с Simulink и RC Low Pass Filter . Мы будем использовать Simulink для генерации сигнала ЦАП от Arduino Due. Затем это фильтруется фильтром нижних частот с использованием RC LPF 1-го порядка, RC LPF 2-го порядка и RC LPF 3-го порядка. Мы увидим, что по мере увеличения порядка фильтра форма сигнала становится лучше, но амплитуда сигнала ослабевает. Затем отфильтрованный сигнал от фильтра нижних частот захватывается с помощью Arduino Uno ADC (аналого-цифровой преобразователь) и с помощью Simulink захваченная форма волны отображается на временной шкале.
Что вы можете узнать здесь:
— как генерировать синусоиду с помощью ЦАП Arduino Due
— как создать простой RC фильтр нижних частот
— как использовать АЦП Arduino
— как использовать Simulink
— Влияние возрастания порядка пассивного RC-фильтра
— Влияние частоты дискретизации
Аппаратная конфигурация и моделирование Simulink
Аппаратная настройка
Проиллюстрирован общий процесс генерации сигнала ЦАП с платы Arduino Due, фильтрация с использованием RC-фильтра для получения синусоидальной волны и захват сигнала с помощью АЦП Arduino Uno. ниже.
На рисунке выше RC-фильтр нижних частот представляет собой трехступенчатый фильтр нижних частот, в котором емкость каждого конденсатора составляет 113 нФ, а сопротивление каждого резистора — 12 кОм. Это дает частоту среза 117 Гц.
Настройка модели SimulinkОбщая модель Simulink, которая генерирует сигнал ЦАП с помощью Arduino Due и захватывает аналоговый сигнал с помощью Arduino Uno, показана ниже.
Примечание:
Во время этой демонстрации необходимо переключить аппаратную плату на Arduino Due или Arduino Uno в модели Simulink. Это продемонстрировано на видео, представленном ниже.
Демонстрация видео
На видео ниже показано, как настроить Simulink для загрузки кода в Arduino Due и Arduino Uno, как выглядит обработка и фильтрация сигналов.
Синусоидальный сигнал ЦАП
Как показано ниже, мы генерируем синусоидальный сигнал на ЦАП0 платы Arduino Due с помощью генератора синусоидального сигнала. Генератор синусоидального сигнала сконфигурирован для генерации синусоидального сигнала с частотой 100 Гц при частоте дискретизации 1 кГц, что соответствует времени дискретизации 1/1000 или 0,001 секунды. Амплитуда установлена на 1. Мы используем блок преобразования типа данных, чтобы преобразовать тип данных сигнала, сгенерированный синусоидой, в uint16, потому что блок DAC0 принимает тип данных uint16.
RC Конструкция фильтра нижних частот
Выход DAC0 представляет собой сигнал с амплитудой 1 В и частотой 100 Гц. Нам нужно отфильтровать этот сигнал, чтобы получить гладкий синусоидальный сигнал. Уравнение частоты среза для RC-фильтра нижних частот имеет вид . Для этого мы использовали резистор номиналом 12 кОм и конденсатор номиналом 113 нФ.
Разработанный RC-фильтр нижних частот 3-го порядка на макетной плате показан ниже.
АЦП для захвата отфильтрованного сигнала
После фильтрации сигнала с помощью RC-фильтра мы используем Arduino Uno для захвата сигнала с помощью его АЦП. 10-1).
ResultИспользуя блок временной области, мы можем просмотреть захваченный сигнал. На рисунке ниже показан результирующий сигнал на временной шкале.
Другие результаты
Ниже показаны некоторые результирующие сигналы, полученные с использованием RC-фильтра 1-го, 2-го и 3-го порядка, а также с различными частотами дискретизации.
RC фильтр 1-го порядка
RC LPF 1-го порядка на макетной плате показан ниже.
RC-фильтр 1-го порядка Синусоидальный сигнал с частотой дискретизации 1 кГц показан ниже.
Как вы можете видеть, синусоидальная волна 1-го порядка, отфильтрованная RC, имеет амплитуду около 1,6 В. Синусоида не такая гладкая.
RC-фильтр 2-го порядка
RC LPF 2-го порядка на макетной плате показан ниже.
RC-фильтр 2-го порядка Синусоидальный сигнал с частотой дискретизации 1 кГц
Как видите, RC-фильтр 2-го порядка уменьшает амплитуду сильнее, чем фильтр 1-го порядка. Амплитуда в этом случае составляет около 1,6 В. Но форма волны синусоиды более гладкая, чем от фильтра 1-го порядка.
RC-фильтр 3-го порядка
RC LPF 3-го порядка на макетной плате показан ниже.
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 1 кГц
Как видно, RC-фильтр 3-го порядка дает гораздо более плавную синусоиду
но амплитуда уменьшается по мере увеличения порядка фильтра. Здесь амплитуда составляет около 0,7 В.
RC-фильтр нижних частот 3-го порядка с переменной частотой дискретизации
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 1,2 кГц
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 1,3 кГц
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 1,4 кГц
9
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 1,5 кГц
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 1,7 кГц
RC-фильтр 3-го порядка Синусоидальный сигнал с частотой дискретизации 2 кГц
Резюме и заключение
Мы показали, как генерировать синусоидальный сигнал частотой 100 Гц с помощью Arduino Due DAC (цифро-аналоговый преобразователь) и RC-фильтра нижних частот.