Programming microcontrollers
24 July 2014

Быстрый старт ST Nucleo-F401 + краткое руководство

В предыдущем своем посте я попытался коротко ознакомить вас с платформой Nucleo от ST.
В этом посте я хочу рассказать вам на живом примере некоторые сильные стороны этой платформы, которая имеет все шансы потеснить приевшиеся всем Arduino, и показать что все примеры кода и шилды от Arduino, прекрасно подходят для платформы Nucleo.



Почему Nuleo-F401?



Платформа Nuleo Представляет собой гибрид платформ DISCOVERY и Arduino, позволяя пользователям, без проблем использовать почти все расширения и все примеры кода для

Arduino. В Этой платформе реализована поддержка MBED.ORG, благодаря чему снимается головная боль многих новичков в установке, настройке и использовании компиляторов для ARM. В mbed.org импортированы почти что все существующие расширения для Arduino. В отличии от уже широко распространенной и полюбившихся многим платформы DISCOVERY, платформа на своем борту не имеет никакой периферии, такой как например акселерометр, компас и т.д. Зато платформа Nucleo призвана сделать работу на ней столь же простой как и на платформах от Arduino. Так же платформа имеет гибкую схему питания(3.3В-5В-7В-12В), встроенный обновленный программатор ST-LINK/V2.1 для программирования любых STM32, встроенный виртуальный COM порт (подключенный по умолчанию к USART), упрощенную процедуру программирования микроконтроллера благодаря эмуляции сменного носителя давая доступ к флеш памяти микроконтроллера.

Особенности микроконтроллера STM32F401RE вы можете изучить и самостоятельно, я выбрал ST Nucleo-F401, по причине того что на момент покупки это была старшая из доступных моделей, отличающаяся от остальных, своей большей производительностью и большим объемом памяти.

Начало Работы!


Для Начала нам потребуется зарегистрироваться на Mbed.org и добавить нужную нам платформу в список своих устройств.

Инструкция для чайников, нажми чтобы увидеть
Регистрация на Mbed.org


Для этого следуем по ссылке mbed.org/account/signup и следуя инструкциям, заполняем регистрационную форму.



Выбираем «No, I haven't created an account before» (Нет, я не создавал ранее учетную запись)



Заполняем регистрационную форму и жмем «SignUp» (Зарегистрироваться)



Должно появиться сообщение «Welcome to mbed! To register a board, please plug the board in and click on MBED.HTM»



После это вверху слева нажимаем «Platform» и открываем список всех поддерживаемых проектом платформ, и в списке переходим к нашей платформе(в нашем случае это Nucleo-F401RE).



Открыв описание платформы мы находим слева кнопку «Add to your mbed Compiler» нажимая ее мы добавляем выбранную платформу в список своих платформ.



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



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


Установка драйверов.

На сайте Mbed.org в разделе нашей платформы, в низу мы можем увидеть ссылку перейдя по которой нам нужно скачать, установить и запустить:
  1. сначала нужно установить USB драйвер ST-LINK/V2-1 для программатора, для Windows Vista, 7 и 8 STSW-LINK008 или STSW-LINK009 для Windows XP
  2. Произвести Обновление прошивки подключенного по USB программатора ST-LINK/V2-1 STSW-LINK007

Инструкция для чайников, нажми чтобы увидеть
Начнем по порядку, скачиваем актуальный Драйвер и обновление прошивки на этой странице КЛАЦ
нам предположительно нужны два фала один "ST-LINK/V2-1 firmware upgrade" второй допустим "ST-LINK/V2-1 USB driver on Windows Vista, 7 and 8"



Распаковываем скачаные нами архивы, и приступаем.
Запускаем установку драйверов: в распакованном архиве STSW-LINK008 или STSW-LINK009 запускаем файл под именем stlink_winusb_install для нашей платы (плата еще не подключена по USB).



Запускаем этот файл, который сам определит разрядность системы и тип установки. Соглашаемся со всем, и жмем да, далее и т.д.
Теперь можем подключить по USB нашу плату и увидеть что светодиоды загорелись и у вас определился новый сменный носитель.

Запускаем обновление прошивки программатора нашей платформы:
Для этого подключаем нашу отладочную платформу к компьютеру, переходим в папку с распакованным архивом обновления программатора «STSW-LINK007» и запускаем файл «ST-LinkUpgrade»



В появившемся окошке жмем «Device Connect» (Подключение устройства), после обноружения устройства и подключению к нему жмем «Yes >>>» программка сама все сделает и в конце отключиться от устройства, после этого можете закрыть ее.

Все на этом установка свежих драйверов и обновление прошивки окончено.


Подключение платформы:

Для любопытных я постараюсь разъяснить некоторые режимы работы поподробнее:
Сведения для любопытных, нажми чтобы увидеть. ОСТОРОЖНО!
Краткие технические сведения из руководства

image
Режимы работы светодиодов.

На плате реализовано 3 светодиода
Трехцветный светодиод (зеленый, оранжевый, красный) LD1 (COM) предоставляет информацию о статусе ST-LINK подключения. Цвет LD1 по умолчанию красный. LD1 становиться зеленым, показывая, что в процессе осуществления подключения между ПК и ST-LINK/V2-1, в след за:
  • «Медленно мигающий красный» / «Выкл» — при включении питания до установки подключения по USB
  • «Быстро мигает красный» / «Выкл» — после первого правильного обмена данными между ПК и STLINK/V2-1 (процесс подключения)
  • «Красный светодиод включен» — если подключение между ПК и ST-LINK/V2-1 установлено
  • «Зеленый включен: подключение выполнено успешно или операция завершена коректно
  • „Мигающий красный“ / „зеленый“ — во время передачи данных.(Сам процесс прошивки)
  • „Оранжевый включен“: Сбой связи.


USER LD2: зеленый светодиод пользователя, светодиод подключен к Arduino контакту D13, соответствующий контакту ввода/вывода микроконтроллера PA5 (контакт 21) или PB13 (контакт 34)
  • Когда значение ввода/вывода(I/O) высокого значения, светодиод включен.
  • Когда значение ввода/вывода(I/O) низкого значения, светодиод выключен.


LD3 PWR: красный светодиод указывает, что часть с микроконтроллером питается и +5 В питание подается.

Кнопки

В1 USER: кнопка пользователя подключена к ввод/вывод PC13 (вывод 2) микроконтроллера STM32.
В2 RESET: эта кнопка подключается к NRST, и используется для сброса микроконтроллера STM32.

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


Перемычка JP6 (IDD)

Перемычка JP6, помечена IDD, используется для измерения потребления тока микроконтроллером, для этого удалите перемычку и, подключите амперметр.
  • Перемычка Включена: STM32 микроконтроллер питается (по умолчанию).
  • Перемычка ВЫКЛ: амперметр должен быть подключен для измерения тока микроконтроллера STM32. Если нет амперметра, STM32 микроконтроллер не питается.


Встроенный ST-LINK/V2-1

Внутрисхемный отладчик/программатор ST-LINK/V2-1 поддерживает только SWD для устройств STM32.
Изменения по сравнению с ST-LINK/V2 версией:
Новые возможности, поддерживаемые в ST-LINK/V2-1:
  • Драйвера USB перенумерованы
  • Интерфейс виртуального порта COM по USB
  • Интерфейс Устройства хранения данных по USB
  • USB менеджер питаниея

Особенности не поддерживаемые ST-LINK/V2-1:
  • SWIM интерфейс.(нужно для программирования STM8)
  • Минимальное поддерживаемое напряжение приложений ограниченно до 3 В

Режимы работы встроенного ST-LINK/V2-1:
Состояние перемычек Значение
обе CN2 перемычки одеты ST-LINK/V2-1 работает программируя микроконтроллер на плате (по умолчанию)
обе CN2 перемычки сняты ST-LINK/V2-1 работает программируя микроконтроллер по внешнему разъему CN4 (поддерживается SWD)

Распиновка разъема SWD:
Pin CN4 Значение
1 VDD_TARGET VDD для устройства
2 SWCLK SWD такт
3 GND Земля
4 SWDIO SWD ввод/вывод данных
5 NRST сброс программируемого МК
6 SWO Не используется


Разделение печатной платы

STM32 Nucleo печатная плата платформы делится на две части: ST-LINK часть и целевая MCU часть, которые можно разделить, чтобы уменьшить размер платы. В этом случае оставшиеся целевая MCU часть может питаться только по VIN, E5V и 3,3V на разъеме ST Morpho CN7 или VIN и 3,3 на Arduino CN6. При этом все еще можно использовать ST-LINK часть чтобы программировать главный микроконтроллер с помощью проводов между CN4 SWD и разъемах на ST Morpho (SWCLK CN7 пин-15 и SWDIO CN7 пин-13).

Режимы питания платы.

Источник питания осуществляется либо от компьютера через кабель USB или от внешнего источника: VIN (7В-12В), E5V (5 В) или +3V3 выводы питания на CN6 или CN7.
ST-LINK/V2-1 поддерживает питание платформы по USB, сам программатор при этом потребляет ток до 100 мА.

Вся плата STM32 Nucleo включая платы расширения может питаться от ST-LINK USB при условии что суммарный ток потребления не будет превышать 300мА (Включая потребление ST-LINK 100 мА) при выполнении этих условий красный светодиод LD3 включен и микро контролер работает. Если ток потребления выше, то необходимо использовать внешний источник питания для всего проекта или только для плат расширения (не забывая про общую землю).

Когда плата будет питаться от USB (U5V) перемычка должна быть подключена между контактами 1 и 2 JP5 в положение U5V. JP1 перемычка может быть установлена только в случае когда плата питается от USB и максимальное потребление тока на U5V не должно превышать 100 мА (в том числе всевозможные платы расширений или Arduino Shield).

VIN (7В-12В) или E5V (5В-5,5В) может использоваться в качестве внешнего источника питания в случае, когда ток потребления Nucleo и платами расширений превышает допустимый ток для USB. В этом состоянии все еще можно использовать подключение по USB, для программирования или отладки, но сначала обязательно подключите плату к источнику питания используя VIN или E5V, после чего подключите кабель USB к ПК.

При питании от VIN или E5V алгоритм включения питания должен соблюдаться:
  • Подключите перемычку между контактами 2 и 3 JP5.
  • Убедитесь, что JP1 удалена.
  • Подключите внешний источник питания к VIN или E5V.
  • Напряжение на внешнем источнике питания 7 V <VIN <12 В до VIN или 5 В для E5V.
  • Убедитесь, что LD3 включен.
  • Подключите ПК к разъему USB CN1.

Если этот порядок не соблюдается, то плата может питаться сначала по VBUS потом по VIN или E5V, при этом может выйти из строя порт USB на компьютере или возникнут глюки микроконтроллера (! То же самое относиться к кнопке сброса!)
Когда плата будет питаться от VIN или E5V, конфигурация перемычек должна быть следующая:
  • Перемычка на JP5 между pin 2 и pin 3.
  • Перемычка удалена на JP1.

Внешний источники питания:
Вход питания Контакты Разъемов Напряжение Ток Ограничение
VIN CN6 pin 8, CN7 pin 24 от 7V до 12V 800 mA 800 mA если Vin=7 V, 450 mA если 7 V<Vin (< или =) 9 V, 250 mA если 9 V<Vin (< или =) 12 V
E5V CN7 pin 6 от 4.75V до 5.25V 500 mA


(Собственно микро манул окончен. Можно выдохнуть и продолжить)

Для остальных достаточно запомнить что на плате есть перемычка JP5 и у нее есть два положения, питание микроконтроллера от USB (положение U5V не более 300mA) или от внешнего источника (E5V) питания например от 5 Вольт подключенных к CN7 (самые Левый разьем, контакты пин-6 E5V и пин-8 GND). Схема разъемов

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

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

Создание проекта программы в Mbed

На странице своего профиля в Mbed открываем страницу с нашей платформой, дальше используя картинки как помощь, делаем следующие:
(1) Открываем онлайн компилятор

(2-3) Создаем проект под названием „Blinky LED test for the ST Nucleo boards“ и нажимаем „OK“


(4 — 5) Открываем и компилируем бинарный файл (5).

После чего нам будет предложено сохранить это бинарник (процедура зависит от вашего браузера). Полученный бинарник мы просто копируем или перемещаем на сменный носитель Nucleo, причем если сразу после копирования обновить содержание сменного носителя то вы его уже не сможете увидеть, что свидетельствует что микро контроллер пере-прошит! (во время прошивки вы увидите как весело мигает светодиод LED_COM)


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

+29
43.8k 168
Comments 36
Top of the day