AR.Drone BLCとのI/Fで悩む
AR.Droneをプロポで完全手動操縦したいと考え、前回のintercepttyの記事をはじめとして色々と解析を行っているところですが、中央のメイン基板から指令を受け各モータを制御しているBLC(BrushLess Controller)基板に関して、その物理的接続をどうすればよいか悩んでいます。
というのも以前テスターでBLC基板の配線を確認した際、指令をやりとりしているピン(BLC基板5ピンコネクタのうち3番ピン)は内部的に送信と受信が結線されているため、半二重通信、つまり送信と受信のタイミングをずらすことで、1本の線でも送受信できるようにしなければなりません。またメイン基板の1つのシリアル通信(/dev/ttyPA1)を4つのBLC基板で共有して通信を行っていることが、調査結果から明らかになっていますので、それも考慮しなけれはいけません。
そこで以下の図ような接続方法を考えてみました。
4つのBLC基板をマルチプレクスするのと、半二十通信を実現するため、CPLDを導入してロジックを組んであります。またBLC側のマイコンATmgea8aが5V I/Oなので、指令を出すマイコンが3V I/Oであることを想定して、入力5VトレラントのCPLDXilinx XC9536XLを使っています。同時に送信側では、Hレベルが5Vとなるよう、open-drain出力にしてあります。
これでうまく動けばいいのですが、なかなか苦戦しています。なお使ったCPLD XC9536XLは100円ちょっとで買えます。標準ロジックを複数買うよりも断然お得なので、今後も機会があったら積極的に使っていきたいと思います。
※(2011/3/17追記)上の回路を実装して試してみましたが、XC9536XLの出力ドライバの能力があまり高くなく、1つのピンではATmega8aに対するシンク電流を十分に確保できないようです。(参考: XC9500XLのシンク能力) 複数ピンを使って試してみています。
※※(2011/3/27追記)3本束ねたら動きました。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。