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

Регистры TIM STM32G0

Регистры таймеров STM32G0: расширенного TIM1, 32-битного TIM2, TIM3 и TIM4, базовых TIM6 и TIM7, TIM14–TIM17 — счёт, предделитель, период, режимы каналов, ШИМ и захват, синхронизация, мёртвое время и аварийный останов.

Таймеры STM32G0 — следующее поколение таймеров STM32F0: поле режима выхода OCxM стало четырёхбитным, а старший бит лежит отдельно (бит 16 для канала 1); так же разнесены SMS и TS. Страница показывает младшие биты под именем поля, а старшие — отдельными полями OC1M_3, SMS_3, TS_3 и TS_4, как в макросах CMSIS. Новые режимы — асимметричный и комбинированный ШИМ, комбинированный сброс и запуск ведомого (RM0444, раздел 21.4).

У TIM1 шесть каналов сравнения: четыре с выводами и два внутренних (CH5, CH6) для запуска АЦП и объединения с другими каналами, два аварийных входа BRK и BRK2 с фильтрами. Регистр TISEL выбирает, что подаётся на входы TI1–TI4 (у TIM1 — все четыре, у остальных таймеров — TI1 и TI2): вывод или внутренний сигнал (компаратор, LSE, MCO). TIM1 и TIM15 можно тактировать от PLLQ до 128 МГц (TIM1SEL, TIM15SEL в RCC_CCIPR).

ЭкземплярБазовый адресЕсть у
TIM20x4000 0000всех
TIM30x4000 0400всех
TIM40x4000 0800STM32G0B1, STM32G0C1
TIM60x4000 1000STM32G051, STM32G061, STM32G071, STM32G081, STM32G0B1, STM32G0C1
TIM70x4000 1400STM32G051, STM32G061, STM32G071, STM32G081, STM32G0B1, STM32G0C1
TIM140x4000 2000всех
TIM10x4001 2C00всех
TIM150x4001 4000STM32G051, STM32G061, STM32G071, STM32G081, STM32G0B1, STM32G0C1
TIM160x4001 4400всех
TIM170x4001 4800всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
TIMx_CR10x00Счёт, режим одного импульса, буферизация0x0000
TIMx_CR20x04Ведущий режим, DMA, состояния выходовTIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM6, TIM7, TIM15, TIM16, TIM17: 0x0000
TIMx_SMCR0x08Ведомый режим, триггер и внешний такт0x0000 0000
TIMx_DIER0x0CРазрешение прерываний и запросов DMA0x0000
TIMx_SR0x10Флаги прерыванийTIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM6, TIM7, TIM14, TIM15, TIM16, TIM17: 0x0000
TIMx_EGR0x14Программные события0x0000
TIMx_CCMR10x18Режимы каналов 1 и 20x0000 0000
TIMx_CCMR20x1CРежимы каналов 3 и 40x0000 0000
TIMx_CCER0x20Включение и полярность каналовTIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM14, TIM15, TIM16, TIM17: 0x0000
TIMx_CNT0x24Счётчик0x0000 0000
TIMx_PSC0x28Предделитель0x0000
TIMx_ARR0x2CПериод (значение перезагрузки)TIM1, TIM6, TIM7, TIM14, TIM15, TIM16, TIM17: 0xFFFF; TIM2, TIM3, TIM4: 0xFFFF FFFF
TIMx_RCR0x30Счётчик повторений0x0000
TIMx_CCR10x34Сравнение и захват, канал 1TIM1, TIM14, TIM15, TIM16, TIM17: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000
TIMx_CCR20x38Сравнение и захват, канал 2TIM1, TIM15: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000
TIMx_CCR30x3CСравнение и захват, канал 3TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000
TIMx_CCR40x40Сравнение и захват, канал 4TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000
TIMx_BDTR0x44Аварийный останов и мёртвое время0x0000 0000
TIMx_DCR0x48Пакетная передача DMA0x0000
TIMx_DMAR0x4CАдрес пакетной передачи DMATIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM15, TIM16, TIM17: 0x0000
TIMx_CCMR30x54Режимы каналов 5 и 60x0000 0000
TIMx_CCR50x58Сравнение, канал 50x0000 0000
TIMx_CCR60x5CСравнение, канал 60x0000
TIMx_TISEL0x68Выбор входов TI1–TI4TIM1, TIM2, TIM3, TIM4, TIM15, TIM16, TIM17: 0x0000 0000; TIM14: 0x0000

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

TIM2->CR1 = 0x00000000;

TIMx_CR1 — счёт, режим одного импульса, буферизация

Смещение 0x00, 32 бит, после сброса 0x0000. В коде: TIM2->CR1.

31302928272625242322212019181716
—
1514131211109876543210
—UIFREMAP—CKDARPECMSDIROPMURSUDISCEN
  • UIFREMAP (бит 11) — Копия флага UIF в старшем бите CNT.
  • CKD (биты 9:8) — Период дискретизации цифровых фильтров tDTS относительно такта таймера.
  • ARPE (бит 7) — Буферизация ARR: новое значение действует с события обновления.
  • CMS (биты 6:5) — Счёт по фронту или центрированный (вверх и вниз).
  • DIR (бит 4) — Направление счёта.
  • OPM (бит 3) — Режим одного импульса: счётчик останавливается на событии обновления.
  • URS (бит 2) — Что вызывает прерывание и запрос DMA обновления.
  • UDIS (бит 1) — Запрет события обновления.
  • CEN (бит 0) — Включение счётчика.

TIMx_CR2 — ведущий режим, DMA, состояния выходов

Смещение 0x04, 32 бит, после сброса TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM6, TIM7, TIM15, TIM16, TIM17: 0x0000. В коде: TIM2->CR2.

31302928272625242322212019181716
—MMS2—OIS6—OIS5
1514131211109876543210
—OIS4OIS3NOIS3OIS2NOIS2OIS1NOIS1TI1SMMSCCDSCCUS—CCPC
  • MMS2 (биты 23:20) — Сигнал TRGO2 для АЦП: событие, сравнение каналов 1–6.
  • OIS6 (бит 18) — Уровень OC6 в состоянии простоя (MOE = 0).
  • OIS5 (бит 16) — Уровень OC5 в состоянии простоя (MOE = 0).
  • OIS2–OIS4 (по биту на каждый y, положение — на карте битов) — Уровень выхода OCy при MOE = 0 (TIM1, TIM15–TIM17).
  • OIS3N (бит 13) — Уровень выхода OC3N при MOE = 0 (TIM1, TIM15–TIM17).
  • OIS2N (бит 11) — Уровень выхода OC2N при MOE = 0 (TIM1, TIM15–TIM17).
  • OIS1N (бит 9) — Уровень выхода OC1N при MOE = 0 (TIM1, TIM15–TIM17).
  • OIS1 (бит 8) — Уровень выхода OC1 при MOE = 0 (TIM1, TIM15–TIM17).
  • TI1S (бит 7) — Вход TI1: вывод CH1 или исключающее ИЛИ выводов CH1–CH3 (датчики Холла).
  • MMS (биты 6:4) — Сигнал TRGO для ведомых таймеров, АЦП и ЦАП.
  • CCDS (бит 3) — Запросы DMA каналов: по событию канала или по обновлению.
  • CCUS (бит 2) — Обновление буферизованных битов каналов: только COMG или ещё фронт TRGI.
  • CCPC (бит 0) — Буферизация CCxE, CCxNE и OCxM до события коммутации COM (TIM1, TIM15–TIM17).

TIMx_SMCR — ведомый режим, триггер и внешний такт

Смещение 0x08, 32 бит, после сброса 0x0000 0000. В коде: TIM2->SMCR.

31302928272625242322212019181716
—TS_4TS_3—SMS_3
1514131211109876543210
ETPECEETPSETFMSMTSOCCSSMS
  • TS_4 (бит 21) — Бит 4 номера триггера: входы ITR4 и выше.
  • TS_3 (бит 20) — Бит 3 номера триггера: входы ITR4 и выше.
  • SMS_3 (бит 16) — Старший бит режима ведомого: комбинированный режим сброса и запуска.
  • ETP (бит 15) — Полярность внешнего входа ETR.
  • ECE (бит 14) — Внешнее тактирование, режим 2: счёт по фронтам ETR.
  • ETPS (биты 13:12) — Предделитель входа ETR: частота ETRP не выше 1/4 такта таймера.
  • ETF (биты 11:8) — Цифровой фильтр входа ETR.
  • MSM (бит 7) — Задержка события TRGI для синхронного запуска ведомых таймеров.
  • TS (биты 6:4) — Источник триггера, биты 2:0 (биты 4:3 — TS_4, TS_3).
  • OCCS (бит 3) — Источник сигнала OCREF_CLR: вход ETRF или внутренний сигнал (компаратор).
  • SMS (биты 2:0) — Режим ведомого, биты 2:0 (бит 3 — SMS_3).

TIMx_DIER — разрешение прерываний и запросов DMA

Смещение 0x0C, 32 бит, после сброса 0x0000. В коде: TIM2->DIER.

31302928272625242322212019181716
—
1514131211109876543210
—TDECOMDECC4DECC3DECC2DECC1DEUDEBIETIECOMIECC4IECC3IECC2IECC1IEUIE
  • TDE (бит 14) — Запрос DMA по триггеру.
  • COMDE (бит 13) — Запрос DMA по событию COM.
  • CC4DE (бит 12) — Запрос DMA канала 4.
  • CC3DE (бит 11) — Запрос DMA канала 3.
  • CC2DE (бит 10) — Запрос DMA канала 2.
  • CC1DE (бит 9) — Запрос DMA канала 1.
  • UDE (бит 8) — Запрос DMA по обновлению.
  • BIE (бит 7) — Прерывание по аварийному входу BRK (TIM1, TIM15–TIM17).
  • TIE (бит 6) — Прерывание по триггеру.
  • COMIE (бит 5) — Прерывание по событию коммутации COM (TIM1, TIM15–TIM17).
  • CC4IE (бит 4) — Прерывание канала 4.
  • CC3IE (бит 3) — Прерывание канала 3.
  • CC2IE (бит 2) — Прерывание канала 2.
  • CC1IE (бит 1) — Прерывание канала 1.
  • UIE (бит 0) — Прерывание по обновлению.

TIMx_SR — флаги прерываний

Смещение 0x10, 32 бит, после сброса TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM6, TIM7, TIM14, TIM15, TIM16, TIM17: 0x0000. В коде: TIM2->SR.

31302928272625242322212019181716
—CC6IFCC5IF
1514131211109876543210
—SBIFCC4OFCC3OFCC2OFCC1OFB2IFBIFTIFCOMIFCC4IFCC3IFCC2IFCC1IFUIF
  • CC6IF (бит 17) — Сработало сравнение канала 6.
  • CC5IF (бит 16) — Сработало сравнение канала 5.
  • SBIF (бит 13) — Системный аварийный останов (ошибки, LOCKUP, PVD).
  • CC4OF (бит 12) — Повторный захват канала 4, пока флаг CC4IF не сброшен.
  • CC3OF (бит 11) — Повторный захват канала 3, пока флаг CC3IF не сброшен.
  • CC2OF (бит 10) — Повторный захват канала 2, пока флаг CC2IF не сброшен.
  • CC1OF (бит 9) — Повторный захват канала 1, пока флаг CC1IF не сброшен.
  • B2IF (бит 8) — Сработал аварийный вход 2.
  • BIF (бит 7) — Флаг аварийного входа BRK.
  • TIF (бит 6) — Флаг триггера.
  • COMIF (бит 5) — Флаг события коммутации COM.
  • CC4IF (бит 4) — Флаг канала 4: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR4.
  • CC3IF (бит 3) — Флаг канала 3: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR3.
  • CC2IF (бит 2) — Флаг канала 2: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR2.
  • CC1IF (бит 1) — Флаг канала 1: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR1.
  • UIF (бит 0) — Флаг обновления; сбрасывается записью 0.

TIMx_EGR — программные события

Смещение 0x14, 32 бит, после сброса 0x0000. В коде: TIM2->EGR.

31302928272625242322212019181716
—
1514131211109876543210
—B2GBGTGCOMGCC4GCC3GCC2GCC1GUG
  • B2G (бит 8) — Программный аварийный останов по входу 2.
  • BG (бит 7) — Программное аварийное отключение (как по входу BRK).
  • TG (бит 6) — Программный триггер.
  • COMG (бит 5) — Программное событие коммутации COM.
  • CC4G (бит 4) — Программное событие канала 4.
  • CC3G (бит 3) — Программное событие канала 3.
  • CC2G (бит 2) — Программное событие канала 2.
  • CC1G (бит 1) — Программное событие канала 1.
  • UG (бит 0) — Программное обновление: перезапуск счётчика и загрузка буферов.

TIMx_CCMR1 — режимы каналов 1 и 2

Смещение 0x18, 32 бит, после сброса 0x0000 0000. В коде: TIM2->CCMR1.

31302928272625242322212019181716
—OC2M_3—OC1M_3
1514131211109876543210
OC2CEOC2MOC2PEOC2FECC2SOC1CEOC1MOC1PEOC1FECC1S
  • OC2M_3 (бит 24) — Старший бит режима сравнения канала 2: асимметричные и комбинированные режимы ШИМ.
  • OC1M_3 (бит 16) — Старший бит режима сравнения канала 1: асимметричные и комбинированные режимы ШИМ.
  • OC2CE (бит 15) — Сброс OC2REF сигналом ocref_clr_int: вход OCREF_CLR или ETRF (выбор — бит OCCS).
  • IC2F (биты 15:12) — Цифровой фильтр входа 2 (режим захвата).
  • OC2M (биты 14:12) — Режим сравнения канала 2, биты 2:0 (бит 3 — OC2M_3).
  • OC2PE (бит 11) — Буферизация CCR2: новое значение с события обновления.
  • IC2PSC (биты 11:10) — Предделитель захвата 2: каждое 1, 2, 4 или 8-е событие (режим захвата).
  • OC2FE (бит 10) — Ускоренная реакция выхода 2 на триггер (режимы ШИМ).
  • CC2S (биты 9:8) — Канал 2: выход или вход и источник захвата; меняется при CC2E = 0.
  • OC1CE (бит 7) — Сброс OC1REF сигналом ocref_clr_int: вход OCREF_CLR или ETRF (выбор — бит OCCS).
  • IC1F (биты 7:4) — Цифровой фильтр входа 1 (режим захвата).
  • OC1M (биты 6:4) — Режим сравнения канала 1, биты 2:0 (бит 3 — OC1M_3).
  • OC1PE (бит 3) — Буферизация CCR1: новое значение с события обновления.
  • IC1PSC (биты 3:2) — Предделитель захвата 1: каждое 1, 2, 4 или 8-е событие (режим захвата).
  • OC1FE (бит 2) — Ускоренная реакция выхода 1 на триггер (режимы ШИМ).
  • CC1S (биты 1:0) — Канал 1: выход или вход и источник захвата; меняется при CC1E = 0.

TIMx_CCMR2 — режимы каналов 3 и 4

Смещение 0x1C, 32 бит, после сброса 0x0000 0000. В коде: TIM2->CCMR2.

31302928272625242322212019181716
—OC4M_3—OC3M_3
1514131211109876543210
OC4CEOC4MOC4PEOC4FECC4SOC3CEOC3MOC3PEOC3FECC3S
  • OC4M_3 (бит 24) — Старший бит режима сравнения канала 4: асимметричные и комбинированные режимы ШИМ.
  • OC3M_3 (бит 16) — Старший бит режима сравнения канала 3: асимметричные и комбинированные режимы ШИМ.
  • OC4CE (бит 15) — Сброс OC4REF сигналом ocref_clr_int: вход OCREF_CLR или ETRF (выбор — бит OCCS).
  • IC4F (биты 15:12) — Цифровой фильтр входа 4 (режим захвата).
  • OC4M (биты 14:12) — Режим сравнения канала 4, биты 2:0 (бит 3 — OC4M_3).
  • OC4PE (бит 11) — Буферизация CCR4: новое значение с события обновления.
  • IC4PSC (биты 11:10) — Предделитель захвата 4: каждое 1, 2, 4 или 8-е событие (режим захвата).
  • OC4FE (бит 10) — Ускоренная реакция выхода 4 на триггер (режимы ШИМ).
  • CC4S (биты 9:8) — Канал 4: выход или вход и источник захвата; меняется при CC4E = 0.
  • OC3CE (бит 7) — Сброс OC3REF сигналом ocref_clr_int: вход OCREF_CLR или ETRF (выбор — бит OCCS).
  • IC3F (биты 7:4) — Цифровой фильтр входа 3 (режим захвата).
  • OC3M (биты 6:4) — Режим сравнения канала 3, биты 2:0 (бит 3 — OC3M_3).
  • OC3PE (бит 3) — Буферизация CCR3: новое значение с события обновления.
  • IC3PSC (биты 3:2) — Предделитель захвата 3: каждое 1, 2, 4 или 8-е событие (режим захвата).
  • OC3FE (бит 2) — Ускоренная реакция выхода 3 на триггер (режимы ШИМ).
  • CC3S (биты 1:0) — Канал 3: выход или вход и источник захвата; меняется при CC3E = 0.

TIMx_CCER — включение и полярность каналов

Смещение 0x20, 32 бит, после сброса TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM14, TIM15, TIM16, TIM17: 0x0000. В коде: TIM2->CCER.

31302928272625242322212019181716
—CC6PCC6E—CC5PCC5E
1514131211109876543210
CC4NP—CC4PCC4ECC3NPCC3NECC3PCC3ECC2NPCC2NECC2PCC2ECC1NPCC1NECC1PCC1E
  • CC6P (бит 21) — Полярность OC6.
  • CC6E (бит 20) — Включение выхода OC6 (внутренний сигнал).
  • CC5P (бит 17) — Полярность OC5.
  • CC5E (бит 16) — Включение выхода OC5 (внутренний сигнал).
  • CC4NP (бит 15) — Полярность комплементарного выхода 4N.
  • CC4P (бит 13) — Полярность выхода 4; в режиме захвата — фронт захвата.
  • CC4E (бит 12) — Включение выхода 4; в режиме захвата — разрешение захвата.
  • CC3NP (бит 11) — Полярность комплементарного выхода 3N.
  • CC3NE (бит 10) — Включение комплементарного выхода 3N (TIM1, TIM15–TIM17).
  • CC3P (бит 9) — Полярность выхода 3; в режиме захвата — фронт захвата.
  • CC3E (бит 8) — Включение выхода 3; в режиме захвата — разрешение захвата.
  • CC2NP (бит 7) — Полярность комплементарного выхода 2N.
  • CC2NE (бит 6) — Включение комплементарного выхода 2N (TIM1, TIM15–TIM17).
  • CC2P (бит 5) — Полярность выхода 2; в режиме захвата — фронт захвата.
  • CC2E (бит 4) — Включение выхода 2; в режиме захвата — разрешение захвата.
  • CC1NP (бит 3) — Полярность комплементарного выхода 1N.
  • CC1NE (бит 2) — Включение комплементарного выхода 1N (TIM1, TIM15–TIM17).
  • CC1P (бит 1) — Полярность выхода 1; в режиме захвата — фронт захвата.
  • CC1E (бит 0) — Включение выхода 1; в режиме захвата — разрешение захвата.

TIMx_CNT — счётчик

Смещение 0x24, 32 бит, после сброса 0x0000 0000. В коде: TIM2->CNT.

31302928272625242322212019181716
UIFCPY—
1514131211109876543210
—
  • UIFCPY (бит 31) — Копия флага UIF (при UIFREMAP = 1).
  • CNT (биты 31:0) — Значение счётчика: 32 бита у TIM2, у остальных таймеров 16.

TIMx_PSC — предделитель

Смещение 0x28, 32 бит, после сброса 0x0000. В коде: TIM2->PSC.

31302928272625242322212019181716
—
1514131211109876543210
PSC
  • PSC (биты 15:0) — Предделитель: частота счёта = такт таймера / (PSC + 1).

TIMx_ARR — период (значение перезагрузки)

Смещение 0x2C, 32 бит, после сброса TIM1, TIM6, TIM7, TIM14, TIM15, TIM16, TIM17: 0xFFFF; TIM2, TIM3, TIM4: 0xFFFF FFFF. В коде: TIM2->ARR.

31302928272625242322212019181716
ARR
1514131211109876543210
ARR
  • ARR (биты 31:0) — Период: счётчик считает от 0 до ARR, всего ARR + 1 отсчётов.

TIMx_RCR — счётчик повторений

Смещение 0x30, 32 бит, после сброса 0x0000. В коде: TIM2->RCR.

31302928272625242322212019181716
—
1514131211109876543210
REP
  • REP (биты 15:0) — Счётчик повторений: событие обновления раз в REP + 1 периодов.

TIMx_CCR1 — сравнение и захват, канал 1

Смещение 0x34, 32 бит, после сброса TIM1, TIM14, TIM15, TIM16, TIM17: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR1.

31302928272625242322212019181716
—
1514131211109876543210
CCR1
  • CCR1 (биты 15:0) — Значение сравнения канала 1 или захваченное значение счётчика.

TIMx_CCR2 — сравнение и захват, канал 2

Смещение 0x38, 32 бит, после сброса TIM1, TIM15: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR2.

31302928272625242322212019181716
—
1514131211109876543210
CCR2
  • CCR2 (биты 15:0) — Значение сравнения канала 2 или захваченное значение счётчика.

TIMx_CCR3 — сравнение и захват, канал 3

Смещение 0x3C, 32 бит, после сброса TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR3.

31302928272625242322212019181716
—
1514131211109876543210
CCR3
  • CCR3 (биты 15:0) — Значение сравнения канала 3 или захваченное значение счётчика.

TIMx_CCR4 — сравнение и захват, канал 4

Смещение 0x40, 32 бит, после сброса TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR4.

31302928272625242322212019181716
—
1514131211109876543210
CCR4
  • CCR4 (биты 15:0) — Значение сравнения канала 4 или захваченное значение счётчика.

TIMx_BDTR — аварийный останов и мёртвое время

Смещение 0x44, 32 бит, после сброса 0x0000 0000. В коде: TIM2->BDTR.

31302928272625242322212019181716
—BK2BIDBKBIDBK2DSRMBKDSRMBK2PBK2EBK2FBKF
1514131211109876543210
MOEAOEBKPBKEOSSROSSILOCKDTG
  • BK2BID (бит 29) — Аварийный вход 2 двунаправленный: может выдавать сигнал.
  • BKBID (бит 28) — Аварийный вход двунаправленный: может выдавать сигнал.
  • BK2DSRM (бит 27) — Снятие и взвод аварийного входа 2.
  • BKDSRM (бит 26) — Снятие и взвод аварийного входа.
  • BK2P (бит 25) — Полярность аварийного входа 2.
  • BK2E (бит 24) — Включение аварийного входа 2.
  • BK2F (биты 23:20) — Фильтр аварийного входа 2.
  • BKF (биты 19:16) — Фильтр аварийного входа.
  • MOE (бит 15) — Главное включение выходов; сбрасывается аппаратно по входу BRK.
  • AOE (бит 14) — Автоматическая установка MOE на событии обновления.
  • BKP (бит 13) — Полярность аварийного входа BRK.
  • BKE (бит 12) — Включение аварийного входа BRK и сигнала отказа CSS.
  • OSSR (бит 11) — Состояние выключенного выхода при MOE = 1.
  • OSSI (бит 10) — Состояние выключенного выхода при MOE = 0.
  • LOCK (биты 9:8) — Защита настроек от записи; записывается один раз после сброса.
  • DTG (биты 7:0) — Мёртвое время между комплементарными выходами.

TIMx_DCR — пакетная передача DMA

Смещение 0x48, 32 бит, после сброса 0x0000. В коде: TIM2->DCR.

31302928272625242322212019181716
—
1514131211109876543210
—DBL—DBA
  • DBL (биты 12:8) — Число передач в пакете DMA: DBL + 1.
  • DBA (биты 4:0) — Первый регистр пакета DMA: смещение от CR1 в словах.

TIMx_DMAR — адрес пакетной передачи DMA

Смещение 0x4C, 32 бит, после сброса TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM15, TIM16, TIM17: 0x0000. В коде: TIM2->DMAR.

31302928272625242322212019181716
—
1514131211109876543210
DMAB
  • DMAB (биты 15:0) — Окно пакетного обмена DMA с регистрами таймера.

TIMx_CCMR3 — режимы каналов 5 и 6

Смещение 0x54, 32 бит, после сброса 0x0000 0000. В коде: TIM2->CCMR3.

31302928272625242322212019181716
—OC6M_3—OC5M_3
1514131211109876543210
OC6CEOC6MOC6PEOC6FE—OC5CEOC5MOC5PEOC5FE—
  • OC6M_3 (бит 24) — Старший бит режима сравнения канала 6: асимметричные и комбинированные режимы ШИМ.
  • OC5M_3 (бит 16) — Старший бит режима сравнения канала 5: асимметричные и комбинированные режимы ШИМ.
  • OC6CE (бит 15) — Сброс OC6REF сигналом ocref_clr_int: вход OCREF_CLR или ETRF (выбор — бит OCCS).
  • OC6M (биты 14:12) — Режим сравнения канала 6, биты 2:0.
  • OC6PE (бит 11) — Буферизация CCR6.
  • OC6FE (бит 10) — Быстрое включение OC6.
  • OC5CE (бит 7) — Сброс OC5REF сигналом ocref_clr_int: вход OCREF_CLR или ETRF (выбор — бит OCCS).
  • OC5M (биты 6:4) — Режим сравнения канала 5, биты 2:0.
  • OC5PE (бит 3) — Буферизация CCR5.
  • OC5FE (бит 2) — Быстрое включение OC5.

TIMx_CCR5 — сравнение, канал 5

Смещение 0x58, 32 бит, после сброса 0x0000 0000. В коде: TIM2->CCR5.

31302928272625242322212019181716
GC5C3GC5C2GC5C1—
1514131211109876543210
CCR5
  • GC5C3 (бит 31) — Объединение OC5REF с OC3REF (логическое И).
  • GC5C2 (бит 30) — Объединение OC5REF с OC2REF (логическое И).
  • GC5C1 (бит 29) — Объединение OC5REF с OC1REF (логическое И).
  • CCR5 (биты 15:0) — Значение сравнения канала 5.

TIMx_CCR6 — сравнение, канал 6

Смещение 0x5C, 32 бит, после сброса 0x0000. В коде: TIM2->CCR6.

31302928272625242322212019181716
—
1514131211109876543210
CCR6
  • CCR6 (биты 15:0) — Значение сравнения канала 6.

TIMx_TISEL — выбор входов TI1–TI4

Смещение 0x68, 32 бит, после сброса TIM1, TIM2, TIM3, TIM4, TIM15, TIM16, TIM17: 0x0000 0000; TIM14: 0x0000. В коде: TIM2->TISEL.

31302928272625242322212019181716
—TI4SEL—TI3SEL
1514131211109876543210
—TI2SEL—TI1SEL
  • TI4SEL (биты 27:24) — Источник входа TI4: вывод или внутренний сигнал.
  • TI3SEL (биты 19:16) — Источник входа TI3: вывод или внутренний сигнал.
  • TI2SEL (биты 11:8) — Источник входа TI2: вывод или внутренний сигнал.
  • TI1SEL (биты 3:0) — Источник входа TI1: вывод или внутренний сигнал.

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

Как включить ШИМ 1 на канале 1 TIM3 STM32G0?

В CCMR1: OC1M = 110 (биты 6:4), OC1M_3 = 0 и OC1PE = 1; CCER.CC1E = 1; PSC и ARR задают частоту, CCR1 — скважность. Затем EGR.UG = 1 и CR1.CEN = 1.

Почему код со старым макросом TIM_CCMR1_OC1M ведёт себя странно?

У STM32G0 макрос TIM_CCMR1_OC1M покрывает и бит 16. Запись TIMx->CCMR1 |= TIM_CCMR1_OC1M устанавливает OC1M = 1111 — асимметричный ШИМ 2, а не ШИМ 2. Задавайте биты через TIM_CCMR1_OC1M_0…_2.

Источники

  1. STMicroelectronics. RM0444: Reference manual (Rev 6) — раздел 21.4–25.6: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-g0 v1.4.5: заголовки CMSIS stm32g031xx.h, stm32g041xx.h, stm32g051xx.h, stm32g061xx.h, stm32g071xx.h, stm32g081xx.h, stm32g0b1xx.h, stm32g0c1xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры STM32G0

Калькуляторы и статьи