LoginSignup
0
0

More than 5 years have passed since last update.

MSC-MOD20 > 空き容量確認コマンド > 3行の応答がある > 後ろ2行は連続している / 終端は0x0A

Last updated at Posted at 2016-10-01
動作確認
ESP8266 (気圧計で使用したユニバーサル基板: I2Cを4.7kでプルアップ)
SDモジュール: MSC-MOD20 ( http://www.microtechnica-shop.jp/shopdetail/000000000026/ )
Analog Discovery 2 (以下AD2)

MSC-MOD20にはmicroSDの空き容量を確認するコマンドがある。
コマンドは「K M:」。

マニュアル記載の応答文字列

その応答は「MSC-MOD20ユーザガイド」を見ると以下のようになっている。

!00
$ssssssssssssssss
!00
  • 1つ目はコマンドを受けたことに対するACK
  • 2つ目は空き容量 (sに数値が入る)
  • 3つ目は空き容量取得後のACK

読取りしてみた

上記の応答に対して、以下のような実装をした。

  • 0x00(応答なし)が返るまでの読取りをする
  • その処理を3回繰返した

読取りの結果が以下。
「1:5」という記載は1つ目で5文字までの文字を読取っていることを示す。

1:5,!00
2:27,$000000006E170000
!00

!00

3:0,

(補足 > 2:27,の表示の後に単独で!00が表示されているのはメモリ割当てが少ないために生じているバグだった。)

2回目の読取りでは3回目の!00まで読取ってしまっている。

応答文字列(+補足)

!00
$ssssssssssssssss
!00

応答は上記であるが、以下の補足事項が分かった。

  1. 1行目は終端(0x00)で切れる
  2. 2行目は終端(0x00)で切れず、即座に3行目が送信される

このような応答に合わせた実装にしないといけない。

Analog Discovery2でキャプチャ

2行目の終端は0x0Aなのか0x0Dなのか。
「MSC-MOD20ユーザガイド」のp8に以下の記載がある。

戻り値の終端はキャリッジリターン(0x0D)ではなく、ラインフィード(0x0A)なのでご注意ください。

Analog Discovery2でキャプチャした。
setup: http://qiita.com/7of9/items/1c40de42ab2647918140

http://qiita.com/7of9/items/81b3948715751b8347ca
に記載の方法で0x0Aでロジック取込みを止めるようにした。

qiita.png

赤枠右側は3行目の!00 (h21, h30, h30)なので、2行目の終端は0x0Aで判断できることを確認した。

アスキーコード一覧
http://www9.plala.or.jp/sgwr-t/c_sub/ascii.html

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