找回密码
 注册
搜索
查看: 894|回复: 3

[讨论] 请教SD card的驱动代码,望大虾赐教

[复制链接]
发表于 2010-8-5 15:44:32 | 显示全部楼层 |阅读模式

  1. #define SD_SPI_CLK_PIN                gpio_fm_i2c_scl_pin//gpio18
  2. #define SD_SPI_DIN_PIN                gpio_fm_i2c_sda_pin//gpio19
  3. #define SD_SPI_DOUT_PIN                gpio_double_sim_switch_pin//gpio17
  4. #define SD_SPI_CS_PIN                 gpio_sim_eint_pin//gpio15


  5. /*GPIO 22 18*/
  6. //#define SD_SPI_CLK_OFFSET                 0x10                 //(SD_SPI_CLK_PIN>>4)<<4
  7. #define SD_SPI_CLK_SHIFT                0x4         //0x40                //1<<(SD_SPI_CLK_PIN-SD_SPI_CLK_OFFSET<<4)
  8. #define SD_SPI_CLK_ADDR_S                0x801200D4        //GPIO_DOUT1_SET+SD_SPI_CLK_OFFSET
  9. #define SD_SPI_CLK_ADDR_C                0X801200D8        //GPIO_DOUT1_CLR+SD_SPI_CLK_OFFSET

  10. /*GPIO 42 17*/
  11. //#define SD_SPI_DATA_OFFSET             0x20                //(SD_SPI_DIN_PIN>>4)<<4
  12. #define SD_SPI_DATA_SHIFT                0x2        //0x400                //1<<(SD_SPI_DIN_PIN-SD_SPI_DATA_OFFSET<<4)
  13. #define SD_SPI_DATA_ADDR_S            0x801200D4 //0x801200E4        //GPIO_DOUT1_SET+SD_SPI_DATA_OFFSET
  14. #define SD_SPI_DATA_ADDR_C            0X801200D8 //0X801200E8        //GPIO_DOUT1_CLR+SD_SPI_DATA_OFFSET

  15. /*GPIO 43 19*/
  16. //#define SD_SPI_READ_OFFSET            0x20                //(SD_SPI_DOUT_PIN>>4)<<4
  17. #define SD_SPI_READ_MASK                0x8    //0x800                //1<<(SD_SPI_DOUT_PIN-SD_SPI_READ_OFFSET<<4)
  18. #define SD_SPI_READ_ADDR                0x80120110   //0x80120120        //GPIO_DIN1+SD_SPI_READ_OFFSET

  19. #define SD_SET_CLK_HIGH                DRV_WriteReg(SD_SPI_CLK_ADDR_S,SD_SPI_CLK_SHIFT)
  20. #define SD_SET_CLK_LOW                DRV_WriteReg(SD_SPI_CLK_ADDR_C,SD_SPI_CLK_SHIFT)
  21. #define SD_SET_DATA_HIGH         DRV_WriteReg(SD_SPI_DATA_ADDR_S,SD_SPI_DATA_SHIFT)
  22. #define SD_SET_DATA_LOW                DRV_WriteReg(SD_SPI_DATA_ADDR_C,SD_SPI_DATA_SHIFT)
  23. #define SD_GET_DATA()                ((DRV_Reg(SD_SPI_READ_ADDR) &SD_SPI_READ_MASK) ? 1 : 0)
复制代码


这段代码到底怎么理解,是否为GPIO口模式传输数据用的,其中的SD_SPI_DATA_ADDR_S;SD_SPI_DATA_ADDR_C是什么用的?还有对应的0X801200D8在datasheet中找到的并不是gpio17而是gpio20??莫名了。请高手讲解一下,拜谢了!!!
 楼主| 发表于 2010-8-6 09:33:27 | 显示全部楼层
速度很慢,双T卡,gpio口部够用。没办法
点评回复

使用道具 举报

发表于 2010-8-5 22:10:42 | 显示全部楼层
IO口模拟的SDIO接口啊,速度能到多少?
点评回复

使用道具 举报

发表于 2010-8-5 20:16:14 | 显示全部楼层
SD_SPI_DATA_ADDR_S :gpio脚置1
SD_SPI_DATA_ADDR_C:gpio脚清0
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-25 01:26 , Processed in 0.048125 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表