Чтение документации необходимо не только для изучения внутренней структуры устройства и его особенностей, а и для сравнения устройств между собой, выяснения факта их совместимости и взаимозаменяймости. Каждая компания организовывает структуру технической документации на свои изделия по-своему. В этом посте я расскажу про мой опыт чтения документации по контроллерам STM32 фирмы St и её поиск на сайте st.com.


Для примера рассмотрим конкретный контроллер STM32F103CBT6, по запросу в гугле или поиске на st.com получаем страницу:

stm32f103cbtpagest(1).jpg

В верху подчёркнута иерархия устройств. Снизу подчёркнута ссылка на даташит на линейку (какие есть даташиты рассмотрим ниже).

Семейство STM32

Страница семейства:

stm32family.jpg

Как видим ST предлагает много серий Cortex M3, среди которых есть серии с низким потреблением (STM32L1), есть с встроенными радиомодулями (STM32W), есть суперпроизводительные (STM32F2), но наибольшей популярностью пользуются меинстримовые STM32F1.

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

Серия STM32F1

Страница серии:

stm32F1Ser.jpg

Возможны такие линейки:

  • STM32F100 Value Line - самая дешевая и слабенькая линейка. Работают на частоте не больше 24 МГц
  • STM32F101 Mainstream Access line - меинстримовая доступная линейка. В линейке есть контроллеры с большими объемом памяти, работает на частотах до 36 МГц.
  • STM32F102 Mainstream USB Access line - это уже покруче. Тут есть аппаратный USB и параметры получше. Ядро тактируется частотой до 48 МГц
  • STM32F103 Mainstream Performance line - производительная линейка. Тут есть даже CAN, есть USB и частота аж до 72 МГц.
  • STM32F105 Mainstream Connectivity line - нужен Ethernet контроллер в одном чипе с ARM Cortex ядром? Тогда эта линейка для вас.

Линейка "performance line" STM32F103

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

stm32f103valuline.jpg

По приведённой диаграмме можно понять маркировку:

Представим обозначение так: STM32F103<pin_count><flash_size>

<pin_count> - символ указывающий на количество пинов корпуса:

  • T - 36, QFN
  • - 48, LQFP/QFN
  • R - 64, BGA/CSP/LQFP
  • V - 100, LQFP
  • Z - 144, BGA/LQFP

<flash_size> - символ указывающий на размер flash:

  • 4 - 16 Кбайт
  • 6 - 32 Кбайт
  • 8 - 64 Кбайт
  • B - 128 Кбайт
  • С - 256 Кбайт
  • D - 384 Кбайт
  • E -512 Кбайт
  • F - 768 Кбайт
  • G - 1024 Кбайт

Всего бывает 4 вида данной линейки:

  • Medium-density performance line (или Mainstream Performance line) - Линейка со средней плотностью производительности, самая распространённая, и рассматриваемый МК относится именно к этой линейке
  • Low-density performance line
  • High-density performance line
  • XL-density performance line

Чем они отличаются видно по такой таблице (показаны только три первых вида линейки):

stm32familycapib(1).jpg

Стоит отметить что все 4 вида линейки совместимы между собой по пинам и программно: можно изготовить устройство с каким-нибудь STM32F103R4T (16 Кбайт флеша, 64 ноги LQFP), потом при увеличении функционала понять что 16 Кбайт вам недостаточно и взять пожирнее STM32F103RDT  (384 Кбайт флеша, 64 ноги LQFP), и просто перепаять! То есть совместимость что называетсвя Pin-To-Pin да и программу, которая была зашита в старый МК можно просто переписать в новый - она должна работать!

В разделе Datasheet слева находятся 4 даташита, каждый на линеку, собственно один из них, нужный вам, можно будет скачать и на странице нужной линейки.

В разделе Programming Manual  есть полезные документы по программированию, а именно:

  • PM0075 (STM32F10xxx Flash memory microcontrollers)
  • PM0056 (STM32F10xxx/20xxx/21xxx/L1xxxxCortex-M3 programming manual)

Также будет полезным скачать Reference Manual (справочное руководство): 

  • RM0008 (STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs)

Вид линейки "Medium-density performance line"

Страница вида линейки показана на первой картинке поста.

Даташит на вид линейки выглядит так:

stm32f100xc.jpg

Из названия даташита видно что он описывает все устройства STM32F103x8 и STM32F103xB, где х может иметь разные значения. Эти два шаблона и определяют Medium-density performance line.

Ну и напоследок вот маркировка, данная в даташите:

stm32mark(1).jpg