Raspberry pi подключение usb цап

Обновлено: 04.07.2024

У кого из нас нет добротной техники из прошлого, которая работает так, как и не снилось множеству ширпотребных вещей из настоящего. Старые усилители, проигрыватели пластинок и радиолы. Да, было время, когда не умели делать хрупко и недолговечно в погоне за дешевизной. Эти вещи еще проработают долго. И звучание какого-нибудь старого усилителя будет радовать и нас и наших детей.

Правда, в них отсутствует много всяких цифровых штучек. Разные flac и тому подобные форматы. Управление проигрыванием, музыкой и фильмами через телефон или компьютер. Возможность запустить музыку с Youtube, Last.fm или выбрать интернет радио. Удаленное проигрывание медиа через DLNA. Или просто возможность подключить ваш компьютер через Bluetooth и выводить весь звук через большие колонки. Или что там еще напридумывают нам в будущем для облегчения нашей аудиофильской жизни.

Но что нам мешает использовать все эти технологии в старой технике? Да и почему обязательно в старой… У вас есть RCA, miniJack 3.5 или S/PDIF разъем на вашей магнитоле? Тогда мы идем к вам и … И делаем из старого усилителя многофункциональный медиа сервер с помощью Raspberry Pi. Подключаем нашу Raspberry Pi через RCA и обновляем нашу технику до "острия технологической атаки". Не обязательно использовать RCA. Найдите аналоговый или цифровой вход на своей технике и выберите нужную комплектацию вашей Raspberry Pi. Я буду рассматривать вопрос сугубо с практической точки зрения. Как настроить все быстро на Raspberry Pi? Ведь статей профессионалов об особенностях работы той или иной технологии достаточно, чтобы не останавливаться на этом. Я возьму в качестве примера Raspberry Pi и плату для цифровой обработки звука на основе чипа PCM 5102 A.


Существует множество различных вариантов музыкальных DAC систем на любой вкус и цвет. Выбор — только за вами. Вот некоторые из них для Raspberry Pi. DAC — на русском ЦАП — цифро-аналоговый преобразователь. Я возьму один из самых недорогих аналогов данного устройства. Судя по различным отзывам на веб просторах, очень даже неплохо себя зарекомендовавшую PCM 5102 A . На ней 6 контактов, и мы с легкостью подключим ее к нашей Raspberry Pi через GPIO разъем. Причем, подойдет любая серия нашей Малинки. Ведь для проигрывания музыки производственных мощностей хватит и самой младшей из них — Raspberry Pi Zero. Хотя, без точных входных данных для любой поставленной задачи перед нашей Raspberry Pi, все относительно. И подобное утверждение является оценочным мнением автора. Далее для подключения к GPIO нашей платы используем следующую схему:

И нам потребуется подключить драйвер устройства в config.txt :

sudo nano /boot/config.txt

Перезагрузимся у убедимся, что в журналах ядра все ок:

dmesg |grep hifi

И посмотрим нашу карточку через листинг доступных устройств alsa:

Если что-то пошло не так, включаем режим отладки:

sudo nano /boot/config.txt dtdebug=1

И смотрим, что происходит:

sudo dmesg sudo vcdbg log msg

И, по идее, запустив плеер, допустим, mplayer с каким-нибудь mp3, можно услышать музыку через канал на вашей аппаратуре, к которой вы подключились.

Подключаем Bluetooth

Технология Bluetooth не устаревает и активно развивается. Bluetooth передатчики постоянно обновляют версию. Слушать музыку через нее в HiEnd качестве можно. Она рождена для использования радио канала с большой загруженностью радио эфира. Это немаловажно при использовании ее в городе для передачи медиа контента. Правда, при использовании встроенного передатчика… на Малинке не все гладко. И помехи при прослушивании музыки через нее могут быть слышны. Как вариант — использовать внешнюю USB Bluetooth антенну. Она позволит избежать потерь, что, в общем-то, — отдельная тема, требующая изучения. И тем не менее, достаточно просто и быстро через Bluetooth пробрасывать звук. Скажем, с компьютера на Raspberry Pi и далее — через усилитель на колонки. Или с телефона подключаться в Raspberry и слушать музыку. Поэтому, запускаем Bluetooth на Малине. Для запуска нам понадобятся три компонента…

