Страница 22 из 33 Первая ... 12202122232432 ... Последняя
Показано с 421 по 440 из 651

Тема: Дешевый USB transport (для саморазвития)?

  1. #1 Показать/скрыть первое сообщение.
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    45
    Сообщений
    743

    По умолчанию Дешевый USB transport (для саморазвития)?

    Идея такая: берется STM32F4xx. У него есть USB и I2S. Проц и USB тактируется от HSE - кварц на необходимое кол-во МГц+PLL. Через USB в асинхронном режиме выводится аудио поток.
    Для I2S вариантов тактирования два: от PLL с соответствующим снижением качества или от ЦАПа на специальный вход модуля I2S.
    Модуль I2S поддерживает форматы Philips, RJ, LJ, PCM, 16 или 32 бит до 96 192 кГц. (Вы это всё знаете, конечно).
    Теоретически, можно получить универсальный вывод (ввод тоже) I2S через USB (для многих, думаю, достаточного уровня).

    Лично у меня сложности следующие:
    1. Исходники асинхронного вывода (и ввода) по USB.
    2. Получение от хоста параметров потока и переключение частот.
    3. Аппаратная реализация работы двух генераторов на один вход.
    4. Внутренняя синхронизация между I2S и USB.
    Ну и еще мелочей всяких.

    Набросайте ссылок по теме, пожалуйста.

    P.S. Audio Widget я конечно, скачал, но, честно говоря, разобраться пока не смог.
    Последний раз редактировалось antonluba; 25.10.2015 в 21:47.

  2. #421
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,981

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от vladsan75 Посмотреть сообщение
    Что значит нормально флак? У меня на USB Host Fs нормально тянет FLAC 96/24
    Тогда хорошо. Те реализации декодеров что я видел - 96 не тянули.


    Цитата Сообщение от vladsan75 Посмотреть сообщение
    но это при работе с SD Card 1 бит)
    А на 100-ногом 407 по другому и не получится, если внешний клок на I2S использовать, пин занят


    Цитата Сообщение от maxssau Посмотреть сообщение
    про XTAG не забыть, 1800 р.
    Это одноразово. для стм тоже ст-линк или джелинк нужен. Хотя, он есть на дискавери и пр. бордах.


    Цитата Сообщение от vladsan75 Посмотреть сообщение
    Два продаваемых здесь преобразователя подобного плана (USB FS->I2S) тоже идут без развязки, правда один уже больше не продается.
    Мои продаются, правда только в составе ЦАПов, и естественно - они все с изоляторами.
    Но и кроме изоляторов они существенно сложнее того, что описано выше (разъем+проц+кварц+стаб).

    Цитата Сообщение от maxssau Посмотреть сообщение
    самая глобальная проблема этих решений - в отсутствии свободных(а в некоторых случаях никаких) драйверов для UAC2,
    Я потому и написал:

    Цитата Сообщение от Alex Посмотреть сообщение
    С HS будет куча проблем помимо фая, хотя сейчас это уже проще чем раньше.
    потому как винда уже как и линукс/ios умеет работать без драйвера, разве что АСИО не будет.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  3. #422
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    39
    Сообщений
    2,598

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от antonluba Посмотреть сообщение
    На али вот такие голые платы есть.
    http://s.aliexpress.com/aERRNbqE
    Можно впаять только то, что нужно
    есть вот такая штука

    https://ru.aliexpress.com/item/STM32...b7f162cb0921cb

    USB HS/FS, плюс 8Мб оперативки, думаю этого достаточно под любой ресурсоёмкий декодер.
    _________________
    Евгений

  4. #423
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,981

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от maxssau Посмотреть сообщение
    есть вот такая штука

    https://ru.aliexpress.com/item/STM32...b7f162cb0921cb

    USB HS/FS,
    Есть у меня такая. С HS на ней могут быть определенные проблемы - PHY соединяется с процом параллельной шиной работающей на 60Мгц, разводка которой весьма критична. Мало того что тут понадобиться еще одна платка с этим фаем, так еще соединение проводками такой шины может работать крайне неусточиво.

    P.S. Что меня во всех STM32 всегда забавляло (и на 407-м когда плеер Mr.Hyde делал, с HS и SATA) - нафига они раскидали пины под эту шину по всем сторонам корпуса? Чтобы тем кто плату разводит жизнь малиной не казалась? (типа выравнивания длины проводников, минимум переходов со слоя на слой, контроль импеданса).
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  5. #424
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    45
    Сообщений
    743

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от maxssau Посмотреть сообщение
    есть вот такая штука

    https://ru.aliexpress.com/item/STM32...b7f162cb0921cb

    USB HS/FS, плюс 8Мб оперативки, думаю этого достаточно под любой ресурсоёмкий декодер.
    Насколько я понял, у 407 такой же hs, как здесь.

  6. #425
    Частый гость Аватар для vladsan75
    Регистрация
    06.06.2010
    Адрес
    г.Саратов
    Возраст
    49
    Сообщений
    430

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от Alex Посмотреть сообщение
    Есть у меня такая. С HS на ней могут быть определенные проблемы - PHY соединяется с процом параллельной шиной работающей на 60Мгц, разводка которой весьма критична. Мало того что тут понадобиться еще одна платка с этим фаем, так еще соединение проводками такой шины может работать крайне неусточиво.
    Не так страшен HS PHY, как его малюют. Подключал к STM32F4Discovery китайскую плату с USB3300 на проводах около 10см - так USB HS Host работал стабильно, не наблюдал ни одного сбоя. Да и у SergVKS на его Hires транспорте PHY разведен к F405 в 2х слоях и, думаю, без всякого выравнивания - и все работает.

    Цитата Сообщение от Alex Посмотреть сообщение
    Что меня во всех STM32 всегда забавляло (и на 407-м когда плеер Mr.Hyde делал, с HS и SATA) - нафига они раскидали пины под эту шину по всем сторонам корпуса? Чтобы тем кто плату разводит жизнь малиной не казалась?
    Это да, и не только PHY, посмотрите как разведен FSMC (и переназначить выводы нельзя), но думаю у других производителей ситуация не намного лучше.

    ---------- Сообщение добавлено 09:41 ---------- Предыдущее сообщение было 09:20 ----------

    Цитата Сообщение от maxssau Посмотреть сообщение
    USB HS/FS, плюс 8Мб оперативки, думаю этого достаточно под любой ресурсоёмкий декодер.
    Ну, во первых USB HS там нет, а во вторых не все упирается в оперативку - у F7 ее достаточно и без внешней памяти, к тому же в декодерах можно необходимые буферы внести в тело функций и оперативка будет определяться только самым прожорливым. Ограничением может оказаться скорость, например в APE при сжатии insane не хватит даже H7 -> из RockBox "This is only needed for "insane" files, and no current Rockbox targets can hope to decode them in realtime, except the Gigabeat S (at 528MHz)".
    Последний раз редактировалось vladsan75; 21.02.2019 в 11:00.

  7. #426
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,981

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от vladsan75 Посмотреть сообщение
    Да и у SergVKS на его Hires транспорте PHY разведен к F405 в 2х слоях и, думаю, без всякого выравнивания - и все работает.
    Работает, если расстояния маленькие. Я Dr.Hyde тоже в 2-х слоях разводил, и транспорты на XMOS тоже, но там и там PHY очнь близко от CPU, поэтому разница в длине дорожек меньше сказывается. "Змейки" я не добавлял, Пикад не умеет. А вот когда PHY на отдельной платке и проводками к другой - тут всякое бывало. В итоге у меня и с проводками все работало.

    Цитата Сообщение от vladsan75 Посмотреть сообщение
    Это да, и не только PHY, посмотрите как разведен FSMC (и переназначить выводы нельзя),
    Ага
    Приходилось дисплеи к FSMC цеплять, тоже матерился на распиновки.
    Сейчас правда, стараюсь в основном SPI-ные использовать, благо кино мне там крутить не надо, успеет, а спиаев для таких целей, в STM32 более чем дофига.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  8. #427
    Завсегдатай Аватар для Yurgen
    Регистрация
    23.05.2005
    Адрес
    Из Замкадья
    Возраст
    52
    Сообщений
    1,518

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от vladsan75 Посмотреть сообщение
    на его Hires транспорте PHY разведен к F405 в 2х слоях
    На двухслойке у него транспорт USB FS, а HS у него сделан по всем правилам высокоскоростной разводки.
    Я поэтому свою плату не делал, а купил готовую Discovery F769.


    Цитата Сообщение от vladsan75 Посмотреть сообщение
    Подключал к STM32F4Discovery китайскую плату с USB3300 на проводах около 10см - так USB HS Host работал стабильно, не наблюдал ни одного сбоя
    Хорошо если так, но у меня например на USART с его 115200 иногда проскакивают сбойные байты.

  9. #428
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,981

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от Yurgen Посмотреть сообщение
    На двухслойке у него транспорт USB FS, а HS у него сделан по всем правилам высокоскоростной разводки.
    Можно и на 2-х, если понимать что делать.
    Уменя болшинство XMOS HS с внешним PHY тоже на 2-х слойке, но вход PHY очень близко от USB разъема с одной стороныж и с процом с другой. Проблем не наблюдалось.
    А вот на тех что с внутренним PHY - там между ним м разъемом обязательно надо ESD защиту ставить, в sot23-6, и если всё в 2 слоя, то "есть нюансы".
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  10. #429
    Частый гость Аватар для vladsan75
    Регистрация
    06.06.2010
    Адрес
    г.Саратов
    Возраст
    49
    Сообщений
    430

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Добавил APE. Чисто этот проект не тестировал, но аналогичный транспорт с SD card 1 bit работает нормально (MP3, 96/24 WAV, 96/24 FLAC, 96/16 APE, плюс UAC1 96/24). Поддерживает сжатие -с3000(high) для файлов 44/16 и 96/16, когда разгонял ядро до 216МГц - хватало на 96/24 -с2000(normal). Хочу прикупить STM32H743 - там в 100 ногом корпусе есть второй SDMMC, т.е. можно считывать с карты по 4 битной шине и подавать внешний аудио клок, да и частоту можно задрать более 300МГц без увеличения потребляемой мощности - все таки хочу получить 96/24 для сжатия -с3000(high).

    Чуть подправил
    USB_HS_FS_host_FS_device.rar
    Последний раз редактировалось vladsan75; 28.02.2019 в 10:14.

  11. #430
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    45
    Сообщений
    743

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    vladsan75, очень круто.
    Не подскажешь, почему может mute не работать? Когда в микшере windows тыкаешь на динамик, он зачеркивается, но звук идет. Очевидно, отправляется команда мьют.
    Как ее обработать корректно?

  12. #431
    Частый гость Аватар для vladsan75
    Регистрация
    06.06.2010
    Адрес
    г.Саратов
    Возраст
    49
    Сообщений
    430

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от antonluba Посмотреть сообщение
    Очевидно, отправляется команда мьют.
    Как ее обработать корректно?
    MUTE не работает потому что оно предусмотрено, но не реализовано за ненадобностью.
    Вот самый простой вариант:
    USB_audio_sin_3.rar
    Тут используется PB4(можно и любой другой свободный) для включения команды MUTE в самом ЦАП, можно и заполнить аудио буфер нулями (там в проекте уже подобное используется), но это пробуйте сами - ведь в теме написано "для саморазвития", вот и развивайтесь, к тому же это совсем не сложно.

  13. #432
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    45
    Сообщений
    743

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Спасибо.
    В цапе мьют нет. Поэтому нужно обработать программно. Только я не понял, где обработчик.
    Сейчас код посмотрю.

    ---------- Сообщение добавлено 14:17 ---------- Предыдущее сообщение было 14:12 ----------

    Вот здесь обрабатывать нужно?:

    Скрытый текст

    static uint8_t MuteCtl (uint8_t cmd)
    {
    /* Call low layer mute setting function */

    /* if (EVAL_AUDIO_Mute(cmd) != 0)
    {
    AudioState = AUDIO_STATE_ERROR;
    return AUDIO_FAIL;
    }*/

    return AUDIO_OK;
    }
    [свернуть]

  14. #433
    Частый гость Аватар для vladsan75
    Регистрация
    06.06.2010
    Адрес
    г.Саратов
    Возраст
    49
    Сообщений
    430

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Да не надо никаких обработчиков, все делается в usbd_audio_core.c, вот пробуй :
    USB_audio_sin_3.rar

  15. #434
    Новичок Аватар для kokot
    Регистрация
    27.12.2018
    Сообщений
    10

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Здравствуйте, уважаемые форумчане. Интересует возможность аппаратного смешения двух сигналов формата I2S с одинаковой частотой дискретизации, но с не синхронизированными фазами. Какие есть решения?

  16. #435
    Старый знакомый
    Автор темы
    Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    45
    Сообщений
    743

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от kokot Посмотреть сообщение
    Здравствуйте, уважаемые форумчане. Интересует возможность аппаратного смешения двух сигналов формата I2S с одинаковой частотой дискретизации, но с не синхронизированными фазами. Какие есть решения?
    Не совсем понятно, о каких фазах речь.
    Опорный тактовый генератор общий?

  17. #436
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    39
    Сообщений
    2,598

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от kokot Посмотреть сообщение
    Здравствуйте, уважаемые форумчане. Интересует возможность аппаратного смешения двух сигналов формата I2S с одинаковой частотой дискретизации, но с не синхронизированными фазами. Какие есть решения?
    adau1452, можно любые смешивать
    _________________
    Евгений

  18. #437
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,981

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от maxssau Посмотреть сообщение
    adau1452, можно любые смешивать
    Да, это пожалуй, будет самое простое. Все остальное, что приходит на ум, получиться в разы дороже и сложнее.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  19. #438
    Частый гость Аватар для vladsan75
    Регистрация
    06.06.2010
    Адрес
    г.Саратов
    Возраст
    49
    Сообщений
    430

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от kokot Посмотреть сообщение
    Интересует возможность аппаратного смешения двух сигналов формата I2S с одинаковой частотой дискретизации, но с не синхронизированными фазами. Какие есть решения?
    Если вам надо задержать один сигнал относительно другого,в принципе очень просто: считаете нужную задержку одного сигнала относительно другого в семплах (дискретность 1/FS), затем делаете буфер с такой же длиной и заполняете его данными, которые нужно задержать. При переполнении буфера, следующий семпл записывается в первую ячейку и т.д., но перед записью считываем данные этой ячейки, которые являются задержанными(на нужное количество семплов) и так для следующей и т.д. и складываем с не задержанными данными(не забудьте потом результат поделить на 2). Я таким образом реализовывал бинауральный преобразователь в своем транспорте, в плане задержки, так же там делал цифровой ФНЧ 1го порядка с целочисленной математикой и 64 битным результатом - в конечном счете получал 32 битный результат, который и выводил на ЦАП, эффект получался интересный, но был небольшой подъем в области низких частот.
    Последний раз редактировалось vladsan75; 01.03.2019 в 13:36.

  20. #439
    Новичок Аватар для kokot
    Регистрация
    27.12.2018
    Сообщений
    10

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Цитата Сообщение от vladsan75 Посмотреть сообщение
    Если вам надо задержать один сигнал относительно другого,в принципе очень просто: считаете нужную задержку одного сигнала относительно другого в семплах (дискретность 1/FS), затем делаете буфер с такой же длиной и заполняете его данными, которые нужно задержать. При переполнении буфера, следующий семпл записывается в первую ячейку и т.д., но перед записью считываем данные этой ячейки, которые являются задержанными(на нужное количество семплов) и так для следующей и т.д. и складываем с не задержанными данными(не забудьте потом результат поделить на 2). Я таким образом реализовывал бинауральный преобразователь в своем транспорте, в плане задержки, так же там делал цифровой ФНЧ 1го порядка с целочисленной математикой и 64 битным результатом - в конечном счете получал 32 битный результат, который и выводил на ЦАП, эффект получался интересный, но был небольшой подъем в области низких частот.
    Спасибо, решение действительно достаточно простое на микроконтроллере. Но не совсем понял, почему у Вас изменилась АЧХ на низких частотах. Из за перехода к 32 разрядам от 64?

  21. #440
    Частый гость Аватар для vladsan75
    Регистрация
    06.06.2010
    Адрес
    г.Саратов
    Возраст
    49
    Сообщений
    430

    По умолчанию Re: Дешевый USB transport (для саморазвития)?

    Нет, я же описал результат работы бинаурального преобразователя, а там левый канал задерживается относительно правого, фильтруется ФНЧ, уменьшается по амплитуде и смешивается с не задержанным сигналом правого(для правого аналогично).

Страница 22 из 33 Первая ... 12202122232432 ... Последняя

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •