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

lebiga

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные lebiga


  1. Несколько опоздал к разговору, но замечу, что адаптивный режим на выводе в винде хоть и глюкавый, но заставить его работать можно, надо только дергать его порезче или буфер большой иметь.

     

    :biggrin:

     

    Адаптивный режим не подходит для прецезионных измерений. У меня синхронизация записи - по кварцевому генератору, данные потом запускаются на БПФ - получаем спектр сигнала. На адаптивном режиме метрологию пройти невозможно.

  2. вот почти оно и надо! единственное меня под конец прочтения всего рекомендованого материала заглючило: какой из проектов мы обсуждаем в качестве примера. тоесть во фразе

     

    речь идет о экземпле который в иаре вложен? или о проекте от nxp?

     

    экзампл в Иаре (папка NXP) и на сайте NXP - один и тот-же, могут быть легкие различия

     

     

    кстати Юрий_СВ своей ссылкой на Atmel дал неплохую заценку.

    на сайте Атмеля можно скачать их набор библиотек для дляты AT91SAM7SE-EK.

    http://www.atmel.com/dyn/resources/prod_do...91sam7se-ek.zip.

     

    дальше по относительным путям:

    документация по проекту композитного аудио + CDC

    /at91sam7se-ek/softpack-1.5/usb-device-composite-cdcaudio-project/usbmi_devicemi_compositemi_cdcaudiomi_project0_dir_description.html

     

    а это про то как в аудио добавить запись

    /at91sam7se-ek/softpack-1.5/at91lib/usb/device/audio-speaker/USBAudioRecorder0_page_description.html

     

    чтото мне атмель сразу стал симпатичен..

    короче я на распутье. кто что лично пробовал? посоветуйте

     

    И в проекте NXP добавлять запись не надо - там она есть изначально.

     

    usb-device-composite-cdcaudio - не очень понял - это что - ЮСБ-КОМ преобразователь?

    Пожалуйста приводите полные ссылки - нет времени искать

     

  3. забыл сказать, нужно чтобы ввод был стерео с частой не ниже 48 кГц.

    в данных примерах моно, причем на 8-ми битке частоты дискретизации 8 кГц

     

    видимо тоже буду пробовать на нем стартануть. кодек и синтезатор не проблема, они всеравно будут. кодек, точнее аудио АЦП, чтобы обеспечить нужное качество, а синтезатор уже давно юзаем дабы не плодить кучу асинхронных генераторов на плате. сейчас все реализовано на PCM2103 + MSP2234 как управляющий контроллер. хочется на одном корпусе.

     

    ту lebiga: я если что надоем с вопросами, Вы не против?

     

    У меня стерео - 2 канала измерения, 48кГц, 16 или 20 бит. Кастомеру отдали версию с 16 бит - при 20 бит шумы все равно снижали диапазон до 16 бит . Регулировку volume переделал на регулировку входного усилителя (на цап DAC8043 и OP37, шаг усиления 2) - просто двигаешь рычажок в апликухе и все. Работоспособность хорошо проверяется через винамп. Можно посмотреть на diatos . kpi . ua - "Акустические измерения"

  4. Я не совсем понял, объясните плиз.

    Адаптивную синхронизацию вы не используете, значит остается асинхронный или синхронный режимы.

    Асинхронный режим глючит на виндах ниже висты.

    Остается синхронный режим, но большим буфером проблему не решить. Если девайс работает быстрее хоста, то сразу же имеем недостаток данных. Если девайс работает медленнее хоста, то буфер поможет, но все равно переполнение неизбежно. Единственный выход - синхронизация с соф.

    Или у вас как то по иному сделано?

     

    В вводом в компьютер проблем нет - синхронизация по кварцевому генератору 12.288 и данных с кодека.

    Проблема с выводом. До конца не решил. У меня цикл измерения около минуты - соответственно сделал буфер для генератора размером достаточным для непрерываемого выходного сигнала.

     

    Режимы - вместо

    (Int8U)UsbEpTransferIsochronous + (Int8U)UsbEpSynchAdaptive,

    я использовал

    (Int8U)UsbEpTransferIsochronous + (Int8U)UsbEpSynchAsynchronous + (Int8U)UsbEpUsageImplicit

     

    Проект сделан давно, че-то уже позабыл

  5. \IAR Systems\Embedded Workbench 6.0\arm\examples\NXP\LPC23xx\IAR-LPC-2378-SK\AudioDevice\

    \Keil\ARM\Boards\Keil\MCB2300\USBAudio\

     

    Еще у nxp есть такой пример i2s.usb.audio.demo.zip

     

    Делал на основании этого проекта. Ставил кодек PCM3002 (20 бит 2 канала, TI), внешний генератор 12.288Мгц - подавал на ШИМ и делил частоту для кодека - изменялась частота дискретизации. Для прецезионных измерений нужно убрать адаптивный режим в USB аудио. Ввод проблем не имеет, вывод нужно буфферизировать - иногда заканчивались данные с компа - и были паузы в генерируемом сигнале. Режимы коррекции скорости вывода в ЮСБ (драйвер) - не работают до сих пор - глюки винды, нужно было вводить обратную связь через HID интерфейс - но я обошелся большим буффером.

     

    процы - LPC2148 (кодек на SSP) и LPC 23x/17x (кодек на I2S)

     

    Успехов

  6. Меня сильно подкупила DSP либа для LPC17x с ИАРА 6.10 (идет и отдельно).

    БПФ 4096 точек на ассемблере рулит! Да и остальные модули применяю часто (FIR, random)

     

    Поэтому когда нужно было очень быстро сделать измерительное устройство - выбрал LPC

    Прицепил TI codec PCM3002 на I2S - и 2 канальный анализатор сигналов в реальном времени до 2кГц, есть запас и на больше

  7. LPC гораздо шустрее как и по максимальной частоте, так и по скорости выполнения из флеша.

    А так IMHO надо по периферии выбирать. Еще стоит на люминари от TI обратить внимание у них PHY Ethernet прямо на борту.

     

    Только не люминари - чего только стоит их баги с ревизиями B1, C1 и С3 - купил новые чипы, запаял - а программа даже не стартует - нужно перекомпилировать с корректированным скаттером - шаманство прямо, весь процесс производства девайсов ломается.

     

    NXP все время покупается через Гранд Электроникс - цены самые нормальные, срок поставки - пару дней (с России).

     

     

  8. Добрый день! :biggrin:

     

    никто не сталкивался с проблемой?:

     

    LPC1768 - не работает правильно ADC при отладке через JTAG.

    Без отладки (даже с подключенным разъёмом всё работает).

     

    Измерения производятся циклически по всем каналам, каналы переключаются по прерыванию АЦП.

     

    С jtag прерывания происходят но результат измерения всегда = 4095 т.е. максимальное значение.

     

    Мне помогла переустановка драйвера JLINK.

    Насчет кода 4095: у меня это воспроизводилось когда монтажница забыла запаять микросхему опорного напряжения - UREF был 0

  9. Многоядерный для приема 1600 кБайт/с? Или какая-то обработка все же делается?

    Спектральная обработка в реальном времени, конечно. А отдельный поток на прием для того, чтобы не делать очень длинный буффер передачи (да и ограничение по памяти). А винда имеет особенность иногда отвлекаться на что-то и происходит переполнение. Да и замирание данных на экране не приветствуется...

  10. На вот такой платке: http://www.starterkit.ru/html/index.php?na...p=view&id=9 ,

    TCP/IP стэк кейловский (RTL), при частоте тактирования контроллера 72 МГц, в thumb mode (ибо библиотека там только для thumb),

    удалось пропихнуть в сторону компа

    ~20000 коротких (18 байт) UDP пакетов в секунду...

    К сравнению - у меня lwip, TCP, пакеты по 1024 байта, функции RAW API tcp_write() - 1638400 байта в сек поток работает отлично. Разработанная система - восьмиканальный анализатор. Только нужно комп брать многоядерный и выделить поток независимый на прием. Плата - та-же, стартеркита, на LPC2368, 64 МГЦ тактовая, ARM-mode

  11. Спасибо

     

    Почитал. Ну ребята, знаете... такая охренительная динамика и интермодуляционные искажения нужна разве что применительно к

    связной радиолюбительской аппаратуре. Нафига эта погоня за пикосекундным джитером применительно к звуку я не понимаю.

    Особенно, если учесть, что большинство таких любителей хи-фи не способны в слепом тесте отличить звучание девайсов диаметрально противоположного класса.

     

    Ну это все лирика.

     

    У меня при попытке выставить pcm/2канала/1байт/8бит винда падает в BSOD.

    Это как то обходится?

     

    Кстати, а вариант написать свой драйвер, который бы доставлял аудиоконтент в режиме BULK? Кто то реализовывал? Если ссылки на проект?

     

    Погоня за джиттером - это для измерения качества звукоизоляции, данные получаюся с микрофонов и считаются спектры.

    Теперь о проблемах... Какая винда? Кабель какой применяется - USB2.0?

    pcm/2канала/1байт/8бит - не понял, какая частота дискретизации? Чем проверяется устройство?

    У меня в самом начале разработки PCM 1 канал 16 бит 48кгц (768 kbps) работал с загрузкой процессора около 55% - воспроизведение через винамп

    Потом уже дописал и на 2 канала + управление через другие endpoint

  12. Там проблема наоборот. У них при низкой температуре не работает... а у меня при высокой. Хотя попробую наверное, позже.

     

    На данный момент поправил драйвер. Завтра напишу как и что.

     

    У меня не работало при повышении температуры до 50 градусов внутри закрытого корпуса. RC помогли ненамного - пришлось ставить вентилятор на вытяжку

  13. Если 50MHz, то, я так понял, используется RMII? Тогда это похоже на старую проблему - DM9161 в RMII работает плохо: http://electronix.ru/forum/index.php?showt...;hl=RMII+DM9161

    Да 100% - это та-же проблема. Паяй RC цепочки на CLK - как описано в ссылке выше

  14. На LPC2148 (с USB 2.0) и подключенном через SSP кодеке PCM3002 я получал PCM 16 бит 2 канала 48 кГц sample rate.

    20 бит тоже работало - но я вернулся на 16 - мне было достаточно.

    Для повышения качества и уменьшения джиттера отказался от адаптивного тактирования и поставил внешний генератор для кодека. С записью проблем нет, с воспроизведением - нужно большой буффер для устранения кратких (но редких) перерывов в воспроизведении - виновата винда. Но - производительность не очень, лучше брать процессоры с встроенным I2S (типа LPC2368)

    Обсуждалось начало разработки на

    http://electronix.ru/forum/index.php?showt...3&hl=lebiga

  15. IAR 5xx

    lpc23xxx.icf

     

    ...

    define symbol __region_USB_DMA_RAM_start__ = 0x7FD00000;

    define symbol __region_USB_DMA_RAM_end__ = 0x7FD01FFF;

    define region USB_DMA_RAM_region= mem:[from __region_USB_DMA_RAM_start__ to __region_USB_DMA_RAM_end__];

     

    define symbol __region_EMAC_DMA_RAM_start__ = 0x7FE00000;

    define symbol __region_EMAC_DMA_RAM_end__ = 0x7FE03FFF;

    define region EMAC_DMA_RAM_region= mem:[from __region_EMAC_DMA_RAM_start__ to __region_EMAC_DMA_RAM_end__];

     

    do not initialize { section USB_DMA_RAM }; // не инициализировать - это если нужно...

    do not initialize { section EMAC_DMA_RAM };

     

    place in USB_DMA_RAM_region

    { readwrite data section USB_DMA_RAM };

    place in EMAC_DMA_RAM_region

    { readwrite data section EMAC_DMA_RAM };

     

     

     

    в файле *.с

     

    #pragma segment="USB_DMA_RAM"

    #pragma location="USB_DMA_RAM"

    #pragma data_alignment=4

    long buffer[2048]; // 8192 байт

     

    или

     

    char buffer[8192]; // 8192 байт

  16. Прикупил проц LPC2368. Хочу развести Ethernet. На http://starterkit.ru/ есть starterkit под этот проц. Там стоит PHY KS8721. Вопрос - есть ли более дешёвые варианты? Например, нашёл RTL8201BL, который дешевле. Кто какие применяет у себя в разработках? Какие преимущества и недостатки?

    Мне в принципе достаточно и 10MBit. Температура чтоб -20 держал, и желательно без внешнего генератора.

    Только не DM9161 - будет море проблем, ищи по форуму, тема обсуждалась.

  17. extern "C" __thumb void IAP(iap_command_t *params, iap_result_t *result); // IAP объявлено в скрипте линкера, компилится более эффективный вызов, чем по указателю.
    }

    А как в скрипте линкера (.icf - IAR520) объявить IAP?

    Это не работает:

    define symbol IAP = 0x7FFFFFF1;

  18. А диагностика? Если оторвать EEPROM (запаять не так, не пропаять, поставить поврежденный) мой прибор пустится и скажет, что "EEPROM не работает".

    Диагностику обращением к регистрам EMAC без тактовой частоты сделать не получится - ограничение аппаратное

  19. Да, все так же плохо. После записи 3, 4 или 5 битов в COMMAND на следующей записи в любой регистр MAC все ломается. Если такие биты не записывать - программа продолжает работать. Это может быть связано с тем, что у меня PHY и генератор REF_CLK не запаяны?

     

    Да, это из-за отсутствия частоты на REF_CLK процессора, я когда-то во время эксперимента оторвал тактовую - и после записи COMMAND был постоянно срыв отладки. Да и без PHY лучше не обращаться к EMAC

  20. В общем так... После многочисленных тестов на трех видах разводки плат с DM9161AE, LPC2368 и LPC2387 сделал вывод - DM9161 для LPC НЕ ПОДХОДИТ, работа всегда неустойчива, настроить требует больших затрат, при этом работоспособность и надежность не гарантируется. Одни платы работают только на 10М, другие зависят от температуры, третьи вообще не обмениваются по RMII (настройка по MDIO выполняется). Перешел на KS8721BL - и забыл о всех этих проблемах, на 100М валит хороший поток, ничего не греется.

  21. Да, там дизайн платы любопытный - двухсторонний монтаж, CPU и PHY практически один над другим с разных сторон платы - бутербродиком.

    Я запустил, наконец, EMAC на прием. Tpd у DM9161 на линиях ERXD[1..0] примерно 13нс, задерживаем тактовую на DM9161 на 3нс, получаем Tsu на LPC по входам ERXD[1..0] примерно 4 нс. При этом все устойчиво работает - и прием и передача. Полдня пинговалось 1500-байтовыми пакетами - 0% loss.

     

    А теперь попробуйте погреть процессор или собрать в корпус и поганять. Только проц нагревается до 40-50 - идет пропадание пакетов. Пришлось мне ставить вентилятор - не мог сдать проект вовремя...

×
×
  • Создать...