Это не обязательный набор, но, как показала практика, все три компонента позволяют быстро и прозрачно запускать Bluetooth на Raspberry Pi. В результате, мы должны получить три работающие службы:

Первая используется как серверная часть, Bt-agent как блютуз клиент для обработки входящих запросов по авторизации. Это удобно для автоматизации процессов подключения без заморочек ручного подключения к нашему каналу. И pulse аудио как сервер, обрабатывающий звук, и как прозрачная прослойка для автоматического перенаправления его между устройствами. Установим необходимые пакеты: sudo apt-get install pulseaudio pulseaudio-module-bluetooth bluez-tools

Bключим в группы pulse-access bluetooth пользователя pi:

sudo usermod -a -G bluetooth pi

sudo usermod -a -G pulse-access pi

sudo adduser pi pulse-access

Запускаем при старте аудио сервер pulseaudio:

systemctl --user enable pulseaudio

Для работы нашей Малины в режиме блютуз с постоянным обнаружением и с профилем A2DP приемника поправим конфигурацию:

sudo nano /etc/bluetooth/main.conf

Стандарт позволяет передавать звук стереосигналом и с определенными кодеками сжатия звука и согласованными параметрами по битрейту и частотой дискретизации. Класс устройства наглядно описан тут.

И в соответствии с этим ресурсом соответствует параметрам:

Major Device Class -> Audio/Video

Minor device class -> Portable Audio

Это те параметры, которые будут видны сканирующему Bluetooth устройству, чтобы разобраться, какие сервисы доступны через это устройство. В общем, можно не заморачиваться этими параметрами и выставить, например, Что просто будет соответствовать большему количеству сервисов. Если вас вдруг не устраивает звук, тогда переходим к настройкам звука pulseaudio:

sudo nano /etc/pulse/daemon.conf

и смотрим "основные" настройки типа:

В качестве мануала по pulseaudio есть неплохой ресурс.

Кто-то рекомендует resample-metod=ffmpeg или resample-metod=speex-float-9, решать вам, если услышите разницу. Выставляем нужные параметры и убираем ";" чтобы раскомментировать строчку.

После изменений перезапускаем pulseaudio:

pulseaudio -k && pulseaudio --start

И не забываем посмотреть, сколько процессорного времени отъест pulseaudio при ваших Hi-Fi настройках:

По загрузке процессора 3-ей Raspberry Pi с использованием ЦАП (DAC) аудио платы на основе микросхемы PCM5102 файл flac 24bit читается с загрузкой около :

10-15% для resample-metod=speex-float-1

30% для resample-metod=ffmpeg

60% для resample-metod=speex-float-9

Ну и напоследок, посмотрим теперь в сторону передачи звука через WiFi с помощью технологии DLNA.

MiniDLNA сервер

Если на вашей Raspberry Pi находится медиа сервер, то для того чтобы ваша коллекция музыки была видна на других устройствах, поддерживающих DLNA, вам необходимо установить DLNA server. Здесь все просто: sudo apt-get install minidlna. Рекомендую ознакомиться с возможностями Minidlna здесь.

В файле конфигурации правим папку с нашей медиатекой:

sudo nano /etc/minidlna.conf

И там указываем правильно папку:

Права на папку должны быть следующими:

sudo chmod -R 755 папка

sudo -u minidlna ls -l папка

sudo sevice minidlna start

И теперь в нашем Проводнике в закладке Сеть должно быть что-то вроде:


И, кликая на эту ссылку, открываем в браузере статус нашего сервиса:


А проиграть файлы можно скажем через "проигрыватель Windows Media":


Или запустить их на андроид с помощью "Hi-Fi Cast" приложения:


Если задача обратная и мы хотим воспроизводить музыку и фильмы, просматривать фото, которые находятся где-то удаленно на сервере через нашу Raspberry Pi, то нам потребуется установить на нее dlna render. С устройства из приложения, позволяющего находить наш raspberry media render, мы будем перенаправлять медиа контент на Raspberry Pi.

Я нашел два рендера прекрасно работающих на Raspberry Pi. У каждого из них есть свои плюсы.

DLNA Render Gmediarenderer

Проект развивается и полон последователей. Из основных возможностей стоит отметить, что этот рендер переключает устройства вывода, настраивает громкость и имеет уникальный идентификатор. Это позволит настроить в сети несколько подобных устройств. Есть более подробная статья про использование всех возможностей DLNA/UPnP как распределенной структуры устройств, взаимодействующих по этим протоколам и конкретно этого рендера.

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

