/* ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /** * @defgroup STM8 STM8x Drivers * @details This section describes all the supported drivers on the STM8S and * STM8A platforms and the implementation details of the single * drivers. * * @ingroup platforms */ /** * @defgroup STM8_HAL STM8 Initialization Support * @details The STM8 HAL support is responsible for system initialization. * * @section stm8_hal_1 Supported HW resources * - CLK. * . * @section stm8_hal_2 STM8 HAL driver implementation features * - Clock tree initialization. * - Clock source selection. * . * @ingroup STM8 */ /** * @defgroup STM8_PAL STM8 GPIO Support * @details The STM8 PAL driver uses the GPIO peripherals. * * @section stm8_pal_1 Supported HW resources * - AFIO. * - GPIOA. * - GPIOB. * - GPIOC. * - GPIOD. * - GPIOE. * - GPIOF. * - GPIOG (where present). * - GPIOH (where present). * - GPIOI (where present). * . * @section stm8_pal_2 STM8 PAL driver implementation features * The PAL driver implementation fully supports the following hardware * capabilities: * - 8 bits wide ports. * - Atomic set/reset/toggle functions because special STM8 instruction set. * - Output latched regardless of the pad setting. * - Direct read of input pads regardless of the pad setting. * . * @section stm8_pal_3 Supported PAL setup modes * The STM8 PAL driver supports the following I/O modes: * - @p PAL_MODE_RESET. * - @p PAL_MODE_UNCONNECTED. * - @p PAL_MODE_INPUT. * - @p PAL_MODE_INPUT_PULLUP. * - @p PAL_MODE_OUTPUT_PUSHPULL. * - @p PAL_MODE_OUTPUT_OPENDRAIN. * . * Any attempt to setup an invalid mode is ignored. * * @section stm8_pal_4 Suboptimal behavior * The STM8 GPIO is less than optimal in several areas, the limitations * should be taken in account while using the PAL driver: * - Bus/group writing is not atomic. * - Pad/group mode setup is not atomic. * . * @ingroup STM8 */ /** * @defgroup STM8_SPI STM8 SPI Support * @details The SPI driver supports the STM8 SPI peripheral in an interrupt * driven implementation. * @note Being the SPI a fast peripheral, much care must be taken to * not saturate the CPU bandwidth with an excessive IRQ rate. The * maximum transfer bit rate is likely limited by the IRQ * handling. * * @section stm8_spi_1 Supported HW resources * - SPI. * . * @section stm8_spi_2 STM8 SPI driver implementation features * - Clock stop for reduced power usage when the driver is in stop state. * - Fully interrupt driven. * . * @ingroup STM8 */ /** * @defgroup STM8_SERIAL STM8 UART Support (buffered) * @details The STM8 Serial driver uses the UART peripherals in a * buffered, interrupt driven, implementation. * * @section stm8_serial_1 Supported HW resources * The serial driver can support any of the following hardware resources: * - UART1. * - UART2 (where present). * - UART3 (where present). * . * @section stm8_serial_2 STM8 Serial driver implementation features * - Clock stop for reduced power usage when the driver is in stop state. * - Each UART can be independently enabled and programmed. Unused * peripherals are left in low power mode. * - Fully interrupt driven. * . * @ingroup STM8 */