Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Начинаем изучать Cortex-M на примере STM32, часть 2

Программирование микроконтроллеров *
Tutorial
Данная статья является продолжением цикла по программированию микроконтроллеров на базе ядра Cortex-M.
Первую статью можно прочитать здесь:
Начинаем изучать Cortex-M на примере STM32
Задачей статей является подробное описание особенностей, возникающих при программировании МК. Материал не предназначен для желающих за 10 минут запустить пример мигания светодиодом. Я постараюсь подробно описать то, что часто скрывают от новичков, чтобы их не напугать.

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

Основной акцент сделан на изучение документации на ядро Cortex-M и документации на конкретный контроллер.
На этот раз речь пойдет про прерывания, а так же будут затронуты некоторые вопросы архитектуры памяти и структуры прошивки МК.
Продолжение под катом
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 110K
Комментарии 25

Batl: STM32 платформа для разработчиков

Разработка веб-сайтов *
image

Добрый день, уважаемые читатели/писатели Хабра!
Сегодня для меня особенный день, я решил попробовать свои силы в запуске проекта.
Проект обещал быть интересным и вполне жизнеспособным. Пока в моей голове окончательно сформировалась идея и я готов был вот-вот выплеснуть ее в недра boomstarter, похожий проект стартовал на более известном сайте kickstarter. Если Вас это не разочаровало, прошу под кат…
Читать дальше →
Всего голосов 36: ↑32 и ↓4 +28
Просмотры 25K
Комментарии 121

Микроконтроллеры семейств AVR, MSP430, STM32 и мои субъективные впечатления

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

Микроконтроллеры семейств AVR, MSP430, STM32 и мои субъективные впечатления


Здравствуйте, обитатели Хабра. В этой статье хочу поделится своими впечатлениями об опыте программирования микроконтроллеров семейств AVR, MSP430, STM32.

Введение

В бытность мою студентом занимался я прикладным программированием на Delphi и горя не знал, но и счастья не ведал. Пока как-то раз не посетил меня на четвертом курсе предмет «Микропроцессорные контроллеры». Ну, и пошло-поехало.
Читать дальше →
Всего голосов 29: ↑23 и ↓6 +17
Просмотры 40K
Комментарии 78

Подключаем новенький чип от WIZnet: W5500. IP для маленьких вещей

Сетевое оборудование Интернет вещей DIY или Сделай сам
Похоже, что Etherent и TCP/IP — все ещё самый распространенных способ связи самых разных устройств. Хотя WiFi в последнее время потихоньку вытесняет проводной «медный» Etherent, тем не менее, найти порт и «воткнуться в локалку» — до сих пор самый простой способ подключения. Такая доступность Ethernet не обошла стороной и самые маленькие железки: контроллеры, датчики, счетчики потребления и т.д. которые нынче называются модным маркетинговым словом "Интернет вещей*" (Internet Of Things, IoT).



И тут нам могут здорово помочь корейские микросхемки от WIZnet. Компания WIZnet — это довольно активный производитель чипов класса IOcP (Internet Offload co-Processor). Что это? Говоря человеческим языком — это такой чип, который: с одной стороны имеет Etherent, внутри содержит собственный крошечный процессор для обработки TCP/IP, а с другой стороны — простой интерфейс для связи с нашей маленькой железкой.
Читать дальше
Всего голосов 44: ↑40 и ↓4 +36
Просмотры 52K
Комментарии 20

Программируем микроконтроллеры stm32 при помощи QtCreator

Qt *C *

Как-то так незаметно получилось, что программист, который разрабатывал нам прошивку для микроконтроллера, стал банально не успевать и в некоторые моменты я начинал перехватывать инициативу и самостоятельно браться за исправление ошибок.
Разработка велась в среде IAR, и многие согласятся со мной, что по сравнению с разработкой в QtCreator'е это боль и страдание.
В какой-то момент мы решили, что быстрее нанять нового программиста и вместе с ним заново переписать прошивку контроллера stm32, так, как я к этому моменту уже немного сам смыслил в их программировании и к тому же обнаружил, что QtCreator умеет отладку на голом железе (плагин BareMetal), я решил принять в этом активное участие.
Здесь я хочу поделиться шаблоном проекта для stm32f407 от Terra Electronica и рассказать об особенностях его настройки.
Читать дальше →
Всего голосов 39: ↑37 и ↓2 +35
Просмотры 64K
Комментарии 36

STM32 и LCD через I2C

