Урок 1. Введение. Общие сведения, скорее впечатления, об STM32.

Уроки STM32

Вводная статья курса уроков по программированию микроконтроллеров STM32.

Список уроков     Следующий урок

Этой статьей начинаю цикл уроков, посвященных программированию микроконтроллеров STM32.

 

Тема очень интересная, по популярности может превзойти ”Уроки Ардуино”. В принципе, это в какой-то степени продолжение или расширение ”Уроков Ардуино”. По крайней мере, я собираюсь постоянно ссылаться на статьи из этой рубрики, проводить аналогию между ними и уроками STM32.

Я не призываю бросать программировать на Ардуино и переходить только на STM32. Но есть задачи, которые на Ардуино выполнить невозможно или намного сложнее. Да и разве плохо уметь создавать системы, устройства на обоих типах микроконтроллеров.

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

Много информации уже есть на сайте. Например, зачем мне заново рассказывать про технологию клиент-сервер, если в рубрике ”Уроки Ардуино” есть статья об этом.

Контроллеры STM32 значительно превосходят по техническим характеристикам платы Ардуино на 8 разрядных микроконтроллерах ATmega328, ATmega2560 и т.п. У них более высокая производительность, больше объем памяти, периферийные устройства разнообразнее по функциям, номенклатуре, количеству. STM32 позволяют реализовывать значительно более сложные задачи, чем платы Ардуино.

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

Уроки рассчитаны как на опытных программистов, изучающих STM32, так и на людей, делающих первые шаги в программировании. Т.е. я собираюсь приводить строгую информацию и сопровождать ее подробными пояснениями. Для второй категории читателей я буду давать ссылки на аналогичные темы в ”Уроках Ардуино”. Не хочется одно и то же ”разжевывать” несколько раз.

Буду преподносить оптимальный с моей точки зрения подход к программированию STM32. Кто-то может с ним не согласиться.

Итак. Я ставлю цель:

  • научить вас практическому программированию микроконтроллеров STM32;
  • расширить ваши знания в области программирования на языке C++, конечно у кого их не хватает;
  • представить строгую техническую информацию о контроллерах STM32 на русском языке;
  • какая-то часть уроков будет посвящена аппаратной части, подключаемой к микроконтроллеру.

 

Общие сведения о микроконтроллерах семейства STM32.

Возможности контроллеров STM32 потрясают! По крайней мере, меня.

Плата с микроконтроллером STM32F103C8T6 по стоимости сопоставима с ценой плат Ардуино на базе ATmega328 и значительно дешевле плат типа Arduino Mega2560.

По моей партнерской ссылке она стоит всего 175 руб.

Отладочная плата STM32F103C8T6

Но по техническим характеристикам! Что стоит только сравнение разрядности обрабатываемых данных. 32 против 8!

У меня ощущение, что я сравниваю Ардуино не с маленькой дешевой платой, а с дорогим монстрообразным 32 разрядным контроллером. Судите сами.

Параметры STM32F103C8T6 Arduino Nano
Разрядность 32 бит 8 бит
Частота 72 мГц 16 мГц
Объем FLASH 64 кБайт 32 кБайт
Объем ОЗУ 20 кБайт 2 кБайт
Число выводов 37 22
Аппаратное умножение и деление Есть, 32 разряда Только умножение, 8 разрядов
АЦП 2 АЦП, 12 разрядов, 10 входов, 1 мкс время преобразования 10 разрядов, 8 входов, 100 мкс время преобразования
Контроллеры прямого доступа к памяти 7 каналов нет
Таймеры 7 3
UART 3 (выше скорость, больше режимов) 1
I2C 2 1
SPI 2 1
USB 1 нет
CAN 1 нет
Часы реального времени есть нет
Модуль аппаратного расчета CRC кода есть нет

К этому можно бесконечно добавлять с приставкой ”гораздо более мощные, совершенные, функциональные”: система прерываний, порты ввода-вывода, коммуникационные интерфейсы и т.п.

И это еще далеко не самый мощный вариант STM32. У меня есть плата STM32F407VET6 с частотой 210 мГц и АЦП со скоростью преобразования до 7,2 миллионов выборок в секунду. Собираюсь на ней сделать динамическую подсветку телевизора, т.е. обрабатывать видеосигнал.

Плата STM32F407VET6

 

 

Техническая документация.

Я не буду пересказывать общую информацию о микроконтроллерах STM32. Советую вам просмотреть книжку “Мартин М. Инсайдерское руководство по STM32”, чтобы иметь общее представление о STM32. Я не стал давать ссылку. Не знаю, как обстоят дела с авторским правом на этот документ. Но найдете без труда. Подробно компоненты и узлы STM32 будем изучать в уроках.

Из строгой официальной документации надо иметь:

Все документы на английском языке, с официального сайта STMicroelectronics, но все что будем использовать, я распишу на русском.

 

В следующем уроке рассмотрим нашу базовую плату STM32, добавим к ней узлы для загрузки программ из компьютера во FLASH-память микроконтроллера.

Список уроков     Следующий урок

0

Автор публикации

не в сети 1 день

Эдуард

74
Комментарии: 1405Публикации: 152Регистрация: 13-12-2015

4 комментария на «Урок 1. Введение. Общие сведения, скорее впечатления, об STM32.»

  1. Здравствуйте Эдуард! Учился по вашим урокам Ардуино. За них большое спасибо. Давно уже хотел перейти на СТМ, но долго не мог сдвинутся с места. В нете столько разной информации. И вот у вас увидел уроки СТМ. Я в полном восторге. Наконец-то! Спасибо.

    1
  2. Спасибо, Эдуард за отличные популярные статьи!

    Добавьте пожалуйста в сравнение отсутствие EEPROM у STM, и проблемы, которые при этом надо учитывать при использовании обновляемых, при эксплуатации устройства констант(например коэффициенты ПИД, пресеты температуры, термостата и т.д.)

    1
    • Отсутствие EEPROM у STM32 в том виде, как это есть у AVR, не вызовет проблем при эксплуатации, о которых Вы говорите. Для хранения периодически изменяемых при эксплуатации констант используется часть пзу, не занятая основной программой контроллера (прошивкой). В STM32 имеется механизм, позволяющий переписывать часть пзу прямо из программы пользователя. Правда есть неудобство, связанное со страничной организацией памяти — при перезаписи сначала стирается и затем заново записывается целая страница памяти.

      0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *