?? sd.h
字號:
/******************************************************************************
*
* (c) copyright Freescale Semiconductor 2008
* ALL RIGHTS RESERVED
*
* File Name: SD.h
*
* Description: Header File for SD using SPI Driver
*
* Assembler: Codewarrior for HC(S)08 V6.1
*
* Version: 1.0
*
* Author: Jose Ruiz (SSE Americas)
*
* Location: Guadalajara,Mexico
*
*
* UPDATED HISTORY:
*
* REV YYYY.MM.DD AUTHOR DESCRIPTION OF CHANGE
* --- ---------- ------ ---------------------
* 1.0 2008.02.18 Jose Ruiz Initial version
*
******************************************************************************/
/* Freescale is not obligated to provide any support, upgrades or new */
/* releases of the Software. Freescale may make changes to the Software at */
/* any time, without any obligation to notify or provide updated versions of */
/* the Software to you. Freescale expressly disclaims any warranty for the */
/* Software. The Software is provided as is, without warranty of any kind, */
/* either express or implied, including, without limitation, the implied */
/* warranties of merchantability, fitness for a particular purpose, or */
/* non-infringement. You assume the entire risk arising out of the use or */
/* performance of the Software, or any systems you design using the software */
/* (if any). Nothing may be construed as a warranty or representation by */
/* Freescale that the Software or any derivative work developed with or */
/* incorporating the Software will be free from infringement of the */
/* intellectual property rights of third parties. In no event will Freescale */
/* be liable, whether in contract, tort, or otherwise, for any incidental, */
/* special, indirect, consequential or punitive damages, including, but not */
/* limited to, damages for any loss of use, loss of time, inconvenience, */
/* commercial loss, or lost profits, savings, or revenues to the full extent */
/* such may be disclaimed by law. The Software is not fault tolerant and is */
/* not designed, manufactured or intended by Freescale for incorporation */
/* into products intended for use or resale in on-line control equipment in */
/* hazardous, dangerous to life or potentially life-threatening environments */
/* requiring fail-safe performance, such as in the operation of nuclear */
/* facilities, aircraft navigation or communication systems, air traffic */
/* control, direct life support machines or weapons systems, in which the */
/* failure of products could lead directly to death, personal injury or */
/* severe physical or environmental damage (High Risk Activities). You */
/* specifically represent and warrant that you will not use the Software or */
/* any derivative work of the Software for High Risk Activities. */
/* Freescale and the Freescale logos are registered trademarks of Freescale */
/* Semiconductor Inc. */
/*****************************************************************************/
#ifndef __SD__
#define __SD__
/* Includes */
#include "FslTypes.h"
/************************* HIL ****************************/
/**********************************************************/
/* Includes */
#include "SPI.h" // SPI Driver
/* HIL */
#define InitSPI SPI_Init
#define ReadSPIByte SPI_Receive_byte
#define WriteSPIByte SPI_Send_byte
#define HighSpeedSPI SPI_High_rate
/**********************************************************/
/**********************************************************/
/* User definitions */
#define SD_BLOCK_512
#define SD_WAIT_CYCLES 10
/* SD card Inserted detection Pin */
#define SD_PRESENT PTBD_PTBD7
#define _SD_PRESENT PTBDD_PTBDD7
/* Error Codes */
enum
{
OK,
COMMAND_FAILS,
INIT_FAILS,
WRITE_COMMAND_FAILS,
WRITE_DATA_FAILS,
READ_COMMAND_FAILS,
READ_DATA_FAILS,
NO_SD_CARD
};
/* Status */
enum
{
SD_OK,
SD_IDLE
};
/* TypeDefs */
typedef union
{
UINT8 bytes[4];
UINT32 lword;
}T32_8;
/* Stardar Definitions */
#ifdef SD_BLOCK_512
#define SD_BLOCK_SIZE (0x00000200)
#define SD_BLOCK_SHIFT (9)
#define BLOCK_SIZE 512
#endif
/* Static Definitions */
/******************************* SD Card Standard Commands **********************************/
enum{
SD_CMD0, /* Resets the SD Memory Card */
SD_CMD1, /* Sends host capacity support information and activates the card's
initialization process. HCS is effective when card receives SEND_IF_COND
command. Reserved bits shall be set to '0'. */
SD_CMD2,
SD_CMD3,
SD_CMD4,
SD_CMD5,
SD_CMD6, /* Checks switchable function (mode 0) and switches card function (mode 1).*/
SD_CMD7,
SD_CMD8, /* Sends SD Memory Card interface condition that includes host supply voltage
information and asks the accessed card whether card can operate in supplied
voltage range. Reserved bits shall be set to '0'.*/
SD_CMD9, /* Asks the selected card to send its cardspecific data (CSD)*/
SD_CMD10, /* Asks the selected card to send its card identification (CID) */
SD_CMD11,
SD_CMD12, /* Forces the card to stop transmission in Multiple Block Read Operation */
SD_CMD13, /* Asks the selected card to send its status register. */
SD_CMD14,
SD_CMD15,
SD_CMD16, /* Sets a block length (in bytes) for all following block commands (read and
write) of a Standard Capacity Card. Block length of the read and write
commands are fixed to 512 bytes in a High Capacity Card. The length of
LOCK_UNLOCK command is set by this command in both capacity cards.*/
SD_CMD17, /* Reads a block of the size selected by the SET_BLOCKLEN command.*/
SD_CMD18, /* Continuously transfers data blocks from card to host until interrupted by a
STOP_TRANSMISSION command.*/
SD_CMD19,
SD_CMD20,
SD_CMD21,
SD_CMD22,
SD_CMD23,
SD_CMD24, /* Writes a block of the size selected by the SET_BLOCKLEN command. */
SD_CMD25, /* Continuously writes blocks of data until 扴top Tran
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -