マイクロテクニカ MSC-MOD10をI2Cでアクセスする例
 
 マイクロテクニカ マイクロSDカードアクセスモジュール MSC-MOD10の使用例を記す。
販売先:
 http://www.microtechnica.net/
 
GHI ELECTRONICS(チップメーカー):
  http://www.ghielectronics.com/
 
 この使用例ではマイクロチップ社のPIC18F452というマイコンを中心にアナログ4点、デジタル4点の入力状態をマイクロSDカードに記録するシステム構築する。
 その中でも注意すべき点について記す。
 

<回路> 
回路図→ ここをクリック
・電源はMSC-MOD10へ3.3V。それ以外は5Vの電源を用意する。
 5V電源については三端子レギュレーター7805。3.3V電源については317で生成する。
・CN3はPICマイコンのインサーキットデバッガICD2を接続する。最近はICD3が発売になりICD2は安くなったようだ。
・VREFはA/D用の基準電圧2.5Vを生成する。
・CN3の1~4ピン目はアナログ入力。5~8ピン目はデジタル入力。
・MSC-MOD10へはI2Cにてアクセスする。I2C_SCL、I2C_SDAは5V電源でプルアップ。
・UART_TX,UART_RXはDATA_RDY、BUSY信号となる。トランジスタを用いてレベルシフトをしている。
 トランジスタを介さず直結しても動作はする、オシロで眺めると不安定な動きなのでレベルシフトしている。
・CN4はシリアル出力。パソコンに接続してリアルタイムでデータの入力を確認する。
 
回路実装例
 

<ソフトウェア>
基本シーケンス
(1)オープニングメッセージの受信
(2)ファイルシステムの初期化
 
(1)オープニングメッセージの受信

{CR}
 GHI Electronics, LLC{CR}
----------------------{CR}
Boot Loader 2.03{CR}
uALFAT(TM) 2.16{CR}
!00{CR}
(留意点)
・I2Cにおいても行末にはキャリッジリターンが挿入される。
・Gの前にはスペースがひとつ入る。
・全てアスキーコード。
 
(2)ファイルシステムの初期化
SDカードにアクセスする前に「I」コマンドによりファイルシステムの初期化を行う。
(留意点)
・このコマンドを送信しないとSDカードへアクセスできない。
・このコマンドはSDカードのフォーマットではないことに注意。
 

「V」コマンドの例
 
void SD_V_Command(void) {
 static char SD_Buffer[25];
 auto char Count = 0;
 auto short ErrorFlag = FALSE;
/* send 'V' command */
    i2c_start();
    i2c_write(0xA4+0x00);
    i2c_write('V');            /* V command */
    i2c_write(0x0D);        /* return code */
    i2c_stop();
    delay_ms(50);
 
/* wait DATA_RDY = HI */
    while(1) {
        if (DATA_RDY == 1) {
            break;
        }
  }
  
/* read version */
 while(DATA_RDY) {
   i2c_start();
   i2c_write(0xA4+0x01);
   SD_Buffer[Count] = i2c_read();
   i2c_stop();
  Count++;
 
  if (Count == 255) {
          break;
          ErrorFlag = TRUE;
      }
 }
delay_ms(1); 

}
V_Command全体波形
Vコマンドを送信してから50ms間の待ちを設けている。(特に必要ないみたい)
 
V_Command送信部
 V_Command受信部


「W」コマンドの例
説明書にある「microtechnica」と書き込んだ時の波形。
書き込み完了の戻り値が送信準備されるまで約10msほど必要なようである。

 
 

もどる

L [PR] J[h @i ]E@XLAbv ^T[o[