Как стать автором
Обновить

Создание нового языка для микроконтроллеров

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 9K
Assembler *Программирование микроконтроллеров *
Мнение

Некоторое время я был занят написанием простенького редактора для языка ассемблер под ARM Cortex семейства микроконтроллеров (подробности в моих статьях), и вот сейчас, поднакопив некоторый опыт как в части самого ассемблера так и способов написания программ в них решился на написание нового редактора.

Плюс еще подоспел интерес к RISC‑V архитектуре и было принято решением делать редактор который смог бы редактировать программы на ассемблере для различных архитектур (в том числе может быть и с лагеря AVR кто нить захочет присоединиться).

В общем подумалось: а что если попытаться создать asm‑base'д язык программирования который при выборе архитектуры просто бы транслировался автоматически в асм инструкции выбранной платформы?

Читать далее
Всего голосов 32: ↑24 и ↓8 +16
Комментарии 93

Дешевый планарный датчик положения на основе PS/2 Mouse, MatLab + MBED + PS/2 Mouse

Время на прочтение 4 мин
Количество просмотров 7K
DIY или Сделай сам
Ну что же, попытка номер два.

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

В чем же плюс Мышки?


Постановка задачи.


  • Получение координат с контроллера типа мышь в программном комплексе MatLab

Читать дальше →
Всего голосов 41: ↑34 и ↓7 +27
Комментарии 48

ARM7TDMI-S (ARMv4T) vs. Cortex-M3 (ARMv7-M)

Время на прочтение 7 мин
Количество просмотров 6.5K
Чулан
Уже добрый десяток лет на рынке представлено множество микроконтроллеров на ядре ARM7TDMI. Это довольно мощное ядро для однокристальных решений. Оно имеет разрядность 32 бита и частоту работы до 100МГц, мало того, ядро однотактовое, т.е. некоторые инструкции исполняются за 1 такт (преимущественно операции с регистрами, без обращений к внешним шинам процессора). Ядро ARM7TDMI на голову превосходит по вычислительным возможностям все 8-ми и 16-ти битные чипы (AVR, MSC-51, PIC12/PIC16/PIC18/PIC24, MSP430, etc).

Однако, относительно недавно, компания ARM представила новое семейство ядер Cortex, нас будет интересовать его разновидность Cortex-M3, которая предназначается как раз для замены ARM7TDMI в нише однокристальных решений.

Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 12

Сравниваем микроконтроллеры до 50 рублей: ARM жаждет крови

Время на прочтение 3 мин
Количество просмотров 123K
Программирование микроконтроллеров *
Года так 2 назад на одном из форумов по радиоэлектронике я попросил посоветовать, какой микроконтроллер изучать — и больше всего голосов было в поддержку AVR — популярных, 8-и битных МК, под которые легко писать, программатор можно сделать одной рукой (из проводов и резисторов)… Будущее было ясным и безоблачным, пока в 2009-м году не пошли новости про новые микроконтроллеры на ядре ARM Cortex-M0, которые должны были стоить меньше 1$ (во что в принципе никто не верил) и перекрыть кислород 8-и битным микроконтроллерам.

Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
Читать дальше →
Всего голосов 114: ↑107 и ↓7 +100
Комментарии 100

STM32F1xx — лечимся от ардуинозависимости вместе

Время на прочтение 14 мин
Количество просмотров 262K
Программирование микроконтроллеров *
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →
Всего голосов 159: ↑157 и ↓2 +155
Комментарии 65

STM32F1хх — продолжаем лечение от ардуинозависимости при помощи LCD

Время на прочтение 14 мин
Количество просмотров 125K
Программирование микроконтроллеров *
Добрый день, уважаемые хабровчане. В своей прошлой статье я рассмотрел применение замечательных микроконтроллеров STM32F1xx на примере управления сервоприводами. В этой статье мы обратимся к более интересному вопросу – управлению цветным графическим LCD-дисплеем. Помимо стандартной работы с дисплеем я постараюсь осветить вопросы использования особенностей микроконтроллеров STM32F для эффективного решения данного вопроса. Итак, начнем.
Читать дальше →
Всего голосов 61: ↑60 и ↓1 +59
Комментарии 16

