t卡兼容性解决方法

来源:互联网 发布:子曰二三子以我为隐乎 编辑:程序博客网 时间:2024/05/22 13:47

 

下面方法是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!

原创粉丝点击