Zephyr > microSD (SPI 모드 연결) + FAT > STM32L476 > CMD0 파라미터가 다르다 (0x94 및 0x95)
3895 단어 microSDFatFSZephyrdifference
Ubuntu 18.04 LTS
ボード: STM32L476 Nucleo_64 (以下、STM32L476)
ボード: STM32F769 Discovery Kit (以下、STM32F769)
Zephyr 2.1.0-rc1
microSDモジュール: CK-40 (サンハヤト)
ロジック確認: Analog Discovery 2 (AD2)
지난번
상황
이번에
0x40, 0x00, 0x00, 0x00, 0x00, 0x94
보내고 있습니다.
CMD0의 송신에 상당하는 것 같다.
그리고, 0x01을 수신하고 있다.
구현 처리
명령 송신은 disk_access_spi_sdhc.c의 다음 부분에서 수행되는 것으로 보입니다.
static int sdhc_spi_tx_cmd(struct sdhc_spi_data *data, u8_t cmd, u32_t payload)
{
u8_t buf[SDHC_CMD_SIZE];
LOG_DBG("cmd%d payload=%u", cmd, payload);
sdhc_spi_trace(data, 0, 0, NULL, 0);
/* Encode the command */
buf[0] = SDHC_TX | (cmd & ~SDHC_START);
sys_put_be32(payload, &buf[1]);
buf[SDHC_CMD_BODY_SIZE] = crc7_be(0, buf, SDHC_CMD_BODY_SIZE);
return sdhc_spi_tx(data, buf, sizeof(buf));
}
정보
SD 카드를 사용해 보자.
정보 감사입니다.
위의 예에서 CMD0는
const char CMD0[] = {6,0x40,0x00,0x00,0x00,0x00,0x95};
와 같이 정의됩니다.Zephyr에서 보내는 CMD0과 마지막 부분이 다르다 (0x94와 0x95).
차이는 있지만, STM32L476 쪽의 처리는 성공하고 있다.
Reference
이 문제에 관하여(Zephyr > microSD (SPI 모드 연결) + FAT > STM32L476 > CMD0 파라미터가 다르다 (0x94 및 0x95)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/5ae95f2cd1ef559bfb04텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)