91 lines
2.5 KiB
C
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__ */
|