STM32F1xx — Инструменты разработчика и FreeRTOS

Время на прочтение 10 мин
Количество просмотров 148K
Программирование микроконтроллеров *
Добрый день, уважаемые хабровчане. В своих прошлых статьях (STM32F1xx — лечимся от ардуинозависимости вместе, STM32F1хх — продолжаем лечение от ардуинозависимости при помощи LCD) я постарался осветить вопросы перехода с 8-битных микроконтроллеров на новые 32-битные STM32F1xx.
В процессе работы с ними, я, разумеется выбирал инструменты себе «по руке» — то есть, старался найти наиболее удобные для меня отладочные платы, программаторы, IDE. В этой статье я хочу поделиться с вами несколькими соображениями на этот счет, а также описать процесс сборки в выбранной IDE операционной системы реального времени FreeRTOS.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 9

Карманный Groupware-сервер: оценка производительности

Время на прочтение 9 мин
Количество просмотров 2.6K
Nginx *
Интернет пришел в Россию в 1995-96гг. Среднестатистическим компьютером тогда был AMD 486DX150 или Intel Pentium100 с RAM 4-8 Mb и HDD 100-400 Mb. Как раз тогда появился Windows 95, и именно новая ОС и потребовала апгрейдов железа до указанных величин, т.к. на типичных для 94го года компьютерах 486 SX25 или DX66 с 2-4 Mb Win95 еле ворочался. Интернет-серверами и роутерами у провайдеров в те годы были точно такие же машины, или даже более слабые, т.к. Linux тогда еще вполне комфортно себя чувствовал на 2 Мб (без GUI), сайты были в основном статическими, и почтового спама еще не было. Доступ к интернету имел в лучшем случае один на тысячу человек — по нескольку сотен человек в среднем российском областном центре, и все они работали через единичные провайдерские почтовые и веб-серверы. То есть один сервер указанной ничтожной по современным меркам конфигурации обслуживал примерно столько человек, сколько сейчас интернет-пользователей в довольно крупном предприятии. И справлялся…

Есть ли сейчас компьютеры сопоставимой мощности (если слово мощность еще применимо к такому железу), и как они используются? Есть. Нет, это не роутеры и тем более не смартфоны — те и другие заметно производительнее, даже если рассматривать только домашние роутеры и самые простые телефоны. Роутеры легко прокачивают 100Мбит, а телефоны легко крутят видео, да и память у телефонов на сотни мегабайт — ничего такого и близко не было в 96м году. Надо искать более слабые процессоры сопоставимые с Pentium100, то есть около 100МГц или до 200 DMIPS…

Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 40

STM32: Clock Security System

Время на прочтение 4 мин
Количество просмотров 18K
Программирование микроконтроллеров *
Туториал
Из песочницы
image
Доброго времени суток!
В данной статье речь пойдет о системе самодиагностики микроконтроллера STM32, в частности — STM32F100RB, который входит в отладочный комплект STM32-Discovery. Но так как микроконтроллеры STM32 во многом схожи, и отличаются в основном своей периферией — написанное будет верно и для других контроллеров (возможно с небольшими изменениями). Статья расчитана на людей, уже немного знакомых с STM32, но постараюсь рассказывать по возможности подробнее.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 0

1986ВЕ91Т: Что же внутри российского Арма?

Время на прочтение 3 мин
Количество просмотров 75K
Блог компании Zeptobars
После предыдущих статей с внутренностями микросхем (1, 2) многие писали, что фотографии — это конечно интересно, но хотелось бы знать что есть что.

Сегодня возможность удовлетворить этот закономерный интерес наконец появилась. Ковырять будем 1986ВЕ91Т — это микроконтроллер Миландра, основанный на ядре ARM Cortex-M3 (официально лицензированного). Внутри — 128 КиБ флеш-памяти, 32 КиБ статической памяти, аппаратный USB и 80Мгц ядро, изготовлено по технологии 180нм.
Читать дальше →
Всего голосов 137: ↑136 и ↓1 +135
Комментарии 70

