SdFat
Public Member Functions | Static Public Attributes | List of all members
SharedSpiCard Class Reference

Raw access to SD and SDHC flash memory cards via shared SPI port. More...

#include <SdSpiCard.h>

Inheritance diagram for SharedSpiCard:
Inheritance graph
[legend]

Public Member Functions

bool begin (SdSpiConfig spiConfig)
 
void end ()
 
bool erase (uint32_t firstSector, uint32_t lastSector)
 
bool eraseSingleSectorEnable ()
 
void error (uint8_t code)
 
uint8_t errorCode () const
 
uint32_t errorData () const
 
bool hasDedicatedSpi ()
 
bool isBusy ()
 
bool isDedicatedSpi ()
 
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 readStatus (uint8_t *status)
 
bool readStop ()
 
uint8_t sdState ()
 
uint32_t sectorCount ()
 
bool setDedicatedSpi (bool value)
 
 SharedSpiCard ()
 
bool stopTransfer ()
 
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 ()
 

Static Public Attributes

static const uint8_t IDLE_STATE = 0
 
static const uint8_t READ_STATE = 1
 
static const uint8_t WRITE_STATE = 2
 

Detailed Description

Raw access to SD and SDHC flash memory cards via shared SPI port.

Constructor & Destructor Documentation

◆ SharedSpiCard()

SharedSpiCard::SharedSpiCard ( )
inline

Construct an instance of SharedSpiCard.

Member Function Documentation

◆ begin()

bool SharedSpiCard::begin ( SdSpiConfig  spiConfig)

Initialize the SD card.

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

◆ end()

void SharedSpiCard::end ( )
inline

End use of card

◆ erase()

bool SharedSpiCard::erase ( uint32_t  firstSector,
uint32_t  lastSector 
)

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.

◆ eraseSingleSectorEnable()

bool SharedSpiCard::eraseSingleSectorEnable ( )

Determine if card supports single sector erase.

Returns
true is returned if single sector erase is supported. false is returned if single sector erase is not supported.

◆ error()

void SharedSpiCard::error ( uint8_t  code)
inline

Set SD error code.

Parameters
[in]codevalue for error code.

◆ errorCode()

uint8_t SharedSpiCard::errorCode ( ) const
inline
Returns
code for the last error. See SdCardInfo.h for a list of error codes.

◆ errorData()

uint32_t SharedSpiCard::errorData ( ) const
inline
Returns
error data for last error.

◆ hasDedicatedSpi()

bool SharedSpiCard::hasDedicatedSpi ( )
inline
Returns
false for shared class.

◆ isBusy()

bool SharedSpiCard::isBusy ( )

Check for busy. MISO low indicates the card is busy.

Returns
true if busy else false.

◆ isDedicatedSpi()

bool SharedSpiCard::isDedicatedSpi ( )
inline
Returns
false, can't be in dedicated state.

◆ readCID()

bool SharedSpiCard::readCID ( cid_t cid)
inline

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.

◆ readCSD()

bool SharedSpiCard::readCSD ( csd_t *  csd)
inline

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.

◆ readData()

bool SharedSpiCard::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 SharedSpiCard::readOCR ( uint32_t *  ocr)

Read OCR register.

Parameters
[out]ocrValue of OCR register.
Returns
true for success or false for failure.

◆ readSector()

bool SharedSpiCard::readSector ( uint32_t  sector,
uint8_t *  dst 
)

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.

◆ readSectors()

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

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.

◆ readStart()

bool SharedSpiCard::readStart ( uint32_t  sector)

Start a read multiple sector sequence.

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

◆ readStatus()

bool SharedSpiCard::readStatus ( uint8_t *  status)

Return the 64 byte card status

Parameters
[out]statuslocation for 64 status bytes.
Returns
true for success or false for failure.

◆ readStop()

bool SharedSpiCard::readStop ( )

End a read multiple sectors sequence.

Returns
true for success or false for failure.

◆ sdState()

uint8_t SharedSpiCard::sdState ( )
inline
Returns
SD multi-sector read/write state

◆ sectorCount()

uint32_t SharedSpiCard::sectorCount ( )

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.

◆ setDedicatedSpi()

bool SharedSpiCard::setDedicatedSpi ( bool  value)
inline

Set SPI sharing state

Parameters
[in]valuedesired state.
Returns
false for shared card

◆ stopTransfer()

bool SharedSpiCard::stopTransfer ( )

end a mult-sector transfer.

Returns
true for success or false for failure.

◆ syncDevice()

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

◆ type()

uint8_t SharedSpiCard::type ( ) const
inline

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

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

◆ writeData()

bool SharedSpiCard::writeData ( const uint8_t *  src)

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.

◆ writeSector()

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

Write 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.

◆ writeSectors()

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

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.

◆ writeStart()

bool SharedSpiCard::writeStart ( uint32_t  sector)

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.

◆ writeStop()

bool SharedSpiCard::writeStop ( )

End a write multiple sectors sequence.

Returns
true for success or false for failure.

Member Data Documentation

◆ IDLE_STATE

const uint8_t SharedSpiCard::IDLE_STATE = 0
static

SD is in idle state

◆ READ_STATE

const uint8_t SharedSpiCard::READ_STATE = 1
static

SD is in multi-sector read state.

◆ WRITE_STATE

const uint8_t SharedSpiCard::WRITE_STATE = 2
static

SD is in multi-sector write state.


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