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

    

Demeny

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Demeny

  • Звание
    Знающий
  • День рождения 22.11.1969

Информация

  • Город
    Санкт-Петербург

Посетители профиля

2 433 просмотра профиля
  1. Занимаюсь разработкой электронных изделий и проектированием ПО для них более 10 лет. Ищу постоянную работу (full-time, Санкт-Петербург, желательно север СПб) в крупной компании с несомненной рыночной нишей в сфере телекоммуникаций, промышленного оборудования, защиты информации, автомобильного бизнеса. Не рассматриваю стартапы (какими бы идеями они не вдохновлялись), работу с оформлением любых форм допуска, небольшие фирмы с количеством сотрудников до 15 человек. С опаской отношусь к предложениям компаний, в названии или на сайте которых фигурирует слово "инновационные..." и однокоренные с ним. Из опыта работы: - ведение проектов от технических требований заказчика до запуска и сопровождения серийного производства, - оценка реализуемости проекта, построение его архитектуры, декомпозиция задач, - разработка железа: MG DC/DxD/Expedition, PCI/PCIe/CompactPCI, Cortex-M0/3, Cortex-A8, Intel/AMD, STM8/32, Atmel, PIC, - интерфейсы Ethernet 10/100/1G/10G, Fibre Channel, USB, CAN, HDMI, MIPI, CSI, ну и SPI, I2C, и т. п. - разработка софта: C/C++ (в основном, C), Keil/IAR, Linux, QNX, Windows, в основном, это поддержка железа (драйвера, модули ядра) и тестовое ПО, - беспроводка, стек Bluetooth, Wi-Fi, и "обычные" радиоканалы (433 и т. п.), - обработка изображений, и др. цифровая обработка сигналов, - построение систем автоматического управления и регулирования. В общем, практически любая сфера интересна (кроме СВЧ и силового оборудования). Желаемая зарплата от 130 т. р. на руки. Предложения можно присылать на почту demeny@yandex.ru, или в личку.
  2. Цитата(DSP_ACE @ Jan 12 2016, 00:38) что значит полезут одновременно ? Система должны быть построена по принципу TDM - time domain multiplexing Каждому каналу свой временной слот на уровне кадра Ещё раз. Как 8 разных процессоров будут писать свои разные файлы на едином физическом носителе? Если по очереди - то основное время сожрёт перевод головок от файла к файлу. Ну или буферизация должна быть весьма некислой у каждого (!) процессора. И не отменяет разработки диспетчера (к вопросу о нескольких днях разработки). Цитата(DSP_ACE @ Jan 12 2016, 00:38) sata в dm36x нет Это в dm38х и старших моделях davinci Вместо этого я бы предложил присоединять usb флэш или usb диск на каждый канал Разьем есть Usb провод позволит располоагать накопитель в удобном для смены месте Цены на магнитные usb драйвы не сильно отличаются от sata-шных Ну за удовольствие писать на твердотельный драйв придется заплатить USB-флэшку на каждый канал??? Ещё и на выносном проводе? И всё это в 19' стойке? И ещё доплатить за удовольствие писать на твердотельный драйв? Человек стремится к надёжности в каждой строчке задачи, а Вы ему USB-флэшки предлагаете перетыкать. Цитата(DSP_ACE @ Jan 12 2016, 00:38) В вашем варианте (как и в варианте с одиночным видео сурперпроцессором) 8 несжатых канала видео просто не пролезут в один sata драйв - придется все равно параллелить и тд или сжимать Я и не предлагал писать несжатое видео на SATA драйв, это безумие и незачем для видеорегистратора. Несжатое видео забирается с декодеров платой посредством FPGA в локальную память, в соответствии с выбранными каналами, числом кадров в секунду и прочими настройками. Отдельно организуется общий поток из локальной памяти в память PC, где уже подключается нужный кодер, предпросмотр, сохранение на диск, сеть и т. д. Можно, кстати, рассмотреть вариант аппаратного кодера прямо на интерфейсной плате, и в PC гнать уже закодированный поток. Но это сильно усложнит периферийную плату ввиду необходимости распараллеливания процесса упаковки видео, с соответствующим увеличением локальной памяти и программного обслуживания всего этого дела, которое можно делать на PC. Цитата(DSP_ACE @ Jan 12 2016, 00:38) А в моем варианте если писать сжатые собирая их из 8 канальных модулей через Ethernet or usb в 1 sata накопитель то вобще все просто - один мощный проц с огромным вентилятором и материнкой за 100-200 баксов заменяется 8 процами за 12 баксов без вентиляторов А собирать по "Ethernet or USB" и писать на SATA кто будет? Неужели не материнская плата с процессором Intel? Цитата(DSP_ACE @ Jan 12 2016, 00:38) А вы вообще пробовали закодировать и передать в сеть 8 h264 потоков с вашей платой на компе с вменяемой ценой? (ну хотябы на QNX - Windows и Linux отметаем ) Про передать в сеть задачи не было (как нет её и здесь, это всё же не транслятор цифрового вещания TV, а видеорегистратор), а так да, под Windows в качестве основы для видеорегистратора (с функцией видеоквадратора) на 8/16 каналов аналогового PAL/NTSC видео работает.
  3. Цитата(DSP_ACE @ Jan 11 2016, 21:09) Каналы можно благополучно разнести каждый на свой дешевый процессор и память Причем в сеть пихать сжатый видео сигнал для оперативного просмотра а на флэш писать несжатый По цене получается дешевле чем однокристальная суперсистема Интересно будет посмотреть, как в такой архитектуре (каждому каналу - свой процессор) Вы обеспечите режим видеоквадратора (это когда все или часть каналов выводятся и пишутся на 1 экран в виде маленьких квадратиков), а это обязательная фича любого многоканального видеорегистратора. Да и как обеспечить дисковую подсистему SATA, все процессоры "полезут" писать на диск одновременно, нужно будет разруливать и строить быстрый и внятный арбитраж (с приоритетами, или без). Ваших 16 Гбайт NAND надолго не хватит, особенно если писать на них несжатое видео, как Вы предлагаете. А заменять "на ходу" их как? (см. требования ТС).
  4. Цитата(_Watcher_ @ Jan 11 2016, 09:12) Все-таки желательно, чтобы это было отдельное устройство, а не компьютер с набором плат. Интерфейсная плата будет одна, и на ней реализовано 8 видео(+аудио)входов + FPGA, к материнской плате она будет подключена по шине PCI (или PCI Express), и в её задачу будет входить только "слив" аудио/видео потоков с нужной производительностью в память компьютера посредством PCI Master. Ну, ещё триггер записи, наложение "водяных знаков" (если нужно) и отслеживание исправности каналов. Всё остальное (кодирование MJPEG/H.264, сеть, файловые операции, предпросмотр и т. п.) удобно делать на мощном процессоре с быстрой памятью и надёжной дисковой подсистемой, под операционной системой (не обязательно Windows). == А что имеется в виду под "отдельным устройством"? FPGA? Набор аппаратных кодеков? Всё равно нужна дисковая подсистема с объёмными носителями (а это SATA), приличный объём RAM, быстрая сеть и т. п. Зачем изобретать велосипед, который к тому же окажется золотым?
  5. Могу предложить изготовить опытный образец на основе 8/16-канальной платы видеозахвата с интерфейсом PCI собственной разработки (на базе FPGA), то есть взять готовый корпус 2U, пром. материнскую плату под него, и переконструировать (а на первом этапе - воткнуть как есть) PCI-плату видеозахвата. Если интересно - пишите в почту demeny [at] yandex.ru
  6. I2C Slave на STM32F103

    Цитата(Golikov A. @ Aug 4 2015, 19:56) а вы уверены что дело в том что вы сдвинули фронты, а не в том, что вы их сделали круче убрав резисторы? Как изменяет фронт прикосновение пинцетом или щупом осцилла? Разве что затягивает из-за доп. емкости... Посмотрел осциллографом - спад идёт 75 нс. По даташиту на контроллер I2C в STM32 до 300 нс максимум. Кстати, да, если закоротить оба резистора 100 Ом проблема тоже уходит... Но в том же даташите на I2C в STM32 (Fig. 48) как раз нарисованы эти резисторы 100 Ом и подтяжка 4,7 кОм, прямо как у меня. Ничего не понимаю... Цитата(scifi @ Aug 4 2015, 20:21) По спецификации I2C Fast Mode для Start Condition между фронтами SDA и SCL должно быть как минимум 600 нс. Вот не надо нарушать. У меня слейв, который как раз ловит "неправильный" Start Condition, поэтому я ничего не нарушаю.
  7. I2C Slave на STM32F103

    Вести с полей. Не веря ни в какие "пички", решил поискать более материальную причину происходящего. Если контроллер не отвечает на свой адрес - возможно, он находит какую-то ошибку в происходящем на шине. Сказано - сделано, подключил обработчик прерывания ошибок на шине I2C, разрешил прерывания ITERREN=1, и в обработчике прерывания дергаю внешним отладочным пином, чтобы видеть происходящие ошибки. И сразу увидел, что в момент, когда при передаче адресного байта обе линии SCL и SDA одновременно падают в ноль (после переданного бита 1) - возникает ошибка Bus Error. Согласно даташита, это как раз ситуация, когда посреди передачи байта возникает "старт" или "стоп" условие на шине. Казалось бы, вот и ответ - программа бросает обе линии в ноль одновременно, но из-за различных емкостных характеристик линий SCL,SDA, неидеальности резисторов и ESD-диодов линия SDA с точки зрения контроллера падает в ноль первой, и возникает минимое "старт"-условие, которое и сбивает контроллер с толку. Включив лог. анализатор на максимальную скорость 400 MS/s, вижу, что SCL 1=>0 всё же опережает SDA 1=>0 буквально на 7-8 нс, то есть "старт"-условия нету, а ошибка шины есть! Замыкая проходные резисторы 100 Ом, могу подвигать фронтами, и вижу, что фронты двигаются друг относительно друга примерно на 10-15 нс, и ошибка пропадает при этом. НО! Я ещё понимаю, когда ошибка пропадает при отодвигании SDA 1=>0 позже по времени от SCL 1=>0. Фантастика заключается в том, что ошибка пропадает и при отодвигании спада SCL в другую сторону, то есть фактически, когда "старт"-условие в реальности выполняется (SDA 1=>0 при SCL=1)! Итого - ошибка шины возникает тогда и только тогда, когда разбежка между фронтами спада меньше 7-8 нс. Если разбег фронтов (в любую сторону) больше - ошибки нет, что мы и видим при любом прикосновении к любой линии (пинцетом, щупом осциллографа и т. п.). Что это - метастабильность триггера, защёлкивающего "старт" условие, из-за невыполнения setup-hold ?? Почему он его не защелкивает, когда "старт"-условие фактически выполняется (при подвижке спада на 10-15 нс в нужную сторону)?? И ещё. На такой же плате, у которой нет проблем с обменом (таких 90%) - также точно линии SCL и SDA падают в ноль с минимальным разбегом (<2.5 нс), но ошибки нет...
  8. I2C Slave на STM32F103

    Цитата(iosifk @ Aug 3 2015, 11:28) Потому что I2C работает на 100 Кгц максимум. А процессор на 20-100 Мгц и для него пологие фронты сигналов I2C - это как "пила". И на фронте этой пилы еще сидят помехи. Так что кто-то их успевает нахватать, а кто-то - нет. Я в ПЛИС для таких сигналов предпочитаю ставить цифровой фильтрик и не иметь головную боль... А в Вашем случае надо искать откуда лезут помехи. Или поставить в линию 10-30 ом резисторы. Или емкость с линии на землю... В линии стоят последовательные резисторы 100 Ом, я писал об этом выше. Да и ёмкость порядка 200 пФ тоже неявно присутствует в виде ESD-диодов BZA456A. Да и триггеры лейтенанта Шмидта, казалось бы, на входах контроллера должны быть, нет?
  9. I2C Slave на STM32F103

    Цитата(Golikov A. @ Aug 3 2015, 11:09) Может 3.3 вольт не хватать компьютеру для 1? У каких то контроллеров они не совсем 3.3? Контроллер не подтверждает свой адрес на шине I2C, который (судя по логу анализатора) формируется правильно, при чём здесь компьютер? Да и на стороне компьютера подтяжка к +5 вольтам, это контроллер "тянет" вниз лог. 0 выходом "open drain"... Может, в поведении аппаратного контроллера I2C у STM32 есть какая-то особенность, ну скажем, при определённых условиях он не считает шину свободной, или что-то в этом духе... Цитата(iosifk @ Aug 3 2015, 11:13) Осциллограф на шине - это емкость. Это я понимаю, что ёмкость. Щуп, кстати, неплохой, с полосой 200 МГц, поэтому ёмкость крайне невелика, должно быть около 5-8 пФ. Ёмкость может не только сглаживать "пички", но и слегка сдвигать фронты сигнала. Но почему не все контроллеры сбиваются от предположительных "пичков"?
  10. I2C Slave на STM32F103

    Цитата(1113 @ Aug 3 2015, 11:00) посмотрите осциллографом на землю компьютера относительно земли процессора (или наоборот, как удобнее) - может тут что-нибудь увидите Вообще, земля компьютера, процессора и минус лабораторного блока питания соединены, как и земли осциллографа и лог. анализатора, которыми подключаюсь. Но посмотрю, на всякий случай. Я бы искал системную ошибку, если бы все платы вели себя так. Но абсолютное большинство плат работает нормально. Значит, что 10% плат из той же производственной серии, без видимых дефектов монтажа, чем-то отличаются от остальных. Главный вопрос -чем? Битый контроллер, перегрев при монтаже, или всё же софтовая/схемная ошибка?
  11. I2C Slave на STM32F103

    Цитата(1113 @ Aug 3 2015, 10:23) ваше устройство только с компьютером связано или стоит в связке с чем-то? какие скорости по шине? покажите схему и плату, что с землёй? Для тестирования устройство подключается к компьютеру, скорость обмена минимальна, не более 20 кГц по SCL. Программа тестирования 100% рабочая, проверено не на одной тысяче устройств. Да и логическим анализатором записываю обмен... Схема простая, от внешнего разъёма 2 последовательных резистора по SCL и SDA по 100 Ом, далее подтяжка 4,7 кОм к +3,3 В обе линии, далее ESD-защита на диодах BZA456A обе линии, ну и всё это на контроллер I2C1 STM32F103. Земля, как земля, полигончик на нижней стороне и на разъём, не думаю, что при таких частотах земля играет какую-то роль. Цитата(Golikov A. @ Aug 3 2015, 10:31) и с подтяжками шин... уровни логические, питание, ничего там не занижено-не завышено? конфликты? Что-то может на грани и потому то туда падает, то суда? как монтируют? какой контроль? может быть 10% барака? Уровни смотрю осциллографом, что-то около 4,5 вольт, но у контроллера пины 5V Tolerant, насколько мне известно. Прямоугольники чёткие, криминала не видно, но как раз при подключении щупа осциллографа на любую линию, не важно, до резисторов 100 Ом или после, всё работает. Кстати, при подключении лог. анализатора такого эффекта нет, может, потому, что обе линии подключены... Монтаж автоматический, может и брак, понять бы, в чём он, непропаев нет - всё запаяно нормально.
  12. I2C Slave на STM32F103

    Добрый день! На контроллере STM32F103 реализовано I2C Slave устройство, которое принимает от "внешнего мира" команды, обрабатывает их, и по запросу чтения выдает ответ. Всё это работает на 90% выпущенных плат. На 10% тех же плат (из той же произведенной серии) наблюдается следующая картина - I2C Slave аппаратно не подтверждает свой адрес, то есть не выдает ACK на первый (адресный) байт со стороны мастера. В качестве мастера для теста используется компьютер с простейшим адаптером на LPT порт, который имитирует программно работу мастера (выдает команды по I2C и получает ответ). Картина, наблюдаемая логическим анализатором, доподлинно следующая - мастер правильно формирует старт-условие, адресный байт, не получает от I2C Slave ACK, снова формирует старт, адрес и т. д. много-много раз (несколько десятков раз), и вот в какой-то момент адрес подтверждается (ACK), контроллер получает команду, обрабатывает её и готов отдать ответ. Далее та же петрушка начинается с чтением - старт, адрес + бит чтения = NACK до посинения, потом, наконец, STM32 формирует ACK и выдает правильный ответ мастеру. Примечательный момент - если встать на любую линию SCL или SDA щупом осциллографа, то работа слейва сразу стабилизируется, он начинает работать четко и формирует ACK сразу после первого же запроса. Что это может быть? В чём ошибка? Почему 90% плат работают, а 10% ведут себя так?
  13. Если не сделают вам 3D принтер за 2 недели, смогу предложить кастомизировать под вашу механику плату управления 3D-принтером собственной разработки (не Ардуино). С предложениями в личку или на почту demeny [sobaka] yandex.ru
  14. [attachment=87147:flash.jpg] Продаю флэш-диск 256 Мб с интерфейсом мини PCI-Express, с функцией аппаратной привязки к "железу" (материнской плате, процессору, сетевой карте). Флэш-диск также имеет функцию загрузки исполняемого кода BIOS-ом до загрузки основной ОС, впрочем, может использоваться и для загрузки основной ОС небольшого объёма в бездисковых системах. Может быть использован для построения компактных бездисковых систем на базе x86 mini-ITX плат, например, платёжных (торговых) терминалов, развлекательных аппаратов, домашних роутеров со своей ОС и т. п. Цена 2500 руб. СПб или почтой России. demeny [сбк] yandex.ru