http://www.marutsu.co.jp/pc/static/large_order/1405_311_ph
LTSpiceでシミュレーション
CRの充放電でスイッチのチャタリング波形を吸収して、シュミット・インバーターでHLの値を整形する回路です。
LTSpiceでスイッチをどう表現するかわからなかったので、「sw」というVoltage controlled switchのコンポーネントを使いました。電圧でスイッチのON/OFFを制御する仮想的なデバイスだと思います。
「.op」コマンドで「MYSW」を定義してやって「sw」コンポーネントの「Value」に「MYSW」を指定して使いました。「MYSW」のパラメーターの「Vt」はON/OFFが切り替わるスレッショルド電圧で、3.3V系でシミュレーションしたので、とりあえず1Vに設定しました。
シュミット・インバーターのコンポーネントもパラメーターを設定しないとちゃんと動作しないようです。ねがてぃぶろぐさんの記事(http://gomisai.blog75.fc2.com/blog-entry-358.html)を参考にしました。
手持ちのシュミット・インバーターのTC74HC14のDATASHEETを見ても3.3V系のスペックは載っていなかったので、Vt(スレッショルド電圧)、Vh(ヒステリシス電圧)とも適当な値です。
チャタリング波形の生成方法もよくわからなかったので「voltage」コンポーネントの「PULSE」でそれらしい波形をつくりました。H→Lのみです。
→「voltage」の「PWL」を使えば外部ファイルで任意の波形を指定できるようですが、今回はパス。
過渡解析
上段の「V(v_sw+)」が(疑似)チャタリング波形です。
下段の「V(schmitt_in)」がシュミット・インバーターに入れる前の波形です。CRで急峻な電圧変動(チャタリング)が吸収されてなまった波形になっています。
「V(out)」がシュミット・インバーターを通した出力です。なまった波形がスレッショルド電圧(Vt+Vh=1.5V)あたりでH/Lが切り替わっています。インバーターなので正負が逆転していて、タクトスイッチをPull Upして使うときには押し下げでH、離すとLになるので都合が良さそうです。
TC74HC14の特性を測定
WaveGeneで三角波を出力してシュミット・インバーターのTC74HC14の特性を調べてみました。
電源電圧は3.3Vです。
5kHz三角波
赤色が入力、黄色が出力
オシロのカーソルで測ると
- L→Hのスレッショルド:2.0V
- H→Lのスレッショルド:1.16V
でした。LTSpiceのパラメーターで言うとVt=1.16V、Vh=0.84Vになります。
20kHzまで三角波の周波数をあげてみましたが、この値はほとんど変わりませんでした。
ステップ応答
入力は自作の「矩形波だけのファンクションジェネレーター」(http://dad8893.blogspot.jp/2015/06/blog-post_21.html)で、デジタル出力です。5Vp-pしか出力できないので電源も5Vにしました。
立下り
赤色が入力、黄色が出力
立ち上がり
ステップ応答(速度)に関しては全く問題ないようです。
実際のタクトスイッチのチャタリング波形
タクトスイッチが並んだ基板からブレッドボード上でプルアップさせてオシロで測定してみました。
電源は自作の3.3V安定化電源です。
波形がなまってしまいました。200uSぐらいかけて徐々に電圧が落ちているようです。
容量成分は入れていないはずなので原因不明(@@;
拡大
チャタリングは400nS程度続いているようです。400nSの逆数は2.5MHzなのでAVRを1MHz駆動すれば1クロック以内で収まるのか?むむむ(^q^;
チャタリング防止回路の実験
LTSpiceでシミュレーションした回路をブレッドボードで実験してみました。
赤色が入力、黄色が出力
入力側にもCRが入っているので入力波形もチャタリングは除去されています。出力波形は正負が逆転され、H/Lの波形がほぼ整形されているようです。
メモ:
- TC74HC14はシュミット・インバーターが6個入りなので8個のタクトスイッチの処理をしようと思うとICが2個必要、16個のタクトスイッチだと3個。CR類も結構かさばりそう
- プログラムで処理する方法もあるのでハードでの実装はやめた方が無難かな・・・
- 矩形波だけのファンクションジェネレーターのクロックノイズを除去するのにロジックICが使えないか?
0 件のコメント:
コメントを投稿