admin / 19.10.2018

Оценочная плата STM32F4 Discovery с STM32F407 | РОБОТОША

Знакомство с STM32VL Discovery

Для начального знакомства с контроллерами STM32 идеальным вариантом будет готовая отладочная плата. Так получилось, что я совершенно бесплатно заполучил платку STM32VL Discovery. Было время когда их раздавали бесплатно всем, кто изъявил желание её получить. Если покупать, то стоит она сравнительно не дорого, например в наших краях ~20$. Как правило любая отладочная плата (из всех что я видел) представляет собой непосредственно сам микроконтроллер, программатор подключенный к этому контроллеру и некоторый набор внешней периферии которая так же определённым образом подключена к контроллеру. И все это на одной платке. Под периферией подразумеваются различные кнопки, индикаторы, светодиоды и прочие ништяки 🙂 Надо отметить что в плане периферии эта платка очень бедна: Есть всего лишь 2 светодиода и одна кнопка (+ одна кнопка сброса но она не в счет). Для первого знакомства  достаточно, но если идти дальше а не только мигать диодом — то маловато будет и надо паять что-то своё или дорабатывать эту платку. Выглядит сама платка так: 

Присмотревшись, не сложно будет понять откуда взялся логотип для этого сайта 🙂  Начнем по порядку. Во-первых плата поделена на две части: Отладчик ST-LINK и непосредственно сам контроллер с обвязкой. Отладчик мне очень понравился: умет работать со многими (если вообще не со всеми) контроллерами STM32. Наружу выведен интерфейс SWD, этот интерфейс физически реализован в виде двух проводов, что весьма удобно. Это позволяет нам прошивать другие контроллеры STM32 при помощи этой платы. Перед прошивкой какого-либо внешнего контроллера необходимо снять две перемычки через которые отладчик соединен с программируемым контроллером на установленном на плате. Для удобства рядом с двумя контактами SWD есть еще земля и плюс питания. Кроме SWD есть еще JTAG, проводов там побольше и разъёма на плате нет. При желании можно подпаяться к контроллеру (который в отладчике), но смысла я в этом пока не вижу, так как через SWD отладка и программирование работают отлично. Кроме выполнения своих прямых функций, отладчик также обеспечивает питанием 3.3 вольта всю плату. Подключается к компьютеру через обычный mini-usb кабель который к сожалению в комплект не входил. У отладчика так же есть два светодиода, один показывает что на плату подается питание, а второй мигает во время любой активности. Переходим к оставшейся части платы: Самое главное в ней — это как ни странно контроллер 🙂 На плате установлен STM32F100RBT6B. Чип вполне нормальный, нет разве что USB что немного огорчает. Основные характеристики такие: Тактовая частота 24 МГц, 128 кб флеш памяти, 8 кб ОЗУ, наличие ADC, DAC, I2C, SPI, USART, RTC и некоторых других вещей со страшными названиями. Для первого знакомства — самое оно! Естественно голый чип, (пусть даже подключенный к отладчику и питанию) ни какого интереса не представляет по понятным причинам: Отработала зашитая вами программа, а результата не видно. Для взаимодействия с внешним миром у этого контроллера есть ноги, причем 51 нога  (из 64-х) может менять свое состояние по желанию программиста. Вот как раз к двум таким ногам подключены два светодиода — зелёный и синий, первое время тренироваться будем на них. Из «устройств вывода» это всё. Для того чтоб как-то воздействовать на выполнение программы есть одна кнопка (синяя). В программе можно определять её состояние (нажата или отпущена), а вот вторая кнопка служит для сброса контроллера. По сути дела, кнопка и пара светодиодов это все с чем может работать пользователь этой платы. После некоторого числа экспериментов возникнет желание подключить какой-нибудь дисплей, карту памяти, дополнительные кнопки или еще чего, но на первое время нам хватит этого. В плане подключения внешних устройств — плата довольно удобна, так как все выводы контроллера посажены на три гребёнки штырьков по бокам платы:

