由于某种原因,几乎任何机器Windows/Mac/Linux上的卡都不能在我们的嵌入式板上工作。更糟糕的是,我们有相同的卡工作正常!我查看了omap_hsmmc驱动程序(内核2.6.32),并尝试了各种更改,如降低时钟速率、启用SPI模式等,但没有成功。
以下是工作卡的输出(以前的命令是相同的):
mmc0: clock 24000000Hz busmode 2 powermode 2 cs 0 Vdd 16 width 2 timing 2
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new high speed SDHC card at address 59b4
mmcblk0: mmc0:59b4 SD 7.35 GiB
mmcblk0:
mmc0: starting CMD18 arg 00000000 flags 000000b5
mmc0: blksz 512 blocks 8 flags 00000200 tsac 100 ms nsac 0
mmc0: CMD12 arg 00000000 flags 0000049d
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD18, argument 0x00000000
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 1
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 2
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD12, argument 0x00000000
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 3
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0: 4096 bytes transferred: 0
mmc0: (CMD12): 0: 00000b00 00000000 00000000 00000000
p1 p2
mmci-omap-hs mmci-omap-hs.0: mmc_fclk: disabled
mmci-omap-hs mmci-omap-hs.0: mmc_fclk: enabled
mmci-omap-hs mmci-omap-hs.0: context was not lost
mmc0: starting CMD18 arg 000234cb flags 000000b5
mmc0: blksz 512 blocks 2 flags 00000200 tsac 100 ms nsac 0
mmc0: CMD12 arg 00000000 flags 0000049d
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD18, argument 0x000234cb
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 1
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 2
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD12, argument 0x00000000
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 3那张坏卡:
mmc0: clock 24000000Hz busmode 2 powermode 2 cs 0 Vdd 16 width 2 timing 2
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new high speed SDHC card at address 59b4
mmcblk0: mmc0:59b4 SD 7.35 GiB
mmcblk0:
mmc0: starting CMD18 arg 00000000 flags 000000b5
mmc0: blksz 512 blocks 8 flags 00000200 tsac 100 ms nsac 0
mmc0: CMD12 arg 00000000 flags 0000049d
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD18, argument 0x00000000
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 1
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 208002
mmci-omap-hs mmci-omap-hs.0: MMC IRQ 0x208002 : TC ERRI DCRC
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD12, argument 0x00000000
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 3
mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
mmc0: 0 bytes transferred: -84
mmc0: (CMD12): 0: 00000b00 00000000 00000000 00000000
mmcblk0: retrying using single block read
mmc0: starting CMD17 arg 00000000 flags 000000b5
mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
mmci-omap-hs mmci-omap-hs.0: mmc0: CMD17, argument 0x00000000
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 1
mmci-omap-hs mmci-omap-hs.0: IRQ Status is 208002
mmci-omap-hs mmci-omap-hs.0: MMC IRQ 0x208002 : TC ERRI DCRC
mmc0: req done (CMD17): 0: 00000900 00000000 00000000 00000000
mmc0: 0 bytes transferred: -84看起来多块DMA传输失败(CMD18),因此驱动程序尝试单个块传输,但也失败。
我该看什么?如果还有别的事我可以试试这个司机吗?"MMC IRQ 0x208002 : TC ERRI DCRC“也是什么意思?
发布于 2014-11-24 21:35:36
问题是在4位数据模式下连接不良。
https://stackoverflow.com/questions/26678128
复制相似问题