STM32: Урок 3 — Документация


При работе с микроконтроллерами STM32, и не только с ними, часто нужно заглядывать в документацию, чтобы найти какие-либо сведения (captain mode on). Для продуктивной работы с ней нужно хорошо представлять себе, где её найти, а также где в ней найти нужную информацию. Вот об этом я вам и расскажу.

Посмотрим, что покажет нам компания ST Microelectronics по микроконтроллеру STM32F100RBT6B, установленному на плате STM32VLDiscovery. Поиск по сайту даёт эту страничку, на которой мы видим небольшое описание МК этой серии, а также ссылку на даташит:

Тут сразу первый нюанс: у ST нет тучи даташитов на каждый кристалл отдельно, так что этот даташит содержит, по большей части, особенности всей серии STM32F100: описание доступной периферии, распиновка МК в различных корпусах, электрические характеристики — включая потребление каждого периферийного модуля отдельно.

С характеристиками, с моей точки зрения как программиста, не всё прозрачно — к примеру, я долго разбирался, как же узнать максимальный допустимый ток через пины кристалла, но так и не нашёл нужной информации. Возможно, впрочем, что это я такой невнимательный/лентяй (выберите на свой вкус), но я нашёл только рекомендацию не врубать за раз больше 20 пинов с потреблением в 8 мА или не больше 8 пинов с 20 мА, да максимальную рассеиваемую мощность. Кстати, согласно её величине, вышеприведённый совет годится разве что для камикадзе, т.к. максимальное найденное значение равно 444 мВт, что при 3.3 В составляет 134 мА и уж никак не прокормит 20 светодиодов похлёбкой потоком 8 мА на рыло. Ну да ладно, с остальным в даташите всё прекрасно, на мой взгляд (:

Внизу даташита, в разделе Ordering information scheme приведена схема именования моделей МК:

Согласно схеме, STM32F100RBT6B имеет 64 вывода, 128 КБ Flash-памяти для кода (это у ST зовётся medium density), корпус LQFP, а также диапазон рабочих температур от -45 до 100℃.

Но самая интересная и обширная информация поджидает нас на сайте в разделе Design support — там-то интересных PDF’ок куда больше, и они лежат там аккуратненько, по разделам.

APPLICATION NOTES

«Заметки по применению», они же просто апноуты (слово уродское, но удобное). Это такие рекомендации насчёт того, как следует делать те или иные вещи с STM32: там и про подбор кварца, и про режимы загрузки МК, защиту от электромагнитных воздействий, использование АЦП, генерацию звука через ЦАП, про использование прочей периферии и т.д. В общем, апноуты обязательны к прочтению, если собираетесь делать серийное устройство.

ERRATA SHEETS

Описание аппаратных ошибок и шероховатостей. Весьма желательно прочитать разработчикам серийных устройств, дабы избежать трепания нервов потребителю и долгих сеансов отладки, когда, вроде бы, код написан идеально и схема выверена, а МК глючит вопреки здравому смыслу. Хотя, инженеры в ST не пальцем деланы, и ошибки там обычно в духе: «Если стоя спиной к северу, трижды обернуться вокруг своей оси с ведром на голове, держа в руке скульптуру Ленина, сделанную из обеднённого урана, после чего прочитать вслух первые две строчки любого стихотворения Маяковского задом наперёд — испортится содержимое регистра-указатель стека».

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

PROGRAMMING MANUALS

Здесь лежат два документа. STM32F100xx value line Flash programming описывает программирование (запись) Flash-памяти МК, это обычно нужно разработчикам отладчиков и софта для прошивки. А вот второй — STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual — полезен для всех, т.к. описывает программирование МК на уровне машинных команд и ассемблера, все регистры, включая периферийные, весь набор инструкций. Очень полезный документ для любого, кто программирует с STM32 что-то сложнее мигалки светодиодом, особенно с активным использованием прерываний, и просто незаменимый для разработчиков компиляторов и эмуляторов, и для прочих адептов технохардкора и байтокопов, к коим относится и ваш покорный слуга. Перед сном лучше не читать.

REFERENCE MANUALS

Тут лежит здоровенный талмуд (более 650 страниц) со подробнейшей информацией по серии STM32F100xx для разработчиков софта. Описаны архитектура МК, все регистры, их биты, все функции МК, периферия. Для нас этот документ — основной, как свод законов для юриста.

TECHNICAL NOTES

Как ни странно, здесь про софт для разработки, причём исключительно про коммерческий, φ. Ничего интересного там нет.

USER MANUALS

Руководства по использованию различных технологий: библиотеки-фреймворка для работы с периферией (CPAL), библиотеки для управления моторами, оригинальной прошивки платы STM32100B-EVAL. Информация весьма специфическая, и вряд ли понадобится нам.

That’s all, folks
Теперь вы знаете, куда идти, если вас пошлют аббревиатурой RTFM, и мы можем перейти к изучению GPIO.


0 комментариев на «“STM32: Урок 3 — Документация”»

  1. Пока изучаю, все больше прихожу к выводу: хоть документации и туча, она хорошо представлена и структурирована. А один мануал на все камни — так вообще подарок, особенно сводные таблицы по регистрам. Прочитать про то, что нужно, врубиться, а потом сводные таблицы просто распечатать и в папку.
    Может еще часик потратить и раскрасить их для читабельности?:)

    • Проги для просмотра PDF поддерживают оглавление, закладки и поиск — это гораздо удобнее, чем макулатура. И не забывайте, что иногда документация обновляется, и обновлённые версии выкладываются на сайт. Мой вам совет — не тратьте время и деньги на распечатку (:

    • В ообщем — да. Но я очень сильно сомневаюсь, что ST решатся изменить названия регистров. А общение с МК в основном и сводится к забиванию нужных бит в нужные регистры. Я пробовал печатать подобные вещи под AVR, но там в разных камнях регистры отличаются. Оказалось проще pdf-ки нужные смотреть. А в STM32, как я понимаю, везде одни.

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

  2. В документации меня заинтересовал документ «Implementing receivers for infrared remote control protocols using STM32F10xxx microcontrollers» и там в примерах упоминаются библиотеки для rc5 и sirc, но где взять эти библиотеки почему-то не сказано. В стандартной библиотеке периферии я такого не нашел. Гуглил и искал по сайту stm.com, но ничего не нашел. Может быть я что-то неправильно понял и не там ищу, подскажите, пожалуйста.

  3. Зарегился, только чтобы сказать, автор — спасибо за статьи! Для новичка, вроде меня, очень экономят время на то, чтобы начать работу с STM32.

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

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение