トップページ 組込みソフト PICマイコン PICの開発環境 MikroC Pro for PIC

SDカードの読み書き                        2010/5/21更新
 相変わらず不信感が払拭できないMikro Cですがライブラリは豊富なようです。感じているPICの最大の弱点はRAMが少ないということです。H8のようにDRAMを接続することはできません。
たとえばADコンバータで入力したデータを保存する場合など、通信をしてパソコンに投げることが考えられます。しかし、通信速度の限界があります。Mikro Cのヘルプを見るとSDカードが使えるように書かれています。それならやってみようということになりました。
使う関数は少なくてすむ!
カードが未挿入などのエラーは省略。必要な関数のみを書きます。

SDカード、マルチメディアカードの初期化
SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV64, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_LOW_2_HIGH);
Mmc_Init();
(Mmc_Fat_Init() ;
{

ファイルの読み込み
Mmc_Fat_Assign(g_szReadFileName, 0x00);
Mmc_Fat_Reset(&size);
sizeにファイルの大きさを取得します。

for(i = 0; i < size; i++)
{
  Mmc_Fat_Read(&g_chSDdata);
  g_szTextBuf[i] = g_chSDdata;
}
Mmc_Fat_Read()でファイルから1バイト読み込んで配列に書き込みます。
配列にファイルのデータが読み込まれます。

ファイルへ書き込み
Mmc_Fat_Assign(g_szWriteFileName, 0xA0);
Mmc_Fat_Rewrite();
Mmc_Fat_Write(g_szTextBuf, size);

これだけです。
結論として
制約があります。SDカードはFAT16の形式で2MB2GBまでです。
メモリの大容量化が早く進行しています。2MB2GBのカードが入手困難にならなければいいのですが....
PC4550などではSDカードのインターフェースはRS232CとRC7がバッティングしています。SDカードとRS232Cを使うときはPICの選定に注意してください。

これでいろいろな応用ができます。
たとえば温度センサーのデータを記録する。
音声データをSDカードに入れてPICのPWMで音をだす。
・・・・・・