Raw access to SD and SDHC flash memory cards via SPI protocol.  
 More...
#include <SdSpiCard.h>
 | 
| bool  | begin (SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings) | 
|   | 
| uint32_t  | cardSize () | 
|   | 
| bool  | erase (uint32_t firstBlock, uint32_t lastBlock) | 
|   | 
| bool  | eraseSingleBlockEnable () | 
|   | 
| void  | error (uint8_t code) | 
|   | 
| int  | errorCode () const | 
|   | 
| int  | errorData () const | 
|   | 
| bool  | isBusy () | 
|   | 
| bool  | readBlock (uint32_t lba, uint8_t *dst) | 
|   | 
| bool  | readBlocks (uint32_t lba, uint8_t *dst, size_t nb) | 
|   | 
| bool  | readCID (cid_t *cid) | 
|   | 
| bool  | readCSD (csd_t *csd) | 
|   | 
| bool  | readData (uint8_t *dst) | 
|   | 
| bool  | readOCR (uint32_t *ocr) | 
|   | 
| bool  | readStart (uint32_t blockNumber) | 
|   | 
| bool  | readStatus (uint8_t *status) | 
|   | 
| bool  | readStop () | 
|   | 
|   | SdSpiCard () | 
|   | 
| void  | spiStart () | 
|   | 
| void  | spiStop () | 
|   | 
| bool  | syncBlocks () | 
|   | 
| int  | type () const | 
|   | 
| bool  | writeBlock (uint32_t lba, const uint8_t *src) | 
|   | 
| bool  | writeBlocks (uint32_t lba, const uint8_t *src, size_t nb) | 
|   | 
| bool  | writeData (const uint8_t *src) | 
|   | 
| bool  | writeStart (uint32_t blockNumber) | 
|   | 
| bool  | writeStart (uint32_t blockNumber, uint32_t eraseCount) | 
|   | 
| bool  | writeStop () | 
|   | 
Raw access to SD and SDHC flash memory cards via SPI protocol. 
 
