AF remap and debug I/O configuration register (AFIO_MAPR)
Регистр переназначения альтернативных функций и конфигурации отладки
Смещение (Address offset): 0x04
Reset value: 0x0000'0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| Reserved | SWJ_CFG[2:0] | ||||||
| --- | w | ||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Reserved | ADC2_ETRGREG_REMAP | ADC2_ETRGINJ_REMAP | ADC1_ETRGREG_REMAP | ADC1_ETRGINJ_REMAP | TIM5CH4_IREMAP | ||
| --- | rw | rw | rw | rw | rw | ||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| PD01_REMAP | CAN_REMAP[1:0] | TIM4_REMAP | TIM3_REMAP[1:0] | TIM2_REMAP[1:0] | |||
| rw | rw | rw | rw | rw | |||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TIM1_REMAP[1:0] | USART3_REMAP[1:0] | USART2_REMAP | USART1_REMAP | I2C1_REMAP | SPI1_REMAP | ||
| rw | rw | rw | rw | rw | rw | ||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биты доступны только на запись. При чтении полученное значение не определено.
0 : запуск преобразования от внешнего триггера, подключенного к EXTI11
1 : запуск преобразования от TIM8_TRGO
0 : запуск преобразования от внешнего триггера, подключенного к EXTI15
1 : запуск преобразования от TIM8_Channel4
0 : запуск преобразования от внешнего триггера, подключенного к EXTI11
1 : запуск преобразования от TIM8_TRGO
0 : запуск преобразования от внешнего триггера, подключенного к EXTI15
1 : запуск преобразования от TIM8_Channel4
0 : TIM5_CH4 подключен к PA3
1 : TIM5_CH4 подключен к LSI для калибровки
Этот бит доступен только в HD_VL устройствах (high density value line)
Выводы 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 МГц.
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 недоступны для выбора.
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.
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.
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
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
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
0 : нет переназначения: CTS- PA0, RTS - PA1, TX - PA2, RX - PA3, CK - PA4
1 : переназначение: CTS - PD3, RTS - PD4, TX - PD5, RX - PD6, CK - PD7
0 : нет переназначения: TX - PA9, RX - PA10
1 : переназначение: TX - PB6, RX - PB7
0 : нет переназначения: SCL - PB6, SDA - PB7
1 : переназначение: SCL - PB8, SDA - PB9
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