2 ******************************************************************************
\r
3 * @file stm32h745i_discovery_qspi.h
\r
4 * @author MCD Application Team
\r
5 * @brief This file contains the common defines and functions prototypes for
\r
6 * the stm32H745i_discovery_qspi.c driver.
\r
7 ******************************************************************************
\r
10 * <h2><center>© Copyright (c) 2019 STMicroelectronics.
\r
11 * All rights reserved.</center></h2>
\r
13 * This software component is licensed by ST under BSD 3-Clause license,
\r
14 * the "License"; You may not use this file except in compliance with the
\r
15 * License. You may obtain a copy of the License at:
\r
16 * opensource.org/licenses/BSD-3-Clause
\r
18 ******************************************************************************
\r
25 /** @addtogroup STM32H745I_DISCOVERY
\r
29 /* Define to prevent recursive inclusion -------------------------------------*/
\r
30 #ifndef __STM32H745I_DISCOVERY_QSPI_H
\r
31 #define __STM32H745I_DISCOVERY_QSPI_H
\r
37 /* Includes ------------------------------------------------------------------*/
\r
38 #include "stm32h7xx_hal.h"
\r
39 #include "../Components/mt25tl01g/mt25tl01g.h"
\r
41 /** @addtogroup STM32H745I_DISCOVERY_QSPI
\r
45 /* Exported constants --------------------------------------------------------*/
\r
46 /** @defgroup STM32H745I_DISCOVERY_QSPI_Exported_Constants Exported Constants
\r
50 /* QSPI Error codes */
\r
51 #define QSPI_OK ((uint8_t)0x00)
\r
52 #define QSPI_ERROR ((uint8_t)0x01)
\r
53 #define QSPI_BUSY ((uint8_t)0x02)
\r
54 #define QSPI_NOT_SUPPORTED ((uint8_t)0x04)
\r
55 #define QSPI_SUSPENDED ((uint8_t)0x08)
\r
58 /* Definition for QSPI clock resources */
\r
59 #define QSPI_CLK_ENABLE() __HAL_RCC_QSPI_CLK_ENABLE()
\r
60 #define QSPI_CLK_DISABLE() __HAL_RCC_QSPI_CLK_DISABLE()
\r
61 #define QSPI_CLK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE()
\r
62 #define QSPI_BK1_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE()
\r
63 #define QSPI_BK1_D0_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
\r
64 #define QSPI_BK1_D1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE()
\r
65 #define QSPI_BK1_D2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE()
\r
66 #define QSPI_BK1_D3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE()
\r
67 #define QSPI_BK2_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE()
\r
68 #define QSPI_BK2_D0_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
\r
69 #define QSPI_BK2_D1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
\r
70 #define QSPI_BK2_D2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE()
\r
71 #define QSPI_BK2_D3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE()
\r
74 #define QSPI_FORCE_RESET() __HAL_RCC_QSPI_FORCE_RESET()
\r
75 #define QSPI_RELEASE_RESET() __HAL_RCC_QSPI_RELEASE_RESET()
\r
77 /* Definition for QSPI Pins */
\r
78 #define QSPI_CLK_PIN GPIO_PIN_10
\r
79 #define QSPI_CLK_GPIO_PORT GPIOF
\r
81 #define QSPI_BK1_CS_PIN GPIO_PIN_6
\r
82 #define QSPI_BK1_CS_GPIO_PORT GPIOG
\r
83 #define QSPI_BK1_D0_PIN GPIO_PIN_11
\r
84 #define QSPI_BK1_D0_GPIO_PORT GPIOD
\r
85 #define QSPI_BK1_D1_PIN GPIO_PIN_9
\r
86 #define QSPI_BK1_D1_GPIO_PORT GPIOF
\r
87 #define QSPI_BK1_D2_PIN GPIO_PIN_7
\r
88 #define QSPI_BK1_D2_GPIO_PORT GPIOF
\r
89 #define QSPI_BK1_D3_PIN GPIO_PIN_6
\r
90 #define QSPI_BK1_D3_GPIO_PORT GPIOF
\r
93 #define QSPI_BK2_CS_PIN GPIO_PIN_6
\r
94 #define QSPI_BK2_CS_GPIO_PORT GPIOG
\r
95 #define QSPI_BK2_D0_PIN GPIO_PIN_2
\r
96 #define QSPI_BK2_D0_GPIO_PORT GPIOH
\r
97 #define QSPI_BK2_D1_PIN GPIO_PIN_3
\r
98 #define QSPI_BK2_D1_GPIO_PORT GPIOH
\r
99 #define QSPI_BK2_D2_PIN GPIO_PIN_9
\r
100 #define QSPI_BK2_D2_GPIO_PORT GPIOG
\r
101 #define QSPI_BK2_D3_PIN GPIO_PIN_14
\r
102 #define QSPI_BK2_D3_GPIO_PORT GPIOG
\r
105 /* MT25TL01G Micron memory */
\r
106 /* Size of the flash */
\r
107 #define QSPI_FLASH_SIZE 26 /* Address bus width to access whole memory space */
\r
108 #define QSPI_PAGE_SIZE 256
\r
110 /* QSPI Base Address */
\r
111 #define QSPI_BASE_ADDRESS 0x90000000
\r
117 /* Exported types ------------------------------------------------------------*/
\r
118 /** @defgroup STM32H745I_DISCOVERY_QSPI_Exported_Types Exported Types
\r
123 uint32_t FlashSize; /*!< Size of the flash */
\r
124 uint32_t EraseSectorSize; /*!< Size of sectors for the erase operation */
\r
125 uint32_t EraseSectorsNumber; /*!< Number of sectors for the erase operation */
\r
126 uint32_t ProgPageSize; /*!< Size of pages for the program operation */
\r
127 uint32_t ProgPagesNumber; /*!< Number of pages for the program operation */
\r
135 /* Exported functions --------------------------------------------------------*/
\r
136 /** @addtogroup STM32H745I_DISCOVERY_QSPI_Exported_Functions
\r
139 uint8_t BSP_QSPI_Init (void);
\r
140 uint8_t BSP_QSPI_DeInit (void);
\r
141 uint8_t BSP_QSPI_Read (uint8_t* pData, uint32_t ReadAddr, uint32_t Size);
\r
142 uint8_t BSP_QSPI_Write (uint8_t* pData, uint32_t WriteAddr, uint32_t Size);
\r
143 uint8_t BSP_QSPI_Erase_Block(uint32_t BlockAddress);
\r
144 uint8_t BSP_QSPI_Erase_Chip (void);
\r
145 uint8_t BSP_QSPI_GetStatus (void);
\r
146 uint8_t BSP_QSPI_GetInfo (QSPI_Info* pInfo);
\r
147 uint8_t BSP_QSPI_EnableMemoryMappedMode(void);
\r
149 /* These functions can be modified in case the current settings
\r
150 need to be changed for specific application needs */
\r
151 void BSP_QSPI_MspInit(QSPI_HandleTypeDef *hqspi, void *Params);
\r
152 void BSP_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi, void *Params);
\r
166 #endif /* __STM32H745I_DISCOVERY_QSPI_H */
\r
175 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
\r