Перейти к содержанию

Скорость выхода GPIO

Скорость выхода GPIO — настройка, которая задаёт, насколько круто выходной каскад вывода меняет уровень. Её часто путают с частотой, на которой программа может переключать порт, хотя это разные вещи.

Обновлено Редакция GAW

Скорость выхода GPIO (output speed) — настройка выходного каскада вывода микроконтроллера, которая задаёт крутизну его фронтов. От неё зависит, при какой частоте и ёмкости нагрузки сигнал ещё успевает доходить до логических уровней. Частота, с которой программа может переключать порт, от этой настройки не зависит.

STM32F1 и STM32F4

STM32F1 (MODE)Наибольшая частотаФронт и спад
2 МГц2 МГц при 50 пФдо 125 нс
10 МГц10 МГц при 50 пФдо 25 нс
50 МГц50 МГц при 30 пФ5 нс при 30 пФ, 8 нс при 50 пФ
STM32F4 (OSPEEDR)Частота при VDD > 2,7 ВФронт и спад
Low4 МГц при 50 пФ100 нс
Medium25 МГц при 50 пФ10 нс
High50 МГц при 40 пФ6 нс
Very high100 МГц при 30 пФ4 нс

Значения — из таблицы 38 DS5319 и таблицы 50 DS8626. Наибольшую частоту DS5319 определяет так: сумма фронта и спада должна быть не больше двух третей периода.

Как выбрать

Быстрые фронты дают большие импульсы тока, электромагнитные помехи и помехи по питанию при одновременном переключении многих выходов. Поэтому ST советует выбирать самую медленную ступень, при которой сигнал успевает (AN4899, раздел 7.2): для светодиодов, реле и сигналов разрешения — самую медленную, для быстрых интерфейсов в режиме альтернативной функции — по таблицам выше. Скорость относится к выходному каскаду двухтактного выхода и открытого стока; у операционных усилителей похожий предел называется скоростью нарастания. Режимы выводов и регистры — в статье о GPIO STM32.

Частые вопросы

Что значит скорость вывода 2, 10 и 50 МГц у STM32F1?

Это не частота переключения порта, а крутизна фронтов выходного каскада. По DS5319 (таблица 38) в режиме 2 МГц фронт длится до 125 нс, в режиме 10 МГц — до 25 нс, в режиме 50 МГц — 5 нс при 30 пФ и 8 нс при 50 пФ. Частота в названии — наибольшая частота сигнала, который выход ещё успевает формировать на указанной ёмкости.

Почему не ставить везде максимальную скорость?

Быстрые фронты дают большие импульсы тока, электромагнитные помехи и помехи по питанию, особенно когда переключается много выводов сразу. ST в AN4899 советует выбирать самую медленную скорость, при которой сигнал успевает. Светодиоду, реле или сигналу разрешения хватит самой медленной ступени.

Какую скорость выбрать для SPI или ШИМ?

Такую, при которой сумма фронта и спада не больше двух третей периода сигнала — так DS5319 определяет наибольшую частоту. Для SPI на десятки мегагерц нужна быстрая ступень, для ШИМ на десятки килогерц достаточно самой медленной. Частоты выше 1 МГц проверяют по таблицам даташита с учётом ёмкости линии.

Источники

  1. STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319) — табл. 38 и рис. 30: частоты и фронты для MODE 2, 10 и 50 МГц
  2. STMicroelectronics. STM32F405xx, STM32F407xx datasheet (DS8626) — табл. 50: частоты и фронты для OSPEEDR
  3. STMicroelectronics. AN4899: STM32 microcontroller GPIO hardware settings and low-power consumption — 7.2 — выбирать самую медленную скорость, которой хватает для сигнала

Нашли ошибку?