EMMC 읽기/쓰기 문제가 발생했습니다. Omap35x에 EMMC 드라이버를 쓰려고합니다. emmc 카드와 omap을 모두 초기화하면 카드가 tran 상태가됩니다. 내 읽기 및 쓰기 명령은 결코 성공하지 못합니다. 여기에 내가 무엇을했는지 있습니다 :Omap 35x Emmc 읽기/쓰기 문제
- CMD0 보내기 (MMCHS_CMD = 0x00000000의 MMCHS_ARG = 0xf0f0f0f0)
- 바쁜 전송 CMD1 (MMCHS_CMD = 0x01020000 MMCHS_ARG = 0x40FF8080)
- CMD2을 (보내기 MMCHS_CMD = 0x02090000 MMCHS_ARG = 동안 을 0x00000000)
- CMD3 (MMCHS_CMD = 0x031a0000 MMCHS_ARG = 0x00010000) 응답을 보내기 = 0x500 행선지 주
- m_regs-> MMCHS_CON & = ~ 0x00000001;
- 보내기 CMD9 (MMCHS_CMD = 0x009090000 MMCHS_ARG = 0x00010000)
- 보내기 CMD13 확인 상태 (MMCHS_CMD = 0x0D1a0000 MMCHS_ARG = 0x00010000) 응답 = 0x700
- CMD7 보내기 (MMCHS_CMD = 0x071a0000 MMCHS_ARG = 0x00010000) 응답 = 0x700
- CMD13 상태를 확인하십시오. (MMCHS_CMD = 0x0D1a0000 MMCHS_ARG = 0x0D1a0000) CMD16을 전송하십시오 (MMCHS_CMD = 0x03a0000 MMCHS_ARG = 0x00000200). 0x00010000) 응답 = 0x900
위의 단계를 수행 한 후 명령 CMD24 (MMCHS_CMD = 0x182A0002 MMCHS_ARG = 0x00000001 및 MMCHS_BLK = 0x00000200)를 보내려고했지만 Omap이 MMCHS_STAT_BWR을 성공적으로 입력 한 다음 512 바이트 데이터를 보냈습니다. 오실로스코프를 사용하여 데이터 라인을 통해 전송되는 데이터를 관찰 할 수 있지만 TC/DTO를 폴링 할 때 MMU_STAT에서 0x108111을 수신하여 데이터 시간 초과를 나타냅니다. 명령에 대한 응답 0x900을 수신 할 수 있습니다.
읽으려면 CMD17 (MMCHS_CMD = 0x112A0012 MMCHS_ARG = 0x00000001 및 MMCHS_BLK = 0x00000200)을 보냅니다. 나는 또한 명령에 대한 응답 0x900을받을 수있다. Omap은 MMCHS_STAT_BRR을 성공적으로 입력하지만 데이터 회선을 통해 전송되는 데이터는 관찰 할 수 없었습니다.
내가 수행 한 단계에서 문제가 있거나 작동하도록하는 예가 있으면 알려주십시오.