Pull to refresh
16
0
Send message

Сразу три причины, из-за которых контроллер GD32F450 теряет UDP пакеты

Reading time13 min
Views17K
Периодически на Хабре проскакивают статьи, где проверяется двоичная совместимость контроллеров GD32 с их аналогом STM32. Так получилось, что нам довелось поймать пусть и не на двоичном уровне, а на уровне исходников, ситуацию, где одно и то же проявление проблемы (теряются сетевые пакеты) было вызвано не одной, не двумя, а сразу тремя причинами, из которых две оказались признаками несовместимости с STM32. Вот о том, как мы эти причины ловили, я и хочу сегодня рассказать. Будет детектив, аналогичный тому, какой я приводил в своей старенькой статье про поддельную «голубую пилюлю». Ну, и выводы, куда же без них. Они тоже будут.


Читать дальше →

Загадки быстрого преобразования Фурье

Reading time10 min
Views14K

• Метод фазово-амплитудной интерполяции (ФАИ)

• Точное определение частоты, амплитуды и фазы гармоник сигнала

• Выявление резонансов

Алгоритм быстрого преобразования Фурье (БПФ) - важный инструмент для анализа и обработки сигналов различной природы.

Он позволяет реконструировать амплитудный и фазовый спектры сигнала в частотной области представления по его амплитудным отсчётам во временной, при этом метод вычислительно оптимизированный при скромном расходе памяти.

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

В статье представлен действенный способ преодоления таких "неудобных" особенностей алгоритма.

Читать на английском

Читать на русском

Как начать использовать USB Type-C в своих разработках

Reading time13 min
Views55K

В современных embedded-устройствах используется огромное количество различных разъемов, таких как USB Type-B, miniUSB, microUSB и так далее. Все они отличаются форм-фактором, максимальной пропускной способностью и другими различными характеристиками. Самым верным решением в данной ситуации было бы минимизировать количество используемых разъемов и остановиться на каком-то одном, «едином» для большинства разработок. Наиболее перспективным выглядит использование разъема Type-C. В нем объединены невероятная пропускная способность с высокой мощностью питания. Такие производители, как Apple, Huawei, Sony уже внедряют разъем Type-C в свои разработки, постепенно отказываясь от использования «старых» разъемов. А чем embedded-разработчики хуже?


В данной статье мы приведем общую информацию, необходимую для практического применения Type-C. Наиболее полезной она будет для новичков в сфере embedded, но надеемся, что каждый найдет в ней что-то интересное.

Читать дальше →

STM32 Часть 1. Как поморгать светодиодиком

Level of difficultyEasy
Reading time5 min
Views31K

Приветствую!

Данная статья открывает цикл статей о программировании микроконтроллеров STM32 для новичков.

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

Читать далее

STM32 Modular USB Composite device

Reading time27 min
Views17K

Проект является логическим продолжением другого проекта на Хабре - CDC+MSC USB Composite Device на STM32 HAL и рассказыват о том, как на STM32 создать проект с несколькими USB устройствами, с читаемой структурой и используя типовые модули. Конкретно в этом проекте рассмотрен пример комбинации HID + CDC UART + CDC, а также рассказано как этот проект возможно расширить другими интерфейсами.

Читать далее

Лекция «Незаметные сложности космической техники»

Reading time1 min
Views11K
Эту лекцию я прочитал еще в апреле, и уже перестал ждать, что ее выложат. Но, тем не менее, лекторий «Курилка Гутенберга», где проходило мероприятие, все-таки нашел ресурсы, чтобы смонтировать лекцию, за что им большое спасибо.



Читать дальше →

Математика на пальцах: линейно-квадратичный регулятор

Reading time10 min
Views66K

Пара часов из жизни математика-программиста или читаем википедию


Для начала в качестве эпиграфа цитирую rocknrollnerd:
— Здравствуйте, меня зовут %username%, и втайне раскрываю суммы из сигма-нотации на листочке, чтобы понять, что там происходит.
— Привет, %username%!


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

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

Раз уж пошёл эксгибиционизм про мою работу, то вот вам моё рабочее место (кликабельно):

Математика для программистов!

Подальше от обыденной реальности: фантастические романы, которые стоит прочитать

Reading time4 min
Views142K
image

Фантастика как жанр заставляет читателей и писателей выйти за пределы разумного, дать волю своему воображению и отправиться в неизведанные миры. За это мы и любим этот жанр. RoboHunter этой осенью предлагает с головой погрузиться в мир научной фантастики.
Читать дальше →

Семинар в LA и инициативы в России по MIPSfpga и преподаванию электроники

