AF remap and debug I/O configuration register (AFIO_MAPR)

Регистр переназначения альтернативных функций и конфигурации отладки

Смещение (Address offset): 0x04

Reset value: 0x0000'0000

3130292827262524
Reserved SWJ_CFG[2:0]
---w
00000000
2322212019181716
Reserved ADC2_ETRGREG_REMAP ADC2_ETRGINJ_REMAP ADC1_ETRGREG_REMAP ADC1_ETRGINJ_REMAP TIM5CH4_IREMAP
---rwrwrwrwrw
00000000


15141312111098
PD01_REMAP CAN_REMAP[1:0] TIM4_REMAP TIM3_REMAP[1:0] TIM2_REMAP[1:0]
rwrwrwrwrw
00000000
76543210
TIM1_REMAP[1:0] USART3_REMAP[1:0] USART2_REMAP USART1_REMAP I2C1_REMAP SPI1_REMAP
rwrwrwrwrwrw
00000000


Bits 31:27
Reserved
Must be kept at cleared
Зарезервировано. Должно быть всегда установлено в 0
Bits 26:24
SWJ_CFG[2:0]
Serial wire JTAG configuration
Конфигурация отладочного порта SWJ (Serial wire JTAG).

Биты доступны только на запись. При чтении полученное значение не определено.

Bits 23:21
Reserved
Must be kept at cleared
Зарезервировано. Должно быть всегда установлено в 0
Bit 20
ADC2_ETRGREG_REMAP
Управляет запуском преобразования регулярных каналов ADC2 от внешнего события.

 0 :  запуск преобразования от внешнего триггера, подключенного к EXTI11

 1 :  запуск преобразования от TIM8_TRGO

Bit 19
ADC2_ETRGINJ_REMAP
Управляет запуском преобразования инжектированных каналов ADC2 от внешнего события.

 0 :  запуск преобразования от внешнего триггера, подключенного к EXTI15

 1 :  запуск преобразования от TIM8_Channel4

Bit 18
ADC1_ETRGREG_REMAP
Управляет запуском преобразования регулярных каналов ADC1 от внешнего события.

 0 :  запуск преобразования от внешнего триггера, подключенного к EXTI11

 1 :  запуск преобразования от TIM8_TRGO

Bit 17
ADC1_ETRGINJ_REMAP
Управляет запуском преобразования инжектированных каналов ADC1 от внешнего события.

 0 :  запуск преобразования от внешнего триггера, подключенного к EXTI15

 1 :  запуск преобразования от TIM8_Channel4

Bit 16
TIM5CH4_IREMAP
TIM5 channel4 internal remap
Управляет подключением 4 канала таймера TIM5.

 0 :  TIM5_CH4 подключен к PA3

 1 :  TIM5_CH4 подключен к LSI для калибровки

Этот бит доступен только в HD_VL устройствах (high density value line)

Bit 15
PD01_REMAP
Управляет подключением выводов PD0/PD1 к выводам внешнего генератора HSE.

Выводы 5 и 6 (QFP48/64), 2 и 3 (VFQFPN36), С1 и С2 (TFBGA64) после сброса настроены как OSC_IN/OSC_OUT. Когда генератор HSE не используется (приложение работает на внутреннем контроллере 8 МГц) PD0 и PD1 могут быть отображены на выводы OSC_IN и OSC_OUT. При этом подключение PD0 и PD1 к соответствующим выводам микроконтроллера является альтернативной функцией.

 0 :  нет переназначения, соответствующие выводы настроены как OSC_IN/OSC_OUT;

 1 :  соответствующим выводам назначены порты PD0 и PD1;

Переназначение PD0 и PD1 на выводы микроконтроллера доступно только для 36-, 48- и 64-контактных корпусов. Для 100- и 144-контактных корпусов переназначение не требуется, т.к. PD0 и PD1 имеют собственные выводы, отличные от OSC_IN/OSC_OUT.

PD0 и PD1 в режиме вывода могут использоваться только на частоте 50 МГц.

Bits 14:13
CAN_REMAP[1:0]
CAN alternate function remapping
Переназначение выводов интерфейса CAN1.

 00 :  CAN_RX назначен вывод PA11, CAN_TX - PA12

 01 :  не используется

 10 :  CAN_RX назначен вывод PB8, CAN_TX - PB9 (недоступно в 36-выводном корпусе)

 11 :  CAN_RX назначен вывод PD0, CAN_TX - PD1

Управляется программно. Порты F и G недоступны для выбора.

Bit 12
TIM4_REMAP
TIM4 remapping
Переназначение выводов каналов таймера TIM4.

 0 :  нет переназначения: TIM4_CH1 - PB6, TIM4_CH2 - PB7, TIM4_CH3 - PB8, TIM4_CH4 - PB9

 1 :  переназначено: TIM4_CH1 - PD12, TIM4_CH2 - PD13, TIM4_CH3 - PD14, TIM4_CH4 - PD15

Не переназначается: TIM4_ETR - PE0.

Bits 11:10
TIM3_REMAP[1:0]
TIM3 remapping
Переназначение выводов каналов таймера TIM3.

 00 :  нет переназначения: CH1 - PA6, CH2 - PA7, CH3 - PB0, CH4 - PB1

 01 :  не используется

 10 :  частичное переназначение: CH1 - PB4, CH2 - PB5, CH3 - PB0, CH4 - PB1

 11 :  полное переназначение: CH1 - PC6, CH2 - PC7, CH3 - PC8, CH4 - PC9

Не переназначается: TIM3_ETR - PE0.

Bits 9:8
TIM2_REMAP[1:0]
TIM2 remapping
Переназначение выводов каналов таймера TIM2.

 00 :  нет переназначения: CH1/ETR - PA0, CH2 - PA1, CH3 - PA2, CH4 - PA3

 01 :  частичное переназначение: CH1/ETR - PA15, CH2 - PB3, CH3 - PA2, CH4 - PA3

 10 :  частичное переназначение: CH1/ETR - PA0, CH2 - PA1, CH3 - PB10, CH4 - PB11

 11 :  полное переназначение: CH1/ETR - PA15, CH2 - PB3, CH3 - PB10, CH4 - PB11

Bits 7:6
TIM1_REMAP[1:0]
TIM1 remapping
Переназначение выводов каналов таймера TIM1.

 00 :  нет переназначения: ETR - PA12, CH1 - PA8, CH2 - PA9, CH3 - PA10, CH4 - PA11, BKIN - PB12, CH1N - PB13, CH2N - PB14, CH3N - PB15

 01 :  частичное переназначение: ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1

 10 :  не используется

 11 :  полное переназначение: ETR - PE7, CH1 - PE9, CH2 - PE11, CH3 - PE13, CH4 - PE14, BKIN - PE15, CH1N - PE8, CH2N - PE10, CH3N - PE12

Bits 5:4
USART3_REMAP[1:0]
USART3 remapping
Переназначение выводов USART3.

 00 :  нет переназначения: TX - PB10, RX - PB11, CK - PB12, CTS - PB13, RTS - PB14

 01 :  частичное переназначение: TX - PC10, RX - PC11, CK - PC12, CTS - PB13, RTS - PB14

 10 :  не используется

 11 :  полное переназначение: TX - PD8, RX - PD9, CK - PD10, CTS - PD11, RTS - PD12

Bit 3
USART2_REMAP
USART2 remapping
Переназначение выводов USART2.

 0 :  нет переназначения: CTS- PA0, RTS - PA1, TX - PA2, RX - PA3, CK - PA4

 1 :  переназначение: CTS - PD3, RTS - PD4, TX - PD5, RX - PD6, CK - PD7

Bit 2
USART1_REMAP
USART1 remapping
Переназначение выводов USART1.

 0 :  нет переназначения: TX - PA9, RX - PA10

 1 :  переназначение: TX - PB6, RX - PB7

Bit 1
I2C1_REMAP
I2C1 remapping
Переназначение выводов I2C1.

 0 :  нет переназначения: SCL - PB6, SDA - PB7

 1 :  переназначение: SCL - PB8, SDA - PB9

Bit 0
SPI1_REMAP
SPI1 remapping
Переназначение выводов SPI1.

 0 :  нет переназначения: NSS - PA4, SCK - PA5, MISO - PA6, MOSI - PA7

 1 :  переназначение: NSS - PA15, SCK - PB3, MISO - PB4, MOSI - PB5



//- stm32F10x.h

