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

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

arduinoコミュのArduino DUE

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Arduino Dueのトピックが無いみたいなので、作らさせていただきます。

初心者なのですが、 DueとSD Card Shieldをつなげようとしているのですが、あまりよい情報が見つかりません。 使っているシールドは、SD card Sheild V3 です。

www.seeedstudio.com/wiki/SD_Card_Shield_V3.0


どなたか、SD Card Sheildを、DUEにつなげることに成功した方は、ぜひ、方法やリンク先ご教授お願いします。


加速度計計や、IMUのデータを記録しようと思っています。 Dueをつかうと、サンプリング周波数が、500HZもでますので、これを記録できたらなとおもっています。

よろしくお願いします。


コメント(9)

Dueは最近職場で面倒見る事が増えてきたんですが、まだまだいろいろとバグを抱えてるような感じで、安定するまでにはもう少しかかるんじゃないかと思います。

自分が今までわかってる物では、
・多数の外部割込みを使ったときに、使用するピンの組み合わせによっては割り込みがかからない物がある。
・I2Cで、レベルシフタや負荷容量の大きな物をつなぐとバスが時たまストールする。(megaで動いていた物を電圧レベルを変更して接続)→レジスタの初期設定がまずいのかな?

です。
時間が経てば不具合も解消されていくでしょうし、純正のSDライブラリも出来てきたり専用のシールドも出てくるのかなと思って気長に見守ろうと思います。

SDの件は次の書き込みで。

ご質問のSDカードの件ですが、基本的にSDシールドは使えません。というのもDUEではCPU(SAM3X)のSPI信号はI/Oピンにはつながっておらず、SPIヘッダのみに接続されているからです。

次にSDカードシールドは5V用のボードなので、電圧変換用のICや分圧抵抗、レギュレーターなどが入っています。検証はしてませんが、お目当ての物だと抵抗分圧式なので3.3V I/OにつなぐとSDへの入力は2.1V程度になるのでどうなるかわかりません。(波形の立ち上がり、立下りも遅くなります)

SDカードを使えるかという事ではすでにDUE用に改造されたライブラリが作られていて動いているそうです。ただしSPIヘッダにSDカードをつなぐような物を用意する必要がありますね。

ライブラリについては本家の方のフォーラムに記事が上がってますので参考にしてみてください

http://arduino.cc/forum/index.php?PHPSESSID=baad6143deb27e0858e7c3441ac1d6eb&/topic,135439.msg1018776.html#msg1018776
http://strawberry-linux.com/catalog/items?code=35019
リンク先のXBeeシールドにはSDカードスロットが付いており、SPIヘッダに接続するようになっています。

これなら使えると思うのですが、どうでしょうか?



>ねこ蔵さん

>・多数の外部割込みを使ったときに、・・・
というのは、多重外部割込みでスタックオーバーかタイムアウトで割り込み処理が行われないというより、CPUの問題ですか?それとも、ライブラリの方ですか?
へえ、SPIヘッダの位置って見てみた感じ、共通化されてるんですね。回路図とかチラッと見ただけですがいけそうな気がしますね。

>多重外部割込みでスタックオーバーかタイムアウトで割り込み処理が行われないというより、CPUの問題ですか?それとも、ライブラリの方ですか?

CPUのエラッタはチェックしてませんが、割り込みを単発で入れてテストしても特定のピンだけ割り込みがかからないので、ライブラリじゃないでしょうか?別のピンを割り当てるだけで正常に割り込みがかかるようになったので、とりあえずそれでよしとしていました。

まあ初物はいろいろあるのは仕方ないですね。
ISPヘッダの位置とかは、Arduino 1.0から規格化されたようです。
ATMega168/328以外に対応するために、SPI信号はここに接続せよ、という事なのでしょう。
例えば純正のEthernet Shieldも、初期のものはSPI信号がDigital11〜13番端子に接続されていましたが、現行のEthernet Shield R3はSPI信号がISP端子に接続されてます。

ってことで、そのEthernet Shield R3をDUEに乗せ、これのSDカード部を試してみました。
5V-3.3V変換もICを使ってきちんとやっているようなので問題無さそう。

で、あっさり、普通にライブラリを使って、何も悩む事なくSDカードへの書き込みができました。

ということで、SPI信号がISP端子に接続され、かつ3.3Vへの変換がきちんとされているものであれば普通に使えると思います。
>>[4]

ハードの問題ではなさそうってことで安心しました。
ARMってことで、さらに楽しいことができそうだと思ってましたので。

ハードを買ったらライブラリを覗いてみます。
>>[2]  みなさん、
お返事ありがとうございます。 参考になりました。 まだ、SDFATのライブラリーをつかえこなせないので、SDのライブラリーでた試していました。 (造船工学系のFortran,Matlab出身です。) 勉強します。

UNO R3をSPIのコネクターからおっても、SDカードへの書き込みがでたのですが、そのままのアレンジメントで、DUEのSPIコネクターから、直接SDカードシールドにつないでも無理でした。 おそらく、カツベエやJTAKAOさんがされた要領だと思うのです。 

Ehternet Sheild R3を手に入れてみます。 同じコードなら、UNOの30倍から、40倍近い速さでDUEが走っているようなので、SDカードをぜひつかってみたいのです。

電圧のレベルシフターも、いくつか購入しました。 

IMUを使いこなしたいので、勉強するために購入したSparkfunのRazer 9DOFとArduIMU V3+GPSが、今日届きました。  マイクロコントローラーは、なかなかたのしいですね。 いろいろと教えていただき、ありがとうございました。 これからも、よろしくお願いします。
SPIコネクタからシールドに直接接続しても動かないという事なんですよね?

電圧の件(VIH-min)の件ですが、調べてみたら3.3V電源の場合のSDカードの入力信号(High)規格は0.625*VCC以上なので、2.06Vとなって、SD Shield経由で電圧降下してしまった2.1Vでも規格上は大丈夫みたいです。ただ、数MHzで動いてるSPI(しかも3.3V)信号に1.8Kもの抵抗が直列に入っているので波形がかなりなまってセットアップが足りてないなんて事もあるかもしれません。(現物があれば環境作って測定できるんですが)

そもそもDUEではもともと3.3Vですから電圧変換もいらないので、可能であれば、短い裸線を半田付けして、1.8KΩの抵抗(R3,R4,R5)を全てジャンパー(ショート)してしまえば動くようになるかもしれません。英語の方のフォーラムにも同様に試して、分圧をスルーしてじか付けした場合だけ動いたという書き込みがありますね。

参考まで。
ねこ蔵さん、ご助言ありがとうございます。  なるほどだからオシロスコープがいるわけですね。 
余裕ができたら入手します。 SD シールドは、UNOやMEGAでも使えるようにしたいので、上記のシールドを検討してみます。 

本当に、度素人ですので、とても参考になりました。 検討していくや勉強するべきところの方向性が見えました。  たのしいですね、これからもよろしくお願いします。 ありがとうございます。

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

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

arduino 更新情報

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

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

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