PICで気圧、温度、湿度計 by 24FJ64GA004 SDカードに記録する その5
FAT16ファイルシステムを狙い撃ちする実験 3
準備が必要です!

何度も繰り返しますが、今回のSDメモリーカードへの読み書きの方法は、FATファイルシステム用の巨大なAPIを使う訳ではありませんから、それなりの準備が必要です。いきなりPICでSDメモリーカードに何かを書き込んで、それをパソコン上の「メモ帳」等のテキストエディタで確かめる事は出来ないのです。

まず、
1. 今回のPIC24FJ64GA004を使った実験装置と相性の良いSDメモリーカードが必要です。
また、
2. 「0書き消去」が出来る「SDメモリ用フォーマッターソフト」と、
3. SDメモリーカードの中身を16進ダンプで読み出して確認する事のできる「ディスクエディター」、
4. 10進-16進電卓ソフトウエア
をそろえておく必要があります。


◎1. 相性の良いSDカード:本システムで読み書き可能である事が確認された、現行品のSDメモリーカードは、以下の4製品です。

2011年8月15日現在、「浅草ギ研」さんが公開しているサンプルプログラムを私が独自に修正し、SDHDを除く殆ど全てのSDカードを読み書きできる様になりました。


Transcend社製の 2GB SDメモリーカード 「TS2GSDC」
:通販のAmazon
http://www.amazon.co.jp/
送料無料の@609円(Jan. the 31th 2011調べ)


Transcend社製の 1GB microSDメモリーカード 「TS1GUSD」(SD &mniSD アダプター付属)
:通販 販売マルツパーツ館WebShopホームページ
http://www.marutsu.co.jp/
送料別@720円(Mar. the 26th 2011調べ)

:通販の上州問屋
http://www.donya.jp/
で@470円+メール便210円(Jan. the 31th 2011調べ)


Transcend社製の 2GB microSDメモリーカード 「TS2GUSD-2」(SD &mniSD アダプター付属)
:通販のAmazon
http://www.amazon.co.jp/
送料無料の@1,151円(Apr. the 16th 2011調べ)


GreenHouse社製の 2GB SDメモリーカード 「GH-SDC2GG」。
マルツ電波の店頭で@980円でした。

倫理的には、SDHC以外の2GB以下のFAT16でフォーマット可能なSDメモリーで、標準的な速度の物(×何倍速の物以外)であれば全く問題ありません。

KingStone社の2GBSDカードも問題無く読み書きできます。

また、私の手持ちの秋月電子通商さんの100円 8MB SDカードも、Victor社の128MB、Panasonic社のminiSD 8MBをSDメモリーアダプタ付き等、ちっと前の物や2GB以下容量の物など、2011年8月15日現在ではすべて読み書きできました。

もしも、新規にSDメモリーカードを購入するのであれば、通販のAmazonや、同じく通販の上州問屋等で@700円以下で手に入れる事が出来る比較的安価なTranscend社製の 2GB SDメモリーカード 「TS2GSDC」 等をお進めいたします。特に指定はいたしません。

※手持ちのSDカードが相性が良いのかどうか確かめるには、この後で紹介する簡易読み書き実験サンプルソフトウエアをPICで走らせれば良いのですが、始めからうまくいかなかった場合には、ハード配線に不備があるのかが判断が出来ません。

 これらも問題なく読み書きできました。

◎2. 物理セクタ全てを00書きで全消去できるフォーマッター:SDフォーマッター2.0(◎無償)
http://panasonic.jp/support/sd_w/download/sd_formatter20.html

SDメモリーの内容を「0」で全消去してから使わないと、ファイルをパソコンで消去しても、ファイルの管理上で存在しなくなっただけで、ファイルのデータは、上書きされてしまわない限り全て残っているので、SDメモリー内を検索する時に旧デーダの残骸を検索してしまって訳が分からなくなってしまいます。

また、連続した空きクラスタが確保できなくて、FAT内のクラスタリンク先が飛んでしまう場合があります。今回はFATファイリングシステムを使用しないで、クラスタリングが連続していると仮定してファイルにアクセスしているので、過去に使用した事のあるSDカードは、必ず一度全消去をする必要があるのです。

なお、2GB SDメモリーカードを完全消去(「0」で物理セクタ全体を消去してからフォーマットする)と、約10分の時間がかかります。


◎3. SDメモリーカード等の物理セクタを読み出し、その内容や、バイトアドレスを知る事が出来るディスクダンプエディター
:ディスクダンプエディター V1.43(Vector:●有償、シェアウエア 価格: 2,730円(税・手数料込))
http://www.vector.co.jp/soft/win95/util/se091045.html

Windows 2000/XP/Vistaでブロックデバイス(SCSIハードディスク等)のデータをGUI上で編集するダンプツールです。

用途
・ディスクやCD-ROMの生データを直接参照したい場合
・ディスクに直接データを書き込むプログラムを作成する場合の確認用
・一部不都合なデータを直接修正したい時
・ディスクやCD-ROMの生データをファイル化したい時
・バイナリファイルのデータを直接指定のセクタに書き込みたい時

注意
・Windows NT4では別途ASPIが必要です。
・Windows 2000/XP/Vistaではアドミニストレータ権限をもつユーザーで動作させる必要があります。
 アドミニストレータ権限のユーザーでない場合は、別途ASPIが必要です。

※(重要)これがないと、PIC側でFATファイルシステム用のAPIを使用していないので、SDメモリーカード内で何が起きているのかさっぱり分かりません。そして、最も肝心な先頭ファイルの開始バイトアドレスを調べる事が出来ないのです。今回の一連の実験を行う為にはどうしても必要です。無償の代替えソフトがあれば良いのですが・・・


◎4. 16進-10進変換が簡単にできる電卓アプリケーション:C電卓(Vector:無償)
http://www.vector.co.jp/magazine/softnews/070301/n0703013.html

2/10/16進数の同時表示や、ビットのON/OFF指定による入力が可能なプログラマ向け電卓ソフト
■Windows XP/Me/2000/98  ■フリーソフト

SDデータメモリー上で、先頭ファイルの開始アドレスを16進数で知る事が出来ても、PIC24F用C30ソースファイル中ではこれを、long型の10進整数で現さなければブロックリード、ブロックライトのコマンドを使う事が出来ません。しかも変換するもとの16進数は、0x00048E00と云った32ビットの16進数なのです。これはいちいち計算するのはとても面倒です。また、もしアドレスを間違えれば、SDデータメモリー内のデータ構造そのものがメチャメチャになってしまう恐れがあります。

以上が、これから紹介するの一連のSDカードのPICによる読み書き用サンプルソフトウエアを使う場合に必要なものです。
(Feb. the 10th 2011)


注意事項
General disclaimer
トッ プページへ

なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで