PER Firmware
Loading...
Searching...
No Matches
sdio.h
1
11#ifndef _PHAL_SDIO_H
12#define _PHAL_SDIO_H
13
14#include <stdbool.h>
15#include <stddef.h>
16
17#include "common/phal/dma.h"
18#include "common/phal/gpio.h"
19#include "common/phal/rcc.h"
20#include "common_defs.h"
21#include "stm32f4xx.h"
22
23typedef enum {
24 SD_RESP_NONE = 0b00,
25 SD_RESP_SHORT = 0b01,
26 SD_RESP_LONG = 0b11,
27} PHAL_SD_CmdResp_t;
28
29typedef struct {
30 uint8_t idx;
31 PHAL_SD_CmdResp_t res;
32 uint32_t arg;
34typedef enum {
38 SD_CMD_CRC_FAIL = (1),
39 SD_DATA_CRC_FAIL = (2),
40 SD_CMD_RSP_TIMEOUT = (3),
41 SD_DATA_TIMEOUT = (4),
42 SD_TX_UNDERRUN = (5),
43 SD_RX_OVERRUN = (6),
44 SD_START_BIT_ERR = (7),
45 SD_CMD_OUT_OF_RANGE = (8),
46 SD_ADDR_MISALIGNED = (9),
47 SD_BLOCK_LEN_ERR = (10),
48 SD_ERASE_SEQ_ERR = (11),
49 SD_BAD_ERASE_PARAM = (12),
50 SD_WRITE_PROT_VIOLATION = (13),
51 SD_LOCK_UNLOCK_FAILED = (14),
52 SD_COM_CRC_FAILED = (15),
53 SD_ILLEGAL_CMD = (16),
54 SD_CARD_ECC_FAILED = (17),
55 SD_CC_ERROR = (18),
56 SD_GENERAL_UNKNOWN_ERROR = (19),
57 SD_STREAM_READ_UNDERRUN = (20),
58 SD_STREAM_WRITE_OVERRUN = (21),
59 SD_CID_CSD_OVERWRITE = (22),
60 SD_WP_ERASE_SKIP = (23),
61 SD_CARD_ECC_DISABLED = (24),
62 SD_ERASE_RESET = (25),
63 SD_AKE_SEQ_ERROR = (26),
64 SD_INVALID_VOLTRANGE = (27),
65 SD_ADDR_OUT_OF_RANGE = (28),
66 SD_SWITCH_ERROR = (29),
67 SD_SDIO_DISABLED = (30),
68 SD_SDIO_FUNCTION_BUSY = (31),
69 SD_SDIO_FUNCTION_FAILED = (32),
70 SD_SDIO_UNKNOWN_FUNCTION = (33),
71
75 SD_INTERNAL_ERROR,
76 SD_NOT_CONFIGURED,
77 SD_REQUEST_PENDING,
78 SD_REQUEST_NOT_APPLICABLE,
79 SD_INVALID_PARAMETER,
80 SD_UNSUPPORTED_FEATURE,
81 SD_UNSUPPORTED_HW,
82 SD_ERROR,
83 SD_OK = 0
84} SD_Error;
85
89typedef enum {
90 SD_TRANSFER_OK = 0,
91 SD_TRANSFER_BUSY = 1,
92 SD_TRANSFER_ERROR
93} SDTransferState;
94
98typedef struct {
99 __IO uint8_t CSDStruct;
100 __IO uint8_t SysSpecVersion;
101 __IO uint8_t Reserved1;
102 __IO uint8_t TAAC;
103 __IO uint8_t NSAC;
104 __IO uint8_t MaxBusClkFrec;
105 __IO uint16_t CardComdClasses;
106 __IO uint8_t RdBlockLen;
107 __IO uint8_t PartBlockRead;
108 __IO uint8_t WrBlockMisalign;
109 __IO uint8_t RdBlockMisalign;
110 __IO uint8_t DSRImpl;
111 __IO uint8_t Reserved2;
112 __IO uint32_t DeviceSize;
113 __IO uint8_t MaxRdCurrentVDDMin;
114 __IO uint8_t MaxRdCurrentVDDMax;
115 __IO uint8_t MaxWrCurrentVDDMin;
116 __IO uint8_t MaxWrCurrentVDDMax;
117 __IO uint8_t DeviceSizeMul;
118 __IO uint8_t EraseGrSize;
119 __IO uint8_t EraseGrMul;
120 __IO uint8_t WrProtectGrSize;
121 __IO uint8_t WrProtectGrEnable;
122 __IO uint8_t ManDeflECC;
123 __IO uint8_t WrSpeedFact;
124 __IO uint8_t MaxWrBlockLen;
125 __IO uint8_t WriteBlockPaPartial;
126 __IO uint8_t Reserved3;
127 __IO uint8_t ContentProtectAppli;
128 __IO uint8_t FileFormatGrouop;
129 __IO uint8_t CopyFlag;
130 __IO uint8_t PermWrProtect;
131 __IO uint8_t TempWrProtect;
132 __IO uint8_t FileFormat;
133 __IO uint8_t ECC;
134 __IO uint8_t CSD_CRC;
135 __IO uint8_t Reserved4;
136} SD_CSD;
137
141typedef struct {
142 __IO uint8_t ManufacturerID;
143 __IO uint16_t OEM_AppliID;
144 __IO uint32_t ProdName1;
145 __IO uint8_t ProdName2;
146 __IO uint8_t ProdRev;
147 __IO uint32_t ProdSN;
148 __IO uint8_t Reserved1;
149 __IO uint16_t ManufactDate;
150 __IO uint8_t CID_CRC;
151 __IO uint8_t Reserved2;
152} SD_CID;
153
157typedef enum {
158 SD_CARD_READY = ((uint32_t)0x00000001),
159 SD_CARD_IDENTIFICATION = ((uint32_t)0x00000002),
160 SD_CARD_STANDBY = ((uint32_t)0x00000003),
161 SD_CARD_TRANSFER = ((uint32_t)0x00000004),
162 SD_CARD_SENDING = ((uint32_t)0x00000005),
163 SD_CARD_RECEIVING = ((uint32_t)0x00000006),
164 SD_CARD_PROGRAMMING = ((uint32_t)0x00000007),
165 SD_CARD_DISCONNECTED = ((uint32_t)0x00000008),
166 SD_CARD_ERROR = ((uint32_t)0x000000FF)
167} SDCardState;
168
172typedef struct {
173 SD_CSD SD_csd;
174 SD_CID SD_cid;
175 uint64_t CardCapacity;
176 uint32_t CardBlockSize;
177 uint16_t RCA;
178 uint8_t CardType;
180
188// bool PHAL_SDIO_init(SDIO_InitConfig_t *config);
189bool PHAL_SDIO_init(void);
190
194#define SDIO_STD_CAPACITY_SD_CARD_V1_1 ((uint32_t)0x00000000)
195#define SDIO_STD_CAPACITY_SD_CARD_V2_0 ((uint32_t)0x00000001)
196#define SDIO_HIGH_CAPACITY_SD_CARD ((uint32_t)0x00000002)
197#define SDIO_MULTIMEDIA_CARD ((uint32_t)0x00000003)
198#define SDIO_SECURE_DIGITAL_IO_CARD ((uint32_t)0x00000004)
199#define SDIO_HIGH_SPEED_MULTIMEDIA_CARD ((uint32_t)0x00000005)
200#define SDIO_SECURE_DIGITAL_IO_COMBO_CARD ((uint32_t)0x00000006)
201#define SDIO_HIGH_CAPACITY_MMC_CARD ((uint32_t)0x00000007)
202
203#define SDIO_CMD0TIMEOUT ((uint32_t)0x00010000)
204#define SDIO_STATIC_FLAGS ((uint32_t)0x000005FF)
205#define SD_CHECK_PATTERN ((uint32_t)0x000001AA)
206
210#define SD_CMD_GO_IDLE_STATE ((uint8_t)0)
211#define SD_CMD_SEND_OP_COND ((uint8_t)1)
212#define SD_CMD_ALL_SEND_CID ((uint8_t)2)
213#define SD_CMD_SET_REL_ADDR ((uint8_t)3)
214#define SD_CMD_SET_DSR ((uint8_t)4)
215#define SD_CMD_SDIO_SEN_OP_COND ((uint8_t)5)
216#define SD_CMD_HS_SWITCH ((uint8_t)6)
217#define SD_CMD_SEL_DESEL_CARD ((uint8_t)7)
218#define SD_CMD_HS_SEND_EXT_CSD ((uint8_t)8)
219#define SD_CMD_SEND_CSD ((uint8_t)9)
220#define SD_CMD_SEND_CID ((uint8_t)10)
221#define SD_CMD_READ_DAT_UNTIL_STOP ((uint8_t)11)
222#define SD_CMD_STOP_TRANSMISSION ((uint8_t)12)
223#define SD_CMD_SEND_STATUS ((uint8_t)13)
224#define SD_CMD_HS_BUSTEST_READ ((uint8_t)14)
225#define SD_CMD_GO_INACTIVE_STATE ((uint8_t)15)
226#define SD_CMD_SET_BLOCKLEN ((uint8_t)16)
227#define SD_CMD_READ_SINGLE_BLOCK ((uint8_t)17)
228#define SD_CMD_READ_MULT_BLOCK ((uint8_t)18)
229#define SD_CMD_HS_BUSTEST_WRITE ((uint8_t)19)
230#define SD_CMD_WRITE_DAT_UNTIL_STOP ((uint8_t)20)
231#define SD_CMD_SET_BLOCK_COUNT ((uint8_t)23)
232#define SD_CMD_WRITE_SINGLE_BLOCK ((uint8_t)24)
233#define SD_CMD_WRITE_MULT_BLOCK ((uint8_t)25)
234#define SD_CMD_PROG_CID ((uint8_t)26)
235#define SD_CMD_PROG_CSD ((uint8_t)27)
236#define SD_CMD_SET_WRITE_PROT ((uint8_t)28)
237#define SD_CMD_CLR_WRITE_PROT ((uint8_t)29)
238#define SD_CMD_SEND_WRITE_PROT ((uint8_t)30)
239#define SD_CMD_SD_ERASE_GRP_START ((uint8_t)32)
241#define SD_CMD_SD_ERASE_GRP_END ((uint8_t)33)
243#define SD_CMD_ERASE_GRP_START ((uint8_t)35)
246#define SD_CMD_ERASE_GRP_END ((uint8_t)36)
249#define SD_CMD_ERASE ((uint8_t)38)
250#define SD_CMD_FAST_IO ((uint8_t)39)
251#define SD_CMD_GO_IRQ_STATE ((uint8_t)40)
252#define SD_CMD_LOCK_UNLOCK ((uint8_t)42)
253#define SD_CMD_APP_CMD ((uint8_t)55)
254#define SD_CMD_GEN_CMD ((uint8_t)56)
255#define SD_CMD_NO_CMD ((uint8_t)64)
256
261#define SD_CMD_APP_SD_SET_BUSWIDTH ((uint8_t)6)
262#define SD_CMD_SD_APP_STAUS ((uint8_t)13)
263#define SD_CMD_SD_APP_SEND_NUM_WRITE_BLOCKS ((uint8_t)22)
264#define SD_CMD_SD_APP_OP_COND ((uint8_t)41)
265#define SD_CMD_SD_APP_SET_CLR_CARD_DETECT ((uint8_t)42)
266#define SD_CMD_SD_APP_SEND_SCR ((uint8_t)51)
267#define SD_CMD_SDIO_RW_DIRECT ((uint8_t)52)
268#define SD_CMD_SDIO_RW_EXTENDED ((uint8_t)53)
274#define SD_CMD_SD_APP_GET_MKB ((uint8_t)43)
275#define SD_CMD_SD_APP_GET_MID ((uint8_t)44)
276#define SD_CMD_SD_APP_SET_CER_RN1 ((uint8_t)45)
277#define SD_CMD_SD_APP_GET_CER_RN2 ((uint8_t)46)
278#define SD_CMD_SD_APP_SET_CER_RES2 ((uint8_t)47)
279#define SD_CMD_SD_APP_GET_CER_RES1 ((uint8_t)48)
280#define SD_CMD_SD_APP_SECURE_READ_MULTIPLE_BLOCK ((uint8_t)18)
281#define SD_CMD_SD_APP_SECURE_WRITE_MULTIPLE_BLOCK ((uint8_t)25)
282#define SD_CMD_SD_APP_SECURE_ERASE ((uint8_t)38)
283#define SD_CMD_SD_APP_CHANGE_SECURE_AREA ((uint8_t)49)
284#define SD_CMD_SD_APP_SECURE_WRITE_MKB ((uint8_t)48)
289#define SD_OCR_ADDR_OUT_OF_RANGE ((uint32_t)0x80000000)
290#define SD_OCR_ADDR_MISALIGNED ((uint32_t)0x40000000)
291#define SD_OCR_BLOCK_LEN_ERR ((uint32_t)0x20000000)
292#define SD_OCR_ERASE_SEQ_ERR ((uint32_t)0x10000000)
293#define SD_OCR_BAD_ERASE_PARAM ((uint32_t)0x08000000)
294#define SD_OCR_WRITE_PROT_VIOLATION ((uint32_t)0x04000000)
295#define SD_OCR_LOCK_UNLOCK_FAILED ((uint32_t)0x01000000)
296#define SD_OCR_COM_CRC_FAILED ((uint32_t)0x00800000)
297#define SD_OCR_ILLEGAL_CMD ((uint32_t)0x00400000)
298#define SD_OCR_CARD_ECC_FAILED ((uint32_t)0x00200000)
299#define SD_OCR_CC_ERROR ((uint32_t)0x00100000)
300#define SD_OCR_GENERAL_UNKNOWN_ERROR ((uint32_t)0x00080000)
301#define SD_OCR_STREAM_READ_UNDERRUN ((uint32_t)0x00040000)
302#define SD_OCR_STREAM_WRITE_OVERRUN ((uint32_t)0x00020000)
303#define SD_OCR_CID_CSD_OVERWRIETE ((uint32_t)0x00010000)
304#define SD_OCR_WP_ERASE_SKIP ((uint32_t)0x00008000)
305#define SD_OCR_CARD_ECC_DISABLED ((uint32_t)0x00004000)
306#define SD_OCR_ERASE_RESET ((uint32_t)0x00002000)
307#define SD_OCR_AKE_SEQ_ERROR ((uint32_t)0x00000008)
308#define SD_OCR_ERRORBITS ((uint32_t)0xFDFFE008)
309
313#define SD_R6_GENERAL_UNKNOWN_ERROR ((uint32_t)0x00002000)
314#define SD_R6_ILLEGAL_CMD ((uint32_t)0x00004000)
315#define SD_R6_COM_CRC_FAILED ((uint32_t)0x00008000)
316
317#define SD_VOLTAGE_WINDOW_SD ((uint32_t)0x80100000)
318#define SD_HIGH_CAPACITY ((uint32_t)0x40000000)
319#define SD_STD_CAPACITY ((uint32_t)0x00000000)
320#define SD_CHECK_PATTERN ((uint32_t)0x000001AA)
321
322#define SD_MAX_VOLT_TRIAL ((uint32_t)0x0000FFFF)
323#define SD_ALLZERO ((uint32_t)0x00000000)
324
325#define SD_WIDE_BUS_SUPPORT ((uint32_t)0x00040000)
326#define SD_SINGLE_BUS_SUPPORT ((uint32_t)0x00010000)
327#define SD_CARD_LOCKED ((uint32_t)0x02000000)
328
329#define SD_DATATIMEOUT ((uint32_t)0xFFFFFFFF)
330#define SD_0TO7BITS ((uint32_t)0x000000FF)
331#define SD_8TO15BITS ((uint32_t)0x0000FF00)
332#define SD_16TO23BITS ((uint32_t)0x00FF0000)
333#define SD_24TO31BITS ((uint32_t)0xFF000000)
334#define SD_MAX_DATA_LENGTH ((uint32_t)0x01FFFFFF)
335
336#define SD_HALFFIFO ((uint32_t)0x00000008)
337#define SD_HALFFIFOBYTES ((uint32_t)0x00000020)
338
342#define SD_CCCC_LOCK_UNLOCK ((uint32_t)0x00000080)
343#define SD_CCCC_WRITE_PROT ((uint32_t)0x00000040)
344#define SD_CCCC_ERASE ((uint32_t)0x00000020)
345
349#define SD_PRESENT ((uint8_t)0x01)
350#define SD_NOT_PRESENT ((uint8_t)0x00)
351
352#define SDIO_BusWide_1b (1)
353#define SDIO_BusWide_4b (4)
354#define SDIO_BusWide_8b (8)
355
356#define FATFS_SDIO_4BIT 1
357
362#define SDIO_SEND_IF_COND ((uint32_t)0x00000008)
363
364/* SDIO data block size */
365#define SDIO_DATABLOCKSIZE ((uint32_t)((9 << 4)))
366
370#define SDIO_INIT_CLK_DIV ((uint8_t)118)
371
375// SDIO_CK = SDIOCLK / (CLKDIV + 2)
376// Select even CLKDIV for 50% duty
377#define SDIO_TRANSFER_CLK_DIV ((uint8_t)0) //(46)
378// #define SDIO_TRANSFER_CLK_DIV ((uint8_t)78)
379// TODO: see about increasing (1MHz now)
380
381#define SD_DMA_MODE ((uint32_t)0x00000000)
382
383void SD_LowLevel_DMA_TxConfig(uint32_t* BufferSRC, uint32_t BufferSize);
384void SD_LowLevel_DMA_RxConfig(uint32_t* BufferDST, uint32_t BufferSize);
385
386void SD_DeInit(void);
388SD_Error SD_Init(void);
389SDTransferState SD_GetStatus(void);
390SDCardState SD_GetState(void);
391uint8_t SD_Detect(void);
392SD_Error SD_PowerON(void);
393SD_Error SD_InitializeCards(void);
394SD_Error SD_GetCardInfo(SD_CardInfo* cardinfo);
395SD_Error SD_EnableWideBusOperation(uint32_t WideMode);
396SD_Error SD_SelectDeselect(uint64_t addr);
397SD_Error SD_ReadMultiBlocks(uint8_t* readbuff, uint64_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
398SD_Error SD_WriteMultiBlocks(uint8_t* writebuff, uint64_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
399SD_Error SD_StopTransfer(void);
400SD_Error SD_SendStatus(uint32_t* pcardstatus);
401SD_Error SD_WaitReadOperation(void);
402SD_Error SD_WaitWriteOperation(void);
403
404#endif /* _PHAL_SDIO_H */
Common defs for the entire firmware repository. Dont let this get too out of control please.
SDCardState SD_GetState(void)
Returns the current card's state.
Definition sdio.c:171
SD_Error SD_Init(void)
Initializes the SD Card and put it into StandBy State (Ready for data transfer).
Definition sdio.c:78
SD_Error SD_WaitReadOperation(void)
This function waits until the SDIO DMA data transfer is finished. This function should be called afte...
Definition sdio.c:757
void PHAL_SDIO_SendCommand(PHAL_SD_Cmd_t *cmd)
Send a command.
Definition sdio.c:662
SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo)
Returns information about specific card.
Definition sdio.c:393
SD_Error SD_ReadMultiBlocks(uint8_t *readbuff, uint64_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks)
Allows to read blocks from a specified address in a card. The Data transfer can be managed by DMA mod...
Definition sdio.c:682
SD_Error SD_WriteMultiBlocks(uint8_t *writebuff, uint64_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks)
Allows to write blocks starting from a specified address in a card. The Data transfer can be managed ...
Definition sdio.c:806
SD_Error SD_EnableWideBusOperation(uint32_t WideMode)
Enables wide bus opeartion for the requeseted card if supported by card.
Definition sdio.c:599
bool PHAL_SDIO_init(void)
Configures the SDIO peripheral.
Definition sdio.c:43
SD_Error SD_SendStatus(uint32_t *pcardstatus)
Returns the current card's status.
Definition sdio.c:954
SD_Error SD_SelectDeselect(uint64_t addr)
Selects od Deselects the corresponding card.
Definition sdio.c:642
SD_Error SD_PowerON(void)
Enquires cards about their operating voltage and configures clock controls.
Definition sdio.c:208
SD_Error SD_InitializeCards(void)
Intialises all cards or single card as the case may be Card(s) come into standby state.
Definition sdio.c:317
void SD_LowLevel_DMA_TxConfig(uint32_t *BufferSRC, uint32_t BufferSize)
Configures the DMA 2 Channel 6 for SDIO Tx request.
Definition sdio.c:1549
uint8_t SD_Detect(void)
Detect if SD card is correctly plugged in the memory slot.
Definition sdio.c:190
SD_Error SD_StopTransfer(void)
Aborts an ongoing data transfer.
Definition sdio.c:927
void SD_DeInit(void)
Definition sdio.c:1606
SD_Error SD_WaitWriteOperation(void)
This function waits until the SDIO DMA data transfer is finished. This function should be called afte...
Definition sdio.c:888
void SD_LowLevel_DMA_RxConfig(uint32_t *BufferDST, uint32_t BufferSize)
Configures the DMA2 Channel4 for SDIO Rx request.
Definition sdio.c:1590
SDTransferState SD_GetStatus(void)
Gets the cuurent sd card data transfer status.
Definition sdio.c:152
Definition sdio.h:29
uint32_t arg
Command argument.
Definition sdio.h:32
uint8_t idx
Command index.
Definition sdio.h:30
PHAL_SD_CmdResp_t res
Command response type.
Definition sdio.h:31
Card Identification Data: CID Register.
Definition sdio.h:141
__IO uint16_t OEM_AppliID
Definition sdio.h:143
__IO uint16_t ManufactDate
Definition sdio.h:149
__IO uint8_t ManufacturerID
Definition sdio.h:142
__IO uint8_t Reserved2
Definition sdio.h:151
__IO uint8_t ProdRev
Definition sdio.h:146
__IO uint32_t ProdName1
Definition sdio.h:144
__IO uint8_t Reserved1
Definition sdio.h:148
__IO uint8_t ProdName2
Definition sdio.h:145
__IO uint32_t ProdSN
Definition sdio.h:147
__IO uint8_t CID_CRC
Definition sdio.h:150
Card Specific Data: CSD Register.
Definition sdio.h:98
__IO uint8_t MaxWrBlockLen
Definition sdio.h:124
__IO uint8_t Reserved1
Definition sdio.h:101
__IO uint8_t WrProtectGrSize
Definition sdio.h:120
__IO uint8_t RdBlockMisalign
Definition sdio.h:109
__IO uint8_t DSRImpl
Definition sdio.h:110
__IO uint8_t MaxBusClkFrec
Definition sdio.h:104
__IO uint8_t WriteBlockPaPartial
Definition sdio.h:125
__IO uint8_t TempWrProtect
Definition sdio.h:131
__IO uint8_t Reserved3
Definition sdio.h:126
__IO uint8_t MaxRdCurrentVDDMin
Definition sdio.h:113
__IO uint8_t PermWrProtect
Definition sdio.h:130
__IO uint8_t ECC
Definition sdio.h:133
__IO uint8_t RdBlockLen
Definition sdio.h:106
__IO uint8_t WrSpeedFact
Definition sdio.h:123
__IO uint8_t CSD_CRC
Definition sdio.h:134
__IO uint8_t WrBlockMisalign
Definition sdio.h:108
__IO uint32_t DeviceSize
Definition sdio.h:112
__IO uint8_t NSAC
Definition sdio.h:103
__IO uint8_t Reserved4
Definition sdio.h:135
__IO uint8_t CSDStruct
Definition sdio.h:99
__IO uint8_t EraseGrMul
Definition sdio.h:119
__IO uint8_t FileFormat
Definition sdio.h:132
__IO uint8_t WrProtectGrEnable
Definition sdio.h:121
__IO uint8_t PartBlockRead
Definition sdio.h:107
__IO uint8_t MaxWrCurrentVDDMax
Definition sdio.h:116
__IO uint8_t ManDeflECC
Definition sdio.h:122
__IO uint8_t SysSpecVersion
Definition sdio.h:100
__IO uint8_t TAAC
Definition sdio.h:102
__IO uint8_t FileFormatGrouop
Definition sdio.h:128
__IO uint8_t EraseGrSize
Definition sdio.h:118
__IO uint8_t DeviceSizeMul
Definition sdio.h:117
__IO uint8_t Reserved2
Definition sdio.h:111
__IO uint8_t MaxRdCurrentVDDMax
Definition sdio.h:114
__IO uint16_t CardComdClasses
Definition sdio.h:105
__IO uint8_t ContentProtectAppli
Definition sdio.h:127
__IO uint8_t CopyFlag
Definition sdio.h:129
__IO uint8_t MaxWrCurrentVDDMin
Definition sdio.h:115
SD Card information.
Definition sdio.h:172
uint64_t CardCapacity
Definition sdio.h:175
uint32_t CardBlockSize
Definition sdio.h:176