ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

arduinoコミュのarduino + SDメモリ

  • mixiチェック
  • このエントリーをはてなブックマークに追加
皆様お久しぶりでございます、質問大好きわかにゃんでございます。
コップの水はこぼれてしまったのですが、放置しました。

さて、今回はarduinoにSDメモリを接続してみようと考えております。

と言っても誰かの情報をパクって終わりにするつもりだったのですが....

まず下記サイトを参考に作業を行いました。
http://zampoh.cocolog-nifty.com/blog/2008/12/avr---arduinosd.html
このサイトに書かれているようにmicroSD下駄にピンを半田付けして作りました。

しかし回路を組んでプログラムを実行すると「Card init. failed!」と表示されてしまいます(泣)

もちろんmicroSDはFAT(16)でフォーマットして、ファイルはtest1.txtとtest2.txtと言う、中身が「0123456789」と「ABCDEFG」のファイルを保存しただけのものです。

そこで考えられる事は「回路が間違っている」もしくは「SDカード下駄の半田付けが失敗」です。
でも...回路はなんども見直しました。
下駄はプラチックが変形していないので熱を加えすぎて壊れたことも無いと思います...。

回路は上記ページの「回路図」を拡大した下記を組みました。
http://zampoh.cocolog-nifty.com/photos/uncategorized/2008/12/31/sdcard_sch.png

しかし本文中の「参考にした資料はArduino Forum - SD card read/write with Arduinoに掲載されていたものをそのまま利用」をクリックした先の
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649/8
この回路図を見ると「1番ピンの抵抗の先が5VではなくGNDに落ちてる」のです。
もしかして「△5Vって5Vに戻す....つまりGNDの事?もしくは-5Vとか?」など全く回路図の読み方が判りません。
とりあえず「△5V」部分に5Vを入れていたのですが、GNDにもしてみましたがダメでした。
#microSDはPCで見れるので壊れていないようです(笑)

どなたか上記の回路を試した方はいらっしゃいませんか?
または上記回路の△5Vwoの部分のことを私に教えていただけませんか?
もしくは他の回路でもarduinoでSDメモリを使っている方いらっしゃいませんか?
せっかく始めたので「SDカードシールドを買いましょう!」はチョット悲しいですかね。

どなたか御協力お願いします。
など。

コメント(9)

http://bluefish.orz.hm/sdoc/psoc_mmc.html#SDカードの仕様

http://naruken.cweb.tk/labo/mmc/index.html

ここを見るとCSはLow activeです。
4.7Kと1Kで微妙ですが、+5VだとちゃんとLowにできるんでしょうかね。

来週にでも、私もやってみようかと思います。
自分なら、ダイオードなしの、10K、4.7KのGNDで、他と同じかな〜。
△5Vは、5Vの電源ラインに接続するという意味です。△は矢印の先っちょです。
このような接続は数が多いので、回路図の上ではこのように表記します。

Arduinoからの出力を2個の抵抗で分圧しているのは、出力ピンが5V(HIGH)を出力しているときに、SD側の入力が3.3V程度になるようにするため。出力ピンが0Vのときは、直列に抵抗がはいるものの、ほかに電圧ソースがないので、まぁ0V近辺にさがるでしょう。

~CSだけツェナーダイオードが入っているのは、Arduino側がつながっていないときに、HIGHにプルアップするため。そのままだと5Vがかかってしまうので、ツェナーでクランプし、過大電圧にならないようにしています。抵抗の組み合わせでもできなくはないですが。。

ほかの端子は、切り離されているときはGNDに落ちるので、問題はありません。

とりあえず、実際に作った回路で、各ピンにHIGH、LOWを出力するテストプログラムを書き、SDただしくGND、3.3Vくらいに印加されているかどうかをテスターで確認することからはじめましょう。

問題は、ひとつずつ、順番に解決していきましょう。
じろ〜様
 SDカードの仕様ページありがとうございます。
 間違に気が付きました。
 SDカードのピンは912345678と並んでいるのですね。
 私は123456789だと思って作ってました。
 これは動きませんね、今から直します。

さかき様
 △5Vは5Vで良かったのですね。
 有難うございます。

残念ながらその他の説明部分、現在の私には理解できません。

今回部品を買いに行くにも苦労したような人間ですので...

ただココに記録しておけば後日自分で振り返る時に
非常に助かっているので皆様には感謝感謝でございます。

とりあえずSDカード下駄のピン間違えを直します!
一瞬で動きました。
皆様ありがとうございました。
原因はピン配置でした。

と言う事で...

SDカードのピン配置は
斜めに切れ込んでいて奥まった部分に位置するピンから「912345678」の順で
両端の9と8は使わないようです。
#7と8の間は、隙間はあるもののガイドのプラスチックはありません(私の下駄だけかもしれないけど)

P.S.私事ですが、だんだん半田付けが上手くなってきた気がします(笑)
おまけ

どーでも良い疑問

microSDをminiSDにする下駄も持ってるのですが
SDよりminiSDの方がピン数が多いって...どゆこと?
#ま、調べりゃスグわかると思うのですが...

SDは9ピン、microSDは8ピン、しかしminiSDは11ピン!
小さくなるほど簡略化されるならわかるけど....?
すみません、教えてください。
SDカードにデータを書き込むことはできました。
ちなみに参考は以下のブログ。
http://arms22.blog91.fc2.com/blog-entry-294.html

ここからが問題。
SDカードはSPIデバイス。そして同時につないでいるデバイスがSCP1000という、秋月で売っている気圧計で、これもSPIでバイス。
気圧データをSDカードに書き込みたいのです。SSを10番(SCP1000)と8番(SDカード)にして(ここも問題あるようで、ライブラリを変更しました)、作動させるときにSSピンのモードをそれぞれ、LOW、HIGHに設定するのですが、SCP1000から出力されるデータは「0」。

SPC1000を作動させる際、SDカードが止まっていない模様。そもそも、SPIは、SSをHIGHにすれば、止まるのではないのでしょうか?
どなたか、お知恵をください。
おおきさん
SDカードのの1番ピンは、SDカードを使わないときは「HIGH」にしていますが、動きません。
SCP1000をHIGHにして、SDカードをLOWにすると、きちんと書き込んでくれるんですが。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

arduino 更新情報

arduinoのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング