Регистры TIM STM32L1
Регистры таймеров STM32L1: таймеры общего назначения TIM2–TIM5 с четырьмя каналами (TIM5 — 32-битный), TIM9 с двумя каналами, TIM10 и TIM11 с одним, базовые TIM6 и TIM7 — счёт, захват, сравнение, ШИМ, энкодер и синхронизация.
У STM32L1 нет расширенных таймеров с комплементарными выходами и мёртвым временем. TIM2–TIM4 16-битные, TIM5 (у устройств с суффиксами xC…xE) — 32-битный; TIM9 имеет два канала, TIM10 и TIM11 — по одному; TIM6 и TIM7 — базовые таймеры для ЦАП. Частота счёта = fCK / (PSC + 1), период — ARR + 1 тактов (RM0038, разделы 17.4, 18.4, 18.5 и 19.4).
Регистры TIM2_OR, TIM3_OR, TIM9_OR, TIM10_OR и TIM11_OR переназначают входы и на этой странице не показаны: у каждого таймера свой набор битов.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| TIM2 | 0x4000 0000 | всех |
| TIM3 | 0x4000 0400 | всех |
| TIM4 | 0x4000 0800 | всех |
| TIM5 | 0x4000 0C00 | STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162 |
| TIM6 | 0x4000 1000 | всех |
| TIM7 | 0x4000 1400 | всех |
| TIM9 | 0x4001 0800 | всех |
| TIM10 | 0x4001 0C00 | всех |
| TIM11 | 0x4001 1000 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| TIMx_CR1 | 0x00 | Управление счётчиком | TIM2, TIM3, TIM4, TIM5, TIM9, TIM10, TIM11: 0x0000; TIM6, TIM7: 0xFFFF |
| TIMx_CR2 | 0x04 | Выход TRGO, DMA каналов и состояние покоя выходов | 0x0000 |
| TIMx_SMCR | 0x08 | Режим ведомого, триггер и внешний вход ETR | 0x0000 |
| TIMx_DIER | 0x0C | Разрешение прерываний и запросов DMA | 0x0000 |
| TIMx_SR | 0x10 | Флаги событий | 0x0000 |
| TIMx_EGR | 0x14 | Программные события | 0x0000 |
| TIMx_CCMR1 | 0x18 | Режимы каналов 1 и 2 | 0x0000 |
| TIMx_CCMR2 | 0x1C | Режимы каналов 3 и 4 | 0x0000 |
| TIMx_CCER | 0x20 | Включение и полярность каналов | 0x0000 |
| TIMx_CNT | 0x24 | Счётчик | TIM2, TIM3, TIM4, TIM5: 0x0000 0000; TIM9, TIM10, TIM11, TIM6, TIM7: 0x0000 |
| TIMx_PSC | 0x28 | Предделитель | 0x0000 |
| TIMx_ARR | 0x2C | Период (значение перезагрузки) | 0xFFFF |
| TIMx_CCR1 | 0x34 | Сравнение или захват, канал 1 | 0x0000 |
| TIMx_CCR2 | 0x38 | Сравнение или захват, канал 2 | 0x0000 |
| TIMx_CCR3 | 0x3C | Сравнение или захват, канал 3 | 0x0000 |
| TIMx_CCR4 | 0x40 | Сравнение или захват, канал 4 | 0x0000 |
| TIMx_DCR | 0x48 | Настройка пакетной передачи DMA | 0x0000 |
| TIMx_DMAR | 0x4C | Окно пакетной передачи DMA | 0x0000 |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000000
0000 0000 0000 0000 0000 0000 0000 0000
TIM2->CR1 = 0x00000000;TIMx_CR1 — управление счётчиком
Смещение 0x00, 32 бит, после сброса TIM2, TIM3, TIM4, TIM5, TIM9, TIM10, TIM11: 0x0000; TIM6, TIM7: 0xFFFF. В коде: 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 |
| — | CKD | ARPE | CMS | DIR | OPM | URS | UDIS | CEN | |||||||
- CKD (биты 9:8) — Период дискретизации цифровых фильтров tDTS относительно такта таймера.
CKD Значение 00 tDTS = tCK_INT 01 tDTS = 2 × tCK_INT 10 tDTS = 4 × tCK_INT 11 Зарезервировано - ARPE (бит 7) — Буферизация ARR: новое значение действует с события обновления.
- CMS (биты 6:5) — Счёт по фронту или центрированный (вверх и вниз).
CMS Значение 00 По фронту: направление задаёт DIR 01 Центрированный 1: флаги сравнения при счёте вниз 10 Центрированный 2: флаги сравнения при счёте вверх 11 Центрированный 3: флаги сравнения в обе стороны - DIR (бит 4) — Направление счёта.
DIR Значение 0 Вверх 1 Вниз - OPM (бит 3) — Режим одного импульса: счётчик останавливается на событии обновления.
- URS (бит 2) — Что вызывает прерывание и запрос DMA обновления.
URS Значение 0 Переполнение, бит UG или ведомый режим 1 Только переполнение счётчика - UDIS (бит 1) — Запрет события обновления.
- CEN (бит 0) — Включение счётчика.
TIMx_CR2 — выход TRGO, DMA каналов и состояние покоя выходов
Смещение 0x04, 32 бит, после сброса 0x0000. В коде: TIM2->CR2.
| 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 |
| — | TI1S | MMS | CCDS | — | |||||||||||
- TI1S (бит 7) — Вход TI1: вывод CH1 или исключающее ИЛИ выводов CH1–CH3 (датчики Холла).
TI1S Значение 0 Вывод CH1 1 CH1 XOR CH2 XOR CH3 - MMS (биты 6:4) — Сигнал TRGO для ведомых таймеров, АЦП и ЦАП.
MMS Значение 000 Сброс: бит UG 001 Включение счётчика CNT_EN 010 Событие обновления 011 Импульс при сравнении или захвате канала 1 100 OC1REF 101 OC2REF 110 OC3REF 111 OC4REF - CCDS (бит 3) — Запросы DMA каналов: по событию канала или по обновлению.
CCDS Значение 0 По событию канала 1 По событию обновления
TIMx_SMCR — режим ведомого, триггер и внешний вход ETR
Смещение 0x08, 32 бит, после сброса 0x0000. В коде: TIM2->SMCR.
| 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 |
| ETP | ECE | ETPS | ETF | MSM | TS | OCCS | SMS | ||||||||
- ETP (бит 15) — Полярность внешнего входа ETR.
ETP Значение 0 Без инверсии: высокий уровень или нарастающий фронт 1 С инверсией: низкий уровень или спадающий фронт - ECE (бит 14) — Внешнее тактирование, режим 2: счёт по фронтам ETR.
- ETPS (биты 13:12) — Предделитель входа ETR: частота ETRP не выше 1/4 такта таймера.
ETPS Значение 00 Без деления 01 Деление на 2 10 Деление на 4 11 Деление на 8 - ETF (биты 11:8) — Цифровой фильтр входа ETR.
ETF Значение 0000 Без фильтра, выборка с частотой fDTS 0001 fCK_INT, N = 2 0010 fCK_INT, N = 4 0011 fCK_INT, N = 8 0100 fDTS / 2, N = 6 0101 fDTS / 2, N = 8 0110 fDTS / 4, N = 6 0111 fDTS / 4, N = 8 1000 fDTS / 8, N = 6 1001 fDTS / 8, N = 8 1010 fDTS / 16, N = 5 1011 fDTS / 16, N = 6 1100 fDTS / 16, N = 8 1101 fDTS / 32, N = 5 1110 fDTS / 32, N = 6 1111 fDTS / 32, N = 8 - MSM (бит 7) — Задержка события TRGI для синхронного запуска ведомых таймеров.
- TS (биты 6:4) — Источник триггера TRGI.
TS Значение 000 ITR0 — внутренний триггер 0 001 ITR1 — внутренний триггер 1 010 ITR2 — внутренний триггер 2 011 ITR3 — внутренний триггер 3 100 TI1F_ED — любой фронт входа 1 101 TI1FP1 — фильтрованный вход 1 110 TI2FP2 — фильтрованный вход 2 111 ETRF — внешний вход ETR - OCCS (бит 3) — Источник сигнала OCREF_CLR: вход ETRF (1) или OCREF_CLR (0).
- SMS (биты 2:0) — Режим ведомого: энкодер, сброс, пропуск, запуск или внешнее тактирование.
SMS Значение 000 Выключен: счёт от внутреннего такта 001 Энкодер 1: счёт по фронтам TI1FP1, направление — по уровню TI2FP2 010 Энкодер 2: счёт по фронтам TI2FP2, направление — по уровню TI1FP1 011 Энкодер 3: счёт по фронтам обоих входов 100 Сброс: фронт TRGI перезапускает счётчик 101 Пропуск: счёт, пока на TRGI высокий уровень 110 Запуск: фронт TRGI включает счётчик 111 Внешнее тактирование 1: счёт по фронтам TRGI
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 | — | CC4DE | CC3DE | CC2DE | CC1DE | UDE | — | TIE | — | CC4IE | CC3IE | CC2IE | CC1IE | UIE |
- TDE (бит 14) — Запрос DMA по триггеру.
- CC4DE (бит 12) — Запрос DMA канала 4.
- CC3DE (бит 11) — Запрос DMA канала 3.
- CC2DE (бит 10) — Запрос DMA канала 2.
- CC1DE (бит 9) — Запрос DMA канала 1.
- UDE (бит 8) — Запрос DMA по обновлению.
- TIE (бит 6) — Прерывание по триггеру.
- CC4IE (бит 4) — Прерывание канала 4.
- CC3IE (бит 3) — Прерывание канала 3.
- CC2IE (бит 2) — Прерывание канала 2.
- CC1IE (бит 1) — Прерывание канала 1.
- UIE (бит 0) — Прерывание по обновлению.
TIMx_SR — флаги событий
Смещение 0x10, 32 бит, после сброса 0x0000. В коде: TIM2->SR.
| 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 |
| — | CC4OF | CC3OF | CC2OF | CC1OF | — | TIF | — | CC4IF | CC3IF | CC2IF | CC1IF | UIF | |||
- CC4OF (бит 12) — Повторный захват канала 4, пока флаг CC4IF не сброшен.
- CC3OF (бит 11) — Повторный захват канала 3, пока флаг CC3IF не сброшен.
- CC2OF (бит 10) — Повторный захват канала 2, пока флаг CC2IF не сброшен.
- CC1OF (бит 9) — Повторный захват канала 1, пока флаг CC1IF не сброшен.
- TIF (бит 6) — Флаг триггера.
- 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 |
| — | TG | — | CC4G | CC3G | CC2G | CC1G | UG | ||||||||
- TG (бит 6) — Программный триггер.
- CC4G (бит 4) — Программное событие канала 4.
- CC3G (бит 3) — Программное событие канала 3.
- CC2G (бит 2) — Программное событие канала 2.
- CC1G (бит 1) — Программное событие канала 1.
- UG (бит 0) — Программное обновление: перезапуск счётчика и загрузка буферов.
TIMx_CCMR1 — режимы каналов 1 и 2
Смещение 0x18, 32 бит, после сброса 0x0000. В коде: TIM2->CCMR1.
| 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 |
| OC2CE | OC2M | OC2PE | OC2FE | CC2S | OC1CE | OC1M | OC1PE | OC1FE | CC1S | ||||||
- OC2CE (бит 15) — Сброс OC2REF высоким уровнем на входе ETRF.
- IC2F (биты 15:12) — Цифровой фильтр входа 2 (режим захвата).
IC2F Значение 0000 Без фильтра, выборка с частотой fDTS 0001 fCK_INT, N = 2 0010 fCK_INT, N = 4 0011 fCK_INT, N = 8 0100 fDTS / 2, N = 6 0101 fDTS / 2, N = 8 0110 fDTS / 4, N = 6 0111 fDTS / 4, N = 8 1000 fDTS / 8, N = 6 1001 fDTS / 8, N = 8 1010 fDTS / 16, N = 5 1011 fDTS / 16, N = 6 1100 fDTS / 16, N = 8 1101 fDTS / 32, N = 5 1110 fDTS / 32, N = 6 1111 fDTS / 32, N = 8 - OC2M (биты 14:12) — Режим выхода 2: ШИМ, переключение, принудительный уровень.
OC2M Значение 000 Заморожен: сравнение не влияет на выход 001 Активный уровень при совпадении 010 Неактивный уровень при совпадении 011 Переключение при совпадении 100 Принудительно неактивный уровень 101 Принудительно активный уровень 110 ШИМ 1: активен, пока CNT < CCR (при счёте вверх) 111 ШИМ 2: неактивен, пока CNT < CCR (при счёте вверх) - OC2PE (бит 11) — Буферизация CCR2: новое значение с события обновления.
- IC2PSC (биты 11:10) — Предделитель захвата 2: каждое 1, 2, 4 или 8-е событие (режим захвата).
IC2PSC Значение 00 Каждый фронт 01 Каждый 2-й фронт 10 Каждый 4-й фронт 11 Каждый 8-й фронт - OC2FE (бит 10) — Ускоренная реакция выхода 2 на триггер (режимы ШИМ).
- CC2S (биты 9:8) — Канал 2: выход или вход и источник захвата; меняется при CC2E = 0.
CC2S Значение 00 Выход 01 Вход, захват с TI2 10 Вход, захват с TI1 11 Вход, захват с TRC (внутренний триггер) - OC1CE (бит 7) — Сброс OC1REF высоким уровнем на входе ETRF.
- IC1F (биты 7:4) — Цифровой фильтр входа 1 (режим захвата).
IC1F Значение 0000 Без фильтра, выборка с частотой fDTS 0001 fCK_INT, N = 2 0010 fCK_INT, N = 4 0011 fCK_INT, N = 8 0100 fDTS / 2, N = 6 0101 fDTS / 2, N = 8 0110 fDTS / 4, N = 6 0111 fDTS / 4, N = 8 1000 fDTS / 8, N = 6 1001 fDTS / 8, N = 8 1010 fDTS / 16, N = 5 1011 fDTS / 16, N = 6 1100 fDTS / 16, N = 8 1101 fDTS / 32, N = 5 1110 fDTS / 32, N = 6 1111 fDTS / 32, N = 8 - OC1M (биты 6:4) — Режим выхода 1: ШИМ, переключение, принудительный уровень.
OC1M Значение 000 Заморожен: сравнение не влияет на выход 001 Активный уровень при совпадении 010 Неактивный уровень при совпадении 011 Переключение при совпадении 100 Принудительно неактивный уровень 101 Принудительно активный уровень 110 ШИМ 1: активен, пока CNT < CCR (при счёте вверх) 111 ШИМ 2: неактивен, пока CNT < CCR (при счёте вверх) - OC1PE (бит 3) — Буферизация CCR1: новое значение с события обновления.
- IC1PSC (биты 3:2) — Предделитель захвата 1: каждое 1, 2, 4 или 8-е событие (режим захвата).
IC1PSC Значение 00 Каждый фронт 01 Каждый 2-й фронт 10 Каждый 4-й фронт 11 Каждый 8-й фронт - OC1FE (бит 2) — Ускоренная реакция выхода 1 на триггер (режимы ШИМ).
- CC1S (биты 1:0) — Канал 1: выход или вход и источник захвата; меняется при CC1E = 0.
CC1S Значение 00 Выход 01 Вход, захват с TI1 10 Вход, захват с TI2 11 Вход, захват с TRC (внутренний триггер)
TIMx_CCMR2 — режимы каналов 3 и 4
Смещение 0x1C, 32 бит, после сброса 0x0000. В коде: TIM2->CCMR2.
| 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 |
| OC4CE | OC4M | OC4PE | OC4FE | CC4S | OC3CE | OC3M | OC3PE | OC3FE | CC3S | ||||||
- OC4CE (бит 15) — Сброс OC4REF высоким уровнем на входе ETRF.
- IC4F (биты 15:12) — Цифровой фильтр входа 4 (режим захвата).
IC4F Значение 0000 Без фильтра, выборка с частотой fDTS 0001 fCK_INT, N = 2 0010 fCK_INT, N = 4 0011 fCK_INT, N = 8 0100 fDTS / 2, N = 6 0101 fDTS / 2, N = 8 0110 fDTS / 4, N = 6 0111 fDTS / 4, N = 8 1000 fDTS / 8, N = 6 1001 fDTS / 8, N = 8 1010 fDTS / 16, N = 5 1011 fDTS / 16, N = 6 1100 fDTS / 16, N = 8 1101 fDTS / 32, N = 5 1110 fDTS / 32, N = 6 1111 fDTS / 32, N = 8 - OC4M (биты 14:12) — Режим выхода 4: ШИМ, переключение, принудительный уровень.
OC4M Значение 000 Заморожен: сравнение не влияет на выход 001 Активный уровень при совпадении 010 Неактивный уровень при совпадении 011 Переключение при совпадении 100 Принудительно неактивный уровень 101 Принудительно активный уровень 110 ШИМ 1: активен, пока CNT < CCR (при счёте вверх) 111 ШИМ 2: неактивен, пока CNT < CCR (при счёте вверх) - OC4PE (бит 11) — Буферизация CCR4: новое значение с события обновления.
- IC4PSC (биты 11:10) — Предделитель захвата 4: каждое 1, 2, 4 или 8-е событие (режим захвата).
IC4PSC Значение 00 Каждый фронт 01 Каждый 2-й фронт 10 Каждый 4-й фронт 11 Каждый 8-й фронт - OC4FE (бит 10) — Ускоренная реакция выхода 4 на триггер (режимы ШИМ).
- CC4S (биты 9:8) — Канал 4: выход или вход и источник захвата; меняется при CC4E = 0.
CC4S Значение 00 Выход 01 Вход, захват с TI4 10 Вход, захват с TI3 11 Вход, захват с TRC (внутренний триггер) - OC3CE (бит 7) — Сброс OC3REF высоким уровнем на входе ETRF.
- IC3F (биты 7:4) — Цифровой фильтр входа 3 (режим захвата).
IC3F Значение 0000 Без фильтра, выборка с частотой fDTS 0001 fCK_INT, N = 2 0010 fCK_INT, N = 4 0011 fCK_INT, N = 8 0100 fDTS / 2, N = 6 0101 fDTS / 2, N = 8 0110 fDTS / 4, N = 6 0111 fDTS / 4, N = 8 1000 fDTS / 8, N = 6 1001 fDTS / 8, N = 8 1010 fDTS / 16, N = 5 1011 fDTS / 16, N = 6 1100 fDTS / 16, N = 8 1101 fDTS / 32, N = 5 1110 fDTS / 32, N = 6 1111 fDTS / 32, N = 8 - OC3M (биты 6:4) — Режим выхода 3: ШИМ, переключение, принудительный уровень.
OC3M Значение 000 Заморожен: сравнение не влияет на выход 001 Активный уровень при совпадении 010 Неактивный уровень при совпадении 011 Переключение при совпадении 100 Принудительно неактивный уровень 101 Принудительно активный уровень 110 ШИМ 1: активен, пока CNT < CCR (при счёте вверх) 111 ШИМ 2: неактивен, пока CNT < CCR (при счёте вверх) - OC3PE (бит 3) — Буферизация CCR3: новое значение с события обновления.
- IC3PSC (биты 3:2) — Предделитель захвата 3: каждое 1, 2, 4 или 8-е событие (режим захвата).
IC3PSC Значение 00 Каждый фронт 01 Каждый 2-й фронт 10 Каждый 4-й фронт 11 Каждый 8-й фронт - OC3FE (бит 2) — Ускоренная реакция выхода 3 на триггер (режимы ШИМ).
- CC3S (биты 1:0) — Канал 3: выход или вход и источник захвата; меняется при CC3E = 0.
CC3S Значение 00 Выход 01 Вход, захват с TI3 10 Вход, захват с TI4 11 Вход, захват с TRC (внутренний триггер)
TIMx_CCER — включение и полярность каналов
Смещение 0x20, 32 бит, после сброса 0x0000. В коде: TIM2->CCER.
| 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 |
| CC4NP | — | CC4P | CC4E | CC3NP | — | CC3P | CC3E | CC2NP | — | CC2P | CC2E | CC1NP | — | CC1P | CC1E |
- CC4NP (бит 15) — Полярность комплементарного выхода 4N.
CC4NP Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC4P (бит 13) — Полярность выхода 4; в режиме захвата — фронт захвата.
CC4P Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC4E (бит 12) — Включение выхода 4; в режиме захвата — разрешение захвата.
- CC3NP (бит 11) — Полярность комплементарного выхода 3N.
CC3NP Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC3P (бит 9) — Полярность выхода 3; в режиме захвата — фронт захвата.
CC3P Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC3E (бит 8) — Включение выхода 3; в режиме захвата — разрешение захвата.
- CC2NP (бит 7) — Полярность комплементарного выхода 2N.
CC2NP Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC2P (бит 5) — Полярность выхода 2; в режиме захвата — фронт захвата.
CC2P Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC2E (бит 4) — Включение выхода 2; в режиме захвата — разрешение захвата.
- CC1NP (бит 3) — Полярность комплементарного выхода 1N.
CC1NP Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC1P (бит 1) — Полярность выхода 1; в режиме захвата — фронт захвата.
CC1P Значение 0 Активный высокий; захват по нарастающему фронту 1 Активный низкий; захват по спадающему фронту - CC1E (бит 0) — Включение выхода 1; в режиме захвата — разрешение захвата.
TIMx_CNT — счётчик
Смещение 0x24, 32 бит, после сброса TIM2, TIM3, TIM4, TIM5: 0x0000 0000; TIM9, TIM10, TIM11, TIM6, TIM7: 0x0000. В коде: TIM2->CNT.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| CNT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CNT | |||||||||||||||
- CNT (биты 31:0) — Значение счётчика: 32 бита у TIM5, у остальных таймеров 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 бит, после сброса 0xFFFF. В коде: 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_CCR1 — сравнение или захват, канал 1
Смещение 0x34, 32 бит, после сброса 0x0000. В коде: 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 бит, после сброса 0x0000. В коде: 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 бит, после сброса 0x0000. В коде: 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 бит, после сброса 0x0000. В коде: 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_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 бит, после сброса 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 с регистрами таймера.
Частые вопросы
Как получить ШИМ 20 кГц на TIM3 STM32L1 при 32 МГц?
PSC = 0, ARR = 1599. Канал в режиме ШИМ 1: OCxM = 110 и OCxPE = 1, коэффициент заполнения — CCRx / 1600. Включите выход битом CCxE и счётчик битом CEN.
Источники
- STMicroelectronics. RM0038: Reference manual (Rev 18) — раздел 17.4: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-l1 v2.3.4: заголовки CMSIS stm32l100xb.h, stm32l100xba.h, stm32l100xc.h, stm32l151xb.h, stm32l151xba.h, stm32l151xc.h, stm32l151xca.h, stm32l151xd.h, stm32l151xdx.h, stm32l151xe.h, stm32l152xb.h, stm32l152xba.h, stm32l152xc.h, stm32l152xca.h, stm32l152xd.h, stm32l152xdx.h, stm32l152xe.h, stm32l162xc.h, stm32l162xca.h, stm32l162xd.h, stm32l162xdx.h, stm32l162xe.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах? ·
Другие регистры STM32L1
- Все регистры STM32L1Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_ICSCR, RCC_CFGR, RCC_CIR, RCC_AHBRSTR, RCC_APB2RSTR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_MEMRMP, SYSCFG_PMC, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4
- EXTI — контроллер внешних прерываний и событийEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USART и UARTUSART_SR, USART_DR, USART_BRR, USART_CR1, USART_CR2, USART_CR3
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_DR, I2C_SR1
- DMA — контроллеры прямого доступа к памятиDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR
- АЦП — аналого-цифровой преобразовательADC_SR, ADC_CR1, ADC_CR2, ADC_SMPR1, ADC_SMPR2, ADC_SMPR3
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — блок вычисления CRCCRC_DR, CRC_IDR, CRC_CR
- DBGMCU — поддержка отладкиDBGMCU_IDCODE, DBGMCU_CR, DBGMCU_APB1_FZ, DBGMCU_APB2_FZ
- PWR — управление питаниемPWR_CR, PWR_CSR
- FLASH — интерфейс флеш-памяти и EEPROMFLASH_ACR, FLASH_PECR, FLASH_PDKEYR, FLASH_PEKEYR, FLASH_PRGKEYR, FLASH_OPTKEYR
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR
- ЦАП — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2