На счёт подключения дополнительное периферии — будут статьи. Еще очень важно обратить внимание на перемычку управляющую питанием. Если её снять то контроллер будет обесточен и соответственно работать ничего не будет. Удобно вместо перемычки подключать амперметр и смотреть на ток потребления, если конечно вы любознательный человек вроде меня 🙂 На плате так же имеются два кварца : на 32768 Гц и на 8 МГц. От последнего тактируется контроллер, причем кварц этот легко вынимается и заменяется на другой без всякой пайки, это если вдруг пользователю захочется скорости, но для большинства наших первых экспериментов хватит и 8 МГц. Второй кварц — часовой. Его наличие не обязательно, но он будет использоваться нами в экспериментах с часами реального времени. Но до этого еще далеко, а сейчас я предлагаю вам попробовать сделать что-то практическое с этой платкой.

P.S. Возможно пригодится схема STM32vl Discovery

STM32 — обзор плат Discovery

Компания ST раздаёт дешёвые отладочные платы для знакомства с их микроконтроллерами. Наверняка и вы начнёте с них — поэтому я рассмотрю основные платы Discovery, чтобы вы могли выбрать себе по вкусу.

STM32VLDiscovery

Самая первая плата семейства, раньше называлась просто STM32Discovery. Именно с неё началась экспансия ST на рынок дешёвых и мощных микроконтроллеров общего назначения, этим объясняется её неприлично низкая цена — демпинг цен на эту плату принёс ST прибыль в виде множества новых адептов.

Начинка

  • Отладчик — ST-Link, SWD-коннектор наружу
  • Процессор — STM32F100RBT6 (24МГц, 128кБ флеш, 48кБ RAM)
  • 2 кнопки — юзерская и резет
  • 2 светодиода
  • сменный (!) тактовый кварц
  • часовой кварц
  • 62 контакта на гребёнке выводов, из них 51 контакт ввода-вывода
  • перемычка для определения потребляемого тока

Как видим, довольно мощная плата. Вкупе с низкой ценой (а многие, как и я, получили её бесплатно на семинарах) она произвела настоящий фурор.

К плате прилагается множество примеров использования разной периферии, и неплохой «Master project», прошитый по умолчанию.

Скачать примеры для STM32VLDiscovery.

STM32F4Discovery

Очень сильная плата, как по мощности процессора так и по количеству периферийного оборудования. Процессор класса STM32F4 имеет высокую скорость работы, множество периферии вроде контроллеров памяти/дисплеев/камеры и всевозможными USB, CAN и прочими интерфейсами, а также полноценные модули FPU и DSP. Замечательный процессор, на нём сделано довольно много из моих приборов.

Начинка

  • Отладчик — ST-Link/V2 с расширенным SWD-коннектором
  • Процессор — STM32F407VGT6 (168МГц, 1МБ флеш, 192кБ RAM)
  • 2 кнопки — юзерская и резет
  • 4 светодиода
  • сменный тактовый кварц
  • 100 контактов на гребёнке, из них 80 контактов ввода-вывода
  • перемычка для измерения тока
  • MEMS-акселерометр LIS302DL
  • Цифровой микрофон MP45DT02
  • Аудио-АЦП CS43L22 с усилителем D-класса
  • micro-USB-коннектор

Конечно, стоит дороже — но и возможностей имеет куда больше. Прекрасная плата, удобная и мощная. В основном на ней я проводил эксперименты со звуком, с шинами CAN и USB, и акселерометром. Наличие DSP-ядра даёт возможность производить цифровую обработку аудиосигналов и навигации. Помимо перечисленной периферии, на кристалле присутствуют также модули вычисления CRC (контрольные суммы), HASH (хеш данных), CRYPT (криптография) и RNG (генератор случайных чисел).

Список прилагающихся примеров так же обширен. Из минусов — разве что не очень удобный micro-USB.

Скачать примеры для STM32F4Discovery.

STM32F3Discovery

