PER Firmware
Loading...
Searching...
No Matches
sdio.h
Go to the documentation of this file.
1
11#ifndef _PHAL_SDIO_H
12#define _PHAL_SDIO_H
13
14#include <stddef.h>
15
19#include "stm32f4xx.h"
20
21typedef enum {
22 SD_RESP_NONE = 0b00,
24 SD_RESP_LONG = 0b11,
26
27typedef struct {
28 uint8_t idx;
30 uint32_t arg;
83
92
96typedef struct {
97 __IO uint8_t CSDStruct;
98 __IO uint8_t SysSpecVersion;
99 __IO uint8_t Reserved1;
100 __IO uint8_t TAAC;
101 __IO uint8_t NSAC;
102 __IO uint8_t MaxBusClkFrec;
103 __IO uint16_t CardComdClasses;
104 __IO uint8_t RdBlockLen;
105 __IO uint8_t PartBlockRead;
106 __IO uint8_t WrBlockMisalign;
107 __IO uint8_t RdBlockMisalign;
108 __IO uint8_t DSRImpl;
109 __IO uint8_t Reserved2;
110 __IO uint32_t DeviceSize;
111 __IO uint8_t MaxRdCurrentVDDMin;
112 __IO uint8_t MaxRdCurrentVDDMax;
113 __IO uint8_t MaxWrCurrentVDDMin;
114 __IO uint8_t MaxWrCurrentVDDMax;
115 __IO uint8_t DeviceSizeMul;
116 __IO uint8_t EraseGrSize;
117 __IO uint8_t EraseGrMul;
118 __IO uint8_t WrProtectGrSize;
119 __IO uint8_t WrProtectGrEnable;
120 __IO uint8_t ManDeflECC;
121 __IO uint8_t WrSpeedFact;
122 __IO uint8_t MaxWrBlockLen;
123 __IO uint8_t WriteBlockPaPartial;
124 __IO uint8_t Reserved3;
125 __IO uint8_t ContentProtectAppli;
126 __IO uint8_t FileFormatGrouop;
127 __IO uint8_t CopyFlag;
128 __IO uint8_t PermWrProtect;
129 __IO uint8_t TempWrProtect;
130 __IO uint8_t FileFormat;
131 __IO uint8_t ECC;
132 __IO uint8_t CSD_CRC;
133 __IO uint8_t Reserved4;
134} SD_CSD;
135
139typedef struct {
140 __IO uint8_t ManufacturerID;
141 __IO uint16_t OEM_AppliID;
142 __IO uint32_t ProdName1;
143 __IO uint8_t ProdName2;
144 __IO uint8_t ProdRev;
145 __IO uint32_t ProdSN;
146 __IO uint8_t Reserved1;
147 __IO uint16_t ManufactDate;
148 __IO uint8_t CID_CRC;
149 __IO uint8_t Reserved2;
150} SD_CID;
151
155typedef enum {
156 SD_CARD_READY = ((uint32_t)0x00000001),
157 SD_CARD_IDENTIFICATION = ((uint32_t)0x00000002),
158 SD_CARD_STANDBY = ((uint32_t)0x00000003),
159 SD_CARD_TRANSFER = ((uint32_t)0x00000004),
160 SD_CARD_SENDING = ((uint32_t)0x00000005),
161 SD_CARD_RECEIVING = ((uint32_t)0x00000006),
162 SD_CARD_PROGRAMMING = ((uint32_t)0x00000007),
163 SD_CARD_DISCONNECTED = ((uint32_t)0x00000008),
164 SD_CARD_ERROR = ((uint32_t)0x000000FF)
166
170typedef struct {
173 uint64_t CardCapacity;
174 uint32_t CardBlockSize;
175 uint16_t RCA;
176 uint8_t CardType;
178
186// bool PHAL_SDIO_init(SDIO_InitConfig_t *config);
187bool PHAL_SDIO_init(void);
188
192#define SDIO_STD_CAPACITY_SD_CARD_V1_1 ((uint32_t)0x00000000)
193#define SDIO_STD_CAPACITY_SD_CARD_V2_0 ((uint32_t)0x00000001)
194#define SDIO_HIGH_CAPACITY_SD_CARD ((uint32_t)0x00000002)
195#define SDIO_MULTIMEDIA_CARD ((uint32_t)0x00000003)
196#define SDIO_SECURE_DIGITAL_IO_CARD ((uint32_t)0x00000004)
197#define SDIO_HIGH_SPEED_MULTIMEDIA_CARD ((uint32_t)0x00000005)
198#define SDIO_SECURE_DIGITAL_IO_COMBO_CARD ((uint32_t)0x00000006)
199#define SDIO_HIGH_CAPACITY_MMC_CARD ((uint32_t)0x00000007)
200
201#define SDIO_CMD0TIMEOUT ((uint32_t)0x00010000)
202#define SDIO_STATIC_FLAGS ((uint32_t)0x000005FF)
203#define SD_CHECK_PATTERN ((uint32_t)0x000001AA)
204
208#define SD_CMD_GO_IDLE_STATE ((uint8_t)0)
209#define SD_CMD_SEND_OP_COND ((uint8_t)1)
210#define SD_CMD_ALL_SEND_CID ((uint8_t)2)
211#define SD_CMD_SET_REL_ADDR ((uint8_t)3)
212#define SD_CMD_SET_DSR ((uint8_t)4)
213#define SD_CMD_SDIO_SEN_OP_COND ((uint8_t)5)
214#define SD_CMD_HS_SWITCH ((uint8_t)6)
215#define SD_CMD_SEL_DESEL_CARD ((uint8_t)7)
216#define SD_CMD_HS_SEND_EXT_CSD ((uint8_t)8)
217#define SD_CMD_SEND_CSD ((uint8_t)9)
218#define SD_CMD_SEND_CID ((uint8_t)10)
219#define SD_CMD_READ_DAT_UNTIL_STOP ((uint8_t)11)
220#define SD_CMD_STOP_TRANSMISSION ((uint8_t)12)
221#define SD_CMD_SEND_STATUS ((uint8_t)13)
222#define SD_CMD_HS_BUSTEST_READ ((uint8_t)14)
223#define SD_CMD_GO_INACTIVE_STATE ((uint8_t)15)
224#define SD_CMD_SET_BLOCKLEN ((uint8_t)16)
225#define SD_CMD_READ_SINGLE_BLOCK ((uint8_t)17)
226#define SD_CMD_READ_MULT_BLOCK ((uint8_t)18)
227#define SD_CMD_HS_BUSTEST_WRITE ((uint8_t)19)
228#define SD_CMD_WRITE_DAT_UNTIL_STOP ((uint8_t)20)
229#define SD_CMD_SET_BLOCK_COUNT ((uint8_t)23)
230#define SD_CMD_WRITE_SINGLE_BLOCK ((uint8_t)24)
231#define SD_CMD_WRITE_MULT_BLOCK ((uint8_t)25)
232#define SD_CMD_PROG_CID ((uint8_t)26)
233#define SD_CMD_PROG_CSD ((uint8_t)27)
234#define SD_CMD_SET_WRITE_PROT ((uint8_t)28)
235#define SD_CMD_CLR_WRITE_PROT ((uint8_t)29)
236#define SD_CMD_SEND_WRITE_PROT ((uint8_t)30)
237#define SD_CMD_SD_ERASE_GRP_START ((uint8_t)32)
239#define SD_CMD_SD_ERASE_GRP_END ((uint8_t)33)
241#define SD_CMD_ERASE_GRP_START ((uint8_t)35)
244#define SD_CMD_ERASE_GRP_END ((uint8_t)36)
247#define SD_CMD_ERASE ((uint8_t)38)
248#define SD_CMD_FAST_IO ((uint8_t)39)
249#define SD_CMD_GO_IRQ_STATE ((uint8_t)40)
250#define SD_CMD_LOCK_UNLOCK ((uint8_t)42)
251#define SD_CMD_APP_CMD ((uint8_t)55)
252#define SD_CMD_GEN_CMD ((uint8_t)56)
253#define SD_CMD_NO_CMD ((uint8_t)64)
254
259#define SD_CMD_APP_SD_SET_BUSWIDTH ((uint8_t)6)
260#define SD_CMD_SD_APP_STAUS ((uint8_t)13)
261#define SD_CMD_SD_APP_SEND_NUM_WRITE_BLOCKS ((uint8_t)22)
262#define SD_CMD_SD_APP_OP_COND ((uint8_t)41)
263#define SD_CMD_SD_APP_SET_CLR_CARD_DETECT ((uint8_t)42)
264#define SD_CMD_SD_APP_SEND_SCR ((uint8_t)51)
265#define SD_CMD_SDIO_RW_DIRECT ((uint8_t)52)
266#define SD_CMD_SDIO_RW_EXTENDED ((uint8_t)53)
272#define SD_CMD_SD_APP_GET_MKB ((uint8_t)43)
273#define SD_CMD_SD_APP_GET_MID ((uint8_t)44)
274#define SD_CMD_SD_APP_SET_CER_RN1 ((uint8_t)45)
275#define SD_CMD_SD_APP_GET_CER_RN2 ((uint8_t)46)
276#define SD_CMD_SD_APP_SET_CER_RES2 ((uint8_t)47)
277#define SD_CMD_SD_APP_GET_CER_RES1 ((uint8_t)48)
278#define SD_CMD_SD_APP_SECURE_READ_MULTIPLE_BLOCK ((uint8_t)18)
279#define SD_CMD_SD_APP_SECURE_WRITE_MULTIPLE_BLOCK ((uint8_t)25)
280#define SD_CMD_SD_APP_SECURE_ERASE ((uint8_t)38)
281#define SD_CMD_SD_APP_CHANGE_SECURE_AREA ((uint8_t)49)
282#define SD_CMD_SD_APP_SECURE_WRITE_MKB ((uint8_t)48)
287#define SD_OCR_ADDR_OUT_OF_RANGE ((uint32_t)0x80000000)
288#define SD_OCR_ADDR_MISALIGNED ((uint32_t)0x40000000)
289#define SD_OCR_BLOCK_LEN_ERR ((uint32_t)0x20000000)
290#define SD_OCR_ERASE_SEQ_ERR ((uint32_t)0x10000000)
291#define SD_OCR_BAD_ERASE_PARAM ((uint32_t)0x08000000)
292#define SD_OCR_WRITE_PROT_VIOLATION ((uint32_t)0x04000000)
293#define SD_OCR_LOCK_UNLOCK_FAILED ((uint32_t)0x01000000)
294#define SD_OCR_COM_CRC_FAILED ((uint32_t)0x00800000)
295#define SD_OCR_ILLEGAL_CMD ((uint32_t)0x00400000)
296#define SD_OCR_CARD_ECC_FAILED ((uint32_t)0x00200000)
297#define SD_OCR_CC_ERROR ((uint32_t)0x00100000)
298#define SD_OCR_GENERAL_UNKNOWN_ERROR ((uint32_t)0x00080000)
299#define SD_OCR_STREAM_READ_UNDERRUN ((uint32_t)0x00040000)
300#define SD_OCR_STREAM_WRITE_OVERRUN ((uint32_t)0x00020000)
301#define SD_OCR_CID_CSD_OVERWRIETE ((uint32_t)0x00010000)
302#define SD_OCR_WP_ERASE_SKIP ((uint32_t)0x00008000)
303#define SD_OCR_CARD_ECC_DISABLED ((uint32_t)0x00004000)
304#define SD_OCR_ERASE_RESET ((uint32_t)0x00002000)
305#define SD_OCR_AKE_SEQ_ERROR ((uint32_t)0x00000008)
306#define SD_OCR_ERRORBITS ((uint32_t)0xFDFFE008)
307
311#define SD_R6_GENERAL_UNKNOWN_ERROR ((uint32_t)0x00002000)
312#define SD_R6_ILLEGAL_CMD ((uint32_t)0x00004000)
313#define SD_R6_COM_CRC_FAILED ((uint32_t)0x00008000)
314
315#define SD_VOLTAGE_WINDOW_SD ((uint32_t)0x80100000)
316#define SD_HIGH_CAPACITY ((uint32_t)0x40000000)
317#define SD_STD_CAPACITY ((uint32_t)0x00000000)
318#define SD_CHECK_PATTERN ((uint32_t)0x000001AA)
319
320#define SD_MAX_VOLT_TRIAL ((uint32_t)0x0000FFFF)
321#define SD_ALLZERO ((uint32_t)0x00000000)
322
323#define SD_WIDE_BUS_SUPPORT ((uint32_t)0x00040000)
324#define SD_SINGLE_BUS_SUPPORT ((uint32_t)0x00010000)
325#define SD_CARD_LOCKED ((uint32_t)0x02000000)
326
327#define SD_DATATIMEOUT ((uint32_t)0xFFFFFFFF)
328#define SD_0TO7BITS ((uint32_t)0x000000FF)
329#define SD_8TO15BITS ((uint32_t)0x0000FF00)
330#define SD_16TO23BITS ((uint32_t)0x00FF0000)
331#define SD_24TO31BITS ((uint32_t)0xFF000000)
332#define SD_MAX_DATA_LENGTH ((uint32_t)0x01FFFFFF)
333
334#define SD_HALFFIFO ((uint32_t)0x00000008)
335#define SD_HALFFIFOBYTES ((uint32_t)0x00000020)
336
340#define SD_CCCC_LOCK_UNLOCK ((uint32_t)0x00000080)
341#define SD_CCCC_WRITE_PROT ((uint32_t)0x00000040)
342#define SD_CCCC_ERASE ((uint32_t)0x00000020)
343
347#define SD_PRESENT ((uint8_t)0x01)
348#define SD_NOT_PRESENT ((uint8_t)0x00)
349
350#define SDIO_BusWide_1b (1)
351#define SDIO_BusWide_4b (4)
352#define SDIO_BusWide_8b (8)
353
354#define FATFS_SDIO_4BIT 1
355
360#define SDIO_SEND_IF_COND ((uint32_t)0x00000008)
361
362/* SDIO data block size */
363#define SDIO_DATABLOCKSIZE ((uint32_t)((9 << 4)))
364
368#define SDIO_INIT_CLK_DIV ((uint8_t)118)
369
373// SDIO_CK = SDIOCLK / (CLKDIV + 2)
374// Select even CLKDIV for 50% duty
375#define SDIO_TRANSFER_CLK_DIV ((uint8_t)0) //(46)
376// #define SDIO_TRANSFER_CLK_DIV ((uint8_t)78)
377// TODO: see about increasing (1MHz now)
378
379#define SD_DMA_MODE ((uint32_t)0x00000000)
380
381void SD_LowLevel_DMA_TxConfig(const uint32_t* BufferSRC, uint32_t BufferSize);
382void SD_LowLevel_DMA_RxConfig(uint32_t* BufferDST, uint32_t BufferSize);
383
384void SD_DeInit(void);
385void PHAL_SDIO_SendCommand(const PHAL_SD_Cmd_t* cmd);
386SD_Error SD_Init(void);
389uint8_t SD_Detect(void);
390SD_Error SD_PowerON(void);
393SD_Error SD_EnableWideBusOperation(uint32_t WideMode);
394SD_Error SD_SelectDeselect(uint64_t addr);
395SD_Error SD_ReadMultiBlocks(uint8_t* readbuff, uint64_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
396SD_Error SD_WriteMultiBlocks(uint8_t* writebuff, uint64_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
398SD_Error SD_SendStatus(uint32_t* pcardstatus);
401
402#endif /* _PHAL_SDIO_H */
GPIO Driver for STM32F4 Devices.
RCC Configuration Driver for STM32F4 Devices.
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
void PHAL_SDIO_SendCommand(const PHAL_SD_Cmd_t *cmd)
Send a command.
Definition sdio.c:663
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:758
SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo)
Returns information about specific card.
Definition sdio.c:394
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:683
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:807
SD_Error SD_EnableWideBusOperation(uint32_t WideMode)
Enables wide bus opeartion for the requeseted card if supported by card.
Definition sdio.c:600
bool PHAL_SDIO_init(void)
Initialize SDIO peripheral with the configuired structure.
Definition sdio.c:43
SD_Error SD_SendStatus(uint32_t *pcardstatus)
Returns the current card's status.
Definition sdio.c:955
SD_Error SD_SelectDeselect(uint64_t addr)
Selects od Deselects the corresponding card.
Definition sdio.c:643
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:319
void SD_LowLevel_DMA_TxConfig(const uint32_t *BufferSRC, uint32_t BufferSize)
Configures the DMA 2 Channel 6 for SDIO Tx request.
Definition sdio.c:1550
uint8_t SD_Detect(void)
Detect if SD card is correctly plugged in the memory slot.
Definition sdio.c:190
SDCardState
SD Card States.
Definition sdio.h:155
@ SD_CARD_TRANSFER
Definition sdio.h:159
@ SD_CARD_IDENTIFICATION
Definition sdio.h:157
@ SD_CARD_SENDING
Definition sdio.h:160
@ SD_CARD_RECEIVING
Definition sdio.h:161
@ SD_CARD_STANDBY
Definition sdio.h:158
@ SD_CARD_READY
Definition sdio.h:156
@ SD_CARD_PROGRAMMING
Definition sdio.h:162
@ SD_CARD_DISCONNECTED
Definition sdio.h:163
@ SD_CARD_ERROR
Definition sdio.h:164
SDTransferState
SDIO Transfer state.
Definition sdio.h:87
@ SD_TRANSFER_ERROR
Definition sdio.h:90
@ SD_TRANSFER_OK
Definition sdio.h:88
@ SD_TRANSFER_BUSY
Definition sdio.h:89
SD_Error
Definition sdio.h:32
@ SD_ERROR
Definition sdio.h:80
@ SD_COM_CRC_FAILED
Definition sdio.h:50
@ SD_WP_ERASE_SKIP
Definition sdio.h:58
@ SD_LOCK_UNLOCK_FAILED
Definition sdio.h:49
@ SD_INVALID_PARAMETER
Definition sdio.h:77
@ SD_CMD_OUT_OF_RANGE
Definition sdio.h:43
@ SD_UNSUPPORTED_HW
Definition sdio.h:79
@ SD_CARD_ECC_FAILED
Definition sdio.h:52
@ SD_CC_ERROR
Definition sdio.h:53
@ SD_STREAM_WRITE_OVERRUN
Definition sdio.h:56
@ SD_INTERNAL_ERROR
Standard error defines.
Definition sdio.h:73
@ SD_GENERAL_UNKNOWN_ERROR
Definition sdio.h:54
@ SD_REQUEST_PENDING
Definition sdio.h:75
@ SD_CARD_ECC_DISABLED
Definition sdio.h:59
@ SD_WRITE_PROT_VIOLATION
Definition sdio.h:48
@ SD_SDIO_UNKNOWN_FUNCTION
Definition sdio.h:68
@ SD_ERASE_RESET
Definition sdio.h:60
@ SD_CMD_CRC_FAIL
SDIO specific error defines.
Definition sdio.h:36
@ SD_UNSUPPORTED_FEATURE
Definition sdio.h:78
@ SD_TX_UNDERRUN
Definition sdio.h:40
@ SD_ILLEGAL_CMD
Definition sdio.h:51
@ SD_ADDR_OUT_OF_RANGE
Definition sdio.h:63
@ SD_RX_OVERRUN
Definition sdio.h:41
@ SD_SWITCH_ERROR
Definition sdio.h:64
@ SD_INVALID_VOLTRANGE
Definition sdio.h:62
@ SD_SDIO_DISABLED
Definition sdio.h:65
@ SD_SDIO_FUNCTION_FAILED
Definition sdio.h:67
@ SD_STREAM_READ_UNDERRUN
Definition sdio.h:55
@ SD_BAD_ERASE_PARAM
Definition sdio.h:47
@ SD_DATA_TIMEOUT
Definition sdio.h:39
@ SD_ADDR_MISALIGNED
Definition sdio.h:44
@ SD_START_BIT_ERR
Definition sdio.h:42
@ SD_NOT_CONFIGURED
Definition sdio.h:74
@ SD_DATA_CRC_FAIL
Definition sdio.h:37
@ SD_REQUEST_NOT_APPLICABLE
Definition sdio.h:76
@ SD_CID_CSD_OVERWRITE
Definition sdio.h:57
@ SD_BLOCK_LEN_ERR
Definition sdio.h:45
@ SD_CMD_RSP_TIMEOUT
Definition sdio.h:38
@ SD_SDIO_FUNCTION_BUSY
Definition sdio.h:66
@ SD_OK
Definition sdio.h:81
@ SD_ERASE_SEQ_ERR
Definition sdio.h:46
@ SD_AKE_SEQ_ERROR
Definition sdio.h:61
SD_Error SD_StopTransfer(void)
Aborts an ongoing data transfer.
Definition sdio.c:928
void SD_DeInit(void)
Definition sdio.c:1609
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:889
void SD_LowLevel_DMA_RxConfig(uint32_t *BufferDST, uint32_t BufferSize)
Configures the DMA2 Channel4 for SDIO Rx request.
Definition sdio.c:1593
PHAL_SD_CmdResp_t
Definition sdio.h:21
@ SD_RESP_LONG
Long response, expect CMDREND / CCRCFAIL flag.
Definition sdio.h:24
@ SD_RESP_SHORT
Short response, expect CMDREND / CCRCFAIL flag.
Definition sdio.h:23
@ SD_RESP_NONE
No response, expect CMDSENT flag.
Definition sdio.h:22
SDTransferState SD_GetStatus(void)
Gets the cuurent sd card data transfer status.
Definition sdio.c:152
Definition sdio.h:27
uint32_t arg
Command argument.
Definition sdio.h:30
uint8_t idx
Command index.
Definition sdio.h:28
PHAL_SD_CmdResp_t res
Command response type.
Definition sdio.h:29
Card Identification Data: CID Register.
Definition sdio.h:139
__IO uint16_t OEM_AppliID
Definition sdio.h:141
__IO uint16_t ManufactDate
Definition sdio.h:147
__IO uint8_t ManufacturerID
Definition sdio.h:140
__IO uint8_t Reserved2
Definition sdio.h:149
__IO uint8_t ProdRev
Definition sdio.h:144
__IO uint32_t ProdName1
Definition sdio.h:142
__IO uint8_t Reserved1
Definition sdio.h:146
__IO uint8_t ProdName2
Definition sdio.h:143
__IO uint32_t ProdSN
Definition sdio.h:145
__IO uint8_t CID_CRC
Definition sdio.h:148
Card Specific Data: CSD Register.
Definition sdio.h:96
__IO uint8_t MaxWrBlockLen
Definition sdio.h:122
__IO uint8_t Reserved1
Definition sdio.h:99
__IO uint8_t WrProtectGrSize
Definition sdio.h:118
__IO uint8_t RdBlockMisalign
Definition sdio.h:107
__IO uint8_t DSRImpl
Definition sdio.h:108
__IO uint8_t MaxBusClkFrec
Definition sdio.h:102
__IO uint8_t WriteBlockPaPartial
Definition sdio.h:123
__IO uint8_t TempWrProtect
Definition sdio.h:129
__IO uint8_t Reserved3
Definition sdio.h:124
__IO uint8_t MaxRdCurrentVDDMin
Definition sdio.h:111
__IO uint8_t PermWrProtect
Definition sdio.h:128
__IO uint8_t ECC
Definition sdio.h:131
__IO uint8_t RdBlockLen
Definition sdio.h:104
__IO uint8_t WrSpeedFact
Definition sdio.h:121
__IO uint8_t CSD_CRC
Definition sdio.h:132
__IO uint8_t WrBlockMisalign
Definition sdio.h:106
__IO uint32_t DeviceSize
Definition sdio.h:110
__IO uint8_t NSAC
Definition sdio.h:101
__IO uint8_t Reserved4
Definition sdio.h:133
__IO uint8_t CSDStruct
Definition sdio.h:97
__IO uint8_t EraseGrMul
Definition sdio.h:117
__IO uint8_t FileFormat
Definition sdio.h:130
__IO uint8_t WrProtectGrEnable
Definition sdio.h:119
__IO uint8_t PartBlockRead
Definition sdio.h:105
__IO uint8_t MaxWrCurrentVDDMax
Definition sdio.h:114
__IO uint8_t ManDeflECC
Definition sdio.h:120
__IO uint8_t SysSpecVersion
Definition sdio.h:98
__IO uint8_t TAAC
Definition sdio.h:100
__IO uint8_t FileFormatGrouop
Definition sdio.h:126
__IO uint8_t EraseGrSize
Definition sdio.h:116
__IO uint8_t DeviceSizeMul
Definition sdio.h:115
__IO uint8_t Reserved2
Definition sdio.h:109
__IO uint8_t MaxRdCurrentVDDMax
Definition sdio.h:112
__IO uint16_t CardComdClasses
Definition sdio.h:103
__IO uint8_t ContentProtectAppli
Definition sdio.h:125
__IO uint8_t CopyFlag
Definition sdio.h:127
__IO uint8_t MaxWrCurrentVDDMin
Definition sdio.h:113
SD Card information.
Definition sdio.h:170
SD_CSD SD_csd
Definition sdio.h:171
uint8_t CardType
Definition sdio.h:176
uint64_t CardCapacity
Definition sdio.h:173
uint32_t CardBlockSize
Definition sdio.h:174
uint16_t RCA
Definition sdio.h:175
SD_CID SD_cid
Definition sdio.h:172