SdFat
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SdioCard Class Reference

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

#include <SdioCard.h>

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

Public Member Functions

bool begin (SdioConfig config)
 
bool cardCMD6 (uint32_t arg, uint8_t *status)
 
void end ()
 
bool erase (uint32_t firstSector, uint32_t lastSector)
 
uint8_t errorCode () const
 
uint32_t errorData () const
 
uint32_t errorLine () const
 
virtual bool hasDedicatedSpi ()
 
bool isBusy ()
 
virtual bool isDedicatedSpi ()
 
virtual bool isSpi ()
 
uint32_t kHzSdClk ()
 
bool readCID (cid_t *cid)
 
bool readCSD (csd_t *csd)
 
bool readData (uint8_t *dst)
 
bool readOCR (uint32_t *ocr)
 
bool readSCR (scr_t *scr)
 
bool readSDS (sds_t *sds)
 
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 readStop ()
 
uint32_t sectorCount ()
 
virtual bool setDedicatedSpi (bool value)
 
uint32_t status ()
 
bool stopTransmission (bool blocking)
 
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 writeStop ()
 

Detailed Description

Raw SDIO access to SD and SDHC flash memory cards.

Member Function Documentation

◆ begin()

bool SdioCard::begin ( SdioConfig config)

Initialize the SD card.

Parameters
[in]configSDIO card configuration.
Returns
true for success or false for failure.

◆ cardCMD6()

bool SdioCard::cardCMD6 ( uint32_t arg,
uint8_t * status )
virtual

CMD6 Switch mode: Check Function Set Function.

Parameters
[in]argCMD6 argument.
[out]statusreturn status data.
Returns
true for success or false for failure.

Implements SdCardInterface.

◆ end()

void SdioCard::end ( )
virtual

Disable an SDIO card. not implemented.

Reimplemented from FsBlockDeviceInterface.

◆ erase()

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

Erase a range of sectors.

Parameters
[in]firstSectorThe address of the first sector in the range.
[in]lastSectorThe 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.

◆ hasDedicatedSpi()

virtual bool SdCardInterface::hasDedicatedSpi ( )
inlinevirtualinherited
Returns
false by default

◆ isBusy()

bool SdioCard::isBusy ( )
virtual

Check for busy with CMD13.

Returns
true if busy else false.

Implements FsBlockDeviceInterface.

◆ isDedicatedSpi()

virtual bool SdCardInterface::isDedicatedSpi ( )
inlinevirtualinherited
Returns
false by default

◆ isSpi()

virtual bool SdCardInterface::isSpi ( )
inlinevirtualinherited
Returns
false by default

◆ 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]cidpointer 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]csdpointer 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]dstPointer 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]ocrValue of OCR register.
Returns
true for success or false for failure.

Implements SdCardInterface.

◆ readSCR()

bool SdioCard::readSCR ( scr_t * scr)
virtual

Read SCR register.

Parameters
[out]scrValue of SCR register.
Returns
true for success or false for failure.

Implements SdCardInterface.

◆ readSDS()

bool SdioCard::readSDS ( sds_t * sds)
virtual

Return the 64 byte SD Status register.

Parameters
[out]sdslocation for 64 status bytes.
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]sectorLogical sector to be read.
[out]dstPointer to the location that will receive the data.
Returns
true for success or false for failure.

Implements FsBlockDeviceInterface.

◆ 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]sectorLogical sector to be read.
[in]nsNumber of sectors to be read.
[out]dstPointer to the location that will receive the data.
Returns
true for success or false for failure.

Implements FsBlockDeviceInterface.

◆ readStart()

bool SdioCard::readStart ( uint32_t sector)

Start a read multiple sectors sequence.

Parameters
[in]sectorAddress of first sector in sequence.
Note
This function is used with readData() and readStop() for optimized multiple sector reads.
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 FsBlockDeviceInterface.

◆ setDedicatedSpi()

virtual bool SdCardInterface::setDedicatedSpi ( bool value)
inlinevirtualinherited

Set SPI sharing state

Parameters
[in]valuedesired state.
Returns
false by default.

◆ status()

uint32_t SdioCard::status ( )
virtual
Returns
SDIO card status.

Reimplemented from SdCardInterface.

◆ stopTransmission()

bool SdioCard::stopTransmission ( bool blocking)

Send CMD12 to stop read or write.

Parameters
[in]blockingIf true, wait for command complete.
Returns
true for success or false for failure.

◆ syncDevice()

bool SdioCard::syncDevice ( )
virtual
Returns
success if sync successful. Not for user apps.

Implements FsBlockDeviceInterface.

◆ 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]srcPointer 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]sectorLogical sector to be written.
[in]srcPointer to the location of the data to be written.
Returns
true for success or false for failure.

Implements FsBlockDeviceInterface.

◆ 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]sectorLogical sector to be written.
[in]nsNumber of sectors to be written.
[in]srcPointer to the location of the data to be written.
Returns
true for success or false for failure.

Implements FsBlockDeviceInterface.

◆ writeStart()

bool SdioCard::writeStart ( uint32_t sector)
virtual

Start a write multiple sectors sequence.

Parameters
[in]sectorAddress 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.

◆ 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: