当前位置:首页 > 单片机 > 单片机
[导读]花了几天写了SD卡裸机驱动,现在还不完善,只支持4G以内的卡,以后再加上;现在经过修改可以写入数据了,亲测没问题.S3C6410_SDIO.C#include"s3c6410_system.h"#include"s3c6410_sdio.h"////////////////////////////////

花了几天写了SD卡裸机驱动,现在还不完善,只支持4G以内的卡,以后再加上;现在经过修改可以写入数据了,亲测没问题.


S3C6410_SDIO.C


#include"s3c6410_system.h"

#include"s3c6410_sdio.h"

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//配置

//块大小寄存器(0通道)BLKSIZE0

#defineBLKSIZE0_BLKSIZE0x0200//块大小为512字节

//传输模式寄存器(0通道)TRNMOD0

#defineTRNMOD0_CCSCON0//正常模式

#defineTRNMOD0_MUL1SIN0(0<<5)//默认为单区段操作模式

#defineTRNMOD0_RD1WT0(1<<4)//默认为读操作模式

#defineTRNMOD0_ENACMD12(0<<2)//自动CMD12禁止,多区段操作完成后主机自动发出停止命令

#defineTRNMOD0_ENBLKCNT(0<<1)//块计数器无效

#defineTRNMOD0_ENDMA(0<<0)//DMA无效

//主机控制寄存器(0通道)HOSTCTL0

#defineHOSTCTL0_WIDE8(0<<5)//这个为宽度被位1指定(数据传输宽度)

#defineHOSTCTL0_DMASEL(0<<3)//SDMA

#defineHOSTCTL0_OUTEDGEINV(0<<2)//时钟上升沿沿数据有效//这个寄存器有歧义,不知道到底是干啥用的

#defineHOSTCTL0_WIDE4(0<<4)//数据传输宽度。1BIT模式

//电源控制寄存器(0通道)PWRCON0

#definePWRCON0_SELPWRLVL(7<<1)//3.3V电源模式

#definePWRCON0_PWRON(1<<0)//电源打开

//容限寄存器(0通道)CAPAREG0

#defineCAPAREG0_V18(1<<26)//电压支持1.8V

#defineCAPAREG0_V30(0<<25)//电压不支持3v

#defineCAPAREG0_V33(1<<24)//电压支持3.3V

#defineCAPAREG0_SUSRES(1<<23)//支持暂停/恢复操作

#defineCAPAREG0_DMA(1<<22)//支持DMA

#defineCAPAREG0_HSPD(1<<21)//支持高速模式

#defineCAPAREG0_ADMA2(0<<19)//不支持DMA2

#defineCAPAREG0_MAXBLKLEN(0<<16)//最大块大小为512B

#defineCAPAREG0_BASECLK(25<<8)//SD基础始终25MHz

#defineCAPAREG0_TOUTUNIT(0<<7)//超时时钟单位KHZ

#defineCAPAREG0_TOUTCLK(10<<0)//超时时钟频率为10KHZ

//最大电流容限寄存器(0通道)MAXCURR0

#defineMAXCURR0_MAXCURR18(10<<16)//对于1.8V,最大电流为40MA

#defineMAXCURR0_MAXCURR30(10<<8)//对于3.0V,最大电流为40MA

#defineMAXCURR0_MAXCURR33(10<<0)//对于3.3V,最大电流为40MA

//控制寄存器2CONTROL2_0

#defineCONTROL2_0_ENSTAASYNCCLR(0<<31)//该位可以使正常和错误中断的异步明确启用状态位

#defineCONTROL2_0_ENCMDCNFMSK(0<<30)//不屏蔽指令冲突

#defineCONTROL2_0_CDINVRXD3(0<<29)//卡检测信号倒置对于RX_DAT[3]。禁止

#defineCONTROL2_0_SELCARDOUT(0<<28)//卡移除条件是“无卡插入”状态。

#defineCONTROL2_0_FLTCLKSEL(8<<24)//滤波器时钟(iFLTCLK)选择。

#defineCONTROL2_0_ENFBCLKTX(0<<15)//反馈时钟禁止,对于发送数据时钟

#defineCONTROL2_0_ENFBCLKRX(0<<14)//反馈时钟禁止,对于接收数据时钟

#defineCONTROL2_0_SDCDSEL(0<<13)//nSDCD用于SD卡检测信号

#defineCONTROL2_0_SDSIGPC(0<<12)//同步控制输出有效信号

#defineCONTROL2_0_ENBUSYCHKTXSTART(0<<11)//发送数据启动状态前忙碌状态检测。

#defineCONTROL2_0_DFCNT(0<<9)//反跳滤波器计数16iSDCLK

#defineCONTROL2_0_ENCLKOUTHOLD(1<<8)//SDCLK操作有效。

#defineCONTROL2_0_RWAITMODE(0<<7)//主机控制器释放读等待状态(自动)

#defineCONTROL2_0_DISBUFRD(0<<6)//正常模式,用0x20寄存器使用者可以读缓冲区(FIFO)数据

//HCLK=128MHZEPLL=24MHZ

#defineCONTROL2_0_SELBASECLK(2<<4)//基础时钟源选择。00或01=HCLK,10=EPLL输出时钟(来自系统)11=外部时钟源(XTI或XEXTCLk)

#defineCONTROL2_0_PWRSYNC(0<<3)//不同步,控制输入有效信号(指令,数据)

#defineCONTROL2_0_ENCLKOUTMSKCON(0<<1)//当卡插入被清除时,SDCLK输出时钟屏蔽。当处于无卡状态时,设置该区域为高位来停止SDCLK。

#defineCONTROL2_0_HWINITFIN(1<<0)//SD主机控制器硬件初始化完成。

//时钟控制寄存器(0通道)CLKCON0

#defineCLKCON0_SELFREQ(0x80<<8)//SDCLK频率最低

#defineCLKCON0_ENSDCLK(1<<2)//SD时钟启动。

#defineCLKCON0_ENINTCLK(1<<0)//中断时钟启动。

//超时控制寄存器(0通道)TIMEOUTCON0

/*******************************************************************************

*FunctionName:SDIO_DeInit

* Description : Dein

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