Pull to refresh
632
0.1
DI HALT @DIHALT

Электронщик

Send message

STM32 USB Mass Storage Bootloader

Reading time12 min
Views74K
Известно, что софт можно дописывать вечно, а всякого рода недочёты на плате полностью исправляются ревизии так к третьей. И если с железом уже ничего не поделаешь, то для обновления микропрограмм придумали неплохой способ обхода ограничений пространства и времени — Bootloader.

Загрузчик — это удобно и полезно, не правда ли? А если загрузчик собственной реализации, то это еще более удобно, полезно и гибко и не стабильно. Ну и конечно же, очень круто!

Так же, это прекрасная возможность углубиться и изучить особенности используемой вычислительной машины — в нашем случае микроконтроллера STM32 с ядром ARM Cortex-M3.

На самом деле, загрузчик — это проще, чем кажется на первый взгляд. В доказательство, под cut'ом соберём свой собственный USB Mass Storage Bootloader!

image
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments34

Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB

Reading time16 min
Views19K

В тексте написано кокой путь проходят сорцы с момента написания до исполнения на микроконтроллере. Также про то как настроить ToolChain из бесплатных утилит. Показано на что стоит обратить внимание при запуске первого проекта на Cortex-M чипах. Этот текст, в сущности, пояснение того, что происходит под капотом большинства IDE.

Читать далее
Total votes 16: ↑9 and ↓7+2
Comments47

STM32, CMSIS, CAN, Часть 1 — передача

Reading time11 min
Views35K

Привет, сегодня мы будем настраивать отправку данных с помощью CAN (Controller Area Network). В интернете много информации о том, как настроить CAN использую HAL библиотеку, а в случае использования CMSIS информация обрывочна, по этой причине решил рассказать о своем опыте работы.

Принцип работы CAN-сети в этой статье разбирать не будем т.к. на просторах интернета существует большой объем материла (особенно мне нравится как написано тут) на эту тему, но по ходу повествования будем останавливаться на некоторых нюансах.

Ставим себе задачу: заставить контроллер периодически отправлять кадры в CAN-сеть с скоростью передачи 250 кБит/с, со стандартной длиной идентификатора (11 бит) с полем данных размеров 8 байт.

Читать далее
Total votes 21: ↑18 and ↓3+15
Comments26

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

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

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

Разработка блока управления боковыми зеркалами автомобиля

Reading time10 min
Views17K

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

Подробнее
Total votes 77: ↑77 and ↓0+77
Comments92

Расчет трансформатора для обратноходового импульсного источника питания (Flyback)

Reading time18 min
Views130K
Популярность обратноходовых источников питания (ОИП, Flyback) последнее время сильно возросла в связи с простотой и дешевизной этого схемного решения – на рынке можно часто встретить интегральные схемы, включающие в себя практически всю высоковольтную часть такого источника, пользователю остается только подключить трансформатор и собрать низковольтную часть по стандартным схемам. Для расчета трансформаторов также имеется большое количество программного обеспечения – начиная от универсальных программ и заканчивая специализированным ПО производителей интегральных схем.

Сегодня же я хочу поговорить о ручном расчете импульсного трансформатора. «Зачем это нужно?», может спросить читатель. Во-первых, ручной расчет трансформатора подразумевает полное понимание процессов, происходящих в источнике питания, чего зачастую не происходит, если начинающий радиолюбитель рассчитывает трансформатор в специальном ПО. Во-вторых, ручной расчет позволяет выбирать оптимальные параметры функционирования источника (и иметь представление, какой параметр в какую сторону надо изменить для достижения заданного результата) еще на этапе разработки.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments21

Разработка контроллера резервного питания. Схемотехника

Reading time10 min
Views16K

Цель - разработка универсального контроллера, обеспечивающего резервное питание 220 В переменного и 24 В постоянного тока в случае отключения сетевого напряжения. Вот такого как на рисунке.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments16

Препарируем дельфина: что внутри у Flipper Zero

Reading time12 min
Views43K
Для того, чтобы эффективно разрабатывать под Flipper, надо не только понимать, как писать код, но и понимать, что внутри у него.

На «больших» компьютерах есть куча уровней абстракции и аппаратных средств сделать жизнь пользователя и разработчика проще. В итоге, даже если вы пишете на голом С, вас все равно не волнует как конкретно по PCI передается информация, как работает система питания процессора и какая там микросхема используется для хранения BIOS/UEFI.



Тут все не так, слишком уж близко к железу происходит разработка. Статья — это краткий экскурс в то, как устроен Flipper с железной точки зрения. Поехали.
Читать дальше →
Total votes 195: ↑192 and ↓3+189
Comments85

Как перестать бояться и полюбить регулярные выражения

Reading time6 min
Views20K

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



Чтобы функции отыскать, воедино созвать и единою чёрною волей сковать.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments27

Датчики Холла для бесколлекторного двигателя: возвращение квадратурных энкодеров

Reading time5 min
Views66K
Это уже третья статья, рассказывающая о квадратурных декодерах, на сей раз с применением к управлению бесколлекторными двигателями.


Задача: есть обычный китайский бесколлекторник, нужно его подключить к контроллеру Copley Controls 503. В отличие от копеечных коптерных контроллеров, 503й хочет сигнал с датчиков холла, которых на движке нет. Давайте разбираться, для чего нужны датчики и как их ставить.

Ликбез: принцип работы бесколлекторного двигателя


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


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

Два акселерометра, губка для посуды и четыре гайки

Reading time4 min
Views13K

Вводная: измерение угла маятника


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


Total votes 43: ↑43 and ↓0+43
Comments37

Подключение дисплея 10" ER-TFT101-1 к STM32F429 через FMC

Reading time10 min
Views11K
Всем доброго времени суток. В этой статье мы разберём подключение TFT дисплея ER-TFT101-1 (10 дюймов, RA8876 драйвер) к плате STM32F429L Discovery по 16-битному параллельному интерфейсу 8080 используя модуль FMC (flexible memory controller).




О дисплейной сборке


ER-TFT101-1 от компании EastRising представляет собой сборку из 10 дюймовой TFT матрицы с разрешением 1024х600 и платы с драйвером RA8876. На плате с драйвером разведено всё нужное питание, стоит SD-RAM память на 16 мегабайт (шина 16 бит, максимальная частота 166 МГц, максимальный объём 64 мб), есть стандартный слот под microSD карту. Присутствуют пустые посадочные места под EEPROM с внешними шрифтами и под flash память для изображений с выведенными разъёмами для программирования оных. Так-же на сборке опционально может стоять резистивная или емкостная тач-панель.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments8

EBlink — GDB сервер для ARM Cortex-M микроконтроллеров

Reading time3 min
Views9K

В сети не много информации о появившемся несколько лет назад GDB сервере EBlink. Этим постом постараюсь исправить ситуацию.


EBlink поддерживает большинство моделей микроконтроллеров STM32 (серии F0, F1, F2, F3, F4, F7, H7, L0, L1, L4, G0 и G4), а также EFR32.


Он интересен тем что поддерживает скрипты на Си-подобном языке Squirrel которые участвуют в процессе прошивки и отладки микроконтроллеров. Это позволяет отредактировав скрипты добавить новые микроконтроллеры или изменить работу с существующими не вмешиваясь в исходный код EBlink. Могу предположить таким образом возможно добавить микроконтроллеры с ядром ARM Cormex-M других производителей, например компании Миландр но это не было проверено.

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

Расстановка точек над датчиками газа серии MQ – глубокое понимание даташита и настройка

Reading time10 min
Views19K

После покупки копеечного датчика утечки газа появилось желание разобрать все по полочкам и узнать, что происходит внутри. Информации и статей по датчикам очень много, но большинство ограничено распиновкой стандартного китайского модуля, иногда принципов работы. Про относительно точное определение абсолютных значений информации нет. Забегая наперед скажу, что мы попробуем выжать все из даташита, включая: точные функции определения «попугаев», температурно-влажностной коррекции, некоторых возможностей селекции.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments19

