关于SDIO初始化的旁路模式有点问题

2019-07-20 11:46发布

SD卡的SDIO初始化时,原子的程序默认是设置成 不使能旁路模式,SDIO_CK的的时钟为SDIOCLK/(2+CLKDIV),我用的是SDHC卡,程序中CLKDIV设置为0,SDIOCLK固定为48Mhz,即,SDIO_CK=24Mhz
我改成使能旁路模式(并把程序中相应设置CLKDIV,即设置SDIO->CLKCR的程序注释),SDIO_CK的时钟就是直接由SDIOCLK提供,理论就是SDIO_CK=48Mhz

我读图片时检测发现,旁路模式使能和不使能区别不大,是有提速,但是理论不应该是快一倍的吗?涉及到的设置还有哪些吗?

我改的部分就是以下语句而已,
SD_Error SD_PowerON(void)函数中:
    SDIO_InitStructure.SDIO_ClockBypass = SDIO_ClockBypass_Enable;

SD_Error SD_Init(void)函数中(注释):
//                if(SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1||SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0)
//                {
//                        clkdiv=SDIO_TRANSFER_CLK_DIV+2;        //V1.1/V2.0卡,设置最高48/4=12Mhz
//                }else clkdiv=SDIO_TRANSFER_CLK_DIV;        //SDHC等其他卡,设置最高48/2=24Mhz
//                SDIO_Clock_Set(clkdiv);        //设置时钟频率,SDIO时钟公式:SDIO_CK时钟=SDIOCLK/[clkdiv+2];其中,SDIOCLK固定为48Mhz






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。