железо — НТЦ Метротек. Архив блога http://blog.metrotek.spb.ru заметки бывших разработчиков бывшего НТЦ Метротек Thu, 02 Oct 2025 13:52:15 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.1.15 Chaos Constructions 2016 http://blog.metrotek.spb.ru/2016/08/31/chaos-constructions-2016/ Wed, 31 Aug 2016 11:26:23 +0000 http://blog.metrotek.spb.ru/?p=5397 cc27-28 августа сотрудники НТЦ Метротек помогали с организацией фестиваля компьютерного искусства Chaos Constructions. Было организовано два конкурса: Real-time Hardware Hack и HackQuest.

Фотографии с фестиваля

Конкурс Hardware Hack вели Егор Утцов и Павел Курочкин, HackQuest готовил Иван Олейников вместе с Дмитрием Халанским.

В зале для семинаров можно было прослушать доклады «Аппаратные аспекты встраиваемых систем. Высокоскоростные цифровые устройства», Александра Вайгачева и «Возможности загрузчиков встраиваемых систем на процессорах ARM», Владимира Георгиева.

Видео-поток из зала для семинаров.

В воскресенье вечером после подведения итогов фестиваля, всем участникам, занявшим призовые места и дождавшимся церемонии награждения, мы подарили платы STeameR, сделанные нами для обучения программированию микроконтроллеров STM32.
Видео с награждения:

]]>
Идеальный диод своими руками http://blog.metrotek.spb.ru/2015/06/06/idealnyiy-diod-svoimi-rukami/ Sat, 06 Jun 2015 11:37:47 +0000 http://blog.metrotek.spb.ru/?p=5072 Напряжение питания современных FPGA, uP и SOC настолько мало, что применение диодов становится невозможным. Вместо этого применяются идеальные диоды на основе MOSFET и схемы контроля, т.е. синхронные преобразователи. Существует большое разнообразие схем контроля, например, для:
диодного моста, flyback и др. Вот и я решил сделать свой идеальный диод.

На мой взгляд, идеальный диод должен работать при напряжении нагрузки от 0В и токе не менее 20..100А.
Это позволит создавать более эффективные схемы защиты
цепей питания FPGA, uP и SOC, снизит потери за счет
низкого сопротивления MOSFET, а ещё это один из основных
элементов электронной нагрузки переменного и постоянного
токов (мечта моего детства).
Идея проста: при положительном потенциале постоянного тока
или положительной полуволне переменного тока MOSFET
открывается, а в других случаях — закрывается.
В качестве MOSFET лучше всего использовать N тип.
Традиционно N тип применяется для нижнего включения:

SYNC_RECT_BOT

Но ничто не мешает поставить N тип сверху:

SYNC_RECT_TOP
Схема управления — это компаратор. При положительном
потенциале на входе схемы, компаратор формирует
напряжение, достаточное для открывания MOSFET. Если это
схема защиты от переполюсовки, то особых требований к
компаратору нет. Иная ситуация — это когда на вход
подаётся переменный ток. В этом случае при увеличении
частоты сигнала или скорости нарастания фронта, может
потребоваться дополнительный драйвер MOSFET, который будет
способен быстро перезаряжать большую ёмкость затвора.
Если в качестве входного сигнала используется напряжение
переменного тока частотой 50Гц и амплитудой 0.9В, то
осциллограммы схемы нижнего включения MOSFET выглядят так:

osc_0p9v_20a

Потери схемы идеального диода зависят только от тока
нагрузки. Так при 20А получается примерно 1.2Вт. По
сравнению с (20..25)Вт диода, потери в 20 раз меньше. Но это
ещё не предел, т.к. MOSFET’ы можно параллелить.
Например, для 4х параллельно включённых MOSFET`ов,
потери составят примерно 0.3Вт. С диодами такой фокус не
проходит.
В целом, я остался доволен результатами, т.к.:
1) схемы можно применять для защиты FPGA, uP и SOC от
переполюсовки;
2) на основе схем можно построить идеальный мост, но надо
не забыть только про схему защиты от сквозного тока;
3) я немного успокоился от того, что на работе занимался
какой-то фигнёй (моделированием).

]]>
Изучаем спецификации RGMII и возможности MEMS генераторов. http://blog.metrotek.spb.ru/2015/05/20/izuchaem-spetsifikatsii-rgmii-i-vozmozhnosti-mems-generatorov/ http://blog.metrotek.spb.ru/2015/05/20/izuchaem-spetsifikatsii-rgmii-i-vozmozhnosti-mems-generatorov/#comments Wed, 20 May 2015 16:37:01 +0000 http://blog.metrotek.spb.ru/?p=5058 В рассказе А.Беляева «Мистер Смех» главный герой мог
заставить смеяться окружающих просто падая. Но когда на нашем
новом SOM`е стал иногда падать link на GbE, я понял, что будь
на его месте мистер Смех, наши программисты всё равно не
засмеялись бы.


Итак, у нас есть свой SOM на CycloneV-SE SOC`е. И среди 200
контактов есть выход на тот самый GbE. Привожу схему, чтобы
было понятно:

cv-se-som-1.0

И суть проблемы: редкие падения-восстановления link на скорости 1000Gb/s.
— Что может быть причиной?
Исследования проводились в двух направлениях:
1) возможности MEMS (генератор 25MHz);
2) корректная работа RGMII интерфейса.

  • Почему MEMS? — спросите Вы.
  • Это дёшевая, программируемая и малопотребляющая штуковина. Но когда на коробке с программатором для этих генераторов я увидел надпись «Not recommended: Bluetooth, WiFi, USB3.0, Gigabit Ethernet», у меня самого возник подобный вопрос.

Т.к. стабильность частоты у генераторов +-20ppm, то подозрения упали на джиттер (J). И для того чтобы прикинуть а сколько надо, пришлось покопаться в IEEE 802.3-2008.
Из табл. 39-5 секции 3 были взяты две цифры:
1) нормативная Total J (TJ) = 192ps (peak-peak);
2) информативная Deterministic J (DJ) = 96ps (peak-peak),
с помощью которых можно найти запас устойчивости (RJ'(rms))
Si501 по Random J (RJ) следующим образом:
1) определим бюджет RJ(peak-peak) = TJ-DJ = 192-96 = 96ps;
2) соответственно, RJ(rms) = RJ(peak-peak)/alpha = 96/13.8 =
6.96ps,
где alpha = erfcinv(2BER/DTD)sqrt(8) (48B.3.1.3.1);
3) согласно pdf на Si501, в качестве RJ можно брать Phase J
(PJ) = 1.3ps(rms) и тогда искомая величина будет равна:
RJ'(rms) = sqrt(RJ(rms)^2-PJ(rms)^2) = sqrt(6.96^2-1.3^2) =
6.84ps,
а доля Si501 в бюджете TJ передатчика равна:
E,% = (RJ(rms)-RJ`(rms))/RJ(rms) = (6.96-6.84)/6.96 = 1.7%
На мой взгляд, это мало. И дело тут не в J.

  • Тогда RGMII?

Судя по всему, EMAC HPS работает в соответствии с версией 1.3
RGMII. Т.е. вот так:

rgmii_1_3

Тут оптимальный захват данных достигается за счет задержек
тактовых сигналов на (1.5-2)ns. Это обычно делается за счет
увеличения длины дорожек.

А PHY после сброса хочет работать по версии 2.0, т.е. вот так:

rgmii_2_0

Налицо явное противоречие, т.к. моём случае все линии данных были
выровнены по тактовым сигналам и задержек на плате не было, а у МАС
в соответствии с 1.3 внутренней задержки на стороне TX
не предусмотрено.

Но для таких как я, в PHY предусмотрены дополнительные skew:

rgmii_1_3_id

