Перейти к содержанию
    

nikkov

Свой
  • Постов

    216
  • Зарегистрирован

  • Посещение

Весь контент nikkov


  1. Спасибо за перевод! Хотя особо и не страдаю от английского интерфейса, но иногда хочется почитать и на родном языке. Кстати, DS PCB неплохо подтянулась, теперь вполне нормальное решение для не сильно сложных вещей и, особенно, для не профессионалов.
  2. Да, на переходных есть выбор варианта. Но для падов, где это более актуально, нет возможности индивидуально задать как подключать площадку к плейну. Понятно, что зато бесплатно, но все же, что им стоит добавить такую малость.
  3. Да, там циклический буфер из 2-х частей, в один пишется то, что принимается по USB, из другого читает DMA. Части лежат в памяти друг за другом. При равенстве скоростей приема и отдачи расстояние между указателем чтения и указателем записи должны быть равны размеру одной части. Если расстояние уменьшается или увеличивается, до идет коррекция размера пакета от хоста
  4. Драйвер USB Audio под Windows не слишком точно отслеживает изменение размера данных, т.е. относительно небольшие отклонения от нормального размера он просто не успевает отрабатывать. Поэтому в *-widget экспериментально подбирали ту дельту, на которое скачком изменялось значение передаваемое через FB EP. С той стратегией, что там сейчас работает проблем вроде нет, хотя на первых этапах были. Код там несложный для понимания, находится в файле uac1_device_audio_task.c
  5. Больше примеров, меньше ошибок . Так как это полноценные драйверы, то они реализуют звуковое устройство и все программы Windows могут работать с ними. С моим же драйвером могут работать только те программы, которые поддерживают ASIO. Для остальных программ звукового устройства просто не существует.
  6. Да пока нечего описывать. Просто хочу доделать нормальную реализацию USB Audio. АВР32 не совсем для этого годен, поэтому выбрал для себя LPC. На данный момент ничего нет, кроме плат собственной разработки с LPC1837 и LPC4337, да китайского кита open4337 на том же LPC4337. В качестве ЦАП-а и АЦП на момент разработки хочу использовать небольшой модуль на UDA1380 который можно подключить и к моим платам (как и его же Ethernet). Выбор стеков еще впереди, т.к. пока нет времени заняться программированием, да и жду выхода LPCOpen 2. Мой ASIO драйвер хорош только тем, что он open-source / бесплатный, ну и данные выводятся в обход звуковой подсистемы виндовс, поэтому никакие микшеры на него не влияют. Ну и он пока единственный легальный бесплатный способ вывести под Windows через USB 192 кГц/24 бит. Коммерческие драйверы для Windows от Thesycon гораздо лучше, так как это полноценные драйверы с поддержкой ASIO, но они не бесплатны. У Linux и мака с UAC2 проблем нет. Самый активный форум по этой тематике - это была группа Audio-Widget в гугл-групп. Но сейчас там затишье, основной разработчик, Alex Lee, делает (даже можно сказать сделал) реализацию на ezdsp5535, его интересовал, прежде всего, многоканальный вывод. Ну а те, кто делает коммерческие разработки, тот информацией делиться не будет.
  7. У LPC тоже 8/16/32 у I2S, но это вроде не проблема, т.к. почти все ЦАП-ы поддерживают 32BCK, а если нет, то либо ПЛИС, либо что-то типа AD1896 должно подойти. Кстати, чем еще интересен LPC43XX, это режимом SGPIO, который позволяет реализовать многоканальный I2S. Немного на-оффтопил я тут , но тема лично мне интересная.
  8. Не устроили 2 момента: 1 - размер буфера EP 512 байт, что уменьшает вдвое пропускную способность, отчего для UAC1 доступна частота максимум 48кГц; 2 - невозможность сконфигурировать 2 EP с одним номером, но с разными направлениями. Это не позволило запустить ввод с SDR-Widget с драйверами от других UAC2 карт, при том, что вывод работает. У меня нет опыта работы ни с LPC, ни с STM, поэтому мне проще (с АВР32 его тоже не было), а выбор LPC обусловлен наличием HS PHY.
  9. Просто я участвовал в написании прошивки для *-Widget и ASIO драйвера для него, но некоторые ограничения avr32 охладили к нему мой интерес. Сейчас смотрю в сторону LPC18**/LPC43** от NXP, т.к. у них есть нормальный HS.
  10. Left Radio, UAC 1 реализуете?
  11. STM32F2xx USB FS ISO IN EP libusb

    Я делал нечто похожее правда для HS и на libusbk, но начинал для FS и на libusb. Сейчас не помню из-за каких конкретно проблем с изохронными передачами в libusb перешел на libusbk, но с последней работа пошла гораздо бодрее. Да, кстати, а зачем использовать libusb для обычного USB Audio? Чем стандартный Win драйвер не угодил?
  12. У нас такого не встречал, да и мне проще в инет-магазине купить, пусть и подождать приходится около месяца. У этого продавца я купил несколько периферийных модулей для своей платки, скоро должны приехать, а сама плата еще не готова :-)
  13. Спасибо! Все работает. Про Area/Copper Keep Out знал, а про влияние толщины линии нет
  14. Подскажите, пожалуйста, как избежать при заливке полигона возникновения узких залитых областей (на рисунке обведено желтым)?
  15. Выравнивал, чтобы уложиться в требуемую разницу < 1.25 мм. Без этого разница была ~1.5 мм
  16. В общем думаю сделать так: проводники 0.3, зазор между линиями и заливкой 0.1524
  17. Про это я читал, но с полигонами, как и с расширением проводников не очень, так как места немного, поэтому выбирать придется из 2-х зол - кружить или по слоям прыгать.
  18. А можно узнать параметры дорожек для требуемого волнового сопротивления? Все калькуляторы показывают для плат с толщиной >1 мм требуемую ширину линий не менее 1 мм, что практически невозможно реализовать на плате.
  19. Для AVR32 я тоже разводил HS USB, про волновое не скажу, но работает нормально. Но там две дороги идут параллельно от авр-ки до разъема. Обогнуть, без смены слоя, в моем случае можно только у разъема, но это мне кажется еще более худшим вариантом.
  20. Пытаюсь развести простую отладочную плату для LPC18XX/43XX в корпусе LQFP144 на 2-х слойке. Столкнулся с тем, что порядок выводов на процессоре и miniUSB разъеме разные. Т.е. чтобы довести DM+ и DM- от процессора до разъема надо их поменять местами. Отсюда вопрос, как это правильней сделать? Пока склоняюсь к тому, чтобы разъем и процессор разместить на разных сторонах платы и сделать виасы непосредственно около разъема и там же, на виасах, повесить ESD защиту. Смущает то, что на 2-х слойке и так 90-ом нереально, а тут еще и переходные, как оно работать будет? Ну и чисто эстетически монтаж на разные стороны не нравится, но перекрещивать дороги, как мне кажется, совсем неправильно.
  21. Попробовал порисовать несложную плату, вроде все получилось, нашел пока только одну проблему: нельзя задавать для отдельных площадок способ соединения с полигоном. Т.е. рисую Copper Pour Area и делаю его заливку, указывая нужен ли термобарьер или нет сразу для всех площадок. А если я хочу часть площадок без барьера, а часть с ним, то вынужден делать несколько полигонов, что крайне неудобно. У Pulsonix-а можно в свойствах площадки изменить способ его подключения, а здесь нет.
  22. Не факт :-) . Все зависит от компилятора, я стандарт не изучал, но по крайней мере лет 10 назад сталкивался с тем, что переменные не инициализировались. С тех пор инициализирую их сам в конструкторе, и мне спокойней, и тому, кто мою программу читает понятней.
  23. Обявление класса это как раз то, что находится внутри фигурных скобок, т.е. class StepMotor { float Step; int Speed; public: void initStep (float step); void initSpeed (int speed); }; и его обычно выносят в заголовочный файл, типа stepmotor.h А в stepmotor.cpp определяются методы класса (опять же обычно, но не обязательно): void StepMotor::initStep (float step) { ... } Да, и класс с внутренними переменными без конструктора это нехорошо, какое значение будет у Step и Speed первоначально?
  24. А что непонятного? В первом фрагменте на момент вызова функций класса StepMotor о самом классе еще ничего не известно, так как он описан ниже.
×
×
  • Создать...