DIY или Сделай сам

Для использования в дальнейшем понадобилось связать, используя I2C микроконтроллер STM32 с экраном 2004. Не найдя аналогичного решения в сети, публикую здесь. Данный рецепт подойдёт также для экранов 1602. Далее под катом. (Осторожно, картинки).
Читать дальше →
Всего голосов 31: ↑28 и ↓3 +25
Просмотры 65K
Комментарии 22

Разработка коммерческого электронного устройства с нуля

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

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

С чего все начиналось


Изначально мы занимались разработкой программного обеспечения для чип-тюнинга. Одна из основных задач которого — считать прошивку из ЭБУ (электронный блок управления двигателем) и записать ее обратно. Понятное дело, что для этих целей нужно каким-то образом связать компьютер и ЭБУ при помощи адаптера. Когда раньше подавляющее количество ЭБУ использовало простейший способ приема-передачи данных, достаточно было использовать простейший адаптер на транзисторах или специализированной микросхеме. Однако на сегодняшний день большинство автомобилей для «общения» своих компонентов со внешней средой используют CAN шину. Адаптер для CAN шины на транзисторах уже не соберешь, и тут однозначно нужен процессор, который будет управлять всем по определенной программе.
Так возникла первая проблема — как побороть CAN шину. Для того, чтобы не изобретать велосипед выбор сделан на использовании готового адаптера, который работает по стандарту J2534. Для тех, кто не в курсе, стандарт J2534 это стандарт, описывающий аппаратную и программную части устройства, с помощью которого можно произвести подключение к ЭБУ посредством компьютера. Разработали его американцы. Основной причиной его разработки стало законодательное закрепление возможности обновление прошивки ЭБУ не специализированным дилерским сервисом, а любым желающим. Собственно, если каждый желающий может обновить прошивку на своем телефоне, то почему он не может это сделать со своим автомобилем.

Самый доступный импортный аналог стоит в районе 200 долл. США. Как впоследствии оказалось, два одинаковых устройства, удовлетворяющие стандарту J2534, могут работать по-разному с одним и тем же программным обеспечением. Поэтому изначально пришлось привязаться к конкретному производителю и его устройству.
Читать дальше →
Всего голосов 61: ↑57 и ↓4 +53
Просмотры 50K
Комментарии 44

Странное поведение компании STmicroelectronics

Программирование микроконтроллеров *
Наша компания успешно использовала некоторое время чипы серии DSM компании STmicroelectronicsDSM2150F5V. Это микросхема в корпусе TQFP80, которая предназначена для совместной работы вместе с сигнальными процессорами DSP Blackfin компании Analog Devices. Мы эту микросхемку именно так и использовали. В составе DSM2150F5V находятся сразу и FLASH-память для программы, откуда может загрузиться DSP, и программируемая логика, которую можно использовать для каких-то дополнительных функций. Как написано в даташите (который найти в Интернете становится все труднее и труднее, об этом далее), DSM2150F5V специально предназначена для упрощения подключения памяти, внешней логики, портов ввода/вывода к DSP-процессорам Analog Devices семейств ADSP-218x, 219x, 2106x, 2116x, 2153x и TS101. Все в одном, удобная микросхема.

image

Все было здорово и хорошо, делали мы на микросхеме DSM2150F5V свои приборы и радовались. Но в один не очень прекрасный день к нам пришел снабженец и сообщил, что микросхему DSM2150F5V купить невозможно, никто её больше не продает.
Читать дальше →
Всего голосов 100: ↑87 и ↓13 +74
Просмотры 50K
Комментарии 35

Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE

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

image

Это открытая, недорогая и легко расширяемая отладочная платформа для разработки с широким выбором специальных плат расширения, для всей линейки 32-х битных микроконтроллеров STM32 архитектуры ARM Cortex-M3 и Cortex-M4.

image

Платы «ST Nucleo» дают возможность выбирать из различных сочетаний производительность, энергопотребление, и архитектурные особенности микроконтроллера. Платформа позволяет быстро, удобно и легко изучить особенности архитектуры и программирования микроконтроллера, опробовать свои идеи, создать прототипы с любым микроконтроллером семейства STM32.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 56K
Комментарии 25

Быстрый старт ST Nucleo-F401 + краткое руководство

Программирование микроконтроллеров *
В предыдущем своем посте я попытался коротко ознакомить вас с платформой Nucleo от ST.
В этом посте я хочу рассказать вам на живом примере некоторые сильные стороны этой платформы, которая имеет все шансы потеснить приевшиеся всем Arduino, и показать что все примеры кода и шилды от Arduino, прекрасно подходят для платформы Nucleo.

Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 53K
Комментарии 36

rusEfi автомобильный блок управления: еще раз улучшили железо

Open source *
Четыре месяца назад мы сделали плату Франкенштейн, на которую возлагали большие надежды — на единой плате было шесть функциональных блоков, это было шагом вперёд.

image

Добровольцы в Канаде и Словакии смогли завести свои моторы, но в целом надежды не оправдались:
Читать дальше →
Всего голосов 51: ↑42 и ↓9 +33
Просмотры 37K
Комментарии 127

Разбираем и собираем обратно стек USB

Программирование микроконтроллеров *
Tutorial
Иллюстрированная проекция модели сетевого взаимодействия OSI на универсальную последовательную шину.

Три «замечательных» уровня стека USB


Меня не устроил вид стека USB, который можно встретить чаще всего на просторах сети:

Не сильно полезный стек USB

Уровень шины, логический, функциональный… Это, конечно, замечательные абстракции, но они скорее для тех, кто собирается делать драйвер или прикладной софт для хоста. На стороне же микроконтроллера я ожидаю шаблонный конечный автомат, в узлы которого мы обычно встраиваем свой полезный код, и он сперва будет по всем законам жанра глючить. Или же глючить будет софт на хосте. Или драйвер. В любом случае кто-то будет глючить. В библиотеках МК тоже с наскока не разобраться. И вот я смотрю на трафик по шине USB анализатором, где происходящие события на незнакомом языке с тремя замечательными уровнями вообще не вяжутся. Интересно, это у меня от гриппозной лихорадки в голове такой диссонанс?

Если у читателя бывали сходные ощущения, предлагаю альтернативное, явившееся мне неожиданно ясно в перегретом мозгу видение стека USB, по мотивам любимой 7-уровневой модели OSI. Я ограничился пятью уровнями:



Я не хочу сказать, что весь софт и библиотеки уже сделаны или должны проектироваться, исходя из этой модели. Из инженерных соображений код c уровнями будет сильно перемешан. Но я хочу помочь тем, кто начинает своё знакомство с шиной USB, кто хочет понять протоколы обмена устройств и терминологию предметной области, подобраться поближе к готовым примерам, библиотекам и лучше ориентироваться в них. Эта модель не для загрузки в МК, но в ваши блестящие умы, дорогие друзья. А ваши золотые руки потом всё сами сделают, я не сомневаюсь:)
Разобрать стек USB
Всего голосов 72: ↑70 и ↓2 +68
Просмотры 68K
Комментарии 23

Идет сбор средств на закупку тепловизионного модуля Flir Lepton

Разработка на Raspberry Pi *
В январе этого года на выставке CES крупнейший производитель тепловизоров в мире — компания FLIR представила новый гаджет FLIR One — кейс превращающий смартфон в тепловизор 0-100 °C (хабратопик, обзор на pcmag). Стоимость такого кейса для Iphone 5 составляет 350$ и на сегодняшний день он не продается в России.



«Сердцем» FLIR One является миниатюрный модуль Lepton размерами 8,5 × 8,5 × 5,6 мм. Модуль является приемником ИК-излучения, обеспечивает разрешение 80 × 60 пикселей, угол обзора 51° по горизонтали, 63,5° — по диагонали.



Компания продает модуль отдельно, но только оптом. Pure Engineering LLC организовала краудфандинговую кампанию по групповой покупке партии «Лептонов». Стоит один модуль 257$ + доставка до России 48$. Для сравнения: стоимость готовых тепловизоров начинается от 40 тыс. рублей. Кроме того, Pure Engineering разрабатывает breakout board (на фото выше), которая позволит подключить Lepton к Arduino, STM32 или Raspberry PI. Насколько я понял, видео передается по SPI, управление осуществляется по I2С.

Таким образом, можно будет собрать себе тепловизор за треть цены готового. Тепловизор может быть полезен для проверки нагрева оборудования, труб, теплых полов, поиска КЗ, ну и как прибор ночного видения. Кампания продлится до 4 октября. Рассылка первой партии ожидается в октябре.

Страница сбора денег
Breakout board на Tindie (в разработке)
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 21K
Комментарии 32

rusEfi: итоги 2014 года и планы

Программирование *
В конце лета у открытого блока управлением двигателем внутреннего сгорания rusEfi появилась первая интегрированная плата — Frankenso 0.1, ложкой дёгтя тогда была парочка перепутанных трасс.

image

Читать дальше →
Всего голосов 61: ↑57 и ↓4 +53
Просмотры 40K
Комментарии 19

Попытка подружиться с STM32

DIY или Сделай сам


В прошлый раз я издевался над микроконтроллерами ATtiny 85, сопрягая бедные восьминогие чипы с Arduino IDE. А потом мне захотелось посмотреть, что же за чудо такое — STM32, поклонники которых смотрят на программистов AVR (не говоря уж об ардуинщиках) с некоторым неодобрением. В процессе беглого гугления выяснилось, что STM32 «для идиотов» существует — есть проект Leaf Maple, в рамках которого — две платы на STM32F103 и среда разработки, являющая собой клон Arduino IDE.

Решающим фактором стала стоимость. Китайская версия Leaf Maple Mini продается за 4$ — это немногим дороже Arduino Nano. Заказав три штуки, я принялся ждать.

Пожалуй, со ставкой на Maple я немного поторопился — проект скорее мертв, чем жив. IDE не развивается, драйверов без бубна под Windows 8 нет, библиотеки в зачаточном состоянии, полное уныние и запустение. Ради интереса я поморгал светодиодом, запустив Maple IDE под OS X (заработало из коробки), а затем стал думать, с какой стороны подходить к плате для дальнейшего изучения.

Неведома зверушка
Всего голосов 33: ↑22 и ↓11 +11
Просмотры 80K
Комментарии 25

Как надо дружиться с STM32

DIY или Сделай сам
Tutorial
Не, не, не, все не так!

Давайте дружиться с STM32 правильно!

Самая главная ошибка, сделанная автором — это неправильно выбранный инструментарий.
Читать дальше →
Всего голосов 38: ↑35 и ↓3 +32
Просмотры 138K
Комментарии 79

Отладчик за копейки: делаем ST-Link из Maple Mini

DIY или Сделай сам
Tutorial


Начав свое знакомство с STM32 с китайских клонов Leaf Maple Mini (потому что самый дешевый вариант, 4$), я столкнулся с неудобством. Поскольку на Maple IDE рассчитывать не стоит, значит, приходится работать с «голым» STM32. А раз ST-Link у меня нет, заливать программу я могу только по UART, что неудобно (и нет возможности отладки).

Но хабраюзер imwode ровно через 9 часов после моей публикации написал ответный материал, из которого я узнал прекрасное: отладчик ST-Link основан на том же микроконтроллере STM. При этом, прошивка отладчика умельцами вытащена и готова к загрузке на неродные устройства. Maple Mini подходит идеально: ничего лишнего, USB распаян, надо только несколько резисторов подключить.

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 44K
Комментарии 7

Создание 3D сканера из вебкамеры, лазера, и еще кучки радиодеталей

Open source *
Из песочницы
В прошлом году мы с другом были на летней школе. На ней необходимо было сделать проект. Прочитав две статьи про создание 3d сканеров (раз, два) мы решили попробовать свои силы в его сборке и по возможности улучшить его конструкцию. Мы даже не представляли, что из этого получится и тем более не представляли, что победим с ним на нескольких научно-инженерных выставках. Но по порядку. Кому интересно узнать результат, добро пожаловать под кат (много фотографий).

image
Читать дальше →
Всего голосов 117: ↑117 и ↓0 +117
Просмотры 135K
Комментарии 58

Эмуляция носителя FAT32 на stm32f4

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


Недавно возникла данная задача — эмуляция носителя FAT32 на stm32f4.

Её необычность заключается в том, что среди обвязки микроконтроллера вовсе может не быть накопителя.

В моём случае накопитель был, но правила работы с ним не позволяли разместить файловую систему. В ТЗ, тем не менее, присутствовало требование организовать Mass Storage интерфейс для доступа к данным.

Результатом работы явился модуль, который я озаглавил «emfat», состоящий из одноимённого .h и .c файла.

Модуль независим от платформы. В прилагаемом примере он работает на плате stm32f4discovery.

Функция модуля — отдавать куски файловой системы, которые запросит usb-host, подставляя пользовательские данные, если тот пытается считать некоторый файл.
Читать дальше →
Всего голосов 70: ↑70 и ↓0 +70
Просмотры 31K
Комментарии 36