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

Регистры SYSCFG STM32G4

Регистры SYSCFG STM32G4: отображение памяти и перестановка банков флеш-памяти, порт для каждой линии EXTI, Fast-mode Plus выводов I2C, повышающий преобразователь аналоговых ключей, стирание и защита CCM SRAM, аварийные сигналы таймеров.

SYSCFG_MEMRMP выбирает память на адресе 0x0000 0000 и у двухбанковых STM32G47x/G48x переставляет банки флеш-памяти (FB_MODE). SYSCFG_CFGR1 включает Fast-mode Plus на выводах I2C, повышающий преобразователь аналоговых ключей BOOSTEN при VDDA ниже 2,4 В и их питание от VDD (ANASWVDD) (RM0440, раздел 10.2).

CCM SRAM можно стереть аппаратно (бит CCMER после ключа 0xCA, 0x53 в SYSCFG_SKR) и защитить от записи страницами по 1 КБ в SYSCFG_SWPR — заголовок CMSIS полей этого регистра не определяет. В EXTICR поля портов в RM0440 четырёхбитные, а в заголовке — трёхбитные: коды портов A–G помещаются в три младших бита. Прерывания FPU разрешают биты FPU_IE_0…FPU_IE_5 регистра CFGR1.

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

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

РегистрСмещениеНазначениеПосле сброса
SYSCFG_MEMRMP0x00Отображение памяти и перестановка банков флеш-памяти0x0000 000X (X — память, выбранная выводом BOOT0 и битом опций nBOOT1)
SYSCFG_CFGR10x04Fast-mode Plus, аналоговые ключи, прерывания FPU0x7C00 0000
SYSCFG_EXTICR10x08Источники линий EXTI0–EXTI30x0000 0000
SYSCFG_EXTICR20x0CИсточники линий EXTI4–EXTI70x0000 0000
SYSCFG_EXTICR30x10Источники линий EXTI8–EXTI110x0000 0000
SYSCFG_EXTICR40x14Источники линий EXTI12–EXTI150x0000 0000
SYSCFG_SCSR0x18Стирание CCM SRAM0x0000 0000 (при системном сбросе)
SYSCFG_CFGR20x1CСигналы аварийного останова таймеров и чётность SRAM0x0000 0000 (при системном сбросе)
SYSCFG_SWPR0x20Защита страниц CCM SRAM от записи0x0000 0000 (при системном сбросе)
SYSCFG_SKR0x24Ключ стирания SRAM0x0000 0000 (при системном сбросе)

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

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

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

SYSCFG->MEMRMP = 0x00000000;

SYSCFG_MEMRMP — отображение памяти и перестановка банков флеш-памяти

Смещение 0x00, адрес 0x4001 0000, 32 бит, после сброса 0x0000 000X (X — память, выбранная выводом BOOT0 и битом опций nBOOT1). В коде: SYSCFG->MEMRMP.

31302928272625242322212019181716
—
1514131211109876543210
—FB_MODE—MEM_MODE
  • FB_MODE (бит 8) — Перестановка банков флеш-памяти: банк 2 с адреса 0x0800 0000.
  • MEM_MODE (биты 2:0) — Память по адресу 0x0000 0000: флеш, системная память, FMC или SRAM.

SYSCFG_CFGR1 — fast-mode Plus, аналоговые ключи, прерывания FPU

Смещение 0x04, адрес 0x4001 0004, 32 бит, после сброса 0x7C00 0000. В коде: SYSCFG->CFGR1.

31302928272625242322212019181716
FPU_IE_5FPU_IE_4FPU_IE_3FPU_IE_2FPU_IE_1FPU_IE_0—I2C4_FMPI2C3_FMPI2C2_FMPI2C1_FMPI2C_PB9_FMPI2C_PB8_FMPI2C_PB7_FMPI2C_PB6_FMP
1514131211109876543210
—ANASWVDDBOOSTEN—
  • FPU_IE_5 (бит 31) — Прерывание FPU по исключению IXC (неточный результат).
  • FPU_IE_4 (бит 30) — Прерывание FPU по исключению IDC (денормализованный операнд).
  • FPU_IE_3 (бит 29) — Прерывание FPU по исключению OFC (переполнение).
  • FPU_IE_2 (бит 28) — Прерывание FPU по исключению UFC (антипереполнение).
  • FPU_IE_1 (бит 27) — Прерывание FPU по исключению DZC (деление на ноль).
  • FPU_IE_0 (бит 26) — Прерывание FPU по исключению IOC (недопустимая операция).
  • I2C4_FMP (бит 23) — Режим Fast-mode Plus на выводах I2C4 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
  • I2C3_FMP (бит 22) — Режим Fast-mode Plus на выводах I2C3.
  • I2C2_FMP (бит 21) — Режим Fast-mode Plus на выводах I2C2.
  • I2C1_FMP (бит 20) — Режим Fast-mode Plus на выводах I2C1.
  • I2C_PB9_FMP (бит 19) — Режим Fast-mode Plus (ток 20 мА) на выводе PB9.
  • I2C_PB8_FMP (бит 18) — Режим Fast-mode Plus (ток 20 мА) на выводе PB8.
  • I2C_PB7_FMP (бит 17) — Режим Fast-mode Plus (ток 20 мА) на выводе PB7.
  • I2C_PB6_FMP (бит 16) — Режим Fast-mode Plus (ток 20 мА) на выводе PB6.
  • ANASWVDD (бит 9) — Питание аналоговых ключей от VDD вместо VDDA.
  • BOOSTEN (бит 8) — Повышающий преобразователь аналоговых ключей при низком VDDA.

SYSCFG_EXTICR1 — источники линий EXTI0–EXTI3

Смещение 0x08, адрес 0x4001 0008, 32 бит, после сброса 0x0000 0000. В коде: 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)SYSCFG_EXTICR1_EXTI3_PD
    0100Порт E (PE3)SYSCFG_EXTICR1_EXTI3_PE
    0101Порт F (PF3)SYSCFG_EXTICR1_EXTI3_PF
    0110Порт G (PG3)SYSCFG_EXTICR1_EXTI3_PG
  • 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)SYSCFG_EXTICR1_EXTI2_PE
    0101Порт F (PF2)SYSCFG_EXTICR1_EXTI2_PF
    0110Порт G (PG2)SYSCFG_EXTICR1_EXTI2_PG
  • 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)SYSCFG_EXTICR1_EXTI1_PD
    0100Порт E (PE1)SYSCFG_EXTICR1_EXTI1_PE
    0101Порт F (PF1)SYSCFG_EXTICR1_EXTI1_PF
    0110Порт G (PG1)SYSCFG_EXTICR1_EXTI1_PG
  • 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)SYSCFG_EXTICR1_EXTI0_PD
    0100Порт E (PE0)SYSCFG_EXTICR1_EXTI0_PE
    0101Порт F (PF0)SYSCFG_EXTICR1_EXTI0_PF
    0110Порт G (PG0)SYSCFG_EXTICR1_EXTI0_PG

SYSCFG_EXTICR2 — источники линий EXTI4–EXTI7

Смещение 0x0C, адрес 0x4001 000C, 32 бит, после сброса 0x0000 0000. В коде: 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)SYSCFG_EXTICR2_EXTI7_PD
    0100Порт E (PE7)SYSCFG_EXTICR2_EXTI7_PE
    0101Порт F (PF7)SYSCFG_EXTICR2_EXTI7_PF
    0110Порт G (PG7)SYSCFG_EXTICR2_EXTI7_PG
  • 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)SYSCFG_EXTICR2_EXTI6_PD
    0100Порт E (PE6)SYSCFG_EXTICR2_EXTI6_PE
    0101Порт F (PF6)SYSCFG_EXTICR2_EXTI6_PF
    0110Порт G (PG6)SYSCFG_EXTICR2_EXTI6_PG
  • 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)SYSCFG_EXTICR2_EXTI5_PD
    0100Порт E (PE5)SYSCFG_EXTICR2_EXTI5_PE
    0101Порт F (PF5)SYSCFG_EXTICR2_EXTI5_PF
    0110Порт G (PG5)SYSCFG_EXTICR2_EXTI5_PG
  • 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)SYSCFG_EXTICR2_EXTI4_PD
    0100Порт E (PE4)SYSCFG_EXTICR2_EXTI4_PE
    0101Порт F (PF4)SYSCFG_EXTICR2_EXTI4_PF
    0110Порт G (PG4)SYSCFG_EXTICR2_EXTI4_PG

SYSCFG_EXTICR3 — источники линий EXTI8–EXTI11

Смещение 0x10, адрес 0x4001 0010, 32 бит, после сброса 0x0000 0000. В коде: 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)SYSCFG_EXTICR3_EXTI11_PD
    0100Порт E (PE11)SYSCFG_EXTICR3_EXTI11_PE
    0101Порт F (PF11)SYSCFG_EXTICR3_EXTI11_PF
  • 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)SYSCFG_EXTICR3_EXTI10_PD
    0100Порт E (PE10)SYSCFG_EXTICR3_EXTI10_PE
    0101Порт F (PF10)SYSCFG_EXTICR3_EXTI10_PF
  • 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)SYSCFG_EXTICR3_EXTI9_PD
    0100Порт E (PE9)SYSCFG_EXTICR3_EXTI9_PE
    0101Порт F (PF9)SYSCFG_EXTICR3_EXTI9_PF
    0110Порт G (PG9)SYSCFG_EXTICR3_EXTI9_PG
  • 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)SYSCFG_EXTICR3_EXTI8_PD
    0100Порт E (PE8)SYSCFG_EXTICR3_EXTI8_PE
    0101Порт F (PF8)SYSCFG_EXTICR3_EXTI8_PF
    0110Порт G (PG8)SYSCFG_EXTICR3_EXTI8_PG

SYSCFG_EXTICR4 — источники линий EXTI12–EXTI15

Смещение 0x14, адрес 0x4001 0014, 32 бит, после сброса 0x0000 0000. В коде: 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)SYSCFG_EXTICR4_EXTI15_PD
    0100Порт E (PE15)SYSCFG_EXTICR4_EXTI15_PE
    0101Порт F (PF15)SYSCFG_EXTICR4_EXTI15_PF
  • 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)SYSCFG_EXTICR4_EXTI14_PD
    0100Порт E (PE14)SYSCFG_EXTICR4_EXTI14_PE
    0101Порт F (PF14)SYSCFG_EXTICR4_EXTI14_PF
  • 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)SYSCFG_EXTICR4_EXTI13_PD
    0100Порт E (PE13)SYSCFG_EXTICR4_EXTI13_PE
    0101Порт F (PF13)SYSCFG_EXTICR4_EXTI13_PF
  • 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)SYSCFG_EXTICR4_EXTI12_PD
    0100Порт E (PE12)SYSCFG_EXTICR4_EXTI12_PE
    0101Порт F (PF12)SYSCFG_EXTICR4_EXTI12_PF

SYSCFG_SCSR — стирание CCM SRAM

Смещение 0x18, адрес 0x4001 0018, 32 бит, после сброса 0x0000 0000 (при системном сбросе). В коде: SYSCFG->SCSR.

31302928272625242322212019181716
—
1514131211109876543210
—CCMBSYCCMER
  • CCMBSY (бит 1) — Идёт стирание CCM SRAM (только чтение).
  • CCMER (бит 0) — Запуск аппаратного стирания CCM SRAM (после ключа SYSCFG_SKR).

SYSCFG_CFGR2 — сигналы аварийного останова таймеров и чётность SRAM

Смещение 0x1C, адрес 0x4001 001C, 32 бит, после сброса 0x0000 0000 (при системном сбросе). В коде: SYSCFG->CFGR2.

31302928272625242322212019181716
—
1514131211109876543210
—SPF—ECCLPVDLSPLCLL
  • SPF (бит 8) — Флаг ошибки чётности SRAM; сбрасывается записью 1.
  • ECCL (бит 3) — Подключение двойной ошибки ECC флеш-памяти к аварийному останову таймеров.
  • PVDL (бит 2) — Подключение выхода PVD к входу аварийного останова таймеров; снимается только сбросом.
  • SPL (бит 1) — Подключение ошибки чётности SRAM к входу аварийного останова таймеров.
  • CLL (бит 0) — Подключение сигнала LOCKUP ядра (отказ в обработчике HardFault) к аварийному останову таймеров.

SYSCFG_SWPR — защита страниц CCM SRAM от записи

Смещение 0x20, адрес 0x4001 0020, 32 бит, после сброса 0x0000 0000 (при системном сбросе). В коде: SYSCFG->SWPR.

Регистр данных: значение занимает его целиком.

SYSCFG_SKR — ключ стирания SRAM

Смещение 0x24, адрес 0x4001 0024, 32 бит, после сброса 0x0000 0000 (при системном сбросе). В коде: SYSCFG->SKR.

31302928272625242322212019181716
—
1514131211109876543210
—KEY
  • KEY (биты 7:0) — Ключ: запись 0xCA, затем 0x53 разрешает стирание SRAM битом SYSCFG_SCSR.

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

Как подключить PC13 к линии EXTI13 на STM32G4?

Включите тактирование SYSCFG (RCC_APB2ENR.SYSCFGEN) и запишите SYSCFG->EXTICR[3] = SYSCFG_EXTICR4_EXTI13_PC. Затем настройте фронт и маску в регистрах EXTI.

Как защитить CCM SRAM от записи?

Запишите 1 в биты нужных страниц регистра SYSCFG_SWPR: страница — 1 КБ, снять защиту можно только системным сбросом. Удобно для таблиц и констант, которые программа держит в CCM SRAM.

Источники

  1. STMicroelectronics. RM0440: Reference manual (Rev 9) — раздел 10.2: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-g4 v1.2.6: заголовки CMSIS stm32g431xx.h, stm32g441xx.h, stm32g471xx.h, stm32g473xx.h, stm32g474xx.h, stm32g483xx.h, stm32g484xx.h, stm32g491xx.h, stm32g4a1xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

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

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

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