PICで気圧、温度、湿度計 by 24FJ64GA004 SDカードに記録する その6
FAT16ファイルシステムを狙い撃ちする実験 4
ついに観測データをSDカードへ書込む

先ずは、SDメモリーカードの一番先頭(物理セクタ0)に、5バイト分(バイトアドレスの0x00000000〜0x00000004、物理セクタ0の0x00〜0x04)にASCII文字コードで Hello と書いてみる実験です。

下記リンクより、24FJ64GA004用サンプルプロジェクト一式をダウンロードして下さい。

※注意事項!
●このサンプルソフトウエアの実行によって、実験に使用するSDメモリーカード内のFATファイルシステムが書き換えられる事により、SDメモリーカードの再フォーマットが必要になる場合があります。
重要なデーターの入ったSDメモリーカードは、この実験に決して使用しないでください。

● SDメモリーカードには寿命があり、長期間使用すると書き込みや消去などができなくなる場合があります。
● SDメモリーカードが不良品の場合、正常に動作しない場合があります。
● SDメモリーカードのデータ消滅による損害については、当方は一切の責任を負いかねます。

●本実験装置の誤操作や、ハードウエア、ソフトウエアの不具合など、何らかの原因でSDメモリーカード内のデータ消去破損した場合、いかなる場合においてもSDメモリーカード内の記録内容の補修または補償については致しかねますのでご了承ください。

 
2464004sd05.zip 2464004sd06.zip 2464004sd10.zip
(現在、最新バージョンは、2464004sd10.zipです。SDHDを除く殆ど全てのSDカードを読み書きできます。Aug. the 15th 2011
 

なお、このソースプログラムは、
Windows XP Pro v2002 SP3上で、
現時点において最新で無償の、

MPLAB-IDE v8.76、
MPLAB C30 C Compiler [pic30-gcc.exe] v3.30
にてコンパイルしています。

今回のプロジェクトファイルでは、MPLAB C30 のご利用のバージョンに合ったライブラリーを正しくリンクさせる為に、その都度MicroChipのディレクトリー内のファイルをリンクさせてください。配布用のサンプルプロジェクト内にはそのライブラリーの実体が含まれていません。

また、単純にインクルード宣言をするだけでは正しくライブラリーを参照する事が出来無い場合があります。

◎まず、PIC24FJ64GA004用の
C:¥Program Files¥Microhip¥mplabc30¥v3.30¥lib¥PIC24F¥libpPIC24Fxxx-coff.a
を、プロジェクトファイルのLibrary Files に登録してください。

◎また、プロジェクトファイルのLinker Scriptに、
C:¥Program Files¥Microhip¥mplabc30¥v3.305¥support¥PIC24F¥gld¥p24FJ64GA004.gld
を登録してください。

この2つが正しく登録されていていない場合には、
本サンプルソフトウエアを正しくコンパルが出来ない場合があります。

なお、現在 HI-TECH C は、残念ながらPIC24F には対応していません。このプロジェクトファイルは MPLAB C30 用です。

◎プログラムのPICへの書込みは、秋月電子通商の「AKI−PIC2プログラマボード(PICkit2互換)」を使っています。MPLAB IDE 環境から直接AKI−PIC2プログラマボードを通じてICSP接続にて書込みと、オンラインデバッグをしています。もちろんMicrochip社の純正PICki2でも同様に書込みと、オンラインでバッグが可能です。

◎このサンプルソフトウエアは、有限会社 浅草ギ研:http://www.robotsfx.com/  さんの、
20)microSDカードの読み書き/SPI に掲載されている自社のマイコンボード「dsPICマイコンボードA33F」用サンプルソフトウエアを、私がPIC24FJ64GA004用に移植し、変更を加えたものです。

◎プログラムの構成方法やデータ型宣言用の共通ファイル等は、パレットソフトさんの方式を利用し、ソースリストのデバッグや、再利用がしやすい様にしています。

◎ノキア5110表示用のライブラリー部分は、CQ出版の「トランジスタ技術2006年3月号」に掲載された、
R8C/15付録マイコン基板活用企画 
第9回 小型グラフィック液晶表示器で作る簡易温度計 山本 秀樹氏 
のR8C/15用ソフトウエアをHI-TECH C Compiler用に移植し、さらに MPLAB C30 C Compiler用に移植して再利用したものです。

 

※本来は、ここに、このサンプルソフトウエアの実行方法を書くべきですが、今回のサンプルソフトウエアは使用しているMCU(PIC)の種類とハードウエア、コンフィグレーション部分や、ファイルの構成の仕方、LCD表示を行っている点を除けば、基本的にやっている事は元の「浅草ギ研」さんのソフトウエアと全て同じです。

結果的に掲載内容が全く同じになってしまいますので、今回は説明を割愛いたします。本家の「浅草ギ研」さんの記事をご参照下さい。紹介されている実行デバッグ方法もほぼ同じです。

浅草ギ研:http://www.robotsfx.com/
20)microSDカードの読み書き/SPI

 
このサンプルソフトウエアは、下記ハードウエア上で動作する様にプログラミングされています。
 
 

上記ハードウエアは、Air3-24GSにSDメモリーカードインターフェースを追加設計したAir3-24GSDの回路であり、気圧(温度センサー内蔵)センサーユニット:AE-SCP1000-D01、湿度センサーユニット:SHT-11、シリアル信号レベル変換器、内部カレンダー機能用外部発振子:32.768kHz等、今回の基礎実験に関して全く使用していない部品が多く含まれています。

本機は、「FAT16ファイルシステムでフォーマットされた2GBまでの標準速度のSDメモリーカード」には基本的に全て対応しています。
それ以外の、SDHCメモリーカードを含むSDメモリーカードは使用できません。

  
 等
Transcend社製の 2GB SDメモリーカード 「TS2GSDC」、同じくTranscend社製の 1GB microSDメモリーカード 「TS1GUSD」(SD &mniSD アダプター付属)、GreenHouse社の 2GB SDメモリーカード 「GH-SDC2GG」等が使用可能である事が確かめられている推奨品であり、ハードウエアの配線等によっては100%の動作の補償をするものではありません。

SDHDを除く殆どの標準スピードのSDカードであれば読み書きできる様です。いずれにしても基本的には実験用ハードウエアの制作者本人の責任の元に実験を行って下さい。(Aug. the 15th 2011)

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

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