Рубрика «Программинг микроконтроллеров» - 16

Сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:
STM32 + EmBlocks — мигаем светодиодами
Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Читать полностью »

Я обещал поделиться своей настроенной средой Em::Blocks.
Выполняю обещание.
EmBlocks — IDE для STM32

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

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

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

Читать полностью »

В начале мая я стал счастливым обладателем отладочного комплекта 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.

Читать полностью »

ARM ы для самых маленьких: тонкости компиляции и компоновщик, часть 1
Продолжая серию статей про разработку с нуля для ARM, сегодня я затрону тему написания скриптов компоновщика для GNU ld. Эта тема может пригодиться не только тем, кто работает со встраиваемыми системами, но и тем, кто хочет лучше понять строение исполняемых файлов. Хотя примеры так или иначе основаны на тулчейне arm-none-eabi, суть компоновки та же и у компоновщика Visual Studio, например.

Предидущие статьи:

Примеры кода из статьи: https://github.com/farcaller/arm-demos

Читать полностью »

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

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

Приехала вчера крошечная платка на STM32F103C8.

STM32F103C8 Front STM32F103C8 Front

Это 48ногий 32битный микроконтроллер. И это отличный вариант апгрейда для тех, кто использует Arduino.
Читать полностью »

Проблема тестирования свежепроложенной локальной сети актуальна всегда. Когда-то мне в руки попала железка под названием «Rapport II», которая, вообще говоря, тестер для систем CCTV, но витую пару прозванивать умеет тоже. Железка та давно уже умерла, а вот впечатление осталось: при тестировании витой пары она показывала не просто переполюсовку и распарку, но точную схему обжима! Например, для кроссовера это выглядело 1 &#x2192 3, 2 &#x2192 6, 3 &#x2192 1, и так далее.
Но заплатить порядка 800 нерусских рублей за устройство, в котором я реально буду использовать всего одну функцию? Увольте! Как же это работает, может, проще сделать самому? Гугл в руки, и… сплошное разочарование. Вывод поиска состоит на 80% из мигалок светодиодами на сдвиговом регистре / AVR / PIC / свой вариант, и на 20% из глубокомысленных обсуждений форумных гуру на темы «купите %название_крутой_железки_за_100499.99_вечнозеленых% и не парьтесь». Посему, хочу предложить хабрасообществу свое решение данной проблемы в стиле DIY. Кого заинтересовало — прошу под кат (осторожно, некоторое количество фото!).
Читать полностью »

ARM ы для самых маленьких: который час?

Сегодня мы разберемся с двумя важными вопросами: как писать более эффективный код с CMSIS и как правильно рассчитывать скорость работы процессора. Начнем мы со второй части и изучим процессы, которые происходят в LPC1114 для генерации тактовой частоты.

Читать полностью »

Недавно друг притащил ко мне простенький игрушечный вертолёт:

image

Управляется он не по радио, а посредством инфракрасных сигналов. На самом вертолёте стоит обычный ДУ-приёмник, а значит используется несущая частота в 36-40кГц, и не составит труда разобраться в структуре сигналов, которые посылает пульт, чем я и решил заняться.

Сразу скажу, что вся эта затея изначально не имела никакого смысла, это просто статья о том, как развлекаются айтишники :)
Читать полностью »

ARM ы для самых маленьких

Пару дней назад я опубликовал и потом внезапно убрал в черновики статью о плане написать про создание своей ОС для архитектуры ARM. Я сделал это, потому что получил много интересных отзывов как на Хабре, так и в G+.

Сегодня я попробую подойти к вопросу с другой стороны, я буду рассказывать о том, как программировать микроконтроллеры ARM на нарастающих по сложности примерах, пока мы не напишем свою ОС или пока мне не надоест. А может, мы перепрыгнем на ковыряние в Contiki, TinyOS, ChibiOS или FreeRTOS, кто знает, их там столько много разных и интересных (а у TinyOS еще и свой язык программирования!).

Итак, почему ARM? Возиться с 8-битными микроконтроллерами хотя и интересно, но скоро надоедает. Кроме того, средства разработки под ARM обкатаны долгим опытом и намного приятнее в работе. При этом, начать мигать светодиодами на каком-то «evaluation board» так же просто, как и на Arduino.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js