Pull to refresh
1
0

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

Send message

Как немного облегчить себе жизнь при проектировании электроники?

Reading time9 min
Views42K

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

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

Итак, поехали!
Total votes 92: ↑91 and ↓1+90
Comments156

Самые частые грабли при использовании printf в программах под микроконтроллеры

Reading time8 min
Views22K
Время от времени в моих проектах приходится применять printf в связке с последовательным портом (UART или абстракция над USB, имитирующая последовательный порт). И, как обычно, времени между его применениями проходит много и я успеваю напрочь забыть все нюансы, которые требуется учитывать, чтобы он нормально работал в крупном проекте.

В данной статье я собрал свой собственный топ нюансов, которые возникают при использовании printf в программах под микроконтроллеры, сортированный по очевидности от самых очевидных к полностью неочевидным.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments26

«Ужасные» трёхцентовые MCU – краткий обзор микроконтроллеров стоимостью менее $0,1

Reading time6 min
Views40K
Я, в числе прочих, поразился прошлогоднему известию в блоге EEVblog о том, что какие-то микроконтроллеры продаются всего по $0,03 за штуку. Как это было возможно? Многие предположили, что это распродажа или старые остатки. Покопавшись в истории, я пришёл к выводу о существовании целого сегмента рынка сверхдешёвых микроконтроллеров. Почти все они произведены малоизвестными компаниями из Китая или Тайваня. В данной статье я свёл результаты своих изысканий в этой довольно необычной нише.

Мы уже знаем, что существует довольно большой спектр очень мощных микроконтроллеров стоимостью по $1.00, но что насчёт MCU по $0,1? Так ли они «ужасны», как о них пишут?

Методология


Как определить микроконтроллер стоимостью в $0,1? Да как хотите; выбор определения произволен. Я решил пойти напрямик, используя стоимость 100 штук в магазине LCSC. Я обнаружил шесть производителей, предлагавших один или несколько чипов стоимостью менее $0,1, и все они были из Азии. Если чипы предлагались в различных корпусах, я выбирал вариант SOP8. У некоторых производителей было несколько кандидатов, поэтому мне пришлось ограничиться выбором типичных устройств для финального списка из 8 кандидатов.
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments61

Аппаратный bit banding CortexM3/M4(ARM), архитектура ядра, ассемблер, С/C++14 и капля метапрограммирования

Reading time9 min
Views23K

Введение


Внимание, это не очередная «Hello world»статья о том как помигать светодиодом или попасть в свое первое прерывание на STM32. Однако, я постарался дать исчерпывающие объяснения по всем затрагиваемым вопросам, поэтому статья будет полезна не только многим профессиональным и мечтающим стать таковыми разработчикам (как я надеюсь), но и начинающим программистам микроконтроллеров, так как тема эта почему-то обходится стороной на бесчисленных сайтах/блогах «учителей программирования МК».

image
Читать дальше →
Total votes 77: ↑73 and ↓4+69
Comments38

Конечный автомат (он же машина состояний) на чистом С

Reading time5 min
Views127K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

Собственно через регулярные выражения я к ним и пришёл.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments50

Гнев на код: программисты и негатив

Reading time11 min
Views45K


Я смотрю на кусок кода. Возможно, это худший код, что мне когда-либо встречался. Чтобы обновить всего одну запись в базе данных, он извлекает все записи в коллекции, а затем отправляет запрос на обновление каждой записи в базе, даже тех, которые обновлять не требуется. Тут есть map-функция, которая просто возвращает переданное ей значение. Есть условные проверки переменных с очевидно одинаковым значением, просто поименованных в разных стилях (firstName и first_name). Для каждого UPDATE’а код отправляет сообщение в другую очередь, которая обрабатывается другой serverless-функцией, но которая выполняет всю работу для другой коллекции в той же базе данных. Я не упомянул, что эта serverless-функция из облачной «сервис-ориентированной архитектуры», содержащей более 100 функций в окружении?

Как вообще можно было такое сделать? Я закрываю лицо и явственно всхлипываю сквозь смех. Мои коллеги спрашивают, что случилось, и я в красках пересказываю Worst Hits Of BulkDataImporter.js 2018. Все сочувственно кивают мне и соглашаются: как они могли так с нами поступить?
Читать дальше →
Total votes 82: ↑77 and ↓5+72
Comments110

Красивые точные часы из старого смартфона

Reading time25 min
Views85K


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

Я расскажу о некоторых выясненных особенностях сихронизации времени в ОС Андроид, а также о разных электрических хитростях в системе питания смартфона. Опишу пример схемы на несложных аналоговых компонентах, которая осуществляет автоматическое резервное питание. И конечно речь будет о программной части андроид – как и с помощью чего можно самому сделать из смартфона красивые часы на любой вкус.
Читать дальше →
Total votes 150: ↑147 and ↓3+144
Comments135

Мой путь из инженера в программисты

Reading time6 min
Views41K
Краткое содержание
Автор поныл, как тяжело живется инженерам на Руси и решил уходить в программисты. У него получилось. Пост о том, как именно.

Зачем я все это пишу


  • Благодарность. Сказать «спасибо» сообществу Хабра.
  • Поддержка и мотивация. Морально поддержать инженеров, которые тоже решили менять свое призвание на новое, но не могут решиться.
  • Самомотивация. Для движения вперед очень полезны маленький отчет и немного планов, высказанных публично.
  • Поделиться опытом. Возможно, кому-то мой путь покажет его собственную дорожку.
Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments109

STM32F103C8T6 как накопитель flash с файловой системой FAT12

Reading time3 min
Views15K
При разработках устройств часто бывает необходимым хранить настройки вне рабочей программы. Еще лучше иметь возможность их модификации без использования специальных средств.

Рассмотрим вариант хранения в пожалуй самых распространенных микроконтроллерах STM серии F103. Способствовала распространенности также всем известная макетная плата Blue Pill

image
Имеющаяся в ней flash позволяет не только хранить и модифицировать настройки используя файловую систему FAT12 во внутреннем flash, но и организовать обновление прошивки.

Согласно документации в STM32F103C8T6 имеется 64К flash памяти. Однако практически во всех STM32F103C8T6 установлено 128К. Об этом также упоминается в разных источниках — обычно ставят на 64К больше. Такая «фича» позволяет использовать микроконтроллер как flash накопитель объемом 128К — 20К (системные нужды FAT12) — размер прошивки.

Многие энтузиасты, пытавшиеся использовать данный контроллер как накопитель flash, сталкивались с проблемой его использования в режиме файловой системы FAT12. Использовать для снятия/заливки образа диска получалось. А вот при работе как с файловым накопителем начинались проблемы.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments12

Как «поделить» АЦП правильно

Reading time3 min
Views16K

Введение


Довольно часто в устройствах применяются активные датчики (терморезисторы, тензорезисторы, фоторезисторы, времярезисторы, счастьерезисторы и прочее).


Чтобы измерять соответствующую величину, датчик включают в цепь делителя в одно из его плеч.
Так рекомендуют поступать практически везде, особенно там, где точность не так важна как стоимость. В интернете множество уроков для ардуинщиков о считывании температуры именно при помощи терморезистора. Так поступают и в более серьезных приложениях.
Для примера ниже я представил часть схемы из драйвера VESC 4.2, который измеряет температуру ключей.

Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments18

Разделяй и властвуй, или медленно пишем — быстро читаем

Reading time2 min
Views20K


В одном из моих проектов возникла необходимость последовательной записи оцифрованных наборов данных с 3-х каналов АЦП. Результаты замеров нужно было сохранять со скоростью 6 КБайт/сек, при этом длительность цикла сбора данных могла составлять сутки и более. Таким образом общий объем информации, который необходимо было сохранять, составлял 500 МБайт и более. В качестве устройства хранения было решено выбрать SD карту.

Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments32

Правильно «готовим» прототип. Технологии прототипирования корпуса

Reading time5 min
Views19K
Как выбрать правильную технологию для прототипа корпуса любого устройства, какие головные боли возникают у разработчиков, когда виртуальная 3D-модель становится физической, и как их лечить? Смотрите инструкцию. Главное здесь — понять, что конкретная технология прототипирования предназначена для решения конкретной задачи.

image

Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments16

Как за пару минут самостоятельно рассчитать цену корпуса устройства

Reading time4 min
Views27K


Приветствую, Хабр! Есть очень много вопросов, на которые нельзя ответить однозначно, но ответ нужен. Мне, например, каждый день задают вопрос, сколько стоит корпус вот для такого вот устройства. При всей очевидности вопроса сходу сказать не получается. Нужно считать.

В качестве ответа предлагаю эту статью. Прочитав ее, вы сможете самостоятельно за пару минут прикинуть, сколько будет стоить корпус для вашего продукта и какую технологию выбрать, чтобы его цена была для вашего бизнеса выгодной. Разумеется, цифры очень условные и идут из совокупного опыта за те года, которые мы в Формлабе занимаемся корпусам.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments100

Полупроводниковая электроника

Reading time30 min
Views370K


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



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





Иллюстраций: 34, символов: 51 609.



Читать дальше →
Total votes 488: ↑479 and ↓9+470
Comments152

Разгоняем JTAG роутер

Reading time14 min
Views25K

Если вдруг вам потребуется отлаживать несколько микроконтроллеров/микропроцессоров в Крыму, попивая смузи из душного офиса в Химках. Если микропроцессорная плата находится на подвижном объекте и нет возможности дотянуть до нее JTAG отладчик (плата находится на воздушном шарике/квадрокоптере). Если вдруг просто требуется гальваническая изоляция между хостом и отлаживаемой платой (допустим, высоковольтное устройство). И хорошо, что бы еще дешево, сердито и универсально к производителю(STM,Broadcom, Xilinx, etc) или архитектуре(ARM, MIPS, FPGA, etc). Тогда вам потребуется роутер, да-да, просто роутер, допустим, вот такой.
Читать дальше →
Total votes 63: ↑60 and ↓3+57
Comments26

Подводный GPS с нуля за год

Reading time11 min
Views40K
с подкидным дураком и пьяными соседками

«Вот пока вы тут сидите, там, на Аляске,
ионы атомов сливаются и образуют плазмоиды!» (С) Неизвестный

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

Я хочу рассказать, как мы втроем и за один год сделали подводный GPS с нуля.
Читать дальше →
Total votes 98: ↑96 and ↓2+94
Comments196

Оптимизация энергопотребления STM32: практическое руководство

Reading time19 min
Views53K
Привет, Хабр!

В сети довольно много статей про работу микроконтроллеров STM32 в энергоэффективных устройствах — как правило, это устройства на батарейном питании — однако среди них прискорбно мало разбирающих эту тему за пределами перечисления энергосберегающих режимов и команд SPL/HAL, их включающих (впрочем, та же претензия относится к подавляющему большинству статей про работу с STM32).

Тем временем, в связи с бурным развитием умных домов и всевозможного IoT тема становится всё более актуальной — в таких системах многие компоненты имеют батарейное питание, и при этом от них ожидаются годы непрерывной работы.

Восполнять данный пробел мы будем на примере STM32L1 — контроллера весьма популярного, достаточно экономичного и при этом имеющего некоторые специфические именно для этой серии проблемы. Практически всё сказанное будет также относиться к STM32L0 и STM32L4, ну и в части общих проблем и подходов — к другим контроллерам на ядрах Cortex-M.



Практический результат должен выглядеть примерно так, как на фотографии выше (и да, о применимости мультиметров и других средств измерения к подобным задачам тоже поговорим).
Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments95

Литье под давлением: как это работает

Reading time10 min
Views62K

Машина для литья под давлением (иллюстрация компании Rutland Plastics)

При разработке серийного продукта для рынка электроники вам понадобится корпус. И, скорее всего, он будет сделан из пластика. Для макетирования пластиковых деталей и создания прототипа корпуса используется 3D-печать, а для серийного производства — литье под давлением.

Технология литья под давлением — один из важнейших пунктов на пути продукта на рынок электроники. Поэтому независимо от наличия технического образования, вам стоит разобраться в сути этого процесса хотя бы на базовом уровне.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments39

Комбинированный датчик, с преферансом и поэтессами

Reading time7 min
Views36K
Сначала мы делали датчик температуры и влажности для офисов в красивом настенном корпусе с интерфейсом RS-485 Modbus, но пока делали, аппетиты немного выросли.

В итоге, в компактный корпус вместили датчики:
— концентрации СО2,
— температуры/влажности
— освещенности
— шума
— концентрации VOC — «летучих органических веществ (ЛОВ)»
— движения

А также:
— ИК-передатчик (с приемником для обучения)
— а еще умеет пищать и моргать «глазом» красным/зеленым
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments97

Использование аккумулятора от iPhone при разработке носимой электроники

Reading time8 min
Views57K
Приветствую, читатель.

Довольно часто у меня возникает задача разработки портативных устройств с питанием от одной ячейки Li-ion аккумулятора. И, если заказчика обычно это не беспокоит, то у меня, как у опытного инженера, при виде такого ТЗ по спине пробегает дрожь. Это связано с тем, что оценка уровня заряда аккумулятора, а также оставшегося времени работы — это очень непростая задача, хотя на первый взгляд может показаться иначе.



Есть несколько вариантов действия в таком случае, о них поговорим ниже.
Читать дальше →
Total votes 128: ↑128 and ↓0+128
Comments135
1
23 ...

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Registered
Activity