STM32Cube BSP FW for STM32F769I-Discovery

Dependents:   mbed-os-example-blinky-5 DISCO-F769NI_TOUCHSCREEN_demo_custom_1 Datarecorder2 DISCO-F769NI_TOUCHSCREEN_demo ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32f769i_discovery.h Source File

stm32f769i_discovery.h

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32f769i_discovery.h
00004   * @author  MCD Application Team
00005   * @brief   This file contains definitions for STM32F769I-Discovery LEDs,
00006   *          push-buttons hardware resources.
00007   ******************************************************************************
00008   * @attention
00009   *
00010   * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
00011   *
00012   * Redistribution and use in source and binary forms, with or without modification,
00013   * are permitted provided that the following conditions are met:
00014   *   1. Redistributions of source code must retain the above copyright notice,
00015   *      this list of conditions and the following disclaimer.
00016   *   2. Redistributions in binary form must reproduce the above copyright notice,
00017   *      this list of conditions and the following disclaimer in the documentation
00018   *      and/or other materials provided with the distribution.
00019   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00020   *      may be used to endorse or promote products derived from this software
00021   *      without specific prior written permission.
00022   *
00023   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00024   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00025   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00026   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00027   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00028   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00029   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00030   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00031   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00032   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033   *
00034   ******************************************************************************
00035   */
00036 
00037 /* Define to prevent recursive inclusion -------------------------------------*/
00038 #ifndef __STM32F769I_DISCOVERY_H
00039 #define __STM32F769I_DISCOVERY_H
00040 
00041 #ifdef __cplusplus
00042  extern "C" {
00043 #endif
00044 
00045 
00046  /* Includes ------------------------------------------------------------------*/
00047 #include "stm32f7xx_hal.h"
00048 
00049 /** @addtogroup BSP
00050   * @{
00051   */
00052 
00053 /** @addtogroup STM32F769I_DISCOVERY
00054   * @{
00055   */
00056 
00057 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL STM32F769I-Discovery LOW LEVEL
00058   * @{
00059   */
00060 
00061 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Types STM32F769I Discovery Low Level Exported Types
00062  * @{
00063  */
00064 
00065 /** 
00066   * @brief  Define for STM32F769I_DISCOVERY board
00067   */ 
00068 #if !defined (USE_STM32F769I_DISCO)
00069  #define USE_STM32F769I_DISCO
00070 #endif
00071 
00072 /** @brief Led_TypeDef
00073   *  STM32F769I_DISCOVERY board leds definitions.
00074   */
00075 typedef enum
00076 {
00077  DISCO_LED1 = 0, // patch for MBED
00078  LED_RED = DISCO_LED1, // patch for MBED
00079  DISCO_LED2 = 1, // patch for MBED
00080  LED_GREEN = DISCO_LED2 // patch for MBED
00081 } Led_TypeDef;
00082 
00083 /** @brief Button_TypeDef
00084   *  STM32F769I_DISCOVERY board Buttons definitions.
00085   */
00086 typedef enum
00087 {
00088   BUTTON_WAKEUP = 0,
00089 } Button_TypeDef;
00090 
00091 #define BUTTON_USER BUTTON_WAKEUP
00092 
00093 /** @brief ButtonMode_TypeDef
00094   *  STM32F769I_DISCOVERY board Buttons Modes definitions.
00095   */
00096 typedef enum
00097 {
00098  BUTTON_MODE_GPIO = 0,
00099  BUTTON_MODE_EXTI = 1
00100 
00101 } ButtonMode_TypeDef;
00102 
00103 /** @addtogroup Exported_types
00104   * @{
00105   */ 
00106 typedef enum 
00107 {
00108   PB_SET = 0, 
00109   PB_RESET = !PB_SET
00110 } ButtonValue_TypeDef;
00111 
00112 
00113 /** @brief DISCO_Status_TypeDef
00114   *  STM32F769I_DISCO board Status return possible values.
00115   */
00116 typedef enum
00117 {
00118  DISCO_OK    = 0,
00119  DISCO_ERROR = 1
00120 
00121 } DISCO_Status_TypeDef;
00122 
00123 /**
00124   * @}
00125   */
00126 
00127 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Constants STM32F769I Discovery Low Level Exported Constants
00128   * @{
00129   */
00130 
00131 
00132 /** @addtogroup STM32F769I_DISCOVERY_LOW_LEVEL_LED STM32F769I Discovery Low Level Led
00133   * @{
00134   */
00135 /* Always four leds for all revisions of Discovery boards */
00136 #define LEDn                             ((uint8_t)2)
00137 
00138 
00139 /* 2 Leds are connected to MCU directly on PJ13 and PJ5 */
00140 #define LED1_GPIO_PORT                   ((GPIO_TypeDef*)GPIOJ)
00141 #define LED2_GPIO_PORT                   ((GPIO_TypeDef*)GPIOJ)
00142 
00143 #define LEDx_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOJ_CLK_ENABLE()
00144 #define LEDx_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOJ_CLK_DISABLE()
00145 
00146 #define LED1_PIN                         ((uint32_t)GPIO_PIN_13)
00147 #define LED2_PIN                         ((uint32_t)GPIO_PIN_5)
00148 
00149 /**
00150   * @}
00151   */
00152 
00153 /** @addtogroup STM32F769I_DISCOVERY_LOW_LEVEL_BUTTON STM32F769I Discovery Low Level Button
00154   * @{
00155   */
00156 /* Only one User/Wakeup button */
00157 #define BUTTONn                             ((uint8_t)1)
00158 
00159 /**
00160   * @brief Wakeup push-button
00161   */
00162 #define WAKEUP_BUTTON_PIN                   GPIO_PIN_0
00163 #define WAKEUP_BUTTON_GPIO_PORT             GPIOA
00164 #define WAKEUP_BUTTON_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOA_CLK_ENABLE()
00165 #define WAKEUP_BUTTON_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOA_CLK_DISABLE()
00166 #define WAKEUP_BUTTON_EXTI_IRQn             EXTI0_IRQn
00167 
00168 /* Define the USER button as an alias of the Wakeup button */
00169 #define USER_BUTTON_PIN                   WAKEUP_BUTTON_PIN
00170 #define USER_BUTTON_GPIO_PORT             WAKEUP_BUTTON_GPIO_PORT
00171 #define USER_BUTTON_GPIO_CLK_ENABLE()     WAKEUP_BUTTON_GPIO_CLK_ENABLE()
00172 #define USER_BUTTON_GPIO_CLK_DISABLE()    WAKEUP_BUTTON_GPIO_CLK_DISABLE()
00173 #define USER_BUTTON_EXTI_IRQn             WAKEUP_BUTTON_EXTI_IRQn
00174 
00175 #define BUTTON_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOA_CLK_ENABLE()
00176 
00177 /**
00178   * @}
00179   */
00180 
00181 /**
00182   * @brief USB OTG HS Over Current signal
00183   */
00184 #define OTG_HS_OVER_CURRENT_PIN                  GPIO_PIN_4
00185 #define OTG_HS_OVER_CURRENT_PORT                 GPIOD
00186 #define OTG_HS_OVER_CURRENT_PORT_CLK_ENABLE()    __HAL_RCC_GPIOD_CLK_ENABLE()
00187 
00188 /**
00189   * @brief SD-detect signal
00190   */
00191 #define SD_DETECT_PIN                        ((uint32_t)GPIO_PIN_15)
00192 #define SD_DETECT_GPIO_PORT                  ((GPIO_TypeDef*)GPIOI)
00193 #define SD_DETECT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOI_CLK_ENABLE()
00194 #define SD_DETECT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOI_CLK_DISABLE()
00195 #define SD_DETECT_EXTI_IRQn                  EXTI15_10_IRQn
00196 
00197 /**
00198   * @brief Touch screen interrupt signal
00199   */
00200 #define TS_INT_PIN                        ((uint32_t)GPIO_PIN_13)
00201 #define TS_INT_GPIO_PORT                  ((GPIO_TypeDef*)GPIOI)
00202 #define TS_INT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOI_CLK_ENABLE()
00203 #define TS_INT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOI_CLK_DISABLE()
00204 #define TS_INT_EXTI_IRQn                  EXTI15_10_IRQn
00205 
00206 /**
00207   * @brief TouchScreen FT6206 Slave I2C address 1
00208   */
00209 #define TS_I2C_ADDRESS                   ((uint16_t)0x54)
00210 
00211 /**
00212   * @brief TouchScreen FT6336G Slave I2C address 2
00213   */
00214 #define TS_I2C_ADDRESS_A02               ((uint16_t)0x70)
00215 
00216 /**
00217   * @brief LCD DSI Slave I2C address 1
00218   */
00219 #define LCD_DSI_ADDRESS                  TS_I2C_ADDRESS
00220 
00221 /**
00222   * @brief LCD DSI Slave I2C address 2
00223   */
00224 #define LCD_DSI_ADDRESS_A02              TS_I2C_ADDRESS_A02
00225 
00226 /**
00227   * @brief Audio I2C Slave address
00228   */
00229 #define AUDIO_I2C_ADDRESS                ((uint16_t)0x34)
00230 
00231 /**
00232   * @brief EEPROM I2C Slave address 1
00233   */
00234 #define EEPROM_I2C_ADDRESS_A01           ((uint16_t)0xA0)
00235 
00236 /**
00237   * @brief EEPROM I2C Slave address 2
00238   */
00239 #define EEPROM_I2C_ADDRESS_A02           ((uint16_t)0xA6)
00240 
00241 /**
00242   * @brief User can use this section to tailor I2C4/I2C4 instance used and associated
00243   * resources (audio codec).
00244   * Definition for I2C4 clock resources
00245   */
00246 #define DISCOVERY_AUDIO_I2Cx                             I2C4
00247 #define DISCOVERY_AUDIO_I2Cx_CLK_ENABLE()                __HAL_RCC_I2C4_CLK_ENABLE()
00248 #define DISCOVERY_AUDIO_I2Cx_SCL_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOD_CLK_ENABLE()
00249 #define DISCOVERY_AUDIO_I2Cx_SDA_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOB_CLK_ENABLE()
00250 
00251 #define DISCOVERY_AUDIO_I2Cx_FORCE_RESET()               __HAL_RCC_I2C4_FORCE_RESET()
00252 #define DISCOVERY_AUDIO_I2Cx_RELEASE_RESET()             __HAL_RCC_I2C4_RELEASE_RESET()
00253 
00254 /** @brief Definition for I2C4 Pins
00255   */
00256 #define DISCOVERY_AUDIO_I2Cx_SCL_PIN                     GPIO_PIN_12 /*!< PD12 */
00257 #define DISCOVERY_AUDIO_I2Cx_SCL_AF                      GPIO_AF4_I2C4
00258 #define DISCOVERY_AUDIO_I2Cx_SCL_GPIO_PORT               GPIOD
00259 #define DISCOVERY_AUDIO_I2Cx_SDA_PIN                     GPIO_PIN_7 /*!< PB7 */
00260 #define DISCOVERY_AUDIO_I2Cx_SDA_AF                      GPIO_AF11_I2C4
00261 #define DISCOVERY_AUDIO_I2Cx_SDA_GPIO_PORT               GPIOB
00262 /** @brief Definition of I2C4 interrupt requests
00263   */
00264 #define DISCOVERY_AUDIO_I2Cx_EV_IRQn                     I2C4_EV_IRQn
00265 #define DISCOVERY_AUDIO_I2Cx_ER_IRQn                     I2C4_ER_IRQn
00266 
00267 /**
00268   * @brief User can use this section to tailor I2C1/I2C1 instance used and associated
00269   * resources.
00270   * Definition for I2C1 clock resources
00271   */
00272 #define DISCOVERY_EXT_I2Cx                             I2C1
00273 #define DISCOVERY_EXT_I2Cx_CLK_ENABLE()                __HAL_RCC_I2C1_CLK_ENABLE()
00274 #define DISCOVERY_DMAx_CLK_ENABLE()                __HAL_RCC_DMA1_CLK_ENABLE()
00275 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOB_CLK_ENABLE()
00276 
00277 #define DISCOVERY_EXT_I2Cx_FORCE_RESET()               __HAL_RCC_I2C1_FORCE_RESET()
00278 #define DISCOVERY_EXT_I2Cx_RELEASE_RESET()             __HAL_RCC_I2C1_RELEASE_RESET()
00279 
00280 /** @brief Definition for I2C1 Pins
00281   */
00282 #define DISCOVERY_EXT_I2Cx_SCL_PIN                     GPIO_PIN_8 /*!< PB8 */
00283 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_PORT           GPIOB
00284 #define DISCOVERY_EXT_I2Cx_SCL_SDA_AF                  GPIO_AF4_I2C1
00285 #define DISCOVERY_EXT_I2Cx_SDA_PIN                     GPIO_PIN_9 /*!< PB9 */
00286 
00287 /** @brief Definition of I2C interrupt requests
00288   */
00289 #define DISCOVERY_EXT_I2Cx_EV_IRQn                     I2C1_EV_IRQn
00290 #define DISCOVERY_EXT_I2Cx_ER_IRQn                     I2C1_ER_IRQn
00291 
00292 /* I2C TIMING Register define when I2C clock source is SYSCLK */
00293 /* I2C TIMING is calculated from APB1 source clock = 50 MHz */
00294 /* Due to the big MOFSET capacity for adapting the camera level the rising time is very large (>1us) */
00295 /* 0x40912732 takes in account the big rising and aims a clock of 100khz */
00296 #ifndef DISCOVERY_I2Cx_TIMING  
00297 #define DISCOVERY_I2Cx_TIMING                      ((uint32_t)0x40912732)
00298 #endif /* DISCOVERY_I2Cx_TIMING */
00299 
00300 
00301 /**
00302   * @}
00303   */
00304 
00305 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Macros STM32F769I Discovery Low Level Exported Macros
00306   * @{
00307   */
00308 /**
00309   * @}
00310   */
00311 
00312 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Functions STM32F769I Discovery Low Level Exported Functions
00313   * @{
00314   */
00315 uint32_t         BSP_GetVersion(void);
00316 void             BSP_LED_Init(Led_TypeDef Led);
00317 void             BSP_LED_DeInit(Led_TypeDef Led);
00318 void             BSP_LED_On(Led_TypeDef Led);
00319 void             BSP_LED_Off(Led_TypeDef Led);
00320 void             BSP_LED_Toggle(Led_TypeDef Led);
00321 void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode);
00322 void             BSP_PB_DeInit(Button_TypeDef Button);
00323 uint32_t         BSP_PB_GetState(Button_TypeDef Button);
00324 
00325 /**
00326   * @}
00327   */
00328 
00329 /**
00330   * @}
00331   */
00332 
00333 /**
00334   * @}
00335   */
00336 
00337 /**
00338   * @}
00339   */
00340 
00341 /**
00342   * @}
00343   */
00344 
00345 
00346 #ifdef __cplusplus
00347 }
00348 #endif
00349 
00350 #endif /* __STM32F769I_DISCOVERY_H */
00351 
00352 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/