Как стать автором
Поиск
Написать публикацию
Обновить
141.41

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

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

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

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



Что и как получилось на данном этапе под катом.
Подробности с фото

Новая отладочная плата Radxa Rock на базе SoC Rockchip RK3188

Время на прочтение2 мин
Количество просмотров59K
Все больше и больше, в мире появляется отладочных плат на базе Китайских SoC. Многие предыдущие платы базировались на SoC AllWiner. Новая отладочная плата Radxa Rock построена на SoC Rockchip RK3188. Про возможности SoC Rockchip RK3188, можно прочитать в статье Tronsmart MK908 — новое поколение мини-компьютеров на 4-х ядерном чипе Rockchip RK3188. Плата существует в двух вариантах:
  • Radxa Rock
  • Radxa Rock Lite

Radxa – стартап, который был создан в Шэньчжэнь, Китай, 2013 г., группой молодых людей любящие компьютеры и высокие технологии. Согласно описанию, Том Куби(автор Cubieboard) входит в команду разработчиков.

Отладочная плата Radxa Rock на базе SoC Rockchip RK3188
image

Читать дальше →

Em::Blocks 1.20

Время на прочтение2 мин
Количество просмотров7.8K
Вышла Em::Blocks 1.20, в которой довольно много вкусностей:
  • Semihosting as library option for EmBlocks Bare-metal ARM
  • Semihosting checkbox in debug interfaces JLink and STlink
  • Live data implemented on memory watch and debugger variable tooltip.
  • New STlinkGDB server with live data and semihosting support
  • Syntax highlight on GNU linker scripts
  • Yagarto toolchain replaced by Generic GCC (Yagarto project is cancelled)
  • C++ library linker option and C++ compiler options added
  • Make file tool entry is replaced by CPP tool entry.
  • Device list updated for JLinks
  • STmicro project wizard is changed so that the debug interfaces are preconfigured at the beginning.
  • Breakpoint on-the-fly is now working
  • Run to main() is working smoothly
  • Pre-compiled headers is supported
  • File manager plugin added to the installation package
  • EnergyMicro project wizard is using the preinstalled header files from EM instead of copying all the files with the wizard.
  • Project wizard can also use ZIP archive as template storage.
  • Bug fix STmicro project wizard
  • Bug fix EnergyMicro project wizard
  • and a lot of minor fixes.

В связи с этим я сделал новую сборку с версией 1.20
Преимущества EmBlocks я описывал ранее.
Быстрый старт с EmBlocks на примере простого blink.
Читать дальше →

STM32 + EmBlocks — мигаем светодиодами

Время на прочтение3 мин
Количество просмотров67K
Как и просили в комментариях к предыдущей статье о EmBlocks, сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:

Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Заставим их перемигиваться

EmBlocks — IDE для STM32

Время на прочтение3 мин
Количество просмотров63K
Я обещал поделиться своей настроенной средой Em::Blocks.
Выполняю обещание.


Что такое Em::Blocks?


Это IDE на основе Code::Blocks — кросс-платформенной быстрой среды разработки со встроенным скриптовым языком и очень гибкой настройкой, ориентированной под С/С++ разработку. В среде есть встроенные шаблоны для кучи различных случаев и возможность подключать любые компиляторы.
EmBlocks в отличие от CodeBlocks не кросс-платформенная, она существует только под Windows.
Зато вместе с ней поставляется специальная версия CodeSourcery тулчейна, которая позволяет плотнее интегрировать тулчейн с IDE. Версия в комплекте всегда свежая.

Достоинства EmBlocks


  • быстрая, т.к. написана в native коде
  • расширяемая и хорошо автоматизируется с помощью скриптов
  • шаблоны проектов можно настроить на свой вкус
  • можно самому изменить диалог мастера создания проекта
  • не требует установки — можно носить с собой на флешке и легко перенести с настройками на другой комп
  • из коробки поддерживает отладку через ST-Link и J-Link
  • бесплатная
  • неплохо поддерживается на собственном форуме

Пример проекта с использованием EmBlocks — мигание светодиодами.
Подробности и архив для скачивания

MultiClet: осваиваем SPI на примере работы с LCD

Время на прочтение4 мин
Количество просмотров23K
В начале мая я стал счастливым обладателем отладочного комплекта LDM-MCp. Пару месяцев он пылился на столе, было много работы, назревал отпуск. Вернувшись, с новыми силами, светлой головой и рвением что-то пощупать-поделать, но точно не работу, руки сами потянулись за новую игрушку. Поставил SDK под Linux, всё подключил.

Квест первый


Сразу после подключения система радостно обнаружила спаренное FTDI-устройство, создав сразу два ttyUSBx-девайса. И тут дилемма — либо использовать Serial-консоль, либо иметь возможность заливать прошивки, — идущий в комплекте загрузчик работает напрямую с FTDI-устройством. Пришлось на коленке рисовать скрипты для «правильной» загрузки модуля ftdi_sio. Наколенность проявила себя в использовании питоновских биндингов к библиотеке ftd2xx. Общая суть сводится к выгрузке модуля, блокированию FTDI, используемого для прошивки, и одновременной с этим загрузке модуля обратно. Тогда ядерный модуль может заблокировать оставшийся FTDI для UART.

Hello, world! — слишком банально


Простенький «Hello, world!» с мигающими LED заработал сразу, только обнаружилось, что после прошивки линуксовым mc-ploader'ом необходимо дополнительо сбросить плату или подожать, пока сработает WDT.
Когда-то зимой заказывал себе пару SPI-экранчиков HY28A, но с нашей почтой пришли они только в мае. Тут и решение само пришло — начать с экранчика. Вооружившись USB'ым логическим анализатором SYSCLK DX, полез штудировать спеки на регистры GPIO и SPIx в процессоре MCp и ковыряться в примерах использования SPI.

Читать дальше →

Прерывания в конвейеризированных процессорах

Время на прочтение10 мин
Количество просмотров77K
Наверняка вы знаете, что такое прерывания. Возможно, даже интересовались устройством процессора. Почти наверняка вы нигде не видели внятный рассказ про то, как именно процессор обнаруживает прерывание, переходит к обработчику и, самое главное, возвращается из него именно туда, куда положено.

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

Если когда-нибудь вы задумывались над тем, что значат слова «the processor supports precise aborts» в даташите, прошу под кат.
Читать дальше →

Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд

Время на прочтение5 мин
Количество просмотров59K
Про кэш процессоров написано много, в том числе и на Хабре, но все больше общими словами. Предлагаю вашему вниманию конкретный пример того, как работает кэш в реальной жизни.

В качестве примера я возьму простенькую систему на кристалле, основанную на 32-битном гарвардском RISC-процессоре с одноуровневой кэш-памятью и без MMU (что-то типа ARM Cortex-R). Процессор подключен к контроллеру внешней памяти через 32-битную шину AMBA AHB, работающую на частоте процессора.


Читать дальше →

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

Время на прочтение7 мин
Количество просмотров123K

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



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

Обсуждение Cubietruck (от создателей Cubieboard)

Время на прочтение2 мин
Количество просмотров125K


Первый open-source-hardware продукт команда Cubieteam разработала еще в августе 2012 года. В течение 2012, и в начале 2013 года команда не представила ни одного продукта. Но один из разработчиков команды Cubieteam, сказал что проект уже вышел на новый технологический уровень сопоставимый с промышленными решениями. Это уже не тот небольшой проект предназначенный сугубо для любителей техники. Мы сделали массовый продукт для рынка, который распространяют крупные поставщики.
Читать дальше →

Новая версия Cubieboard2 Allwinner A20 (Cortex-A7 Dual-Core)

Время на прочтение1 мин
Количество просмотров114K
После успеха проекта разработки отладочной платы Cubieboard, команда Cubieteam продолжила разработку. И в июне, представила новую версию своего продукта Cubieboard2. Отладочная плата Cubieboard2, является модифицированной платой Cubieboard первой версии. Отличие заключается в установке новой версии SoC AllWinner A20 ARM Cortex-A7 Dual-Core. Благодаря соответствию контактной площадки AllWinner A20 с предыдущим чипом AllWinner A10, не потребовалось переделывать топологию печатной платы.
Читать дальше →

Решение проблем, связанных с правилами наименования в Quartus II при использовании Schematic

Время на прочтение4 мин
Количество просмотров17K
Здравствуйте, Хабросообщество.

Хотел бы поделиться с Вами решением одной проблемы, с которой столкнулся и которую решал довольно долго. Причем помочь решить эту проблему не смогли куча различных радиоэлектронщиков (к которым я обращался за помощью и консультацией), а также 2 отечественных и 1 иностранный форумы по радиоэлектронике.

Я хочу сделать так, чтобы тот, кто это прочитает, никогда не «встал на грабли», на которые я встал и с которыми долго мучался.

Проблема была в том, что я не мог использовать более 1 пина на одном IDC разъеме. Если на разъеме использовалось более 1 пина (2 и более) — то при проверке осциллографом разъем молчал.

Как выяснилось теперь — проблема заключалась в правилах наименования в Quartus II при использовании Schematic.

Всем тем, кому это будет полезно или интересно — прошу под кат.
Читать дальше →

БИНС-шминс. Вводная статья

Время на прочтение5 мин
Количество просмотров62K
Зарегистрирован на хабре с 9 июля 2008. Ни разу ничего не писал, только читал, Карма ниже нуля. Решился.
Сразу обращение к уважаемому «хабрасообщесту» статья это попытка разобраться в тех вопрос которые для меня ещё как бы не до конца поняты, поэтому жду конструктивную критику и понятные отзывы, а не «ты дурак и всё».Теперь и к теме приступим.
Читать дальше →

Ближайшие события

FleX™Silicon-on-Polymer™ — первый серийный гибкий микроконтроллер

Время на прочтение1 мин
Количество просмотров39K


FleX™Silicon-on-Polymer™ – революционный процесс создания высокоэффективных однокристальных электронных схем CMOS с многослойным металлическим проводником на гибкой подложке.

FleX позволяет разработать новое поколение ИС, которые значительно улучшат возможность интегрирования функциональности CMOS в гибкую электронику. С помощью FleX можно создавать полностью функциональные гибкие полупроводники на кремнии, толщина которых составляет менее 200 нм. FleX может применяться для процессов «кремний на изоляторе» на любых фабриках. FleX позволяет сделать полупроводники тоньше, обеспечить новые возможности упаковки и 3DIC-интеграции.

Читать дальше →

Open SmartWatch Project

Время на прочтение1 мин
Количество просмотров44K

Sony анонсировала проект Open SmartWatch, целью которого является привлечение разработчиков к созданию альтернативных прошивок для своих умных часов SmartWatch.
Читать дальше →

ChibiOS: легковесная RTOS

Время на прочтение4 мин
Количество просмотров32K

В этой статье я хочу представить и вкратце описать члена семейства ОС реального времени — ChibiOS.
Подробности

Опыт аппроксимации экспериментальных данных

Время на прочтение2 мин
Количество просмотров6.7K
На днях встала задача запрограммировать устройство для измерения скорости потока воздуха. В качестве измеряющего элемента — датчик не понятно какого производителя, нет ни характеристик ни каких-либо адекватных параметров. Выбора не было, пришлось снимать градуировочные характеристики и выводить передаточную функцию «отсчеты АЦП-поток».
Читать дальше →

Компания UDOO запустила кампанию на Kickstarter.com.Убийца Raspberry Pi

Время на прочтение1 мин
Количество просмотров76K

Компания UDOO запустила кампанию на Kickstarter.com по сбору средств на одноименную процессорную плату. При размере сходном с Raspberry Pi плата укомплектова двумя процессорами: четырёхядерным CPU Freescale i.MX6 1GHz на базе ARM Cortex A9 и Atmel ARM SAM3X. Указанная особенность делает UDOO гибридом Raspberry Pi и Arduino, позволяющим с одной стороны выполнять полноценные ОС на базе Linux и Android, а с другой стороны обеспечить совместимость на уровне приложений, аналоговых и цифровых портов ввода/вывода с платой Arduino DUE, что позволяет использовать UDOO в системах автоматизации и управления, рассчитанных на работу с Arduino.
Читать дальше →

Работа с ЖК индикатором на отладочной плате STM32L-Discovery

Время на прочтение12 мин
Количество просмотров46K

Теория


Общие сведения


На отладочной плате STM32L-Discovery установлен жидкокристаллический индикатор (ЖКИ, англ. LCD. Liquid crystal display), имеющий шесть 14 сегментных знаков, 4 знака двоеточия (Colon), 4 точки (DP), 4 полоски (Bar). Все сегменты объединены в группы СOM0, COM1, COM2, COM3 по 24 сегмента. Каждая группа имеет свой отдельный «общий провод».


На отладочной плате установлен микроконтроллер STM32L152RBT6. В микроконтроллере есть встроенный контроллер ЖКИ, который управляет монохромными жидкокристаллическими индикаторами.
Контроллер ЖКИ:
  1. Позволяет настраивать частоту обновлений (частоту кадров — частота, с которой обновляется информация на ЖКИ)
  2. Поддерживает статический и мультиплексный режим управления
  3. Поддерживает программную установку контраста
  4. Позволяет использовать несколько уровней управляющего напряжения (до четырех)
  5. Использует двойную буферизацию, позволяющую обновлять данные в регистрах LCD_RAM в любое время выполнения программы, не нарушая целостность отображаемой информации

Регистры памяти контроллера ЖКИ


В микроконтроллере STM32L152RB выделены специальные регистры LCD_RAM, информация, хранимая в которых, соответствует группе сегментов COM0 — COM3. Каждой группе соответствует два 32 разрядных регистра. Такое количество регистров позволяет микроконтроллеру управлять ЖКИ c большим количеством сегментов, чем установленным на отладочной плате.

Для управления ЖКИ со 176 сегментами используются 4 группы COM0 — COM3 по 44 сегмента каждая, для управления ЖКИ с 320 сегментами используются 8 групп COM0 — COM7 по 40 сегментов каждая.
Подробности. Осторожно, трафик.

Выводим счетчик электроэнергии в интернет

Время на прочтение5 мин
Количество просмотров275K

В статье я расскажу о том, как получить данные о мощности с электросчетчика и вывести их в интернет.
Сразу скажу, что несмотря на то, что счетчик цифровой, и имеет цифровые интерфейсы для связи с внешним контрольным оборудованием, я не использую их (почему — ниже).
Читать дальше →

Вклад авторов