Как стать автором
Обновить
145.27
Рейтинг

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

Учимся программировать микроконтроллеры

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

О недавней уязвимости в банкоматах Diebold Nixdorf

Блог компании Positive Technologies Информационная безопасность *Криптография *Реверс-инжиниринг *Программирование микроконтроллеров *

На днях Positive Technologies опубликовала новость о том, что банкоматы производителя Diebold Nixdorf (ранее Wincor), а точнее модели диспенсеров RM3 и CMDv5, содержат уязвимость, благодаря которой можно производить выдачу наличных и заливать модифицированную (уязвимую) прошивку. И поскольку я и мой бывший коллега Алексей Стенников имеем непосредственное отношение к нахождению этой уязвимости, я хотел бы поделиться некоторыми ее деталями.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 964
Комментарии 6

Новости

Hello, ZigBee! кастомные кластеры и поддержка в zigbee2mqtt

Беспроводные технологии *Программирование микроконтроллеров *Умный дом Интернет вещей DIY или Сделай сам

Всем привет!

Спецификация Zigbee Class Library стандартизирует множество различных строительных блоков для всевозможных Zigbee устройств. Тут вам и выключатели, и реле, и всевозможные датчики и сенсоры, и климатические устройства, и охрана. Но иногда в рамках типовых строительных блоков становится тесновато, и нужно думать о написании своих собственных Zigbee кластеров. Это не так сложно.

Эта статья является продолжением серии статей (раз, два, три, четыре) про постройку своего умного Zigbee выключателя. Сегодня будем обучать наш умный выключатель всяким длинным и двойным нажатиям. Но в нашем случае мы сделаем еще и возможность тонкой подстройки режимов работы, да еще и в рантайме, средствами Zigbee. Для этого придется написать свой кастомный кластер (точнее расточить кластер On/Off Switch Configuration), изучить кластер Multistate Input, и еще обучить этому всему zigbee2mqtt.

Поехали!
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 2.6K
Комментарии 4

Работаем с сетевыми адаптерами через Pcap-драйверы

FPGA *Программирование микроконтроллеров *Компьютерное железо
Работой с сетью в наше время никого не удивишь. Насколько я знаю, работать с сокетами нынче обучают уже на втором курсе соответствующих специальностей. Так что в целом, сетевые навыки должны быть у многих программистов. Но иногда требуется не просто работать с сетью, а делать это с предопределёнными параметрами, будь то расстояние между пакетами либо какое-то нестандартное их содержимое. Понятно, что речь идёт не о повседневной жизни, а об отладке либо тестировании проектов. В этом нам поможет работа через Pcap-драйверы. Например, через драйвер Npcap, устанавливающийся вместе с программой Wireshark.



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

В общем, думаю, имеет смысл свести все сведения воедино. Кому интересно – приступаем!
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 1.4K
Комментарии 12

Открытый проект беспроводной системы сбора данных на модулях 433 МГЦ

Open source *Разработка систем связи *Программирование микроконтроллеров *Производство и разработка электроники *DIY или Сделай сам
Tutorial

И еще раз о передатчиках и приемниках 433 МГц. Попробуем как можно проще и дешевле подключить их к ATMEGA8, добиться дальности более 2 км и сделать крипто-защищенную беспроводную сеть-шлюз к 1-Wire сетям сенсоров DS18S20. Для этого привлечем оверсэмплинг, ортогональные сигналы и помощь MATLAB Simulink.

Техническое описание
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 5.8K
Комментарии 11

Настройка VSCode для программирования stm32 в Linux и не только в Linux

Программирование микроконтроллеров *Электроника для начинающих
Из песочницы

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

Всё ниже описанное является следствием моего личного опыта, и ни на какую истинность не претендует. Все советы рассчитаны не людей только решившихся на переход с AVR на STM32

Вопросы типа почему Linux, VSCode и прочее, думаю, освещения не требуют. Считаю, что все заинтересованные в вопросе, на эти мелочи давно нашли СВОЙ ответ. Однако отмечу, в Винде всё это тоже работает, проверено, и проекты спокойно переживают миграцию между машинами.

Пожалуй начнём!

Читать далее
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 7K
Комментарии 35

Танцы без бубнов или как я реализовал автомат на ПЛИС

Блог компании ЦИТМ Экспонента Алгоритмы *FPGA *Программирование микроконтроллеров *Инженерные системы

Всем привет, дорогие хабровчане! Сегодня я хочу поделиться своей «больной» идеей реализовать калькулятор на ПЛИС на основе конечного автомата. Почему больной? Потому что уж очень мудрёно получается: всё-таки реализация автоматов на ПЛИС – дорогая практика в смысле ресурсов. Почему хочу поделиться? Потому что вишенкой на торте в этом проекте является автоматическая генерация кода с помощью такого мощного средства, как HDL Coder в MATLAB, что в купе со Stateflow очень интересно смотрится: создание железного кода на основе графического составления графа системы – ни это ли верх мечтаний разработчика, которому необходимо реализовать сложнейший граф с кучей разных переходов и условий ?!

Итак, задачу перед собой я поставил следующую: у меня есть «китайский» кит с FPGA Spartan 6 на борту и старенький клавиатурный интерфейс PS/2. Я собираюсь залить проект калькулятора-автомата на ПЛИС вместе с выбранным интерфейсом и с клавиатуры осуществлять ввод данных. Вывод результата и текущего ввода будем наблюдать на 8-ми cемисегментных дисплеях, которые также имеются на отладочной плате.

В первой части мы познакомимся с пакетом Stateflow, как собиралась модель в SIMULINK и сгенерируем HDL-описание. Во второй части мы немного скорректируем проект для получения синтезируемого HDL кода.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.2K
Комментарии 6

Безопасность ПЛК: 4,5) Используйте переменные-флаги, хеши и контрольные суммы для проверки целостности проекта

Информационная безопасность *Программирование *Промышленное программирование *SCADA *Программирование микроконтроллеров *
Перевод
Tutorial

Добавляйте счётчики для флагов ошибок.

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 834
Комментарии 0

Отправка и прием данных неизвестной длины по UART через DMA в freeRTOS на STM32 с использованием LL

C *Программирование микроконтроллеров *
Tutorial

В этой статье я расскажу о том, как реализовать работу с UART через DMA в freeRTOS.

Приступим!
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 3.3K
Комментарии 3

Истории самодельного робота. Ч.1

Assembler *Разработка робототехники *Программирование микроконтроллеров *Робототехника

image


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


Что будет например если ваша поделка весом под 60 кг сломает, например, кому то ногу.Или собьется GPS-трек и робот спровоцирует ДТП на оживленном пешеходном переходе-перекрестке? Или подарит цветы не той, "незапрограммированной" девушке, ошибется цветом кожи клиента или доставит до адресата пиво теплым а шаурму холодной? Задавшись в один прекрасный момент идеей создания робота своей мечты можно получить ответы на некоторые эти вопросы, заодно, в очередной раз, попробовать перевернуть мир.Собственно под катом описан процесс создания некого универсального робота.Конкретно шасси.

Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 3.8K
Комментарии 9

TbK — удобный, многофункциональный и бесплатный терминал для работы с COM-портами и поддержкой Modbus-протокола

Отладка *Промышленное программирование *Программирование микроконтроллеров *Производство и разработка электроники *Софт
Из песочницы

Думаю, что каждый из embeded-разработчиков хотя бы раз в жизни пользовался терминалом для работы с COM-портом ПК - простой программой, позволяющей персональному компьютеру через встроенный интерфейс RS-232 (или USB-переходник) общаться с внешними устройствами, например такими, как GSM-модем или просто обмениваться данными с микроконтроллером в процессе разработки и отладки прошивки.

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

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

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 5.1K
Комментарии 33

Немного сложнее чем мигание светодиодом или усилитель с DSP обработкой сигнала и веб интерфейсом

Программирование микроконтроллеров *Схемотехника *Производство и разработка электроники *Звук

Начать свою статью хочу с известных многим слов:

«Что нам стоит, дом построить?
нарисуем, будем жить,
и уж, точно, непременно,
в нём не будем мы тужить.»

Что нам стоит собрать усилитель с ДСП обработкой сигнала, да еще с красивым веб интерфейсом и различными другими интерфейсами управления? Легко? На практике это оказывается достаточно сложная задача.

Для опытных разработчиков данная статья не раскроет ничего нового, т.к. в ней не раскрываются никакие тонкие особенности или методики разработки. Это скорее обзор процесса проектирования конкретного электронного устройства конкретным разработчиком. В первую очередь он будет интересен людям, которые немного занимались радиоэлектроникой и собирали какие-то конструкции, а сейчас подошли к этапу, когда хочется основательно заняться разработкой. Этой статьей я хочу показать, что разработка сложного устройства может быть выполнена небольшой командой из четырех-пяти человек, но и трудностей на этом пути очень много. Я не буду описывать как процесс разработки выглядит классически. Я просто представляю свой скромный взгляд на проделанную работу.

