diff options
Diffstat (limited to 'lib/chibios/os/hal/ports/STM32/STM32L1xx/platform.dox')
-rw-r--r-- | lib/chibios/os/hal/ports/STM32/STM32L1xx/platform.dox | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/lib/chibios/os/hal/ports/STM32/STM32L1xx/platform.dox b/lib/chibios/os/hal/ports/STM32/STM32L1xx/platform.dox new file mode 100644 index 000000000..09dc6742e --- /dev/null +++ b/lib/chibios/os/hal/ports/STM32/STM32L1xx/platform.dox | |||
@@ -0,0 +1,315 @@ | |||
1 | /* | ||
2 | ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio | ||
3 | |||
4 | Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | you may not use this file except in compliance with the License. | ||
6 | You may obtain a copy of the License at | ||
7 | |||
8 | http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | |||
10 | Unless required by applicable law or agreed to in writing, software | ||
11 | distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | See the License for the specific language governing permissions and | ||
14 | limitations under the License. | ||
15 | */ | ||
16 | |||
17 | /** | ||
18 | * @defgroup STM32L1xx_DRIVERS STM32L1xx Drivers | ||
19 | * @details This section describes all the supported drivers on the STM32L1xx | ||
20 | * platform and the implementation details of the single drivers. | ||
21 | * | ||
22 | * @ingroup platforms | ||
23 | */ | ||
24 | |||
25 | /** | ||
26 | * @defgroup STM32L1xx_HAL STM32L1xx Initialization Support | ||
27 | * @details The STM32L1xx HAL support is responsible for system initialization. | ||
28 | * | ||
29 | * @section stm32l1xx_hal_1 Supported HW resources | ||
30 | * - PLL1. | ||
31 | * - RCC. | ||
32 | * - Flash. | ||
33 | * . | ||
34 | * @section stm32l1xx_hal_2 STM32L1xx HAL driver implementation features | ||
35 | * - PLL startup and stabilization. | ||
36 | * - Clock tree initialization. | ||
37 | * - Clock source selection. | ||
38 | * - Flash wait states initialization based on the selected clock options. | ||
39 | * - SYSTICK initialization based on current clock and kernel required rate. | ||
40 | * - DMA support initialization. | ||
41 | * . | ||
42 | * @ingroup STM32L1xx_DRIVERS | ||
43 | */ | ||
44 | |||
45 | /** | ||
46 | * @defgroup STM32L1xx_ADC STM32L1xx ADC Support | ||
47 | * @details The STM32L1xx ADC driver supports the ADC peripherals using DMA | ||
48 | * channels for maximum performance. | ||
49 | * | ||
50 | * @section stm32l1xx_adc_1 Supported HW resources | ||
51 | * - ADC1. | ||
52 | * - DMA1. | ||
53 | * . | ||
54 | * @section stm32l1xx_adc_2 STM32L1xx ADC driver implementation features | ||
55 | * - Clock stop for reduced power usage when the driver is in stop state. | ||
56 | * - Streaming conversion using DMA for maximum performance. | ||
57 | * - Programmable ADC interrupt priority level. | ||
58 | * - Programmable DMA bus priority for each DMA channel. | ||
59 | * - Programmable DMA interrupt priority for each DMA channel. | ||
60 | * - DMA and ADC errors detection. | ||
61 | * . | ||
62 | * @ingroup STM32L1xx_DRIVERS | ||
63 | */ | ||
64 | |||
65 | /** | ||
66 | * @defgroup STM32L1xx_EXT STM32L1xx EXT Support | ||
67 | * @details The STM32L1xx EXT driver uses the EXTI peripheral. | ||
68 | * | ||
69 | * @section stm32l1xx_ext_1 Supported HW resources | ||
70 | * - EXTI. | ||
71 | * . | ||
72 | * @section stm32l1xx_ext_2 STM32L1xx EXT driver implementation features | ||
73 | * - Each EXTI channel can be independently enabled and programmed. | ||
74 | * - Programmable EXTI interrupts priority level. | ||
75 | * - Capability to work as event sources (WFE) rather than interrupt sources. | ||
76 | * . | ||
77 | * @ingroup STM32L1xx_DRIVERS | ||
78 | */ | ||
79 | |||
80 | /** | ||
81 | * @defgroup STM32L1xx_GPT STM32L1xx GPT Support | ||
82 | * @details The STM32L1xx GPT driver uses the TIMx peripherals. | ||
83 | * | ||
84 | * @section stm32l1xx_gpt_1 Supported HW resources | ||
85 | * - TIM2. | ||
86 | * - TIM3. | ||
87 | * - TIM4. | ||
88 | * . | ||
89 | * @section stm32l1xx_gpt_2 STM32L1xx GPT driver implementation features | ||
90 | * - Each timer can be independently enabled and programmed. Unused | ||
91 | * peripherals are left in low power mode. | ||
92 | * - Programmable TIMx interrupts priority level. | ||
93 | * . | ||
94 | * @ingroup STM32L1xx_DRIVERS | ||
95 | */ | ||
96 | |||
97 | /** | ||
98 | * @defgroup STM32L1xx_ICU STM32L1xx ICU Support | ||
99 | * @details The STM32L1xx ICU driver uses the TIMx peripherals. | ||
100 | * | ||
101 | * @section stm32l1xx_icu_1 Supported HW resources | ||
102 | * - TIM2. | ||
103 | * - TIM3. | ||
104 | * - TIM4. | ||
105 | * . | ||
106 | * @section stm32l1xx_icu_2 STM32L1xx ICU driver implementation features | ||
107 | * - Each timer can be independently enabled and programmed. Unused | ||
108 | * peripherals are left in low power mode. | ||
109 | * - Programmable TIMx interrupts priority level. | ||
110 | * . | ||
111 | * @ingroup STM32L1xx_DRIVERS | ||
112 | */ | ||
113 | |||
114 | /** | ||
115 | * @defgroup STM32L1xx_PAL STM32L1xx PAL Support | ||
116 | * @details The STM32L1xx PAL driver uses the GPIO peripherals. | ||
117 | * | ||
118 | * @section stm32l1xx_pal_1 Supported HW resources | ||
119 | * - GPIOA. | ||
120 | * - GPIOB. | ||
121 | * - GPIOC. | ||
122 | * - GPIOD. | ||
123 | * - GPIOE. | ||
124 | * - GPIOH. | ||
125 | * . | ||
126 | * @section stm32l1xx_pal_2 STM32L1xx PAL driver implementation features | ||
127 | * The PAL driver implementation fully supports the following hardware | ||
128 | * capabilities: | ||
129 | * - 16 bits wide ports. | ||
130 | * - Atomic set/reset functions. | ||
131 | * - Atomic set+reset function (atomic bus operations). | ||
132 | * - Output latched regardless of the pad setting. | ||
133 | * - Direct read of input pads regardless of the pad setting. | ||
134 | * . | ||
135 | * @section stm32l1xx_pal_3 Supported PAL setup modes | ||
136 | * The STM32L1xx PAL driver supports the following I/O modes: | ||
137 | * - @p PAL_MODE_RESET. | ||
138 | * - @p PAL_MODE_UNCONNECTED. | ||
139 | * - @p PAL_MODE_INPUT. | ||
140 | * - @p PAL_MODE_INPUT_PULLUP. | ||
141 | * - @p PAL_MODE_INPUT_PULLDOWN. | ||
142 | * - @p PAL_MODE_INPUT_ANALOG. | ||
143 | * - @p PAL_MODE_OUTPUT_PUSHPULL. | ||
144 | * - @p PAL_MODE_OUTPUT_OPENDRAIN. | ||
145 | * - @p PAL_MODE_ALTERNATE (non standard). | ||
146 | * . | ||
147 | * Any attempt to setup an invalid mode is ignored. | ||
148 | * | ||
149 | * @section stm32l1xx_pal_4 Suboptimal behavior | ||
150 | * The STM32L1xx GPIO is less than optimal in several areas, the limitations | ||
151 | * should be taken in account while using the PAL driver: | ||
152 | * - Pad/port toggling operations are not atomic. | ||
153 | * - Pad/group mode setup is not atomic. | ||
154 | * . | ||
155 | * @ingroup STM32L1xx_DRIVERS | ||
156 | */ | ||
157 | |||
158 | /** | ||
159 | * @defgroup STM32L1xx_PWM STM32L1xx PWM Support | ||
160 | * @details The STM32L1xx PWM driver uses the TIMx peripherals. | ||
161 | * | ||
162 | * @section stm32l1xx_pwm_1 Supported HW resources | ||
163 | * - TIM1. | ||
164 | * - TIM2. | ||
165 | * - TIM3. | ||
166 | * - TIM4. | ||
167 | * . | ||
168 | * @section stm32l1xx_pwm_2 STM32L1xx PWM driver implementation features | ||
169 | * - Each timer can be independently enabled and programmed. Unused | ||
170 | * peripherals are left in low power mode. | ||
171 | * - Four independent PWM channels per timer. | ||
172 | * - Programmable TIMx interrupts priority level. | ||
173 | * . | ||
174 | * @ingroup STM32L1xx_DRIVERS | ||
175 | */ | ||
176 | |||
177 | /** | ||
178 | * @defgroup STM32L1xx_SERIAL STM32L1xx Serial Support | ||
179 | * @details The STM32L1xx Serial driver uses the USART/UART peripherals in a | ||
180 | * buffered, interrupt driven, implementation. | ||
181 | * | ||
182 | * @section stm32l1xx_serial_1 Supported HW resources | ||
183 | * The serial driver can support any of the following hardware resources: | ||
184 | * - USART1. | ||
185 | * - USART2. | ||
186 | * - USART3 (where present). | ||
187 | * - UART4 (where present). | ||
188 | * - UART5 (where present). | ||
189 | * . | ||
190 | * @section stm32l1xx_serial_2 STM32L1xx Serial driver implementation features | ||
191 | * - Clock stop for reduced power usage when the driver is in stop state. | ||
192 | * - Each UART/USART can be independently enabled and programmed. Unused | ||
193 | * peripherals are left in low power mode. | ||
194 | * - Fully interrupt driven. | ||
195 | * - Programmable priority levels for each UART/USART. | ||
196 | * . | ||
197 | * @ingroup STM32L1xx_DRIVERS | ||
198 | */ | ||
199 | |||
200 | /** | ||
201 | * @defgroup STM32L1xx_SPI STM32L1xx SPI Support | ||
202 | * @details The SPI driver supports the STM32L1xx SPI peripherals using DMA | ||
203 | * channels for maximum performance. | ||
204 | * | ||
205 | * @section stm32l1xx_spi_1 Supported HW resources | ||
206 | * - SPI1. | ||
207 | * - SPI2. | ||
208 | * - SPI3 (where present). | ||
209 | * - DMA1. | ||
210 | * - DMA2 (where present). | ||
211 | * . | ||
212 | * @section stm32l1xx_spi_2 STM32L1xx SPI driver implementation features | ||
213 | * - Clock stop for reduced power usage when the driver is in stop state. | ||
214 | * - Each SPI can be independently enabled and programmed. Unused | ||
215 | * peripherals are left in low power mode. | ||
216 | * - Programmable interrupt priority levels for each SPI. | ||
217 | * - DMA is used for receiving and transmitting. | ||
218 | * - Programmable DMA bus priority for each DMA channel. | ||
219 | * - Programmable DMA interrupt priority for each DMA channel. | ||
220 | * - Programmable DMA error hook. | ||
221 | * . | ||
222 | * @ingroup STM32L1xx_DRIVERS | ||
223 | */ | ||
224 | |||
225 | /** | ||
226 | * @defgroup STM32L1xx_UART STM32L1xx UART Support | ||
227 | * @details The UART driver supports the STM32L1xx USART peripherals using DMA | ||
228 | * channels for maximum performance. | ||
229 | * | ||
230 | * @section stm32l1xx_uart_1 Supported HW resources | ||
231 | * The UART driver can support any of the following hardware resources: | ||
232 | * - USART1. | ||
233 | * - USART2. | ||
234 | * - USART3 (where present). | ||
235 | * - DMA1. | ||
236 | * . | ||
237 | * @section stm32l1xx_uart_2 STM32L1xx UART driver implementation features | ||
238 | * - Clock stop for reduced power usage when the driver is in stop state. | ||
239 | * - Each UART/USART can be independently enabled and programmed. Unused | ||
240 | * peripherals are left in low power mode. | ||
241 | * - Programmable interrupt priority levels for each UART/USART. | ||
242 | * - DMA is used for receiving and transmitting. | ||
243 | * - Programmable DMA bus priority for each DMA channel. | ||
244 | * - Programmable DMA interrupt priority for each DMA channel. | ||
245 | * - Programmable DMA error hook. | ||
246 | * . | ||
247 | * @ingroup STM32L1xx_DRIVERS | ||
248 | */ | ||
249 | |||
250 | /** | ||
251 | * @defgroup STM32L1xx_USB STM32L1xx USB Support | ||
252 | * @details The USB driver supports the STM32L1xx USB peripheral. | ||
253 | * | ||
254 | * @section stm32l1xx_usb_1 Supported HW resources | ||
255 | * The USB driver can support any of the following hardware resources: | ||
256 | * - USB. | ||
257 | * . | ||
258 | * @section stm32l1xx_usb_2 STM32L1xx USB driver implementation features | ||
259 | * - Clock stop for reduced power usage when the driver is in stop state. | ||
260 | * - Programmable interrupt priority levels. | ||
261 | * - Each endpoint programmable in Control, Bulk and Interrupt modes. | ||
262 | * . | ||
263 | * @ingroup STM32L1xx_DRIVERS | ||
264 | */ | ||
265 | |||
266 | /** | ||
267 | * @defgroup STM32L1xx_PLATFORM_DRIVERS STM32L1xx Platform Drivers | ||
268 | * @details Platform support drivers. Platform drivers do not implement HAL | ||
269 | * standard driver templates, their role is to support platform | ||
270 | * specific functionalities. | ||
271 | * | ||
272 | * @ingroup STM32L1xx_DRIVERS | ||
273 | */ | ||
274 | |||
275 | /** | ||
276 | * @defgroup STM32L1xx_DMA STM32L1xx DMA Support | ||
277 | * @details This DMA helper driver is used by the other drivers in order to | ||
278 | * access the shared DMA resources in a consistent way. | ||
279 | * | ||
280 | * @section stm32l1xx_dma_1 Supported HW resources | ||
281 | * The DMA driver can support any of the following hardware resources: | ||
282 | * - DMA1. | ||
283 | * . | ||
284 | * @section stm32l1xx_dma_2 STM32L1xx DMA driver implementation features | ||
285 | * - Exports helper functions/macros to the other drivers that share the | ||
286 | * DMA resource. | ||
287 | * - Automatic DMA clock stop when not in use by any driver. | ||
288 | * - DMA streams and interrupt vectors sharing among multiple drivers. | ||
289 | * . | ||
290 | * @ingroup STM32L1xx_PLATFORM_DRIVERS | ||
291 | */ | ||
292 | |||
293 | /** | ||
294 | * @defgroup STM32L1xx_ISR STM32L1xx ISR Support | ||
295 | * @details This ISR helper driver is used by the other drivers in order to | ||
296 | * map ISR names to physical vector names. | ||
297 | * | ||
298 | * @ingroup STM32L1xx_PLATFORM_DRIVERS | ||
299 | */ | ||
300 | |||
301 | /** | ||
302 | * @defgroup STM32L1xx_RCC STM32L1xx RCC Support | ||
303 | * @details This RCC helper driver is used by the other drivers in order to | ||
304 | * access the shared RCC resources in a consistent way. | ||
305 | * | ||
306 | * @section stm32f1xx_rcc_1 Supported HW resources | ||
307 | * - RCC. | ||
308 | * . | ||
309 | * @section stm32l1xx_rcc_2 STM32L1xx RCC driver implementation features | ||
310 | * - Peripherals reset. | ||
311 | * - Peripherals clock enable. | ||
312 | * - Peripherals clock disable. | ||
313 | * . | ||
314 | * @ingroup STM32L1xx_PLATFORM_DRIVERS | ||
315 | */ | ||