« 秋月、18F8722モジュールキットの製作 | トップページ | Pepperで、戦車のコントロール »

2010年4月29日 (木)

秋月、18F8722でSDカードアクセスの製作

Aki_18f8722board_sdcard秋月の、18F8722モジュールは、周辺機器は標準的なものしかついていませんが、PIC18Fとして最大規模のフラッシュメモリと、ポート数を備えているので、何か大きなものを作ってみたくなります。

SDカードを使うには、マイクロチップのファイルシステムを利用すればよいので、試してみました。

サイトから、AN1045と、MDD File System 1.2.1 Installer.zipをダウンロードしてみると、PIC18Fでの使用例は、18F8722となっていました。ファイルシステムは、メモリが多く必要で、18F2320などでは足りないようです。ファイルシステムのソースを読んでみると、ポートの割り当てが分かりましたが、SDカードは、3.3Vで動作させなければなりません。

5V系のマイコンと、3.3VのSDカードを組み合わせる例として、間に抵抗を入れただけのものもありましたが、やってみるとうまくいかず、トラ技2008年1月のH8/3052にSDカードをつないだ例を参考にして、間に74HC125と抵抗を入れたバッファを入れました。

ファイルシステムでは、クロックとして40MHzを使用しています。しかし、18F8722モジュールでは、20MHzの水晶が実装されているのでPLLを使うことが出来ません。そこで、モジュール上の20MHzの水晶の半田をはずし、10MHzの水晶に交換しました。また、モジュールには、SPIのSDIとSCKに1kΩのプルアップがあるので念のため取り外しました。(R3,R4は、I2Cとして使うときに必要)

Aki_18f8722board_sdcardsolderSDカードスロットは、端子の間隔がほとんど2.54mmとなっており、8ピンのみが合いません。しかし、8ピンは使用しないので、端子を上に持ち上げておきはんだ付けしないようにします。また、CDの隣の、WEの間隔が狭いので、外側にまげて、2.54mm間隔にあわせました。

ファイルシステムのほうは、インストールすると、中にMDD File System-SD cardというフォルダが出来ています。その中の、PIC18F用のプロジェクトファイルをダブルクリックすると開発環境が立ち上がります。しかし、そのままのファイルの配置ではコンパイルできないようでしたので、必要としているファイルを、Pic18fのフォルダの中にコピーしました。プロジェクトとして登録した場所も直すために、一旦削除して再登録しました。「Project]-「Build option」で、参照するディレクトリを直す必要もあるようです。

コンパイルは通るようになったのですが、動作したのかが分からないので、RG4に接続されているLEDをひとつ処理するごとに反転するようにしました。また、FSinit()が正常でない間(SDカードは挿入されていない)、LEDが点滅するようにしました。最後に、全ての処理が終わったときにも、LEDが点滅するようにしておきます。

バッファを入れる前に抵抗のみでSDカードにインターフェースした時には、FSinit()が正常に実行されずにLEDが点滅したままでしたが、バッファに変えると、初期化が終わり、処理に入るようになりました。処理は、それぞれで実行時間の長さが同じではないので、LEDは不規則に点滅します。

18F8722で、SDカードのアクセスができるようになりました。デモでは、ファイルやディレクトリを色々作るので、後でパソコンで確認が出来ます。

18F8722ボードには、シリアルのレベルコンバータが実装されているので、使用するにはコネクタをつけるだけです。

« 秋月、18F8722モジュールキットの製作 | トップページ | Pepperで、戦車のコントロール »

製作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 秋月、18F8722モジュールキットの製作 | トップページ | Pepperで、戦車のコントロール »

フォト
無料ブログはココログ
2016年6月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

USBとマイコンの参考書購入