• ベストアンサー

7474でパルス整形

74LS74のD-flipflopを二つカスケード接続して、 入力パルスの整形(クロック間隔と同じ幅のパルスにする) を行う回路を作ったのですがうまく動きません。 スタンダードな回路だと思うのですが、問題点を教えていただけ ませんでしょうか。 回路は、7474を直列接続して、 +------------+ | | trigger->|D Q |-+>|D Q | +--+ | Q-bar| | Q-bar|-----+AND---> のようにして、入力トリガを整形します。 もちろん、クロック(~1KHz)は入れていますし、 クリヤとプリセットはdisenableです。 問題は、データがつつぬけになっているようであることと、 (LS74は、リーディングエッジトリガのはずなのに、、、) もう一つ、 LS74は、立ち上がりトリガのみ動作するとデータシートに 書いてあるのに、立下りでも動いてしまうということです。 説明不足かもしれませんが、よろしくお願いいたします。

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

  • ベストアンサー
noname#2380
noname#2380
回答No.3

blue_monkeyです。No1,No2のアドバイスで、おそらく解決済みかもしれませんが、お猿さんのお話を追加させていただきます。意味不明な点がありましたら猿の戯言と言うことで、読み捨ててください。 第一部 【立ち上がり検出回路の動作条件】 trigger信号のパルス幅T(ms)が、D-FFに使用しているクロック(システムクロック)の周期Tcに対して、Tc<Tなら(クロックの立ち上がりで、必ずtrigger信号レベルの変化をたたけると言う意味です)、No1のアドバイスで説明されている回路で、所要の動作が実現できると思います。また下記の【別回路】でも実現可能と思います。 【別回路】 また、No1で記述されている回路と同じ動作をさせるものとして、次のような回路も考えられます。 ck_sys=DFF1.ck=DFF2.ck DFF1.D=trigger DFF2.D=DFF1.Q DFF1.Vc=DFF2.Vc=+5V DFF1.GND=DFF2.GND=0V DFF1.clr_=DFF2.clr_=DFF1.prs_=DFF2.prs_=+5V trigger信号の立ち上がり検出信号OUTは OUT=DFF1.Q&DFF2.Q2_ 上記式の定義は、 1段目のDFFのクロック入力と、2段目のDFFのクロック入力にシステムクロック(例えば、1kHz)を入力する。 1段目のデータ入力にtrigger信号を入力する。 2段目のデータ入力に1段目のQ出力を入力する。 「&」の記号は、A&Bで信号Aと信号BのANDを取ると言う意味です。 また、A_は信号Aの反転信号ですぅ~。 No1で説明されている回路を上記の式で記述すると ck_sys=DFF1.ck=DFF2.ck DFF1.D=trigger DFF2.D=DFF1.Q_ DFF1.Vc=DFF2.Vc=+5V DFF1.GND=DFF2.GND=0V DFF1.clr_=DFF2.clr_=DFF1.prs_=DFF2.prs_=+5V trigger信号の立ち上がり検出信号OUTは OUT=DFF1.Q&DFF2.Q2 のようになります。 第2部 【条件】 trigger信号のパルス幅T(ms)が、D-FFに使用しているクロックの周期Tcに対して、 Tc>Tで、クロックの立ち上がりで、必ずtrigger信号レベルの変化をたたけると言う保証がない場合。 但し、trigger信号がシステムクロック(例えば1kHz)を元に作られており、システムクロックの立ち上がりで、trigger信号のレベル変化を必ずたたけるという、システムクロックとtrigger信号のタイミングに同期的な関係のあるケースは除きます。この場合は第1部で記述されている別回路、No1のアドバイス回路でOKですぅ~。 【回路】 ここに提示する以外にも、同じ動作をする回路があると思います。 SR1.S_=trigger_ SR1.R_=DFF2.Q_ ck_sys=DFF1.ck=DFF2.ck DFF1.D=SR1.OUT DFF2.D=DFF1.Q_ DFF1.Vc=DFF2.Vc=+5V DFF1.GND=DFF2.GND=0V DFF1.clr_=DFF2.clr_=DFF1.prs_=DFF2.prs_=+5V trigger信号の立ち上がり検出信号OUTは OUT=DFF1.Q&DFF2.Q2 上記の記述で、SRとはセットリセットラッチ回路を意味します。 SRラッチを用いることで、クロック周期よりパルス幅の小さなトリガー信号の変化を検出するのに使います。 【注意】 ・但し、使用できる、trigger信号のパルス幅は、セットリセットラッチ回路の特性より下限が決まります。いくらでも細くはできません。 ・この回路は、trigger信号の立ち上がりを検出してから約4~3システムクロック分の間は、次のtrigger信号がやってきても検出できません。 trigger信号の不感期間を最小(1~2クロック)に押さえるためには、非同期的なデジタル回路で構成する必要があるかと思われます。 ヒント:RSラッチのリセット信号をDFF2.Q出力を用いて、ゲート遅延を使って細いパルスのリセット信号を作るのかなぁ~? blue_monkeyは、非同期回路は、キライですぅ~。 誤記・ウソがありましたらゴメンナサイ。

spinflip
質問者

お礼

ありがとうございます。 なんとかうまく行きました。 原因は、実は、教えていただいたRS-FFの回路が先頭に入っていて、 これの論理ミスが原因でした。それに気が付かず、7474の方が おかしいと思い込み、トレースしようとして、手動のスイッチ回路 でトリガーを作って、チャタリングを出してしまった、、、、、。 blue_monkeyさんの回路を参考にして、もう一度、細いパルス対応に 改造してみるつもりです。 今後ともよろしくお願いいたします。

その他の回答 (2)

  • ikkyu3
  • ベストアンサー率43% (535/1229)
回答No.2

スイッチは、接点が衝突したときにバウンドしてチャタリングが出ます。 回路的に例えば積分するとかして対策するのが一般です。

  • anisol
  • ベストアンサー率48% (146/301)
回答No.1

回路図がよくわからないのですが、次のようになっていますか? 入力→1D 1~Q→2D 2Q→A 1Q→B (A AND B)→出力 クロック→1CK, 2CK (~は負論理を表わす) 想像ですが、1Q→2Dになっていませんか?また、クロックの立下りで動作するようだったら、クロックがチャタリングしていないか確認してみてください。オシロで水平の掃引時間を短くすればわかります。

spinflip
質問者

お礼

お世話になります。ありがとうございます。 >>回路図がよくわからないのですが 見直してびっくり、スペースが消えている、、、。 なぜでしょうか、、、。 ご指摘の回路になっています(少なくとも、いるつもりです)。 もう一度、確かめてみます。 >>クロックがチャタリングしていないか 1KHzのクロック(SPGで発生)を入れてもうまくいかなかった ので、手動クロックでフローしてみようと、スィッチを付けた のですが、スイッチ直付けではやはりチャタリングがでますか、、、。 少なくとも、74×2カスケードで、うまくいくはず、という ことがわかって安心しました。もう少し、粘ってみて、 ご報告申し上げます。

関連するQ&A

  • パルスの遅延について

    添付の回路図_波形.JPGにおいて、パルス発生器V1からR1を通してQ1へパルスを入れると ベース電圧のデューティ比が入力パルスに追従しません。 このような現象となる原因について教えていただけないでしょうか。 また対策方法についても教えていただけないでしょうか。 Icbの影響にしてはエミッタ-GND間に流れる電流が大きいと考えております。 補足 添付:回路図_波形.JPG 回路図 ・パルス 15kHzの矩形波 ピーク電圧+24V ・Q1 PZTA42 オンセミ製 ・R1 3.3kΩ 波形 ・赤 V1:入力パルス ・青 Q1:ベース電圧 ・黄 Q1:エミッタ-GND間電流

  • スピードメーターのパルスについて (電子回路の分野)

     スピードメーターを購入しましたが、バイク側のパルスが特殊なため正しい表示をしません。そこでパルスを合わせるため分周回路を製作しているのですが電気は苦手でうまくいきません。  バイク側のパルスですが、40パルスで(5V信号)、これをメーターが対応できる4パルスにするには単純に10分周すればよいのでしょうか?  また、10分周で動作することを前提にTC4017BPとゆうICカウンタを使用して製作しているのですが、うまく分周されません。具体的には、パルスの入力(元の40パルス)をクロック(14番ピン)に接続し、10分周された出力はQ0(3番)からひろっています。これだけです。  結果は、ICカウンタを繋がない状態と同じでまったく分周されていない40パルスの信号が出ています。他にも接続する部分があるのでしょうか?また、他になにか必要なのでしょうか?アドバイスよろしくお願いします。

  • フリップフロップ(D-FF)回路について

    D-FF回路でT-FF回路を作成した場合、Qバーの出力をDに入力させます。 このとき、Qバーの出力ピンに丸印(小さい○)をつけると、クロック(CLOCK)の立ち上がりエッジから遅延して、Qバーからの出力が反転されます。 ここで、なぜ、Qバーの出力ピンに丸印(小さい○)をつけると、クロック(CLOCK)の立ち上がりエッジから遅延して、Qバーからの出力が反転されるのかが、分かりません。 ご教授をよろしくお願いします。

  • パルス(幅調整)発信回路

    74LS123を用いて、パルス幅を 入力信号___| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|____         出力信号___||________||____             ↑     このように調整したいのです。 イロイロ調べて、抵抗×コンデンサ(74LS123の場合 : td = 0.45RC)でパルス幅が調整できるそうなのですが、 出力パルス幅を計算して抵抗(範囲内のもの)、コンデンサを組んだのですが、 信号を入力されても、出力がなされません。 (1)「回路設計ミス、計算ミス、素子がこわれている」以外考える症状は何かありますでしょうか? (2)当方素人なもので、玄人のかたのアドバイスをどうかよろしくおねがいします。 (参考HP)http://www.hobby-elec.org/ckt9_4.htm

  • プリセットダウンカウンタ(ロジックIC)

    74HC193(4bit Presettable U/D counter)を2個用いて,8bitのダウンカウンタを製作したいと考えております. 前提条件としては,1MHzのクロックと任意周波数の入力パルスがあります.(既に製作済み) 実現したい動作としましては,任意周波数の入力パルス(パルス幅は1us程度)があるたびに,一定時間(DIP等でダウンカウンタにプリセット)出力したのち,次のパルスが入るまではLow状態を保つ,といったものです. 現在までに製作したものでは,JK-FFと74HC193の組み合わせによって,入力パルスとダウンカウンタのBorrow信号によってFFをトグルさせるような構造にしてみました. ところが,2つのダウンカウンタのBorrow信号の接続が間違っているためか,Borrow信号の波形が不規則な動きをしてしまいます. ご教授いただきたい内容としまして, 1. 74HC193等のICを複数個用いてダウンカウンタを構成する場合,クロック入力,クリア入力,Borrow出力等の相互接続はどのようにすればよろしいのでしょうか? 2. プリセット値をロードしてダウンカウント(1回目)を行ったあとはロード信号が入れば再びプリセット値からダウンカウントを始めるのでしょうか? 3. 上記に関連しまして,現在のところクリア入力はGNDに落としているのですが,動的に信号を入れてやる必要があるのでしょうか? 複雑,多岐に渡るご質問で大変恐縮ではありますが,何卒ご指導いただければ幸いです.

  • 論理回路 回路の解析

    図1 に示す論理回路図が与えられている。入力はなく、出力はZ であり、クロック信号CLK に 同期して動作する順序回路である。状態は(Q2,Q1,Q0)の組で表すものとし、Q2,Q1,Q0 の入力をそれ ぞれD2,D1,D0 とする。以下の問いに答えなさい。初期状態は(Q2,Q1,Q0)=(001)から開始する。 この問題がわかりません 解答よろしくお願いいたします。

  • デジタル回路に関して質問です。D-FF(74HC74)をT-FFに変換

    デジタル回路に関して質問です。D-FF(74HC74)をT-FFに変換したいのですがうまくいきません。 実施したことは、以下の通りです。 1. Q反転をDに入力 2. CLR(負論理)とPR(負論理)をHに入力(Data Sheet通り) 3. 電源は6V(DataSheetより問題ない)使用 4. CKに6Vパルスを入力し、Qの電圧を測定 T-FFとして動作するなら、CKにパルスを入力する度、Qの電圧は6V⇔0Vに切り替わるはずです。 しかし、Qの電圧が不安定で、切り替わったり切り替わらなかったりします。 CKのパルスといっても、単にスイッチで6VをON/OFFしているだけですので、この辺が原因でしょうか?

  • 周波数のスペクトル

    (質問というか確認というか) 例えば,手動でスイッチを押してパルス信号やクロックを入力するような回路で,信号などの周波数スペクトルを求めるというのはおかしいですよね? 手動のクロックが一定でもないですし。

  • 2レベルのパルス発生回路をご教授ください

    ノーマル・クローズの電磁弁の制御回路を考えております. この電磁弁を1回開くためには下記条件が必要となっています. 1. まず24V-150mAを1msec印加 2. 次に開きたい時間(例えば99msec)だけ2.5V-30mA印加を継続 3. 以上により100msecの開時間を確保 従って下図のような2レベルのパルスを発生させる必要があります. (ずれたらごめんなさい.)     _ 24V-150mA    | |     | |    | |    | -―――――- 2.5V-30mA    |          | ―――           ―――― これまでにオペアンプの加算回路を試しておりますが,うまく行っておりません. (下記,とりあえず増幅率は1として書いております.)  1. 開信号(100msec,開パルス)をマイコンから送る.  2. そのパルスを2系統に分岐し,一方を単安定マルチバイブレータに送り,   1msecパルスを生成.  3. FETを2系統用意し,一方を21.5V,もう一方を2.5V電源に接続.   それぞれ,1msecパルスで21.5VをON,開パルスで2.5VをON.  4. オペアンプの加算回路に上記電圧を入力. 以上により当初1msecは21.5+2.5=24V,その後99msecは2.5Vを出力させようと したところ,パルスの形はだいたい良いのですが2レベルの電圧が芳しくありません. このようなパルスを発生させる回路の組み方をご教授頂けますよう, お願い致します.回路図をお示し頂けますと幸いですが,用語のみでも構いません. それを頼りに調べて勉強させて頂きますのでどうぞよろしくお願い致します.

  • モータードライバーの入力抵抗及び1パルス方式につ…

    モータードライバーの入力抵抗及び1パルス方式について どうもはじめまして技術者見習いですm(__)m 回答宜しくお願いします。 ?現在 HPTEC社 のSD4030Bのドライバーを使用しているのですが、(P-,D-指令方向パルス)に入力抵抗220Ωを入れています。 この先にPLCの出力側に接続されるのですが、この入力抵抗にはどんな意味があるのですか?また入力抵抗を1.6kΩにした時どのような現象が起きるのか教えて下さい。 ?このドライバーは1パルス方式と書かれているのですが、今ひとつ1パルス方式の意味が分かりません。これはパルスの大きさで方向が変わるのでしょうか?それとも断続的なパルスの量で方向が変わるのでしょうか? 調べましたが専門用語だらけで全く分かりません。 本当に困ってます教えて下さい宜しくお願い致します。