BSP_DISCO_L4R9I
Dependents: DISCO_L4R9I-LCD-demo
Diff: Drivers/BSP/STM32L4R9I-Discovery/stm32l4r9i_discovery.h
- Revision:
- 0:31ddfafdd3da
- Child:
- 1:2105b8894450
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Drivers/BSP/STM32L4R9I-Discovery/stm32l4r9i_discovery.h Fri Nov 22 16:43:39 2019 +0100 @@ -0,0 +1,371 @@ +/** + ****************************************************************************** + * @file stm32l4r9i_discovery.h + * @author MCD Application Team + * @brief This file contains definitions for STM32L4R9I_DISCOVERY's LEDs, + * push-buttons hardware resources (MB1311). + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L4R9I_DISCOVERY_H +#define __STM32L4R9I_DISCOVERY_H + +#ifdef __cplusplus + extern "C" { +#endif + +/** + * @brief Define for STM32L4R9I_DISCOVERY board + */ + + + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l4xx_hal.h" +#if defined(BSP_USE_CMSIS_OS) +#include "cmsis_os.h" +#endif + +/** @addtogroup BSP + * @{ + */ + +/** @addtogroup STM32L4R9I_DISCOVERY + * @{ + */ + +/** @addtogroup STM32L4R9I_DISCOVERY_Common + * @{ + */ + +/** @defgroup STM32L4R9I_DISCOVERY_Exported_Types Exported Types + * @{ + */ + +/** + * @brief LED Types Definition + */ +typedef enum +{ + LED1 = 0, + LED2 = 1, + LED_ORANGE = LED1, + LED_GREEN = LED2 +}Led_TypeDef; + + +/** + * @brief JOYSTICK Types Definition + */ +typedef enum +{ + JOY_SEL = 0, + JOY_LEFT = 1, + JOY_RIGHT = 2, + JOY_DOWN = 3, + JOY_UP = 4, + JOY_NONE = 5 +}JOYState_TypeDef; + +typedef enum +{ + JOY_MODE_GPIO = 0, + JOY_MODE_EXTI = 1 +}JOYMode_TypeDef; + +/** + * @brief COM Type Definition + */ +typedef enum +{ + COM1 = 0 +}COM_TypeDef; + +/** + * @} + */ + +/** @defgroup STM32L4R9I_DISCOVERY_Exported_Constants Exported Constants + * @{ + */ + +/** @defgroup STM32L4R9I_DISCOVERY_LED LED Constants + * @{ + */ +/* LED number */ +#define LEDn 2 + +/* LED1 is accessed thru the MFX */ +#define LED1_PIN IO_PIN_0 + +#define LED2_PIN GPIO_PIN_4 +#define LED2_GPIO_PORT GPIOH +#define LED2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE() +#define LED2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOH_CLK_DISABLE() + +/** + * @} + */ + +/** @defgroup STM32L4R9I_DISCOVERY_BUTTON BUTTON Constants + * @{ + */ +#define JOYn 5 + +/** +* @brief Joystick Right push-button +*/ +#if defined(USE_STM32L4R9I_DISCO_REVA) +/* Joystick right and up pins inverted */ +#define RIGHT_JOY_PIN IO_PIN_1 +#else +#define RIGHT_JOY_PIN IO_PIN_3 +#endif +#define RIGHT_JOY_EXTI_IRQn EXTI1_IRQn + +/** +* @brief Joystick Left push-button +*/ +#define LEFT_JOY_PIN IO_PIN_4 +#define LEFT_JOY_EXTI_IRQn EXTI1_IRQn + +/** +* @brief Joystick Up push-button +*/ +#if defined(USE_STM32L4R9I_DISCO_REVA) +/* Joystick right and up pins inverted */ +#define UP_JOY_PIN IO_PIN_3 +#else +#define UP_JOY_PIN IO_PIN_1 +#endif +#define UP_JOY_EXTI_IRQn EXTI1_IRQn + +/** + * @brief Joystick Down push-button + */ +#define DOWN_JOY_PIN IO_PIN_2 +#define DOWN_JOY_EXTI_IRQn EXTI1_IRQn + +/** + * @brief Joystick Sel push-button + */ +#define SEL_JOY_PIN GPIO_PIN_13 /* PC.13 */ +#define SEL_JOY_GPIO_PORT GPIOC +#define SEL_JOY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() +#define SEL_JOY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() +#define SEL_JOY_EXTI_IRQn EXTI15_10_IRQn + +/** + * @} + */ + +/** @defgroup STM32L4R9I_DISCOVERY_MFX_PIN MFX Pins Constants + * @{ + */ + +/** + * @brief Pins definition connected to MFX + */ +#define DSI_RST_PIN IO_PIN_10 +#define EXT_RST_PIN IO_PIN_11 +#define OTG_FS_POWER_SWITCH_PIN IO_PIN_13 +#define OTG_FS_OVER_CURRENT_PIN IO_PIN_14 +#define SD_DETECT_PIN IO_PIN_5 + +/** + * @} + */ + +/** @defgroup STM32L4R9I_DISCOVERY_COM COM Constants + * @{ + */ +#define COMn 1 + +/** + * @brief Definition for COM port1, connected to USART2 (ST-Link USB Virtual Com Port) + */ +#define DISCOVERY_COM1 USART2 +#define DISCOVERY_COM1_CLK_ENABLE() __HAL_RCC_USART2_CLK_ENABLE() +#define DISCOVERY_COM1_CLK_DISABLE() __HAL_RCC_USART2_CLK_DISABLE() + +#define DISCOVERY_COM1_TX_PIN GPIO_PIN_2 +#define DISCOVERY_COM1_TX_GPIO_PORT GPIOA +#define DISCOVERY_COM1_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() +#define DISCOVERY_COM1_TX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() +#define DISCOVERY_COM1_TX_AF GPIO_AF7_USART2 + +#define DISCOVERY_COM1_RX_PIN GPIO_PIN_3 +#define DISCOVERY_COM1_RX_GPIO_PORT GPIOA +#define DISCOVERY_COM1_RX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() +#define DISCOVERY_COM1_RX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() +#define DISCOVERY_COM1_RX_AF GPIO_AF7_USART2 + +#define DISCOVERY_COM1_IRQn USART2_IRQn + + +#define DISCOVERY_COMx_CLK_ENABLE(__INDEX__) do { if((__INDEX__) == COM1) {DISCOVERY_COM1_CLK_ENABLE();}} while(0) +#define DISCOVERY_COMx_CLK_DISABLE(__INDEX__) do { if((__INDEX__) == COM1) {DISCOVERY_COM1_CLK_DISABLE();}} while(0) + +#define DISCOVERY_COMx_TX_GPIO_CLK_ENABLE(__INDEX__) do { if((__INDEX__) == COM1) {DISCOVERY_COM1_TX_GPIO_CLK_ENABLE();}} while(0) +#define DISCOVERY_COMx_TX_GPIO_CLK_DISABLE(__INDEX__) do { if((__INDEX__) == COM1) {DISCOVERY_COM1_TX_GPIO_CLK_DISABLE();}} while(0) + +#define DISCOVERY_COMx_RX_GPIO_CLK_ENABLE(__INDEX__) do { if((__INDEX__) == COM1) {DISCOVERY_COM1_RX_GPIO_CLK_ENABLE();}} while(0) +#define DISCOVERY_COMx_RX_GPIO_CLK_DISABLE(__INDEX__) do { if((__INDEX__) == COM1) {DISCOVERY_COM1_RX_GPIO_CLK_DISABLE();}} while(0) + +/** + * @} + */ + +/** @defgroup STM32L4R9I_DISCOVERY_BUS BUS Constants + * @{ + */ + +#if defined(HAL_I2C_MODULE_ENABLED) +/*##################### I2C1 ###################################*/ + +/* I2C TIMING Register define when I2C clock source is SYSCLK */ +/* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 120 MHz */ +/* Set 0xC080242F value to reach 100 KHz speed (Rise time = 640ns, Fall time = 20ns) */ +#ifndef DISCOVERY_I2C1_TIMING + #define DISCOVERY_I2C1_TIMING 0xC080242F +#endif /* DISCOVERY_I2C1_TIMING */ + +/* Maximum Timeout values for flags waiting loops. These timeouts are not based + on accurate values, they just guarantee that the application will not remain + stuck if the I2C communication is corrupted. + You may modify these timeout values depending on CPU frequency and application + conditions (interrupts routines ...). */ +#define DISCOVERY_I2C1_TIMEOUT_MAX 3000 + +#define IDD_I2C_ADDRESS ((uint16_t) 0x84) +#define IO_I2C_ADDRESS ((uint16_t) 0x84) +#define AUDIO_I2C_ADDRESS ((uint16_t) 0x94) +#define TS_I2C_ADDRESS ((uint16_t) 0x70) +#define CAMERA_I2C_ADDRESS ((uint16_t) 0x60) + +#endif /* HAL_I2C_MODULE_ENABLED */ + +/*##################### Audio Codec ##########################*/ +/** + * @brief Audio codec chip reset definition + */ +/* Audio codec power on/off macro definition */ +#define CODEC_AUDIO_POWER_OFF() BSP_IO_WritePin(AUDIO_RESET_PIN, GPIO_PIN_RESET) +#define CODEC_AUDIO_POWER_ON() BSP_IO_WritePin(AUDIO_RESET_PIN, GPIO_PIN_SET) + +/* Audio Reset Pin definition */ +#define AUDIO_RESET_PIN IO_PIN_15 + +/*##################### MFX ##########################*/ +/** + * @brief MFX interface pins + */ +#define MFX_INT_GPIO_PORT GPIOI +#define MFX_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOI_CLK_ENABLE() +#define MFX_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOI_CLK_DISABLE() +#define MFX_INT_PIN GPIO_PIN_1 /* PI.01 */ +#define MFX_INT_EXTI_IRQn EXTI1_IRQn + +#define MFX_WAKEUP_GPIO_PORT GPIOB +#define MFX_WAKEUP_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() +#define MFX_WAKEUP_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() +#define MFX_WAKEUP_PIN GPIO_PIN_2 /* PB.02 */ + +/* Legacy */ +#define IDD_INT_GPIO_PORT MFX_INT_GPIO_PORT +#define IDD_INT_GPIO_CLK_ENABLE() MFX_INT_GPIO_CLK_ENABLE() +#define IDD_INT_GPIO_CLK_DISABLE() MFX_INT_GPIO_CLK_DISABLE() +#define IDD_INT_PIN MFX_INT_PIN +#define IDD_INT_EXTI_IRQn MFX_INT_EXTI_IRQn +#define IDD_WAKEUP_GPIO_PORT MFX_WAKEUP_GPIO_PORT +#define IDD_WAKEUP_GPIO_CLK_ENABLE() MFX_WAKEUP_GPIO_CLK_ENABLE() +#define IDD_WAKEUP_GPIO_CLK_DISABLE() MFX_WAKEUP_GPIO_CLK_DISABLE() +#define IDD_WAKEUP_PIN MFX_WAKEUP_PIN + +/** + * @brief Idd current measurement interface pins on MFX + */ +#define IDD_AMP_CONTROL_PIN AGPIO_PIN_1 + +/** + * @brief LCD pins + */ +/* TE pin */ +#define LCD_TE_PIN GPIO_PIN_11 +#define LCD_TE_CTRL_GPIO_PORT GPIOF +#define LCD_TE_CTRL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE() +#define LCD_TE_CTRL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOF_CLK_DISABLE() + +/* Backlight control pin */ +#define LCD_BL_CTRL_PIN GPIO_PIN_1 +#define LCD_BL_CTRL_GPIO_PORT GPIOB +#define LCD_BL_CTRL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() +#define LCD_BL_CTRL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() + +/* TS INT pin */ +#define TS_INT_PIN IO_PIN_9 +#define TS_INT_EXTI_IRQn EXTI1_IRQn + +/** + * @} + */ + +/** + * @} + */ + +/** @defgroup STM32L4R9I_DISCOVERY_Exported_Functions Exported Functions + * @{ + */ +uint32_t BSP_GetVersion(void); +void BSP_LED_Init(Led_TypeDef Led); +void BSP_LED_DeInit(Led_TypeDef Led); +void BSP_LED_On(Led_TypeDef Led); +void BSP_LED_Off(Led_TypeDef Led); +void BSP_LED_Toggle(Led_TypeDef Led); +uint8_t BSP_JOY_Init(JOYMode_TypeDef Joy_Mode); +void BSP_JOY_DeInit(void); +JOYState_TypeDef BSP_JOY_GetState(void); +#if defined(HAL_UART_MODULE_ENABLED) +void BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *husart); +void BSP_COM_DeInit(COM_TypeDef COM, UART_HandleTypeDef *huart); +#endif /* HAL_UART_MODULE_ENABLED */ + +/* These __weak functions can be surcharged by application code for specific application needs */ +void BSP_ErrorHandler(void); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32L4R9I_DISCOVERY_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/