AR.Drone BLCとのI/Fで悩む

AR.Droneをプロポで完全手動操縦したいと考え、前回のintercepttyの記事をはじめとして色々と解析を行っているところですが、中央のメイン基板から指令を受け各モータを制御しているBLC(BrushLess Controller)基板に関して、その物理的接続をどうすればよいか悩んでいます。
というのも以前テスターでBLC基板の配線を確認した際、指令をやりとりしているピン(BLC基板5ピンコネクタのうち3番ピン)は内部的に送信と受信が結線されているため、半二重通信、つまり送信と受信のタイミングをずらすことで、1本の線でも送受信できるようにしなければなりません。またメイン基板の1つのシリアル通信(/dev/ttyPA1)を4つのBLC基板で共有して通信を行っていることが、調査結果から明らかになっていますので、それも考慮しなけれはいけません。

そこで以下の図ような接続方法を考えてみました。

ar.drone_blc_if.png
(太線は4本分)

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本束ねたら動きました。

March 15, 2011 13:49 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

コメントする