Skip to content

Commit c8332a5

Browse files
Stefan Hölzldpgeorge
authored andcommitted
stmhal: Add board definition files for Olimex STM32-E407.
1 parent 0b913bd commit c8332a5

4 files changed

Lines changed: 583 additions & 0 deletions

File tree

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#define STM32E407
2+
3+
#define MICROPY_HW_BOARD_NAME "OLIMEX STM32-E407"
4+
#define MICROPY_HW_MCU_NAME "STM32F407"
5+
6+
#define MICROPY_HW_HAS_SWITCH (1)
7+
#define MICROPY_HW_HAS_FLASH (1)
8+
#define MICROPY_HW_HAS_SDCARD (1)
9+
#define MICROPY_HW_HAS_MMA7660 (0)
10+
#define MICROPY_HW_HAS_LIS3DSH (0)
11+
#define MICROPY_HW_HAS_LCD (0)
12+
#define MICROPY_HW_ENABLE_RNG (1)
13+
#define MICROPY_HW_ENABLE_RTC (1)
14+
#define MICROPY_HW_ENABLE_TIMER (1)
15+
#define MICROPY_HW_ENABLE_SERVO (0)
16+
#define MICROPY_HW_ENABLE_DAC (1)
17+
#define MICROPY_HW_ENABLE_CAN (1)
18+
19+
// HSE is 12MHz
20+
#define MICROPY_HW_CLK_PLLM (12)
21+
#define MICROPY_HW_CLK_PLLN (336)
22+
#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2)
23+
#define MICROPY_HW_CLK_PLLQ (7)
24+
25+
// UART config
26+
#if MICROPY_HW_HAS_SWITCH == 0
27+
#define MICROPY_HW_UART1_PORT (GPIOB)
28+
#define MICROPY_HW_UART1_PINS (GPIO_PIN_6 | GPIO_PIN_7)
29+
#endif
30+
31+
#define MICROPY_HW_UART2_PORT (GPIOA)
32+
#define MICROPY_HW_UART2_PINS (GPIO_PIN_2 | GPIO_PIN_3)
33+
#define MICROPY_HW_UART2_RTS (GPIO_PIN_1)
34+
#define MICROPY_HW_UART2_CTS (GPIO_PIN_0)
35+
36+
#define MICROPY_HW_UART3_PORT (GPIOD)
37+
#define MICROPY_HW_UART3_PINS (GPIO_PIN_8 | GPIO_PIN_9)
38+
#define MICROPY_HW_UART3_RTS (GPIO_PIN_12)
39+
#define MICROPY_HW_UART3_CTS (GPIO_PIN_11)
40+
41+
#if MICROPY_HW_HAS_SWITCH == 0
42+
// NOTE: A0 also connects to the user switch. To use UART4 you should
43+
// set MICROPY_HW_HAS_SWITCH to 0, and also remove SB20 (on the back
44+
// of the board near the USER switch).
45+
#define MICROPY_HW_UART4_PORT (GPIOA)
46+
#define MICROPY_HW_UART4_PINS (GPIO_PIN_0 | GPIO_PIN_1)
47+
#endif
48+
49+
#define MICROPY_HW_UART6_PORT (GPIOC)
50+
#define MICROPY_HW_UART6_PINS (GPIO_PIN_6 | GPIO_PIN_7)
51+
52+
// I2C busses
53+
#define MICROPY_HW_I2C1_SCL (pin_B6)
54+
#define MICROPY_HW_I2C1_SDA (pin_B7)
55+
#define MICROPY_HW_I2C2_SCL (pin_B10)
56+
#define MICROPY_HW_I2C2_SDA (pin_B11)
57+
58+
// SPI busses
59+
#define MICROPY_HW_SPI1_NSS (pin_A4)
60+
#define MICROPY_HW_SPI1_SCK (pin_A5)
61+
#define MICROPY_HW_SPI1_MISO (pin_A6)
62+
#define MICROPY_HW_SPI1_MOSI (pin_A7)
63+
#define MICROPY_HW_SPI2_NSS (pin_B12)
64+
#define MICROPY_HW_SPI2_SCK (pin_B13)
65+
#define MICROPY_HW_SPI2_MISO (pin_B14)
66+
#define MICROPY_HW_SPI2_MOSI (pin_B15)
67+
68+
// USRSW is pulled low. Pressing the button makes the input go high.
69+
#define MICROPY_HW_USRSW_PIN (pin_A0)
70+
#define MICROPY_HW_USRSW_PULL (GPIO_NOPULL)
71+
#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_RISING)
72+
#define MICROPY_HW_USRSW_PRESSED (1)
73+
74+
// LEDs
75+
#define MICROPY_HW_LED1 (pin_C13)
76+
#define MICROPY_HW_LED_OTYPE (GPIO_MODE_OUTPUT_PP)
77+
#define MICROPY_HW_LED_ON(pin) (pin->gpio->BSRRH = pin->pin_mask)
78+
#define MICROPY_HW_LED_OFF(pin) (pin->gpio->BSRRL = pin->pin_mask)
79+
80+
// SD card detect switch
81+
#define MICROPY_HW_SDCARD_DETECT_PIN (pin_C11)
82+
#define MICROPY_HW_SDCARD_DETECT_PULL (GPIO_PULLUP)
83+
#define MICROPY_HW_SDCARD_DETECT_PRESENT (GPIO_PIN_RESET)
84+
85+
// USB config
86+
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
87+
#define MICROPY_HW_USB_OTG_ID_PIN (pin_A10)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
MCU_SERIES = f4
2+
CMSIS_MCU = STM32F407xx
3+
AF_FILE = boards/stm32f405_af.csv
4+
LD_FILE = boards/stm32f405.ld

stmhal/boards/OLIMEX_E407/pins.csv

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
PC0,PC0
2+
PC1,PC1
3+
PC2,PC2
4+
PC3,PC3
5+
PA0,PA0
6+
PA1,PA1
7+
PA2,PA2
8+
PA3,PA3
9+
PA4,PA4
10+
PA5,PA5
11+
PA6,PA6
12+
PA7,PA7
13+
PC4,PC4
14+
PC5,PC5
15+
PB0,PB0
16+
PB1,PB1
17+
PB2,PB2
18+
PE7,PE7
19+
PE8,PE8
20+
PE9,PE9
21+
PE10,PE10
22+
PE11,PE11
23+
PE12,PE12
24+
PE13,PE13
25+
PE14,PE14
26+
PE15,PE15
27+
PB10,PB10
28+
PB11,PB11
29+
PB12,PB12
30+
PB13,PB13
31+
PB14,PB14
32+
PB15,PB15
33+
PD8,PD8
34+
PD9,PD9
35+
PD10,PD10
36+
PD11,PD11
37+
PD12,PD12
38+
PD13,PD13
39+
PD14,PD14
40+
PD15,PD15
41+
PC6,PC6
42+
PC7,PC7
43+
PC8,PC8
44+
PC9,PC9
45+
PA8,PA8
46+
PA9,PA9
47+
PA10,PA10
48+
PA13,PA13
49+
PA14,PA14
50+
PA15,PA15
51+
PC10,PC10
52+
PC11,PC11
53+
PC12,PC12
54+
PD0,PD0
55+
PD1,PD1
56+
PD2,PD2
57+
PD3,PD3
58+
PD4,PD4
59+
PD5,PD5
60+
PD6,PD6
61+
PD7,PD7
62+
PB4,PB4
63+
PB5,PB5
64+
PB6,PB6
65+
PB7,PB7
66+
PB8,PB8
67+
PB9,PB9
68+
PE0,PE0
69+
PE1,PE1
70+
PE2,PE2
71+
PE3,PE3
72+
PE4,PE4
73+
PE5,PE5
74+
PE6,PE6
75+
LED_GREEN,PC13
76+
PC14,PC14
77+
PC15,PC15
78+
PH0,PH0
79+
PH1,PH1
80+
PD12,PD12
81+
PD13,PD13
82+
PD14,PD14
83+
PD15,PD15
84+
PA0,PA0
85+

0 commit comments

Comments
 (0)