2017-10

スポンサーサイト

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

パジャマが破れてしまったので・・・

どうも寝相が悪いのか、結構な頻度でバジャマが破れてしまいます・・・

こんばんわ。


さてさて、遊星歯車の方はちょっと完全に手詰まり状態なので^^;
ここはちょっと別方面に気分転換ということで、以前からやりたかったCNC制御基板のリファインに手を付けることにしました。

最初のCNC制御基板を第1世代とすれば、第3世代でしょうか。3Dプリンタの制御基板もあるのでそれをいれると4作目になるのですが、あれはちょっと方向性が異なるので直系からは外れるかなと。

現状の制御構成は下図のような感じです。
2016091902.jpg 
PCとのインタフェースがArduinoの仮想COMポート経由のシリアル通信になっています。Arduinoのシリアル通信はフロー制御がないので、そのまま送信するとダダダダっと送信されてしまい、バッファ溢れた分は捨てられるという仕様・・・
2016091903.jpg 
なのでバッファが溢れない程度に送信し、制御基板側からバッファが少なくなってきたら応答を返して次を送信・・・という状況。

この応答処理が曲者で、微妙に時間がかかるのでバッファを大きく取らざるを得ず、このためPCと制御側でかなりのディレイがあるという問題が・・・

その解決策として選んだのがFTDIのFT245RL
P9191018.jpg 

PC側と8本のデータバスを介してUSB2.0接続で入出力可能という便利な仕様のチップです。このチップBit Bangモードという高速転送可能なモードがよく紹介されているのですが、Bit BangモードだとFT245の内蔵クロックに同期してデータが勝手にどんどんラッチされてしまうのでちょっと使い勝手がよろしくありません。

なので今回はBit BangモードではなくReset Bitモードという同期転送を使ってPC側とやり取りすることにしました。
2016091904.jpg 
このモードだとRXF,RD端子を使ってマイコン側からデータのラッチを制御することができるため、Arduinoの時よりも非常に都合よく、且つはるかに高速にデータのやり取りをおこなえるようになるのでは? と見込んでいます。

で、まずはブレッドボードに回路を構成。あいかわらずのジャングルw
P9191017.jpg 

で、ここでふと思い出す・・・
AVRマイコンの開発環境がまだ入ってない・・・と^^;

あわててAtmel Studioをインストール・・・バージョンが変わってて
画面のアイコンがよく判らなくなってる・・・^^;

開発環境も整えたところで、さらにツールを投入。
ずっとほしかったロジックアナライザです。4chの安いヤツですが^^;
P9191016.jpg 

長い時系列であってもパルス列を見れたり、各チャンネル間の関係が一目瞭然なので非常に助かります。
2016091906.jpg 
これまでオシロスコープだけで見てた時は長い時系列の場合や複数パルスの関連性を見るのに非常に苦労していたのでものすごく便利ですね。

で、開発したマイコンを通すと、下図のような感じに動作します。
2016091907.jpg 

一番上から、RXF端子、RD端子、データバス1、データバス0です。データバス1はモーターの回転方向を制御するDIR信号、データバス0は1ステップすすめるためのClock信号を想定しています。

データが送信されてくるとRFX端子がHigh→Lowへと変化するとともに、データバスに送信データの内容がラッチされます。

マイコン側はRXF端子の立下りで割り込みをかけており、この割り込みによってラッチされたデータを受け取り、DIR信号はそのまま出力、Clock信号は短いパルスを出力したのち、一定時間待機します。

待機時間経過後、RD端子をLow→HighにするとRXF端子がLow→Highになり、データがなければHighのままとなります。次のデータがあればすぐにHigh→Lowに変化します。

RD端子は短い時間でHigh→Lowとします。次のデータが存在する場合はこのタイミングでデータバスにラッチされます。

あとはRXF端子のHigh→Lowで再び割り込みがかかっていますので、データがある限り連続的にデータの受信処理がなされていきます。

次データの待機時間はPC側から設定できるようにしてあるので、任意の間隔でデータがラッチ可能→モーターの回転速度を制御できる、というわけです。

ロジックアナライザのおかげでマイコン側のプログラムは思いのほか楽に片付いたので、試作の基板を設計・・・と、そういえばEagleがインストールされてませんね^^;

で、Eagleをダウンロードしにいったのですけど・・・
なんかいつのまにかAutodeskに買収されてますね・・・

それはさておき、Eagleで回路を設計。こちらもバージョン変わってて、アイコンがよくわからない、ライブラリも初期状態・・・
2016091908.jpg 

さすがに、この規模のIC同士を接続するためには両面基板で設計せざるを得ないですね・・・基板の両面をつなぐスルーホールについてはどうやってやるかまだ試行錯誤状態なのですが・・・さらにFT245RLとATMEGA328、なにげにピッチが狭くてハンダ付けが辛そうです・・・^^;


スポンサーサイト

コメント

コメントの投稿


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

トラックバック

http://nznavyblue.blog.fc2.com/tb.php/276-4b0d1c2d
この記事にトラックバックする(FC2ブログユーザー)

«  | ホーム |  »

日付から日誌を見る

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

最新の日誌

最新のコメント

最新のトラックバック

カテゴリ

3Dプリンタ開発記 (83)
新モータ駆動装置 (20)
集塵機 外郭編 + モータ制御実験 (17)
集塵機 (42)
Android ADK (3)
CNC改善 (2)
iPhoneスタンド習作 (6)
Webカメラ表示用ソフト (11)
備忘録 (0)
作業日誌 (18)
そのほか (76)
キーボードの製作 (9)
スピンドルモータ交換 (7)
鉄道模型 (9)

リンク

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

当日誌の閲覧総数

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