Фильтр по тематике

Отладочные средства для микроконтроллеров STM32 от компании «Амперка»

В статье приведено описание отладочной платы Iskra JS и свободной среды разработки программ Espruino Web IDE от компании «Амперка». Представленные продукты предназначены для практического изучения микроконтроллеров серии STM32 компании STMicroelectronics.

Введение

Одним из ключевых факторов развития отечественного приборостроения, робототехники и других высокотехнологичных отраслей является привлечение молодых специалистов к работе с современной микропроцессорной техникой, а для этого следует обеспечить наличие необходимых источников информации и доступных аппаратных и программных средств обучения и разработки.

Для решения подобных задач многие компании предлагают широкий выбор отладочных плат и программных инструментов. Одной из них является компания «Амперка» [1], выпускающая отладочные платы для различных микроконтроллеров и периферийные устройства, которые легко подключаются к данным платам и имеют программную поддержку. Проекты, развиваемые компанией, во многом схожи с хорошо известным и распространённым проектом Arduino [2]. В статье представлен один из новых продуктов «Амперки» – отладочная плата Iskra JS, позволяющая быстро приобрести практические навыки работы с микропроцессорами серии STM32 [3].

Отладочная плата Iskra JS

Отладочная плата Iskra JS является флагманской платой «Амперки», имеет встроенный интерпретатор JavaScript и представляет собой развитие платформы Espruino. Iskra JS обеспечивает высокую скорость выполнения программ, комфортность разработки, максимальную совместимость с платами расширения (в т.ч. с платами Arduino), сенсорами и другими электронными модулями. Внешний вид отладочной платы Iskra JS представлен на рисунке 1.

Основой платы Iskra JS является 32-битный микроконтроллер STM32F405RG с ядром ARM Cortex M4. Плата имеет встроенный в микроконтроллер интерфейс USB и не требует для подключения к компьютеру дополнительного моста USB-UART. Iskra JS работает на частоте 168 МГц, имеет 1 МБ флэш-памяти для хранения программы интерпретатора JavaScript и программы пользователя, а также 192 КБ оперативной памяти. Такого объёма памяти хватает для обработки JS-кода и решения множества задач, таких как управление роботом, промышленная автоматика, системы умного дома и т.д. На плате имеются совместимые с Arduino контактные соединители, расположенные в соответствии со стандартной компоновкой Arduino R3.

Напряжения логических уровней сигналов платы Iskra JS составляют 3,3 В, но многие выводы толерантны к 5 В уровням сигналов. Это обеспечивает электрическую совместимость с большей частью периферийных устройств Arduino.

Плата имеет 36 доступных управляющих контактов: 12 для считывания аналогового сигнала, 22 для генерации сигнала широтно-импульсной модуляции, 2 аналоговых выхода.

На платформе имеется 4 последовательных порта, 2 интерфейса SPI и 3 интерфейса I2C для взаимодействия с дисплеями, гироскопами, акселерометрами и другими сложными модулями. При этом по одному интерфейсу SPI и I2C вынесено на штатные разъёмы согласно стандарту Arduino R3 без создания конфликта с остальными выводами. Расположение выводов отладочной платы Iskra JS показано на рисунке 2.

Выводы отладочной платы имеют следующее назначение:

  • P0 – вывод GPIO (по этому имени можно обратиться к выводу из программы);
  • B11 – вывод микроконтроллера STM32F405RG;
  • 3.3V – вывод питания;
  • PWM – вывод ШИМ сигнала;
  • ADC – вывод АЦП микроконтроллера для чтения аналогового сигнала;
  • DAC – вывод ЦАП микроконтроллера для формирования аналогового сигнала;
  • FVT – вывод, толерантный к напряжению 5 В;
  • SPI2 SCK – вывод сигнала синхронизации интерфейса SPI2 (программно доступен по имени PrimarySPI);
  • I2C1 SDA – вывод сигнала данных интерфейса I2C (программно доступен по имени PrimaryI2C);
  • USART3 TX – вывод сигнала интерфейса UART/USART (программно доступен по имени PrimarySerial).

Такую отладочную плату можно приобрести или изготовить самостоятельно. Принципиальная электрическая схема отладочной платы Iskra JS приведена на рисунке 3, а её сборочный чертёж – на рисунке 4.


Питание платы можно осуществлять как от компьютера через порт microUSB, так и через гнездо питания 2,1 мм. Источник питания определяется платой автоматически. В случае питания через гнездо рекомендуемое входное напряжение составляет от 7 до 15 В. Встроенный в плату регулятор напряжения сформирует необходимые для платы напряжения 5 и 3,3 В. В качестве источника питания можно использовать сетевой адаптер, батарейки или аккумуляторы. Для питания подключённой периферии используются выводы 5V и 3.3V, которые выдают соответствующие напряжения. При использовании внешнего источника питания с вывода 5V можно получить суммарный ток до 1000 мА, а с вывода 3.3V – до 300 мА. Если для внешних устройств не требуется напряжение 5 В, то можно запитать плату от источника напряжением от 3,6 до 12 В, например от литий-ионного аккумулятора.

Плата Iskra JS подключается к компьютеру кабелем microUSB. При подключении платформа обнаруживается компьютером как виртуальный последовательный порт. По этому порту загружаются пользовательские программы и осуществляется чтение отладочной информации. Данные процессы автоматизированы в среде разработки Iskra IDE. Кроме того, возможно запрограммировать плату Iskra JS как HID-устройство, то есть эмулировать с его помощью работу клавиатуры, манипулятора мыши, джойстиков и другого компьютерного оборудования.

Плата Iskra JS снабжена предохранителем, защищающим USB-порты компьютера от перенапряжения и коротких замыканий. Хотя большинство компьютеров обладает собственными средствами защиты, предохранитель разрывает соединение, если от USB-порта потребляется ток более 500 мА, и восстанавливает его после нормализации ситуации.

Размеры платы составляют 69×53 мм, гнёзда для внешнего питания и USB выступают на 2 мм за её габариты. По краям платы расположены отверстия для винтового крепления. Расстояние между контактами составляет 2,54 мм.

Плата Iskra JS имеет следующие технические характеристики:

  • микроконтроллер – 32-битный STM32F405RG с ARM-ядром Cortex M4;
  • тактовая частота – 168 МГц;
  • объём флэш-памяти – 1024 КБ;
  • объём флэш-памяти для хранения программы – 256 КБ;
  • объём SRAM-памяти – 192 КБ;
  • количество портов ввода-вывода общего назначения – 26;
  • количество портов с поддержкой ШИМ – 22;
  • количество портов АЦП – 12;
  • разрядность АЦП – 12 бит;
  • количество портов ЦАП – 2;
  • разрядность ЦАП – 12 бит;
  • количество портов, толерантных к 5 В, – 11;
  • доступные аппаратные интерфейсы – 4×UART/Serial , 3×I2C/TWI, 2×SPI;
  • номинальное рабочее напряжение – 3,3 В;
  • рекомендуемое входное напряжение – 7…15 или 3,6…12 В;
  • максимальный ток от источника 5 В – 1000 мА;
  • максимальный ток от источника с шины 3,3 В – 300 мА (включая питание микроконтроллера);
  • максимальный ток на выводе – 25 мА;
  • максимальный суммарный ток выводов – 240 мА;
  • рабочий температурный режим -20…+70°C;
  • размеры – 69×53 мм.

На рисунке 4 приведено расположение органов управления и коммутации отладочной платы Iskra JS. Перемычка выбора питания определяет, как осуществляется преобразование входного напряжения. Она может быть установлена в одном из двух положений:

VIN3+5V – внешнее питание сначала проходит регулятор на 5 В, а он, в свою очередь, питает регулятор на 3,3 В; работают обе шины: 5 В и 3,3 В; допустимое входное напряжение в этом случае составляет от 7 до 15 В.

VIN3+VIN – внешнее питание сразу подаётся на регулятор 3,3 В; шина 5 В не используется для получения напряжения 3,3 В; допустимое входное напряжение – от 3,6 до 12 В; данное положение рекомендуется использовать при питании схемы от литий-ионного аккумулятора.

Когда плата подключена к внешнему источнику питания и перемычка выбора питания установлена в положение VIN3+5V, напряжение проходит через стабилизатор MC7805BD. Выход стабилизатора соединён с выводом 5V. Максимальный выходной ток составляет 1000 мА. Стабилизатор MC33275ST с выходным напряжением 3,3 В обеспечивает питание микроконтроллера STM32F405RG. Максимальный выходной ток составляет 300 мА.

На плате установлено 3 светодиода:

  1. BUSY – индикатор «занятости» системы.
  2. LED1 – светодиод свободного назначения.
  3. ON – индикатор наличия питания на микроконтроллере.

Кнопка RESET служит для сброса микроконтроллера, кнопка BTN1 программируется пользователем и подключена к выводу PC4 микроконтроллера.

