下面方法是6253平台整理的, 应该使用其它平台
1.调整t卡驱动的电流
In MSDC_custom.c, please modify MSDC_ODC_16MA to MSDC_ODC_12MA, MSDC_ODC_8MA, and MSDC_ODC_4MA seperately, and try again
2.降低t卡的频率
(1)确认DRV_MSDC_CLK_SEARCH 宏是打开的
(2)修改kal_bool SD_tuneCLK2() 红色部分代码
{
kal_uint32 maxSpeed;
kal_uint32 testing1stClk, testing2ndClk, testingCLk;
kal_uint32 testTimes;
//testing1stClk = MSDC_CLOCK/2;
testing1stClk = MSDC_CLOCK/4;
3.修改void MSDC_Initialize(void)内的函数,把t卡数据线上的上拉电阻加大,红色部分是修改的
void MSDC_Initialize(void)
{
。。。。。。。。
BitFieldWrite32((kal_uint32*)MSDC_CFG,(kal_uint32)2,MSDC_CFG_PRCFG0);
//BitFieldWrite32((kal_uint32*)MSDC_CFG,(kal_uint32)2,MSDC_CFG_PRCFG1);
//BitFieldWrite32((kal_uint32*)MSDC_CFG,(kal_uint32)2,MSDC_CFG_PRCFG2);
BitFieldWrite32((kal_uint32*)MSDC_CFG,(kal_uint32)3,MSDC_CFG_PRCFG1);
BitFieldWrite32((kal_uint32*)MSDC_CFG,(kal_uint32)3,MSDC_CFG_PRCFG2);
。。。。。。。
}
4. 在sd_drv.c文件中包含DRV_LSD宏在该宏内LSD_SINGLE_READ
Mtk原来是使用的多bank读写方式,目前尝试使用single bank的方式来测试
注:DRV_LSD 原来是不定义的
注:上面的1,2,3三步可以按顺序来调整看是否可以解决问题,第四步调整是看问题是否是数据线受干扰导致的,一般不建议使用
另:抓log的方法
Please provide Catcher log, filter please turn on: MOD_FMT: all calsses on; MOD_MSDC_HISR, all classes on. Thank you!