Создаем ELF-файл с отладочной информацией (DWARF) вручную (для микроконтроллеров ARM)

Время на прочтение 27 мин
Количество просмотров 27K
Программирование *Компиляторы *Отладка *
Из песочницы

Введение


С недавнего времени я увлекся микроконтроллерами. Сначала AVR, затем ARM. Для программирования микроконтроллеров существует два основных варианта: ассемблер и С. Однако, я фанат языка программирования Форт и занялся портированием его на эти микроконтроллеры. Конечно, существуют и готовые решения, но ни в одном из них не было того, что я хотел: отладки с помощью gdb. И я задался целью заполнить этот пробел (пока только для ARM). В моем распоряжении была плата stm32vldiscovery с 32-битным процессором ARM Cortex-M3, 128кБ flash и 8 кБ RAM, поэтому я и начал с нее.
Писал я кросс-транслятор Форта конечно на Форте, и кода в статье не будет, так как этот язык считается экзотическим. Ограничусь достаточно подробными рекомендациями. Документации и примеров в сети по предмету почти нет, некоторые параметры подбирались мной путем проб и ошибок, некоторые — путем анализа выходных файлов компилятора gcc. Кроме того, я использовал только необходимый минимум отладочной информации, не касаясь, например, relocation-ов и множества других вещей. Тема очень обширна и, признаюсь, разобрался я с ней только процентов на 30, что оказалось для меня достаточным.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 3

Музыкальная игрушка на STM32 из подручных средств

Время на прочтение 16 мин
Количество просмотров 59K
DIY или Сделай сам

Добрый день, уважаемые хабровчане.
Как-то вечером мне стало скучно и я решил собрать небольшое электронное устройство из валяющихся дома компонентов, чисто для развлечения, безо всякой практической цели. Повторить его может любой желающий, не потребуется даже печатной платы — устройство собрано из минимума электронных компонентов «навесу», приклено при помощи эпоксидки к какой-то ненужной плате, исключительно как к элементу конструкции, спаяно при помощи проволочек и залито той же самой эпоксидкой для надежности.
Итак, делаем электронную флейту!
Читать дальше →
Всего голосов 54: ↑51 и ↓3 +48
Комментарии 45

Переходим с STM32F103 на К1986ВЕ92QI. Или первое знакомство с российским микроконтроллером

Время на прочтение 8 мин
Количество просмотров 160K
Отладка *
Туториал
Из песочницы

Введение


В преддверии нового года я, как и многие россияне, активно следил за состоянием зарубежной валюты. Но не просто из-за собственного интереса, а из-за того, что на тот момент заканчивал свое устройство, которое требовалось показать на школьной и районной конференции. Так как в названии работы было такое слово как «бюджетное», то приходилось в презентации указывать стоимость каждого компонента, вплоть до резисторов и перемычек. Изначально, когда доллар стоил порядка 30 рублей, устройство и вправду было бюджетным. Как при домашней сборке, так и при конвейерной. Но когда цена доллара перевалила за 100 рублей, я решил, нужно искать альтернативу зарубежным компонентам.

К этому моменту уже как несколько месяцев изучал работу микроконтроллеров STM32F100 и STM32F103, применяя их на практике в презентационном устройстве. От таких гигантов, как STM32F429, мне пришлось отказаться. Так как стоимость в 1800 рублей за корпус является заоблачной для «бюджетного» устройства, функционал которого только начал превосходить возможности AVR Atmega32.
Читать дальше →
Всего голосов 81: ↑72 и ↓9 +63
Комментарии 56

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Настройка проекта в keil и мигание светодиодом

Время на прочтение 6 мин
Количество просмотров 65K
Отладка *C *
Туториал

Вступление


В прошлой статье я поделился личными впечатлениями о полученном мною наборе и запрограммировал контроллер демонстрацонным проектом с помощью MT-LINK (так же был предоставлен). Теперь, когда мы детально рассмотрели весь комплект, настало время начать его осваивать.
Для нетерпеливых — итог.


Читать дальше →
Всего голосов 37: ↑29 и ↓8 +21
Комментарии 34

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Системный таймер (SysTick)

Время на прочтение 3 мин
Количество просмотров 32K
Отладка *C *
Туториал
Вступление

В предыдущей статье мы помигали светодиодом, но сделали это не совсем правильно. Дело в том, что в качестве задержки мы использовали пустой цикл, который под каждый временной интервал приходится подбирать. Такой способ так же не подходит, когда нам нужны точные временные интервалы. Для решения данной проблемы в нашем микроконтроллере имеются сразу три полноценных таймера и один системный. Для начала поставим небольшую подзадачу. Нам нужно получить мигание светодиодом с интервалом в одну секунду. Задача очень простая и для этого нам вполне хватит системного таймера. Из-за своей легкости он идеально подходит для такого рода задач. Рассмотрим его по подробнее.
Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 17

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Настройка тактовой частоты

Время на прочтение 8 мин
Количество просмотров 37K
Отладка *C *
Туториал

Общее представление о системе тактирования


В прошлой статье мы научились создавать стабильные задержки с помощью простого таймера SysTick, а так же немного окунулись в механизм работы прерываний. Тогда мы принимали как постулат то, что тактируя таймер от источника HCLK – мы получаем 8 Мгц. Теперь настало время разобраться, откуда эти цифры.
Читать дальше →
Всего голосов 23: ↑15 и ↓8 +7
Комментарии 7

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Генерируем и воспроизводим звук. Часть первая

Время на прочтение 15 мин
Количество просмотров 25K
Отладка *C *
Туториал

Вступление


В предыдущей статье мы поговорили о настройке тактовой частоты микроконтроллера. Сейчас мне хотелось бы рассмотреть варианты работы со звуком: его генерирование и воспроизведение. По началу мне хотелось написать одну большую статью, в которой было бы рассмотрено все. От генерации прямоугольных импульсов до воспроизведения FLAC с microSD карты. Но статья получилось просто гигантской. Так что я решил разбить ее на несколько статьей поменьше. В каждой из которых я разбираю по одному периферийному модулю.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 13

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Генерируем и воспроизводим звук. Часть вторая: освоение DMA

Время на прочтение 9 мин
Количество просмотров 20K
Отладка *C *
Туториал
В прошлой статье нам удалось получить звук, но это очень дорого нам далось. Во первых, мы разогнали контроллер до максимальной скорости. А во вторых, кроме генерирования звука контроллер ничего не может, так как большая часть процессорного времени занята постоянным обновлением значения ЦАП-а. Не хорошо это. Именно сейчас остро стоит вопрос об использовании ДМА.
DMA, или Direct Memory Access – технология прямого доступа к памяти, минуя центральный процессор.
— (с) отсюда.
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Комментарии 8

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Генерируем и воспроизводим звук. Часть третья: TIM + DMA

Время на прочтение 14 мин
Количество просмотров 19K
Отладка *C *
Туториал

Вступление

В предыдущей статье я рассказал о своем первом знакомстве с DMA. В ней мы делали связку DMA + SysTick. Статья получилась очень специфичной и сложной, ввиду неопытного кривого подхода. Набравшись опыта, в данной статье я расскажу о куда более простом и понятном способе работы с DMA.
Читать дальше →
Всего голосов 31: ↑23 и ↓8 +15
Комментарии 7

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Генерируем и воспроизводим звук. Часть четвертая: финал

Время на прочтение 115 мин
Количество просмотров 16K
Отладка *C *
Туториал

Введение.


В данной статье мы закончим тему генерации звука средствами нашего микроконтроллера. Создадим одноголосную и многоголосую основу для музыкальной открытки.
Читать дальше →
Всего голосов 32: ↑21 и ↓11 +10
Комментарии 6
1