Files
tron.asm/libs/BSP/stm32f4_sdio_sd_lld.h
2016-01-12 17:49:26 +01:00

91 lines
2.5 KiB
C

#ifndef __STM32F4_SDIO_SD_LLD_H__
#define __STM32F4_SDIO_SD_LLD_H__
/**
*****************************************************************************
* @addtogroup FatFs FatFs
* @{
* @addtogroup CARME_SDIO_SD
* @{
* @addtogroup CARME_SDIO_SD_LLD
* @{
*
* @file stm32f4_sdio_sd_lld.h
*
*****************************************************************************
*/
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ----------------------------------------------------------------*/
#include "stm32f4xx.h"
#define SD_DETECT_USE 1
#if SD_DETECT_USE
#define SD_DETECT_PIN GPIO_Pin_11 /**< SD detect port/pin */
#define SD_DETECT_GPIO_PORT GPIOI /**< SD detect port/pin */
#define SD_DETECT_GPIO_CLK RCC_AHB1Periph_GPIOI
#endif
#define SDIO_FIFO_ADDRESS ((uint32_t)0x40012C80)
/**
* @brief SDIO Intialization Frequency (400KHz max)
*/
#define SDIO_INIT_CLK_DIV ((uint8_t)0x76)
/**
* @brief SDIO Data Transfer Frequency (25MHz max)
*/
#define SDIO_TRANSFER_CLK_DIV ((uint8_t)0x0)
#define SD_SDIO_DMA DMA2 /**< DMA for SD SDIO */
#define SD_SDIO_DMA_CLK RCC_AHB1Periph_DMA2
#define SD_SDIO_DMA_STREAM3 3 /**< DMA stream for SD SDIO */
//#define SD_SDIO_DMA_STREAM6 6 /**< DMA stream for SD SDIO */
#ifdef SD_SDIO_DMA_STREAM3
#define SD_SDIO_DMA_STREAM DMA2_Stream3
#define SD_SDIO_DMA_CHANNEL DMA_Channel_4
#define SD_SDIO_DMA_FLAG_FEIF DMA_FLAG_FEIF3
#define SD_SDIO_DMA_FLAG_DMEIF DMA_FLAG_DMEIF3
#define SD_SDIO_DMA_FLAG_TEIF DMA_FLAG_TEIF3
#define SD_SDIO_DMA_FLAG_HTIF DMA_FLAG_HTIF3
#define SD_SDIO_DMA_FLAG_TCIF DMA_FLAG_TCIF3
#define SD_SDIO_DMA_IRQn DMA2_Stream3_IRQn
#define SD_SDIO_DMA_IRQHANDLER DMA2_Stream3_IRQHandler
#elif defined SD_SDIO_DMA_STREAM6
#define SD_SDIO_DMA_STREAM DMA2_Stream6
#define SD_SDIO_DMA_CHANNEL DMA_Channel_4
#define SD_SDIO_DMA_FLAG_FEIF DMA_FLAG_FEIF6
#define SD_SDIO_DMA_FLAG_DMEIF DMA_FLAG_DMEIF6
#define SD_SDIO_DMA_FLAG_TEIF DMA_FLAG_TEIF6
#define SD_SDIO_DMA_FLAG_HTIF DMA_FLAG_HTIF6
#define SD_SDIO_DMA_FLAG_TCIF DMA_FLAG_TCIF6
#define SD_SDIO_DMA_IRQn DMA2_Stream6_IRQn
#define SD_SDIO_DMA_IRQHANDLER DMA2_Stream6_IRQHandler
#endif /* SD_SDIO_DMA_STREAM3 */
void SD_LowLevel_DeInit(void);
void SD_LowLevel_Init(void);
void SD_LowLevel_DMA_TxConfig(uint32_t *BufferSRC, uint32_t BufferSize);
void SD_LowLevel_DMA_RxConfig(uint32_t *BufferDST, uint32_t BufferSize);
#ifdef __cplusplus
}
#endif
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#endif /* __STM32F4_SDIO_SD_LLD_H__ */