1+ /*
2+ *******************************************************************************
3+ * Copyright (c) 2016, STMicroelectronics
4+ * All rights reserved.
5+ *
6+ * Redistribution and use in source and binary forms, with or without
7+ * modification, are permitted provided that the following conditions are met:
8+ *
9+ * 1. Redistributions of source code must retain the above copyright notice,
10+ * this list of conditions and the following disclaimer.
11+ * 2. Redistributions in binary form must reproduce the above copyright notice,
12+ * this list of conditions and the following disclaimer in the documentation
13+ * and/or other materials provided with the distribution.
14+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
15+ * may be used to endorse or promote products derived from this software
16+ * without specific prior written permission.
17+ *
18+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+ *******************************************************************************
29+ */
30+ #include "Arduino.h"
31+ #include "PeripheralPins.h"
32+
33+ // =====
34+ // Note: Commented lines are alternative possibilities which are not used per default.
35+ // If you change them, you will have to know what you do
36+ // =====
37+
38+
39+ //*** ADC ***
40+
41+ const PinMap PinMap_ADC [] = {
42+ {PA0 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 0 , 0 )}, // ADC1_IN0
43+ {PA1 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 1 , 0 )}, // ADC1_IN1
44+ {PA2 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 2 , 0 )}, // ADC1_IN2
45+ {PA3 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 3 , 0 )}, // ADC1_IN3
46+ {PA4 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 4 , 0 )}, // ADC1_IN4
47+ {PA5 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 5 , 0 )}, // ADC1_IN5
48+ {PA6 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 6 , 0 )}, // ADC1_IN6
49+ {PA7 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 7 , 0 )}, // ADC1_IN7
50+ {PB0 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 8 , 0 )}, // ADC1_IN8
51+ {PB1 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 9 , 0 )}, // ADC1_IN9
52+ {PC0 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 10 , 0 )}, // ADC1_IN10
53+ {PC1 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 11 , 0 )}, // ADC1_IN11
54+ {PC2 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 12 , 0 )}, // ADC1_IN12
55+ {PC3 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 13 , 0 )}, // ADC1_IN13
56+ {PC4 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 14 , 0 )}, // ADC1_IN14
57+ {PC5 , ADC1 , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 15 , 0 )}, // ADC1_IN15
58+ {NC , NP , 0 }
59+ };
60+
61+ //*** DAC ***
62+
63+ const PinMap PinMap_DAC [] = {
64+ {PA4 , DAC , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 1 , 0 )}, // DAC_OUT1
65+ {PA5 , DAC , STM_PIN_DATA_EXT (STM_MODE_ANALOG , GPIO_NOPULL , 0 , 2 , 0 )}, // DAC_OUT2
66+ {NC , NP , 0 }
67+ };
68+
69+ //*** I2C ***
70+
71+ const PinMap PinMap_I2C_SDA [] = {
72+ {PB7 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
73+ {PB9 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 2 )}, // GPIO_Remap_I2C1
74+ {PB11 , I2C2 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
75+ {NC , NP , 0 }
76+ };
77+
78+ const PinMap PinMap_I2C_SCL [] = {
79+ {PB6 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
80+ {PB8 , I2C1 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 2 )}, // GPIO_Remap_I2C1
81+ {PB10 , I2C2 , STM_PIN_DATA (STM_MODE_AF_OD , GPIO_NOPULL , 0 )},
82+ {NC , NP , 0 }
83+ };
84+
85+ //*** PWM ***
86+
87+ const PinMap PinMap_PWM [] = {
88+ {PA0 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM2_CH1
89+ {PA1 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM2_CH2
90+ // {PA2, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM15_CH1
91+ {PA2 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM2_CH3
92+ // {PA3, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM15_CH2
93+ {PA3 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM2_CH4
94+ // {PA6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM16_CH1
95+ {PA6 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM3_CH1
96+ // {PA7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM17_CH1
97+ // {PA7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 6, 1, 1)}, // TIM1_CH1N - GPIO_PartialRemap_TIM1
98+ {PA7 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM3_CH2
99+ {PA8 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM1_CH1
100+ {PA9 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM1_CH2
101+ {PA10 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM1_CH3
102+ {PA11 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM1_CH4
103+ {PA15 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 1 , 0 )}, // TIM2_CH1 - GPIO_FullRemap_TIM2
104+ // {PB0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 6, 2, 1)}, // TIM1_CH2N - GPIO_PartialRemap_TIM1
105+ {PB0 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM3_CH3
106+ // {PB1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 6, 3, 1)}, // TIM1_CH3N - GPIO_PartialRemap_TIM1
107+ {PB1 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM3_CH4
108+ {PB3 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 2 , 0 )}, // TIM2_CH2 - GPIO_FullRemap_TIM2
109+ {PB4 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 7 , 1 , 0 )}, // TIM3_CH1 - GPIO_PartialRemap_TIM3
110+ {PB5 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 7 , 2 , 0 )}, // TIM3_CH2 - GPIO_PartialRemap_TIM3
111+ // {PB6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM16_CH1N
112+ {PB6 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 0 )}, // TIM4_CH1
113+ // {PB7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM17_CH1N
114+ {PB7 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 0 )}, // TIM4_CH2
115+ // {PB8, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM16_CH1
116+ {PB8 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 0 )}, // TIM4_CH3
117+ // {PB9, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM17_CH1
118+ {PB9 , TIM4 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 4 , 0 )}, // TIM4_CH4
119+ {PB10 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 3 , 0 )}, // TIM2_CH3 - GPIO_FullRemap_TIM2
120+ {PB11 , TIM2 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 8 , 4 , 0 )}, // TIM2_CH4 - GPIO_FullRemap_TIM2
121+ {PB13 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 1 , 1 )}, // TIM1_CH1N
122+ // {PB14, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 0)}, // TIM15_CH1
123+ {PB14 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 2 , 1 )}, // TIM1_CH2N
124+ // {PB15, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 1, 1)}, // TIM15_CH1N
125+ // {PB15, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, 0, 2, 0)}, // TIM15_CH2
126+ {PB15 , TIM1 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 0 , 3 , 1 )}, // TIM1_CH3N
127+ {PC6 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 1 , 0 )}, // TIM3_CH1 - GPIO_FullRemap_TIM3
128+ {PC7 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 2 , 0 )}, // TIM3_CH2 - GPIO_FullRemap_TIM3
129+ {PC8 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 3 , 0 )}, // TIM3_CH3 - GPIO_FullRemap_TIM3
130+ {PC9 , TIM3 , STM_PIN_DATA_EXT (STM_MODE_AF_PP , GPIO_PULLUP , 9 , 4 , 0 )}, // TIM3_CH4 - GPIO_FullRemap_TIM3
131+ {NC , NP , 0 }
132+ };
133+
134+ //*** SERIAL ***
135+
136+ const PinMap PinMap_UART_TX [] = {
137+ {PA2 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
138+ {PA9 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
139+ {PB6 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 3 )}, // GPIO_Remap_USART1
140+ {PB10 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
141+ {PC10 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 5 )}, // GPIO_PartialRemap_USART3
142+ {NC , NP , 0 }
143+ };
144+
145+ const PinMap PinMap_UART_RX [] = {
146+ {PA3 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
147+ {PA10 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
148+ {PB7 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 3 )}, // GPIO_Remap_USART1
149+ {PB11 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
150+ {PC11 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 5 )}, // GPIO_PartialRemap_USART3
151+ {NC , NP , 0 }
152+ };
153+
154+ const PinMap PinMap_UART_RTS [] = {
155+ {PA1 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
156+ {PA12 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
157+ {PB14 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
158+ {NC , NP , 0 }
159+ };
160+
161+ const PinMap PinMap_UART_CTS [] = {
162+ {PA0 , USART2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
163+ {PA11 , USART1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
164+ {PB13 , USART3 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
165+ {NC , NP , 0 }
166+ };
167+
168+ //*** SPI ***
169+
170+ const PinMap PinMap_SPI_MOSI [] = {
171+ {PA7 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
172+ {PB5 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
173+ {PB15 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
174+ {NC , NP , 0 }
175+ };
176+
177+ const PinMap PinMap_SPI_MISO [] = {
178+ {PA6 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
179+ {PB4 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
180+ {PB14 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
181+ {NC , NP , 0 }
182+ };
183+
184+ const PinMap PinMap_SPI_SCLK [] = {
185+ {PA5 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
186+ {PB3 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
187+ {PB13 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
188+ {NC , NP , 0 }
189+ };
190+
191+ const PinMap PinMap_SPI_SSEL [] = {
192+ {PA4 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
193+ {PA15 , SPI1 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 1 )}, // GPIO_Remap_SPI1
194+ {PB12 , SPI2 , STM_PIN_DATA (STM_MODE_AF_PP , GPIO_PULLUP , 0 )},
195+ {NC , NP , 0 }
196+ };
197+
198+ //*** No CAN ***
0 commit comments