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

Регистры 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.

ЭкземплярБазовый адресЕсть у
SYSCFG0x4001 0000всех

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

РегистрСмещениеНазначениеПосле сброса
SYSCFG_CFGR10x00Режим загрузки и отображение памяти0x000X 000X (X — память, выбранная конфигурацией загрузки)
SYSCFG_CFGR20x04Режим Fast-mode Plus выводов I2C и файрвол0x0000 0001
SYSCFG_EXTICR10x08Источники линий EXTI0–EXTI30x0000
SYSCFG_EXTICR20x0CИсточники линий EXTI4–EXTI70x0000
SYSCFG_EXTICR30x10Источники линий EXTI8–EXTI110x0000
SYSCFG_EXTICR40x14Источники линий EXTI12–EXTI150x0000
SYSCFG_CFGR30x20Опорное напряжение 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.

31302928272625242322212019181716
—
1514131211109876543210
—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.

31302928272625242322212019181716
—
1514131211109876543210
—I2C3_FMPI2C2_FMPI2C1_FMPI2C_PB9_FMPI2C_PB8_FMPI2C_PB7_FMPI2C_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].

31302928272625242322212019181716
—
1514131211109876543210
EXTI3EXTI2EXTI1EXTI0
  • 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].

31302928272625242322212019181716
—
1514131211109876543210
EXTI7EXTI6EXTI5EXTI4
  • 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].

31302928272625242322212019181716
—
1514131211109876543210
EXTI11EXTI10EXTI9EXTI8
  • 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].

31302928272625242322212019181716
—
1514131211109876543210
EXTI15EXTI14EXTI13EXTI12
  • 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.

31302928272625242322212019181716
REF_LOCKVREFINT_RDYF—
1514131211109876543210
—ENBUFLP_VREFINT_COMP—ENBUF_SENSOR_ADCENBUF_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.

Источники

  1. STMicroelectronics. RM0377: Reference manual (Rev 10) — раздел 9.2: описание регистров, назначение полей и значения после сброса
  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

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