sdconfig.h
上传用户:pudewen666
上传日期:2007-06-08
资源大小:75k
文件大小:5k
源码类别:

微处理器开发

开发平台:

Windows_Unix

  1. /****************************************Copyright (c)**************************************************
  2. **                               Guangzhou ZLG-MCU Development Co.,LTD.
  3. **                                      graduate school
  4. **                                 http://www.zlgmcu.com
  5. **
  6. **--------------File Info-------------------------------------------------------------------------------
  7. ** File name: sdconfig.h
  8. ** Last modified Date: 2005-1-6
  9. ** Last Version: V1.0
  10. ** Descriptions: sd 卡驱动软件包: 配置文件
  11. ** Soft Packet of SD Card Driver: configuration header file
  12. **
  13. **------------------------------------------------------------------------------------------------------
  14. ** Created by: Ming Yuan Zheng
  15. ** Created date: 2005-1-6
  16. ** Version: V1.0
  17. ** Descriptions: The original version
  18. **
  19. **------------------------------------------------------------------------------------------------------
  20. ** Modified by:
  21. ** Modified date:
  22. ** Version:
  23. ** Descriptions:
  24. **
  25. **------------------------------------------------------------------------------------------------------
  26. ** Modified by: 
  27. ** Modified date:
  28. ** Version:
  29. ** Descriptions: 
  30. **
  31. ********************************************************************************************************/
  32. typedef unsigned char  INT8U;                   /* 无符号8位整型变量                        */
  33. typedef signed   char  INT8;                    /* 有符号8位整型变量                        */
  34. typedef unsigned short INT16U;                  /* 无符号16位整型变量                       */
  35. typedef signed   short INT16;                   /* 有符号16位整型变量                       */
  36. typedef unsigned int   INT32U;                  /* 无符号32位整型变量                       */
  37. typedef signed   int   INT32;                   /* 有符号32位整型变量                       */
  38. typedef float          FP32;                    /* 单精度浮点数(32位长度)                 */
  39. typedef double         FP64;                    /* 双精度浮点数(64位长度)                 */
  40. /* 设置数据传输时是否使用CRC */
  41. #define SD_CRC_EN     1
  42. #define SPI_CLOCK 5529600 /* 正常通信时,SPI时钟频率 frequency (Hz) */
  43. #define SD_BLOCKSIZE  512 /* SD卡块的长度 */
  44. #define SD_BLOCKSIZE_NBITS 9  
  45. /* 下面函数不常用,如果用户不需要,可置为 0 裁剪指定函数 */
  46. #define SD_ReadMultiBlock_EN    0 /* 是否使能读多块函数 */
  47. #define SD_WriteMultiBlock_EN   0 /* 是否使能写多块函数 */
  48. #define SD_EraseBlock_EN 1 /* 是否使能擦卡函数 */
  49. #define SD_ProgramCSD_EN    0 /* 是否使能写CSD寄存器函数 */
  50. #define SD_ReadCID_EN     0 /* 是否使能读CID寄存器函数 */
  51. #define SD_ReadSD_Status_EN 0 /* 是否使能读SD_Status寄存器函数 */
  52. #define SD_ReadSCR_EN 0 /* 是否使能读SCR寄存器函数 */
  53. /* 下面为SD卡使用的硬件条件配置,用户可根据实际需要修改 */
  54. /* SCK引脚 */
  55. #define  SPI_SCK (0x01 << 4)
  56. #define  SPI_SCK_GPIO() PINSEL0 &= ~(0x03 << 8) /* 设置 SCK 口为GPIO口 */
  57. #define  SPI_SCK_OUT() IODIR |= SPI_SCK /* 设置 SCK 口为输出口 */
  58. #define  SPI_SCK_CLR() IOCLR = SPI_SCK /* 置 SCK 为低电平 */
  59. /* MISO 引脚 */
  60. #define  SPI_MISO (0x01 << 5)
  61. #define  SPI_MISO_GPIO() PINSEL0 &= ~(0x03 << 10) /* 设置 MISO 口为GPIO口 */
  62. #define  SPI_MISO_OUT() IODIR |= SPI_MISO /* 设置 MISO 口为输出口 */
  63. #define  SPI_MISO_CLR() IOCLR = SPI_MISO /* 置 MISO 为低电平 */
  64. /* MOSI 引脚 */
  65. #define  SPI_MOSI (0x01 << 6)
  66. #define  SPI_MOSI_GPIO() PINSEL0 &= ~(0x03 << 12) /* 设置 MOSI 口为GPIO口 */
  67. #define  SPI_MOSI_OUT() IODIR |= SPI_MOSI /* 设置 MOSI 口为输出口 */
  68. #define  SPI_MOSI_CLR() IOCLR = SPI_MOSI /* 置 MISO 为低电平 */
  69. /* CS 引脚 */
  70. #define  SPI_CS       (0x01 << 8)                
  71. #define  SPI_CS_GPIO() PINSEL0 &= ~(0x03 << 16)   /* 设置 CS 口为GPIO口 */
  72. #define  SPI_CS_OUT() IODIR |= SPI_CS;   /* 设置 CS 口为输出口 */
  73. #define  SPI_CS_SET() IOSET |= SPI_CS; /* 置 CS 为高电平 */
  74. #define  SPI_CS_CLR() IOCLR |= SPI_CS; /* 置 CS 为低电平 */
  75. /* 初始化 IO 口为SPI接口 */
  76. #define  SPI_INIT() PINSEL0 &= ~((0x03 << 8) + (0x03 << 10) + (0x03 << 12)); 
  77. PINSEL0 |= (0x01 << 8) + (0x01 << 10) + (0x01 << 12);
  78. /* 电源控制引脚 */
  79. #define  SD_POWER (0x01 << 9)
  80. #define  SD_POWER_GPIO() PINSEL0 &= ~(0x03 << 18) /* 设置 POWER 口为GPIO口 */
  81. #define  SD_POWER_OUT() IODIR |= SD_POWER /* 设置 POWER 口为输出口 */
  82. #define  SD_POWER_OFF() IOSET = SD_POWER /* 置 POWER 为高电平 */
  83. #define  SD_POWER_ON() IOCLR = SD_POWER /* 置 POWER 为低电平 */
  84. /* 卡完全插入卡座检测引脚 */
  85. #define  SD_INSERT (0x01 << 10)
  86. #define  SD_INSERT_GPIO() PINSEL0 &= ~(0x03 << 20) /* 设置 INSERT 口为GPIO口 */
  87. #define  SD_INSERT_IN() IODIR &= ~SD_INSERT /* 设置 INSERT 口为输出口 */
  88. #define  SD_INSERT_STATUS()   (IOPIN & SD_INSERT) /* 读取 INSERT 口的状态 */
  89. /* 卡写保护检测引脚 */
  90. #define  SD_WP (0x01 << 11)
  91. #define  SD_WP_GPIO() PINSEL0 &= ~(0x03 << 22) /* 设置 INSERT 口为GPIO口 */
  92. #define  SD_WP_IN() IODIR &= ~SD_WP /* 设置 INSERT 口为输出口 */
  93. #define  SD_WP_STATUS()   (IOPIN & SD_WP) /* 读取 INSERT 口的状态 */