FC2カウンター FPGAの部屋 2006年01月05日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

スイッチのチャタリング

今日はスイッチのチャタリングを確かめてみようという企画だ。
どんなスイッチにもチャタリングがある。チャタリングは可動する接点が静止する接点にぶつかってバウンドする現象だ。スイッチによってチャタリングの度合いが変わる。
スパルタン3スタータボードのスイッチでどのくらいチャタリングが出るか確かめてみた。
まずはここにあるプロジェクトをダウンロードして、スパルタン3スタータボードのFPGAをコンフィグする。
回路は16ビットのバイナリカウンタのクロックにSW0が入力されている。バイナリカウンタの出力は7セグメントLEDダイナミック点灯回路に入力され、バイナリカウンタの出力が7セグメントLEDで確認できるようになっている。
やってみるとSW0のレバーを上に上げたときだけ1カウントアップするはずが、1以上カウントアップしてしまうのがわかると思う。
このようにチャタリングが発生し、カウンタを狂わしてしまう。
それじゃどうしたらチャタリングの影響を除けるかだが、いろいろ方法はあるが、手っ取り早いのは、チャタリングが持続する間隔より長い周期でサンプリングすることである。
対策を施したプロジェクトをここにおく。やってみるとSW0のレバーを上に上げたときだけ1カウントアップするのがわかると思う。
swdiv.vhdは5ms間隔でイネーブルを出し、そのイネーブルでSW0を入力するフリップフロップをラッチする。
こうすれば、最初のクロックの立ち上がりでチャタリングが発生しているときにSW0の値をサンプルしても、次のクロックの立ち上がりのときにはチャタリングが収束しているので、チャタリングが除去できる。
ちなみにBTN3がリセットである。BTN3を押すと7セグメントLEDをリセットできる。
スイッチ入力をBTN0などにすると押しボタンスイッチのチャタリングを確かめられるが、どうやらSW0などのスライドスイッチよりもチャタリングが少ないようである。
  1. 2006年01月05日 18:51 |
  2. FPGAリテラシー及びチュートリアル
  3. | トラックバック:0
  4. | コメント:2

私のブログ

私のブログのアクセスログを見ていると大企業と思われるサイトから、カテゴリー0(FPGAの話題)を集中的に見ていると思われるアクセスがあるようだ。
見ていただくのは一向に構わないし、アクセスがあるのはうれしく思う。でも、有名企業は社内でFPGA使う人も多く、研修制度が整っていて、私が書いていることなどお見通しだろうと思っていたので、いささかびっくりしている。
それともFPGAは歯牙にもかけなかったけど、だんだん勉強する必要が出てきたのだろうか?
なぞである。

現在は基板作成のために電源などを調査中。DC-DC電源ICを買って作るのもコイルとかの購入で部品点数が増えて大変なので、DC-DCモジュールを探しているが、なかなかいいのがない。1.1V,15Aで電源ONからのVoutの立ち上がりが20ms以内のDC-DC電源モジュールがあればよいのだが。

(2006/01/06追記) C&DテクノロジーズのLSM-16A W3 シリーズがよさそうだ。
  1. 2006年01月05日 17:02 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:8