Столь же хорошая плата, но с ещё более новым процессором серии STM32F3, и явной направленностью на навигационные применения и Sensor Fusion. Похоже, её сделали на росте популярности квадрокоптеров, которым нужен как раз такой набор датчиков положения. Также, видимо, инженеры услышали просьбы разработчиков и сделали USB в виде обычного mini-USB.

Начинка

  • Отладчик — ST-Link/V2 с расширенным SWD-коннектором
  • Процессор — STM32F303VCT6 (72МГц, 256кБ флеш, 48кБ RAM)
  • 2 кнопки — юзерская и резет
  • 8 светодиодов
  • 100 контактов на гребёнке, из них 86 контактов ввода-вывода
  • перемычка для измерения тока
  • MEMS-акселерометр/магнитометр LSM303DLHC
  • MEMS-гироскоп L3GD20
  • mini-USB-коннектор

По умолчанию прошит довольно интересный пример — магнитный компас, отображающий направление на север на светодиодном круге.

К возможностям процессора стоит добавить умножение за 1 такт и железное деление, модули вычисления CRC (контрольные суммы), HASH (хеш данных), CRYPT (криптография) и RNG (генератор случайных чисел), а также расширенные аналоговые возможности — 4 ОУ с изменяемым коэффициентом усиления, увеличенное количество (4 штуки) 12-бит АЦП и 7 компараторов. Это делает STM32F3 настоящим DSP, с отличным аналоговым интерфейсом.

На этой плате я также сделал довольно много приборов.

Скачать примеры для STM32F3Discovery.

STM32F0Discovery

Самая свежая отладочная плата — на младшем процессоре серии STM32F0.

Начинка

  • Отладчик — ST-Link/V2 с расширенным SWD-коннектором
  • Процессор — STM32F051R8T6 (48МГц, 64кБ флеш, 8кб RAM)
  • 2 кнопки — юзерская и резет
  • 2 светодиода
  • 66 контактов на гребёнке, из них 55 контактов ввода-вывода
  • перемычка для измерения тока

Эта плата интересна в первую очередь своей дешевизной и применением процессора из младшего семейства. Ведь даже самый слабый процессор ST/ARM всё равно во много раз мощнее привычных AVR и PIC, а стоит даже дешевле. Более того, здесь есть модули CRC, аналоговые компараторы и контроллер сенсорных кнопок.

Скачать примеры для STM32F0Discovery.

Р/л технология

Главная  Радиолюбителю  Р/л технология

Микроконтроллеры STM32 и отладочные платы для них


Уже много лет радиолюбители применяют восьмиразрядные микроконтроллеры семейств PIC и AVR. Они популярны благодаря низкой цене, наличию подробной документации, простоте программирования и лёгкости монтажа. Однако довольно часто бывают случаи, что мощности такого микроконтроллера для решения поставленной задачи недостаточно. Самый простой пример — частотомер или генератор сигналов на микроконтроллере, где максимальная измеряемая или генерируемая частота напрямую зависит от скорости обработки или вывода информации.

Помимо скорости, восьмиразрядные микроконтроллеры имеют и другие ограничения, например, во многих моделях AVR всего один аппаратный последовательный порт, что не позволяет получать информацию от внешнего устройства и одновременно пересылать результаты её обработки потребителю. Не говоря уже о таких «банальных» вещах, как вывод информации на графический индикатор, требующий больших ресурсов как скорости, так и памяти. После анализа ряда таких ограничений у автора возникла мысль о переходе на микроконтроллеры семейства STM32.

Для примера рассмотрим два микроконтроллера одной ценовой категории — STM32F103C6 и ATmega328P.

Таблица 1

Тип микроконтроллера

ATmeqa328P

STM32F103C6

Разрядность процессора

8

32

Корпус

TQFP32

LQFP4E

Шаг выводов, мм

0,8

0.5

Тактовая частота, МГц

20

72

Объём FLASH-памяти. Кбайт

32

32

Объём ОЗУ, Кбайт

2

10

Число USART

1

2

Число 16-разрядных таймеров

1

2

Число линий ввода-вывода

23

37

Ориентировочная цена, руб.

270

210

Их сравнительные параметры приведены в табл. 1. Результаты сравнения даже несколько удивляют. 32-разрядный микроконтроллер не только мощнее восьмиразрядного практически по всем параметрам, но при этом дешевле. Разумеется, паять микроконтроллер с шагом выводов 0,5 мм в домашних условиях не так-то просто. К счастью, в большинстве случаев этого и не требуется — на рынке имеется множество разновидностей отладочных плат с микроконтроллерами семейства STM32, достаточных для различных применений. Рассмотрим их более подробно.

STM32F4-DISCOVERY

Эта плата (она изображена на рис. 1), пожалуй, наиболее удобна для начинающих изучение микроконтроллеров STM. Во-первых, она имеет большой набор периферийных устройств. Помимо микроконтроллера, на плате установлены микроэлектромеханический акселерометр, микрофон, аудиоЦАП, два разъёма USB, кнопка и четыре светодиода.

Рис. 1

Выводы микроконтроллера выведены на контактные площадки для монтажа штыревых разъёмов у левого и правого краёв платы, что позволяет легко подключать к ним все необходимые внешние устройства. Установленный на плате микроконтроллер STM32F407VGT6 имеет весьма неплохие параметры: 1 Мбайт FLASH-памяти, 192 Кбайт ОЗУ и тактовую частоту 168 МГц.

И наконец, плата оборудована встроенным отладчиком ST-LINK/V2, который можно использовать для отладки программ не только на имеющемся на плате микроконтроллере, но и на микроконтроллерах того же семейства, находящихся на других платах. Переключение на них выполняется с помощью съёмной перемычки и разъёма SWD.

Цена платы — около 800 руб., что можно считать вполне приемлемым.

STM32F103RBT6 Development Board

Следующим интересным вариантом является отладочная плата с микроконтроллером STM32F103RBT6 (рис. 2).

Рис. 2

Он несколько слабее, чем установленный на предыдущей плате — тактовая частота 72 МГц, 128 Кбайт FLASH-памя-ти и 20 Кбайт ОЗУ, однако периферийные устройства весьма интересны. Имеются сенсорный TFT-экран с разрешением 320×240 пкс и диагональю 2.8', встроенный USB-порт для обмена информацией с компьютером, разъём для карты памяти SD, часовой кварц на 32768 Гц, отсек для элемента питания часов реального времени и разъём ST-LINK для отладки программ.

Цена этой платы также около 800 руб., но следует заметить, что встроенного отладчика на ней нет. Для загрузки программ необходимо либо приобрести отдельный отладчик ST-LINK, либо использовать вместо него рассмотренную выше плату STM32F4-DISCOVERY

Maple Mini

Бросается в глаза внешнее сходство этой платы (рис. 3) с широко известными модулями Arduino. И это не случайно.

Рис. 3

Плата Maple Mini и была разработана как замена Arduino Nano. Язык программирования и среда разработки для устанавливаемых в Arduino микроконтроллеров семейства AVR были адаптированы под семейство STM. На интернет-странице http://leaflabs.com/docs/maple-q uickstart.html можно найти подробную информацию о языке программирования и среде разработки Maple IDE.

Отладочная плата имеет микроконтроллер STM32F103CBT6, работающий на тактовой частоте 72 МГц, имеющий 128 Кбайт FLASH-памяти и 20 Кбайт ОЗУ, что, несомненно, больше, чем в любом модуле Arduino. И тем больший плюс, что среда разработки практически не изменилась.

Отдельно заметим, что несмотря на миниатюрные размеры, Maple Mini предоставляет весьма разнообразную периферию: 34 линии ввода/вывода, два интерфейсных канала SPI и два I2C, три последовательных порта. Это позволяет с успехом применять её в различных любительских разработках. Благодаря малым размерам Maple Mini может быть встроена непосредственно в разрабатываемое устройство.

Оригинальную плату Maple Mini можно приобрести за 35 долл. США на сайте её разработчиков. Ещё 5 долл. США будет стоить доставка. Копия платы, изготовленная в Китае, обойдётся вдвое дешевле.

