Zephyr > microSD (SPIモード接続) + FAT > STM32L476 > CMD0のパラメータが異なる (0x94と0x95)
4186 ワード
動作環境
Ubuntu 18.04 LTS
ボード: STM32L476 Nucleo_64 (以下、STM32L476)
ボード: STM32F769 Discovery Kit (以下、STM32F769)
Zephyr 2.1.0-rc1
microSDモジュール: CK-40 (サンハヤト)
ロジック確認: Analog Discovery 2 (AD2)
前回
状況
- STM32L476でmicroSDの処理が成功
- STM32F769でmicroSDの処理が失敗
今回
- STM32L476にてロジックを確認中
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カードを使ってみよう
- by K.I様
情報感謝です。
上記の例ではCMD0はconst char CMD0[] = {6,0x40,0x00,0x00,0x00,0x00,0x95};
のように定義されている。
Zephyrで送信するCMD0と最後の部分が異なる (0x94と0x95)。
違いはあるが、STM32L476の方の処理は成功している。
Author And Source
この問題について(Zephyr > microSD (SPIモード接続) + FAT > STM32L476 > CMD0のパラメータが異なる (0x94と0x95)), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/5ae95f2cd1ef559bfb04著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .