Регистры 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).
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| TIM2 | 0x4000 0000 | всех |
| TIM3 | 0x4000 0400 | всех |
| TIM4 | 0x4000 0800 | STM32G0B1, STM32G0C1 |
| TIM6 | 0x4000 1000 | STM32G051, STM32G061, STM32G071, STM32G081, STM32G0B1, STM32G0C1 |
| TIM7 | 0x4000 1400 | STM32G051, STM32G061, STM32G071, STM32G081, STM32G0B1, STM32G0C1 |
| TIM14 | 0x4000 2000 | всех |
| TIM1 | 0x4001 2C00 | всех |
| TIM15 | 0x4001 4000 | STM32G051, STM32G061, STM32G071, STM32G081, STM32G0B1, STM32G0C1 |
| TIM16 | 0x4001 4400 | всех |
| TIM17 | 0x4001 4800 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| TIMx_CR1 | 0x00 | Счёт, режим одного импульса, буферизация | 0x0000 |
| TIMx_CR2 | 0x04 | Ведущий режим, DMA, состояния выходов | TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM6, TIM7, TIM15, TIM16, TIM17: 0x0000 |
| TIMx_SMCR | 0x08 | Ведомый режим, триггер и внешний такт | 0x0000 0000 |
| TIMx_DIER | 0x0C | Разрешение прерываний и запросов DMA | 0x0000 |
| TIMx_SR | 0x10 | Флаги прерываний | TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM6, TIM7, TIM14, TIM15, TIM16, TIM17: 0x0000 |
| TIMx_EGR | 0x14 | Программные события | 0x0000 |
| TIMx_CCMR1 | 0x18 | Режимы каналов 1 и 2 | 0x0000 0000 |
| TIMx_CCMR2 | 0x1C | Режимы каналов 3 и 4 | 0x0000 0000 |
| TIMx_CCER | 0x20 | Включение и полярность каналов | TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM14, TIM15, TIM16, TIM17: 0x0000 |
| TIMx_CNT | 0x24 | Счётчик | 0x0000 0000 |
| TIMx_PSC | 0x28 | Предделитель | 0x0000 |
| TIMx_ARR | 0x2C | Период (значение перезагрузки) | TIM1, TIM6, TIM7, TIM14, TIM15, TIM16, TIM17: 0xFFFF; TIM2, TIM3, TIM4: 0xFFFF FFFF |
| TIMx_RCR | 0x30 | Счётчик повторений | 0x0000 |
| TIMx_CCR1 | 0x34 | Сравнение и захват, канал 1 | TIM1, TIM14, TIM15, TIM16, TIM17: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000 |
| TIMx_CCR2 | 0x38 | Сравнение и захват, канал 2 | TIM1, TIM15: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000 |
| TIMx_CCR3 | 0x3C | Сравнение и захват, канал 3 | TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000 |
| TIMx_CCR4 | 0x40 | Сравнение и захват, канал 4 | TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000 |
| TIMx_BDTR | 0x44 | Аварийный останов и мёртвое время | 0x0000 0000 |
| TIMx_DCR | 0x48 | Пакетная передача DMA | 0x0000 |
| TIMx_DMAR | 0x4C | Адрес пакетной передачи DMA | TIM1: 0x0000 0000; TIM2, TIM3, TIM4, TIM15, TIM16, TIM17: 0x0000 |
| TIMx_CCMR3 | 0x54 | Режимы каналов 5 и 6 | 0x0000 0000 |
| TIMx_CCR5 | 0x58 | Сравнение, канал 5 | 0x0000 0000 |
| TIMx_CCR6 | 0x5C | Сравнение, канал 6 | 0x0000 |
| TIMx_TISEL | 0x68 | Выбор входов TI1–TI4 | TIM1, 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | UIFREMAP | — | CKD | ARPE | CMS | DIR | OPM | URS | UDIS | CEN | |||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MMS2 | — | OIS6 | — | OIS5 | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | OIS4 | OIS3N | OIS3 | OIS2N | OIS2 | OIS1N | OIS1 | TI1S | MMS | CCDS | CCUS | — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TS_4 | TS_3 | — | SMS_3 | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ETP | ECE | ETPS | ETF | MSM | TS | OCCS | SMS | ||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TDE | COMDE | CC4DE | CC3DE | CC2DE | CC1DE | UDE | BIE | TIE | COMIE | CC4IE | CC3IE | CC2IE | CC1IE | UIE |
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CC6IF | CC5IF | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SBIF | CC4OF | CC3OF | CC2OF | CC1OF | B2IF | BIF | TIF | COMIF | CC4IF | CC3IF | CC2IF | CC1IF | UIF | |
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | B2G | BG | TG | COMG | CC4G | CC3G | CC2G | CC1G | UG | ||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | OC2M_3 | — | OC1M_3 | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OC2CE | OC2M | OC2PE | OC2FE | CC2S | OC1CE | OC1M | OC1PE | OC1FE | CC1S | ||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | OC4M_3 | — | OC3M_3 | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OC4CE | OC4M | OC4PE | OC4FE | CC4S | OC3CE | OC3M | OC3PE | OC3FE | CC3S | ||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CC6P | CC6E | — | CC5P | CC5E | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CC4NP | — | CC4P | CC4E | CC3NP | CC3NE | CC3P | CC3E | CC2NP | CC2NE | CC2P | CC2E | CC1NP | CC1NE | CC1P | CC1E |
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| UIFCPY | — | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
- UIFCPY (бит 31) — Копия флага UIF (при UIFREMAP = 1).
- CNT (биты 31:0) — Значение счётчика: 32 бита у TIM2, у остальных таймеров 16.
TIMx_PSC — предделитель
Смещение 0x28, 32 бит, после сброса 0x0000. В коде: TIM2->PSC.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARR | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARR | |||||||||||||||
- ARR (биты 31:0) — Период: счётчик считает от 0 до ARR, всего ARR + 1 отсчётов.
TIMx_RCR — счётчик повторений
Смещение 0x30, 32 бит, после сброса 0x0000. В коде: TIM2->RCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REP | |||||||||||||||
- REP (биты 15:0) — Счётчик повторений: событие обновления раз в REP + 1 периодов.
TIMx_CCR1 — сравнение и захват, канал 1
Смещение 0x34, 32 бит, после сброса TIM1, TIM14, TIM15, TIM16, TIM17: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR1 | |||||||||||||||
- CCR1 (биты 15:0) — Значение сравнения канала 1 или захваченное значение счётчика.
TIMx_CCR2 — сравнение и захват, канал 2
Смещение 0x38, 32 бит, после сброса TIM1, TIM15: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR2 | |||||||||||||||
- CCR2 (биты 15:0) — Значение сравнения канала 2 или захваченное значение счётчика.
TIMx_CCR3 — сравнение и захват, канал 3
Смещение 0x3C, 32 бит, после сброса TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR3 | |||||||||||||||
- CCR3 (биты 15:0) — Значение сравнения канала 3 или захваченное значение счётчика.
TIMx_CCR4 — сравнение и захват, канал 4
Смещение 0x40, 32 бит, после сброса TIM1: 0x0000; TIM2, TIM3, TIM4: 0x0000 0000. В коде: TIM2->CCR4.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR4 | |||||||||||||||
- CCR4 (биты 15:0) — Значение сравнения канала 4 или захваченное значение счётчика.
TIMx_BDTR — аварийный останов и мёртвое время
Смещение 0x44, 32 бит, после сброса 0x0000 0000. В коде: TIM2->BDTR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BK2BID | BKBID | BK2DSRM | BKDSRM | BK2P | BK2E | BK2F | BKF | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MOE | AOE | BKP | BKE | OSSR | OSSI | LOCK | DTG | ||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DMAB | |||||||||||||||
- DMAB (биты 15:0) — Окно пакетного обмена DMA с регистрами таймера.
TIMx_CCMR3 — режимы каналов 5 и 6
Смещение 0x54, 32 бит, после сброса 0x0000 0000. В коде: TIM2->CCMR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | OC6M_3 | — | OC5M_3 | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OC6CE | OC6M | OC6PE | OC6FE | — | OC5CE | OC5M | OC5PE | OC5FE | — | ||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| GC5C3 | GC5C2 | GC5C1 | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR6 | |||||||||||||||
- CCR6 (биты 15:0) — Значение сравнения канала 6.
TIMx_TISEL — выбор входов TI1–TI4
Смещение 0x68, 32 бит, после сброса TIM1, TIM2, TIM3, TIM4, TIM15, TIM16, TIM17: 0x0000 0000; TIM14: 0x0000. В коде: TIM2->TISEL.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TI4SEL | — | TI3SEL | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
Источники
- STMicroelectronics. RM0444: Reference manual (Rev 6) — раздел 21.4–25.6: описание регистров, назначение полей и значения после сброса
- 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
- Все регистры STM32G0Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_ICSCR, RCC_CFGR, RCC_PLLCFGR, RCC_CRRCR, RCC_CIER
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_CFGR1, SYSCFG_CFGR2
- EXTI — внешние прерыванияEXTI_RTSR1, EXTI_FTSR1, EXTI_SWIER1, EXTI_RPR1, EXTI_FPR1, EXTI_RTSR2
- USART — последовательные порты USART и LPUARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_TIMINGR, I2C_TIMEOUTR
- LPTIM — маломощные таймерыLPTIM_ISR, LPTIM_ICR, LPTIM_IER, LPTIM_CFGR, LPTIM_CR, LPTIM_CMP
- DMA — прямой доступ к памяти и DMAMUXDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR
- ADC — аналого-цифровой преобразовательADC_ISR, ADC_IER, ADC_CR, ADC_CFGR1, ADC_CFGR2, ADC_SMPR
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR, IWDG_WINR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — вычислитель CRCCRC_DR, CRC_IDR, CRC_CR, CRC_INIT, CRC_POL
- DBG — блок отладкиDBG_IDCODE, DBG_CR, DBG_APB_FZ1, DBG_APB_FZ2
- PWR — управление питаниемPWR_CR1, PWR_CR2, PWR_CR3, PWR_CR4, PWR_SR1, PWR_SR2
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_ECCR
- RTC — часы реального времени и защита от вмешательстваRTC_TR, RTC_DR, RTC_SSR, RTC_ICSR, RTC_PRER, RTC_WUTR
- DAC — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2