Регистры SYSCFG STM32L0
Регистры SYSCFG STM32L0x1: режим загрузки и память по адресу 0, обмен банков флеш-памяти, Fast-mode Plus выводов I2C, отключение файрвола, буферы опорного напряжения VREFINT и выбор порта для линий EXTI.
SYSCFG_CFGR1 показывает режим загрузки, выбранный выводами при сбросе, и позволяет отобразить с адреса 0 флеш-память, системную память или SRAM. SYSCFG_CFGR2 включает Fast-mode Plus (1 МГц) для I2C и отдельных выводов PB6–PB9; там же бит FWDISEN — запись 0 включает файрвол (RM0377, раздел 9.2).
SYSCFG_CFGR3 управляет буферами VREFINT: без бита ENBUF_VREFINT_ADC канал VREFINT АЦП показывает не опорное напряжение, а ENBUF_SENSOR_ADC нужен датчику температуры. Регистры EXTICR1–EXTICR4 выбирают порт для каждой линии EXTI0–EXTI15. Тактирование SYSCFG — бит SYSCFGEN в RCC_APB2ENR.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| SYSCFG | 0x4001 0000 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| SYSCFG_CFGR1 | 0x00 | Режим загрузки и отображение памяти | 0x000X 000X (X — память, выбранная конфигурацией загрузки) |
| SYSCFG_CFGR2 | 0x04 | Режим Fast-mode Plus выводов I2C и файрвол | 0x0000 0001 |
| SYSCFG_EXTICR1 | 0x08 | Источники линий EXTI0–EXTI3 | 0x0000 |
| SYSCFG_EXTICR2 | 0x0C | Источники линий EXTI4–EXTI7 | 0x0000 |
| SYSCFG_EXTICR3 | 0x10 | Источники линий EXTI8–EXTI11 | 0x0000 |
| SYSCFG_EXTICR4 | 0x14 | Источники линий EXTI12–EXTI15 | 0x0000 |
| SYSCFG_CFGR3 | 0x20 | Опорное напряжение VREFINT для АЦП и компараторов | 0x0000 0000 |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000000
0000 0000 0000 0000 0000 0000 0000 0000
SYSCFG->CFGR1 = 0x00000000;SYSCFG_CFGR1 — режим загрузки и отображение памяти
Смещение 0x00, адрес 0x4001 0000, 32 бит, после сброса 0x000X 000X (X — память, выбранная конфигурацией загрузки). В коде: SYSCFG->CFGR1.
| 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 |
| — | BOOT_MODE | — | UFB | — | MEM_MODE | ||||||||||
- BOOT_MODE (биты 9:8) — Режим загрузки, выбранный выводами BOOT при сбросе (только чтение).
BOOT_MODE Значение 00 Загрузка из основной флеш-памяти 01 Загрузка из системной памяти 11 Загрузка из SRAM - UFB (бит 3) — Обмен банков флеш-памяти: банк 2 отображается с адреса 0x0800 0000 (только у STM32L071, STM32L081).
- MEM_MODE (биты 1:0) — Память, отображаемая с адреса 0x0000 0000.
MEM_MODE Значение 00 Основная флеш-память 01 Системная память (загрузчик) 10 Зарезервировано 11 Встроенная SRAM
SYSCFG_CFGR2 — режим Fast-mode Plus выводов I2C и файрвол
Смещение 0x04, адрес 0x4001 0004, 32 бит, после сброса 0x0000 0001. В коде: SYSCFG->CFGR2.
| 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 |
| — | I2C3_FMP | I2C2_FMP | I2C1_FMP | I2C_PB9_FMP | I2C_PB8_FMP | I2C_PB7_FMP | I2C_PB6_FMP | — | FWDISEN | ||||||
- I2C3_FMP (бит 14) — Режим Fast-mode Plus (1 МГц) выводов I2C3 (только у STM32L071, STM32L081).
- I2C2_FMP (бит 13) — Режим Fast-mode Plus (1 МГц) выводов I2C2 (только у STM32L051, STM32L071, STM32L081).
- I2C1_FMP (бит 12) — Режим Fast-mode Plus (1 МГц) выводов I2C1.
- I2C_PB9_FMP (бит 11) — Режим Fast-mode Plus (сильный выход) вывода PB9.
- I2C_PB8_FMP (бит 10) — Режим Fast-mode Plus (сильный выход) вывода PB8.
- I2C_PB7_FMP (бит 9) — Режим Fast-mode Plus (сильный выход) вывода PB7.
- I2C_PB6_FMP (бит 8) — Режим Fast-mode Plus (сильный выход) вывода PB6.
- FWDISEN (бит 0) — Запись 0 включает файрвол; выключить его снова можно только сбросом.
SYSCFG_EXTICR1 — источники линий EXTI0–EXTI3
Смещение 0x08, адрес 0x4001 0008, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[0].
| 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 |
| EXTI3 | EXTI2 | EXTI1 | EXTI0 | ||||||||||||
- EXTI3 (биты 15:12) — Порт, вывод 3 которого подключён к линии EXTI3.
EXTI3 Значение Макрос CMSIS 0000 Порт A (PA3) SYSCFG_EXTICR1_EXTI3_PA 0001 Порт B (PB3) SYSCFG_EXTICR1_EXTI3_PB 0010 Порт C (PC3) SYSCFG_EXTICR1_EXTI3_PC 0011 Порт D (PD3) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI3_PD 0100 Порт E (PE3) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI3_PE - EXTI2 (биты 11:8) — Порт, вывод 2 которого подключён к линии EXTI2.
EXTI2 Значение Макрос CMSIS 0000 Порт A (PA2) SYSCFG_EXTICR1_EXTI2_PA 0001 Порт B (PB2) SYSCFG_EXTICR1_EXTI2_PB 0010 Порт C (PC2) SYSCFG_EXTICR1_EXTI2_PC 0011 Порт D (PD2) SYSCFG_EXTICR1_EXTI2_PD 0100 Порт E (PE2) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI2_PE - EXTI1 (биты 7:4) — Порт, вывод 1 которого подключён к линии EXTI1.
EXTI1 Значение Макрос CMSIS 0000 Порт A (PA1) SYSCFG_EXTICR1_EXTI1_PA 0001 Порт B (PB1) SYSCFG_EXTICR1_EXTI1_PB 0010 Порт C (PC1) SYSCFG_EXTICR1_EXTI1_PC 0011 Порт D (PD1) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI1_PD 0100 Порт E (PE1) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI1_PE 0101 Порт H (PH1) SYSCFG_EXTICR1_EXTI1_PH - EXTI0 (биты 3:0) — Порт, вывод 0 которого подключён к линии EXTI0.
EXTI0 Значение Макрос CMSIS 0000 Порт A (PA0) SYSCFG_EXTICR1_EXTI0_PA 0001 Порт B (PB0) SYSCFG_EXTICR1_EXTI0_PB 0010 Порт C (PC0) SYSCFG_EXTICR1_EXTI0_PC 0011 Порт D (PD0) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI0_PD 0100 Порт E (PE0) (только у STM32L071, STM32L081) SYSCFG_EXTICR1_EXTI0_PE 0101 Порт H (PH0) SYSCFG_EXTICR1_EXTI0_PH
SYSCFG_EXTICR2 — источники линий EXTI4–EXTI7
Смещение 0x0C, адрес 0x4001 000C, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[1].
| 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 |
| EXTI7 | EXTI6 | EXTI5 | EXTI4 | ||||||||||||
- EXTI7 (биты 15:12) — Порт, вывод 7 которого подключён к линии EXTI7.
EXTI7 Значение Макрос CMSIS 0000 Порт A (PA7) SYSCFG_EXTICR2_EXTI7_PA 0001 Порт B (PB7) SYSCFG_EXTICR2_EXTI7_PB 0010 Порт C (PC7) SYSCFG_EXTICR2_EXTI7_PC 0011 Порт D (PD7) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI7_PD 0100 Порт E (PE7) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI7_PE - EXTI6 (биты 11:8) — Порт, вывод 6 которого подключён к линии EXTI6.
EXTI6 Значение Макрос CMSIS 0000 Порт A (PA6) SYSCFG_EXTICR2_EXTI6_PA 0001 Порт B (PB6) SYSCFG_EXTICR2_EXTI6_PB 0010 Порт C (PC6) SYSCFG_EXTICR2_EXTI6_PC 0011 Порт D (PD6) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI6_PD 0100 Порт E (PE6) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI6_PE - EXTI5 (биты 7:4) — Порт, вывод 5 которого подключён к линии EXTI5.
EXTI5 Значение Макрос CMSIS 0000 Порт A (PA5) SYSCFG_EXTICR2_EXTI5_PA 0001 Порт B (PB5) SYSCFG_EXTICR2_EXTI5_PB 0010 Порт C (PC5) SYSCFG_EXTICR2_EXTI5_PC 0011 Порт D (PD5) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI5_PD 0100 Порт E (PE5) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI5_PE - EXTI4 (биты 3:0) — Порт, вывод 4 которого подключён к линии EXTI4.
EXTI4 Значение Макрос CMSIS 0000 Порт A (PA4) SYSCFG_EXTICR2_EXTI4_PA 0001 Порт B (PB4) SYSCFG_EXTICR2_EXTI4_PB 0010 Порт C (PC4) SYSCFG_EXTICR2_EXTI4_PC 0011 Порт D (PD4) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI4_PD 0100 Порт E (PE4) (только у STM32L071, STM32L081) SYSCFG_EXTICR2_EXTI4_PE
SYSCFG_EXTICR3 — источники линий EXTI8–EXTI11
Смещение 0x10, адрес 0x4001 0010, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[2].
| 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 |
| EXTI11 | EXTI10 | EXTI9 | EXTI8 | ||||||||||||
- EXTI11 (биты 15:12) — Порт, вывод 11 которого подключён к линии EXTI11.
EXTI11 Значение Макрос CMSIS 0000 Порт A (PA11) SYSCFG_EXTICR3_EXTI11_PA 0001 Порт B (PB11) SYSCFG_EXTICR3_EXTI11_PB 0010 Порт C (PC11) SYSCFG_EXTICR3_EXTI11_PC 0011 Порт D (PD11) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI11_PD 0100 Порт E (PE11) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI11_PE - EXTI10 (биты 11:8) — Порт, вывод 10 которого подключён к линии EXTI10.
EXTI10 Значение Макрос CMSIS 0000 Порт A (PA10) SYSCFG_EXTICR3_EXTI10_PA 0001 Порт B (PB10) SYSCFG_EXTICR3_EXTI10_PB 0010 Порт C (PC10) SYSCFG_EXTICR3_EXTI10_PC 0011 Порт D (PD10) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI10_PD 0100 Порт E (PE10) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI10_PE 0101 Порт H (PH10) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI10_PH - EXTI9 (биты 7:4) — Порт, вывод 9 которого подключён к линии EXTI9.
EXTI9 Значение Макрос CMSIS 0000 Порт A (PA9) SYSCFG_EXTICR3_EXTI9_PA 0001 Порт B (PB9) SYSCFG_EXTICR3_EXTI9_PB 0010 Порт C (PC9) SYSCFG_EXTICR3_EXTI9_PC 0011 Порт D (PD9) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI9_PD 0100 Порт E (PE9) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI9_PE 0101 Порт H (PH9) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI9_PH - EXTI8 (биты 3:0) — Порт, вывод 8 которого подключён к линии EXTI8.
EXTI8 Значение Макрос CMSIS 0000 Порт A (PA8) SYSCFG_EXTICR3_EXTI8_PA 0001 Порт B (PB8) SYSCFG_EXTICR3_EXTI8_PB 0010 Порт C (PC8) SYSCFG_EXTICR3_EXTI8_PC 0011 Порт D (PD8) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI8_PD 0100 Порт E (PE8) (только у STM32L071, STM32L081) SYSCFG_EXTICR3_EXTI8_PE
SYSCFG_EXTICR4 — источники линий EXTI12–EXTI15
Смещение 0x14, адрес 0x4001 0014, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[3].
| 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 |
| EXTI15 | EXTI14 | EXTI13 | EXTI12 | ||||||||||||
- EXTI15 (биты 15:12) — Порт, вывод 15 которого подключён к линии EXTI15.
EXTI15 Значение Макрос CMSIS 0000 Порт A (PA15) SYSCFG_EXTICR4_EXTI15_PA 0001 Порт B (PB15) SYSCFG_EXTICR4_EXTI15_PB 0010 Порт C (PC15) SYSCFG_EXTICR4_EXTI15_PC 0011 Порт D (PD15) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI15_PD 0100 Порт E (PE15) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI15_PE - EXTI14 (биты 11:8) — Порт, вывод 14 которого подключён к линии EXTI14.
EXTI14 Значение Макрос CMSIS 0000 Порт A (PA14) SYSCFG_EXTICR4_EXTI14_PA 0001 Порт B (PB14) SYSCFG_EXTICR4_EXTI14_PB 0010 Порт C (PC14) SYSCFG_EXTICR4_EXTI14_PC 0011 Порт D (PD14) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI14_PD 0100 Порт E (PE14) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI14_PE - EXTI13 (биты 7:4) — Порт, вывод 13 которого подключён к линии EXTI13.
EXTI13 Значение Макрос CMSIS 0000 Порт A (PA13) SYSCFG_EXTICR4_EXTI13_PA 0001 Порт B (PB13) SYSCFG_EXTICR4_EXTI13_PB 0010 Порт C (PC13) SYSCFG_EXTICR4_EXTI13_PC 0011 Порт D (PD13) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI13_PD 0100 Порт E (PE13) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI13_PE - EXTI12 (биты 3:0) — Порт, вывод 12 которого подключён к линии EXTI12.
EXTI12 Значение Макрос CMSIS 0000 Порт A (PA12) SYSCFG_EXTICR4_EXTI12_PA 0001 Порт B (PB12) SYSCFG_EXTICR4_EXTI12_PB 0010 Порт C (PC12) SYSCFG_EXTICR4_EXTI12_PC 0011 Порт D (PD12) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI12_PD 0100 Порт E (PE12) (только у STM32L071, STM32L081) SYSCFG_EXTICR4_EXTI12_PE
SYSCFG_CFGR3 — опорное напряжение VREFINT для АЦП и компараторов
Смещение 0x20, адрес 0x4001 0020, 32 бит, после сброса 0x0000 0000. В коде: SYSCFG->CFGR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| REF_LOCK | VREFINT_RDYF | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | ENBUFLP_VREFINT_COMP | — | ENBUF_SENSOR_ADC | ENBUF_VREFINT_ADC | — | VREF_OUT | — | EN_VREFINT | |||||||
- REF_LOCK (бит 31) — Блокировка SYSCFG_CFGR3 до сброса.
- VREFINT_RDYF (бит 30) — VREFINT готово (только чтение).
- ENBUFLP_VREFINT_COMP (бит 12) — Буфер VREFINT для делителя опорного напряжения компаратора COMP2.
- ENBUF_SENSOR_ADC (бит 9) — Буфер опорного напряжения датчика температуры для АЦП.
- ENBUF_VREFINT_ADC (бит 8) — Буфер VREFINT для канала АЦП.
- VREF_OUT (биты 5:4) — Вывод VREFINT на выводы PB0 и PB1.
VREF_OUT Значение 00 Не выведено 01 На PB0 10 На PB1 11 На PB0 и PB1 - EN_VREFINT (бит 0) — VREFINT в режимах пониженного потребления (при ULP = 1) и делитель для COMP2.
Частые вопросы
Почему АЦП STM32L0 показывает ноль на канале VREFINT?
Буфер опорного напряжения для АЦП выключен. Установите SYSCFG_CFGR3.ENBUF_VREFINT_ADC (и EN_VREFINT, если включён режим ULP), дождитесь флага VREFINT_RDYF и только потом запускайте преобразование канала 17.
Как подключить PB3 к линии EXTI3?
Включите тактирование SYSCFG и запишите в поле EXTI3 регистра SYSCFG->EXTICR[0] код порта B: SYSCFG->EXTICR[0] = (SYSCFG->EXTICR[0] & ~SYSCFG_EXTICR1_EXTI3) | SYSCFG_EXTICR1_EXTI3_PB.
Источники
- STMicroelectronics. RM0377: Reference manual (Rev 10) — раздел 9.2: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-l0 v1.9.4: заголовки CMSIS stm32l011xx.h, stm32l021xx.h, stm32l031xx.h, stm32l041xx.h, stm32l051xx.h, stm32l071xx.h, stm32l081xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32L0
- Все регистры STM32L0Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_ICSCR, RCC_CFGR, RCC_CIER, RCC_CIFR, RCC_CICR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- EXTI — контроллер внешних прерываний и событийEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- 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
- TIM — таймеры общего назначения и базовыеTIMx_CR1, TIMx_CR2, TIMx_SMCR, TIMx_DIER, TIMx_SR, TIMx_EGR
- LPTIM — малопотребляющий таймерLPTIM_ISR, LPTIM_ICR, LPTIM_IER, LPTIM_CFGR, LPTIM_CR, LPTIM_CMP
- DMA — контроллер прямого доступа к памятиDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR
- АЦП — аналого-цифровой преобразователь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 — поддержка отладкиDBGMCU_IDCODE, DBG_CR, DBG_APB1_FZ, DBG_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