Bug STM32F107RCTx SPI REMAPPED NOT WORK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-11-12 5:04 AM
STM32Cube FW_F1 V1.8.4
Conditions:
SPI1 or SPI3 remapped to PB3-5 pins.
Problem:
SPI not work.
Solution:
Enable Debug Serial Wire (PA13 PA14)
SWJ function changes SWJ_CFG[2:0] bits
stm32f1xx_hal_msp.c line 81
__HAL_AFIO_REMAP_SWJ_NOJTAG();
do{ uint32_t tmpreg = ((AFIO_TypeDef *)((0x40000000UL + 0x00010000UL) + 0x00000000UL))->MAPR; \
tmpreg &= ~(0x7UL << (24U)); \
tmpreg |= (0x1UL << (25U)); \
((AFIO_TypeDef *)((0x40000000UL + 0x00010000UL) + 0x00000000UL))->MAPR = tmpreg; \
}while(0u)
For some reasons SPI remap function changes SWJ_CFG[2:0] bits too, somehow it depend on previous state of SWJ_CFG.
stm32f1xx_hal_msp.c line 121
__HAL_AFIO_REMAP_SPI1_ENABLE();
do{ uint32_t tmpreg = ((AFIO_TypeDef *)((0x40000000UL + 0x00010000UL) + 0x00000000UL))->MAPR; \
tmpreg |= (0x7UL << (24U)); \
tmpreg |= (0x1UL << (0U)); \
((AFIO_TypeDef *)((0x40000000UL + 0x00010000UL) + 0x00000000UL))->MAPR = tmpreg; \
}while(0u)
- Labels:
-
SPI
-
STM32F1 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2022-11-12 6:18 AM
The F1 series is old and clumsy.
Yes remapping often requires attention, if you map functionality to a particular block of pins you might need to map other functionality off those same pins to avoid conflicts.
Much is likely to be flagged in errata, etc, at this point.
Up vote any posts that you find helpful, it shows what's working..