Программное обеспечение

Существуют несколько вариантов сред разработки, которые можно использовать для подготовки программ для микроконтроллеров семейства STM32:

— коммерческие IAR Embedded Workbench, AtollicTrueSTUDIO, Keil и др. Эти полнофункциональные продукты довольно дороги, с ценой лицензии от 1000 евро, но имеются и демонстрационные бесплатные версии с ограничением на объём разрабатываемой программы, для большинства несложных проектов их вполне хватает;

— бесплатная Eclipse с компилятором ARM-GCC требует нетривиальной настройки компилятора перед использованием. Единственный плюс на сегодняшний день — возможность работы не только в Windows, но и в Linux;

— бесплатная CooCox IDE (CoIDE) на базе того же редактора Eclipse. Выполняет загрузку и отладку программ через ST-LINK. В отличие от предыдущего варианта, CoIDE не требует каких-либо специальных настроек и работает сразу же после установки. Этот вариант наиболее удобен, им и стоит воспользоваться.

Воспользуемся CooCox IDE для создания примера программы для платы STM32F4-DISCOVERY реализующей классическое для первой программы для любого микроконтроллера мигание светодиодов. На плате STM32F4-DIS-COVERY имеются четыре светодиода, подключены они к выводам PD12- PD15 микроконтроллера. Сделаем так, чтобы они мигали поочерёдно.

Шаг 1. Запускаем среду разработки CoIDE, создаём проект. Из выпадающего списка, показанного на рис. 4, выбираем микроконтроллер STM32F407VG.

Рис.

4

Шаг 2. Как показано на рис. 5, выбираем компоненты, которые будут использованы в проекте. Основные из них — это GPIO (ввод-вывод), С Library (базовые функции языка С) и M4 Core (функции ядра процессора). При активизации того или иного компонента CoIDE автоматически копирует нужные файлы в папку проекта, что очень удобно.

Рис. 5

Шаг 3. Ввод текста программы.

STM32F4Discovery в качестве SWD (ST-LINK/V2) программатора/отладчика

Он довольно короткий и приведён в табл. 2.

Как можно видеть, всё просто и очевидно. Те, кто писал программы для микроконтроллеров AVR, наверняка увидят знакомые конструкции — инициализацию портов с указанием направления (ввод или вывод), главный цикл, в котором выполняются нужные действия. В целом же синтаксис программы полностью соответствует языку С, литературы по которому более чем достаточно. Статей по программированию для STM32 в Интернете также немало. Много примеров поставляется вместе с отладочной платой, их тоже можно использовать как образцы.

После ввода текста программы нажатием на экранную кнопку «Download to flash» она загружается в микроконтроллер. Светодиоды на плате начинают мигать. Отдельно стоит отметить возможности отладки — в любом месте программы может быть поставлена точка останова, можно запускать программу по шагам, просматривая значения переменных.

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

Заключение

В целом, после первого знакомства микроконтроллеры семейства STM32 оставили весьма приятное впечатление. Всё оказалось не так сложно, а удобство среды разработки, процесса отладки и большое число стандартных функций чем-то даже напомнили переход от Ms DOS к Windows — общие моменты вроде те же, но все гораздо удобнее и функциональнее.

Но главным недостатком этого семейства для любительских разработок всё-таки остаётся слишком мелкий шаг выводов.

Спроектировать и спаять плату с шагом выводов 0,5 мм в домашних условиях — задача весьма нетривиальная. Но при существующих ценах каждому радиолюбителю вполне доступны отладочные платы с уже смонтированными микроконтроллерами.

Стоит ли переделывать всё на STM и 32-разрядную архитектуру? Конечно же, нет. Есть задачи, для решения которых и ATtiny вполне достаточно. Но, например, для анализа спектра в самодельном SDR-приёмнике или приёма- передачи больших объёмов информации по сети гораздо эффективнее сразу применить мощный микроконтроллер, чтобы не упереться в недостаток памяти или производительности при совершенствовании устройства.