Возьмем копию проекта и соберем его:

Найти и управлять нашим сетевым проигрывателем через Android устройство удаленно позволит программа типа DLNA Controller. Воспользуйтесь одной из подобных программ для этого: HiFi Cast, Airpincast, Bubbleupnpcast

Rygel DLNA Рендер

Проект представляет из себя не только dlna рендер. Это полноценный медиа сервер UpnPMedia Server, который позволит и расшаривать и перенаправлять музыку, видео и фото на любое UPnP/DLNA поддерживающее устройство. Из заявленных возможностей есть конвертация на лету записи в тот формат, который будет поддерживаться устройством воспроизведения. Взаимодействие со сторонними media плеерами, такими как Totem, Rhythmbox, VLC. Удаленные запросы UPnP конвертируются в MPRIS запросы и позволяют взаимодействовать с этими media проигрывателями. Пример такого взаимодействия Rygel и VLC рассказан на странице David Wiencer.

Суть в том, что мы запускаем VLC плеер. Устанавливаем в конфигурационном файле mpris поддержку. И при работающем Rygel приложении vlc воспроизводит медиа контент, который мы посылаем ему через DLNA Rygel.

Проинсталлируем Rygel и VLC:

sudo apt-get install rygel vlc rygel-playbin

Если у вас еще не стоят gstreamer библиотеки:

Убедимся, что в конфигурации включена поддержка MPRIS:

И далее, создаем скрипт David Wiesner, который запускает сначала VLC, затем Rygel:

sudo nano rygel-vlc.sh

Запустим его в фоновом режиме:

И проверим наш DLNA render также через Android с помощью: HiFi Cast, Airpincast, Bubbleupnpcast.

И если вы не готовы экспериментировать с Linux , то в качестве собранных, готовых к работе "из коробки" Raspberry Pi с вышеописанным функционалом мы можем вам предложить наборы ViaMyBox "Музыка флер"!

Дистрибутив и код вы можете найти здесь.

Надеюсь со временем, мы увидим и рассмотрим новые интересные проекты для Raspberry Pi на эту тему!


Всем привет!
В этой части я расскажу вам о цифро-аналоговом преобразователе на основе чипа CS4350 от Сirrus Logic.
ЦАП имеет один цифровой аудиовход I2S и программно не конфигурируется; работая в автоматическом режиме, тянет поток PCM до 192 КГц @ 32 бит; может быть подключен к другим источникам I2S-audio.

Содержание / Contents

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

Для аудиоплеера это не приемлемо. Слушать такое просто не прилично. Уж теперь-то я слышу, уж конечно!


Если посмотреть схему, то всё становится ясно. RC–фильтры, подключенные к ШИМ (PWM) выходам чипа BCM2835, вот и вся «звуковая карта» на борту « Raspberry ».

Но у процессора BCM2835 есть аппаратный выход «PCM/I2S Audio». Вот он-то нам и нужен. Жаль, только, что нет выхода «MCLK» (Master Clock). И возможности завести внешний «MCLK» тоже нет. Именно поэтому, у ценителей сверх высококачественного звучания «Малинка» попадает в черный список.



Рис 4. Распиновка разъема P5 Audio I2S Raspberry Pi mod. B
Нам нужно выбрать чип ЦАП, который бы смог работать без «MCLK», смог держать 192 КГц @ 24 бит. Так же дифференциальные выходы приветствуются. А если сможет работать самостоятельно, без программной настройки, то вообще замечательно. И такой чип был найден!

↑ Схема ЦАП на CS4350

Исключён фрагмент. Полный вариант статьи доступен меценатам и полноправным членам сообщества. Читай условия доступа.

Это мой первый ЦАП, и программное управление я не стал делать, ограничился автономным режимом «Stand-Alone Mode». Задается режим входами DIF0 – DIF2. В этом режиме при частоте дискретизации до 96 КГц «RMCLK» (Recovered Master Clock) составляет fRMCLK = fLRCLK x 256, а при 176 КГц и 192 КГц получается fRMCLK = fLRCLK x 128.

Основной проблемой, с которой я столкнулся при макетировании – это переходные процессы — щелчки при начале и завершении воспроизведения. Когда I2S-сигнал отсутствует, выходное дифференциальное напряжение имеет максимальную величину (5V = «OUT+» – «OUT-»). Эту постоянную составляющую мы имеем на выходе фильтра.

Для решения данной проблемы есть специальные выходы «MUTE», с помощью которых выход фильтра должен быть закрыт, например, транзистором или быстрым реле. Совершенно случайно я заметил, что когда микросхема находится в состоянии сброса (вход «RESET» = 0) дифференциальное выходное напряжение равно нулю (оба выхода «OUT+» и «OUT-» равны нулю) и на выходе фильтра остается ноль Вольт. Поэтому, я сделал простейший детектор наличия сигнала I2S на элементах DD1, D1, R3, C4. RC-цепочка сглаживает меандр «LRCLK», формируя, тем самым, высокий логический уровень. Когда воспроизведение заканчивается, сигнал «LRCLK» всегда имеет высокий уровень – конденсатор С4 разряжается через резистор R3 и на входе «RESET» формируется низкий логический уровень.

Номиналы резистора R3 и конденсатора С4 подобраны таким образом, что при минимально возможной частоте дискретизации (32 КГц) конденсатор не успевал разрядиться ниже логического уровня единицы (см. Рис. 6).

Если подключать данный ЦАП не к « Raspberry Pi », а к другому источнику, у которого возможно шина i2S при отсутствии воспроизведения имеет низкие
логические уровни, то инвертер DD1.1 следует исключить или заменить повторителем.

ЦАП выполнен на односторонней плате (см. Рис. 7.), вторая сторона служит экраном. Сверху вся плата закрывается металлической крышкой (см. Рис. 1.)

↑ Блок питания для ЦАП

Схема блока питания для ЦАП проста и думаю, в комментариях не нуждается (см. Рис. 8 и 9).

↑ Настройка ОС Raspbian

Для того, чтобы включить i2S-выход на «Малинке», в операционной системе должны присутствовать и быть загружены специальные модули ядра. В официальном дистрибутиве Raspbian (Debian для «Малинки») путь к модулям следующий:
/lib/modules/3.12.26-rt40+/kernel/sound

Версия ядра может отличаться. Подключаются модули с помощью фала /etc/modules. В моем случае файл modules имеет следующее содержимое:

Я использую програмный модуль для pcm5102 , так как он не проверяет наличие чипа по SPI или I2C, как например другой модуль snd_soc_pcm1794a.

Далее проверяем командой aplay –l наличие звуковых устройств.

Скачал последнюю версию Raspbian — посмотреть, что появилось нового. Список поддерживаемых микросхем увеличился, это радует.



Рис. 10 Список модулей в текущей версии Raspbian

↑ Измерения параметров нашего ЦАП

Измерения — это всегда интересно! В качестве измерительного устройства будет кодек ALC887 встроенной звуковой карты ПК. Как говорится, на безрыбье… Потренироваться. Сойдет на первый раз.

При измерениях ЦАП нагружен на резистор 10K и подключен к линейному входу звуковой карты. Тестовые файлы создал в Adobe Audition.

На рисунке 11 шумы при закрытых входах, шнурок в компьютер вставлен, на конце закорочен. SpectrPLUS уже откалиброван.

Далее подключаем к плееру (к ЦАП) рис. 12, воспроизведение отсутствует. Вылезли 50 Гц и две гармоники 100 Гц и 150 Гц. А 25 KГц это, наверное, мой импульсник.

По сигналу 1 Кгц откалибровал 0dB в SpectraPLUS-е.


Нужно проверить, что амплитуды отображаются верно. -6dB на рис. 14 и -80dB на рис. 15.

На рисунке 17 — пики по сторонам и «горб» — это результат модуляции в следствии джиттера. Представляете?! В моём ЦАП-е… есть… настоящий… джиттер.



Рис. 18 Воспроизведение: 20 Кгц, 0dB (дискретизация 192 КГц).

На рисунке 18 тоже 20 КГц, но при частоте дискретизации тестового файла 192 КГц, все предыдущие тестовые файлы, использованные при измерениях, на 44.1 КГц.

Рисунок 19 — это тестовый трек с тестового диска журнала «Аудиохобби“ [1]. Но там треки короткие и сними неудобно работать.


АЧХ снял осциллографом, режим – детектор пиков. Развертка 4 сек. Тестовый sweep-сигнал 40 секунд, чтобы попасть в клетку (5 КГц). Испугал меня сразу завал слева, но как оказалось, ЦАП просто плавно подымает громкость при начале воспроизведения.

