This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP-L138是否支持SDHC(SD2.0)?

Other Parts Discussed in Thread: OMAP-L138

在datasheet和e2e论坛里面都有看到说OMAP-L138 V2.0版本的芯片可以支持SD2.0,也就是说可以支持>2G的卡,文档看了半天也没看明白!

如果支持的SDHC的话,请问寄存器设置和SD1.1有何不同?

我在自己的板子上试过小于2G的卡存取都是正常的,插上超过2G的看读写不正常。

有谁可以教我?

  • 已经解决了,物理层是支持的,改驱动就可以了,有兴趣的去看SDv2.0的手册

  • 楼主你好,我最近也在做omap138的sd卡驱动,有些问题想问你?能否留个qq我们方便联系啊,急急急,谢谢了!

  • 我的qq是2539844816,急急急!

  • 我现在也碰到这个问题,2G以下的卡都OK的,2G以上的卡读写就会出现IOerror错误。大侠,能不能给指点指点,谢谢

    mmcblk0: error -84 transferring data, sector 69120, nr 128, card status 0x900
    end_request: I/O error, dev mmcblk0, sector 69204
    Buffer I/O error on device mmcblk0, logical block 8650
    lost page write due to I/O error on mmcblk0
    end_request: I/O error, dev mmcblk0, sector 69208
    Buffer I/O error on device mmcblk0, logical block 8651
    lost page write due to I/O error on mmcblk0
    end_request: I/O error, dev mmcblk0, sector 69216
    Buffer I/O error on device mmcblk0, logical block 8652
    lost page write due to I/O error on mmcblk0
    end_request: I/O error, dev mmcblk0, sector 69224
    Buffer I/O error on device mmcblk0, logical block 8653
    lost page write due to I/O error on mmcblk0
    end_request: I/O error, dev mmcblk0, sector 69232
    Buffer I/O error on device mmcblk0, logical block 8654
    lost page write due to I/O error on mmcblk0
    end_request: I/O error, dev mmcblk0, sector 69240
    Buffer I/O error on device mmcblk0, logical block 8655
    lost page write due to I/O error on mmcblk0

  • freescale提供的解决方法见https://community.freescale.com/thread/277327
    我的imx53的板子上是将linux-2.6.35.3\arch\arm\mach-mx5\mx53_loco.c中

    .max_clk = 50000000,改成.max_clk = 40000000,即:

    static struct mxc_mmc_platform_data mmc3_data = {
        .ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29 | MMC_VDD_29_30
            | MMC_VDD_31_32,
        .caps = MMC_CAP_4_BIT_DATA,
        //.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
        .min_clk = 400000,
        //.max_clk = 50000000,
        .max_clk = 40000000,
        .card_inserted_state = 1,
        .status = sdhc_get_card_det_status,
        .wp_status = 0, /*don't have pin, disable protect*///sdhc_write_protect,
        .clock_mmc = "esdhc_clk",
    };