Raw access to SD and SDHC flash memory cards via SPI protocol.
More...
#include <SdSpiCard.h>
|
bool | begin (m_spi_t *spi, uint8_t chipSelectPin=SS, uint8_t sckDivisor=SPI_FULL_SPEED) |
|
uint32_t | cardSize () |
|
void | chipSelectHigh () |
|
void | chipSelectLow () |
|
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 block, uint8_t *dst) |
|
bool | readBlocks (uint32_t block, uint8_t *dst, size_t count) |
|
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 | readStop () |
|
uint8_t | sckDivisor () |
|
| SdSpiCard () |
|
bool | selected () |
|
int | type () const |
|
bool | writeBlock (uint32_t blockNumber, const uint8_t *src) |
|
bool | writeBlocks (uint32_t block, const uint8_t *src, size_t count) |
|
bool | writeData (const uint8_t *src) |
|
bool | writeStart (uint32_t blockNumber, uint32_t eraseCount) |
|
bool | writeStop () |
|
Raw access to SD and SDHC flash memory cards via SPI protocol.
bool SdSpiCard::begin |
( |
m_spi_t * |
spi, |
|
|
uint8_t |
chipSelectPin = SS , |
|
|
uint8_t |
sckDivisor = SPI_FULL_SPEED |
|
) |
| |
Initialize the SD card.
- Parameters
-
[in] | spi | SPI object. |
[in] | chipSelectPin | SD chip select pin. |
[in] | sckDivisor | SPI clock divisor. |
- Returns
- true for success else false.
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.
void SdSpiCard::chipSelectHigh |
( |
| ) |
|
Set the SD chip select pin high, send a dummy byte, and call SPI endTransaction.
This function should only be called by programs doing raw I/O to the SD.
void SdSpiCard::chipSelectLow |
( |
| ) |
|
Set the SD chip select pin low and call SPI beginTransaction.
This function should only be called by programs doing raw I/O to the SD.
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.
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.
void SdSpiCard::error |
( |
uint8_t |
code | ) |
|
|
inline |
Set SD error code.
- Parameters
-
[in] | code | value for error code. |
int SdSpiCard::errorCode |
( |
| ) |
const |
|
inline |
- Returns
- code for the last error. See SdSpiCard.h for a list of error codes.
int SdSpiCard::errorData |
( |
| ) |
const |
|
inline |
- Returns
- error data for last error.
bool SdSpiCard::isBusy |
( |
| ) |
|
Check for busy. MISO low indicates the card is busy.
- Returns
- true if busy else false.
bool SdSpiCard::readBlock |
( |
uint32_t |
block, |
|
|
uint8_t * |
dst |
|
) |
| |
Read a 512 byte block from an SD card.
- Parameters
-
[in] | block | 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.
bool SdSpiCard::readBlocks |
( |
uint32_t |
block, |
|
|
uint8_t * |
dst, |
|
|
size_t |
count |
|
) |
| |
Read multiple 512 byte blocks from an SD card.
- Parameters
-
[in] | block | Logical block to be read. |
[in] | count | 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.
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.
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.
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.
bool SdSpiCard::readOCR |
( |
uint32_t * |
ocr | ) |
|
Read OCR register.
- Parameters
-
[out] | ocr | Value of OCR register. |
- Returns
- true for success else false.
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.
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.
uint8_t SdSpiCard::sckDivisor |
( |
| ) |
|
|
inline |
Return SCK divisor.
- Returns
- Requested SCK divisor.
bool SdSpiCard::selected |
( |
| ) |
|
|
inline |
- Returns
- the SD chip select status, true if slected else false.
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.
bool SdSpiCard::writeBlock |
( |
uint32_t |
blockNumber, |
|
|
const uint8_t * |
src |
|
) |
| |
Writes a 512 byte block to an SD card.
- Parameters
-
[in] | blockNumber | 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.
bool SdSpiCard::writeBlocks |
( |
uint32_t |
block, |
|
|
const uint8_t * |
src, |
|
|
size_t |
count |
|
) |
| |
Write multiple 512 byte blocks to an SD card.
- Parameters
-
[in] | block | Logical block to be written. |
[in] | count | 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.
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.
bool SdSpiCard::writeStart |
( |
uint32_t |
blockNumber, |
|
|
uint32_t |
eraseCount |
|
) |
| |
Start a write multiple blocks sequence.
- 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.
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/SdSpiCard/SdSpiCard.h
- Arduino/libraries/SdFat/src/SdSpiCard/SdSpiCard.cpp