Для меня интересно было сравнить АЧХ теоретическое и практическое. Следует отметить, что при таком способе снятия АЧХ, амплитуда не в децибелах, а просто в Вольтах. Если перевести в децибелы то на 50 КГц сигнал упал где-то на 3,2 dB. Вроде, похоже на результат в Multisim-е.

И ещё несколько сигналов.



Рис. 22 Осциллограммы: Меандр, синус, треугольник, пила.

↑ Полезности по теме

• [1] «77 синтезированных и натуральных сигналов для объективной экспертизы и субъективной оценки разнообразной аудиотехники», Приложение к журналу «Аудиохобби», 2004, H.Сухов, В.Широков.
• Даташит на чип CS4350.pdf
• Заказать готовый I2S DAC для «Raspberry» из Китая!
• Заказать одноплатный миникомпьютер Raspberry Pi оттуда же.
• Заказать чип CS4350 на Ебее , оказалась редкая вещь, нашёл только здесь.

↑ Файлы

↑ Заключение

Качеством звука более чем доволен. Осознавая, какой путь проделывают байтики, пока превратятся в звук, вслушиваешься в каждую ноту! И хочется переслушать все любимые композиции на своей поделке. Хе-хе, надо будет ещё какой-нибудь ЦАП сделать. :cool:


В данном проекте описывается, как превратить микрокомпьютер Raspberry Pi в Hi-Fi музыкальный плеер с превосходным качеством звука при использовании совместно с модулем ЦАП Shiit modi USB DAC. Мы рады представить RuneAudio, бесплатное программное обеспечение с открытым программным кодом, которое предназначено для замены персонального компьютера как цифрового источника на выделенную, дешевую плату с низким энергопотреблением, не требующей охлаждения, которая работает под управлением обычного дистрибутива Linux. Данный новый проект предлагает множество функций, находится на стадии активной разработки и предназначен для постоянно растущего сообщества.

Как множество других проектов с открытым программным кодом, RuneAudio появилась для личных потребностей: мы все используем портативный ПК как цифровой источник, но не всегда удовлетворены качеством звука и удобством использования. Большинство не любит возиться с переносными ПК и проводами в гостиной комнате для звуковых Hi-Fi систем. Мы думаем, что наша работа будет полезной многим людям со сходными потребностями, поэтому мы решили использовать в проекте открытый программный код. Это позволит вносить требуемые изменения.

Проект RuneAudio имеет две главные цели: первая – качество звука. Мы упорно трудились над получением наилучших результатов от микрокомпьютера Raspberry Pi и других совместимых платформ, используя Arch Linux как базовую ОС RuneOS, и оптимизировали их для качественного воспроизведения звука.

Вторая цель – это сделать проект удобным для использования, поэтому мы разработали веб-интерфейс (RuneUI), который позволит пользователям контролировать воспроизведение и настройки системы без необходимости использования командной строки Linux. Веб-интерфейс представляет собой кросс-платформенную и быстрореагирующую систему (интерфейс адаптирован под размер экрана), позволяет иметь доступ с любого устройства (настольного компьютера, ноутбука, планшета и смартфона). Процесс установки очень легкий, поскольку вам потребуется всего лишь записать файл образа.img на SD-карту.

Итак, приступим к выполнению проекта.

Шаг 1: Загрузка и распаковка


Загрузите последний файл образа RuneAudio для вашего микрокомпьютера Raspberry Pi с официального веб-сайта: ЗАГРУЗКА RUNEAUDIO

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

Шаг 2: Запись образа на SD-карту


    (мы также предлагаем использовать программу USB Image Tool , которая выполняет данную процедуру быстрее)

Убедитесь в том, что SD-карта не защищена от записи перед записью образа или перед подключением карты к вашему устройству.

После окончания записи безопасно отключите SD-карту и вставьте в ваше устройство.

Шаг 3: Настройка Raspberry Pi



  1. Если у вас имеется модуль ЦАП Shiit modi USB DAC, тогда подключите его к USB порту, в противном случае используйте аналоговый аудио выход;
  2. Если у вас имеется USB накопитель, тогда подключите его к USB порту. При использовании USB жесткого диска настоятельно рекомендуется применять внешний источник питания, или, по крайней мере, активный USB концентратор;
  3. Вставьте ethernet коннектор;
  4. Вставьте PSU в устройство
  5. Подайте питание на устройство

При первой загрузке RuneAudio на вашем устройстве потребуется ввести IP адрес (с включением DHCP сети LAN).

Шаг 4: Доступ к веб-интерфейсу – RuneUI


RuneAudio имеет свой собственный веб-интерфейс - RuneUI, разработанный командой RuneAudio, который позволяет пролистывать музыкальную библиотеку, контролировать воспроизведение и конфигурировать плеер. Он работает на многих устройствах и платформах с установленным современным браузером (на настольном компьютере, ноутбуке, планшете и смартфоне).

Пользовательский интерфейс PlayerUI может быть запущен несколькими способами:

После запуска откроется основное окно воспроизведения.

Мы не будем подробно описывать данный веб-интерфейс, поскольку все удобно организовано и интуитивно понятно. Здесь мы укажем только несколько советов.

В нижней части окна располагается три вкладки: Browse (Пролистать), Playback (Воспроизвести) и Playlist (Список воспроизведения). Данные вкладки интерфейса RuneUI являются основными и наиболее используемыми во время звукового воспроизведения.

  1. ВкладкаBrowse(Пролистать) будет использоваться при подключении USB устройства с музыкальными файлами к Raspberry, или после добавления сетевого сервера доступа (NAS) при использовании мастера настройки MENU>Database (Меню> База данных).
  2. ВкладкаPlaylist(Список воспроизведения) будет использоваться после добавления новых записей из просмотренной базы данных.

Для настройки вашего интерфейса аудио выхода перейдите в MENU > MPD (Меню > MPD), или для других настроек системы используйте MENU > Settings (Меню > Настройки).

И теперь последний совет для быстрого запуска интерфейса RuneUI: если вы используете веб-браузер Google Chrome в ОС Windows, тогда создайте ярлык приложения на рабочем столе или панели задач. Это показано в видеоролике ниже:

Теперь вы можете наслаждаться вашим высококачественным цифровым плеером с низкой стоимостью!

Шаг 5: Получение наилучшего качества звука


Как показано на схеме выше, RuneAudio и микрокомпьютер Raspberry Pi являются сердцем цифровой музыкальной системы. Они заменяют ПК при настройке аудио сигнала стандартного компьютера, включая Hi-Fi цифровой плеер.

Ниже указаны советы для наилучшего качества звука:

  1. Используйте USB выход для наилучшего Hi-Fi качества звука, с внешним модулем USBDAC (выделенный цифро-аналоговый преобразователь). Встроенный 3.5 мм аналоговый выход звучит неплохо, но весьма далек от высококачественного воспроизведения.
  2. Получите доступ к вашей музыке по сети. Вы можете также использовать USB устройства хранения, но наилучшие результаты получаются при воспроизведении файлов, хранимых на сервере NAS, который подключается при использовании протокола NFS.
  3. Используйте надежный источник питания, мощностью не менее 10 Вт (напряжением 5 В и током 2 А). Микрокомпьютер Raspberry Pi может иметь проблемы с питанием, и если вы планируете подключать большое количество периферийных USB устройств (напр., USB устройства хранения) настоятельно рекомендуется подключать их через активныйUSBконцентратор.
  4. Попытайтесь создать несколько профилей в меню MENU>Settings>Soundquality(Меню > Настройки > Качество звука) интерфейса RuneUI. Каждый профиль содержит набор настроек ядра и системы, которые позволяют устройству звучать лучше или хуже, в зависимости от окружающих условий (использование модуля DAC, модели NAS, протокола монтирования и т.д.). Выбирая данные профили, вы сможете заметить ощутимые различия при звуковом воспроизведении, поэтому выберите именно ваш вариант настройки.

Шаг 6: Заключение


Микрокомпьютер Raspberry Pi является популярной платформой и используется в различных проектах. В данном проекте он применяется как выделенный/дешевый/малогабаритный/не создающий шума плеер и альтернативная замена стандартного ПК для высококачественного воспроизведения звуковых файлов.

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

Микроконтроллеры могут работать только с цифровыми значениями, но в современной электронике часто приходится иметь дело и с аналоговыми сигналами. Для преобразование сигналов из аналоговой формы в цифровую используются аналого-цифровые преобразователи (АЦП, в англ. – ADC, Analog to Digital Converter), а из цифровой в аналоговую – цифро-аналоговые преобразователи (ЦАП, в англ. – DAC, Digital to Analog Converter).

Цифро-аналоговые преобразователи (ЦАП) находят широкое применение в таких приложениях как управление двигателями, управление яркостью свечения светодиодов, аудио-усилителях, энкодерах видео и т.д.

Внешний вид подключения модуля ЦАП MCP4725 к Raspberry Pi

В данной статье мы рассмотрим подключение цифро-аналогового преобразователя MCP4725 к плате Raspberry Pi. Ранее на нашем сайте мы уже рассматривали подключение ЦАП MCP4725 к плате Arduino.

Необходимые компоненты

  1. Плата Raspberry Pi (купить на AliExpress) с установленной операционной системой (Raspberry Pi OS).
  2. MCP4725 DAC IC (микросхема цифро-аналогового преобразователя) (купить на AliExpress).
  3. ЖК дисплей 16x2 (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Принципы работы модуля ЦАП MCP4725

Микросхема MCP4725 представляет собой модуль 12-битного ЦАП, позволяющий формировать на своем выходе аналоговый сигнал в диапазоне от 0 до 5V. Управляется ЦАП MCP4725 по интерфейсу I2C. Также микросхема MCP4725 содержит в своем составе энергонезависимую память (EEPROM).

Модуль MCP4725 имеет разрешение 12 бит. Это значит что на его вход можно подавать цифровые значения в диапазоне 0-4096, которые он преобразует в соответствующее аналоговое значение по отношению к опорному напряжению. Максимальное опорное напряжение (reference voltage) составляет 5V.

Формула для расчета выходного значения напряжения выглядит следующим образом:

O/P Voltage = (Reference Voltage / Resolution) x Digital Value

Reference Voltage – опорное напряжение;
Resolution – разрешение (разрешающая способность) ЦАП;
Digital Value – цифровое значение.

К примеру, если мы используем напряжение 5V в качестве опорного, а цифровое значение равно 2048, то на выходе ЦАП мы получим:

O/P Voltage = (5/ 4096) x 2048 = 2.5V

Назначение контактов (распиновка) MCP4725

На следующих рисунке и таблице представлено назначение контактов ЦАП MCP4725.

Назначение контактов (распиновка) MCP4725

Контакты ЦАП MCP4725 Их назначение
OUT выходное аналоговое напряжение
GND земля для выходного аналогового напряжения
SCL линия синхронизация протокола I2C
SDA линия передачи данных протокола I2C
VCC входное опорное напряжение 5V или 3.3V
GND земля для опорного напряжения

Микросхемой ЦАП MCP4725 можно управлять с любого микроконтроллера используя интерфейс (протокол) I2C. Для функционирования протокола I2C необходимо только два провода (линии) - SCL и SDA. По умолчанию I2C адрес для MCP4725 равен 0x60, 0x61 или 0x62

Настройка интерфейса I2C в Raspberry Pi

Для того, чтобы подключить ЦАП MCP4725 к плате Raspberry Pi, необходимо знать контакты интерфейса I2C в плате и включить использование данного интерфейса в настройках платы.

Схема расположения контактов ввода/вывода платы Raspberry Pi

Как показано на приведенной распиновке платы Raspberry Pi контактами интерфейса I2C в ней являются контакты GPIO2 (SDA) и GPIO3 (SCL).

По умолчанию использование интерфейса I2C отключено в плате Raspberry Pi, поэтому нам необходимо его включить. Для этого выполните следующие действия:

  1. В окне терминала введите команду sudo raspi-config. После этого появится панель настроек платы.
  2. В ней выберите настройки подключения (Interfacing options) и затем в них включите использование интерфейса I2C.
  3. После этого перезагрузите плату.

Включение интерфейса I2C в Raspberry Pi
Определение адреса I2C модуля MCP4725 с помощью Raspberry Pi

Чтобы взаимодействовать с модулем MCP4725 по интерфейсу I2C нам необходимо узнать адрес I2C модуля. Чтобы узнать этот адрес подключите контакты SDA и SCL модуля MCP4725 к контактам SDA и SCL платы Raspberry Pi. Также подключите контакт питания и землю.

После этого откройте окно терминала и введите следующую команду чтобы узнать адрес подключенного по интерфейсу I2C устройства:

Читайте также: