Jump to content

    

VslavX

Свой
  • Content Count

    1046
  • Joined

  • Last visited

Posts posted by VslavX


  1. В витой паре в случае 100 base TX - сигнал передается манчестерским кодом и имеет 2 спректральные составляющие - на 50 Mhz и на 100 MHz. (Это очень расточительно и не эффективно - зато просто и

    Это с каких пор в 100BASE-TX кабеле стал манчестер? ИМХО, с утра было MLT-3 ;) И не 100 МГц, а 125 из-за кодирования 4B/5B. Если уж лень глубоко вникать в 802.3 то возьмите описание любого PHY на 100BASE-TX и посмотрите что у него внутри.

  2. Эту статью можно читать только с калькулятором. Одна веричина в мм, другая в mil.

    Обычно у CAD-чиков такой куркулятор уже в голове встроен ;)

    Почему все предложенные варианты считаются только по меди? Только в доке at&s учтено наличие маски на плате.

    Надо полагать потому, что в "классике" (платы без BGA и прочих компонентов с текучими контактами) маска не играла такой принципиальной роли. В нашей конторе опытные платы до третьего класса включительно вообще без маски заказываем - быстрее и дешевле.

     

    Насчет ATS - надо у них самих выяснять, насколько они гарантируют эту штуку -"регистрация маски". Судя по доке - это минимальная ширина маски контактирующей именно с основой, а не с медью. Обычно есть еще параметр смещения слоя маски относительно меди при производстве плат - насколько "съедет" фотошаблон - это тоже никто кроме производителя плат не скажет. Но надо полагать, раз в документации нарисовано две дорожки между ножек, значит такие платы сделать могут.

    У нас вот тоже 1мм BGA на 6-ти слойке "светит" и я тоже на ATS с надеждой смотрю :)

    А такой вопрос - волновое сопротивление цепей в Вашем проекте не актуально? Не прикидывали Stackup своей платы при проводниках 100мкм?

  3. Осталось разобраться какой д.быть диаметр площадки... Цитирую: "т.к. размер КП д.б. 0.03-0.43(рекомендовано производителем ИС)."

    0.03- опечатка. д.б. 0,38.

    Но это не меняет сути. Какие последствия м.б. от такого уменьшения?

    А размер шариков какой? Можно попробовать рассмотреть вариант SMD (solder mask defined) контактных площадок - сделайте площадку диаметром 0.5 и оставьте маску 0.42, например. Мы такие площадки SMD применяли на FBGA492 с шагом 1.27 - вполне надежно паялось и пролезало две дорожки с нормами 0.125.

  4. Фичи OTG нет. Пока скорость 40 Мбит/сек. В ближайшем будущем планируется до 120 Мбит/сек. 480Мбит/сек указано в смысле что она будет расти со временем :). Что касается карточек то MMC вроде бы должен подойти, но MMC или CF - не принципиальный для нас вопрос.

    MMC стандарта 3.x точно не подойдет - однобитная шина с максимальной тактовой 20МГц - отсюда макс скорость 20Мбит/сек. SecureDigital - 4 битная шина, 25МГц макс - до 100 Мегабит. Но надо еще учитывать реальные задержки выполнения команд. У меня в блоками по 16К более 8МБайт/сек с SD на 22МГц шине выжать не удалось. Возможно карта была старенькая. С записью на MMC все еще хуже - обычно запись в разы медленнее.

    На CF в режиме TrueIDE в PIO4 в таком же блочном режиме чтения вполне получалось 12 МБайт/сек. А если читать/писать по одному сектору - от 2 до 6МБайт/сек, в зависимости от карточки. Запись тоже была медленее, но насколько именно сейчас уже не помню.

  5. Требуется разработать USB устройство

    Описание здесь

    С чего лучше начинать - USB On-The-Go или просто взять и реализовать как USB Hub?

    Очень необходима помощь людей, особенно если кто имел уже подобный опыт работы.

    Смотря откуда собираетесь брать данные. Если это видео/фотокамера, то надо

    конкретно смотреть какой у нее интерфейс (есть ли фича OTG). Большиство

    камер на сегодня без OTG - значит Вам надо реализовывать USB хост (не обязательно

    в составе OTG).

    Насчет карточки MMC/SD - они такие скорости (60МБсек) не потянут, имхо,

    лучше уж CompactFlash взять - самые быстрые и дешевые (при таких скоростях

    объемы тоже немалые должны быть).

    Мне кажется, что для Вашей задачи неплохо бы ML696201 / ML69Q6203 подошел -

    USB HS + IDE (для CompactFlash) "в одном флаконе".

  6. Спасибо за ссылки.

    Наши реалии опять против нас, проще всего добыть AD73311.

    Остановлюсь наверное на нем так же он хорошо ложиться под SSC он же I2S которых в AT91RM9200 аж 3 штуки, правда не все будут доступны.

    Посмотрите филлипсовский UDA1341 - очень неплохой I2S кодек, готовый микрофонный предусилитель и приличное АРУ (с микрофоном работает "на раз" и не требуется предусилитель). ИМХО, самый дешевый и доставаемый чип (бо Филлипс многие возят) по сравнению с AD/Cirrus/Realtek.

  7. VDmais

    http://www.vdmais.kiev.ua/boards/project.asp

    Они вроде как могут делать двухслойки методом фрезирования.

    Методом фрезерования делают. Небольшие партии (2-3 платы) получаются несильно дешевле, но сильно быстрее (могут и за день сделать). Большой недостаток фрезеровки - отсутствие паяльной паски, окисленная фольга без всякого покрытия и мелкие заусенцы от фрезы. Например, разъем на 68 контактов с шагом 0.5мм было достаточно мучительно припаять.

  8. У меня тут ненадолго пробегала живая платка на 2410 и я попробовал запрограммировать видеоконтроллер на разрешения 1024x768 и 1280x1024 и режимы 8bpp, 16bpp и 24bpp. Живая панель не подключалась (нету таких в наличии), контроллировалась частота кадров осциллографом. Частота VCLK (тактирование пикселов на видеошине) выбиралось максимальное - 66 МГц.

    В результате выявился удивительный факт - видеоконтроллер не может забрать ПСП более половины!ИМХО,это связано с арбитражем шины - запросы LCD и CPU чередуются.

    Домашний скоп у меня поганенький аналоговый <20MHz, посему я не очень понял - то ли VCLK начинает такты пропускать, то ли VLINE задерживается. Но факт - частота кадров принудительно снижается. Для режима 1280x1024x24bpp она составляет менее 20Гц (по расчету же для 66МГц тактовой должна быть около 50).

    Поэтому практически получается, что 1280x1024x8bpp и 1024x768x16bpp - это предел для 2410. И

    неизвестно еще не будет ли пропусков на реальной панели.

  9. Кто нибудь знает какую часть времени времени занимает выполнение функции синхронизации? :) Насколько я знаю объекты синхронизации ядра выполняются в NT ОЧЕНЬ долго.

    Читал вопрос... Много думал... Ничего не понял ;)

    ИМХО, идеология обработки прерываний в NT такая:

    1. Происходит прерывание, вызывается процедура, которая была вписана в вызов IoConnectInterrupt(). Процедура выполняется с указанным же при инициализации приоритетом IRQL - при этом обычно может быть вытеснена только другой процедурой прерывания с еще более высоким приоритетом.

    2. В этой нашей процедуре делаем все что надо сделать очень быстро в RT, и потом запрашиваем DPC для дальнейшей неспешной обработки.

    3. Наша затребованная процедура DPC отработает не немедленно, а ставится в очередь (у каждого процессора в системе своя отдельная очередь DPC)

    4. Происходит реальный возврат из прерывания и вот только тогда приоритет упадет до DPC_LEVEL, начнет проверяться очередь DPC и исполняться наша процедура (в порядке очереди).

    5. В обработчике DPC можно выставить событие или другой синхрообъект, чтобы поработал пользовательский поток.

    6. Заканчивается обработка оставшихся элементов в очереди DPC.

    7. Производится переключение контекста на процесс нужного потока (поток до прерывания спал, не факт, что был активен нужный процесс).

     

    Так что, собственно объекты синхронизации тут тормозов немного добавляют, ИМО.

    Если хотите улучшить временнЫе характеристики свой программы - спускайтесь в ядро, заводите рабочий поток и делайте нужную часть в нем (желательно на PASSIVE_LEVEL), для переключения при освобождении синхронизации можно использовать флажок boost (чтобы пнуть диспетчер, тогда требуемый поток будет первым в очереди на исполнение). Перенос в ядро позволит избежать задержек по пункту 7. Ну и объекты ядра намного быстрее чем производные от них объекты Win32.

    Если хочется еще быстрее - можно перенести код в DPC или ISR процедуры - но если работы много и надолго, то Вы реально отравите жизнь всем остальным в системе, так что этот путь нежелателен.

  10. Есть плата IXDP425 (процессор IXP425) на ней имеются два разъема JTAG ICE (20 pin) и JTAG (меньше, но сколько точно не помню). Какие можно применять средства для Jtag-отладки кроме описанных в докумендации Raven и каких-то двух от Windriver (Например, можно ли MT-Link?)? Из ОС в

    Как помнится, в IXP нету Embedded ICE - вероятно, Интел посчитал что он святее "папы римского". Тем не менее, есть немного нестандартный DCC и мощнейшие собственные аппаратные средства отладки. Какой софт их поддерживает - не интересовался, думаю, обычные ARM-отладчики, расчитанные на ICE, могут сесть в лужу.

    По разъему - JTAG у IXP обычный, но есть некоторые проблемы с сигналами сброса (их там три разных) и чтобы изначально загрузить хендлер отладчика в хитрый миникэш инструкций нужно эти сигналы подавать в специальной последовательности. Скорее всего, эта проблема как-то решена на плате, чтобы можно было использовать адаптеры типа BB или Raven.

  11. Впервые делаю контроллер на ARMе (пока смотрю в сторону LPC2214) и возникает много вопросов по обслуживанию прерываний. Напрягает время обработки в 29 тактов. У меня задействовано 2 UARTа

    ...

    Существуют ли доставабельные ARMы хотя бы с простейшими механизмами DMA и быстрым обслуживанием прерываний (поддерживаемые ulink'ом)? или может я неправильно мыслю по поводу организации работы с перефирией по прерыванию?

    Посмотрите атмеловские SAM7 - чипы того же класса что и LPC, но почти на всю периферию (за исключением USB) есть PDC (aka DMA). Причем поддерживаются простейщие списки из двух дескрипторов - так что непрерывность обслуживания обеспечена. Можно взять также SAM7X256 - с MAC на борту - вроде эти чипы уже становяться доступными.

  12. Я в принципе человек не грубый, но иногда бываю. Что у нас на Украине уже выросло поколение не понимающее русского языка? Давайте эскимосам - эскимосские форумы по электронике, бурятам -

    Зря Вы так...

    Исходный вопрос вполне мог быть продиктован чисто экономическими соображениями - сейчас уже довольно распространены недорогие тарифные планы с безлимитным трафиком UA-IX.

  13. Ссылочку можно? А то у меня в доке пишут следующее:

    LPC2880FET180 TFBGA180 plastic thin fine-pitch ball grid array package; 180 balls; body 10 × 10 × 0.8 mm

    SOT640-1

     

    Только шаг 0.8 а не 0.5, что уже не так страшно.

    0.8мм - это толщина (высота?) корпуса. А шаг между выводами - именно 0.5мм - в даташите есть чертежик, там все размеры указаны.

  14. GNU make, вроде, умеет запускать тулзы в разных процессах.

    Угу, спасибо. Сейчас посмотрел make из последнего цигвина - вроде есть ключик -j[N]. Кажись - самое оно.

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

    Исходные: Athlon X2 3800, WinXP_SP1 + Cygwin + IAR 4.12 for AVR + GNU make 3.80

    58 секунд для "make -j1", загрузка процессоров 50-52%

    31 секунда для "make -j2", загрузка процессоров практически 100%

    О так - определенно есть смысл покупать X2 или PD :)

  15. Одним из изделий наша компания занимается довольно много лет. Отрелизено уже с полсотни разных модификаций, ПО портировано под четыре разные платформы. Для общности используем утилиту nmake - компилируем одно и то же разными строчными C-компиляторами (BC/IAR/GCC/VC). Объемы исходников накопились относительно немаленькие, и как следствие - относительно большое время компиляции.

    Есть желание это время уменьшить за счет параллельной компиляции - большую часть исходных файлов можно компилировать одновременно и независимо. Может быть кто-нибудь сможет посоветовать многопоточный аналог make/nmake? Чтобы утилита умела одновременно запускать несколько процессов одновременно? Еще интересно было бы услышать про распределенные варианты (over LAN), если такое применяется.

  16. Столкнулся с проблемой аппаратной реализацией алгоритма RSA: вычисления выражения (s^p)mod n, где p и n - числа, разрядность которых около 100 порядков. Как организовать данный алгоритм на DSP (Motorola DSP 56k)? Возможна ли реализация на ПЛИС? Быть может есть какаие-нибудь ссылки? Заранее спасибо всем!

    Здесь нужно использовать простое математическое правило -(a*b)mod c = ((a mod c)*(b mod c)) mod c.

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

    На ПЛИС, думаю, реализация вполне возможна.

  17. Прикидывал тут будущий девайс и вспомнился сабж.

    На сайте вроде прописан как "масс продакшн", в продаже вроде тоже есть, но что-то не видно, чтобы с ним кто-то работал. Хотя вроде и цена сходная, и корпус пристойный, поддержка любой внешней памяти, видео на борту...

    Может обнаружены какие-то ужасные глюки?

    Да нету особых глюков - на удивление все работало согласно документации.

    Корпус "приличный", можно разводить BOX+SDRAM 16-бит на двух слоях, работает в оверклоке до 80 МГц. Минус по нонешним временам - нету MMU. Видеоконтроллер - на сегодня тоже слабоват, не поддерживает TFT (видеовыход 8-битный, для формирования цвета - дизеринг), нет автоподдержки тач-панелей (да и полоса АЦП сверху 100Гц вроде как ограничена). Четыре года назад BOX был весьма симпатичным, но сегодня я выбрал бы SHARP 79525-ый (несмотря на валяющуюся в кладовке коробку BOX-ов) :)

  18. А какие есть стандартные SATA мосты?

    Я имел ввиду "полную высокоуровневую интеллектуальную" виртуализацию :)

    Типа имеем цепочку:

    - SATA-PATA мост (типа SiI3611 от Silicon Image)

    - ПЛИС с PATA девайсом (ну пусть PATA<->PCI)

    - процессор с PCI

    - SATA-хост (типа SiI3114)

    То есть полностью подменяем девайс своей интеллектуально платой.

    Но, cудя по Вашему посту, Вам интересно посмотреть на поток на самом низком уровне.

    Может быть тут помогут SerDes-ы? Принимаем SATA поток от хоста, преобразуем десериализатором в параллельный код, (10-битовый), работаем в параллельном коде Virtex-om и отдаем его на сериализатор на девайс. И соответственно обратно. То есть подключаемся к линку в разрыв, а не "сбоку", нарушая все согласования. SerDes - можно глянуть тот же SI - SiI2022 и SiI2024.

    Можно тогда и ПЛИС-ку попроще, не обязательно VirtexII.

  19. Есть задача сделать устройство, которое будет мониторить SATA traffic между хостом и драйвом. Идеально было бы иметь возможность модифицировать данные. Из подручных материалов имеется Virtex-II Pro Evaluation board

    Собственно SATA потоке осмысленно чего-то поменять вряд ли удасться. ИМХО, если уж реализовывать идею полностью (с подменой данных, а не только монитор), то надо бы сделать свой SATA-девайс, включается вместо иссследуемого, принимает его команды, делает с ними чего надо и транслирует через свой SATA-хост далее на исследуемый девайс. И в обратном порядке. Тут конечно latency вырастет. Зато можно было бы стандартные SATA мосты применить и никаких проблем с шиной не будет. Или нужен полный "stelth mode"?

  20. Пытаюсь провести инициализацию карточки.

    Выдаю CMD0 arg 0

    карточка отвечаить R1=0x01

    После CMD0 карточка находится в состоянии Idle. Чтобы с ней что-то делать ее следует перевести в состояние Ready (см диаграмму состояний MMC и переходы между состояниями). Из Idle карта переходит в ready по команде CMD1.

  21. AT90USB646-AT90USB647

    AT90USB1286-AT90USB1287

     

    Купить, увы, скорее всего пока нельзя (как всегда у Атмеля - только через полгода-год после "широкого" анонса) :(. Сами сэмплов с нетерпением ждем - еще две недели назад должны были "приехать". Очень уж симпатишный хост получается. Если еще и аппнот USB-стека дадут... (мечтательно так :))