0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zephyr > microSD (SPIモード接続) + FAT > STM32L476 > CMD0のパラメータが異なる (0x94と0x95)

Last updated at Posted at 2019-12-25
動作環境
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にてロジックを確認中

Screenshot from 2019-12-25 23-29-14.png

0x40, 0x00, 0x00, 0x00, 0x00, 0x94
を送信している。
CMD0の送信に相当するようだ。

そして、0x01を受信している。

実装処理

コマンド送信はdisk_access_spi_sdhc.cの以下の部分で行っているようである。

.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));
}

情報

情報感謝です。

上記の例ではCMD0はconst char CMD0[] = {6,0x40,0x00,0x00,0x00,0x00,0x95};のように定義されている。

Zephyrで送信するCMD0と最後の部分が異なる (0x94と0x95)。

違いはあるが、STM32L476の方の処理は成功している。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?