Подключение аудио-ЦАП к микроконтроллеру STM32: stm32f401ccu6 + pcm5102 + i2s + dma, регистры и LL

  Переглядів 6,383

VadRov

VadRov

2 роки тому

Подключение аудио-ЦАП к микроконтроллеру STM32: stm32f401ccu6 + pcm5102 + i2s + dma, регистры и LL. Подключаю аудио-ЦАП (audio-DAC) к микроконтроллеру stm32f4 по интерфейсу i2s, реализованному в stm32f4 на базе периферии spi. HAL использовать не буду: только регистры и LL. Использую DMA. В видео проект подключения с нуля. В качестве тестового сигнала сформируем в правом и левом звуковых каналах соответственно сигналы синуса и косинуса. Частота сформированных сигналов 122.5 Гц (44100/360). Графики сигналов выведу на осциллограф, в том числе, в двухканальном режиме в формате X-Y.
Скачать проект можно по ссылкам: drive.google.com/file/d/1N1ma...
github.com/vadrov/stm32-i2s-a...
Поддержать канал:
donate.qiwi.com/payin/VadRov
yoomoney.ru/to/4100117522443917
Покупал на Алиэкспресс:
программатор ST-Link alii.pub/6fdujg
плата разработки stm32f401ccu6 alii.pub/6fdumy
плата разработки stm32f411ceu6 alii.pub/6fduop
аудио-ЦАП pcm5102a alii.pub/6fdurf
макетная плата alii.pub/6fduuq
провода для макетной платы alii.pub/6fduwo
3.2" дисплей с тачскрином ILI9341 spi alii.pub/6fdvcf
1.3" дисплей ST7789 spi alii.pub/6fdvks
модуль микро SD карты alii.pub/6fdvoh
stm32, stm32 i2s, stm32 i2s dma, pcm5102, stm32 dac dma, stm32 dac i2s, stm32 dac, i2s dma, stm32 pcm5102, stm32 audio, stm32 audio dac, stm32f401ccu6
#stm32
#dac
#цап
#программирование

КОМЕНТАРІ: 38
@VadRov
@VadRov Рік тому
Скачать проект из этого видео можно по ссылкам: drive.google.com/file/d/1N1malMCehkTyb7OGS39Izec_-wQh-I13 github.com/vadrov/stm32-i2s-audio-dac-pcm5102a Подключение дисплея st7789 по spi c dma на CMSIS и LL рассмотрено в видео ukposts.info/have/v-deo/cKR6fmdtqZ970qM.html Подключение SD-карты по spi с dma на CMSIS и LL рассмотрено в видео ukposts.info/have/v-deo/smlqloKfo6SmzIE.html Подключение кнопок на таймере с прерыванием на CMSIS и LL с устранением дребезга, автоповтором и буферов ввода (прямо как на PC 😉) рассмотрено в видео ukposts.info/have/v-deo/nV2oaX6Kbmufxps.html Файловый менеджер (структура и код) рассмотрен в видео ukposts.info/have/v-deo/bJOQhK2lmKmC16c.html Подключение аудио-цап (audio dac) по интерфейсу i2s на CMSIS и LL рассмотрено в видео ukposts.info/have/v-deo/qGB6nI5kj5-ayoU.html К каждому из перечисленных видео есть ссылка в описании на проект для скачивания. Поддержать канал: donate.qiwi.com/payin/VadRov yoomoney.ru/to/4100117522443917 Покупал на Алиэкспресс: программатор ST-Link alii.pub/6fdujg плата разработки stm32f401ccu6 alii.pub/6fdumy плата разработки stm32f411ceu6 alii.pub/6fduop аудио-ЦАП pcm5102a alii.pub/6fdurf макетная плата alii.pub/6fduuq провода для макетной платы alii.pub/6fduwo 3.2" дисплей с тачскрином ILI9341 spi alii.pub/6fdvcf 1.3" дисплей ST7789 spi alii.pub/6fdvks модуль микро SD карты alii.pub/6fdvoh
@DenSvet
@DenSvet 8 місяців тому
VadRov спасибо за ваш труд! ЦАП pcm5102 нужно конфигурировать? Или Вы для i2s на микроконтроллере подобрали его дефолтные настройки?
@VadRov
@VadRov 8 місяців тому
Приветствую. Конфигурировать не надо. Но, строго говоря, это не совсем так, так как есть все-таки у этого ЦАПа входы для внешнего цифрового управления DEMP, FLT, FMT, XSMT, которые на показанной в видео плате выведены во "внешний мир" и через которые доступны, соответственно, такие настройки, как: частотная коррекция для сэмплов с частотой 44.1 кГц (вкл/выкл), выбор фильтра с нормальной/низкой задержкой, выбор формата аудио i2s/по левому краю, управление мягким отключением/мягким включением звука. То есть через gpio м/к мы можем управлять этими настройками.
@DenSvet
@DenSvet 8 місяців тому
@@VadRov т.е. с битностью ЦАП 16, 24, 32 бита, и частотой дискретизации заморачиваться не нужно, это дело микроконтроллера? Например, я выставляю 24 бита и 48кГц частота дискретизации (хорошо подходит для нулевой ошибки на i2s), и оставляю все по вашей схеме на видео.
@VadRov
@VadRov 8 місяців тому
@@DenSvet, если надо воспроизводить звуковые данные, то возьмите вариант драйвера pcm5102 из одноименной папки моего проекта видеоплеера github.com/vadrov/stm32f4_fast_optimized_avi_player_osd С параметрами, думаю, разберетесь. А в файле stm32f4xx_it.c можно будет скорректировать соответствующий обработчик прерывания, генерируемого потоком DMA при передаче половины и всего буфера (для своевременного обновления pcm буфера в целях формирования непрерывного звука). Upd. По сути вопроса. Мы настраиваем модуль i2s микроконтроллера: разрядность, частоту дискретизации и т.д.... ЦАП же по управляющим линиям BCK, LRCK i2s определяет как ему работать с данными, получаемыми по линии DIN i2s. При этом, для этого ЦАПа нет необходимости в тактировании MCK, так как он (ЦАП) имеет внутренний автоматически подстраиваемый модуль PLL.
@DenSvet
@DenSvet 8 місяців тому
@@VadRov Спасибо за развернутый ответ, прочел pdf на ЦАП от корки до корки. Действительно мин. внешних настроек. Осталось собрать на черной пилюле STM32F411 и с SD карты погонять стерео wav файлы. Если позволит время, запишу результат воспроизведения на свой scarlett focusrite 2i2, выложу на ютуб видео ролик тоже.
@user-ck8rj5cp6x
@user-ck8rj5cp6x Рік тому
Плеер- по моему мнению есть цепочка: источник SD/флешка, транспорт- микро контроллер, DAC+ усилочек(АС или уши(коих в музыке не люблю по известным причинам)).
@user-be7kh2zt7p
@user-be7kh2zt7p 6 місяців тому
Здравствуйте. Очень понравился Ваш проект. Могли бы Вы поделиться HEX файлом прошивки микроконтроллера. Спасибо.
@VadRov
@VadRov 6 місяців тому
drive.google.com/file/d/10A1MNGkuXPNyQY2CdNSjLeq6qUo4osLv/view?usp=sharing
@user-be7kh2zt7p
@user-be7kh2zt7p 6 місяців тому
Здравствуйте. Прошил контроллер и соединил по схеме с pcm5102. Windows 10 не видит звукового устройства по USB. Сначала проверил работу программатора прошивкой BLINK ( все ок). Куда копать ? Спасибо.
@VadRov
@VadRov 6 місяців тому
@@user-be7kh2zt7p , здравствуйте. Этот проект совсем "не про это". То есть он не создает аудио устройство. Здесь просто про подключение ЦАП к stm32 по i2s.
@user-be7kh2zt7p
@user-be7kh2zt7p 6 місяців тому
Жаль.
@flamesky4637
@flamesky4637 Рік тому
ЗА LL лайк!
@VadRov
@VadRov Рік тому
Лайк за лайк 🙂
@user-ck8rj5cp6x
@user-ck8rj5cp6x Рік тому
Пока займусь часами «с боем на Ардуино» - полазил по разным сайтам в поисках «хорошего боя» - у всех !!!! один и тот же кетайский звон, и ещё Куранты (куранты Карл!), придётся записывать свои трофейные ходики пока они ещё дышат.
@user-ck8rj5cp6x
@user-ck8rj5cp6x Рік тому
Недавно разобрал Карадио и ищу «приемлемый проект» плеера на ESP32 или STM32F407.
@user-bo7oj2ug4g
@user-bo7oj2ug4g Рік тому
Здравствуйте. А какие форматы аудио воспроизводит этот цап?
@VadRov
@VadRov Рік тому
16, 24, 32 бита. Заявлена частота дискретизации от 8000 до 384 000 Гц. Звук, действительно, неплохой, тем более, для такой цены. Но не для аудиофилллов. :) Для моих ушей звук приятный.
@user-bo7oj2ug4g
@user-bo7oj2ug4g Рік тому
@@VadRov mp3 и aac будет воспроизводить?
@VadRov
@VadRov Рік тому
@@user-bo7oj2ug4g , это просто ЦАП, который преобразует цифровой сигнал в аналоговый. Для декодирования аудиоформатов нужен декодер. Т.е. чтобы воспроизводить звук из аудиофайлов нужен, аудиодекодер, транспорт, ЦАП, усилитель и колонки. Я здесь (в видео) говорю о ЦАП. Декодер может быть программным, например, на базе микроконтроллера stm32.
@VadRov
@VadRov Рік тому
@@user-bo7oj2ug4g , для написания программного декодера mp3 и аас достаточно платки на базе stm32f401ccu6.
@user-bo7oj2ug4g
@user-bo7oj2ug4g Рік тому
@@VadRov я его планирую для карадио 32 использовать.
@dioptriy68
@dioptriy68 Рік тому
А интернет-радио туда можно прошить?
@VadRov
@VadRov Рік тому
Можно, но потребуется дополнительный модуль Wi-Fi. Дешевле вместо stm в таком случае использовать esp8266 или esp32.
@Maxim_Slim
@Maxim_Slim Рік тому
Спасибо, скачал. Много папок, файлов, надеюсь не трудно будет их куда надо впихнуть. Опыта 0.
@VadRov
@VadRov Рік тому
Опыт придет. Главное, терпение и труд 🙂
@Maxim_Slim
@Maxim_Slim Рік тому
@@VadRov я не хочу трудится, мне нужно развиваться в своих музыкальных и акустических вещах, там работы овер... Нужен юсб транспорт для цапа, готовое недорогое решение. Кстатии ваш проект звучит чисто? Если будет желание сделайте вторую серию для чайников, и если можно с 192кгц на 24 бита как у нормальных карт
@VadRov
@VadRov Рік тому
Максим, pcm5102 - это цап начального уровня. Для профессиональных вещей можно рассмотреть что-то более серьезное. Да, и к минусам платы ЦАП, упомянутой в видео, можно отнести отсутствие хорошей организации питания, отсутствие ОУ на выходе (не всегда, конечно, обязательных) и т.п., т.е. микросхема ЦАП подключена с минимумом элементов обвязки (именно так, как указано в спецификации). Так что, о чистоте звука сложно говорить. Если сравнивать с китайскими дешевыми магнитолами, то звук ничем не хуже. Если же сравнивать с профессиональным оборудованием, то, разумеется, эта плата проиграет. В качестве дешевого USB транспорта для ЦАП я бы, например, рассматривал не stm32f401ccu6, а ее "старшего брата" stm32f411ceu6. МК этот пошустрее, памяти больше в два раза, т.е. функционала можно больше "напихать".
@Maxim_Slim
@Maxim_Slim Рік тому
@@VadRov вообще лично для меня сд качество норм, это я так про 192 сказал, к теме =). Вообще профессиональные карты за 200$ напичканы дешманскими чипами. Хочу или es9018q2m или 9023. а вам бы акустику достойную. Если задумаетесь, я здесь специалист, подскажу.
@Maxim_Slim
@Maxim_Slim Рік тому
@@VadRov для сравнения, я на встроенной до сих пор сижу =( только никому не говорите)
@user-oh4xv9vf1h
@user-oh4xv9vf1h Рік тому
Подключите к ESP32, можно сделать олайн радио!
@VadRov
@VadRov Рік тому
Делал на 8266. Можно мультимедиа плеер сделать. Да, много чего, где требуется аудио.
@user-ck8rj5cp6x
@user-ck8rj5cp6x Рік тому
Пойду их заведу.
@TheBrogas
@TheBrogas 9 місяців тому
3.5mm
@VadRov
@VadRov 9 місяців тому
Да, конечно, разъем 3,5 мм. Я ещё на стадии нарезки видео эту оговорку заметил, но не стал делать надпись на экране (ориентируясь на внимательность зрителей).🙂
@user-ck8rj5cp6x
@user-ck8rj5cp6x Рік тому
25:22 имхо, все Ваши комментаторы- малолетние троли? Что тут что на Дзене, жаль нет коментов у вас в Телеграмм. Им бы что прикрутить или вставить!
Їжа Закарпаття. Великий Гід.
1:00:29
Мiша Кацурiн
Переглядів 649 тис.
Kitten has a slime in her diaper?! 🙀 #cat #kitten #cute
00:28
когда одна дома // EVA mash
00:51
EVA mash
Переглядів 7 млн
GADGETS VS HACKS || Random Useful Tools For your child #hacks #gadgets
00:35
Транспорты. Xmos, Amanero, CM6631
21:46
Вокруг Стерео
Переглядів 24 тис.
Самое простое объяснение парадокса Ферми
28:45
Задний двор Айлашкерского
Переглядів 7 тис.
Библиотека для адресных RGB лент STM32
20:04
ESP32 internet radio part 1(ESP32 PCM5102)
4:48
KOKENSHA TECH
Переглядів 14 тис.
USB I2S Transport "Reflex 2.0" Firmware 1.0.0
19:35
Чип и Дип
Переглядів 3 тис.
LoRa on RYLR896. Review and range test
34:18
Электроника в объективе
Переглядів 171 тис.
STM32. А если вдруг и BlackPill мало? Super BlackPill !!!
18:21
Samsung or iPhone
0:19
rishton_vines😇
Переглядів 505 тис.
Нужен ли робот пылесос?
0:54
Катя и Лайфхаки
Переглядів 866 тис.
HUAWEI БЕЗ GOOGLE: ЕСТЬ ЛИ ЖИЗНЬ? | РАЗБОР
11:49
Компьютер подписчику
0:40
Miracle
Переглядів 207 тис.
Vortex Cannon vs Drone
20:44
Mark Rober
Переглядів 13 млн