разработка — НТЦ Метротек. Архив блога http://blog.metrotek.spb.ru заметки бывших разработчиков бывшего НТЦ Метротек Thu, 02 Oct 2025 13:52:15 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.1.15 Курсы по разработке http://blog.metrotek.spb.ru/2016/10/13/kursyi-po-razrabotke/ http://blog.metrotek.spb.ru/2016/10/13/kursyi-po-razrabotke/#comments Thu, 13 Oct 2016 20:06:14 +0000 http://blog.metrotek.spb.ru/?p=5412 bez-imeni-3 Ура! Свершилось! Мы рады объявить, что снова открываем курсы по разработке для студентов.

Занятия по каждому курсу проводятся один раз в неделю в вечернее время и длятся 1-2 часа, состоят из лекций, практических занятий и экзаменов. По окончанию обучения будут выданы сертификаты, а самым лучшим мы с радостью предложим пройти практику в нашей компании.

Для записи на курс

заполните анкету на сайте и пройдите онлайн-тест, Прием заявок заканчивается 23 октября, результаты будут объявлены участникам 28 октября. Стартуем 1 ноября.

Обучение бесплатное, студенты могут выбрать любое количество курсов.

Программа обучения

Основы программной инженерии

Основы программной инженерии. Проектная деятельность.
Записаться

Программирование микроконтроллеров STM32

Работа с интерфейсами USB, GPIO, I2C. Прерывания и таймеры.
Записаться

Разработка для FPGA

Введение в программирование под FPGA. Большую часть курса занимает изучение и написание модулей с использование языка Verilog/SystemVerilog.
Записаться

Системное программирование в Linux

Обучение системному программированию. Изучение основ ядра Linux. Введение в разработку драйверов для Linux.
Записаться

Измерение качества телекоммуникационных каналов

Измерения качества телекоммуникационных каналов Ethernet, E1, оптическая рефлектометрия. Большое количество информации о физике и теории сигналов.
Записаться

Расписание

]]>
http://blog.metrotek.spb.ru/2016/10/13/kursyi-po-razrabotke/feed/ 2
LinkMeUp. Выпуск № 41. System on Chip http://blog.metrotek.spb.ru/2016/07/30/linkmeup-vyipusk-41-system-on-chip/ Fri, 29 Jul 2016 21:11:05 +0000 http://blog.metrotek.spb.ru/?p=5385 Готов новый выпуск регулярных аудио-подкастов LinkMeUp, направленных на популяризацию образования в области сетевых технологий. Вы можете послушать рассказ Павла Курочкина о том, как устроены Ethernet-анализаторы и какую роль в их архитектуре играет технология System on Chip:

http://linkmeup.ru/blog/250.html

#SoC #FPGA #LinkMeUp

]]>
мы пишем, нам пишут http://blog.metrotek.spb.ru/2016/05/11/myi-pishem-nam-pishut/ Wed, 11 May 2016 11:35:28 +0000 http://blog.metrotek.spb.ru/?p=5366 BlueSom  from STC Metrotek доблестные разработчики НТЦ Метротек продолжают публиковать на Хабрахабре интересные статьи про софт, железо, fpga и не только. сегодня мы предлагаем вашему вниманию рассказ Александра Насиды про VGA-контроллер, который можно сделать самостоятельно и без знания HDL.

читать здесь. эксперименты проводились на нашей плате с кодовым названием BlueSom

]]>
Игровой хакатон http://blog.metrotek.spb.ru/2015/07/26/igrovoy-hakaton/ Sun, 26 Jul 2015 10:15:31 +0000 http://blog.metrotek.spb.ru/?p=5218 Программирование под Linux На этой неделе в НТЦ Метротек состоялся конкурс-хататон, разрабатывали игры под Linux для наших тестеров-анализаторов сети. Разработчики за ограниченное время успели сделать пять игрушек. Результаты будут оцениваться на следующей неделе по обширному ряду параметров, включая и геймплей, и графику, и чистоту кода.

Немного фотографий процесса и результата:

Игоровой хакатон

Хакатон

]]>
Идеальный диод своими руками 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) Что делать с демонтированными аккумуляторами?

]]>
хабр: про ptp http://blog.metrotek.spb.ru/2015/04/28/habr-pro-ptp/ Tue, 28 Apr 2015 15:23:59 +0000 http://blog.metrotek.spb.ru/?p=5010 Артём Двинин сегодня опубликовал на Хабре интересную заметку про то, как работает протокол точного времени PTP и о том, как реализована поддержка PTP в наших приборах Беркут-ET и Беркут-ETX.

всем читать!

]]>
тетрис на fpga http://blog.metrotek.spb.ru/2015/01/13/tetris-na-fpga/ Tue, 13 Jan 2015 16:12:48 +0000 http://blog.metrotek.spb.ru/?p=4910 yafpgatetris новый год наступил, а некоторые наши разработчики даже на каникулах не теряют времени даром! вот новая заметка на Хабре от Ивана Шевчука: Делаем тетрис под FPGA.

]]>
Мониторинг FPS в потоке H.264 http://blog.metrotek.spb.ru/2014/12/31/monitoring-fps-v-potoke-h-264/ Wed, 31 Dec 2014 19:58:01 +0000 http://blog.metrotek.spb.ru/?p=4897 h.264_sКак всегда в недрах лаборатории НТЦ Метротек ведется работа по все более глубокому анализу сетевых потоков. На этот раз мы решили углубить свои знания в области трансляции видео по сети. Как уже многим известно, мы разработали и поставляем анализатор качества видеопотоков на базе Беркут-MX. В ближайшее время появится очередная версия этого замечательного продукта, которая будет содержать новые интересные и полезные возможности и, в частности, поддержку мониторинга rtp, инкапсулированного в rtsp over tcp.

В процессе развития функционала наших приборов мы приобретаем огромное количество новых знаний, проводим исследования и пишем статьи по темам, кажущимся нам интересными. Одна из таких тем — мониторинг кадровой частоты в потоке H.264.

Заинтересовавшихся прошу ознакомиться.

]]>