Разъём SPI служит для подключения плат расширения к интерфейсу SPI. Согласно стандарту Arduino R3 разъём SPI должен быть вынесен в виде соединителя 3×2 вывода в определённом месте. Интерфейс SPI не предназначен для внутрисхемного программирования микроконтроллера STM32F405RG и может использоваться только для связи с другими SPI-устройствами.

Разъём SWD предназначен для внутрисхемного программирования микроконтроллера STM32F405RG через программатор, например ST-Link.

Вывод BOOT0 определяет режим загрузки микроконтроллера отладочной платы. Если замкнуть эту пару выводов, микроконтроллер загрузится в режиме DFU. Это позволит записать программу в микроконтроллер без программатора через порт USB.

Среда разработки

Для программирования отладочной платы Iskra JS разработана специальная среда разработки Espruino Web IDE, которая позволяет создавать программы, загружать их в микроконтроллер платы, отображать результаты работы на консоль и отлаживать программы. Данное приложение работает на платформе Google Chrome [4] и доступно для операционных систем Windows, Mac OS, Linux и Chrome OS.

Для программирования платы Iskra JS используется язык программирования JavaScript, особенности использования которого подробно описаны в [5]; также доступны исходные файлы JavaScript ядра Espruino [6]. Язык программирования JavaScript является популярным и мощным средством разработки. Простой, выразительный и гибкий, он обычно используется для создания интернет-приложений, но этим сфера его применения не ограничивается.

Для установки среды программирования на компьютер потребуется выполнить несколько простых шагов. Сначала необходимо установить на компьютер интернет-браузер Google Chrome и открыть с его помощью ссылку [7] для загрузки среды. Далее необходимо применить дополнительные настройки IDE, кликнув мышкой по программной кнопке «Установить» (см. рис. 5). Можно установить среду разработки, используя другой браузер, но при этом придётся настроить систему вручную [8]. Выполнение настройки необходимо для корректной работы библиотек и плат «Амперки».

Для операционной системы Windows потребуется также загрузить файл драйвера [9] и установить его. После установки драйвера необходимо открыть каталог установки (например, C:\ProgramFiles(x86)\STMicroelectronics\Software\Virtual comport driver) и запустить файл dpinst_x86.exe или dpinst_amd64.exe для 32-разрядной или 64-разрядной версии операционной системы соответственно. Для операционных систем Mac OS и Linux драйвер не требуется.

После выполнения установки среда программирования будет автоматически запущена. Если понадобится запустить среду вновь, можно использовать её ярлык, который доступен в Google Chrome во вкладке «Сервисы». Для того чтобы создать ярлык на рабочем столе или в панели быстрого запуска, необходимо ввести в адресной строке браузера chrome://apps/ и кликнуть правой кнопкой мыши по иконке Espruino IDE.

Окно среды разработки состоит из двух основных частей: слева – окно консоли, справа – окно исходного кода, как показано на рисунке 6. Порядок работы в установленной среде программирования следующий:

  1. Подключить отладочную плату к компьютеру через USB-порт.
  2. Ввести текст программы на правой панели IDE.
  3. Загрузить программу в плату кнопкой .
  4. Наблюдать за работой устройства и выводом отладочной информации в консоли.

Подключение платы к компьютеру осуществляется кабелем USB и нажатием программной кнопки в верхнем левом углу окна IDE. После подключения отобразится список доступных портов и плат, например:

  • COMx на Windows;
  • /dev/tty.usbmodemXXX на Mac OS;
  • /dev/ttyACMx на Linux;

После успешного подключения на консоли появится надпись Connected. Цвет фона кнопки при этом изменится с оранжевого на зелёный, и в нижнем правом углу экрана появится окно с уведомлением о том, что плата успешно подключена к компьютеру. Теперь плата готова к выполнению команд и программ пользователя. Например, для перезагрузки отладочной платы нужно ввести в поле консоли команду reset();. После перезагрузки в консоли отобразится информация о плате с указанием версии её прошивки. При необходимости можно обновить прошивку до последней версии (см. далее).

Программа может отображаться и редактироваться как в текстовом виде, так и в виде программных блоков. Переключение между этими режимами осуществляется с помощью программной кнопки </>.

В консоли можно работать с подключённой платой в диалоговом режиме: делать арифметические вычисления, вызывать функции, просматривать значения переменных и т.д. Например, если ввести в консоль 3+(8–7)*3/6 и нажать Enter, то отладочная плата выполнит команду и вернёт результат 3.5. В консольном режиме можно использовать переменные:

>var x = 3
=3
>var y = 4
=4
>x * x + y * y + 5
=30

Переменные могут хранить не только числа, но и строки, логические значения, функции и составные объекты. Интерпретатор JavaScript позволяет работать с пользовательскими и встроенными функциями. Например, вызов функции >getTime() вернёт числовой результат времени в секундах, прошедших с момента включения платы.

В диалоговом режиме допускается управление элементами платы и опрос их состояния. Например, с помощью команды >LED1.write(1) подаётся питание на светодиод LED1, а посредством команды >LED1.write(0) питание светодиода LED1 отключается. Опрос состояния кнопки можно выполнить с помощью команды >BTN1.read(). Если кнопка нажата, в ответ отобразится =true, в противном случае выведется =false.

Примеры программ

Рассмотрим пример программы, результатом работы которой будет мигание светодиода LED1 на плате (см. листинг 1).

Листинг 1

var on = false;
setInterval(function()
{
on = !on;
LED1.write(on);
}, 500);

Данную программу можно сохранить на компьютере в виде файла с произвольным именем и расширением js, например blink.js. После загрузки программы в отладочную плату Iskra JS на плате начнёт мигать светодиод LED1 с периодичностью 500 мс.

Следующий пример – программа lamp.js с использованием библиотек «Амперки» – приведён в листинге 2 и предназначен для управления светодиодом, подключённым к выводу P1 отладочной платы. 

Листинг 2

var led = require('@amperka/
led').connect(P1);
led.blink(0.1, 0.9);

В первой строке программы с помощью функции require создаётся объект led для светодиода, подключаемого к выводу P1. Во второй строке программы вызывается метод blink объекта led, который заставляет светодиод светиться в течение 0,1 с, а затем гаснуть на 0,9 с в циклическом режиме.

На сайте производителя приведено множество других примеров программ для работы с Iskra JS и периферийными платами, например из набора «Йодо» [10]. Среди доступных примеров можно найти такие проекты, как телеграф, автоматический диммер, «умное» освещение, терменвокс, экранный люксометр, html-термометр, ультразвуковая линейка, парктроник, сканер ИК-пультов, пульт киномана, радар и др.

В таблице приведён краткий перечень библиотечных функций JavaScript, поддерживаемых отладочной платой Iskra JS, с примерами их использования.

Производитель периодически выпускает обновления интерпретатора JavaScript отладочной платы, добавляющие новые возможности и исправляющие ошибки. Обновить версию прошивки можно непосредственно в среде программирования IDE. Для этого необходимо перейти в настройки Flasher и нажать программную кнопку Flash Firmware, после чего выполнить следующий алгоритм действий:

  1. Нажать кнопку BTN1 на плате и одновременно с ней – кнопку RESET, затем отпустить обе кнопки. В результате попеременно начнут мигать светодиоды LED1 и BUSY – это означает, что плата успешно перешла в режим загрузчика.
  2. Нажать в IDE кнопку Next.
  3. Выбрать порт с подключённой платой.
  4. Выбрать модель платы и нажать Next.
  5. Дождаться окончания процесса прошивки.

Литература

Комментарии
Рекомендуем
Электронные датчики и радары  в системе беспроводной связи ОТА, LOP и E-peas электроника

Электронные датчики и радары в системе беспроводной связи ОТА, LOP и E-peas

В будущем разработчиков РЭА ожидает эра «одноразовых» устройств: «установил и забыл» – надёжные, устойчивые к внешним воздействиям среды, но не предназначенные для ремонта. Одна из важных решаемых задач – сочетание сбора энергии из среды, её преобразование в электрическую и применение датчиков и микроконтроллеров с крайне низким энергопотреблением. В сочетании с технологиями E-peas (Electronic portable energy autonomous systems – автономные портативные электронные системы), LOP (с низким энергопотреблением) и решениями NXP возникают перспективы датчиков положения, давления и измерения сопутствующих величин от OEM-производителей. С аппаратными настройками и масштабируемостью производительности РЭА в формате процессоров S32R с исключением ошибок в передаче данных аналогового и смешанного сигнала беспроводным способом на небольшие расстояния. В статье представлены примеры системных решений для организации и управления питания датчиков РЭА, задействованных в беспроводной передаче данных, сетевых технологиях и транспортной технике с беспроводной сетью ОТА (Over-the-air – по воздуху).
15.04.2024 СЭ №4/2024 589 0

ООО «ПРОСОФТ» 7724020910 2SDnjdbfYK3
ООО «ПРОСОФТ» 7724020910 2SDnjdbfYK3