JPA sdcard

Committer:
jeanpierreaulas
Date:
Wed Dec 30 14:46:04 2020 +0000
Revision:
15:435cacf7f874
Parent:
14:ed51426706bd
JPA

Who changed what in which revision?

UserRevisionLine numberNew contents of line
38domo 14:ed51426706bd 1 /**
38domo 14:ed51426706bd 2 ******************************************************************************
38domo 14:ed51426706bd 3 * @file stm32746g_discovery_sd.h
38domo 14:ed51426706bd 4 * @author MCD Application Team
38domo 14:ed51426706bd 5 * @version V1.0.0
38domo 14:ed51426706bd 6 * @date 25-June-2015
38domo 14:ed51426706bd 7 * @brief This file contains the common defines and functions prototypes for
38domo 14:ed51426706bd 8 * the stm32746g_discovery_sd.c driver.
38domo 14:ed51426706bd 9 ******************************************************************************
38domo 14:ed51426706bd 10 * @attention
38domo 14:ed51426706bd 11 *
38domo 14:ed51426706bd 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
38domo 14:ed51426706bd 13 *
38domo 14:ed51426706bd 14 * Redistribution and use in source and binary forms, with or without modification,
38domo 14:ed51426706bd 15 * are permitted provided that the following conditions are met:
38domo 14:ed51426706bd 16 * 1. Redistributions of source code must retain the above copyright notice,
38domo 14:ed51426706bd 17 * this list of conditions and the following disclaimer.
38domo 14:ed51426706bd 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
38domo 14:ed51426706bd 19 * this list of conditions and the following disclaimer in the documentation
38domo 14:ed51426706bd 20 * and/or other materials provided with the distribution.
38domo 14:ed51426706bd 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
38domo 14:ed51426706bd 22 * may be used to endorse or promote products derived from this software
38domo 14:ed51426706bd 23 * without specific prior written permission.
38domo 14:ed51426706bd 24 *
38domo 14:ed51426706bd 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
38domo 14:ed51426706bd 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38domo 14:ed51426706bd 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38domo 14:ed51426706bd 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
38domo 14:ed51426706bd 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38domo 14:ed51426706bd 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
38domo 14:ed51426706bd 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
38domo 14:ed51426706bd 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
38domo 14:ed51426706bd 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38domo 14:ed51426706bd 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38domo 14:ed51426706bd 35 *
38domo 14:ed51426706bd 36 ******************************************************************************
38domo 14:ed51426706bd 37 */
38domo 14:ed51426706bd 38
38domo 14:ed51426706bd 39 /* Define to prevent recursive inclusion -------------------------------------*/
38domo 14:ed51426706bd 40 #ifndef __STM32746G_DISCOVERY_SD_H
38domo 14:ed51426706bd 41 #define __STM32746G_DISCOVERY_SD_H
38domo 14:ed51426706bd 42
38domo 14:ed51426706bd 43 #ifdef __cplusplus
38domo 14:ed51426706bd 44 extern "C" {
38domo 14:ed51426706bd 45 #endif
38domo 14:ed51426706bd 46
38domo 14:ed51426706bd 47 /* Includes ------------------------------------------------------------------*/
38domo 14:ed51426706bd 48 #include "stm32746g_discovery.h"
38domo 14:ed51426706bd 49
38domo 14:ed51426706bd 50 /** @addtogroup BSP
38domo 14:ed51426706bd 51 * @{
38domo 14:ed51426706bd 52 */
38domo 14:ed51426706bd 53
38domo 14:ed51426706bd 54 /** @addtogroup STM32746G_DISCOVERY
38domo 14:ed51426706bd 55 * @{
38domo 14:ed51426706bd 56 */
38domo 14:ed51426706bd 57
38domo 14:ed51426706bd 58 /** @addtogroup STM32746G_DISCOVERY_SD
38domo 14:ed51426706bd 59 * @{
38domo 14:ed51426706bd 60 */
38domo 14:ed51426706bd 61
38domo 14:ed51426706bd 62 /** @defgroup STM32746G_DISCOVERY_SD_Exported_Types STM32746G_DISCOVERY_SD Exported Types
38domo 14:ed51426706bd 63 * @{
38domo 14:ed51426706bd 64 */
38domo 14:ed51426706bd 65
38domo 14:ed51426706bd 66 /**
38domo 14:ed51426706bd 67 * @brief SD Card information structure
38domo 14:ed51426706bd 68 */
38domo 14:ed51426706bd 69 #define SD_CardInfo HAL_SD_CardInfoTypedef
38domo 14:ed51426706bd 70 /**
38domo 14:ed51426706bd 71 * @}
38domo 14:ed51426706bd 72 */
38domo 14:ed51426706bd 73
38domo 14:ed51426706bd 74 /**
38domo 14:ed51426706bd 75 * @brief SD status structure definition
38domo 14:ed51426706bd 76 */
38domo 14:ed51426706bd 77 #define MSD_OK ((uint8_t)0x00)
38domo 14:ed51426706bd 78 #define MSD_ERROR ((uint8_t)0x01)
38domo 14:ed51426706bd 79 #define MSD_ERROR_SD_NOT_PRESENT ((uint8_t)0x02)
38domo 14:ed51426706bd 80
38domo 14:ed51426706bd 81 /** @defgroup STM32746G_DISCOVERY_SD_Exported_Constants STM32746G_DISCOVERY_SD Exported Constants
38domo 14:ed51426706bd 82 * @{
38domo 14:ed51426706bd 83 */
38domo 14:ed51426706bd 84 #define SD_PRESENT ((uint8_t)0x01)
38domo 14:ed51426706bd 85 #define SD_NOT_PRESENT ((uint8_t)0x00)
38domo 14:ed51426706bd 86
38domo 14:ed51426706bd 87 #define SD_DATATIMEOUT ((uint32_t)100000000)
38domo 14:ed51426706bd 88
38domo 14:ed51426706bd 89 /* DMA definitions for SD DMA transfer */
38domo 14:ed51426706bd 90 #define __DMAx_TxRx_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE
38domo 14:ed51426706bd 91 #define SD_DMAx_Tx_CHANNEL DMA_CHANNEL_4
38domo 14:ed51426706bd 92 #define SD_DMAx_Rx_CHANNEL DMA_CHANNEL_4
38domo 14:ed51426706bd 93 #define SD_DMAx_Tx_STREAM DMA2_Stream6
38domo 14:ed51426706bd 94 #define SD_DMAx_Rx_STREAM DMA2_Stream3
38domo 14:ed51426706bd 95 #define SD_DMAx_Tx_IRQn DMA2_Stream6_IRQn
38domo 14:ed51426706bd 96 #define SD_DMAx_Rx_IRQn DMA2_Stream3_IRQn
38domo 14:ed51426706bd 97 #define SD_DMAx_Tx_IRQHandler DMA2_Stream6_IRQHandler
38domo 14:ed51426706bd 98 #define SD_DMAx_Rx_IRQHandler DMA2_Stream3_IRQHandler
38domo 14:ed51426706bd 99 #define SD_DetectIRQHandler() HAL_GPIO_EXTI_IRQHandler(SD_DETECT_PIN)
38domo 14:ed51426706bd 100 /**
38domo 14:ed51426706bd 101 * @}
38domo 14:ed51426706bd 102 */
38domo 14:ed51426706bd 103
38domo 14:ed51426706bd 104 /** @defgroup STM32746G_DISCOVERY_SD_Exported_Macro STM32746G_DISCOVERY_SD Exported Macro
38domo 14:ed51426706bd 105 * @{
38domo 14:ed51426706bd 106 */
38domo 14:ed51426706bd 107 /**
38domo 14:ed51426706bd 108 * @}
38domo 14:ed51426706bd 109 */
38domo 14:ed51426706bd 110
38domo 14:ed51426706bd 111 /** @addtogroup STM32746G_DISCOVERY_SD_Exported_Functions
38domo 14:ed51426706bd 112 * @{
38domo 14:ed51426706bd 113 */
38domo 14:ed51426706bd 114 uint8_t BSP_SD_Init(void);
38domo 14:ed51426706bd 115 uint8_t BSP_SD_DeInit(void);
38domo 14:ed51426706bd 116 uint8_t BSP_SD_ITConfig(void);
38domo 14:ed51426706bd 117 void BSP_SD_DetectIT(void);
38domo 14:ed51426706bd 118 void BSP_SD_DetectCallback(void);
38domo 14:ed51426706bd 119 uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint64_t ReadAddr, uint32_t BlockSize, uint32_t NumOfBlocks);
38domo 14:ed51426706bd 120 uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint64_t WriteAddr, uint32_t BlockSize, uint32_t NumOfBlocks);
38domo 14:ed51426706bd 121 uint8_t BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint64_t ReadAddr, uint32_t BlockSize, uint32_t NumOfBlocks);
38domo 14:ed51426706bd 122 uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint64_t WriteAddr, uint32_t BlockSize, uint32_t NumOfBlocks);
38domo 14:ed51426706bd 123 uint8_t BSP_SD_Erase(uint64_t StartAddr, uint64_t EndAddr);
38domo 14:ed51426706bd 124 void BSP_SD_IRQHandler(void);
38domo 14:ed51426706bd 125 void BSP_SD_DMA_Tx_IRQHandler(void);
38domo 14:ed51426706bd 126 void BSP_SD_DMA_Rx_IRQHandler(void);
38domo 14:ed51426706bd 127 HAL_SD_TransferStateTypedef BSP_SD_GetStatus(void);
38domo 14:ed51426706bd 128 void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypedef *CardInfo);
38domo 14:ed51426706bd 129 uint8_t BSP_SD_IsDetected(void);
38domo 14:ed51426706bd 130
38domo 14:ed51426706bd 131 /* These functions can be modified in case the current settings (e.g. DMA stream)
38domo 14:ed51426706bd 132 need to be changed for specific application needs */
38domo 14:ed51426706bd 133 void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
38domo 14:ed51426706bd 134 void BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
38domo 14:ed51426706bd 135 void BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params);
38domo 14:ed51426706bd 136
38domo 14:ed51426706bd 137 /**
38domo 14:ed51426706bd 138 * @}
38domo 14:ed51426706bd 139 */
38domo 14:ed51426706bd 140
38domo 14:ed51426706bd 141 /**
38domo 14:ed51426706bd 142 * @}
38domo 14:ed51426706bd 143 */
38domo 14:ed51426706bd 144
38domo 14:ed51426706bd 145 /**
38domo 14:ed51426706bd 146 * @}
38domo 14:ed51426706bd 147 */
38domo 14:ed51426706bd 148
38domo 14:ed51426706bd 149 /**
38domo 14:ed51426706bd 150 * @}
38domo 14:ed51426706bd 151 */
38domo 14:ed51426706bd 152
38domo 14:ed51426706bd 153 #ifdef __cplusplus
38domo 14:ed51426706bd 154 }
38domo 14:ed51426706bd 155 #endif
38domo 14:ed51426706bd 156
38domo 14:ed51426706bd 157 #endif /* __STM32746G_DISCOVERY_SD_H */
38domo 14:ed51426706bd 158
38domo 14:ed51426706bd 159 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
38domo 14:ed51426706bd 160