Pull to refresh
99
Karma
0
Rating
Автушенко Игорь @GarryC

User

Zephyr в embedded: опыт использования на STM32F7-Discovery

Programming microcontrollers *Manufacture and development of electronics *
image

История о моем опыте использования операционной системы реального времени (ОСРВ) Zephyr для устройства на базе микроконтроллера STM32F7-Discovery.


В статье:


  • Что такое Zephyr и при чем тут Linux?
  • Запуск проекта на STM32. Интересные моменты по работе с драйверами.
  • Фишки этой ОС. Что понравилось, а что нет.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Views 8.8K
Comments 8

Разглядывая JTAG: что внутри?

FPGA *Programming microcontrollers *Manufacture and development of electronics *Electronics for beginners

Ознакомившись с работой JTAG в общих чертах и написав файл BSDL для воображаемой микросхемы в предыдущей статье, можно рассмотреть работу модуля JTAG внутри микросхем более детально. Для этого мы напишем прошивку для микроконтроллера и для ПЛИС (на «Си» и на «SystemVerilog»), которые позволят считывать/устанавливать логические уровни на отдельных выводах микросхемы через данный интерфейс.

Реализовать интерфейс JTAG
Total votes 31: ↑31 and ↓0 +31
Views 5.7K
Comments 8

Go для самых маленьких. Разрабатываем для Arduino и других микроконтроллеров

OTUS corporate blog Go *Programming microcontrollers *IOT

Язык Go благодаря своей простоте, возможности компиляции в выполняемый образ и встроенной поддержке многозадачности стал, в некотором смысле, "серебряной пулей" для создания высокопроизводительных инструментов и, совместно с Rust, сформировал современный технологический ландшафт для DevOps. Но в действительности, благодаря поддержке набора инструментов LLVM, стало возможным использовать Go и для встраиваемых систем, например при создании мобильных приложений для Android/iOS (например, проекты android-go или gomobile) или микроконтроллеров. В этой статье мы поговорим о возможностях проекта TinyGo, его преимуществах по сравнению с C++ для Arduino и других микроконтроллеров, рассмотрим несколько примеров по работе с оборудованием (на примере реализации драйвера шины SPI для светодиодной ленты WS2812).

Читать далее
Total votes 13: ↑12 and ↓1 +11
Views 4.2K
Comments 4

Поворотный энкодер: насколько сложен он может быть

DIY Electronics for beginners
Translation

Как вы могли заметить, я давно работаю с процессором STM32 ARM при помощи Mbed. Были времена, когда Mbed был весьма прост, но многое изменилось с тех пор, как он превратился в Mbed OS. К сожалению, это означает, что многие примеры и библиотеки, которые вы могли бы найти, с относительно новой системой работать не будут.

Мне нужен был поворотный энкодер — и я вытянул дешевый экземпляр из одного набора «49 плат для Arduino», какие продаются повсюду. Уверен, это не самый филигранный поворотный шифратор из имеющихся в природе, но для поставленной задачи его должно было хватить. К сожалению, в Mbed OS нет драйвера для такого датчика, а первые несколько сторонних библиотек, которые я нашел, либо работали по принципу опроса, либо не компилировались под последнюю версию Mbed. Разумеется, для чтения поворотного энкодера никакой магии не требуется. Но насколько сложно самостоятельно написать для него код? В самом деле, довольно сложно. Подумал, поделюсь моим кодом и расскажу, как к этому коду пришел.

Читать далее
Total votes 38: ↑25 and ↓13 +12
Views 7K
Comments 28

Регистры STM32 в структурах на битовых полях, UART (Tx, Rx-длина?) + DMA

C++ *C *Programming microcontrollers *
Sandbox

Цель статьи - рассказать, как получить удобный доступ к битам регистра STM32 без использования битовых операций и пользоваться битами микроконтроллера как обычными переменными. Чтобы не быть голословным, создадим проект UART+DMA с передачей и приёмом данных неизвестной длины, работающую чисто на структурах c битовыми полями, которые привязаны к адресам периферии STM32.

Читать далее
Total votes 10: ↑9 and ↓1 +8
Views 4.9K
Comments 27

С++ без классов?

Abnormal programming *Programming *C++ *ООP *Functional Programming *

(на картинке изображён С++ среди других функциональных языков)

Классы - это скорее всего первое, что добавил Страуструп в далёких 1980х, ознаменовав рождение С++. Если представить, что мы археологи древних плюсов, то косвенным подтверждением этого факта для нас будет this, который по прежнему в С++ является указателем, а значит, скорее всего, он был добавлен до "изобретения" ссылок!

Но речь не про это, пора окинуть взглядом пройденный с тех пор путь, изменение и языка и парадигм, естественный отбор лучших практик, внезапные "великие открытия" и понять к чему это всё привело язык, который когда то вполне официально назывался С с классами (ныне мем).

В конце(СПОЙЛЕР) мы попытаемся превратить С++ в функциональный язык за несколько простых действий.

Для начала рассмотрим базовое применение классов:

Начать погружение
Total votes 16: ↑15 and ↓1 +14
Views 13K
Comments 30

SIM800L + STM32 Bluepill + Rust. Как оно?

Rust *Programming microcontrollers *DIY
Tutorial

Несколько лет назад сделал себе на Arduino блок мониторинга питания дачного котла от UPS. Как показала практика, связка Arduino MEGA + шилд на SIM900 со стандартными библиотеками работает очень нестабильно. Периодически всё зависает, само перегружается и т.д. Отладить это невозможно, поэтому стал искать другие варианты. В результате решил всё переделать на современных технологиях: взял за основу STM32 Bluepill, приобрел на али модуль SIM800L, но самое главное – весь код решил написать на Rust, купился на обещания его высокой надёжности. Что из этого получилось читайте дальше.

Нажми меня
Total votes 33: ↑31 and ↓2 +29
Views 11K
Comments 35

Как разработать микросхему, от идеи до результата. Часть 3. Схемотехническое представление и Layout

RUVDS.com corporate blog FPGA *Programming microcontrollers *Manufacture and development of electronics *IT-companies
Tutorial
В прошлой статье мы установили все программы, а в этой части, мы наконец приступим к практической части. Готовьтесь, эта часть будет очень большой. Для тех кто пропустил прошлые части — ссылки ниже.



Как разработать микросхему, от идеи до результата. Ссылки на все статьи։

В этой части мы:

  1. Будем рисовать схему, используя XSCHEM
  2. Произведём симуляцию нашей схемы, используя NGSPICE
  3. Поймём цикл производства микросхемы
  4. Нарисуем Layout, используя KLayout

Предполагается, что вы уже прочитали предыдущие материалы. Если мне удалось вас заинтересовать, прошу под кат!
Читать дальше →
Total votes 59: ↑59 and ↓0 +59
Views 5.6K
Comments 18

Храним настройки правильно или реестр параметров для встраиваемых систем

Миландр corporate blog Programming *Algorithms *Programming microcontrollers *Manufacture and development of electronics *

Привет, Хабр! В нашей практике разработчиков электронных устройств и встраиваемых систем мы часто сталкиваемся с необходимостью хранить параметры устройства. Это могут быть, например, такие параметры как яркость дисплея, язык, рабочая частота радиоканала или IP адрес – да что угодно. Единого общепринятого подхода для решения этой задачи нет, и я предлагаю обсудить ниже наиболее очевидные варианты, их достоинства и недостатки, а также предложить реализацию, к которой я пришел в результате работы над несколькими проектами. Поехали!

Читать далее
Total votes 17: ↑16 and ↓1 +15
Views 5.2K
Comments 12

Что такое звук? Как устроено ухо? Что значит герц и децибел? Как устроен микрофон?

Popular science Sound

Звук... Он окружает нас с самого рождения. После зрения он, пожалуй, самое главное, с помощью чего мы воспринимаем наш мир. Но что это? Какова его природа? По каким законам он живёт? Давайте разбираться!

Читать далее
Total votes 12: ↑8 and ↓4 +4
Views 5.5K
Comments 10

Обзор отечественных микросхем, соответствующих 719 ПП РФ. Часть 2

Миландр corporate blog Information Security *Programming microcontrollers *Manufacture and development of electronics *CPU

В 2020 году я опубликовал статью про отечественные микросхемы, соответствующие 719 ПП РФ. Напомню, что это одна из мер правительства по поддержки отечественных производителей на регулируемых государством рынках. Например, при закупках в интересах государственных органов России приоритет отдается товарам из реестра продукции выпущенной в России. Что бы продукция попала в данных реестр, она должна соответствовать требованиям, описанным в 719 и 878 ПП РФ. И одним из требований к электронной техники является применение отечественных микросхем из этого же реестра, требования к которым так же описаны в данном постановлении.

В начале 2020 в реестре было всего 22 микросхемы. К концу 21 года в реестре находится уже более 70 записей. Попробуем их рассмотреть поподробней, какие новые микросхемы появились за последний год.

Читать далее
Total votes 34: ↑33 and ↓1 +32
Views 17K
Comments 82

8 ферзей на AVR-ассемблере

Assembler *Programming microcontrollers *CPU DIY Learning languages
Sandbox

Фанатам ассемблера посвящается.

Всем привет! Решил подключить матрицу светодиодов 8х8 и вывести на неё решение задачи о 8 ферзях. [Описание см. на Википедии]

Процессор

В качестве процессора я выбрал компактный и шустрый процессор attiny85. Программа будет написана на ассемблере. С небольшими настройками программа должна работать на любом другом процессоре AVR: attiny и atmega.

Дисплей

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

Читать далее
Total votes 18: ↑15 and ↓3 +12
Views 5.3K
Comments 5

Кодекс летописца или Ода к телеметрии

Миландр corporate blog Programming *System Analysis and Design *Manufacture and development of electronics *Popular science
✏️ Technotext 2021

Допустим, ко группе инженеров снизошла задача разработать систему управления чем-нибудь достаточно сложным. Теоретик заточил зубы и приступил к граниту — строит модели объекта и системы управления. Комплексники копают руду компоновки, вопросов климатики, вибрации и спецтребований, кто-то рисует платы/корпуса/кабели, кто-то пишет и тестирует уже определившиеся элементы ПО.

И здесь же, с самого старта, нужен человек, который займется телеметрией: ее формированием, передачей и сохранением. Ибо переоценить важность телеметрии для разработки практически нереально. Когда что-то пойдет не так — а оно пойдет — только телеметрия даст шанс понять, что это, черт возьми, было. Когда все будет так — она станет объективным доказательством успеха. Больше того: иногда, когда внешне все прошло так, она заставит при анализе запуска уронить челюсть и спросить себя и окружающих: «как, черт возьми, всё обошлось?»

А потому исходное положение кодекса, пункт зеро.

Читать далее
Total votes 31: ↑31 and ↓0 +31
Views 4K
Comments 10

Простой цифровой радиоприемник на базе контроллера STM32G4 своими руками

Assembler *Algorithms *C *Programming microcontrollers *Circuit design *
Sandbox
Tutorial

Обучающие проекты по созданию простого цифрового радиоприемника на базе микроконтроллера STM32G431KB.

Читать далее
Total votes 85: ↑85 and ↓0 +85
Views 18K
Comments 50

Трансформаторные датчики тока

Circuit design *Electronics for beginners
Представьте себе, что у вас встала задача измерения тока потребления в бытовой сети 220 В, 50 Гц. Причем главное ваше требование — невмешательство в существующую проводку. Мое непоколебимое мнение — в питающей ваш дом линии должно быть как можно меньше всякого, потому что каждый лишний агрегат есть потенциальная точка отказа. Если не сам по себе (как УЗО в старых загородных домах, где трудно избежать утечек), то как минимум из-за дополнительных контактных соединений, и хорошо, если эти соединения сделаны по стандартам, а не из оцинкованной стали в контакте с медью.

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

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

Остаются трансформаторы тока. Вот их сейчас и рассмотрим с упором на самостоятельное изготовление: коли мы не вмешиваемся в проводку, ничего потенциально опасного мы соорудить не можем. Но сможем ли сделать удобнее и дешевле покупных?
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Views 8.5K
Comments 30

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

Debugging *Industrial Programming *Programming microcontrollers *Manufacture and development of electronics *Software
Sandbox

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

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

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

Читать далее
Total votes 21: ↑20 and ↓1 +19
Views 7.3K
Comments 33

Согласование импедансов: как сломать и как починить

Manufacture and development of electronics *Electronics for beginners
Sandbox
✏️ Technotext 2021

Рано или поздно в руки любителей, начинавших с Ардуино, попадают куда более быстрые устройства. Накинув щупы осциллографа на навесные провода, они обнаруживают, что сигнал, который задумывался, как голубая линия на заглавной картинке на деле выглядит, как жёлтая. В поисках решения проблемы они приходят к весьма многогранной области знаний под названием «Целостность сигналов». И если такие её аспекты, как питание и возвратные токи относительно просты для понимания, то согласование импедансов содержит ряд контринтуитивных положений. В процессе освоения данной темы мне показалось, что материалы по ней разделены на три не слишком хорошо связанных блока:
1) теория с формулами и отсылками к 2 курсу ВУЗа
2) гипертрофированные примеры на симуляторах
3) применение на практике (с эмпирическими суевериями)

Данная статья является попыткой начать с конца. Я возьму работающую схему, выполненную в текстолите. Затем постараюсь ухудшить её характеристики так, чтобы рассогласование линий стало причиной сбоев в работе или хотя бы стало заметно на осциллографе. А затем постараюсь устранить возникшие проблемы.

Согласовать импедансы
Total votes 90: ↑89 and ↓1 +88
Views 18K
Comments 40

Шрифты для графического дисплея? Это же очень просто

Open source *Algorithms *C *Programming microcontrollers *Software
Sandbox

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

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

Читать далее
Total votes 45: ↑45 and ↓0 +45
Views 10K
Comments 75

Пишем терминальный сервер для микроконтроллера на С

Programming *Programming microcontrollers *

Всем привет! В процессе работы над гексаподом AIWM я все чаще задумывался о каком-нибудь удобном интерфейсе для общения с ним. В результате тесной работы с Linux через терминал я подумал, а почему бы не использовать такой же интерфейс и в гексаподе? Я был очень удивлен, что по запросу "STM32 terminal" я не нашел готовых реализаций. Ну раз нет готовых, то напишем свою реализацию терминального сервера, которую можно использовать в микроконтроллерах. Сделаем это без использования динамической памяти и прочих опасных радостей.

Читать далее
Total votes 35: ↑34 and ↓1 +33
Views 9.7K
Comments 17

Переделываем DSO138, или сделать что-то похожее на инструмент из игрушки

Debugging *Programming microcontrollers *Circuit design *DIY
Sandbox

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

Собран этот «игрушечный» осциллограф на микроконтроллере STM32F103, и при достаточно грамотном схемотехническом решении цифровой части, наличии довольно приличного цветного дисплея 320Х240 точек, и не самом поганом аналоговом тракте, все, увы, гробится очень слабыми АЦП на борту 32F103. Заявленная полоса в 200 кГц может быть признана таковой только с очень большой натяжкой. Да, наличие или отсутствие сигнала с такой частотой он покажет, но вот реально посмотреть что-то сверх этого не получиться.

При этом есть у 103-й серии чуть более старший брат – STM32F303, по ножкам совместим практически полностью, но по интересующим нас параметрам существенно лучше, на борту 4 АЦП с частотой преобразования 5 МГц (6 МГц с 10-ти битным разрешением). При таком раскладе, если использовать все 4 АЦП параллельно с 10-ти битным разрешением, можно получить временное разрешение до честных 24 MSPS (миллионов отсчетов в секунду). Стоит микроконтроллер тоже недорого, на том же Али можно легко найти за опять же весьма умеренные деньги. Понятно, что идея поменять микроконтроллер возникла практически сразу после того, как я этот самый DSO138 и попробовал.

О том, что получилось в результате, и написана эта статья.

Читать далее...
Total votes 41: ↑41 and ↓0 +41
Views 20K
Comments 15

Information

Rating
3,705-th
Location
Конаково, Тверская обл., Россия
Date of birth
Registered
Activity