Reading time5 min
Views6.2K
Компания Imagination Technologies, известная как разработчик графического процессора PowerVR внутри Apple iPhone, с одобрением от президента Стенфорда Джона Хеннесси приглашает преподавателей и аспирантов электроники и программирования на бесплатный семинар рядом с Лос-Анжелесом, который пройдет 13-14 мая. Другим организатором семинара, помимо Imagination, является Xilinx — компания №1 в ПЛИС-ах / FPGA. Если вы занимаетесь исследованиями или преподаете, особенно рядом с Лос-Анжелесом (UCLA, Caltech, UC San Diego, CalPoly, UC Santa Barbara, UC Irvine, Arizona State, University of Nevada Las Vegas и т.д.) вы можете присоединиться — будет много интересного.
Читать дальше →

Детекторы углов

Reading time18 min
Views112K
Мне интересна обработка изображений, в особенности работа с особыми точками. Ища информацию по детекторам углов, я не нашел достаточно большого обзора этих алгоритмов на русском языке. Поэтому я решил исправить ситуацию, написав эту статью. План статьи следующий:

  • Введение
  • Свойства особых точек
  • Детекторы углов
    • Moravec
    • Harris
    • Shi-Tomasi
    • Förstner
    • SUSAN
    • Trajkovic
    • FAST
    • CSS
    • Детектор, основанный на глобальных и локальных свойствах кривизны
    • CPDA
  • Выводы



Читать дальше →

Белый Куб на страже чистоты воздуха, часть 1

Reading time14 min
Views134K
Устройство для мониторинга параметров домашней среды с передачей данных по Wi-Fi.

image

В статье описывается устройство для измерения, индикации на встроенном дисплее и передачи в сеть по Wi-Fi параметров окружающей среды:

• уровень СО2 (углекислый газ)
• уровень СО (угарный газ)
• содержание паров этилового спирта (С2Н5ОН)
• уровень горючих газов (LPG)
• уровень аммиака (NH3)
• содержание водорода(H2)
• значения атмосферного давления
• влажности и температуры воздуха
• уровня освещенности
• уровня магнитного поля по трем осям
• уровня гравитации по трем осям
• уровня ускорений по трем осям
• температуры произвольного количества цифровых датчиков температуры типа DS18B20.
Читать дальше →

100 ватт по USB или как работает Power Delivery

Reading time9 min
Views174K
Почитав вот этот пост и сопутствующую ему дискуссию, я решил попробовать внести ясность в то, что такое USB Power Delivery и как это работает на самом деле. К сожалению у меня сложилось впечатление, что большинство участников дискуссии воспринимают 100 ватт по USB слишком буквально, и не до конца понимают что за этим стоит на уровне схематики и протоколов.

Итак, кратко – основные пункты:

  • USB PD определяет 5 стандартных профилей по электропитанию – до 5V@2А, до 12V@1.5А, до 12V@3А, до 12-20V@3А и до 12-20V@4.75-5А
  • Кабели и порты для Power Delivery сертифицируются и имеют дополнительные пины в разьеме
  • Тип кабеля и его соответствие профилю определяются автоматически через дополнительные пины и определение типа USB коннектора (микро, стандарт, A, B и т.д.)
  • Обычные USB кабели (не Power Delivery) сертифицируются только по первому профилю до 5V@2A
  • При подключении распределяются роли, между тем кто дает ток (Source / Источник ) и кто потребляет (Sink / Приемник)
  • Источник и Приемник обмениваются сообщениями по специальному протоколу, который работает параллельно традиционному USB
  • В качестве физического носителя протокол использует пару – VBus / GND. Именно поэтому Power Delivery не зависит от основного USB протокола и обратно совместим с USB 2.0 и 3.0
  • Используя сообщения, источник и приемник могут в любой момент времени меняться ролями, изменять силу тока и/или напряжение, уходить в спячку или просыпаться, и т.д.
  • По желанию устройства могут поддерживать управление PD через традиционные USB запросы, дескрипторы и т.д.

Под катом — детали.
Читать дальше →

Интересующимся мозгом/ИИ: ссылки на почитать

Reading time18 min
Views82K
Расчищая Авгиевы конюшни на своем компе, взялся за структурирование накопившихся линков. Подумал, может и другим будет интересно то, что когда-то мне показалось достойным. Опять же, будет к чему отсылать с вопросом есть чо? «что почитать?»

Этот набор (порядка 400 ссылок) ни в коей мере не претендует на полноту или объективность. Наоборот, приглашаются все желающие дополнить и исправить (например раздел «Онлайн Курсы» подозрительно пуст). Если будет интерес, буду апдейтить этот пост новыми линками + апдейты отдельными постами оформлять.

Не стал я сюда давать ссылки на книги по нейробиологии и совсем заумные статьи (хотя много ссылок на оригиналы статей) — это тема для отдельного поста, наверное, с хорошим обзором. Если кому-то захочется почитать статью, к которой доступ закрыт — пишите, вышлю.

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

PS: я оставил ссылки как есть, чтобы было видно куда ведет. Если кого напрягает — пишите, апдейтом спрячу.

Знание - сила!

Input — новый шрифт для программирования

Reading time1 min
Views99K
Компания Font Bureau разработала новое семейство шрифтов Input, важнейшим из которых в данном случае для нас является шрифт Input Mono. Кириллица присутствует. Для персонального использования шрифты бесплатны.

Читать дальше →

Мультиклеточный процессор — это что?

Reading time18 min
Views52K
Многие слышали о мультиклеточной архитектуре, процессорах и даже первых устройствах на них. Особенно продвинутые пользователи опробовали свои алгоритмы. Были проведены первые простые тесты производительности, а также пользователь Barsmonster, вытравил кристалл процессора Р1. Сейчас уже проходит первые проверки процессор R1 и скоро будет доступен всем. Но ответ на вопрос о том, как работает мультиклеточная архитектура и в чём её отличие, знают не все. Попытаемся сейчас ввести в курс дела.
Читать дальше →

Распознавание номеров: от А до 9

Reading time9 min
Views171K
Уже пару раз на Хабре возникали дискуссии на тему того, как сейчас работает распознавание номеров. Но статьи, где были бы показаны разные подходы к распознаванию номеров, на Хабре пока не было. Так что здесь попробуем разобраться, как все это работает. А потом, если статья вызовет интерес, продолжим и выложим работающую модель, которую можно будет поисследовать.

image
Читать дальше →

Полнофункциональный драйвер SDHC карты памяти для Stm32f4 (часть 1)

Reading time14 min
Views102K

Для чего эта статья?


Все эмбеддеры, рано или поздно, сталкиваются с проблемой нехватки ПЗУ микроконтроллера для своих проектов. Ну банально, Вам нужно разработать систему управления простеньким ЧПУ станком, где управляющая программа хранится на самом девайсе или систему сбора данных, скажем, от датчиков какого-нибудь эксперимента – очевидно, что микроконтроллер изначально не предназначался для хранения таких массивов информации.
Читать дальше →

Компактный USB HID Bootloader для ATtiny85

Reading time8 min
Views71K

Представляю вашему вниманию новый компактный Bootloader для AVR Tiny 45/85. Данный автозагрузчик распространяется под лицензией GNU GPL, как того требует лицензия V-USB. Основой для данного автозагрузчика послужил ATtiny85 USB Boot Loader от Embedded Creations и его потомок micronucleus-t85, используемый платами Digispark.
Также как и вышеупомянутые, TinyHID Loader основан на библиотеке V-USB.

Ключевые особенности:


  • Работает под ATtiny45 и ATtiny85
  • Компактен (2кб с базовыми функциями)
  • Расширяем (есть ряд дополнительных функций, включение которых увеличит размер)
  • Не треубет драйверов (что особенно важно под новые версии Windows)
  • Не работает с AVRdude, использует вместо этого кросплатформенное API на C#
  • Умеет обновлять сам себя

Читать дальше →

Прямая передача данных между ПЛИС Virtex-7 по шине PCI Express

Reading time21 min
Views27K

Аннотация


В данной статье рассматривается передача данных по шине PCI Express с одновременным участием нескольких ПЛИС. В компьютерной системе, к PCI Express шине которой подключено несколько (в нашем случае 8) оконечных устройств (PCIe endpoints) ПЛИС запускается одновременно несколько транзакций передачи данных двух типов: А) DMA передача между ОЗУ и ПЛИС (чтение/запись) и Б) прямая передача данных между двумя ПЛИС (запись). Используя соединение PCI Express x4 Gen 2.0 при обращении в память была получена скорость записи 1451 МБ/с (90% от максимальной). Скорость записи данных между ПЛИС была равна 1603 МБ/с (99 % от максимальной) при длине пакетов 128 байт и 1740 МБ/с (99% от максимальной) при длине пакета 256 байт. Латентность передачи данных между ПЛИС зависит от количества промежуточных коммутаторов, и была равна 0,7 мкс для одного коммутатора и 1 мкс для трех. Также показано, что при одновременных передачах через общий канал скорость отдельных передач не уменьшается до тех пор, пока суммарная скорость передачи не превышает пропускную способность общего канала; затем канал используется на 100%, а его пропускная способность делится поровну между устройствами.
Читать дальше →
1

Information

Rating
Does not participate
Registered
Activity