STM32G4 – следующий этап развития семейства STM32F3

27 июля

управление питаниемпотребительская электроникалабораторные приборыуниверсальное применениеST Microelectronicsстатьяинтегральные микросхемыARMCortex-M4DSPSTM32G4STM32F390 нм

Вячеслав Гавриков (г. Смоленск)

С начала выпуска микроконтроллеров STM32F3 прошло 8 лет. Изменились как технологии, так и потребности рынка. Понимая это, компания STMicroelectronics разработала новое семейство микроконтроллеров STM32G4 для систем со смешанными сигналами. Эти микроконтроллеры превосходят своих предшественников из семейства STM32F3 по уровню быстродействия, богатству периферии и при этом обеспечивают более низкий уровень потребления.

Ранее в статье «STM32G4 – новый флагман микроконтроллеров общего назначения ST» выполнялся обзор основных особенностей семейства STM32G4 [1]. В данной статье проводится сравнение архитектуры, производительности и периферии семейств STM32G4 и STM32F3.

Прежде чем начать сравнение STM32G4 и STM32F3, необходимо сделать несколько важных замечаний. Во-первых, не стоит рассматривать семейство STM32G4 как «убийцу» семейства STM32F3. Дело в том, что ST продолжит выпускать микроконтроллеры STM32F3 еще как минимум 10 лет [2]. Поэтому перевод проектов с STM32F3 на STM32G4 не является сверхсрочной задачей, особенно в тех случаях, когда возможностей STM32F3 хватает.

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

В-третьих, сравнение STM32G4 и STM32F3 оказывается не такой простой задачей, так как в каждом из семейств есть отдельные линейки, которые значительно отличаются друг от друга набором периферии и другими характеристиками. Например, таймер высокого разрешения HRTIM появился уже в линейке STM32F304, однако по количеству АЦП эти микроконтроллеры уступают STM32F303. С другой стороны, линейка STM32F3x8 имеет рабочее напряжение 1,8 В, в то время как для остальных линеек STM32F3 рабочее напряжение начинается с 2,0 В. По этой причине в большинстве случаев характеристики семейств рассматривались на примере наиболее продвинутых микроконтроллеров из семейств STM32F3 и STM32G4.

Производительность

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

Семейство STM32G4 обеспечивает повышенную производительность, по сравнению с STM32F3. Это стало возможным благодаря целому ряду усовершенствований (таблица 1). Рассмотрим их подробнее.

Таблица 1. Сравнение вычислительных возможностей STM32G4 и STM32F3

Параметр STM32 F3 STM32 G4
Техпроцесс 180 нм 90 нм
Процессорное ядро Cortex-M4 Cortex-M4
Максимальная рабочая частота, МГц 72 170
Пиковая производительность 90 DMIPS/245 CoreMark 213 DMIPS/550 CoreMark
Организация памяти Flash Один банк Один/два банка
Возможность параллельного чтения-записи данных во Flash (Data Flash with RWW) + (благодаря двум банкам Flash)
CCM-SRAM, кбайт до 16 до 32
Ускоритель ART +
Математический сопроцессор CORDIC +
Ускоритель FMAC +
Мультиплексор DMA (DMAMUX) +
Матрица межсоединений периферийных блоков (Peripheral interconnect matrix) + + (более развитая)

Увеличение тактовой частоты

Максимальная тактовая частота процессорного ядра в STM32F3 составляла всего 72 МГц. Это самый скромный результат среди всех высокопроизводительных семейств STM32. Даже у STM32F2 с ядром Cortex-M3 она составляла 120 МГц. Такое ограничение объясняется сразу несколькими причинами.

Дело в том, что несмотря на использование сверхсовременного (на тот момент) ядра Cortex-M4F, для производства STM32F3 применялся техпроцесс 180 нм. В результате увеличение тактовой частоты было ограничено с точки зрения выделяемой мощности и, что более важно – стабильности.

Таким образом, для увеличения частоты требовался более совершенный техпроцесс, что и было сделано. В отличие от STM32F3, в STM32G4 используется технология 90 нм. Переход на новый техпроцесс позволил уменьшить потребление, снизить напряжение питания, увеличить уровень интеграции, обеспечить стабильную работу на повышенных частотах. Об эффективности перехода на новый техпроцесс можно судить по данным, предоставляемым разработчиком ядра – компанией ARM [3]. В результате частота ядра в STM32G4 была увеличена практически вдвое – до 170 МГц. 

Аппаратный ускоритель ART

Рост тактовой частоты не всегда обеспечивает повышение производительности, причина —  использование медленной Flash. При работе быстрого процессора с медленной Flash возникают циклы задержки, которые съедают львиную долю положительного эффекта от увеличения частоты. В статье «STM32G4 – новый флагман микроконтроллеров общего назначения ST» [https://www.compel.ru/lib/138282] этот вопрос рассматривался более подробно.

Часть проблем с медленной Flash можно решить за счет использования ускорителей, таких как ART. Суть работы ART заключается в том, что он предварительно вычитывает данные из Flash. При необходимости выборки данных или команд процессор сначала обращается к содержимому ART. Если нужных данных у ускорителя нет, то инициируется чтение из Flash. Очевидно, что при выполнении линейного кода такой подход позволяет избежать циклов ожидания и существенно увеличить производительность.

Впервые аппаратный ускоритель ART был реализован в высокопроизводительном семействе STM32F2 с ядром Cortex-M3, что позволяло ему эффективно работать с частотой до 120 МГц. Однако в семействе STM32F3 ускоритель отсутствовал. В STM32G4 этот пробел был заполнен. Благодаря ART, производительность процессорного ядра остается практически постоянной вплоть до 170 МГц (рисунок 1).

Рис. 1. Зависимости производительности STM32G4 от частоты

Рис. 1. Зависимости производительности STM32G4 от частоты

CCM SRAM

Во всех семействах STM32 для размещения критичных с точки зрения времени выполнения приложений предлагается использовать не Flash, а более быструю RAM-память (рисунок 2). В STM32F3 для дополнительного ускорения работы была добавлена независимая память CCM SRAM, которая имеет возможность прямого обмена с ядром по шинам D-bus и I-bus. Это позволяет использовать обычную SRAM-память для хранения кода и CCM SRAM для хранения данных. Параллельное использование этих блоков памяти обеспечивает существенный прирост производительности (рисунок 1).

По сравнению с STM32F3, в STM32G4 объем CCM SRAM был увеличен с 16 до 32 кбайт. 

Математический ускоритель CORDIC

В соответствии cо спецификацией ARM, процессорное ядро Cortex-M4 может иметь опциональный блок вычислений с плавающей точкой FPU. Такой блок есть в составе как STM32F3, так и STM32G4. Благодаря FPU, эти микроконтроллеры могут эффективно вычислять различные математические функции: синус, косинус и так далее. Расчет этих функций выполняется при непосредственном участии процессорного ядра. Для дополнительного ускорения вычислений в STM32G4 был добавлен математический сопроцессор CORDIC, который позволяет рассчитывать наиболее популярные функции (таблица 2).

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

Таблица 2. Функции, реализованные в CORDIC

Функция Первый аргумент (ARG1) Второй аргумент (ARG2) Основной результат (RES1) Дополнительный результат (RES2)
Косинус Угол θ Модуль m m×cos θ m×sin θ
Синус Угол θ Модуль m m×sin θ m×cos θ
Фаза x y atan2(y,x) √x2 + y2
Модуль x y √x2 + y2 atan2(y,x)
Арктангенс x tan-1 x
Гиперболический косинус x cosh x sinh × x
Гиперболический синус x sinh x cosh × x
Гиперболический арктангенс x tanh-1 x
Натуральный логарифм x ln x
Квадратный корень x √x

Ускоритель FMAC

FMAC (Filter Math Accelerator) – еще один ускоритель, который отсутствовал в STM32F3 и появился в STM32G4. FMAC позволяет реализовать цифровые фильтры ЧИХ и БИХ, выполнять операции свертки и корреляции. FMAC дополнительно разгружает процессор от выполнения рутинных операций.

В составе FMAC присутствует аппаратный умножитель 16х16, 24-битный аккумулятор, выполняющий сложение и вычитание, собственная память 256х16 бит. В памяти могут быть определены буферы входных и выходных данных.

Мультиплексор DMA (DMAMUX)

Семейство STM32G4 унаследовало несколько удачных архитектурных элементов от поздних семейств STM32. В частности, мультиплексор DMA (DMAMUX).

В семействе STM32F3 были реализованы обычные контроллеры прямого доступа к памяти DMA1 и DMA2, которые подключались к системной матрице шин и принимали запросы напрямую от периферийных устройств. Контроллер DMA1 имел семь каналов, а контроллер DMA2 – пять. К каждому каналу DMA подключалось несколько линий, объединенных по схеме ИЛИ (рисунок 2). Таким образом, источники запросов прямого доступа к памяти были жестко привязаны к каналам DMA, а их аппаратный приоритет был жестко задан.

Рис. 2. Распределение каналов DMA1 в STM32F334xx

Рис. 2. Распределение каналов DMA1 в STM32F334xx

В STM32G4 число каналов каждого из контроллеров DMA1 и DMA2 было увеличено до 8. Кроме того, запросы прерываний в них поступают не напрямую от периферийных и системных блоков, а проходят через мультиплексор DMAMUX (рисунок 3). DMAMUX имеет 115 входов от периферии, что позволяет принимать DMA-запросы практически от всех периферийных и системных блоков микроконтроллера и перенаправлять их на произвольный канал DMA1 и DMA2. Такое решение было успешно опробовано в предыдущих семействах STM32 и доказало свою эффективность в ускорении обмена данными внутри микроконтроллера.

Рис. 3. Подключение мультиплексора DMAMUX к DMA1 и DMA2 в STM32G4

Рис. 3. Подключение мультиплексора DMAMUX к DMA1 и DMA2 в STM32G4

Матрица межсоединений периферийных блоков (Peripheral interconnect matrix)

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

Вот лишь самые очевидные преимущества использования матрицы межсоединений:

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

Очевидно, что чем больше внутренних связей будет реализовано внутри контроллера, тем более гибким и универсальным он станет. Это особенно актуально для схем со смешанными сигналами, так как трассировка аналоговых сигналов в шумном цифровом окружении является чрезвычайно сложной задачей. Наличие встроенных аналоговых компонентов, таких как АЦП, ЦАП, ОУ, компараторы, и развитой матрицы межсоединений является обязательным условием эффективного и гибкого решения.

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

Потребление

В последнее время появляется все больше приборов с аккумуляторным питанием. Однако даже устройства, работающие от сети, должны демонстрировать высокую эффективность. По этой причине компания STMicroelectronics старается достичь максимальной эффективности каждого нового семейства STM32.

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

Новый техпроцесс

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

Динамическая мощность, потребляемая КМОП-ячейкой, зависит от входной емкости, величины питающего напряжения и рабочей частоты (формула 1):

$$P_{d}=C\times V^2\times f,\qquad{\mathrm{(}}{1}{\mathrm{)}}$$

где:

  • С –входная емкость;
  • V – напряжение питания;
  • f – рабочая частота.

Очевидно, что при переходе с техпроцесса 180 нм на техпроцесс 90 нм уменьшаются габариты элементарных транзисторов, что приводит к уменьшению емкостей, а значит – и к снижению динамического потребления.

С другой стороны, использование более совершенного техпроцесса позволяет работать с более низкими значениями рабочего напряжения. По данным компании ARM, переход с техпроцесса 180 нм на техпроцесс 90 нм и уменьшение рабочего напряжения с 1,8 до 1,2 В снижает уровень потребления процессорного ядра Cortex-M4 в несколько раз: со 151 мкВт/МГц до 32,82 мкВт/МГц (таблица 3). Разумеется, при разработке STM32G4 компания ST использовала это преимущество, переведя цифровой домен на рабочее напряжение 1,2 В (VCORE), в то время как у STM32F3 оно составляло 1,8 В.

Таблица 3. Характеристики потребления и площадь, занимаемая ядром Cortex-M4, при использовании различных техпроцессов [3]

Параметр Техпроцесс
180 нм 90 нм 40 нм
7-track, тип 1,8 В, 25°C 7-track, тип 1,2 В, 25°C 9-track, тип 1,1 В, 85°C
Динамическая мощность, мкВт/МГц 151 32,82 12,26
Площадь, занимаемая на кристалле, мм2 0,44 0,119 0,028

Очевидно, что при переходе на новый техпроцесс снизилось потребление не только ядра, но и периферии (таблица 4).

Таблица 4. Сравнение потребления некоторых периферийных блоков STM32G4 и STM32F3

Блок Потребление, мкА/МГц
STM32F334 STM32G484
Range 1
Boost mode
Range 1
Normal mode
Range 2 Low-power Run
и sleep
GPIOA 8,7 0,09 0,08 0,07 0,14
GPIOB 8,4 0,1 0,09 0,07 0,03
GPIOC 8,4 0,1 0,09 0,08 0,03
GPIOD 2,6 0,06 0,06 0,03 0,05
DMA1 8,0 2,83 2,64 2,17 2,75
ADC1 17,4 6,24 5,8 4,77 5,88
DAC1 15,4 4,7 4,38 3,63 4,4
TIM1 32,3 10,85 10,13 8,4 9,93
USART1 20,3 2,49 2,31 1,91 2,49

Развитие системы питания

Микроконтроллеры STM32F3 используют диапазон рабочих напряжений 2,0…3,6 В. Внутри контроллера присутствует встроенный регулятор, который понижает входное напряжение до 1,8 В для питания цифровой части микросхемы (VCORE).

В STM32G4 цифровой домен работает с напряжением не 1,8 В, как в STM32F3, а 1,2 В. Благодаря этому диапазон рабочих напряжений был расширен до 1,7…3,6 В. В STM32G4 есть сразу два встроенных регулятора MR (Main Regulator) и LPR (Low-power Regulator). Внедрение LPR позволило реализовать сразу несколько дополнительных режимов пониженного потребления (таблица 5). Кроме того, регулятор MR может работать в трех режимах: нормальном Range 1 Normal mode (с выходным напряжением 1,2 В), в высокопроизводительном режиме Range 1 Boost mode (с выходным напряжением 1,28 В), в режиме пониженного потребления Range 2.

Выбор режима работы MR позволяет находить компромиссное соотношение между потреблением и производительностью:

  • Range 1 Boost mode – максимальная производительность, частота до 170 МГц, потребление максимальное;
  • Range 1 Normal mode – частота ядра до 150 МГц, потребление среднее;
  • Range 2 – частота ядра до 26 МГц, потребление минимальное.

Из таблицы 4 видно, что при переходе от Range 1 Boost mode к Range 2 потребление отдельных периферийных блоков существенно уменьшается.

Расширение числа режимов пониженного потребления

Благодаря развитию системы питания у STM32G4 появились сразу несколько новых режимов пониженного потребления по сравнению с STM32F3. Речь идет о режимах LPRun, LPSleep, Stop 1 (таблица 5). Кроме того, активный режим Run имеет сразу три подрежима, соответствующих состоянию регулятора напряжения: Range 1 Normal mode, Range 1 Boost mode и Range 2.

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

Таблица 5. Режимы пониженного потребления в STM32G4

Режим Регулятор Ядро Flash SRAM Тактирование Периферия
Run R1 + ВКЛ* ВКЛ Любое Вся
R2 Вся кроме USB, RNG
LPRun LPR + ВКЛ* ВКЛ Любое Вся кроме USB, RNG
Кроме PLL
Sleep R1 ВКЛ* ВКЛ** Любое Вся
R2 Вся кроме USB, RNG
LPSleep LPR ВКЛ* ВКЛ** Любое Вся кроме USB, RNG
Кроме PLL
Stop 0 MR ВКЛ LSE/LSI Backup, CCS, BOR, PVD, PVM, RTC, LPUART, USART, I2C, DAC, VREFBUF, OPAMP, COMP, LPTIM1, IWDG, GPIO
Stop 1 LPR ВКЛ LSE/LSI Backup, CCS, BOR, PVD, PVM, RTC, LPUART, USART, I2C, DAC, VREFBUF, OPAMP, COMP, LPTIM1, IWDG, GPIO
Standby LPR SRAM2 ВКЛ LSE/LSI Backup, BOR, RTC, IWDG, GPIO (5 выводов)
OFF
Shutdown OFF LSE Backup, RTC, GPIO (5 выводов)
VBAT OFF LSE Backup, RTC
* – Можно отключить питание и выключить тактирование.
** – SRAM1, SRAM2 и CCM SRAM могут быть по отдельности отключены.

Об эффективности мер по снижению потребления, предпринятых компанией ST, говорят диаграммы, представленные на рисунке 4. В активном режиме и режиме сна потребление было снижено в шесть раз.

Рис. 4. Сравнение потребления микроконтроллеров STM32F3 и STM32G4

Рис. 4. Сравнение потребления микроконтроллеров STM32F3 и STM32G4

Специальная периферия для режимов пониженного потребления

Появление специальных периферийных блоков для режимов пониженного потребления стало уже привычным для новых семейств STM32. По сравнению с STM32F3, у STM32G4 появился дополнительный таймер LPTIM и универсальный приемопередатчик LPUART.

LPTIM – 16-битный таймер, который отличается от остальных встроенных таймеров возможностью работы во всех режимах, вплоть до STOP 1 и STOP 0 включительно. При этом LPTIM позволяет пробуждать микроконтроллер из спячки. Даже при отсутствии активного источника тактирования таймер LPTIM может использоваться в качестве счетчика внешних импульсов.

Еще одним важным достоинством LPTIM является сверхмалое потребление (таблица 6). По этому показателю с ним не могут сравниться даже базовые таймеры TIM6 и TIM7.

Таблица 6. Потребление встроенных таймеров

Блок Потребление, мкА/МГц
Range 1
Boost
Range 1
Normal
Range 2 Low-power Run
и Sleep
LPTIM1 1,11 1,03 0,85 1,42
TIM2 7,97 7,42 6,16 8,29
TIM3 6,37 5,93 4,92 6,81
TIM4 6,43 5,98 4,97 6,5
TIM5 8,28 7,71 6,38 8,11
TIM6 1,22 1,13 0,94 1,45
TIM7 1,28 1,18 0,98 1,56
TIM1 10,85 10,13 8,4 9,93
TIM8 10,67 9,96 8,25 9,82
TIM15 4,81 4,48 3,71 4,57
TIM16 3,71 3,45 2,88 3,45
TIM17 3,66 3,41 2,83 3,81
TIM20 10,71 9,99 8,29 10

LPUART – малопотребляющий универсальный асинхронный приемопередатчик. Как и другие встроенные USART/UART, приемопередатчик LPUART может работать в режимах пониженного потребления вплоть до STOP 1 и STOP 0 включительно. Однако его главным преимуществом является возможность обеспечения двунаправленного обмена на скоростях до 9600 бод/с при тактировании от 32,768 кГц LSE.

Кроме того, потребление LPUART оказывается ниже, чем у других встроенных USART/UART (таблица 7).

Таблица 7. Потребление встроенных приемопередатчиков USART/UART

Блок Потребление, мкА/МГц
Range 1
Boost
Range 1
Normal
Range 2 Low-power Run
и Sleep
LPUART1 1,91 1,78 1,47 2,03
USART1 2,49 2,31 1,91 2,49
USART2 2,75 2,56 2,12 3,11
USART3 2,71 2,52 2,08 2,47
UART4 2,51 2,33 1,92 3,14
UART5 2,79 2,6 2,14 3,34

Периферия

По сравнению с STM32F3 периферия STM32G4 претерпела качественные и количественные изменения.

Встроенные RC-генераторы

В составе STM32F3 было два встроенных RC-генератора: 40 кГц (LSI) и 8 МГц (HSI). У микроконтроллеров STM32G4 также есть встроенные RC-генераторы: 32 кГц (LSI) и 16 МГц (HSE). Характеристики встроенных генераторов обоих семейств представлены в таблицах 8 и 9.

Первое, что бросается в глаза – более высокая точность генераторов STM32G4. Погрешность 16 МГц HSI для STM32G4 составляет всего ±1% в диапазоне 0…85°С, тогда как для STM32F3 погрешность была в два раза выше. Более того, даже в расширенном температурном диапазоне -40…125°С погрешность HSI для STM32G4 остается меньше чем погрешность 8 МГц HSI STM32F3 в диапазоне -40…105°С. Температурная зависимость погрешности 16 МГц HSI для STM32G4 представлена на рисунке 5.

Рис. 5. Зависимость частоты встроенного высокочастотного RC-резонатора STM32G4 от температуры

Рис. 5. Зависимость частоты встроенного высокочастотного RC-резонатора STM32G4 от температуры

Таблица 8. Сравнение параметров встроенных высокочастотных RC-резонаторов

Параметр STM32F3 STM32G4
Частота встроенного резонатора, МГц 8 16
Шаг подстройки (TRIM), % 1 0,3
Температурная погрешность 0…85°С, % -1,9…2 -1…1
Температурная погрешность -40…105°С, % -2,8…3,8
Температурная погрешность -40…125°С, % -2…1,5
Зависимость от напряжения питания VDD = 1,62…3,6 В, % н/д -0,1…0,05
Время запуска, мкс 1…2 0,8…1,2
Время стабилизации, тип., мкс н/д 3
Потребление, тип., мкА 80 155

Встроенный 40 кГц LSI STM32F3 также имеет существенный начальный разброс и относительно высокое потребление по сравнению с LSI STM32G4.

Таблица 9. Сравнение параметров встроенных низкочастотных RC-резонаторов

Параметр STM32F3 STM32G4
Частота встроенного резонатора с учетом температурного разброса, Гц 30…50 29,5…34
Время запуска, мкс 85 80
Потребление, тип., нА 750 110

АЦП

Сравнение встроенных АЦП семейств STM32F3 и STM32G4 представлено в таблице 10. Из таблицы видно, что характеристики АЦП практически идентичны, и изменения носят, в первую очередь, количественный характер. STM32G4 может содержать сразу пять встроенных АЦП последовательного приближения (ADC1…ADC5), каждый из которых позволяет выполнять изменения с частотой 4 MSPS/с и максимальной разрядностью 12 бит. Кроме того, АЦП могут попарно работать в режиме Dual Mode (ADC1 + ADC2, ADC3 + ADC4), обеспечивая скорость измерений до 7,5 MSPS/с.

Режимы работы АЦП в STM32F3 и STM32G4 идентичны, однако среди важных изменений следует отметить наличие блока передискретизации, позволяющего повышать разрядность измерений до 16 бит, а также возможность автоматической корректировки смещения и усиления.

Еще одним преимуществом встроенных АЦП STM32G4 является расширенный диапазон напряжений питания VDDA.

Таблица 10. Сравнение встроенных АЦП STM32F3 и STM32G4

Параметр STM32F303 STM32G4
Количество АЦП До 2 До 5
Тип АЦП Последовательного приближения Последовательного приближения
Число каналов До 40 До 42
Разрешение 12/10/8/6 12/10/8/6
Разрешение с аппаратной передискретизацией 16
Частота тактирования, макс., МГц 72 60
Максимальное быстродействие, MSPS 5 4
Режим ADC Dual Mode + +
Диапазон напряжений питания VDDA, В 2,0…3,6 1,62…3,6
Диапазон измеряемых напряжений 0…VDDA (3,6 В) 0…VDDA (3,6 В)
Максимальное входное сопротивление источника сигнала, кОм 100 50
Встроенный конденсатор схемы выборки хранения, тип., пФ 5 5
Потребление от VDDA (1 MSPS), мкА 285,5 220
Потребление от VDDA, макс., мкА 1033 730

ЦАП

В микроконтроллерах STM32F3 могут быть до трех ЦАП с диапазоном рабочих напряжений VDDA 2,4…3,6 В и частотой преобразований до 1 MSPS (таблица 11). Микроконтроллеры STM32G4 могут иметь до 7 встроенных ЦАП двух видов: 3 ЦАП со внешними выходами и 4 внутренних ЦАП.

ЦАП со внешними выходами по своему функционалу идентичны встроенным ЦАП микроконтроллеров STM32F3. Они могут выполнять преобразования с частотой 1 MSPS, а также формировать треугольные и шумовые сигналы совместно со встроенными генераторами. Однако диапазон рабочих напряжений питания для ЦАП STM32G4 более широкий: от 1,71 В без буферизации и от 1,8 В с буферизацией.

На борту STM32G4 могут быть до четырех ЦАП без внешних выходов и с частотой преобразований до 15 MSPS. Сигналы этих ЦАП могут быть использованы в качестве опорных или пороговых напряжений для других аналоговых блоков: ОУ, компараторов.

Таблица 11. Сравнение встроенных ЦАП STM32F3 и STM32G4

Параметр STM32F303 STM32G4
Количество ЦАП До 3 До 7
Напряжение питания, В 2,4…3,6 1,71…3,6 (внутренние каналы), 1,8…3,6
Разрешение, бит 12/8 12/8
Быстродействие выходных каналов, MSPS 1 1
Быстродействие внутренних каналов, MSPS 15
Выходное напряжение с активным буфером 0,2…Vref…0,2 В 0,2…Vref…0,2 В
Выходное напряжение без буфера 0…VDDA 0…Vref
Выходной импеданс АЦП (без буфера), кОм 15 9,6…13,8
Типовое сопротивление нагрузки (при активном буфере), кОм 25 25
Коэффициент подавления нестабильности по питанию PSRR, дБ (тип.) -67 (тип.) -80 (тип)
DNL ±2 LSB ±2 LSB
INL ±4 LSB ±4 LSB

ОУ

Одним из преимуществ STM32F3 всегда были встроенные ОУ с программируемым коэффициентом усиления. В STM32G4 число ОУ было увеличено до шести. Кроме того, именно ОУ STM32G4 получили наиболее значительные качественные улучшения (таблица 12): расширение диапазона рабочих напряжений питания 2,0…3,6 В, расширение перечня коэффициентов усиления, увеличение полосы пропускания в два раза, увеличение скорости нарастания до 6,5 В/мкс (до 45 В/мкс в производительном режиме), снижение начального входного смещения до ±1,5 В, уменьшение полного смещения до ±3 мВ.

Таблица 12. Сравнение встроенных ОУ STM32F3 и STM32G4

Параметр STM32F303 STM32G4
Количество ОУ До 4 До 6
Напряжение питания, В 2,4…3,6 2,0…3,6
Диапазон входных напряжений, В 0…VDDA (3,6) 0…VDDA (3,6)
Программируемое усиление x2/x4/x8/x16 x2/x4/x8/x16/x32/x64 и x-1/x-3/x-7/x-15/x-31/x-63
Начальное смещение (без нагрузки и при 25°С), мВ ±4 ±1,5
Максимальное входное смещение, мВ ±6 ±3
Температурный дрейф входного смещения, мкВ/°С ±5 ±10
Выходной ток (без PGA), мкА 500 500
Выходной ток (c PGA), мкА 270
Емкостная нагрузка, пФ 50 50
CMRR, дБ 90 60
PSRR, дБ 117 80
GBW, МГц 8,2 13
Скорость нарастания, В/мкс 4,7 6,5 в нормальном режиме, 45 в производительном режиме

Аналоговые компараторы

В состав микроконтроллеров STM32F3 могли входить до 7 аналоговых компараторов. В STM32G4 также доступны до 7 компараторов, однако их характеристики были существенно улучшены: диапазон рабочих напряжений питания был расширен до 1,62…3,6 В, появилась возможность программирования гистерезиса, напряжение смещения было уменьшено в три раза, задержка сигналов была уменьшена с 25 до 16,7 нс (таблица 13).

Таблица 13. Сравнение встроенных компараторов STM32F3 и STM32G4

Параметр STM32F303 STM32G4
Количество компараторов До 7 До 7
Диапазон напряжений питания, В 2…3,6 1,62…3,6
Диапазон входных напряжений, В 0…VDDA (3,6) 0…VDDA (3,6)
Программируемый гистерезис Только STM32F303xB/C и STM32F358xC 0/9/18/27/36/45/54/63 мВ
Задержка, нс 25 (тип.) 16,7 (тип.)
Смещение, мВ ±25 (макс.) -9…3 (макс.)
Потребление, мкА 600 (макс.) 720 (макс.)

Таймер высокого разрешения HRTIM

В старшей линейке семейства STM32F3x4 присутствовал таймер высокого разрешения HRTIM. HRTIM представлял собой сложный модульный блок, объединявший сразу шесть таймеров – один ведущий и пять ведомых. У каждого из ведомых таймеров была пара выходов. Тактирование HRTIM производилось с удвоенной частотой PLLCLK (выход PLL). Таим образом, рабочая частота могла достигать 144 МГц (таблица 14). Благодаря высокой частоте тактирования разрешение таймеров во всем диапазоне рабочих напряжений и температур было не хуже 217 пс.

HRTIM мог генерировать 10 выходных ШИМ-сигналов, принимать до 5 внешних сигналов триггеров, а также взаимодействовать с АЦП и ЦАП.

В старшей линейке STM32G4x4 также есть таймер HRTIM, однако число ведомых таймеров в нем возросло до 6, а максимальная входная частота тактирования была увеличена до 170 МГц. Для STM32G4x4 гарантированное разрешение во всем диапазоне температур и напряжений составляет 186 пс (тактирование внутренних таймеров – до 5,4 ГГц), при этом диапазон рабочих температур также расширен до -40…125°С. Кроме того, стоит отметить увеличение числа выходных каналов до 12 и входных каналов до 6.

Таблица 14. Сравнение встроенных HRTIM STM32F3 и STM32G4

Параметр STM32F3x4 STM32G4x4
Количество внутренних таймеров 5 6
Количество выходов 10 12
Максимальная частота тактирования, МГц 144 170
Разрешение, пс 217 186
Защитных входов 5 6
Минимальная длительность мертвого времени, пс 868 735

Интерфейсы

Коммуникационные возможности STM32G4 расширились по сравнению с STM32F3. Наиболее значительным изменением стало появление CAN-FD, USB Type-C и QUADSPI.

CAN-FD

В STM32F3 был реализован стандартный на тот момент модуль bxCAN. Этот модуль отвечает требованиям спецификации CAN 2.0A и 2.0B и обеспечивает скорость обмена до 1 Мбит/с. Начиная с STM32H7, новые семейства STM32 стали оснащаться более современным модулем FDCAN. Сейчас FDCAN есть на борту у STM32G0, STM32G4, STM32H7, STM32L5 и у микропроцессора STM32MP1.

FDCAN поддерживает CAN-FD (Controller Area Network (CAN) With Flexible Data-rate) и обратно совместим с CAN 2.0A и 2.0B. Как следует из названия, этот протокол является более гибким с точки зрения скорости передачи данных. Так, например, типовая полезная нагрузка фрейма CAN 2.0 составляет 8 байт, в то время как фрейм CAN-FD может содержать до 64 байт данных.

Кроме увеличения объема передаваемых данных, CAN-FD позволяет вести передачу на скоростях до 8 Мбит/с. Подробнее о различиях между CAN 2.0 и CAN-FD можно прочитать в [10].

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

Еще одним преимуществом модуля FDCAN в STM32G4 является увеличение числа фильтров CAN ID.

USB Type-C

В микроконтроллерах STM32F3 был реализован простой интерфейс USB 2.0 (USB Device). Однако с тех пор индустрия шагнула далеко вперед.

Производители, развивая USB, стремятся решить две основные задачи: увеличить скорость передачи данных и повысить мощность, передаваемую устройствами. Относительно недавно форум USB Implementers Forum (USB-IF) представил две спецификации:

  • спецификация USB Type-C™ 1.3 определяет требования к кабелю и разъему USB Type-C. Данный разъем призван заменить все типы и модификации разъемов предыдущих спецификаций USB;
  • спецификация USB Power Delivery (PD) версий 2.0 и 3.0 определяет порядок взаимодействия устройств при передаче мощности от 4,5 Вт (900 мА при 5 В VBUS) до 100 Вт (до 5 А при 20 В).

В STM32G4 реализован модуль USB, отвечающий требованиям USB Type-C™ 1.3 и USB Power Delivery (PD) 2.0 и 3.0. Разумеется, при работе с STM32F3 можно реализовать поддержку разъема USB Type-C, однако для решения задачи по передаче большой мощности требуется USB Power Delivery.

Рассмотрение USB Type-C™ 1.3 и USB Power Delivery выходит за рамки данной статьи. Для получения подробной информации стоит обратиться к [11]. 

QUADSPI

Интерфейс SPI был и остается одним из наиболее простых и популярных интерфейсов. Микроконтроллеры STM32F3 содержали до четырех модулей SPI. Быстродействия традиционного SPI вполне хватает для обмена с датчиками (МЭМС-сенсорами, датчиками температуры и прочими) или небольшими дисплеями, однако для высокоскоростной передачи данных возможностей SPI недостаточно. Начиная с семейства STM32F4, компания ST стала снабжать свои микроконтроллеры модулями QUADSPI. Новые микроконтроллеры STM32G4 также получили модуль QUADSPI.

В отличие от SPI, в QUADSPI передача данных идет сразу по четырем линиям, что позволяет передавать до восьми бит за такт при защелкивании данных по фронту и срезу. Более того, модули QUADSPI микроконтроллеров STM32 позволяют работать с двумя микросхемами памяти в режиме Dual-Flash mode, при котором за такт передается сразу 16 бит.

Подробнее об особенностях QUADSPI можно ознакомиться в [12].

Надежность

Компания STMicroelectronics прилагает большие усилия для повышения надежности микроконтроллеров STM32. По сравнению с STM32F3 у микроконтроллеров STM32G4 появились сразу несколько важных преимуществ:

  • Расширение диапазона рабочих температур. Диапазон рабочих температур STM32F3 был ограничен -40…105°С. Для STM32G4 диапазон рабочих температур может достигать -40…125°С. Это крайне важно для промышленных приложений.
  • Повышение помехоустойчивости. Уровень защищенности STM32G4 от импульсных помех и разрядов значительно выше чем у STM32F3. Например, типовой класс помехоустойчивости STM32F3 составляет 2B согласно IEC 61000-4-2 и 4A согласно IEC 61000-4-4 [5]. В то же время класс помехоустойчивости STM32G4 составляет 3B согласно IEC 61000-4-2 и 5A согласно IEC 61000-4-4 [6]. Подробнее о классах помехоустойчивости и рекомендациях по защите микроконтроллеров STM32 производства ST можно узнать в [13].
  • Появление двух банков памяти с ECC. В старших моделях STM32G4 память организована в виде двух банков. Корректность содержимого памяти может контролироваться с помощью ECC (Error Code Correction). Суть ECC сводится к тому, что каждому слову данных Flash (64 бита) добавляется 8-битный ECC-код. Этот код позволяет обнаруживать и исправлять отдельные некорректные биты и определять наличие двух неверных битов.
  • Защита пользовательской области памяти. Наряду со стандартными механизмами защиты памяти (RDP/PCROP/WRP) микроконтроллеры STM32G4 позволяют защищать пользовательскую область памяти (Securable Memory Area). Код из защищенной области памяти может быть выполнен только один раз при запуске микроконтроллера и остается недоступным до следующего сброса. Это крайне полезно для обеспечения защищенной загрузки, например, при работе с ключами шифрования.
  • Контроль четности ОЗУ. В микроконтроллерах STM32G4 осуществляется контроль четности всей или части SRAM (32 кбайт для некоторых моделей) и всей CCM SRAM. По этой причине ширина шины данных составляет 36 бит: 32 бита + 4 бита паритета (1 бит на байт). Контроль целостности данных, хранимых в ОЗУ, имеет важное значение для ответственных приложений.

Линейка поставок

В настоящий момент компания STMicroelectronics предлагает около семи десятков микроконтроллеров семейства STM32F3:

  • с объемом Flash-памяти 32…512 кбайт;
  • с объемом ОЗУ 16…80 кбайт;
  • c корпусами LQFP32, LQFP48, LQFP64, LQFP100, LQFP144, WLCSP49, WLCSP100, UFBGA 100, UFQFPN32;
  • с диапазоном рабочих температур до -40…105°С;

Номенклатура STM32G4 постоянно расширяется и уже сейчас объединяет шесть десятков моделей:

  • с объемом Flash-памяти 32…512 кбайт;
  • с объемом ОЗУ 16…128 кбайт;
  • с корпусами LQFP32, LQFP48, LQFP64, LQFP80, LQFP100, LQFP128, UFBGA 64, TFBGA 100, WLCSP49, UFQFPN32, UFQFPN48, LQFP144, WLCSP100;
  • с диапазоном рабочих температур до -40…125°С.

Таким образом, семейство STM32G4 предлагает больший выбор корпусных исполнений, больший объем ОЗУ и расширенный диапазон рабочих температур.

Более подробную информацию о номенклатуре STM32G4 вы можете прочитать в разделе «Основные особенности семейства STM32G4» статьи «STM32G4 – новый флагман микроконтроллеров общего назначения ST».

Заключение

Новое семейство микроконтроллеров STM32G4 существенно превосходит семейство STM32F3 по производительности, надежности, разнообразию и качеству периферии, а также отличается меньшим потреблением (таблица 15). Все это делает микроконтроллеры STM32G4 отличной заменой для STM32F3. Вместе с тем производители, использующие STM32F3, могут не опасаться прекращения выпуска этих микросхем, так как длительность их жизненного цикла была продлена на 10 лет.

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

Таблица 15. Сравнение STM32G4 и STM32F3

Параметр STM32F3 STM32G4
Техпроцесс 180 нм 90 нм
Процессорное ядро Cortex-M4 Cortex-M4
Точность операций с плавающей точкой FPU Одиночная Одиночная
Максимальная рабочая частота, МГц 72 170
CORDIC +
FMAC +
Организация памяти Flash Один банк Один/два банка
Блок коррекции ошибок Flash (ECC) +
Безопасность SRAM Бит четности Бит четности
Возможность параллельного чтения-записи данных во Flash (Data Flash with RWW) + (благодаря двум банкам Flash)
CCM-SRAM, кбайт До 16 До 32
ART Accelerator +
FSMC + +
Quad SPI +
АЦП (последовательного приближения) x2 (12 бит, 5 MSPS) x5 (12 бит + 16 бит с аппаратной передискретизацией, 4MSPS)
Компаратор x7 x7 (улучшены характеристики)
ОУ x4 x6 (улучшены характеристики)
ЦАП x3 (12 бит 1 MSPS) x7 (12 бит 1/15 MSPS (внутренние каналы))
Таймеры с расширенным функционалом для работы с электродвигателями и многофазными преобразователями 3 3
Стандартные таймеры 1x 32, 5x 16 1x 32, 5x 16
Разрешение таймера HRTIM, пс 217 186
LPTIM +
LPUART +
CAN bxCAN 3x CAN-FD-Lite
USB 2.0 FS USB 2.0 FS USB 2.0 FS + Power Delivery
Диапазон рабочих температур, °C -40…105 -40…105 (125 с ограничением частоты)
Точность встроенного RC-осциллятора (0…85°С), % ±2 ±1
Защищенный бутлодер +

Литература

  1. STM32G4 – новый флагман микроконтроллеров общего назначения ST.
  2. ST Longevity Commitment.
  3. Cortex-M4. The Arm Cortex-M4 processor is a highly-efficient embedded processor.
  4. STM32F303xD STM32F303xE ARM® Cortex®-M4 32b MCU+FPU, up to 512KB Flash, 80KB SRAM, FSMC, 4 ADCs, 2 DAC ch., 7 comp, 4 Op-Amp, 2.0-3.6 V.
  5. Datasheet STM32F334x4 STM32F334x6 STM32F334x8 Arm®Cortex®-M4 32b MCU+FPU,up to 64KB Flash,16KB SRAM, 2 ADCs,3 DACs,3 comp.,op-amp, 217ps 10-ch (HRTIM1).
  6. Datasheet STM32G484xE Arm® Cortex®-M4 32-bit MCU+FPU, 170 MHz / 213DMIPS, 128 KB SRAM, rich analog, math acc, 184 ps 12 chan Hi-res timer, AES.
  7. RM0316 Reference manual STM32F303xB/C/D/E, STM32F303x6/8, STM32F328x8, STM32F358xC, STM32F398xE advanced ARM®-based MCUs.
  8. RM0364 Reference manual STM32F334xx advanced Arm®-based 32-bit MCUs.
  9. Reference manual. STM32G4 Series advanced Arm®-based 32-bit MCUs.
  10. FDCAN peripheral on STM32 devices.
  11. USB Type-C™ Power Delivery using STM32xx Series MCUs and STM32xxx Series MPUs.
  12. AN4760 Application note Quad-SPI interface on STM32 microcontrollers and microprocessors.
  13. AN1709 Application note EMC design guide for STM8, STM32 and Legacy MCUs.
•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
NUCLEO-G474RE (ST)
NUCLEO-G431RB (ST)
STM32G431C8T6 (ST)
STM32G431K8T6 (ST)
STM32G441KBU6 (ST)
STM32G473CBU6 (ST)
STM32G473CET6 (ST)
STM32G483VET6 (ST)
STM32G474CBT6 (ST)
STM32G474RCT6 (ST)
STM32G484CEU6 (ST)