STM32-P107 development board
User's manual
All boards produced by Olimex are ROHS compliant
Document revision M, October 2021
OLIMEX Ltd, All rights reserved
Page 1 of 23
DISCLAIMER
© 2021 Olimex Ltd. Olimex®, logo and combinations thereof, are registered trademarks of Olimex Ltd. Other product
names may be trademarks of others and the rights belong to their respective owners.
The information in this document is provided in connection with Olimex products. No license, express or implied
or otherwise, to any intellectual property right is granted by this document or in connection with the sale of
Olimex products.
This hardware design of STM32-P107 is neither public nor open-source. Any copying of the product would result in
copyright infringement.
The software written by Olimex is released under open source terms. Every other piece of code (libraries, ready-to-usefiles, etc) follow their owner's copyright.
It is possible that the pictures in this manual differ from the latest revision of the board.
The product described in this document is subject to continuous development and improvements. All particulars of the
product and its use contained in this document are given by OLIMEX in good faith. However all warranties implied or
expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This
document is intended only to assist the reader in the use of the product. OLIMEX Ltd. shall not be liable for any loss or
damage arising from the use of any information in this document or any error or omission in such information or any
incorrect use of the product.
This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only
and is not considered by OLIMEX to be a finished end-product fit for general consumer use. Persons handling the
product must have electronics training and observe good engineering practice standards. As such, the goods being
provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related
protective considerations, including product safety and environmental measures typically found in end products that
incorporate such semiconductor components or circuit boards.
Olimex currently deals with a variety of customers for products, and therefore our arrangement with the user is not
exclusive. Olimex assumes no liability for applications assistance, customer product design, software performance, or
infringement of patents or services described herein.
THERE IS NO WARRANTY FOR THE DESIGN MATERIALS AND THE COMPONENTS
USED TO CREATE STM32-P107. THEY ARE CONSIDERED SUITABLE ONLY FOR
STM32-P107.
Page 2 of 23
INTRODUCTION
STM32-P107 prototype board provides easy way for developing and prototyping with the new
STM32F107VCT6 connectivity line microcontroller, produced by STMicroelectronics. STM32P107 has JTAG port for programming and debugging, USB_OTG, user button, two status LEDs,
and most of the GPIOs are on extension headers where you can connect your additional circuits.
BOARD FEATURES
- CPU: STM32F107VCT6 32 bit ARM-based microcontroller with 256 KB Flash, 64 KB RAM,
USB OTG, Ethernet, 10 timers, 2 CANs, 2 ADCs, 14 communication interfaces
- JTAG connector with ARM 2×10 pin layout for programming/debugging
- Power jack for external power supply: suitable for (6.5-9)VDC or 6VAC
- USB mini connector (OTG), capable of powering the board
- USB host connector
- 100 Mbit/s Ethernet driver with RJ-45 connector
- RS232 driver with DE-09 female connector
- MiniSD card connector
- UEXT connector
- Two user-programmable buttons
- Reset button and circuit
- Two user-programmable LEDs
- Power-on LED
- 25 Mhz quartz crystal
- Extension port connectors for many of microcontrollers pins
- Prototype area
- Easy-to-change PTH jumpers
- Compatible with the bootloader tools provided by STM: "Flash Loader Demo" and "DfuSe Demo"
- PCB: FR-4, 1.5mm ~ (0.062)", red solder mask, white silkscreen component print
- Dimensions: (5.2×3.8)'' ~ (132×97)mm
ELECTROSTATIC WARNING
The STM32-P107 board is shipped in protective anti-static packaging. The board must not be
subject to high electrostatic potentials. General practice for working with static sensitive devices
should be applied when working with this board.
Page 3 of 23
BOARD USE REQUIREMENTS
Cables: The cable you will need depends on the programmer/debugger you use. If you use ARMJTAG, you will need LPT cable, if you use ARM-USB-OCD, ARM-USB-OCD-H, ARM-USBTINY, or ARM-USB-TINY-H you will need 1.8 meter USB A-B cable, for ARM-USB-OCD and
ARM-USB-OCD-H you will need RS232 cable, too.
Hardware: Programmer/Debugger – one of the Olimex ARM Programmers: ARM-JTAG, ARMJTAG-EW, ARM-USB-OCD, ARM-USB-OCD-H, ARM-USB-OCD-TINY, ARM-USB-OCD-H.
Note that Olimex OpenOCD debuggers lack SWD interface by default. There is the adapter ARMJTAG-SWD that adds SWD to any of the programmers/debuggers mentioned above.
Note the board can be programmed without a debugger using the serial port (the one with the
DE-9 connector).
Software: Any software that has support for ARM chips and more specifically for STM32F107.
Page 4 of 23
PROCESSOR FEATURES
STM32-P107 board uses the ARM-based 32-bit microcontroller STM32F107VCT6 with the
following features:
– Core: ARM 32-bit Cortex™-M3 CPU
– 72 MHz maximum frequency, 1.25 DMIPS/MHz (Dhrystone 2.1) performance at 0 wait
state memory access
– Single-cycle multiplication and hardware division
– Memories
– 256 Kbytes of Flash memory
– 64 Kbytes of SRAM
– Clock, reset and supply management
– 2.0 to 3.6 V application supply and I/Os
– POR, PDR, and programmable voltage detector (PVD)
– 25 MHz crystal oscillator
– Internal 8 MHz factory-trimmed RC
– Internal 40 kHz RC with calibration
– 32 kHz oscillator for RTC with calibration
– Low power
– Sleep, Stop and Standby modes
– VBAT supply for RTC and backup registers
– 2 × 12-bit, 1 µs A/D converters (16 channels)
– Conversion range: 0 to 3.6 V
– Sample and hold capability
– Temperature sensor
– up to 2 MSps in interleaved mode
– 2 × 12-bit D/A converters
– DMA: 12-channel DMA controller
– Supported peripherals: timers, ADCs, DAC, I2Ss, SPIs, I2Cs and USARTs
– Debug mode
– Serial wire debug (SWD) & JTAG interfaces
– Cortex-M3 Embedded Trace Macrocell™
– 80 fast I/O ports
– 80 I/Os, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant
– 10 timers
– four 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter and quadrature
(incremental) encoder input
– 1 × 16-bit motor control PWM timer with dead-time generation and emergency stop
– 2 × watchdog timers (Independent and Window)
– SysTick timer: a 24-bit downcounter
– 2 × 16-bit basic timers to drive the DAC
– 14 communication interfaces
– 2 × I2C interfaces (SMBus/PMBus)
– 5 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control)
– 3 SPIs (18 Mbit/s), 2 with a multiplexed I2S interface that offers audio class accuracy via
advanced PLL schemes
– 2 × CAN interfaces (2.0B Active) with 512 bytes of dedicated SRAM
– USB 2.0 full-speed device/host/OTG controller with on-chip PHY that supports
HNP/SRP/ID with 1.25 Kbytes of dedicated SRAM
– 10/100 Ethernet MAC with dedicated DMA and SRAM (4 Kbytes): IEEE1588 hardware
support, MII/RMII available on all packages
Page 5 of 23
STM32F107 BLOCK DIAGRAM
Page 6 of 23
STM32F107 MEMORY MAP
Page 7 of 23
SCHEMATIC
22R
21
20
R9
0R(Board_Mounted)
VREF+
VREF-
PC15/OSC32_OUT
9
PE1
40
41
42
43
44
45
46
1
GND
PE8/TIM1_CH1N
PE9/TIM1_CH1
PE11/TIM1_CH2
PE12/TIM1_CH3N
PD13/TIM4_CH2
60
PD14/TIM4_CH3
61
PHY_SOFT_RST
PD15/TIM4_CH4
62
PE13/TIM1_CH3
PE14/TIM1_CH4
PE15/TIM1_BKIN
RM1G3
TDO
RST
10pF
TRST
RM1G1
D7
JTAG
RM2G1
RA1206_(4x0603)_4B8_10k
RM2G3
+5V_JTAG
RM2G4
R-T
1
2
R64
D+
ID
C1-
2
V-
6
100nF
C34
100nF
ETH_RMII_MDINT
ETH_RMII_MDINT
ETH_RMII_TXD0
ETH_RMII_TXD1
ETH_RMII_TXD0
ETH_RMII_TXD1
R20
R21
T1OUT14
T2OUT7
T1IN
2.2k
330R
T2IN
12
2
R1IN 13
R2IN 8
R1OUT
9
R2OUT
3.3V
16
VCC
PC_TXD
PC_CTS
3
4
1N4148
47k
7
8
5
9
R42
NA
GND
15
U5PWR
C39
100nF
17
18
19
20
C20
22uF/6.3V
6
VDDCR
11 RXD0/MODE0
10 RXD1/MODE1
RA1206_(4X0603)_4B8_4.7k
RMIISEL
PHYAD2
9
RXD2/RMIISEL
8
RXD3/PHYAD2
100nF
26 RXDV
7 RXCLK/PHYAD1
EXP_PAD
GND
13 RXER/RXD4/PHYAD0
4
XTAL2
17 MDC
16 MDIO
ETH_RMII_MDC
ETH_RMII_MDIO
3.3V
LAN
ETH_RMII_REF_CLK
5
XTAL1/CLKIN
RM3G4
1
3
2
RA1206_(4X0603)_4B8_4.7k
14 CRS
RM3G3
15 COL/CRS_DV/MODE2
ETH_RMII_CRS_DV
PHY_SOFT_RST
3.3V
R29
R28
R31
ETH_RMII_REF_CLK
3.3V
L5
FB0805/600R/2A
NA
10k
19
NRST
32 RBIAS
2
LED2/NINTSEL
3
LED1/REGOFF
AG
29
TXP
28
TXN
31
RXP
30
RXN
KY
12.1k/1%
KG
AY
7
6
8
LAN8710A-EZC
ETH_RMII_REF_CLK
R33
330R
1:1
TD+
COM
AG
75
75
75
AY
YELLOW
KY
1:1
RD+
NC
RD-
1nF/2kV
R37
CD1
4
VDD
E/D
3.3V
1
3.3V
3.3V
UEXT
3
2
VSS
OUT
RM4G2
RM4G4
RM4G3
RM4G1
RA1206_(4X0603)_4B8_4.7k
RA1206_(4X0603)_4B8_4.7k
RA1206_(4X0603)_4B8_4.7k
RA1206_(4X0603)_4B8_4.7k
PHYAD0
PHYAD1
PHYAD2
RMIISEL
R43
4.7k
UEXT_PWR_E
CLOSE
USART3_TX
I2C1_SCL
SPI3_MISO
SPI3_SCK
UEXT
1
2
3
4
5
6
7
8
9
10
USART3_RX
I2C1_SDA
SPI3_MOSI
CS_UEXT
BH10S
3.3V
R46
3.3VA
3.3V
3.3VA
SPI3_SCK,SPI3_MOSI,SPI3_MISO,CS_UEXT,I2C1_SCL,I2C1_SDA,USART3_TX,USART3_RX,SPI1_NSS,SPI1_SCK,SPI1_MISO,SPI1_MOSI,USART2_TX,USART2_RX,USART2_RTS,USART2_CTS
2.2k
PWR_LED
LED/RED/0603
VO 2
D6
+5V_EXT
1N5819S
IN
NA(10uF/6.3V)
GND_PIN
C52
R56
R55
300R/1%
2
R47
PB2/BOOT1
10k
NA(STM1001RWX6F)
R52
2.2k
2
VCC
RESET
R53
1
330R
GND
R54
100R/1%
100nF
GND
C53
GNDA_E
2
AGND
CLOSE
Page 8 of 23
1
0
R48
10k
U6
R51
2.2k
C42
1
390R/1%
RESET CIRCUIT
3
22uF/6.3V
C51
2.2uF/6.3V
C41
240R/1%
3.3V
3.3V
STAT2
STAT1
CLOSE
R50
22uF/6.3V
C49
22uF/6.3V
C48
100nF
C47
22uF/6.3V
C46
22uF/6.3V
C45
470uF/16VDC
1
OUT
ADJ/GND
R49
100R/1%
100nF
C44
+
1
GND/ADJ
22uF/6.3V
C50
VI
C43
100nF
STATUS LEDS
3.3VA_E
NA(10uF/6.3V)
3
C40
3.3V_E
CLOSE
VR2(3.3V)
LM1117IMPX-ADJ
STAT1
STAT2
LED/GREEN/0603
LED/YELLOW/0603
RESET
C54
100nF
RST
3
1N5819S
2
1N5819S
D5
1
D4
+5V_OTG_PWR
1
VR1(5.0V)
AME1085
T1107A(6x3,8x2,5mm)
+5V_JTAG
G1
2
PWR_JACK
PWRJ_2.0mm(YDJ-1134)
3
7
8
6
WKUP
330R
+5V
GND
C56
1nF/2kV/X7R/1206
33k
R41
33k
+5V
1
4
5
2
GREEN
KG
RJLBC-060TC1
C37
100nF
75
TD-
3.3V
NA(6NC2-50MHz/5032)
POWER SUPPLY CIRCUIT
R15
R17
R18
L4
100nF
C24
1
VDD2A
18 NINT/TXER/TXD4
RA1206_(4X0603)_4B8_4.7k
ETH_RMII_RXD0
ETH_RMII_RXD1
R35
100R/1%
100nF
33k
33k
33k
FB0805/600R/2A
TAMPER
C38
R12
R13
C22
22uF/6.3V
27
VDD1A
RM3G2
R38
1M
10k
Ethernet
12
VDDIO
3.3V
6VAC
(6.5-9)VDC
GND2
4.7k
SPI3_SCK
SPI3_MISO
SPI3_MISO
13
21 TXEN
20 TXCLK
RM3G1
3.3V
ETH_RMII_RXD0
ETH_RMII_RXD1
ETH_RMII_CRS_DV
PHY_SOFT_RST
R36
100R/1%
TAMPER
16
U4
ETH_RMII_TX_EN
100nF
330R
6
12
14
15
24 TXD2
25 TXD3
C55
10uF/6.3V
R34
10
11
13
3.3V
C35
1
6
8
9
RA1206_(4X0603)_4B8_4.7k
R30
10k
RS1
PC_DCD
PC_RXD
PC_RTS
5
7
3.3V
CS_MMCCS_MMC
SPI3_MOSI
SPI3_MOSI
2
CD/DAT3/CS
3
CMD/DI
6
VSS
4
VDD
5
CLK/SCLK
7
DAT0/DO
8
DAT1/RES
1
DAT2/RES
9
22 TXD0
23 TXD1
3.3V
WKUP
C2-
11
10
10k
R32
C2+
5
DTC114YKA
C33
4
MICRO_SD/TFC-WPAPR-08
3.3V
T1103NE-DTSM-21R(12x12x4.3mm)
4
100nF
3.3V
T2
V+
D2
1N4148
C1+
3
2.2k
1
2
3
BH20S
ETH_RMII_TX_EN
T1103NE-DTSM-21R(12x12x4.3mm)
2
1
U5
ST3232BDR(SO16)
1
OPEN
10pF
ETH_RMII_MDIO
HN1x2(Open)
RST
DB104(SMD)
USB
100nF
C6
10uF/6.3V
C7
R60
4.7k
BAT54C
GND
GND
SD/MMC
NA
ETH_RMII_MDC
BUTTONS
RST_E
RS232
2
L3
SD/MMC
3.3V
R11
PHYAD1
PHYAD0
1
6.81k/1%
10k
RM1G4
USART3_TX
USART3_RX
PD8
PD9
PD10
PD11
PD12
PD13
PD14
PD15
PD10/USART3_CK/ETH_MII_RX_D1
57
PD11/USART3_CTS/ETH_MII_RX_D2
58
PD12/TIM4_CH1/USART3_RTS/ETH_MII_RX_D3
59
PE10/TIM1_CH2N
SPI3_SCK
SPI3_MISO
SPI3_MOSI
USART2_CTS
USART2_RTS
USART2_TX
USART2_RX
PD6
PD7
PD7/USART2_CK
88
USB_VBUSON
PD8/USART3_TX/ETH_MII_RX_DV
USART3_TX
55
PD9/USART3_RX/ETH_MII_RX_D0
56
USART3_RX
PE7/TIM1_ETR
C21
Q2
32768Hz/6pF
C23
PD4/USART2_RTS
85
USART2_RTS
PD5/USART2_TX
86
USART2_TX
PD6/USART2_RX
USART2_RX
87
PE6/TRACED3
RM1G2
RA1206_(4x0603)_4B8_10k
TRST
TDI
TMS
TCK
PD1
PD2
PD3
PD4
PD5
PD2/TIM3_ETR/UART5_RX
83
PD3/USART2_CTS
USART2_CTS
84
PE5/TRACED2
38
39
RM2G2
JTAG
STM32F107VCT6
HN1x2(Open)
100nF
FB0805/600R/2A
ETH_RMII_RXD0
ETH_RMII_RXD1
PC4
PC5
PC6
PC7
R19
PD0/OSC_IN/CAN1_RX
81
PD1/OSC_OUT/CAN1_TX
82
PE0/TIM4_ETR
PE4/TRACED1
5
R40
330R
10uF/6.3V
22uF/6.3V
C26
3
D3
D-
MICRO_AB
RJ45 SIDE
NC
PE3/TRACED0
4
BOOT0_E
C16
GND2
NRST
ETH_RMII_MDC
PC2
PC3
PC8
PC9
PC10
PC11
PC12/UART5_TX/USART3_CK/SPI3_MOSI
80
SPI3_MOSI
PC13/TAMPER-RTC
7
TAMPER
PC14/OSC32_IN
8
PE2/TRACECK
2
ETH_RMII_MDINT
USB_FAULT
BOOT0
VBUS
GND
C15
GND1
98
1
USART2_RX
USART2_CTS
USB_OTG
+5V_OTG_PWR
USB_OTG_DUSB_OTG_D+
OTG_ID
OTG_ID
22uF/6.3V
C25
PC9/TIM3_CH4
66
PC10/UART4_TX/USART3_TX/SPI3_SCK
78
SPI3_SCK
PC11/UART4_RX/USART3_RX/SPI3_MISO
SPI3_MISO
79
OSC_OUT
NA
97
R39
330R
USB_OTG
USB_OTG_DUSB_OTG_D+
R27
14
PE1
PE2
PE3
PE4
PE5
PE6
PE7
PE8
PE9
PE10
PE11
PE12
PE13
PE14
C36
R6
1M
+5V_OTG_PWR
USB_HOST_DUSB_OTG_D-
0R
13
73
USART2_TX
USART2_RTS
R57
3
H
USB_FAULT
2
1
PC7/I2S3_MCK/TIM3_CH2
STAT2
64
PC8/TIM3_CH3
65
2
R16 150R
RST
C32
100nF
22uF/6.3V
0R(Board_Mounted)
PC4/ADC12_IN14/ETH_MII_RXD0/ETH_RMII_RXD0
33
ETH_RMII_RXD0
PC5/ADC12_IN15/ETH_MII_RXD1/ETH_RMII_RXD1
ETH_RMII_RXD1
34
PC6/I2S2_MCK/TIM3_CH1
63
STAT1
OSC_IN
NA
Q25.000MHz/HC-49SM(SMD)/20pF
ISET3
1
R14
Q1
RST
O
NA(USBLC6-2P6)
100nF
SHIELD
CS_UEXT
PC1
PC2/ADC12_IN12/ETH_MII_TXD2
17
PC3/ADC12_IN13/ETH_MII_TX_CLK
18
3.3V
12
C19
27pF
2
2
PB11
PC0/ADC12_IN10
15
PC1/ADC12_IN11/ETH_MII_MDC/ETH_RMII_MDC
16
ETH_RMII_MDC
BOOT0
B0_0/B0_1
HN1x3(B0_0:Close/B0_1:Open)
3
HN1x3(O:Close,H:Open)
R63
2.2k
OUT1
EN
PB11/I2C2_SDA/USART3_RX/ETH_MII_TX_EN/ETH_RMII_TX_EN/TIM2_CH4
48
ETH_RMII_TX_EN
ETH_RMII_TX_EN
PB12/SPI2_NSS/I2S2_WS/I2C2_SMBAL/USART3_CK/TIM1_BKIN/CAN2_RX/ETH_MII_TXD0/ETH_RMII_TXD0
51
ETH_RMII_TXD0
ETH_RMII_TXD0
VBAT
94
1
4
C13
C12
NA(47pF)
NA(47pF)
SY6280
IN
49.9R/1%
R22
49.9R/1%
R23
49.9R/1%
R24
49.9R/1%
R25
330R R26
3
2
0
I2C1_SCL
I2C1_SDA
2
4
C64
22uF/6.3V
C29
6
R1010k
1
2
C11
5
U13
5
USB_D-
4
PB13/SPI2_SCK/I2S2_CK/USART3_CTS/TIM1_CH1N/CAN2_TX/ETH_MII_TXD1/ETH_RMII_TXD1
52
ETH_RMII_TXD1
ETH_RMII_TXD1
PB10
PB14/SPI2_MISO/TIM1_CH2N/USART3_RTS
53
BOOT0
BAT54C
1
C18
27pF
PB5
PB6/I2C1_SCL/TIM4_CH1/USART1_TX/CAN2_TX
92
PB6
PB7/I2C1_SDA/TIM4_CH2/USART1_RX
93
PB7
PB8/TIM4_CH3/ETH_MII_TXD3/I2C1_SCL/CAN1_RX
95
I2C1_SCL
PB8
PB9/TIM4_CH4/I2C1_SDA/CAN1_TX
96
I2C1_SDA
PB10/I2C2_SCL/USART3_TX/ETH_MII_RX_ER/TIM2_CH3
PB9
47
PB15/SPI2_MOSI/I2S2_SD/TIM1_CH3N
CS_UEXT
54
D1
3V_BAT
WF2S
R7
PB3/JTDO/SPI3_SCK/TRACESWO/TIM2_CH2/SPI1_SCK
89
TDO
TDO
PB4/JNTRST/SPI3_MISO/TIM3_CH1/SPI1_MISO
90
TRST
TRST
PB4
PB5/I2C1_SMBAL/SPI3_MOSI/ETH_MII_PPS_OUT/ETH_RMII_PPS_OUT/TIM3_CH2/SPI1_MOSI/CAN2_RX
91
VREFVBAT
3.3V
22R
1
100nF
C28
NA
OTG_DM
6
100nF
C27
C17
R3
C31
2.2uF/6.3V
100nF
22R
C30
C14
OTG_DP
3
USB_A
GND1
VSSA
+5V
2
USB
19
PB0/ADC12_IN8/TIM3_CH3/ETH_MII_RXD2/TIM1_CH2N
PB1
35
PB1/ADC12_IN9/TIM3_CH4/ETH_MII_RXD3/TIM1_CH3N
PB2
36
PB2/BOOT1
PB3
37
PB2/BOOT1
VREF+
USB_HOST_D+
USB_OTG_D+
1
L1
GND4
C9
C10
10uF/6.3V 100nF
VDDA
H
U2
R61
PA14/JTCK/SWCLK
TCK
76
PA15/JTDI/SPI3_NSS/TIM2_CH1_ETR/SPI1_NSS
77
3.3V
2
VSS
TMS
TCK
TDI
+5V_HOST_PWR
USB_HOST_DUSB_HOST_D+
FB0805/600R/2A
6.81k/1%
22
HN1x3(O:Close,H:Open)
O
PA12/USART1_RTS/CAN1_TX/TIM1_ETR/OTG_FS_DP
71
OTG_DP
PA13/JTMS/SWDIO
72
TMS
VSS
33k
VSS
EN
ISET3
R5
L2
22R
PA10/USART1_RX/TIM1_CH3/OTG_FS_ID
69
OTG_ID
PA11/USART1_CTS/CAN1_RX/TIM1_CH4/OTG_FS_DM
OTG_DM
70
VSS
3
PA8/USART1_CK/OTG_FS_SOF/TIM1_CH1/MCO
R2
67
PA9/USART1_TX/TIM1_CH2/OTG_FS_VBUS
68
OTG_VBUS
VSS
USB_VBUSON
49
R59
2.2k
OUT1
IN
22uF/6.3V
2.2k
2
74
SY6280
C62
47k
USB_D+
R4
99
0R
4
2
CLOSE
27
1
3.3VA_MCU_E
10
R8
DTA114YKA
PA6/SPI1_MISO/ADC12_IN6/TIM3_CH1/TIM1_BKIN
31
PA7/SPI1_MOSI/ADC12_IN7/TIM3_CH2/ETH_MII_RX_DV/ETH_RMII_CRS_DV/TIM1_CH1N
ETH_RMII_CRS_DV
32
ETH_RMII_CRS_DV
3.3VA
FB0805/600R/2A
USB CIRCUIT
CS_MMC
5
T1
1
100nF
C5
PA2
PA3/USART2_RX/TIM5_CH4/ADC12_IN3/TIM2_CH4/ETH_MII_COL
26
PA3
PA4/SPI1_NSS/DAC_OUT1/USART2_CK/ADC12_IN4
29
CS_MMC
PA4
PA5/SPI1_SCK/DAC_OUT2/ADC12_IN5
30
PA5
USB_HOST
+5V
U3
3
VDD
100
VDD
28
VDD
11
VDD
100nF
C4
10uF/6.3V
C3
100nF
C2
100nF
C1
PA0/WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR/TIM5_CH1/ETH_MII_CRS_WKUP
PA1
23
WKUP
PA1/USART2_RTS/ADC12_IN1/TIM5_CH2/TIM2_CH2/ETH_MII_RX_CLK/ETH_RMII_REF_CLK
ETH_RMII_REF_CLK
ETH_RMII_REF_CLK
24
PA2/USART2_TX/TIM5_CH3/ADC12_IN2/TIM2_CH3/ETH_MII_MDIO/ETH_RMII_MDIO
ETH_RMII_MDIO
ETH_RMII_MDIO
25
VDD
+5V_HOST_PWR
USB_HOST_DUSB_HOST_D+
3.3V
+5V_OTG_PWR
2
50
+5V_HOST_PWR
0R(Board_Mounted)
2
2
U1
75
USB_HOST
H
0R
1
1
O
R1
OTG_VBUS
CLOSE
1
VBUS
HN1x3(O:Close,H:Open)
3.3V_MCU_E
GND3
3.3V
B1_0/B1_1
HN1x3(B1_0:Close/B1_1:Open)
R44
R45
4.7k
33k
BOARD LAYOUT
POWER SUPPLY CIRCUIT
STM32-P107 can be powered from:
– PWR JACK connector, where (6.5-9.0)V DC or 6.0V AC is applied from an
external power source
– USB OTG connector; 5V voltage is provided via a mini USB cable
– JTAG connector; 5V voltage is provided by a compatible third party tool
The programmed board power consumption is about 70 mA.
RESET CIRCUIT
STM32-P107 reset circuit includes JTAG connector pin 15, U2 (STE101P) pin 28 (RESET), R73 (10k),
R74 (330Ohm), R75 (100Ohm/1%), C55 (100nF), STM32F107 pin 14 (NRST) and RESET button.
CLOCK CIRCUIT
Quartz crystal 25 MHz is connected to STM32F107 pin 12 (OSC_IN) and pin 13 (OSC_OUT).
Quartz crystal 32.768kHz is connected to STM32F107 pin 8 (PC14/OSC32_IN) and pin 9
(PC15/OSC32_OUT).
Page 9 of 23
JUMPER DESCRIPTION
STM32-P107 has a number of jumpers. They control the behavior of the board and allow modification of
the default hardware connections. There are two types of jumpers – PTH ones (big ones, easy to change
using a plastic cap) and SMT ones (pads that require cutting and soldering). It is safe to change the
position of the PTH jumpers as long as you use one of the legal positions of the jumper. Changing the
SMT jumpers, on the other hand, is not recommended – misconfiguration of the SMT jumpers might
damage the board.
There are jumper tables printed at the back of the board!
PTH jumpers:
B0_0/B0_1 and B1_0/B1_1 control the boot mode.
B0_0/B0_1
When this jumper is in position B0_1 – BOOT0 is connected to 3.3V, and when the
jumper is in position B0_0 – BOOT0 is connected to GND.
Default state is B0_0.
B1_0/B1_1
When this jumper is in position B1_1 – BOOT1 is connected to 3.3V, and when the
jumper is in position B1_0 – BOOT1 is connected to GND.
Default state is B1_0.
VBUS, USB_D+, and USB_D- are responsible for the USB host control. The host can be
routed to either the USB_OTG or the USB_HOST control.
VBUS
When is in position “H” - connects +5V_HOST_PWR to OTG_VBUS.
When is in position “O” - connects +5V_OTG_PWR to OTG_VBUS.
Default state is “O”.
USB_D+
When is in position “H” - connects USB_HOST_D+ to OTG_DP.
When is in position “O” - connects USB_OTG_D+ to OTG_DP.
Default state is “O”.
USB_DWhen is in position “H” - connects USD_HOST_D- to OTG_DM.
When is in position “O” - connects USB_OTG_D- to OTG_DM.
Default state is “O”.
RST_E and BOOT0_E jumpers are responsible for the system memory boot mode via UART
protocol.
Page 10 of 23
RST_E, BOOT0_E jumpers
Note that it is recommended to move those jumpers together – either both should be
open or both should be closed.
When both are closed RS232 boot is enabled (and also B0_0/B0_1 should be in B0/1
position). You can use Flash Load Demonstrator program provided for free by
STMicroelectronics: http://www.st.com/web/en/catalog/tools/PF257525
Default states are RST_E – open; BOOT_E – open.
SMT jumpers:
The SMT jumpers are typically used for hardware measurements and hardware debugging. Please do not
attempt to change the jumpers if you lack the soldering skills required.
3.3V_MCU_E
Enable microcontroller 3.3V power supply
Default state is closed.
3.3V_E
Enable regulator VR2 (3.3V) - LM1117
Default state is closed.
3.3VA_E
Enables board 3.3V analog power supply.
Default state is closed.
3.3VA_MCU_E
Enables microcontroller 3.3V analog power supply.
Default state is closed.
GNDA_E
Enables board analog GND.
Default state is closed.
R-T
Connects RST to TRST
Default state is open.
INPUT/OUTPUT
Status LED1 (green) with name STAT1 connected to STM32F107 pin 63
(PC6/I2S2_MCK/TIM3_CH1).
Status LED2 (yellow) with name STAT2 connected to STM32F107 pin 64
(PC7/I2S3_MCK/TIM3_CH2).
Power-on LED (red) with name PWR – this led shows that +3.3V is applied to the board.
User button with name WKUP connected to STM32F107 pin 23 (PA0/WKUP).
User button with name TAMPER connected to STM32F107 pin 7 (PC13/TAMPER-RTC).
Reset button with name RESET connected to STM32F107 pin 14 (NRST).
Page 11 of 23
CONNECTOR DESCRIPTIONS
JTAG
The JTAG connector is used to program and debug the board via a third-party tool. It can be used for
JTAG and SWD programming and debugging. It is recommended to use with tools that have a compatible
20-pin 0.1 step connector.
The JTAG connector allows the software debugger
to talk via a JTAG (Joint Test Action Group) port
directly to the core. Instructions may be inserted
and executed by the core thus allowing
STM32F107 memory to be programmed with code
and executed step by step by the host software.
For more details please refer to IEEE Standard
1149.1 – 1990 Standard Test Access Port and
Boundary Scan Architecture and STM32F107's
datasheet and user's manual.
Pin #
Signal name
Pin #
Signal name
1
3.3V
2
3.3V
3
TRST
4
GND
5
TDI
6
GND
7
TMS
8
GND
9
TCK
10
GND
11
PULL-DOWN
12
GND
13
TDO
14
GND
15
RST
16
GND
17
PULL-DOWN
18
GND
19
+5V_JTAG
20
GND
Page 12 of 23
PWR_JACK
The board has a standard Olimex DC barrel jack with 2.0mm inner pin and 6.3mm hole. More
information about the exact component might be found here: https://www.olimex.com/wiki/PWRJACK
You can supply either DC or AC voltage to power the board however be careful – if you provide more
than the maximum voltage suggested, you would permanently damage the board.
The suggested voltage ranges for powering the board from the PWR_JACK are:
If you are powering the board from a DC power source – you need to provide between 6.5V and
9.0V of voltage.
If you are powering the board from an AC power source – you need to provide 6.0V of voltage.
Pin #
Signal name
1
Power input
2
GND
USB_HOST
If you intend to use the USB_HOST connector pay attention to the position of VBUS, USB_D+, and
USB_D- jumpers. There is multiplexing between the USB_HOST connector and USB_OTG connector.
Pin #
Signal name
1
+5V_HOST_PWR
2
USB_HOST_D-
3
USB_HOST_D+
4
GND
USB_OTG
If you intend to use the USB_OTG connector in host mode pay attention to the position of VBUS,
USB_D+, and USB_D- jumpers. There is multiplexing between the USB_OTG connector and
USB_HOST connector.
Pin #
Signal name
1
+5V_OTG_PWR
2
USB_OTG_D-
3
USB_OTG_D+
4
OTG_ID
5
GND
The port can be used for DFU USB mode of the STM32F107 processor. To be able to upload data you
would need a mini USB cable connected to a personal computer that runs the proper software supplied by
Page 13 of 23
ST.
To enter the DFU mode you would also need to set the STM32-P107's jumpers properly. Make sure all
jumpers are set as per default and then change the jumper B0_0/B0_1 to position B0_1 – which means
boot from system memory.
More information about the DFU USB mode might be found at the ST's web-site. By the time of writing
this document more information and required files can be found at this link:
http://www.st.com/web/en/catalog/tools/PF257916
You can download the archive that contains the graphical user interface for DFU connection. It is called
“DfuSe Demo”. Extract it and install the software. Set the jumpers of STM32-P107 to boot from system
memory. Leave the rest of the jumpers as per default. Connect the STM32-P107 board to the computer
using a mini USB cable. This would show an unrecognized device in “Windows Device Manager”. Point
the driver updater to the folder where “DfuSe Demo” was installed. After the driver installation the board
would be recognized as “STM Device in DFU Mode”. At this point launch “DfuSe Demo” and restart the
board. A properly connected board looks like in the picture below:
For more information about DFU mode refer to the official USB and ST web-sites.
Page 14 of 23
RS232
The board can be programmed via the RS232 connector (serial interface). This is done without the need
of an additional programming tool. However, you would need a proper serial cable or adapter to access it.
You would also need to change the positions of three PTH jumpers (the rest of the jumpers should be as
per default):
1. B0_0/B0_1 should be set to position B0_1 – which means boot from system memory
2. RST_E should be closed
3. BOOT_E should be closed
Do not confuse B0_0/B0_1 with B1_0/B1_1.
After you set the jumpers and establish the hardware connection you need to download the software
provided by STMicroelectronics. It is called “Flash Loader Demonstrator”. It might be found here: http://
www.st.com/web/en/catalog/tools/PF257525 – after you install the software and establish connection you
can upload hex files to the board without the need of an expensive debugger. A properly recognized board
in “Flash Loader Demonstrater” is shown below:
Note that this method of programming is much slower than working with a debugger. Not only the upload
speed is low – you would need to perform hardware debugging routines to be able to track what is going
on.
Page 15 of 23
The layout of the port is shown on the next page:
Pin #
1
2
3
4
5
6
7
8
9
Signal name
NC
T1OUT
R1IN
NC
GND
NC
CTS
RTS
NC
UEXT
The UEXT connector is typically used to attach additional modules to the board. It nests three popular
interfaces – UART, I2C, and SPI. You can also find 3.3V power output and GND (respectively, pin #1 and
pin #2).
Pin #
1
2
3
4
5
6
7
8
9
10
Signal name
3.3V
GND
USART2_TX
USART2_RX
I2C1_SCL
I2C1_SDA
SPI3_MISO
SPI3_MOSI
SPI3_SCK
CS_UEXT
SD/MMC
Pin #
Signal name
1
2
3
4
5
6
7
8
9
10
11
12
MCIDAT2
CS_MMC
SPI3_MOSI
3.3V
SPI3_SCK
GND
SPI3_MISO
MCIDAT1
Not connected
Not connected
Not connected
Not connected
Page 16 of 23
LAN
Pin #
Signal name chip side
Pin #
Signal name chip side
1
TX+
5
Not connected (NC)
2
TX-
6
VDD
3
VDD
7
RX+
4
Not connected (NC)
8
RX-
LED
Color
Usage
Right
Green
Link status
Left
Yellow
Activity status
3V_BAT
Pin #
Signal name
1
VBAT
2
GND
Page 17 of 23
MECHANICAL DIMENSIONS
All measures are in mils.
Page 18 of 23
Proto area pad pinout table:
# WHITE PRINT ROW #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
3.3V
3.3VA
AGND
+5V
VBAT
PA4
PA2
PE14
PE12
PE10
PE8
PE6
PE4
PE2
PC1
PC2
PC4
PC6
PC8
PC10
PB1
PB3
PB5
PB7
PB9
PB10
PD15
PD13
PD11
PD9
PD6
PD4
PD2
VREF+
VREFRST
GND
PORT PROCESSOR
WHITE PRINT ROW #2
PORT PROCESSOR
PA5
PA3
PE13
PE11
PE9
PE7
PE5
PE3
PE1
PC0
PC2
PC6
PC8
PC11
PC13
PB0
PB2
PB6
PB8
PB10
PB14
PD15
PD13
PD11
PD9
PD5
PD3
PD1
-
3.3V
PA5
PA3
PA1
PE13
PE11
PE9
PE7
PE5
PE3
PE1
PC3
PC5
PC7
PC9
PC11
PB2
PB4
PB6
PB8
PB11
PD14
PD12
PD10
PD8
PD7
PD5
PD3
PD10
GND
PA6
PA4
PA0
PE12
PE10
PE8
PE6
PE4
PE2
PE0
PC3
PC7
PC9
PC12
PC14
PB1
PB5
PB7
PB9
PB15
PD14
PD12
PD10
PD8
PD6
PD4
PD2
PD10
-
Page 19 of 23
AVAILABLE DEMO SOFTWARE
All demo examples are available at the board's web-page
(https://www.olimex.com/Products/ARM/ST/STM32-P107/) and wiki article
(https://www.olimex.com/wiki/STM32-P107). Make sure that the demo you download is compatible with
the board revision you have! The board revision is printed on STM32-P107 itself.
Page 20 of 23
REVISIONS AND ORDERING INFORMATION
STM32-P107 – fully assembled and tested
You can purchase directly from our online shop or from any of our distributors. Note that usually it is
faster and cheaper to purchase Olimex products from our distributors. List of confirmed Olimex LTD
distributors and resellers: https://www.olimex.com/Distributors.
Please visit https://www.olimex.com/ for more info.
User's manual revision history:
REV. I
REV. A
REV. B
REV. C
REV. D
REV. E
REV. F
REV.G
REV.H
REV.I
REV.J
REV.K
REV.L
REV.M
- created December 2009
- edited by TU December 2010
- demo software added and mechanical dimensions detail
- rev. A schematic and added more programmers in BOARD USE
REQUIREMENTS.
- edited June 2011 – changed schematic
- changed schematics to rev. B, added board revision history
- added BOOT0_E, RST_E description, changed dimensions, updated
revision B pictures, updated disclaimer
- updated the information to fit board revision C, updated schematics,
improved document layout, added product support information, updated
links
- improved information about bootloader
- changed the schematic on page 8
- added picture of the protoarea pads with their respective labels
- added new information about DFU mode, hardware revision D changelog
- February 2018 – added table that details the protoarea pinout
- October 2021 – added latest revision schematics, fixed proto area
table
Board revision history:
rev. A
========
1. ST2052BD changed with LM3526-L;
2. SD/MMC signals changed:
SPI1_MOSI→SPI3_MOSI
SPI1_SCK→SPI3_SCK
SPI1_MISO→SPI3_MISO
and SPI1_NSS renamed to CS_MMC;
3. Changed the polarity of C36 to positive (+).
rev. B
========
1. Ethernet PHY changed from STE101P to MICREL one – KS8721BLMM;
2. All 10uF/6.3V/TANT changed to 0805 and a lot of components labels changed;
3. PWR_SEL jumpers replaced by diodes;
4. USART3 connected to UEXT while USART2 connected to RS232 and bootloader functionality is
Page 21 of 23
enabled! Two additional jumpers are added!!!
5. Added UEXT_PWR_E jumper!
6. A lot of jumpers added in the jumpers description table
rev. C
========
1. L2 now placed further away from USB_HOST connector to avoid contact;
2. Ethernet PHY Micrel KS8721 changed to LAN8710A-EZC in RMII;
3. Changed C18 to 4.7uF/6.3V from 100n in accordance with the datasheet. C18 is now renamed C3;
4. STAT1, STAT2 and PWR_LED changed to 0603 size and its resistors to 2.2k;
5. SD/MMC capacitor was replaced by 2×22uF/6.3V capacitors;
6. LM3526 changed to MIC2026-1YM and connection between pin 1 and pin 4 swapped because the
default EN level is opposite;
7. All tantalum capacitors changed to ceramic;
8. Optimizations in the values of few other elements as well;
9. R28(0R) changed to 10k, C55=10uF/6.3V added and RST connection removed from the PHY!
rev. D
========
1. All libraries updated;
2. SD/MMC package changed to TFC-WPAPR-08;
3. CD1 package changed from 7×5mm to 5032;
4. 1nF/2kV/X7R/1206 capacitor added to the LAN's connector and the routing changed a little;
5. L1,L2,L3 and L5 values changed from FB0805/600R/200mA(201209-601) to FB0805/600R/2A;
6. L4 changed from CL470nH/0805/1.76R/250mA to FB0805/600R/2A;
7. C7 and C9 changed from 0805 to 0603;
8. C53's package changed from 0805 to 0603.
rev. E
========
1. U3(MIC2026-1YM) replaced by 2xSY6280 and their corresponding elements, because MIC2026-1YM
is obsolete;
2. All libraries updated and many packages changed: MCU, SD_card, PWR_JACk, LED and USB_OTG.
3. Optimizations:
C15 changed from 2.2uF/6.3V to 10uF/6.3V
R26 and R33 changed from 549R/1% to 330R
C3 changed from 4.7uF/6.3V to 10uF/6.3V to reserve a feeder.
Q1's value corrected from HC-49 to Q25.000MHz/HC-49SM(SMD)/20pF.
Written default positions for the jumpers B0_0/B0_1 and B1_0/B1_1.
Page 22 of 23
WARRANTY AND SUPPORT
For product support, hardware information and error reports mail to: support@olimex.com. All document
or hardware feedback is welcome. Note that we are primarily a hardware company and our software
support is limited. Please consider reading the paragraph below about the warranty of Olimex products.
All goods are checked before they are sent out. In the unlikely event that goods are faulty, they
must be returned, to OLIMEX at the address listed on your order invoice.
OLIMEX will not accept goods that have clearly been used more than the amount needed to evaluate
their functionality.
If the goods are found to be in working condition, and the lack of functionality is a result of lack
of knowledge on the customers part, no refund will be made, but the goods will be returned to the
user at their expense.
All returns must be authorized by an RMA Number. Email support@olimex.com for authorization number
before shipping back any merchandise. Please include your name, phone number and order number in your
email request.
Returns for any unaffected development board, programmer, tools, and cables permitted within 7 days
from the date of receipt of merchandise. After such time, all sales are considered final.
Returns of incorrect ordered items are allowed subject to a 10% restocking fee. What is unaffected?
If you hooked it to power, you affected it. To be clear, this includes items that have been soldered
to, or have had their firmware changed. Because of the nature of the products we deal with
(prototyping electronic tools) we cannot allow returns of items that have been programmed, powered
up, or otherwise changed post shipment from our warehouse.
All returned merchandise must be in its original mint and clean condition. Returns on damaged,
scratched, programmed, burnt, or otherwise 'played with' merchandise will not be accepted.
All returns must include all the factory accessories which come with the item. This includes any InCircuit-Serial-Programming cables, anti-static packing, boxes, etc.
With your return, enclose your PO#. Also include a brief letter of explanation of why the merchandise
is
being
returned
and
state
your
request
for
either
a
refund
or
an
exchange.
Include
the
authorization number on this letter, and on the outside of the shipping box.
Please note: It is your responsibility to ensure that returned goods reach us. Please use a reliable
form of shipping. If we do not receive your package we will not be held liable.
Shipping and handling charges are not refundable. We are not responsible for any shipping charges of
merchandise being returned to us or returning working items to you.
The full text might be found at https://www.olimex.com/wiki/GTC#Warranty for future reference.
Page 23 of 23