В нашем случае значения skew для RX устанавливались самим PHY
после сброса, а для TX их грузил Linux. И, судя по всему,
грузил правильно.
Подведу итоги:
1) Я разобрался с RGMII, хотя это не помогло решить проблему.
2) Я впервые покопался в IEEE 802.3-2008 в секциях 3 и 4 на
предмет J, хотя это тоже не дало результатов.
3) В итоге оставив в покое RGMII мы заменили MEMS на XO и
link перестал падать. Собственно, с этого мы и начали.
4) Для анализа интерфейса, работающего на частоте 125MHz,
осциллографа с полосой 200MHz явно недостаточно.

]]>
http://blog.metrotek.spb.ru/2015/05/20/izuchaem-spetsifikatsii-rgmii-i-vozmozhnosti-mems-generatorov/feed/ 3
Следящий DCDC для смартфона http://blog.metrotek.spb.ru/2015/05/19/sledyashhiy-dcdc-dlya-smartfona/ Tue, 19 May 2015 10:03:22 +0000 http://blog.metrotek.spb.ru/?p=5033 1 Однажды мне дали в руки смартфон и сказали: «Надо придумать, как это использовать в качестве экрана для нашего нового прибора». Отлично, подумал я, есть перспектива на ближайшие полгода не уснуть после обеда. Поскольку на android и usb были найдены другие добровольцы, то на первом этапе мне досталась только схема питания смартфона без аккумулятора.

Ну что же, быстренько сделаю dcdc конвертер и займусь чем-нибудь полезным.
Но первый же вопрос: «А что делать с индикатором зарядки?» — поставил меня в тупик.
— Он будет показывать всегда 100% (это при напряжении 4.3В).
— А как мы узнаем о состоянии аккумулятора?
— У нас же smart battery, по usb сообщим.
— USB? А что делать в случае, если host выключен?
А действительно, что делать? Как сообщить смартфону о напряжении внешней smart battery.

1

Простой опыт показал, что % заряда на экране пропорционален напряжению. Отсюда напрашивается вывод сделать «следящий» преобразователь напряжения, т.е. выходное напряжение которого, будет пропорционально входному.

2

  • Как это сделать?
  • Вместо постоянной земли,

3

  • использовать управляемую

4

  • и тогда получаем уравнение прямой с начальным смещением:
    OUT = (FB-U)/R2(R1+R2)+U = (FB-U)k+U = FBk+U(1-k),
    где k = (R1+R2)/R2.

Дальше я немного покопался в Matlab`е для расчёта резисторов и с удивлением обнаружил, что ti в плане
моделирования сделал всю работу за меня, т.к. в Tina-TI оказались все нужные мне модели dcdc конвертера и
операционника. Осталось только всё красиво нарисовать:

dcdc_for_smartph
… и получить не менее чудесные графики:

SmPwr11p1

SmPwr12p9
Время сделать какие-то выводы и обозначить проблемы:
1) Если выбросить штатный аккумулятор и на его место поставить smart battery со следящим dcdc, то для
отображения напряжения заряда, ничего больше и не надо.
2) Что делать с демонтированными аккумуляторами?

]]>
подробнее про hardware freedom day http://blog.metrotek.spb.ru/2013/04/24/podrobnee-pro-hardware-freedom-day/ Wed, 24 Apr 2013 05:32:03 +0000 http://blog.metrotek.spb.ru/?p=4133 а вот тут можно узнать чуть больше про то, как проходил Hardware Freedom Day в Москве.

]]>
температурный тест оптического рефлектометра http://blog.metrotek.spb.ru/2013/03/22/temperaturnyiy-test-opticheskogo-reflektometra/ Fri, 22 Mar 2013 15:03:43 +0000 http://blog.metrotek.spb.ru/?p=3665 ice-200Снова хорошие новости!

Провели температурный тест оптического рефлектометра при температуре около -10 градусов по Цельсию. Как раз сегодня в Питере была такая температура ;)

При такой температуре за бортом вентиляция прибора выключается и внутренняя
температура многих деталей выше, чем -10 градусов. Например, батарея имеет -3 градуса, а сам модуль рефлектометра, подключенный к Беркут-ММТ, имеет температуру +3 градуса.

температурный тест Беркут-ММТ

А поскольку рабочие точки оптических компонентов рефлектометра рассчитаны на диапазон 0-50 градусов, то рефлектометр сохраняет свои характеристики даже при минусовой температуре!

]]>
Embedded World 2013 — что новенького? http://blog.metrotek.spb.ru/2013/03/05/embedded-world-2013-chto-novenkogo/ http://blog.metrotek.spb.ru/2013/03/05/embedded-world-2013-chto-novenkogo/#comments Tue, 05 Mar 2013 15:02:54 +0000 http://blog.metrotek.spb.ru/?p=3508 Embedded World 2013: development kit на базе Altera SoCна прошлой неделе нам посчастливилось побывать на международной выставке Embedded World 2013, которая уже не первый год проводится в Нюрнберге (Германия). Эта выставка посвящена встраиваемой электронике (embedded). Я хочу немного рассказать о своих впечатлениях :)

embedded-world-pointer-small

выставка занимает более 5 павильонов и проводится в Nurnberg Messe

nurnberg-messe-small

мы приехали туда втроём.
Артём Двинин(artem) и Павел Курочкин(pk)

Артём и Павел

и Александр Степанов (stepanov)

Александр Степанов

на выставке было выставлено множество плат с процессорами, периферийными компонентами, разными разъёмами и прочими embedded-примочками.

я для себя отметил следующий тренд: это SoC-решения. SoC — system on chip, система на одном кристалле.
как минимум четверо крупных участников представили свои новые чипы, в которых процессор объединён с программируемой логикой в одном чипе. Xilinx представил Zync, Altera — V поколение, Cypress — PSoC,
Actel (он же Microsemi) — SmartFusion.

Обо всём по порядку.

Xilinx Zync

Чипы этой серии уже производятся и доступны для широкого круга. цена за чип — не более 50 долларов при партии 1000 штук (модель уточню чуть позже). то есть довольно-таки неплохо, учитывая, что это не просто FPGA, но и ещё и довольно мощный процессор.

Что имеем: двухядерный процессор Cortex A9 с частотой 0.8-1 ГГц + FPGA различной ёмкости. тех. процесс — 28 нм. на этот Cortex устанавливается linux, имеется IDE для разработки FPGA, ну и т.п.

что порадовало? огромное количество всевозможных готовых плат на базе Zync. Их предлагают Trenz Electronic, ITR, PLDA.

Одна из платок на базе Zynq

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

 

Altera Family V

похоже, Altera пока проигрывает позиции своему основному конкуренту — Xilinx. пятое семейство имеет практически такую же начинку, что и Zync, но пока представлены только инженерные образцы. массовый выпуск планируется начать в мае. однако, уже готовы и платы на базе этих инженерных образцов.

например, SoCrates by EBV Electronik (www.ebv.com) — очень интересная платка

altera-ebv-kit-small

ну и такая:
yet-another-cycloneV-kit-small

что порадовало? был продемострирован отладчик (которого, по рассказам представителей Altera, нет у Xilinx), позволяющий отлаживать ARM+FPGA синхронно. называется он DS-5 и основная его «фишка» в том, что работу прошивки FPGA можно сопоставить с кодом, выполняемым в Cortex’е, даже по времени. это хорошо видно из описания и скриншота.

событие, генерируемое из FPGA, останавливает процессор в точке, соответствующей данному моменту времени. дальше можно следовать по шагам, просматривать регистры и т.п.

Actel (Microsemi) Smart Fusion

это тоже процессор + FPGA, только процессор чуть послабже, а именно — Cortex-M3. зато какой там FPGA!

в этом устройстве больше всего порадовала его цена — около 300 долларов за чип (не помню точно, за какой, но количество LE там около 50000) :)
Высокая цена обусловлена устройством FPGA — состояние каждой ячейки (LE) сохраняется во флеш и при включении инициализируется из этой флешки. включение происходит с молниеносной скоростью и не требует высокого тока включения (я правильно выражаюсь?).

данное предложение актуально для военных целей, авионики.

как устроен этот flash FPGA в подробностях, я пока не нашёл :(

офиц. ссылка

Cypress PSoC

помните те времена, когда в микроконтроллере было фиксированное количество i2c, spi, etc.. контроллеров и они были жёстко привязаны к определённым ножкам? так вот можете про них забыть. это — прошлый век :)

PSoC — это конструктор, где кирпичиками являются так называемые UDB (universal device block). для чипа, установленного на плате и подключенного к какой-то перефирии разработчик создаёт проект, в который добавляет нужные контроллеры из библиотеки компонентов. каждому добавленному компоненту назначаются ножки и базовый адрес (причём на выставке мне говорили, что идентификатором каждого компонента является строка, но я не верю ;) — проверю ). Один контроллер может занимать один или несколько UDB-блоков.

список компонентов, доступных в библиотеке, есть на сайте компании. важно отметить, что поведение любого компонента можно изменить: берём Verilog в руки и правим или создаём свой!

а! чуть не забыл про ложку дёгтя: этот самый PSoC creator работает только под windows :)

официальная ссылка

SATA + NAND

очень понравился чип, который интегрирует в себе SATA-контроллер и NAND-флеш. при этом чип имеет одинаковый footprint независимо от объёма и объём достигает 64 ГБ. встроенный контроллер берёт на себя заботы о bad-блоках и прочих орг. вопросах, а в системе этот чип виден как обычный sata-диск.
фото

сайт greenliant

Средства измерения

порадовал tektronix демонстрацией своего multi-domain осциллографа (может быть для кого-то это обыденный девайс, но для меня — новость :) ) он умеет записывать аналоговые, цифровые и радиочастотные процессы, происходящие, естественно, параллельно. 4 канала на аналог/цифру и 1 RF.
я на этот стенд зашёл просто из любопытства и мне показали маленькое шоу на тестовой плате, управляющей радиочастотой. управление производилось по SPI. чип, управляемый по SPI-шине, рулит напряжением, а оно уже частотой. и на осциллографе можно увидеть все эти процессы: декодированные SPI-посылки, радиочастотный спектр, уровень аналогового сигнала. и, главное, всё это можно записать для последующего анализа. и триггеры можно устанавливать по всем каналам! меня впечатлило.

а цена у этого девайса немалая =)
см. сюда

мониторинг i2c

также был представлен инструмент для мониторинга i2c-шины. небольшая USB-коробочка подключается к i2c и записывает всё, что происходит на шине. далее в окне программы можно увидеть всё — от коллизий, возникших на шине, до протокола обмена между устройствами. предусмотрен поиск и прочие удобные «крутилки». очень удобная вещь! и цена довольно гуманная — 300 долларов (плата + софт), особенно если учесть сколько времени мы потратили на отладку i2c-шины :) аналогичное решение предлагается и для SPI-шины.

надо брать!

Redundant switch

интересного «монстра» показала одна финская компания (http://www.flexibilis.com)

как бы вы думали, что это? :)

это система с резервированием каналов. образует гигабитную оптическую сеть и обеспечивает устойчивость при пропадании одного или нескольких линков.

подробнее можно почитать на родном сайте. там и схема есть, и объяснение.

заключение

было очень интересно. практически никакой попсы (в последнее время набили оскомину павильоны, забитые стендами операторов связи), только платки и железяки. приятно чувствовать себя в такой среде, как рыба в воде :)

я для себя взял многие идеи на вооружение и буду применять их в новых разработках. и, честно говоря, хотелось бы в следующем году выставиться на такой выставке. посмотрим, может быть и получится ;)

ну и без баварского пива не обошлось, конечно же. это было приятным продолжением нашего путешествия.

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

]]>
http://blog.metrotek.spb.ru/2013/03/05/embedded-world-2013-chto-novenkogo/feed/ 2
новый механизм обновления http://blog.metrotek.spb.ru/2011/12/06/novyiy-mehanizm-obnovleniya/ http://blog.metrotek.spb.ru/2011/12/06/novyiy-mehanizm-obnovleniya/#comments Tue, 06 Dec 2011 14:09:17 +0000 http://blog.metrotek.spb.ru/?p=2889 да, забыл сказать, что мы сделали новый механизм обновления ПО на приборе Беркут-ММТ. до сегодняшнего дня над нами висел дамоклов меч, выкованный из проклятий несчастных пользователей, пытавшихся обновить софт самостоятельно.

каюсь, даже не каждый наш разработчик мог выполнить эту процедуру без ошибок. но теперь… теперь достаточно скопировать четыре файла на usb-флэшку, подключить её, и прибор за три с половиной минуты обновит себя сам. вот так.

идея наших программистов Юры Людкевича и Вадима Попова воплощена в жизнь!

да, «холодный» старт нынче занимает 38 секунд. и это не предел. в планах — достичь скорости максимум 10 сек.

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

]]>
http://blog.metrotek.spb.ru/2011/12/06/novyiy-mehanizm-obnovleniya/feed/ 1
О бедном WIZnet’e замолвите слово http://blog.metrotek.spb.ru/2011/03/28/o-bednom-wiznet-e-zamolvite-slovo/ http://blog.metrotek.spb.ru/2011/03/28/o-bednom-wiznet-e-zamolvite-slovo/#comments Mon, 28 Mar 2011 17:43:01 +0000 http://blog.metrotek.spb.ru/?p=2677
В процессе разработки одного из проектов у нас возникла задача передать поток данных 2Mbit/s через Ethernet в виде udp-потока. Так как сроки были ограничены, развести плату «под задачу» с нормальным ethernet-контроллером, оказалось невозможным. В результате, за основу была взята уже имеющаяся карта от прибора Беркут-ММТ c установленным на борту контроллером WIZnet W5100. Этот контроллер уже применялся в других проектах и ничто не предвещало беды…

Тут следует рассмотреть, что же из себя представляет контроллер WIZnet W5100. В далёкие времена, когда контроллеры были 8-битными, памяти было мало, а реализация TCP/IP требовалась, появились микросхемы реализующие аппаратно стек TCP/IP. Вроде бы хорошая вещь и, например, для дистанционного управления устройством вполне подходит, позволяя не задумываться о тонкостях протокола TCP/IP, но у всего есть свои ограничения. О том нужны ли такие контроллеры сейчас, при наличии свободно распространяемых IP-стеков для микроконтроллеров и больших объёмах памяти — вопрос спорный и, возможно, заслуживающий отдельной статьи.

И тут мы подходим к тому, что же у нас пошло не так. W5100 можно подключить по трём возможным интерфейсам: двум разновидностям параллельного и по SPI. В нашем случае, для экономии выводов контроллера и упрощения подключения, wiznet подключили по SPI. О производительности в тот момент просто не задумывались, так как сразу использовать его планировалось только для дистанционного управления.

Когда же возникла потребность прогнать через wiznet 2Мбит/с данных, этот вопрос встал в полный рост. И тут в дело вступили ограничения чипа. Как оказалось, максимальная тактовая частота по SPI для wiznet была ограничена 14-ю мегагерцами. Это не было бы проблемой, если бы wiznet поддерживал burst режим и позволял гнать данные непрерывным потоком. Но тут в дело вступило ещё одно ограничение интерфейса SPI у wiznet’а — каждая SPI транзакция у него должна состоять ровно из 4-х байт и содержать код операции, два байта адреса и один байт данных. То есть, на каждый байт полезной нагрузки требовалось передавать 3 байта дополнительных данных. И это — не считая управляющих транзакций, которые передаются по той же схеме. Максимальная пропускная способность, которую мы считали равной 14Мбит/с, оказалась в 4 (!!!) раза меньше и оказалась 3.5Мбит/с.

Второй проблемой оказался SPI-контроллер в процессоре STM32 — делители частоты в нём могут быть только степенью 2. В результате на максимальной тактовой частоте процессора, которую мы использовали до того времени, частота шины к wiznet’у оказалась только 9 мегагерц.

Помимо проблемы передачи данных к wiznet’у так же требовалось эти данные получить из контроллера линии E1. К счастью, решение, использованное для чтения данных из E1, поддерживало burst-режим передачи данных. Попытки получить максимальную возможную скорость передачи к wiznet’у привели к использованию следующей схемы передачи данных:

  1. Из E1 данные вытягиваются по SPI с помощью контроллера DMA, встроенного в процессор STM32. Так как посылки имеют большую длину, DMA работает с высокой эффективностью и накладные расходы невелики.
  2. Данные в wiznet передаются без использования DMA или прерываний, так как это резко снижает производительность на коротких посылках в связи с высокими накладными расходами.
  3. Для получения возможности одновременной передачи данных в wiznet и приёма данных с линии E1 введена двойная буферизация.
  4. Основное ограничение по времени — это передача данных в wiznet, в связи с тем, что приём данных из E1 практически не требует процессорного времени.

В результате всех этих исследования мы пришли к следующим выводам:

  1. Иногда целесообразном снизить тактовую частоту процессора с целью повышения производительности передачи данных по внешним интерфейсам.
  2. DMA у контроллера STM32 эффективно можно использовать только при достаточно длинных транзакциях. Для случая коротких (4 байта ) транзакций потери в скорости слишком велики.

В итоге мы смогли получить требуемые 2Мбит/с с небольшим резервом, используемым для целей удалённого управления, а так же как «запас прочности».

]]>
http://blog.metrotek.spb.ru/2011/03/28/o-bednom-wiznet-e-zamolvite-slovo/feed/ 3
Pogo-pins: попробовали… Получилось!!! http://blog.metrotek.spb.ru/2010/11/16/pogo-pins-poprobovali-poluchilos/ http://blog.metrotek.spb.ru/2010/11/16/pogo-pins-poprobovali-poluchilos/#comments Tue, 16 Nov 2010 08:45:53 +0000 http://blog.metrotek.spb.ru/?p=2456 Несколько дней назад мы спрашивали, что такое «pogo-pin». Никто не ответил. Ну да ладно. Расскажем, так и быть.

Долгое время наши программисты мечтали получить для аппаратного тестирования удобный JTAG-разъем… Сначала мы ставили DIN колодки на 6-10 контактов с шагом 2 и 2.54мм — надежное и дешевое решение, но имеет ряд недостатков:

  • есть возможность поставить разъем наоборот и тем самым «убить» программатор;
  • двухрядные колодки, используемые нами, довольно габаритны и занимают немало места на печатной плате;
  • увеличивают возможность возникновения электростатической помехи, так как длинные штыри разъема являются антеннами для приема возможных помех  вокруг прибора.

Поэтому, приводя схемотехнику наших приборов на соответствие требованиям CE, мы решили отказаться от DIN-разъемов и повсеместно перейти на плоские ленточные FFC кабели и, соответственно, разъемы для них. В наших приборах мы используем 8-ми пиновые односторонние вертикальные и горизонтальные FFC-разъемы. С этими разъемами все оказалось неплохо, и  электростатических помех меньше, и места на плате не так много занимают. Однако, и в этой реализации нашлись кой-какие недостатки:

  • для подключения ленточного кабеля к JTAG-разъему нужно разбирать прибор (например, в Беркут-ET необходимо снять плату GbE, что занимает какое-то время и требует отвертки);
  • довольно высокая стоимость разъемов и ленточных кабелей;
  • недолговечность ленточных кабелей (при активном использовании, а также неаккуратном использовании кривых руках кабели приходят в негодность);
  • ещё одна особенность ленточных разъемов кабелей состоит в том, что необходимо использовать заводские кабели, выполненные точно в размер, требуемый для разъема, иначе кабель будет болтаться и коротить контактные площадки. С этим мы и столкнулись, когда стали работать COM-модулями Colibri от Toradex.

Разъем JTAG-на этом модуле — 6-пиновый FFC, и мы сделали кабель для него из 8-пинового… Получилось, но, так как разъем сам по себе маленький и кабель не точно обрезан в размер, то и дело возникали проблемы с  контактом. Чуть кабель криво повернул или под углом вставил — всё, контакта нет — не работает. Попутно пришлось еще разработать переходник JTAG-ARM на 8-пиновый кабель.


В общем, работать с такой системой, мягко говоря, не комфортно… К счастью, на плате Сolibri параллельно контактам разъема разведены площадки для pogo-пинов. Через эти площадки с помощью специального программатора их и прошивают и тестируют на заводе. И мы для удобства пользования, а также для освоения современной технологии тестирования электронной аппаратуры решили повторить такой программатор… И получилось!!!

Что же такое pogo pin…? Да просто говоря по русски, это пружинящий контакт.

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

Суть технологии не очень сложна — на печатную плату устройства вместо технологического разъема разводятся контактные площадки. Тестирующая головка состоит из pogo-пинов, прижимающихся к этим площадкам на время работы. За счет пружины, находящейся внутри контакта, обеспечивается небольшое усилие на наконечник pogo-пина, прижимающее его к площадке и, тем самым, хороший контакт.

У этой технологии, как и у любой другой, есть преимущества и недостатки… Она, конечно, вне конкуренции при больших партиях оборудования и при конвейерной сборке (тестировании) оборудования, но при небольших партиях — не эффективна, так как появляются затраты на создание тестирующей головки, обеспечивающей точное позиционирование и на надежный прижим к контактным площадкам.

Если нам удастся придумать надежную и не дорогую конструкцию такого тестового разъема, то есть шанс перейти на  данную технологию и в наших серийных приборах… Вдруг получится?..

]]>
http://blog.metrotek.spb.ru/2010/11/16/pogo-pins-poprobovali-poluchilos/feed/ 2