おいふぉりーのぶろぐ

きっと趣味のブログに違いないです!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[MAXII](続)ラジコンサーボを動かす。

前回の続き?かもしれません。
まあ、トラ技のMAXIIはしばらく放置していたんですが、サークルの友人がInRoFに出場するロボットにラジコンサーボを使いたいんだけど、ってなことで、んじゃ、トラ技のMAXIIがいいよっ☆って言っちゃったんで、簡単に解説しときましょ。
ラジコンサーボを制御するための信号ですが、1周期が20ms程度のPWM信号を出し、デューティでラジコンサーボの角度を指定します。デューティが1.5ms程度のときが、ニュートラルと呼ばれるちょうど中央の角度になります。デューティの可変範囲は0.5~2.0ms程度です。ここで、タイミングについて程度程度と言っている理由は、サーボのメーカーや種類によって若干仕様が異なるからです。
結局のところ、PWMを出力すれば良いのです。一般に、マイコンでタイマのPWM出力機能を使えばよいのですが、今回のようにサーボの数が十数個というように多い場合は一筋縄にはいきません。マイコンを駆使して多くのサーボを制御する方法は色々ありますが、いっそのことCPLDを使ってハードウェア的にラジコンサーボ専用のPWM出力モジュールを作ってしまえというのが、今回のお題です。

max2_rcsv01.png

これ(↑)がラジコンサーボのモジュールのブロック図です。まあ、一般的なPWMモジュールと大体一緒かと思います。まず、メインの11ビットカウンタがあり、このカウンタはクロックを1/35に分周した9.77µsおきにインクリメントします。3.57…MHzというクロックと1/35分周で、ちょうどこのカウンタが20ms程度で1周するように、秋月電子通商で売ってるオシレータからうまく選んだつもりです。PWM出力のところはRSフリップフロップになっており、カウンタが0と一致したときはセット、コンペアレジスタと一致したときはリセットします。ここで、出力したいPWM信号のデューティ変化が12.5%以下ということから、あらかじめそれ以上のデューティは設定できないようにすることにより回路規模を抑えます。すなわち、カウンタの上位3ビットは0と、下位8ビットはコンペアレジスタと比較し、両方が一致したときPWM出力部のRSフリップフロップをリセットするようにします。コンペアレジスタは、マイコンのバスから非同期で書き込めるようにしました。実際には、PWM出力は16本ですので、RSフリップフロップやコンペアレジスタ、コンパレータの部分は16個ずつあります。AlteraのQuartusでデフォルトの制約、合成オプションで、91%のLE使用となっています。正直、一杯一杯ですね。

MAXIIの中身の話はいいとして、簡単に周辺回路の話もしておきましょう。回路図は、これです。一言で言うと、MAXIIは3.3Vであることから、5V系バス(H8 3052マイコン等)との
接続をするために74VHC245または74LCX245あたりを使ってレベルコンバートする、PWM出力側はフォトカプラによりモータ用の電源と絶縁かつ5Vにレベルコンバートするという構造にしてます。とりあえず、サークルの人はこんな感じの構成になるっしょ。

最後に、動作と使い方についてです。正直、私は実際に付くって無いので、実機動作確認はしていません。その代わり、シミュレーションで確認です。
max2_rcsv02.png

まあ、こんな感じ(↑)に動作します。
max2_rcsv03.png

コンペアレジスタへのデータの書き込み方は、こんな感じ(↑)。起動時に、リセットをかけるとコンペアレジスタの値は0となり、デューティ0ということで、PWM信号は停止します。その後、アドレスに設定するコンペアレジスタの番号を、データにデューティを指定して書き込みます。非同期書き込みですので、クロックのタイミングに合わせる必要は無く、書き込み信号の立下り時にデータが書き込まれます。シミュレーションでは、7番に65、1番に255、15番に127、10番に200を書き込んでいます。
以上で大体解説は終わりですが、実際に使うにはAlteraのQuartusでピン配置の制約を入力して、VHDLソースから回路合成し、MAXIIに書き込む必要があります。これらの使い方については、サークルの人々には追々説明します。


回路図、VHDLソースコード
http://tm86euweb.hp.infoseek.co.jp/
私のHPから、ダウンロードしてください。
  1. 2006/04/26(水) 21:21:56|
  2. ハードウェア開発
  3. | トラックバック:2
  4. | コメント:0
<<画像処理プログラミングとか回路とか | ホーム | わ~い☆DigiKeyから部品が届いた~>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://tm86eublog.blog42.fc2.com/tb.php/80-866f510e
この記事にトラックバックする(FC2ブログユーザー)

コンパレータ電子工学における コンパレータ (comparator) とは、二つの電圧または電流を比較し、どちらが大きいかで出力が切り替わる素子である。より一般に、二つのデータを比較する装置にも使われる用語である。次の図のように、負帰還をかけていない標準的なオペアンプ
  1. 2007/08/06(月) 10:03:09 |
  2. カテゴリとしてはエレクトロニクス

クロッククロック、クロック信号( - しんごう)、クロックパルスとは、コンピュータ(またはデジタル回路)が動作する時に、タイミングを取る(同期を取る)ための周期的な信号のことをいう。通常は、水晶振動子を利用した発振回路を用いて発生させる。低速動作の機器や精
  1. 2007/08/06(月) 13:08:21 |
  2. カテゴリとしてはエレクトロニクス

来客数

プロフィール

Euphorie

Author:Euphorie
"おいふぉりー"って呼んでくださいな☆
ハードウェアとかソフトウェアとかの開発に興味があったり。。。
連絡先は上の画像。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。