diff options
author | Fede85 <f.vanzati@gmail.com> | 2013-07-03 22:00:02 +0200 |
---|---|---|
committer | Fede85 <f.vanzati@gmail.com> | 2013-07-03 22:00:02 +0200 |
commit | fd8c367304fe62a107332db19880c88f9ac0d082 (patch) | |
tree | a6a2713b1e788a2eb6f95ef701a0a01e0d258c67 /libraries/Robot_Control/SdCard.h | |
parent | cb3003082e7e140850071eba914c0b4347bc3bf1 (diff) |
SPI library to the new format and moved Robot_Motor and Robot_Control libraries
Diffstat (limited to 'libraries/Robot_Control/SdCard.h')
-rw-r--r-- | libraries/Robot_Control/SdCard.h | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/libraries/Robot_Control/SdCard.h b/libraries/Robot_Control/SdCard.h deleted file mode 100644 index c03e6ab..0000000 --- a/libraries/Robot_Control/SdCard.h +++ /dev/null @@ -1,192 +0,0 @@ -/* Arduino FAT16 Library - * Copyright (C) 2008 by William Greiman - * - * This file is part of the Arduino FAT16 Library - * - * This Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with the Arduino Fat16 Library. If not, see - * <http://www.gnu.org/licenses/>. - */ -#ifndef SdCard_h -#define SdCard_h - /** - * \file - * SdCard class - */ -#include <SdInfo.h> -//------------------------------------------------------------------------------ -// Warning only SD_CHIP_SELECT_PIN, the SD card select pin, may be redefined. -// define hardware SPI pins -#if defined(__AVR_ATmega168__)\ -||defined(__AVR_ATmega168P__)\ -||defined(__AVR_ATmega328P__) -// 168 and 328 Arduinos -/** Slave Select pin */ -uint8_t const SPI_SS_PIN = 10; -/** Master Out Slave In pin */ -uint8_t const SPI_MOSI_PIN = 11; -/** Master In Slave Out pin */ -uint8_t const SPI_MISO_PIN = 12; -/** Serial Clock */ -uint8_t const SPI_SCK_PIN = 13; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega1280__)\ -|| defined(__AVR_ATmega2560__) -// pins for Arduino Mega -uint8_t const SPI_SS_PIN = 53; -uint8_t const SPI_MOSI_PIN = 51; -uint8_t const SPI_MISO_PIN = 50; -uint8_t const SPI_SCK_PIN = 52; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega644P__)\ -|| defined(__AVR_ATmega644__)\ -|| defined(__AVR_ATmega1284P__) -// pins for Sanguino -uint8_t const SPI_SS_PIN = 4; -uint8_t const SPI_MOSI_PIN = 5; -uint8_t const SPI_MISO_PIN = 6; -uint8_t const SPI_SCK_PIN = 7; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega32U4__) -// pins for Teensy 2.0 -uint8_t const SPI_SS_PIN = 8; -uint8_t const SPI_MOSI_PIN = 16; -uint8_t const SPI_MISO_PIN = 14; -uint8_t const SPI_SCK_PIN = 15; -//------------------------------------------------------------------------------ -#elif defined(__AVR_AT90USB646__)\ -|| defined(__AVR_AT90USB1286__) -// pins for Teensy++ 1.0 & 2.0 -uint8_t const SPI_SS_PIN = 20; -uint8_t const SPI_MOSI_PIN = 22; -uint8_t const SPI_MISO_PIN = 23; -uint8_t const SPI_SCK_PIN = 21; -//------------------------------------------------------------------------------ -#else // SPI pins -#error unknown CPU -#endif // SPI pins -//------------------------------------------------------------------------------ -/** - * SD Chip Select pin - * - * Warning if this pin is redefined the hardware SS pin will be enabled - * as an output by init(). An avr processor will not function as an SPI - * master unless SS is set to output mode. - * - * For example to set SD_CHIP_SELECT_PIN to 8 for the SparkFun microSD shield: - * uint8_t const SD_CHIP_SELECT_PIN = 8; - * - * The default chip select pin for the SD card is SS. - */ -uint8_t const SD_CHIP_SELECT_PIN = SPI_SS_PIN; -//------------------------------------------------------------------------------ -/** command timeout ms */ -uint16_t const SD_COMMAND_TIMEOUT = 300; -/** init timeout ms */ -uint16_t const SD_INIT_TIMEOUT = 2000; -/** read timeout ms */ -uint16_t const SD_READ_TIMEOUT = 300; -/** write timeout ms */ -uint16_t const SD_WRITE_TIMEOUT = 600; -//------------------------------------------------------------------------------ -// error codes -/** Card did not go into SPI mode */ -uint8_t const SD_ERROR_CMD0 = 1; -/** Card did not go ready */ -uint8_t const SD_ERROR_ACMD41 = 2; -/** Write command not accepted */ -uint8_t const SD_ERROR_CMD24 = 3; -/** Read command not accepted */ -uint8_t const SD_ERROR_CMD17 = 4; -/** timeout waiting for read data */ -uint8_t const SD_ERROR_READ_TIMEOUT = 5; -/** write error occurred */ -uint8_t const SD_ERROR_WRITE_RESPONSE = 6; -/** timeout waiting for write status */ -uint8_t const SD_ERROR_WRITE_TIMEOUT = 7; -/** attempt to write block zero */ -uint8_t const SD_ERROR_BLOCK_ZERO_WRITE = 8; -/** card returned an error to a CMD13 status check after a write */ -uint8_t const SD_ERROR_WRITE_PROGRAMMING = 9; -/** invalid SPI speed in init() call */ -uint8_t const SD_ERROR_SPI_SPEED = 10; -//------------------------------------------------------------------------------ -// SD command codes -/** SEND OPERATING CONDITIONS */ -uint8_t const ACMD41 = 0X29; -/** GO_IDLE_STATE - init card in spi mode if CS low */ -uint8_t const CMD0 = 0X00; -/** SEND_CSD - Card Specific Data */ -uint8_t const CMD9 = 0X09; -/** SEND_CID - Card IDentification */ -uint8_t const CMD10 = 0X0A; -/** SEND_STATUS - read the card status register */ -uint8_t const CMD13 = 0X0D; -/** READ_BLOCK */ -uint8_t const CMD17 = 0X11; -/** WRITE_BLOCK */ -uint8_t const CMD24 = 0X18; -/** APP_CMD - escape for application specific command */ -uint8_t const CMD55 = 0X37; -//------------------------------------------------------------------------------ -/** - * \class SdCard - * \brief Hardware access class for SD flash cards - * - * Supports raw access to a standard SD flash memory card. - * - */ -class SdCard { - public: - /** Code for a SD error. See SdCard.h for definitions. */ - uint8_t errorCode; - /** Data that may be helpful in determining the cause of an error */ - uint8_t errorData; - uint32_t cardSize(void); - /** - * Initialize an SD flash memory card with default clock rate and chip - * select pin. See SdCard::init(uint8_t sckRateID, uint8_t chipSelectPin). - */ - uint8_t init(void) { - return init(0, SD_CHIP_SELECT_PIN); - } - /** - * Initialize an SD flash memory card with the selected SPI clock rate - * and the default SD chip select pin. - * See SdCard::init(uint8_t slow, uint8_t chipSelectPin). - */ - uint8_t init(uint8_t speed) { - return init(speed, SD_CHIP_SELECT_PIN); - } - uint8_t init(uint8_t speed, uint8_t chipselectPin); - uint8_t readBlock(uint32_t block, uint8_t* dst); - /** Read the CID register which contains info about the card. - * This includes Manufacturer ID, OEM ID, product name, version, - * serial number, and manufacturing date. */ - uint8_t readCID(cid_t* cid) { - return readReg(CMD10, cid); - } - uint8_t writeBlock(uint32_t block, const uint8_t* src); - private: - uint8_t cardAcmd(uint8_t cmd, uint32_t arg); - uint8_t cardCommand(uint8_t cmd, uint32_t arg); - uint8_t chipSelectPin_; - uint8_t speed_; - void chipSelectHigh(void); - void chipSelectLow(void); - void error(uint8_t code, uint8_t data); - void error(uint8_t code); - uint8_t readReg(uint8_t cmd, void* buf); - uint8_t readTransfer(uint8_t* dst, uint16_t count); -}; -#endif // SdCard_h |