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

STM32F4Discovery – подключаем камеру по интерфейсу DCMI

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

STM32F4Discovery – подключаем камеру по интерфейсу DCMI



Когда-то, подключая камеру от мобильного телефона к микроконтроллеру STM32F407VGT6 (который имеет место быть на плате STM32F4Discovery), я даже не думал о том, что данный контроллер имеет специальный аппаратный интерфейс для данного дела. Может быть, невнимательно читал даташит, но я всегда считал, что интерфейс DCMI имеется только у чипов в корпусах UFBGA176 и LQFP от 144 ног. Однако, не так давно, открыл для себя озвученную деталь: 100-ногий STM32F407 также имеет DCMI на борту.
Являясь большим любителем изучения и совместного запуска различного мобильного железа (в частности, LCD и камер) с МК, мимо такого открытия я просто так пройти не смог, и решил восполнить данный пробел в изучении периферии STM32. Собственно, данный материал и посвящен описанию осуществления возникшей затеи.
Читать дальше →
Всего голосов 51: ↑50 и ↓1 +49
Просмотры 76K
Комментарии 22

Создание своего летающего робота

Программирование микроконтроллеров *
Примерно год назад было сообщение о конкурсе от КРОК «Летающие роботы». Мне стало интересно поучаствовать и приобрести опыт в конструировании автономного летающего робота. К сожалению, из конкурса пришлось выйти из-за нехватки времени, но интерес к решению проблемы остался. Конкурсное задание, если кратко, заключалось в том, чтобы пролететь от точки A до точки B, пролетев через отверстие в стене, и вернуться.



Что и как получилось на данном этапе под катом.
Подробности с фото
Всего голосов 80: ↑78 и ↓2 +76
Просмотры 38K
Комментарии 49

Как начать делать блок управления автодвигателем с нуля

Разработка веб-сайтов *
Из песочницы
Примерно год назад я начал разрабатывать блок управления автомобильным двигателем с нуля.
Позвольте рассказать, почему эта идея до сих пор кажется мне реалистичной.
Читать дальше →
Всего голосов 75: ↑71 и ↓4 +67
Просмотры 74K
Комментарии 134

rusEfi: зажигание и другие плюшки

Разработка веб-сайтов *
Для тех, кто только присоединился к нам — предыдущая часть здесь.

Сразу к главной новости — на rusEfi заработали управление бензонасосом и альфа версия зажигания: этого достаточно, чтобы используя только rusEfi управлять двигателем!
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 18K
Комментарии 32

Самодельный фазовый лазерный дальномер

Программирование микроконтроллеров *DIY или Сделай сам Электроника для начинающих
image
В статье я расскажу о том, как я делал лазерный дальномер и о принципе его работы. Сразу отмечу, что конструкция представляет собой макет, и ее нельзя использовать для практического применения. Делалась она только для того, чтобы убедится в том, что фазовый дальномер реально собрать самому.
Читать дальше →
Всего голосов 187: ↑187 и ↓0 +187
Просмотры 155K
Комментарии 72

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

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


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

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

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

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

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

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

Ethernet поверх USB на STM32F4

Разработка веб-сайтов *Программирование *


Недавно возникла идея заставить плату на базе МК STM32F4 работать по сети. Поскольку на борту отсутствовал Ethernet PHY контроллер, то единственным вариантом было использовать USB FullSpeed интерфейс для эмуляции Ethernet устройства. Распространённый стандарт USB-класса, реализующий данную функцию, называется RNDIS.
К своему огорчению, поиск RNDIS драйвера для STM32 не увенчался успехом. Впрочем, это не удивило, т.к. открытые примеры использования USB порта у STM32 ограничиваются только теми, что предоставил нам производитель.
Захотелось исправить сию несправедливость. А заодно и поиметь нужные исходники, благо в будущем они пригодятся.
Сейчас, когда демонстрационная версия библиотеки готова, выкладываю её в свет на правах MIT-лицензии. Поэтому, все кому библиотека интересна — пользуйтесь «на здоровье». Библиотека имеет название LRNDIS, первая буква которого означает использование сетевого стека для встраиваемых систем «LwIP».
Для демонстрации возможностей библиотеки был создан пример на плате stm32f4discovery. Его работа заключается в поддержке основных сервисов (DHCP и DNS сервера) и передаче usb-хосту запрашиваемых WEB-страниц. Таким образом, наш discovery превратился в почти полноценный WEB-сервер, работающий по порту USB!
Пару слов о том, где это применимо.
В быту RNDIS устройства обычно являются USB-модемами для доступа в Интернет. Возможно, такое применение, действительно, окажется полезным, если разработчик выберет STM32 в роли связующей цепочки между ПК и радиочастотным (или другим) трансивером. Или, может быть, захочет расширить собственную сеть на Ethernet-сегмент?
Другое применение, в котором нахожу основную пользу для себя, — это интерфейс управления сложными устройствами. Типовое решение в этой области — создание терминального ПО. При этом приходится заниматься его поддержкой вместе с поддержкой устройства, что бывает неудобным. Собственно, в отказе от такой схемы в пользу управляющего Web-интерфейса и заключается смысл возможного применения библиотеки. Вспомните Web-интерфейсы настройки роутеров. Удобно. Красиво. Без лишнего ПО.

Итак, если Вы заинтересовались, читайте далее…
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 51K
Комментарии 17

Доработка USB-стека в микроконтроллерах STM32 и TivaC

Open source *
Наличие USB порта в современных микроконтроллерах открывает широкие возможности для самостоятельного изготовления разнообразных управляемых с компьютера устройств. На практике, однако, выясняется, что поставляемые производителем библиотеки для работы с USB нуждаются в доработке. Если вам интересен опыт подобной доработки для двух популярных семейств МК — добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 29K
Комментарии 26

Как мы строили систему аварийной сигнализации дата-центра

Блог компании Embox Разработка веб-сайтов *Промышленное программирование *
Из песочницы
image
Так получилось, что в команде проекта Embox у меня больше всех опыта в области АСУ: на предыдущем месте работы я разрабатывал промышленные контроллеры. Поэтому не удивительно, что когда возникла задача сделать систему автоматического управления светодиодами в датацентре, именно меня попросили проработать архитектуру проекта. Изначально планировалось закупить готовые контроллеры удаленного управления портами ввода-вывода, но после более тщательной проработки требований стало ясно, что для заказчика более предпочтителен вариант разработки заказного контроллера. Собственно его вы и видите на фотографии.
Тем, кому интересно узнать о том, на какие грабли мы наступили, как выглядят взорвавшиеся микросхемы, как правильно подключать землю на DC/DC конвертере, ну и, конечно, почему мы применили наш проект, прошу под кат. Осторожно, много картинок!
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 21K
Комментарии 20

SIP телефон из stm32f4-discovery

Блог компании Embox Системное программирование *Asterisk *Разработка систем связи *
Всем привет.
В этой статье я расскажу, как мы делали sip-телефон на базе stm32f4-discovery с помощью своей встраиваемой ОС Embox. Характеристики stm32f4-discovery (144MHz, 192Kb RAM, 1Mb ROM) могут вызывать сомнения о возможности такой реализации. Нам самим было интересно, получится ли? В качестве ответа можно посмотреть видео, а в самой статье — технические подробности.



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

Программирование ARM на Pascal

Программирование *Компиляторы *
Из песочницы
Однажды, вдруг совершенно неожиданно и без объявления войны, появилась идея. И требовалось для этого написать и запрограммировать кристалл STM32.

А собственно в чем проблемам? stm32vldiscovery лежала на полке и дожидалась своего часа, программирование знаю и частенько пишу “на заказ”. С железом дружу хорошо.

Первым делом возник вопрос “на чем писать”? Сред программирования много, но язык только “Си”. Без вариантов. Ассемблер не рассматриваю в принципе. Светодиодом помигать можно, но что-то сложнее требует огромных трудозатрат.

Но я не знаю Си! Вообще. Всю жизнь писал только на Pascal/Delphi. Учить язык? Вы пробовали учить язык, когда вам более 40 лет возраста? Когда работа, семья и минимум свободного времени. Когда ум уже не так остр, как в молодости. Да и затевать все это ради одного проект смысла не более, чем учиться на права и покупать машину ради поездки в булочную в соседнем доме.

Выходом послужил найденный “mikroPascal PRO for ARM” от MikroElektronika. Если честно, я уже работал с “mikroPascal PRO for PIC” на пике популярности PIC чипов. Впечатления остались не очень хорошие. Компилятор “со странностями”, оболочка тоже не отличалась стабильностью и дружественным интерфейсом.

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

И так, что мы имеем на руках:
  • Плату stm32f4discovery;
  • mikroPascal PRO for ARM с лицензионном ключем (взято у товарища. потом придется вернуть). Без ключа — ограничение в 2 КВ на размер кода;
  • Инженер, которого в ВУЗе учили исключительно Pascal.

Задача: освоить программирование микроконтроллера без единой строчки Си кода.

Итак приступим…
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 21K
Комментарии 20

STM32F4 USB RNDIS драйвер (управление устройством через Web-интерфейс)

Разработка веб-сайтов *C *Программирование микроконтроллеров *
Доброе время суток, дорогие друзья!

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

Ранее в статье была анонсирована разработка RNDIS USB драйвера для контроллеров серии STM32F4. С тех пор библиотека постепенно развивалась и нынче доросла до первой release-версии. Библиотека под названием LRNDIS (LWIP + RNDIS) позволяет нам создавать на базе контроллера STM32F4 как устройства класса USB «модем», так и любые другие устройства с управлением через web-интерфейс. Пример управления платой stm32f4-discovery из web-браузера на Android-планшете представлен на видео:



На странице видеоролика представлена ссылка на исходные коды и HEX-файл прошивки для платы discovery, с которым вы сможете повторить данный эксперимент. В статье рассказано о том, как и когда технология доступа через WEB-интерфейс полезна, а также — как работает библиотека LRNDIS для контроллеров STM32F4. Также присутствует обучающий материал о работе USB и устройстве Ethernet-сетей.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 47K
Комментарии 19

Выводим цифровую фоторамку в интернет

Программирование микроконтроллеров *DIY или Сделай сам
image
Наверное многие, глядя на цифровую фоторамку, задумывались — можно ли выводить на нее собственную информацию, меняющуюся во времени? Поскольку я уже несколько лет являюсь владельцем фоторамки, то такая мысль приходила в голову и мне — рамка отлично подошла бы для отображения прогноза погоды и информации с «умного дома». О том, как же реализовать подобный функционал, не вмешиваясь при этом в конструкцию рамки — читайте под катом.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры 33K
Комментарии 10

Почти все, что вы хотели знать про плавающую точку в ARM, но боялись спросить

Блог компании Embox Assembler *Системное программирование *C *
Привет, Хабр! В этой статье я хочу рассказать про работу с плавающей точкой для процессоров с архитектурой ARM. Думаю, эта статья будет полезна прежде всего тем, кто портирует свою ОС на ARM-архитектуру и при этом им нужна поддержка аппаратной плавающей точки (что мы и делали для Embox, в котором до этого использовалась программная реализация операций с плавающей точкой).

Итак, приступим.
Читать дальше →
Всего голосов 49: ↑47 и ↓2 +45
Просмотры 20K
Комментарии 17

Реализация PPPOS на stm32f4-discovery

Программирование микроконтроллеров *
Из песочницы
Однажды передо мной возникла задача обеспечить выход в сеть Интернет на STM32 имея для этого только COM порт. Для решения этой задачи мне понадобился PPP, или, еcли быть точным, PPPoS (англ. Point-to-Point Protocol over Serial — один из способов реализации PPP, используется при подключении через COM-порт).

В процессе решения поставленной передо мной задачи я столкнулся с некоторыми трудностями, одна из которых недостаточное, на мой взгляд, освещение вопросов связанных с PPPoS в сети Интернет. Этим постом я постараюсь закрыть обозначенный пробел, на сколько позволят мои скромные знания.

Статья описывает создание проекта для System Workbench for STM32 с нуля. Показывает пример работы с UART. Есть примеры кода для реализации PPP. Ну и конечно, пример отправки сообщения на соседний компьютер.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 11K
Комментарии 9