Автор: Д. Елюсеев, г. Санкт-Петербург

Дата публикации: 10.10.2013

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному вышематериалу:

Редакция отказалась от публикации — публикация отказывается от Редакции. Выкладываю после небольшого редактирования; таких матералов при поисках в Сети мне не попадалось, пришлось разбираться самому.

Многоразрядные ЖКИ (например, используемые в телефонах (несотовых), калькуляторах, в дисплеях на панелях сложных приборов) конструктивно выполнены для применения динамической индикации. На таких индикаторах, кроме собственно цифр, имеются изображения других (служебных) символов; они, как правило, снабжены собственным контроллером, диалог с которым возможен по тому или иному стандартному протоколу. Можно ли использовать многоразрядные индикаторы без контроллера? Это случаи, когда протокол неизвестен (отсутствует та часть устройства, которая должна формировать сигналы индикации), или МК поврежден. Рассмотрим, как организована индикация в таком приборе.
В http://kulikova-nata.narod.ru/oldsite/articles/lcd/lcd.html , http://radvs.boom.ru/indicator.html есть описание принципа действия ЖКИ индикаторов вообще, а также рассмотрена конструкция мультиплексного индикатора. Двенадцатиразрядный индикатор такого типа применяется в калькуляторах «CITIZEN». Конструкция одного из разрядов такого индикатора показана на рис.1.

Все сегменты A, B, F всех 12 разрядов конструктивно объединены одним общим (прозрачным) электродом, вывод которого обозначен COM1. Сегменты C, E, G объединены электродом COM2, а D, «точки» каждого разряда и один для всех цифр знак «минус» (на рисунке не показан) — COM3. Каждое знакоместо имеет три вывода: объединены сегменты B, C, «точка» – вывод обозначен SEG3; A, G, D — вывод SEG2; и F, E, «минус» — SEG1. Таким образом, сформирована матричная структура, которой можно управлять. Электроды COM возбуждаются трёхуровневым сигналами, один цикл индикации составляет 6 тактов. В принципе, для включения всех сегментов достаточно первых трёх тактов (1, 2, 3), ещё три (4, 5, 6) нужны именно для организации знакопеременного напряжения на выводах индикатора. Как известно, возбуждение сегментов ЖКИ желательно производить переменным напряжением, при этом долговечность индикатора на порядок выше. Следовательно, сигналы управления также должны быть инвертированы.На временных диаграммах показаны сигналы, которые необходимы и достаточны для индикации всех возможных состояний индикатора. На диаграмме 4 показаны эпюры напряжений, которые, будучи поданы на выводы SEG1,2,3 приведут к гашению всех сегментов. Это состояние обозначено символом 0. Зажигание сегмента обозначено символом 1 и все восемь возможных вариантов приведены на диаграммах 4 — 11.

STM32F4Discovery в качестве SWD (ST-LINK/V2) программатора/отладчика

Если сигналы 9 — 11 будут поданы на выводы SEG так, как указано на рисунке, будет индицироваться цифра 0 (с децимальной точкой). Индицируемые сегменты выделены красным цветом, сегмент G и знак «минус» не индицируется, они обозначены черным цветом. Легко заметить, что включение егмента происходит только в те моменты, когда сигналы на выводах COM и SEG находятся в противофазе. Если сигналы синфазны, происходит гашение сегмента.
Кроме рассмотренного случая сегменты могут быть конструктивно объединены в другом сочетании. Разобраться несложно — неизвестный индикатор можно «прозвонить» простым, общеизвестным способом: достаточно прикоснуться жалом включенного в сеть паяльника к выводу прибора, как подключенные к нему сегменты будут видны на экране.
Встречаются индикаторы, имеющие два или четыре, а не три общих электрода. При этом цикл индикации будет равен четырём или восьми тактам соответственно. Очевидно, что схему управления мультиплексными индикаторами лучше всего делать на микроконтроллерах. Собирать схему на простой логике неоправданно по причине трудоёмкости и увеличения габаритов изделия.

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*