前回まで「PIC16F1938 + SD Card」で試していた組み合わせは結局上手くいかず、原因もつかめないままだ。
上手くいかないのでいろいろ調べながらさまよった結果、聞こえてきたことは、以下のような点。
Microchipのライブラリは使いにくい。
MikroCのライブラリは使いやすい。
ChaNさんのELMで配布されているライブラリの出来がいい。
特にChaNさんのFatFsは方々でお目にかかり、どこでも良い評判だったので、これを使わせていただくよう路線変更することにした。
で、さらにさまよって、目を付けて参考にさせていただいたのがこれだ。
ChaNさんのサイトで配布されているPIC用のサンプル(ここの下の方)をほとんど踏襲しているようなので安心感もあった。
変更点は以下の2点だけ。
1.SP3232というICを使ってシリアル通信する仕様になっているところをFT232RLの載っている定番のUSBシリアル・モジュールで代用した( 6pin –> RX, 7pin –> TX とつなぐだけ)。
2.INSとWPは手製のSDカードスロットには無い端子なので、そのままGNDに接続した。
前回まで「PIC16F1938 + SD Card」で使っていた手製のSDカード・ソケットはそのまま使った。
その他の回路的はChaNさんのサンプルに入っている回路図のとおりだ。
前回との違いは、信号線は全てプルアップしたことと、クロックをプルダウンしたことと、47μHのインダクターを電源ラインに入れたことだ。
ただし、これらは、前回の回路でも試していて、それでも前回は上手くいかなかったので、今回上手くいったのがこれら回路の違いのおかげであるとはとうてい思えない。
ともかく、今回は、結果としてすぐにつながって、SDカードの読み書きも問題なく出来てしまった。
ちなみに、使ったSDカードは容量64MBの化石のようなカードだ。
上の絵はTeraTermの画面だ。
あらかじめtest.txtと20151029.PNGを書き込んだSDカードを用意して、
ファイルのコピー「fx test.txt test2.txt」
ファイル名の変更 「fn test2.txt test3.txt」
ファイルのコピー「fx 20151029.PNG test.png」
SDカードの状況表示 「fs」
ファイルのリストの表示 「fl」
を実行したところだ。
ファイルの読み書き方法などがまだ良く分かってないが、直接セクターのダンプを表示させることは出来るので、読み込みは出来ているんだろう。
この後、SDカードをPCに差し替えて、コピーした内容にも問題無いことを確認した。
あんだけ苦労したのに、あっさりといってしまって、やはり世間の(というか世界の)評判には耳を傾けるべきだということだ。
「PIC24FJ64GB002 + FatFs でSDデータロガーを目指す。」へ続く