# SdFat: SdioCard Class Reference

SdioCard Class Reference

Raw SDIO access to SD and SDHC flash memory cards. More...

`#include <SdioCard.h>`

Inheritance diagram for SdioCard:
[legend]
Collaboration diagram for SdioCard:
[legend]

## Public Member Functions

bool | begin (SdioConfig sdioConfig)
bool | end ()
bool | erase (uint32_t firstSector, uint32_t lastSector)
uint8_t | errorCode () const
uint32_t | errorData () const
uint32_t | errorLine () const
bool | isBusy ()
uint32_t | kHzSdClk ()
bool | readCID (cid_t *cid)
bool | readCSD (csd_t *csd)
bool | readData (uint8_t *dst)
bool | readOCR (uint32_t *ocr)
bool | readSector (uint32_t sector, uint8_t *dst)
bool | readSectors (uint32_t sector, uint8_t *dst, size_t ns)
bool | readStart (uint32_t sector)
bool | readStart (uint32_t sector, uint32_t count)
bool | readStop ()
uint32_t | sectorCount ()
uint32_t | status ()
bool | syncDevice ()
uint8_t | type () const
bool | writeData (const uint8_t *src)
bool | writeSector (uint32_t sector, const uint8_t *src)
bool | writeSectors (uint32_t sector, const uint8_t *src, size_t ns)
bool | writeStart (uint32_t sector)
bool | writeStart (uint32_t sector, uint32_t count)
bool | writeStop ()

## Detailed Description

Raw SDIO access to SD and SDHC flash memory cards.

## Member Function Documentation

## begin()

bool SdioCard::begin | ( | SdioConfig | sdioConfig | ) |

Initialize the SD card.

Parameters

  [in] | sdioConfig | SDIO card configuration.

Returns
  true for success or false for failure.

## end()

bool SdioCard::end | ( |  | ) |

inline

Disable an SDIO card.

Returns
  false - not implemented.

## erase()

bool SdioCard::erase | ( | uint32_t | firstSector,
|  | uint32_t | lastSector
| ) |  |

virtual

Erase a range of sectors.

Parameters

  [in] | firstSector | The address of the first sector in the range.
  [in] | lastSector | The address of the last sector in the range.

Note
  This function requests the SD card to do a flash erase for a range of sectors. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single sector erase.

Returns
  true for success or false for failure.

Implements SdCardInterface.

## errorCode()

uint8_t SdioCard::errorCode | ( |  | ) | const

virtual

Returns
  code for the last error. See SdCardInfo.h for a list of error codes.

Implements SdCardInterface.

## errorData()

uint32_t SdioCard::errorData | ( |  | ) | const

virtual

Returns
  error data for last error.

Implements SdCardInterface.

## errorLine()

uint32_t SdioCard::errorLine | ( |  | ) | const

Returns
  error line for last error. Tmp function for debug.

## isBusy()

bool SdioCard::isBusy | ( |  | ) |

virtual

Check for busy with CMD13.

Returns
  true if busy else false.

Implements SdCardInterface.

## kHzSdClk()

uint32_t SdioCard::kHzSdClk | ( |  | ) |

Returns
  the SD clock frequency in kHz.

## readCID()

bool SdioCard::readCID | ( | cid_t * | cid | ) |

virtual

Read a card's CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.

Parameters

  [out] | cid | pointer to area for returned data.

Returns
  true for success or false for failure.

Implements SdCardInterface.

## readCSD()

bool SdioCard::readCSD | ( | csd_t * | csd | ) |

virtual

Read a card's CSD register. The CSD contains Card-Specific Data that provides information regarding access to the card's contents.

Parameters

  [out] | csd | pointer to area for returned data.

Returns
  true for success or false for failure.

Implements SdCardInterface.

## readData()

bool SdioCard::readData | ( | uint8_t * | dst | ) |

Read one data sector in a multiple sector read sequence

Parameters

  [out] | dst | Pointer to the location for the data to be read.

Returns
  true for success or false for failure.

## readOCR()

bool SdioCard::readOCR | ( | uint32_t * | ocr | ) |

virtual

Read OCR register.

Parameters

  [out] | ocr | Value of OCR register.

Returns
  true for success or false for failure.

Implements SdCardInterface.

## readSector()

bool SdioCard::readSector | ( | uint32_t | sector,
|  | uint8_t * | dst
| ) |  |

virtual

Read a 512 byte sector from an SD card.

Parameters

  [in] | sector | Logical sector to be read.
  [out] | dst | Pointer to the location that will receive the data.

Returns
  true for success or false for failure.

Implements BlockDeviceInterface.

## readSectors()

bool SdioCard::readSectors | ( | uint32_t | sector,
|  | uint8_t * | dst,
|  | size_t | ns
| ) |  |

virtual

Read multiple 512 byte sectors from an SD card.

Parameters

  [in] | sector | Logical sector to be read.
  [in] | ns | Number of sectors to be read.
  [out] | dst | Pointer to the location that will receive the data.

Returns
  true for success or false for failure.

Implements BlockDeviceInterface.

## readStart() [1/2]

bool SdioCard::readStart | ( | uint32_t | sector | ) |

Start a read multiple sectors sequence.

Parameters

  [in] | sector | Address of first sector in sequence.

Note
  This function is used with readData() and readStop() for optimized multiple sector reads. SPI chipSelect must be low for the entire sequence.

Returns
  true for success or false for failure.

## readStart() [2/2]

bool SdioCard::readStart | ( | uint32_t | sector,
|  | uint32_t | count
| ) |  |

Start a read multiple sectors sequence.

Parameters

  [in] | sector | Address of first sector in sequence.
  [in] | count | Maximum sector count.

Note
  This function is used with readData() and readStop() for optimized multiple sector reads. SPI chipSelect must be low for the entire sequence.

Returns
  true for success or false for failure.

## readStop()

bool SdioCard::readStop | ( |  | ) |

End a read multiple sectors sequence.

Returns
  true for success or false for failure.

## sectorCount()

uint32_t SdioCard::sectorCount | ( |  | ) |

virtual

Determine the size of an SD flash memory card.

Returns
  The number of 512 byte data sectors in the card or zero if an error occurs.

Implements SdCardInterface.

## status()

uint32_t SdioCard::status | ( |  | ) |

virtual

Returns
  SDIO card status.

Reimplemented from SdCardInterface.

## syncDevice()

bool SdioCard::syncDevice | ( |  | ) |

virtual

Returns
  success if sync successful. Not for user apps.

Implements BlockDeviceInterface.

## type()

uint8_t SdioCard::type | ( |  | ) | const

virtual

Return the card type: SD V1, SD V2 or SDHC

Returns
  0 - SD V1, 1 - SD V2, or 3 - SDHC.

Implements SdCardInterface.

## writeData()

bool SdioCard::writeData | ( | const uint8_t * | src | ) |

virtual

Write one data sector in a multiple sector write sequence.

Parameters

  [in] | src | Pointer to the location of the data to be written.

Returns
  true for success or false for failure.

Implements SdCardInterface.

## writeSector()

bool SdioCard::writeSector | ( | uint32_t | sector,
|  | const uint8_t * | src
| ) |  |

virtual

Writes a 512 byte sector to an SD card.

Parameters

  [in] | sector | Logical sector to be written.
  [in] | src | Pointer to the location of the data to be written.

Returns
  true for success or false for failure.

Implements BlockDeviceInterface.

## writeSectors()

bool SdioCard::writeSectors | ( | uint32_t | sector,
|  | const uint8_t * | src,
|  | size_t | ns
| ) |  |

virtual

Write multiple 512 byte sectors to an SD card.

Parameters

  [in] | sector | Logical sector to be written.
  [in] | ns | Number of sectors to be written.
  [in] | src | Pointer to the location of the data to be written.

Returns
  true for success or false for failure.

Implements BlockDeviceInterface.

## writeStart() [1/2]

bool SdioCard::writeStart | ( | uint32_t | sector | ) |

virtual

Start a write multiple sectors sequence.

Parameters

  [in] | sector | Address of first sector in sequence.

Note
  This function is used with writeData() and writeStop() for optimized multiple sector writes.

Returns
  true for success or false for failure.

Implements SdCardInterface.

## writeStart() [2/2]

bool SdioCard::writeStart | ( | uint32_t | sector,
|  | uint32_t | count
| ) |  |

Start a write multiple sectors sequence.

Parameters

  [in] | sector | Address of first sector in sequence.
  [in] | count | Maximum sector count.

Note
  This function is used with writeData() and writeStop() for optimized multiple sector writes.

Returns
  true for success or false for failure.

## writeStop()

bool SdioCard::writeStop | ( |  | ) |

virtual

End a write multiple sectors sequence.

Returns
  true for success or false for failure.

Implements SdCardInterface.

The documentation for this class was generated from the following file:

- ArduinoSdFat/libraries/SdFat/src/SdCard/SdioCard.h