Pull to refresh
32K+
204

Embedded SW/Firmware Engineer

85,4
Rating
525
Subscribers
Send message

Используте i2s microphone

Микрофон тоже может быть sigma delta .
https://habr.com/ru/articles/765896/
Просто это еще называют PDM интерфейс.

Не, ну на кодеке любой сделает. А вот ежели через ADC и DAC микроконтроллера...

Вы наверное удивитесь, но для построения диктофона можно вполне себе отказаться и от аудиокодека и от ADC.

Просто соединить микроконтроллер и PDM микрофон MP23DB01HPTR по SPI.
Данные с микрофона получать по SPI. Будет поступать однобитный поток с Sigma Delta модулятора, который встроен в микрофон. И этот поток как есть сохранять на SD карту.

https://habr.com/ru/articles/765896/

Далее уже на PC отдельной утилитой преобразовывать однобитный PDM в PCM при помощи CIC фильтра. Можно будет задать любое разрешение и качество выходного звука на выбор в зависимости от конфигурации CIC фильтра.

У микроконтроллеров много SPI трансиверов. Можно подключить столько микрофонов сколько есть SPI модулей у микроконтроллера.

открыл для себя Nuvoton NAU88C22YG. Отличный 24-битный стерео кодек. Вот его-то я и буду использовать в этом проекте. 

Компания Nuvoton Technology известна тем, что другой её аудиокодек NAU88C22 был заложен в культовый SDR-приёмник Малахит DSP3.
https://malahiteam.com/product/priemnik-malahit-dsp3/

Очень интересное решение!

Спасибо.

А с сетевым трафиком I2S не приходилось работать? 

Будучи студентом в 2015 году писал прошивку для софт процессора MicroBlaze, который был сконфигурирован на основе Xilinx FPGA Spartan 6, где происходила передача радарных данных по UDP через LwIP на скорости 470 MBit/s.

Почему бы не подключить mems микрофон по spi и не писать голый pdm? Потом уже на PC трансформировать sigma Delta модуляцию в pcm семплы.

 как прослушать на диктофоне - непонятно.

Я вам больше скажу. Можно не просто воспроизводить записанные звуковые дорожки. Можно записывать и воспроизводить звук одновременно. Причем на одном единственном микроконтроллере.

Вот даже есть отдельная методичка про технологию Audio LoopBack.

Обработка звука в реальном времени (или Full Duplex I2S на STM32)
https://habr.com/ru/articles/1058052/

для тех кто хоть иногда выходит за пределы мира STM32, наверное, картина будет противоположной.

Да. Так и есть.

Использую J-Link. Скорость работы уверенно побеждает более высокую стоимость (речь естественно про клон). Быстрее загружает, быстрее шагает по сравнению с ST-Link

Да. Именно так.

Напишите пожалуйста про устройство автоматической коробки переключения передач (АКПП).

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

А какой у Вас отладочный клиент? Какой отладочный сервер задействован в связке с St link?

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

На счет make согласен, но это не единственный вариант сборочной системы

Какие еще есть?

MIK32 Амур (К1948ВК018) — первый российский 32-битный микроконтроллер на ядре RISC-V от АО «Микрон». Для работы с ним разработчики предлагают связку VS Code + PlatformIO

Нормально так, использовать IDE PlatformIO из недружественного государства для программирования российского микроконтроллера K1948BK018 на казённом режимном заводе Микрон.

Все таки стоит на нормальную SD карту делать запись и как было сказано ранее, сделать готовое устройство. Просто на этих макетках как то кустарно получается. А так, сделать печатную плату, красивый корпус, все укомпоновать, добавить кнопки быстрого доступа к командам, небольшой дисплей и будет изделие, а не полуфабрикат.

В России и так делают хорошие диктофоны семейства EDIC.
https://www.telesys.ru/Products/EM
Можно просто взять и заказать себе готовое устройство.

 Схемы устройства нет. 

Я считал, что отладочные платы от компании DevEBox очень широко известны и не нуждаются в доп. рекламе. Тем не менее вот документация на учебно-тренировочную плату

DevEBox STM32F4XX M

https://stm32-base.org/boards/STM32F407VGT6-STM32F4XX-M.html

Вот её схемотехника

https://github.com/aabzel/trunk/blob/main/docs/boards/DevEBox_V3_0/sch/original-schematic-STM32F407VGT6_STM32F4XX_M.pdf

На её основе и был смонтирован прототип.

индикации нет.

Я добавил индикацию для диктофона. LED всегда мигает с частотой 1Hz. Как метроном.

При этом: 
1) Если происходит запись звука, то LED мигает с заполнением 10%.
2) Если происходит воспроизведение звука, то LED мигает с заполнением 80%.
3) Если ничего не происходит, то  LED мигает с заполнением 50%.

Мигание в 1 Hz весьма удобно, так как позволяет глядя на прибор посчитать в уме длительность записи или воспроизведения.

 как прослушать на диктофоне - непонятно. 

У меня есть отдельная тестировочная сборка

dev_ebox_stm32f4x_play_rec_gcc_m

как раз специльно для демонстрации возможности записи звука с последующим воспроизведением.

Вот тут можно скачать бинари.

https://github.com/aabzel/Artifacts/tree/main/dev_ebox_stm32f4x_play_rec_gcc_m

Достаточно в UART CLI выполнить команду

rec_play_start N

и прибор начнет записывать N секунд, а записав тут же воспроизведет записанное в наушники.

Log выполнения команды rec_play_start

Где это включается?

Вот интересное кино...
И кто в РФ делает эти самые сложные проекты?
И что это за проекты такие?

Information

Rating
81-st
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов