Hi, all,
I now used sdio/mmc2 through an external transiver without direction control. the tranciver we used is txs0108, which is a bidirectional voltage-level tranciver. but now, the sd/mmc2 could not work, I can't detect the sd disk. My question is: is there any problem using txs0108, or I must use special traciver which has direction control ?
In addition, the voltage level are normal. and I can dectect the card insertion and removal. beleow is the debug info, it seems that the data crc goes wrong
SDHC slot 1 card insertionIsWriteProtected(59): NO.CardDetectInterrupt: Card inserted!SendCommand (Cmd=0x00000005, Arg=0x00000000, RespType=0x00000005, Data=0x0) startsSendCommand (Cmd=0x00000005, Arg=0x00000000, RespType=0x00000005, Data=0x0) startsSendCommand (Cmd=0x00000005, Arg=0x00000000, RespType=0x00000005, Data=0x0) startsSendCommand (Cmd=0x00000005, Arg=0x00000000, RespType=0x00000005, Data=0x0) startsSendCommand (Cmd=0x00000000, Arg=0x00000000, RespType=0x00000000, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000001, Arg=0x00f80000, RespType=0x00000004, Data=0x0) startsSendCommand (Cmd=0x00000001, Arg=0x00f80000, RespType=0x00000004, Data=0x0) startsSendCommand (Cmd=0x00000001, Arg=0x00f80000, RespType=0x00000004, Data=0x0) startsSendCommand (Cmd=0x00000001, Arg=0x00f80000, RespType=0x00000004, Data=0x0) startsSendCommand (Cmd=0x00000037, Arg=0x00000000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [3720014000]SendCommand (Cmd=0x00000029, Arg=0x00000000, RespType=0x00000004, Data=0x0) startsGetCmdResponse returned [3f0080ff00]SendCommand (Cmd=0x00000000, Arg=0x00000000, RespType=0x00000000, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000008, Arg=0x0000015a, RespType=0x00000008, Data=0x0) startsSendCommand (Cmd=0x00000037, Arg=0x00000000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [3720014000]SendCommand (Cmd=0x00000029, Arg=0x00020000, RespType=0x00000004, Data=0x0) startsGetCmdResponse returned [3f0080ff00]SendCommand (Cmd=0x00000037, Arg=0x00000000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [3720010000]SendCommand (Cmd=0x00000029, Arg=0x00020000, RespType=0x00000004, Data=0x0) startsGetCmdResponse returned [3f0080ff80]SendCommand (Cmd=0x00000002, Arg=0x00000000, RespType=0x00000003, Data=0x0) startsGetCmdResponse returned [cf76009d 2361dd10 20202044 534d531b]SendCommand (Cmd=0x00000003, Arg=0x00000000, RespType=0x00000007, Data=0x0) startsGetCmdResponse returned [03000568b3]SendCommand (Cmd=0x00000009, Arg=0xb3680000, RespType=0x00000003, Data=0x0) startsGetCmdResponse returned [69008096 bfffb72d cf835a5f 32002f00]SendCommand (Cmd=0x0000000D, Arg=0xb3680000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [0d00070000]SendCommand (Cmd=0x00000007, Arg=0xb3680000, RespType=0x00000002, Data=0x0) startsGetCmdResponse returned [0700070000]SendCommand (Cmd=0x00000037, Arg=0xb3680000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [3720090000]SendCommand (Cmd=0x00000033, Arg=0x00000000, RespType=0x00000001, Data=0x1 <1x8>) startsGetCmdResponse returned [3320090000]SendCommand (Cmd=0x00000037, Arg=0xb3680000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [3720090000]SendCommand (Cmd=0x0000002A, Arg=0x00000000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [2a20090000]IsWriteProtected(59): NO.SendCommand (Cmd=0x00000037, Arg=0xb3680000, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [3720090000]SendCommand (Cmd=0x00000006, Arg=0x00000002, RespType=0x00000001, Data=0x0) startsSendCommand (Cmd=0x00000010, Arg=0x00000200, RespType=0x00000001, Data=0x0) startsGetCmdResponse returned [1000090000]SendCommand (Cmd=0x00000011, Arg=0x00000000, RespType=0x00000001, Data=0x1 <1x512>) startsGetCmdResponse returned [1100090000]CSDIOControllerBase::SDIPollingReceive(ERROR:00208001)SendCommand (Cmd=0x00000011, Arg=0x00000000, RespType=0x00000001, Data=0x1 <1x512>) startsGetCmdResponse returned [1100090000]CSDIOControllerBase::SDIPollingReceive(ERROR:00208001)
It looks like you are getting command responses from your card so at least the CMD line is working.
This buffer is OK as long as you don't want to support "High speed" cards. It is is only rated to ~22MHZ not the 54MHZ needed for the high speed stuff.
Looks like you also got at least some data packes ... I would suspect setup or software.
I find that the MMC cards works well, while the sd memory card does not. when the clkin connected to the mmc_clk, some sd cards work! but it does not apply to all kinds of sd cards, just a few. I don't why.