/******************  Bit definition for AFIO_MAPR register  *******************/
#define AFIO_MAPR_SPI1_REMAP                 ((uint32_t)0x00000001)        /* SPI1 remapping */
#define AFIO_MAPR_I2C1_REMAP                 ((uint32_t)0x00000002)        /* I2C1 remapping */
#define AFIO_MAPR_USART1_REMAP               ((uint32_t)0x00000004)        /* USART1 remapping */
#define AFIO_MAPR_USART2_REMAP               ((uint32_t)0x00000008)        /* USART2 remapping */

#define AFIO_MAPR_USART3_REMAP               ((uint32_t)0x00000030)        /* USART3_REMAP[1:0] bits (USART3 remapping) */
#define AFIO_MAPR_USART3_REMAP_0             ((uint32_t)0x00000010)        /* Bit 0 */
#define AFIO_MAPR_USART3_REMAP_1             ((uint32_t)0x00000020)        /* Bit 1 */

/* USART3_REMAP configuration */
#define AFIO_MAPR_USART3_REMAP_NOREMAP       ((uint32_t)0x00000000)        /* No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */
#define AFIO_MAPR_USART3_REMAP_PARTIALREMAP  ((uint32_t)0x00000010)        /* Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */
#define AFIO_MAPR_USART3_REMAP_FULLREMAP     ((uint32_t)0x00000030)        /* Full remap (TX/PD8, RX/PD9, CK/PD10, CTS/PD11, RTS/PD12) */

#define AFIO_MAPR_TIM1_REMAP                 ((uint32_t)0x000000C0)        /* TIM1_REMAP[1:0] bits (TIM1 remapping) */
#define AFIO_MAPR_TIM1_REMAP_0               ((uint32_t)0x00000040)        /* Bit 0 */
#define AFIO_MAPR_TIM1_REMAP_1               ((uint32_t)0x00000080)        /* Bit 1 */

/* TIM1_REMAP configuration */
#define AFIO_MAPR_TIM1_REMAP_NOREMAP         ((uint32_t)0x00000000)        /* No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */
#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP    ((uint32_t)0x00000040)        /* Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */
#define AFIO_MAPR_TIM1_REMAP_FULLREMAP       ((uint32_t)0x000000C0)        /* Full remap (ETR/PE7, CH1/PE9, CH2/PE11, CH3/PE13, CH4/PE14, BKIN/PE15, CH1N/PE8, CH2N/PE10, CH3N/PE12) */

#define AFIO_MAPR_TIM2_REMAP                 ((uint32_t)0x00000300)        /* TIM2_REMAP[1:0] bits (TIM2 remapping) */
#define AFIO_MAPR_TIM2_REMAP_0               ((uint32_t)0x00000100)        /* Bit 0 */
#define AFIO_MAPR_TIM2_REMAP_1               ((uint32_t)0x00000200)        /* Bit 1 */

/* TIM2_REMAP configuration */
#define AFIO_MAPR_TIM2_REMAP_NOREMAP         ((uint32_t)0x00000000)        /* No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */
#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1   ((uint32_t)0x00000100)        /* Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */
#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2   ((uint32_t)0x00000200)        /* Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */
#define AFIO_MAPR_TIM2_REMAP_FULLREMAP       ((uint32_t)0x00000300)        /* Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */

#define AFIO_MAPR_TIM3_REMAP                 ((uint32_t)0x00000C00)        /* TIM3_REMAP[1:0] bits (TIM3 remapping) */
#define AFIO_MAPR_TIM3_REMAP_0               ((uint32_t)0x00000400)        /* Bit 0 */
#define AFIO_MAPR_TIM3_REMAP_1               ((uint32_t)0x00000800)        /* Bit 1 */

/* TIM3_REMAP configuration */
#define AFIO_MAPR_TIM3_REMAP_NOREMAP         ((uint32_t)0x00000000)        /* No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */
#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP    ((uint32_t)0x00000800)        /* Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */
#define AFIO_MAPR_TIM3_REMAP_FULLREMAP       ((uint32_t)0x00000C00)        /* Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */

#define AFIO_MAPR_TIM4_REMAP                 ((uint32_t)0x00001000)        /* TIM4_REMAP bit (TIM4 remapping) */

#define AFIO_MAPR_CAN_REMAP                  ((uint32_t)0x00006000)        /* CAN_REMAP[1:0] bits (CAN Alternate function remapping) */
#define AFIO_MAPR_CAN_REMAP_0                ((uint32_t)0x00002000)        /* Bit 0 */
#define AFIO_MAPR_CAN_REMAP_1                ((uint32_t)0x00004000)        /* Bit 1 */

/* CAN_REMAP configuration */
#define AFIO_MAPR_CAN_REMAP_REMAP1           ((uint32_t)0x00000000)        /* CANRX mapped to PA11, CANTX mapped to PA12 */
#define AFIO_MAPR_CAN_REMAP_REMAP2           ((uint32_t)0x00004000)        /* CANRX mapped to PB8, CANTX mapped to PB9 */
#define AFIO_MAPR_CAN_REMAP_REMAP3           ((uint32_t)0x00006000)        /* CANRX mapped to PD0, CANTX mapped to PD1 */

#define AFIO_MAPR_PD01_REMAP                 ((uint32_t)0x00008000)        /* Port D0/Port D1 mapping on OSC_IN/OSC_OUT */
#define AFIO_MAPR_TIM5CH4_IREMAP             ((uint32_t)0x00010000)        /* TIM5 Channel4 Internal Remap */
#define AFIO_MAPR_ADC1_ETRGINJ_REMAP         ((uint32_t)0x00020000)        /* ADC 1 External Trigger Injected Conversion remapping */
#define AFIO_MAPR_ADC1_ETRGREG_REMAP         ((uint32_t)0x00040000)        /* ADC 1 External Trigger Regular Conversion remapping */
#define AFIO_MAPR_ADC2_ETRGINJ_REMAP         ((uint32_t)0x00080000)        /* ADC 2 External Trigger Injected Conversion remapping */
#define AFIO_MAPR_ADC2_ETRGREG_REMAP         ((uint32_t)0x00100000)        /* ADC 2 External Trigger Regular Conversion remapping */

/* SWJ_CFG configuration */
#define AFIO_MAPR_SWJ_CFG                    ((uint32_t)0x07000000)        /* SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */
#define AFIO_MAPR_SWJ_CFG_0                  ((uint32_t)0x01000000)        /* Bit 0 */
#define AFIO_MAPR_SWJ_CFG_1                  ((uint32_t)0x02000000)        /* Bit 1 */
#define AFIO_MAPR_SWJ_CFG_2                  ((uint32_t)0x04000000)        /* Bit 2 */

#define AFIO_MAPR_SWJ_CFG_RESET              ((uint32_t)0x00000000)        /* Full SWJ (JTAG-DP + SW-DP) : Reset State */
#define AFIO_MAPR_SWJ_CFG_NOJNTRST           ((uint32_t)0x01000000)        /* Full SWJ (JTAG-DP + SW-DP) but without JNTRST */
#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE        ((uint32_t)0x02000000)        /* JTAG-DP Disabled and SW-DP Enabled */
#define AFIO_MAPR_SWJ_CFG_DISABLE            ((uint32_t)0x04000000)        /* JTAG-DP Disabled and SW-DP Disabled */

#ifdef STM32F10X_CL
/* ETH_REMAP configuration */
 #define AFIO_MAPR_ETH_REMAP                  ((uint32_t)0x00200000)        /* SPI3_REMAP bit (Ethernet MAC I/O remapping) */

/* CAN2_REMAP configuration */
 #define AFIO_MAPR_CAN2_REMAP                 ((uint32_t)0x00400000)        /* CAN2_REMAP bit (CAN2 I/O remapping) */

/* MII_RMII_SEL configuration */
 #define AFIO_MAPR_MII_RMII_SEL               ((uint32_t)0x00800000)        /* MII_RMII_SEL bit (Ethernet MII or RMII selection) */

/* SPI3_REMAP configuration */
 #define AFIO_MAPR_SPI3_REMAP                 ((uint32_t)0x10000000)        /* SPI3_REMAP bit (SPI3 remapping) */

/* TIM2ITR1_IREMAP configuration */
 #define AFIO_MAPR_TIM2ITR1_IREMAP            ((uint32_t)0x20000000)        /* TIM2ITR1_IREMAP bit (TIM2 internal trigger 1 remapping) */

/* PTP_PPS_REMAP configuration */
 #define AFIO_MAPR_PTP_PPS_REMAP              ((uint32_t)0x40000000)        /* PTP_PPS_REMAP bit (Ethernet PTP PPS remapping) */
#endif