Скорость выхода 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 В | Фронт и спад |
|---|---|---|
| Low | 4 МГц при 50 пФ | 100 нс |
| Medium | 25 МГц при 50 пФ | 10 нс |
| High | 50 МГц при 40 пФ | 6 нс |
| Very high | 100 МГц при 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 МГц проверяют по таблицам даташита с учётом ёмкости линии.
Источники
- STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319) — табл. 38 и рис. 30: частоты и фронты для MODE 2, 10 и 50 МГц
- STMicroelectronics. STM32F405xx, STM32F407xx datasheet (DS8626) — табл. 50: частоты и фронты для OSPEEDR
- STMicroelectronics. AN4899: STM32 microcontroller GPIO hardware settings and low-power consumption — 7.2 — выбирать самую медленную скорость, которой хватает для сигнала
Нашли ошибку?