ВАЖНО: это мой личный взгляд на разработку, он не обязательно будет совпадать с вашим мнением. А возможно наоборот, я озвучу некоторые мысли, которые вам кажутся родными, но это просто совпадение. Мой взгляд может не совпадать с классическими подходами к разработке оборудования. Но он имеет место быть, так как подтвержден успешным запуском в производство некоторого количества оборудования.

Если интересно - добро пожаловать.

Читать далее
Всего голосов 12: ↑8 и ↓4 +4
Просмотры 4.1K
Комментарии 6

Готовимся к Сколковской Школе Синтеза Цифровых Схем: литература, FPGA платы и сенсоры

FPGA *Программирование микроконтроллеров *Производство и разработка электроники *DIY или Сделай сам Электроника для начинающих

Мы с коллегами из МИЭТ, Ядро Микропроцессоры / Syntacore, МИРЭА, ВШЭ МИЭМ, МГУ, Иннополиса, ЧНТУ, Самарского университета, Siemens EDA и с поддержкой от Cadence Design Systems - проводим, начиная с 30 октября, курс на 13 суббот под названием "Сколковская Школа Синтеза Цифровых Схем". Это сильно расширенная версия трехдневной школы на ChipEXPO, которая прошла на ура в сентябре.

Суть школы - знакомство с маршрутом проектирования RTL2GDSII, который применяют проектировщики чипов в Apple, Intel итд, используя в качестве тренажера лабы на микросхемах реконфигурируемой логики FPGA, как это делают например в MIT в курсе 6.111. Помимо лаб на FPGA в курсе будет туториал по ASIC flow используя софтвер от Cadence, после которого, если мы договоримся, будет экскурсия на фабрику микросхем в Зеленограде.

Число регистраций снова в несколько раз превысило число посадочных мест в Сколково, поэтому большая часть участников вероятно будет проходить школу удаленно, как и зарегистрировавшиеся вне Москвы, в том числе в Белоруссии, Украине, Азербайджане, Казахстане итд - среди зарегистрировашихся есть даже русские живущие в Германии.

Этот текст - в помощь для подготовки
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 4.2K
Комментарии 43

Второе чувство: разработка ИИ-носа

Блог компании FirstVDS Программирование микроконтроллеров *Искусственный интеллект DIY или Сделай сам
Перевод
Шли долгие майские выходные 2020 года. Я, как и многие другие представители рода людского, сидел дома. Из-за пандемии у меня было свободное время, которое я тратил на улучшение моего рецепта хлеба. А несколькими днями ранее я заказал газоанализатор (Рис. A, под катом). Я полагал, что он идеально подойдёт для того, чтобы помочь мне наблюдать за хлебной закваской. У меня была надежда на то, что эта штука позволит мне идеально рассчитать время начала выпечки хлеба.


Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 2.3K
Комментарии 1

Общение двух процессоров 1967BH028 по LVDS с использованием DMA и прерываний

Assembler *Программирование микроконтроллеров *
Tutorial

В этой заметке рассмотрим процесс обмена данными между двумя процессорами 1967BH028 через интерфейс LVDS с использованием каналов DMA. А также вкратце ознакомимся с особенностями организации системы вызова прерываний в этом процессоре и задействуем прерывание по завершению работы канала DMA.

кнопка чтобы нажЫмац
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 2.9K
Комментарии 5

Руководство по выживанию для создателей нейрочипов

Компиляторы *Программирование микроконтроллеров *Искусственный интеллект


В 2018 году мы взялись за первый большой контракт по созданию инструментов разработки для нейропроцессора. В то время я знал, что рынок AI быстро растёт и на нём существуют сотни компаний. Но я не подозревал, что к 2021 году на рынке возникнет ещё пара сотен новых чипмейкеров, разрабатывающих акселераторы для AI, что мы станем AI-партнёром Arm, а наши проекты с нейрочипейкерами вырастут в отдельное направление. Не уверен, что вопрос, который поднимаю, актуален для российской аудитории: не так много в России компаний (откровенно говоря – мало), которые выпускают собственные ускорители для нейросетей. Скорее, эта статья — попытка зафиксировать знания, которые мы получили на американском рынке в результате нескольких проектов и около сотни бесед с чипмейкерами. Но если эта статья нанесёт кому-то непоправимую пользу, буду очень рад.
Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 1.9K
Комментарии 0

Реле Давления v2.0 — revival

Программирование микроконтроллеров *Умный дом DIY или Сделай сам
Tutorial

Привет, дорогой хабровчанин! Хотел выразить тебе огромное спасибо, за то, что смог побудить меня написать эту статью… 😊