Что делать, если поймал HardFault?

Reading time6 min
Views31K
Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться.

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

В данной статье я хочу описать методику анализа тяжелых отказов популярных микроконтроллеров с ядром Cortex M3/M4. Хотя, пожалуй, «методика» — слишком громкое слово. Скорее, я просто разберу на примере то, как я анализирую возникновение тяжелых отказов, и покажу, что можно сделать в подобной ситуации. Я буду использовать программное обеспечение от IAR и отладочную плату STM32F4DISCOVERY, так как эти инструменты есть у многих начинающих программистов. Однако это совершенно не принципиально, данный пример можно адаптировать под любой процессор семейства и любую среду разработки.


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

Профилирование памяти на STM32 и других микроконтроллерах: статический анализ размера стека

Reading time6 min
Views10K
Привет, Хабр!

В прошлой статье и я сам упоминал, и в комментариях спрашивали — ок, хорошо, методом научного тыка мы подобрали размер стека, вроде ничего не падает, а можно как-то надёжнее оценить, чему он равен и кто вообще столько сожрал?

Отвечаем коротко: да, но нет.

Нет, методами статического анализа невозможно точно измерить размер потребного программе стека — но, тем не менее, эти методы могут пригодиться.

Ответ немного длиннее — под катом.
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments22

Ностальгия: роемся у «Танчиков» под капотом

Reading time12 min
Views103K
Многие из нас выросли на «Танчиках», «Марио» и прочих нетленных шедеврах времён рассвета игровой индустрии. Приятно порой вспомнить, как днями напролёт резались с друзьями у экранов телевизоров, меняя джойстики как перчатки. Но время не стоит на месте, и одни интересы сменяются другими. Однако, порой любовь к старым-добрым игрушкам не угасает.
Я отношу себя к людям именно таким, и мой интерес к старым играм пошёл в сторону реверс-инжиниринга, что и привело меня в IT-сферу, где я и осел с концами.

Я хочу рассказать вам о том, что же под капотом у железных монстров из знаменитой игры Battle City (в простонародье «Танчики») с не менее знаменитой приставки Nintendo Entertainment System (сокращённо NES, в России более известен её китайский клон «Dendy»). Мне в своё время эта информация показалась довольно любопытной — надеюсь, такой же она покажется и вам.
Читать дальше →
Total votes 233: ↑232 and ↓1+231
Comments72

Самодельный лидар: OpenTOFLidar

Reading time27 min
Views68K

В этой статье я хочу рассказать про свой проект импульсного (TOF) Open Source лидара — о том как я его делал, и каких результатов удалось добиться.
top-picture

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

Параметрический фитнес — ключ к идеальной форме айтишника

Reading time3 min
Views8.2K

Сегодня параметрическое моделирование стало неотъемлемой частью разработки. Удобно, когда поменял несколько значений и вся 3D-модель перестраивается вместе с зависимостями. Даже в области дизайна появилась параметрическая архитектура, чтобы удивлять фрактальными узорами и при этом соответствовать функциональным требованиям.


Если с конструированием всё понятно, то что насчёт здоровья тела? 
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments30

Управление RGB светодиодами через блок UDB микроконтроллеров PSoC фирмы Cypress

Reading time13 min
Views6.2K


Введение


Я давно хотел изучить методику программирования блоков UDB в контроллерах PSoC фирмы Cypress, но всё руки как-то не доходили. И вот, возникла задачка, на которой это можно было сделать. Разбираясь с материалами из сети, я понял, что практические рекомендации по работе с UDB ограничиваются теми или иными вариациями счётчиков и ШИМов. Все авторы почему-то делают свои вариации этих двух канонических примеров, поэтому описание чего-то иного вполне может быть интересно читателям.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments11
1
23 ...

Information

Rating
3,314-th
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity