Taro-uALFATとALFAT SoCの違い

ALFAT SoCをご利用のお客様へ
uALFAT ChipsetとALFAT SoCの主な違いについて
本書では米GHI Electronics社製のFATコントローラIC、uALFAT Chipsetとその後継品ALFAT SoCについて、コマンド
の違いなどについて説明しています。多くのコマンドで共通点がありますが機能の追加や仕様の変更に伴いコマンドや
書式が異なる部分があります。uALFAT製品をお使いのお客様がALFAT SoC製品へお乗り換えされる場合にお役立てくだ
さい。なお、ここでは主な違いのみを挙げておりすべての違いを記載しているわけではありません。
uALFAT Chipsetのコマンド、機能
コマンドの終端 キャリッジリターン(0x0D)
ALFATの相当コマンド、機能
コマンドの終端
ラインフィード(0x0A)
但し、シリアル通信ホストから送信した各種コマンドの
終端はキャリッジリターンでも可。ALFAT SoCからの戻
り値はすべてLFで終端。
初期化コマンド
初期化コマンド
USBメモリの場合"U"コマンド、
SDカードの場合"I"コマンド。"I"コマンドに統一されています。引数にメディアの種
類をドライブ名で指定。
SDカードの場合
→
USBメモリの場合 →
M:
U0: U1:
(USBメモリは2系統使用可能)
ALFAT SoCではドライブ名が色々な使われ、ディレクト
リもフルパスで指定する場合が多い。
オープンコマンド
オープンコマンド
"O"コマンドではファイルを作成又は開くディレクトリ
の指定はドライブ名を含めたフルパスで指定。
例:SDカードのファイルを指定する場合
O 1W>M:\ABC\TEST.TXT
ファイルハンドルは0~3の4つ。
ファイルハンドルは0~Fの16個。
メディアサイズの取得"K"コマンド
メディアサイズの取得"K"コマンド
メモリメディアの空き容量と全容量を取得。
メモリメディアの空き容量だけを取得。
セクターサイズから計算。
空き容量は16進数表記で返す。
SDカード、USBカードのドライブディレクトリを引数で
指定する必要あり。
ファイル、フォルダリストの初期化
ファイル、フォルダリストの初期化
"@"コマンドによるリストの初期化は、あらかじめリストし "@"コマンドにリストの初期化をしたいディレクトリを
たいディレクトリに移動しておいてから"@"コマンドを実行 フルパスで指定する。例えばUSB0ポートに装着されたUS
する。
Bメモリーのルートディレクトリを指定したい場合は次
のように指定する。
@ U0:
省電力モード
省電力モード
"Z"コマンドで省電力モードと通信速度を指定。
"Z"モードで省電力モードに移行。通信速度の指定はな
省電力でも動作可能。
し。省電力モードは2種類で動作停止中のモードを選択。
RTCの動作モード
"T B"でRTC初期化、外部水晶発振子がクロック源。
RTCの動作モード
"T B"又は"T S"でRTC初期化
"T B"は外部水晶発振子がクロック源、バックアップ可。
"T S"は内蔵発振子と共用、バックアップ付加。
RTCの日時取得
RTCの日時取得
"G D","G T"コマンドで時間、日にちがそれぞれ取得可
能。
UART通信速度の設定
UART通信速度の設定
"B"コマンドで表から選択。
通信速度は任意の値を16進数表記で指定。但し1200の倍
数が望ましい。
ディレクトリリストの表示
ディレクトリリストの表示
"@"コマンド後は"L A"コマンドでディレクトリ一覧を表示。"@"コマンド後は"N"コマンドでディレクトリ一覧を表示
表示したいルートディレクトリに"A"コマンドで事前に移動 表示したいディレクトリは"@"コマンドで初期化した時
しておく必要がある。
に引数として指定したディレクトリになる。
"M"コマンド
"M"コマンド
ディレクトリの作成コマンド
ファイルハンドル間のデータコピーコマンド
ファイルやフォルダの削除
ファイルやフォルダの削除
"D"コマンドがファイル削除。
"D"コマンドだけでファイルとフォルダの削除が可能。
"E"コマンドがフォルダ削除。
"E"コマンドはメディアテストコマンド。
"E"コマンド
"E"コマンド
フォルダの削除。
メモリーメディアのテスト。
"P"コマンドによるカレントカーソル位置の指定
"P"コマンドによるカレントカーソル位置の指定
Rモード及びAモードで開いたファイルに対して指定可能。
Rモードで開いたファイルに対して指定可能。
Aモードでのシークは不可。
"A"コマンド
"A"コマンド
カレントディレクトリの変更。
ファイル名(フォルダ名)のリネーム。
■SDカードにファイルを新規作成し、10バイトのデータを書き込んだ後、読み出す場合の操作例の違い
※uALFATではコマンドの終端はCR(0x0D)ですが、ALFAT SoCではLF(0x0A)です。下記の例は省略しています。
※チップからの戻り値(ACK等)は省略しています。実際にはACKを待ってから次のコマンドを実行します。
※ACKは両デバイスも"!00"で同じです。
uALFAT Chipsetでの操作例
ALFAT SoCでの操作例
I
I M:
O 1W>TEXT.TXT
O 1W>M:\TEST.TXT
W 1>A
W 1>A
0123456789
0123456789
C 1
C 1
O 1R>TEST.TXT
O 1R>M:\TEST.TXT
R 1Z>A
R 1Z>A
0123456789
C 1
0123456789
C 1
■エラーコードについて
エラーコードはuALFATとALFAT SoCでは全く異なっています。エラーへの対応は変更する必要があります。下表はALF
AT SoCのエラーコード一覧です。
エラーコード
エラーの内容
01
理解できないコマンドです
02
引数が不正です
03
動作及び操作に失敗しました
04
ファイル、フォルダリストが最後に到達
10
メディアが初期化されていません
11
初期化に失敗しました
20
ファイル、フォルダが存在しません
21
ファイルオープンに失敗しました
22
シークはRモードで開いたファイルのみ可能です
23
シークサイズの上限はファイルサイズまでです
24
ファイル名は0にできません
25
ファイル名に不正な文字が含まれています
26
ファイル、フォルダ名はすでに存在しています
30
不正なハンドルです
31
ハンドルソースを開けません
32
ハンドルの指定先が開けません
33
ハンドルソースはRモードでのオープンを要求します
34
ハンドルソースはWモード又はAモードでのオープン
を要求します
35
空きハンドルはこれ以上ありません
36
ハンドルを開けません
37
ハンドルはすでに使用されています
38
オープンファイルモードが不正です
39
ハンドルはWモード又はAモードを要求しています
3A
ハンドルはRモードを要求しています
40
システムはビジーです
41
このコマンドはSPI通信の時のみサポートされます
FF
ブートローダインディケーションコード