Заваривайте чаёк, кофеёк или что-то покрепче и погнали читать вместе!

Чытаць далей
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 4.8K
Комментарии 19

USB CDC Bootloader для STM32F103C8

Программирование *Qt *Программирование микроконтроллеров *
Из песочницы

При проектировании устройства на микроконтроллере бывает встает вопрос об обновлении прошивки прибора. Причем сам процесс обновления прошивки должен быть простым и доступным для обыкновенного пользователя. И конкретно для микроконтроллера STM32F103C8 возможна загрузка прошивки по UART. То есть к схеме необходимо добавлять микросхему конвертера USB-UART. Либо воспользоваться аппаратными возможностями USB микроконтроллера, что я и сделал. Меня заинтересовал вопрос о возможности обновления прошивки по USB. На некоторых МК даже есть аппаратный USB-загрузчик, но только не на STM32F103C8, поэтому пришлось все программно реализовывать. По программной части для STM32 существует USB Library от STMicroelectronics с реализованными классами USB и примерами. В частности заинтересовал класс DFU т.е. загрузка прошивки по USB. В данном классе уже реализован свой набор команд для взаимодействия МК и приложения на ПК "STM32CubeProgrammer". Но мне хотелось что-то своё, кастомное и неограниченное данным набором команд. И пришла мысль "А почему бы не реализовать всё это в классе CDC?". Тут и размер загрузчика примерно таким же оказался, но главное можно реализовать свой набор команд, работать на ПК с последовательным портом и соответственно понятнее, как написать приложение для ПК. У меня есть небольшой опыт написания приложений с использованием библиотеки QT на С++, поэтому с ее помощью была создана программа для USB загрузчика.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 3.9K
Комментарии 29

Развертывание Azure RTOS и USB стека на STM32H753

Open source *Программирование микроконтроллеров *Производство и разработка электроники *DIY или Сделай сам Электроника для начинающих
Tutorial

Здесь разберем следующие темы:

Специфика конфигурации Azure RTOS на платформе BACKPMAN v2.0 с микроконтроллером STM32H753.

Подключение на один порт USB одновременно трех разных интерфейсов: Mass Storage, Virtual COM, RNDIS 

Универсальный драйвер последовательного ввода-вывода способный работать через UART, USB,  Telnet, FreeMaster и прочие каналы связи. 

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.8K
Комментарии 9

Являются ли программисты айтишниками? И является ли проектирование на уровне регистровых передач программированием?

FPGA *Программирование микроконтроллеров *Карьера в IT-индустрии История IT DIY или Сделай сам

Перед нами девушка Лиля, с FPGA платой и учебником Харрис & Харрис в руках, на фоне самого высокого на Земле дерева Sequoia sempervirens, недалеко от Стенфорда в Silicon Valley.

Представьте, что вы приехали сюда в командировку в типичную электронную компанию. Усаживаетесь в офисе, входите со своего ноубука (в Америке их чаще называют лаптопами) в корпоративную сеть и пытаетесь что-то напечатать. А принтер не подсоединяется. Вы обращаетесь к ко-воркеру "Что делать?", а он вам говорит: "Обратитесь в IT". Вы в замешательстве "В Ай-Ти? А я что - не айтишник?"

Спокойствие. Если вы программист, вы не IT, вы software engineer и работаете в отделе Software Engineering Department. Если вы электронщик, вы тоже не IT, вы работаете в Hardware Engineering Department. IT Department - это другое, это отдельный от разработки отдел, это группа сисадминов, которые поддерживает внутри-корпоративную сетку и ведут учет выданых сотрудникам лаптопов.

Но это слишком тривиально, обсудим более интересный вопрос: вот все эти люди, которые пишут код на языке описания аппаратуры Verilog, который потом превращается в дорожки и транзисторы из silicon на фабрике - они программисты? Аппарентли, нет.

Обсудим почему
Всего голосов 24: ↑16 и ↓8 +8
Просмотры 18K
Комментарии 57

Разбор работы LVDS портов и DMA на отечественном DSP 1967ВН028

Assembler *Программирование микроконтроллеров *
Tutorial

В продолжение моих заметок, посвященных разбору функционала процессора от фирмы Миландр 1967ВН28, рассмотрим способы общения с внешними устройствами. В данном процессоре есть возможности общения по следующим информационным каналам. Порты LINK (LVDS) и также имеется параллельный интерфейс, предназначенный для работы с внешней памятью. Этой заметке разберем работу с интерфейсом LINK.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 2.5K
Комментарии 8

Вклад авторов