• ベストアンサー

アップダウンカウンタ(74193)を用いたN(300)進カウンタの実現方法

74193を用いた300進カウンタを作っている途中なのですが、壁にあたっております。 なぜ300かと申しますと、 エンコーダの分解能に由来しています。 現状は・・・ 0→…150…→300(Up)はN進カウンタの考えで 当然ながらCLRがなるのですが、 その逆まわりになる 0→300(Down)となると、 各ビットの動作確認用のダイオードが全ビット点滅を繰り返す状態です。 本当は、0→300→299→288→…100…→0 といった動きをしてくれるようにしなければならないのですが... どなたかこの実現法がわかる方、ご教授お願い致します。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Teleskope
  • ベストアンサー率61% (302/489)
回答No.5

>> UpがA相から単安定回路でCとしました。 >> DownはAの否定を同様にDとしました。 >> そして、C∩BをDown入力、D∩BをUp入力としました。 <<  C∩B を Down ではなく up と解釈しました。違ってたらごめんなさいです。 http://magical.mods.jp/futaba/interior/imgboard.php?res=190 1.CCW カウント・アップ  A相 _| ̄ ̄|__| ̄ ̄|__| ̄ ̄|__| ̄ ̄|__  B相 __| ̄ ̄|__| ̄ ̄|__| ̄ ̄|__| ̄ ̄|_  Z相    ̄ ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  upck  ̄ ̄ ̄|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄|| ̄ ̄  reset _______||___________                ↑                カウンタをゼロに(非同期) 2.CW カウント・ダウン  A相 _| ̄ ̄|__| ̄ ̄|__| ̄ ̄|__| ̄ ̄|__  B相 | ̄ ̄|__| ̄ ̄|__| ̄ ̄|__| ̄ ̄|__| ̄  Z相  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄ ̄ ̄ ̄ downck ̄|| ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄   load  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄                    ↑                カウンタを12Bに(非同期)  言うまでもないですが、カウンタのD入力に 12B=0001,0010,1011 を常に与えておき、loadクロックでそれを取り込ませます。 3. >> 回転軸を一回転させるとA相に300パルス出ます。分解能は、逓倍してないはずです。 <<  了解です、逓倍後を分解能と言う人も居るので蛇足な確認をしました。 >> Z相とダウンパルスのANDとってみたのですが駄目でした。 >> 0→(CCW)300は300進でクリアでいいと思うのですが。 <<  後者について あなたの設計方針を確認したいのですが、回転軸のどこが原点になってもかまわないんでしょうか?つまりZ相(ゼロ相)信号は無くて良いという。もしそうなら今回紹介の回路はハズしてるので別回路を紹介しますので、方針を教えて下さい。 >> 多摩川精機のTS5300シリーズの分解能300 <<  多摩川精機ですか。中は光でなく磁気ですか?    

参考URL:
http://magical.mods.jp/futaba/interior/imgboard.php?res=190
1724
質問者

お礼

詳細な図面までありがとうございます。参考になります。 >C∩B を Down ではなく up と解釈しました。 失礼致しました。 >カウンタのD入力に 12B=0001,0010,1011 を常に与えておき これは3つの74193のABCD(15,1,10,9番ピン)にそれぞれ対応する値を与えておくという意味ですよね?  >設計方針を確認したいが、回転軸のどこが原点になってもかまわないか? その点は、できれば毎回原点が同じに越したことは無いので、かまわないということはないです。(手動で何とかしようと思っていました。) >もしそうなら今回紹介の回路はハズしてるので別回路を紹介しますので もしお時間ございましたら参考までに教えて下ると幸いです。 >中は光でなく磁気ですか? 恐らく光学式だと思います。 説明書見た限り、インクリメンタル式ということ位しか明記されてないです。 それから、学校が年末年始で閉まっているため実際に確認ができるのは一週間後ぐらいになります。

その他の回答 (4)

  • Teleskope
  • ベストアンサー率61% (302/489)
回答No.4

     A相 __| ̄ ̄|__| ̄ ̄|_  B相 _| ̄ ̄|__| ̄ ̄|__  Z相  _| ̄ ̄ ̄ ̄|____  こんな出力だと思っていいですか?時計回りでの出力。Z相はB相と同時変化。 >> パルス数の300とは A相・B相の合計値を表しています。というよりも分解能の値にあわせているから300と言った方が正しいでしょうか? << (1) 回転軸を一回転させるとA相には何パルス出るのですか?「分解能」は、逓倍してるか否かも合わせて言わないと。 (2) どうやら4逓倍(ていばい)回路を使ってるのですよね?その回路をくわしく教えてください。 (3) で,私思うに、Z相があるのなら、それを用いてリセットすべきでは?と、、、 (カウンタ値が0とか300になることを使わずに。) (4) この分野のトラブル相談では、photo出力からclock端子までの配線が長くて波形が変になって計数も変になる、というのが少なくないですね、ちなみにencoderとの配線長はいかほどですか。    

1724
質問者

お礼

補足の補足で失礼致します。 肝心なことを忘れていました。ごめんなさい。 U/Dパルスのカウンタ回路の入力は、 UpがA相から単安定回路で短パルスにし、これをCとしました。 DownはAの否定を同様に短パルスにし、これをDとしました。 そして、C∩BをDown入力、D∩BをUp入力としました。 また、74193はどちらかがHでなければならないので、そのNOTを入力としました。 立ち上がりの誤差が多少出るものの、さほど差し支えないものと思います。 それから、エンコーダは多摩川精機のTS5300シリーズの分解能300の小型エンコーダです。

1724
質問者

補足

 大変遅れてしまいすみませんでした。 A相 _| ̄ ̄|__| ̄ ̄  B相 __| ̄ ̄|__| ̄  Z相  ̄|_____| ̄ ̄ CCWでAはZと同時変化です。 1.回転軸を一回転させるとA相には300パルス出ます。(立上り300回) 分解能は、逓倍してないはずです。 2.74193を三つつないでいます。入力は2値パルス信号をU/Dに変換する回路を通してからその出力を入力しています。そして74193の9ビットの出力をD/Aコンバータで変換するつもりでいます。 3. 0→(CW)300(299といった方が正しいと思います)Z相の出力とダウンパルスのANDとってみたのですが、駄目でした。0→(CCW)300は300進でクリアでいいと思うのですが。 4.波形はオシロで見たところ、なんでもありませんでした。配線長は30cm位だったと思います。

  • Teleskope
  • ベストアンサー率61% (302/489)
回答No.3

     ロータリーエンコーダとかシャフトエンコーダという名の回転センサ出力を扱ってるのですよね、一周300パルスでなく301パルスなんですか?それとも計数値が300まで行ったら即時に非同期リセット回路で0に戻している、という意味でお話しなのでしょうか。  エンコーダは普通A相B相出てますが、パルス数の300とは 1つの相の、一回転あたりの数を表していますか。  A相B相出力に相性がよい(ほぼ直結できる)74191ではなく74193をお使いになったのは別な理由があるのでしょうか。  お使いのエンコーダはZ相出力があるタイプでしょうか。    

1724
質問者

補足

Teleskopeさん ありがとうございます。 補足に答えさせて頂きますと、 ロータリーエンコーダ(A,B,Z相)の出力を扱っています。 分解能300であるため0~299でなければなりません。私の言い方が適切でありませんでした。申し訳ありませんでした。 計数値が300まで行ったら即時に非同期リセット回路で0に戻すと仰っているのが適切です。そのため、0からカウントdownするときは0の次に299、298、…100…0とならなければなりません。しかしこの実現はymmasayanさんが仰っている通りLoadを0→299(カウントdown=反時計回り)時のみ、一瞬、”L”(カウント時などの時は”H”)にしないとどうしようもありません。 パルス数の300とは A相・B相の合計値を表しています。というよりも分解能の値にあわせているから300と言った方が正しいでしょうか? 74191ではなく74193であるのは知識不足な点もありますが、学校に74193がたまたまあったからというのが事実です。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

No.1のymmasayanです。補足にお答えします。 >Loadは、プリセット時はLである必要があると思うのですが その通りです。プリセットデータは常時セットしておき、downの000を検出したらLoadを一瞬Lにすると言う形で実現できます。 Upの300もUpという信号を反映させないといけないでしょう。

1724
質問者

お礼

ymmasayanさん アドバイスありがとうございます。 参考にさせて頂いております。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

300から0はクリアーで済みますが 0から300はプリセットで行なう必要があります。

1724
質問者

補足

ymmasayanさん回答ありがとうございます。 疑問があるのですが、 LoadのHとLの関係は、 U/DパルスをカウントするときはHで、 プリセット時はLである必要があると思うのですが この点が解決されません。 教えて下さい。お願い致します。

関連するQ&A

専門家に質問してみよう