Открыть список
Как стать автором
Обновить

Комментарии 12

Спасибо за цикл статей, очень к месту.
В своих SDR трансиверах я так пока и не делал usb, САТ чисто через USART.
С ходу этот USB не разобрал, а потом просто руки не доходили.
Думаю в новом TRX добавить это. Да, DSP это не просто, года 3 осваивал.
Но 10 лет назад было гораздо сложней, (помню списывался с RX9CIM, Георгий тоже осваивал тему, по началу с ошибками), сейчас куча примеров и литературы в инете.
73! RA9YTJ

Спасибо за поддержку! Если интересно, как я сделал поверх этого решения CAT, могу скинуть в течение недели в личку.
73! RD9F

Будет интересно. Спасибо.
сейчас куча примеров и литературы в инете

А можно несколько ссылок? Я находил только формулы, которые ещё по книжкам Полякова знаю, а что до практического применения и библиотек :(

Я имел введу открытые проекты и книги по ЦОС. Ссылки не собирал.
На гитхабе есть по поиску SDR. Книги по гуглу практика по DSP.
Я вот библиотеки не использую, только HAL. Все функции DSP писал
под себя. По моему не встречал целевые статьи и книги по теме, кроме
Полякова, но он по аналоговой теме.
Всего везде помаленьку.
Вот сейчас популярность набирает очень оригинальный проект SDR на Arduino!
github.com/threeme3/QCX-SSB
там исходник с комментариями. Конечно по параметрам он хилый, но как образец
очень показателен. Это же надо полный DSP для SDR на ATmege 20МГц! Да еще очень смелый метод формирования SSB на передачу.

Спасибо! Теперь мне это аппаратное решение не развидеть!
Покопаюсь в коде, может удастся разобраться в азах.

Коллеги! Вопрос: продолжать тему SDR?

да, да! продолжайте!
73! UQ1GWC
Доброго времени суток, очень познавательный цикл, жалко его не было месяц назад)
В ваших исходниках на Гит Хабе я не нашел #include usbd_audio.h, у вас пока все добавление двух устройств для опознания — в дескрипторе usbd_desc.c?
Я просто не понял, где вы ему скармливаете дескриптор аудиоустройства)
Еще не очень понял с EP0 для аудиоустройства, вы её переназначили в usbd_audio.h:
#define AUDIO_CTRL_IF 0x02U,
она используется для управления аудиоустройством, в нашем случае это AUDIO_REQ_GetCurrent и AUDIO_REQ_SetCurrent, если я правильно понял, и используется одна для аудиоустройства (и для интерфейса In и для OUT), но в функциях управления (который в стандартной библиотеки не реализованы, только функция MUTE) используется
структура control (control.data), которая где-то в драйвере аудио подвязана на EP0, я не нашел, где будет переназначение на ваше AUDIO_CTRL_IF?
Вы уже пробовали ваш вариант на «полный» функционал (в смысле, ввод.вывод звука)?
Извиняюсь за может быть глупые вопросы, я пока только в начале пути, и с USB аудиоустройством на STM у меня пока ненормативная лексика, хотя я немного с другого конца его точу))
Коллега!
1. Основная часть дескриптора находится в файле usbd_comp.c. Подключение usbd_audio.h производится там же.
2. EP0 используется для управления ВСЕМ составным устройством и никуда не переназначена, AUDIO_CTRL_IF = номер интерфейса управления звуковым устройством.
3. «Полный» функционал реализован: трансивер, для которого это разрабатывалось работает и на прием, и на передачу.
4. Читайте документы, ссылки на которые я привел в публикации, и у Вас все обязательно получится!

Портировал на другой STM.
Долго определялась в системе только как COM порт.
Если в системе стоял драйвер от STM, его нужно удалить, или поменять VID или PID. После этого все ОК.

В статье это место обозначено как «Неочевидный нюанс 2». Ниже по тексту приведен пример кода с указанием, какие три байта надо поменять в стандартном дескрипторе устройства USB (USB standard device descriptor), размещённом в файле usbd_desc.c, чтобы устройство определялось не как COM-порт.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.