реклама на сайте
подробности

 
 
> STM32 Audio device class
maxis
сообщение Jun 10 2015, 07:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 2-06-09
Пользователь №: 49 843



Приветствую. До этого работал только с плис и дсп, теперь осваиваю стм и юсб.
Необходимо по юсб принять аудиопоток на стм. Собрал в CubeMX проект, потом подправил дескрипторы под 48kHz, 24bit, увеличил стек и кучу чтоб все завелось.
Устройство в виндовсе определяется без ошибок, аудио выплёвывает.
Теперь вопрос, а где эти данные искать в микроконтроллере?!? В описании библиотеки:
Цитата
How to use this driver
This driver uses an abstraction layer for hardware driver (i.e. HW Codec, I2S interface, I2C
control interface...). This abstraction is performed through a lower layer (i.e.
usbd_audio_if.c) which you can modify depending on the hardware available for your
application.
To use this driver:
Through the file usbd_conf.h, you can configure:
• The audio sampling rate (define USBD_AUDIO_FREQ)
Call the function USBD_AUDIO_Init() at startup to configure all necessary firmware and
hardware components (application-specific hardware configuration functions are also called
by this function). The hardware components are managed by a lower layer interface (i.e.
usbd_audio_if.c) and can be modified by user depending on the application needs.
The entire transfer is managed by the following functions (no need for user to call any
function for out transfers):
• usbd_audio_DataIn() and usbd_audio_DataOut() which update the audio buffers with
the received or transmitted data. For Out transfers, when data are received, they are
directly copied into the audiobuffer and the write buffer (wr_ptr) is incremented.
The Audio Control requests are managed by the functions USBD_AUDIO_Setup() and
USBD_AUDIO_EP0_RxReady(). These functions route the Audio Control requests to the
lower layer (i.e. usbd_audio_if.c). In the current version, only SET_CUR and GET_CUR
requests are managed and are used for mute control only.


Причём функция usbd_audio_DataIn пустая и программа в неё даже не заходит. Где искать этот самый audiobuffer?

Сообщение отредактировал maxis - Jun 10 2015, 07:02
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
romanetz
сообщение Jun 16 2015, 03:46
Сообщение #2





Группа: Участник
Сообщений: 8
Регистрация: 1-06-15
Пользователь №: 86 958



Посмотрите проекты sdr_widget и audio_widget. Все исходники доступны. Кроме того, посмотрите мой проект, который выкладывал в теме про DMA для DDS. http://electronix.ru/forum/index.php?showtopic=128332
Также здесь http://electronix.ru/forum/lofiversion/ind...hp/t115850.html
Freescale USB stack тоже содержит пример юсб аудио устройства с эксплисит эндпойнтом

Фишка в том (секрет Полишинеля), что Виндовс некорректно реагирует на то число, которое ей возвращает аудио девайс в фидбэк эндпоинте. В Audio_widget эту проблему обрулили, насколько понял, по отношению к частоте дискретизации получается кольцо из ресэмплера и ПИ-регулятора (один в драйвере usbaudio.sys, второй в устройстве)

На форуме ST есть гуру по этому вопросу - Tsuneo Chinzei.

Сообщение отредактировал romanetz - Jun 16 2015, 03:39
Go to the top of the page
 
+Quote Post
ig_z
сообщение Jun 16 2015, 08:35
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(romanetz @ Jun 16 2015, 06:46) *
Фишка в том (секрет Полишинеля), что Виндовс некорректно реагирует на то число, которое ей возвращает аудио девайс в фидбэк эндпоинте. В На форуме ST есть гуру по этому вопросу - Tsuneo Chinzei.

[DELETED] Вин ХП и 7 работают как и ожидается. Тсунео известный фантазер, когда его попросили привести док-ва ресемплинга, слился из темы и больше не появлялся. Больше напоминае теоретига, ни разу не делавшего реальный аудио проект.
От себя добавлю, нет никакого ресемплинга и ПИ не нужен, достаточно прямого расчета. Хотя разумеется никто не запрещает вонзать эти сущности в свой проект, если сильно хочется.

Сообщение отредактировал IgorKossak - Jun 17 2015, 18:37
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016