ELIOT1 HAL
Загрузка...
Поиск...
Не найдено

Интерфейс драйвера модуля SDMMC. Подробнее...

#include "hal_common.h"

См. исходные тексты.

Структуры данных

struct  sdmmc_card_t
 Контекст драйвера контроллера SDMMC. Подробнее...
 

Макросы

#define SDMMC_CALC_DIVIDER(input_freq_hz, required_freq_hz)   (((input_freq_hz) / (required_freq_hz)) / 2)
 Формула подсчета делителя выходной частоты контроллера SDMMC.
 
Константы контроллера SDMMC
#define SDMMC_SDHC_SECTOR_SIZE   512
 
#define SDMMC_SD_SEND_IF_COND_PATTERN   0x1AA
 
#define SDMMC_SD_OCR_INIT_VALUE   0xFF80
 
#define SDMMC_MMC_RCA_ADDR   0x00010000
 
#define SDMMC_TIMEOUTCONTROL_MAX_VALUE   0xE
 
Типы слота карты контроллера SDMMC
#define SDMMC_CORECFG0_SLOTTYPE_REMOVABLE   0
 
#define SDMMC_CORECFG0_SLOTTYPE_EMBEDDED   1
 
#define SDMMC_CORECFG0_SLOTTYPE_SHARED_BUS   2
 
Режимы UHS-I карты SD
#define SDMMC_SD_UHS_MODE_DEFAULT_SDR12   0
 
#define SDMMC_SD_UHS_MODE_HIGHSPEED_SDR25   1
 
#define SDMMC_SD_UHS_MODE_SDR50   2
 
#define SDMMC_SD_UHS_MODE_SDR104   3
 
#define SDMMC_SD_UHS_MODE_DDR50   4
 
Выравнивание адреса буфера данных SDMA

Возможные варианты значений:

  • 0 - 4KB (Detects A11 Carry out)
  • 1 - 8KB (Detects A12 Carry out)
  • 2 - 16KB (Detects A13 Carry out)
  • 3 - 32KB (Detects A14 Carry out)
  • 4 - 64KB (Detects A15 Carry out)
  • 5 - 128KB (Detects A16 Carry out)
  • 6 - 256KB (Detects A17 Carry out)
  • 7 - 512KB (Detects A18 Carry out)
#define SDMMC_SDMA_ALIGN   0
 
#define SDMMC_SDMA_BLOCK_SIZE   (4096 << SDMMC_SDMA_ALIGN)
 
#define SDMMC_SDMA_BLOCK_ALIGN   __attribute__((aligned(SDMMC_SDMA_BLOCK_SIZE)))
 
#define SDMMC_SDMA_IS_BLOCK_ALIGN_ADDR(x)   (((uint32_t) (x) & (SDMMC_SDMA_BLOCK_SIZE - 1)) == 0)
 

Перечисления

enum  sdmmc_status_t
 Статусы драйвера SDMMC. Подробнее...
 
enum  sdmmc_voltage_t
 Рабочие напряжения питания карты Подробнее...
 
Рабочие напряжения контроллера SDMMC
enum  
 
Направления передачи SDMA канала контроллера SDMMC
enum  
 
Типы и размеры ответов карты
enum  
 
Ширина шины данных карты в битах
enum  
 

Функции

sdmmc_status_t SDMMC_InitCard (sdmmc_card_t *sd, uint32_t num, sdmmc_voltage_t vol, void *init_buf)
 Инициализация SDMMC контроллера и вставленной карты SD или MMC.
 
void SDMMC_DisableCard (sdmmc_card_t *sd)
 Остановка SDMMC контроллера и выключение питания вставленной карты
 
sdmmc_status_t SDMMC_CalcMemorySpace (sdmmc_card_t *sd, void *sector_buf, bool unsafe)
 Подсчет размера пространства памяти карты
 
sdmmc_status_t SDMMC_Read (sdmmc_card_t *sd, uint32_t start_block, void *data, uint32_t nblocks)
 Чтение карты блоками размером 512 байт
 
sdmmc_status_t SDMMC_ReadAsync (sdmmc_card_t *sd, uint32_t start_block, void *data, uint32_t nblocks)
 Асинхронное чтение карты блоками размером 512 байт
 
sdmmc_status_t SDMMC_ReadWait (sdmmc_card_t *sd)
 Ожидание завершения операции асинхронного чтения памяти карты
 
sdmmc_status_t SDMMC_Write (sdmmc_card_t *sd, uint32_t start_block, const void *data, uint32_t nblocks)
 Запись карты блоками размером 512 байт
 
sdmmc_status_t SDMMC_WriteAsync (sdmmc_card_t *sd, uint32_t start_block, const void *data, uint32_t nblocks)
 Асинхронная запись карты блоками размером 512 байт
 
sdmmc_status_t SDMMC_WriteWait (sdmmc_card_t *sd)
 Ожидание завершения операции асинхронной записи памяти карты
 

Количество слотов под карты и их типы

#define SDMMC_IS_MMC(x)   ((x)->type == SDMMC_TypeMMC)
 
#define SDMMC_IS_SD(x)   ((x)->type == SDMMC_TypeSD)
 
enum  
 

Подробное описание

Интерфейс драйвера модуля SDMMC.