◆ SdSpiCard()
◆ begin()
      
        
          | bool SdSpiCard::begin  | 
          ( | 
          SdSpiDriver *  | 
          spi,  | 
        
        
           | 
           | 
          uint8_t  | 
          csPin,  | 
        
        
           | 
           | 
          SPISettings  | 
          spiSettings  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Initialize the SD card. 
- Parameters
 - 
  
    | [in] | spi | SPI driver for card.  | 
    | [in] | csPin | card chip select pin.  | 
    | [in] | spiSettings | SPI speed, mode, and bit order.  | 
  
   
- Returns
 - true for success else false. 
 
 
 
◆ cardSize()
      
        
          | uint32_t SdSpiCard::cardSize  | 
          ( | 
           | ) | 
           | 
        
      
 
Determine the size of an SD flash memory card.
- Returns
 - The number of 512 byte data blocks in the card or zero if an error occurs. 
 
 
 
◆ erase()
      
        
          | bool SdSpiCard::erase  | 
          ( | 
          uint32_t  | 
          firstBlock,  | 
        
        
           | 
           | 
          uint32_t  | 
          lastBlock  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Erase a range of blocks.
- Parameters
 - 
  
    | [in] | firstBlock | The address of the first block in the range.  | 
    | [in] | lastBlock | The address of the last block in the range. | 
  
   
- Note
 - This function requests the SD card to do a flash erase for a range of blocks. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single block erase.
 
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ eraseSingleBlockEnable()
      
        
          | bool SdSpiCard::eraseSingleBlockEnable  | 
          ( | 
           | ) | 
           | 
        
      
 
Determine if card supports single block erase.
- Returns
 - true is returned if single block erase is supported. false is returned if single block erase is not supported. 
 
 
 
◆ error()
  
  
      
        
          | void SdSpiCard::error  | 
          ( | 
          uint8_t  | 
          code | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Set SD error code. 
- Parameters
 - 
  
    | [in] | code | value for error code.  | 
  
   
 
 
◆ errorCode()
  
  
      
        
          | int SdSpiCard::errorCode  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
- Returns
 - code for the last error. See SdInfo.h for a list of error codes. 
 
 
 
◆ errorData()
  
  
      
        
          | int SdSpiCard::errorData  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
- Returns
 - error data for last error. 
 
 
 
◆ isBusy()
      
        
          | bool SdSpiCard::isBusy  | 
          ( | 
           | ) | 
           | 
        
      
 
Check for busy. MISO low indicates the card is busy.
- Returns
 - true if busy else false. 
 
 
 
◆ readBlock()
      
        
          | bool SdSpiCard::readBlock  | 
          ( | 
          uint32_t  | 
          lba,  | 
        
        
           | 
           | 
          uint8_t *  | 
          dst  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Read a 512 byte block from an SD card.
- Parameters
 - 
  
    | [in] | lba | Logical block to be read.  | 
    | [out] | dst | Pointer to the location that will receive the data.  | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ readBlocks()
      
        
          | bool SdSpiCard::readBlocks  | 
          ( | 
          uint32_t  | 
          lba,  | 
        
        
           | 
           | 
          uint8_t *  | 
          dst,  | 
        
        
           | 
           | 
          size_t  | 
          nb  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Read multiple 512 byte blocks from an SD card.
- Parameters
 - 
  
    | [in] | lba | Logical block to be read.  | 
    | [in] | nb | Number of blocks to be read.  | 
    | [out] | dst | Pointer to the location that will receive the data.  | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ readCID()
  
  
      
        
          | bool SdSpiCard::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] | cid | pointer to area for returned data. | 
  
   
- Returns
 - true for success or false for failure. 
 
 
 
◆ readCSD()
  
  
      
        
          | bool SdSpiCard::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] | csd | pointer to area for returned data. | 
  
   
- Returns
 - true for success or false for failure. 
 
 
 
◆ readData()
      
        
          | bool SdSpiCard::readData  | 
          ( | 
          uint8_t *  | 
          dst | ) | 
           | 
        
      
 
Read one data block in a multiple block read sequence
- Parameters
 - 
  
    | [out] | dst | Pointer to the location for the data to be read. | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ readOCR()
      
        
          | bool SdSpiCard::readOCR  | 
          ( | 
          uint32_t *  | 
          ocr | ) | 
           | 
        
      
 
Read OCR register.
- Parameters
 - 
  
    | [out] | ocr | Value of OCR register.  | 
  
   
- Returns
 - true for success else false. 
 
 
 
◆ readStart()
      
        
          | bool SdSpiCard::readStart  | 
          ( | 
          uint32_t  | 
          blockNumber | ) | 
           | 
        
      
 
Start a read multiple blocks sequence.
- Parameters
 - 
  
    | [in] | blockNumber | Address of first block in sequence. | 
  
   
- Note
 - This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
 
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ readStatus()
      
        
          | bool SdSpiCard::readStatus  | 
          ( | 
          uint8_t *  | 
          status | ) | 
           | 
        
      
 
Return the 64 byte card status 
- Parameters
 - 
  
    | [out] | status | location for 64 status bytes.  | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ readStop()
      
        
          | bool SdSpiCard::readStop  | 
          ( | 
           | ) | 
           | 
        
      
 
End a read multiple blocks sequence.
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ spiStart()
      
        
          | void SdSpiCard::spiStart  | 
          ( | 
           | ) | 
           | 
        
      
 
Set CS low and activate the card. 
 
 
◆ spiStop()
      
        
          | void SdSpiCard::spiStop  | 
          ( | 
           | ) | 
           | 
        
      
 
Set CS high and deactivate the card. 
 
 
◆ syncBlocks()
  
  
      
        
          | bool SdSpiCard::syncBlocks  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
- Returns
 - success if sync successful. Not for user apps. 
 
 
 
◆ type()
  
  
      
        
          | int SdSpiCard::type  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Return the card type: SD V1, SD V2 or SDHC 
- Returns
 - 0 - SD V1, 1 - SD V2, or 3 - SDHC. 
 
 
 
◆ writeBlock()
      
        
          | bool SdSpiCard::writeBlock  | 
          ( | 
          uint32_t  | 
          lba,  | 
        
        
           | 
           | 
          const uint8_t *  | 
          src  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Writes a 512 byte block to an SD card.
- Parameters
 - 
  
    | [in] | lba | Logical block to be written.  | 
    | [in] | src | Pointer to the location of the data to be written.  | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ writeBlocks()
      
        
          | bool SdSpiCard::writeBlocks  | 
          ( | 
          uint32_t  | 
          lba,  | 
        
        
           | 
           | 
          const uint8_t *  | 
          src,  | 
        
        
           | 
           | 
          size_t  | 
          nb  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Write multiple 512 byte blocks to an SD card.
- Parameters
 - 
  
    | [in] | lba | Logical block to be written.  | 
    | [in] | nb | Number of blocks to be written.  | 
    | [in] | src | Pointer to the location of the data to be written.  | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ writeData()
      
        
          | bool SdSpiCard::writeData  | 
          ( | 
          const uint8_t *  | 
          src | ) | 
           | 
        
      
 
Write one data block in a multiple block write sequence. 
- Parameters
 - 
  
    | [in] | src | Pointer to the location of the data to be written.  | 
  
   
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ writeStart() [1/2]
      
        
          | bool SdSpiCard::writeStart  | 
          ( | 
          uint32_t  | 
          blockNumber | ) | 
           | 
        
      
 
Start a write multiple blocks sequence.
- Parameters
 - 
  
    | [in] | blockNumber | Address of first block in sequence. | 
  
   
- Note
 - This function is used with writeData() and writeStop() for optimized multiple block writes.
 
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ writeStart() [2/2]
      
        
          | bool SdSpiCard::writeStart  | 
          ( | 
          uint32_t  | 
          blockNumber,  | 
        
        
           | 
           | 
          uint32_t  | 
          eraseCount  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Start a write multiple blocks sequence with pre-erase.
- Parameters
 - 
  
    | [in] | blockNumber | Address of first block in sequence.  | 
    | [in] | eraseCount | The number of blocks to be pre-erased. | 
  
   
- Note
 - This function is used with writeData() and writeStop() for optimized multiple block writes.
 
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
◆ writeStop()
      
        
          | bool SdSpiCard::writeStop  | 
          ( | 
           | ) | 
           | 
        
      
 
End a write multiple blocks sequence.
- Returns
 - The value true is returned for success and the value false is returned for failure. 
 
 
 
The documentation for this class was generated from the following files:
- Arduino/libraries/SdFat/src/SdCard/SdSpiCard.h
 
- Arduino/libraries/SdFat/src/SdCard/SdSpiCard.cpp