Цап для raspberry pi 3

Цап для raspberry pi 3

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

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

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

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

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

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

Чип CS4350 умеет с помощью внутреннего PLL восстанавливать Master Clock из сигнала LRCLK. При необходимости его наличие можно проверить на 8-м выводе, или использовать в каких-то коварных целях.

Это мой первый ЦАП, и программное управление я не стал делать, ограничился автономным режимом «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.)

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

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

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

Читайте также:  Шестеричная система счисления калькулятор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

↑ Файлы

Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.

Читайте также:  Швейные машины с функцией вышивки


Спасибо за внимание!
Игорь Котов, учредитель журнала «Датагор»

Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.


Спасибо за внимание!
Игорь Котов, учредитель журнала «Датагор»

↑ Заключение

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

На этом пока всё.
Спасибо за внимание!

Понадобилась мне недавно передача звука на аудиосистему через малинку, хочу поделиться опытом по настройке.

Шаг 0. Подготовка

Нам нужно:

  • Прямые руки;
  • Raspberry Pi(Если Raspberry Pi без wi-fi или bluetooth докупаем нужное);
  • 5V 2A зарядное устройство для питания Raspberry Pi;
  • SD-карта на 8Гб минимум.

Шаг 1. Установка

1. Идём в раздел загрузок на сайте малинки и скачиваем Raspbian(Не Lite)

2. Распаковываем архив

3. Отформатировать SD-карту:

  • Удалить все разделы(Mac — Дисковая утилита, Windows — Создание и форматирование, Linux — gparted);
  • Создать 1 основной раздел.

4.1 Записываем на флешку(Windows):

  • Скачиваем программу Win32DiskImager;
  • Открываем образ Raspbian в Win32DiskImager;
  • Выбираем букву носителя;
  • Нажимаем Write.

4.2 Записываем на флешку(Mac/Linux):

  • Скачиваем программу Etcher;
  • Открываем образ Raspbian в Etcher;
  • Выбираем носитель;
  • Нажимаем Flash.

5. Вытаскиваем и вставляем SD-карту в компьютер и открываем единственный раздел(должен называтся BOOT). Создаём там файл ssh.

6. Вставляем SD-карту в Raspberry Pi

Шаг 2. Настройка

1. Узнаем IP-адрес нашего Raspberry Pi

2. Подключаемся к нему по SSH. Я предпочитаю PuTTY

3. Логинимся, логин: pi, пароль: raspberry

4. Прописываем в консоль вот это

5. Прописываем вот это

и попадаем в текстовый редактор. Под надписью [General] добавляем вот это

Жмякаем Ctrl+O, Ctrl+X.

6. Далее прописываем:

здесь ищем строку «resample-method = speex-float-3». Если в начале этой строки не стоит; — добавляем его.

После этого вписываем

Снова тыкаем Ctrl+O Ctrl+X

7. И снова прописываем:

Тут можем изменить имя устройства на любое другое путём редактирования строки «Name» если перед этой строкой стоит # убираем её и редактируем имя на которое хотим, выглядеть должно примерно вот так " Name=ТутИмяНаАнглийском ".

Дальше ищем строку " Class " и если перед ней стоит # убираем, делаем чтобы было вот так

1. Создайте в /etc/init.d/ файл OnBluetooth(sudo nano /etc/init.d/OnBluetooth). В него
впишите это:

2. Напишите в коносль

3. Напишите в консоль

9. Выбираем куда будет выводится аудио. Для этого прописываем sudo raspi-config , там переходим в Advanced дальше Sound и выбираем какой нам надо. После этого жмём finish. Готово!

Шаг 3. Подключение

Подключение по bluetooth работает уже сразу, теперь пришло время настроить подключение по интернету.

● Скачиваем и распаковываем архив в удобное нам место
● Редактируем файл audio.bat:

  1. Ваш_IP меняем на ip вашей малинки
  2. Имя_Пользователя меняем на логин от raspberry pi
  3. Пароль меняем на пароль от логина raspberry pi
Читайте также:  Восстановить расположение ярлыков на рабочем столе

● Запускаем

  • Включаем Raspberry PI
  • Подключаем нашу аудиосистему или наушники к порту который мы выбрали в raspi-config.
  • Включаем bluetooth на телефоне или открываем файл на компьютере
  • Включаем музыку
  • Радуемся

Понадобилась мне недавно передача звука на аудиосистему через малинку, хочу поделиться опытом по настройке.

Шаг 0. Подготовка

Нам нужно:

  • Прямые руки;
  • Raspberry Pi(Если Raspberry Pi без wi-fi или bluetooth докупаем нужное);
  • 5V 2A зарядное устройство для питания Raspberry Pi;
  • SD-карта на 8Гб минимум.

Шаг 1. Установка

1. Идём в раздел загрузок на сайте малинки и скачиваем Raspbian(Не Lite)

2. Распаковываем архив

3. Отформатировать SD-карту:

  • Удалить все разделы(Mac — Дисковая утилита, Windows — Создание и форматирование, Linux — gparted);
  • Создать 1 основной раздел.

4.1 Записываем на флешку(Windows):

  • Скачиваем программу Win32DiskImager;
  • Открываем образ Raspbian в Win32DiskImager;
  • Выбираем букву носителя;
  • Нажимаем Write.

4.2 Записываем на флешку(Mac/Linux):

  • Скачиваем программу Etcher;
  • Открываем образ Raspbian в Etcher;
  • Выбираем носитель;
  • Нажимаем Flash.

5. Вытаскиваем и вставляем SD-карту в компьютер и открываем единственный раздел(должен называтся BOOT). Создаём там файл ssh.

6. Вставляем SD-карту в Raspberry Pi

Шаг 2. Настройка

1. Узнаем IP-адрес нашего Raspberry Pi

2. Подключаемся к нему по SSH. Я предпочитаю PuTTY

3. Логинимся, логин: pi, пароль: raspberry

4. Прописываем в консоль вот это

5. Прописываем вот это

и попадаем в текстовый редактор. Под надписью [General] добавляем вот это

Жмякаем Ctrl+O, Ctrl+X.

6. Далее прописываем:

здесь ищем строку «resample-method = speex-float-3». Если в начале этой строки не стоит; — добавляем его.

После этого вписываем

Снова тыкаем Ctrl+O Ctrl+X

7. И снова прописываем:

Тут можем изменить имя устройства на любое другое путём редактирования строки «Name» если перед этой строкой стоит # убираем её и редактируем имя на которое хотим, выглядеть должно примерно вот так " Name=ТутИмяНаАнглийском ".

Дальше ищем строку " Class " и если перед ней стоит # убираем, делаем чтобы было вот так

1. Создайте в /etc/init.d/ файл OnBluetooth(sudo nano /etc/init.d/OnBluetooth). В него
впишите это:

2. Напишите в коносль

3. Напишите в консоль

9. Выбираем куда будет выводится аудио. Для этого прописываем sudo raspi-config , там переходим в Advanced дальше Sound и выбираем какой нам надо. После этого жмём finish. Готово!

Шаг 3. Подключение

Подключение по bluetooth работает уже сразу, теперь пришло время настроить подключение по интернету.

● Скачиваем и распаковываем архив в удобное нам место
● Редактируем файл audio.bat:

  1. Ваш_IP меняем на ip вашей малинки
  2. Имя_Пользователя меняем на логин от raspberry pi
  3. Пароль меняем на пароль от логина raspberry pi

● Запускаем

  • Включаем Raspberry PI
  • Подключаем нашу аудиосистему или наушники к порту который мы выбрали в raspi-config.
  • Включаем bluetooth на телефоне или открываем файл на компьютере
  • Включаем музыку
  • Радуемся

Ссылка на основную публикацию
Формула частота в excel
При анализе данных периодически возникает задача подсчитать количество значений, попадающих в заданные интервалы "от и до" (в статистике их называют...
Уравнение плоскости по двум пересекающимся прямым
УСЛОВИЕ: Составить уравнение плоскости, проходящей через две параллельные прямые x-2/3=y+1/2=z-3/-2 x-1/3=y-2/2=z+3/-2 Добавил yelymcheav , просмотры: ☺ 1976 ⌚ 2019-05-14 15:35:56....
Уравнение баланса мощностей формула
При решений электротехнических задач, часто нужно проверить правильность найденных значений. Для этого в науке ТОЭ, существует так называемый баланс мощностей....
Формула тейлора с остатком в форме пеано
Формулировка: Если существует , то представима в следующем виде: Это выражение называется формулой Тейлора с остаточным членом в форме Пеано...
Adblock detector