• 締切済み

クロック信号のカウント方法について教えて下さい

15MHZのクロックをカウントし、設定値と比較一致した場合外部に2μS巾のワンショット信号を出しタイミングによっては、カウント一致後約60μSで外部信号によってカウンタをリセットする回路を考えているのですが、いいデバイスが見つかりません。マイコン(AVR)のソフトウェア上でカウントするのは無理のようですし(?)、かといってカウンタICにもそのようなICが見つかりません。 どなたか方法をお教え頂けませんでしょうか?カウント数は10進4桁以内です。 マイコンから設定値を書き込めるカウンタICはZENIC製ZEN2024Fを見つけたのですが、使えるのかどうか今ひとつよくわかりません。マイコンはAVRを使おうと思っています。 全くのマイコン初心者です。よろしくお願いいたします。

みんなの回答

回答No.3

質問が閉じられる前にもう少しだけ。 今回CPLDをご紹介いたしましたが、もっと大きな規模になるとFPGAというデバイスが存在します。 こちらは起動時にROMからデータを読み出してから回路が動作する方式ですが、CPLDとは比べ物にならないくらい規模が大きいです。 デバイスの選択は、回路規模や電源ONから回路が動作するまでの時間などを検討して、目的に合ったものを選んでください。 デバイスのメーカはALTERA、XILINXが有名どころです。 評価基板を購入して試すのであれば、下記に少しだけリンクを張っておきますのでご参照いただければと思います。 http://www.hdl.co.jp/home.html http://strawberry-linux.com/catalog/?c=pld http://strawberry-linux.com/catalog/?c=xilinx http://eleshop.jp/shop/c/c2211/ また、書き込みケーブルを購入・自作する必要がありますのでご注意ください。

kamocat
質問者

お礼

takeponさん。大変お礼が遅くなって申し訳ありません。1ヶ月も経ってしまいました。急な出張が入ってしまいHPをみる余裕が有りませんでした。 ほんとにいろいろ教えて頂いて有り難うございました。

回答No.2

>カウンタの設定値は都度変更しなければなりません。 標準ロジックで組める回路はほとんどCPLDで実現できます。 要は中の回路を自分で作成できるICなので。 実現できないのはコンデンサに充放電して時間をカウントするワンショット回路くらいです。 (クロックをカウントする回路で代用できますが) 設定値はCPLDに14bitくらいの信号として入力してはいかがでしょうか? d'9999=h'270F なので14bitで足りると思いますが。 デバイス容量を大きめのものにすれば、CPUインターフェースより読み書きできるレジスタを実装することも可能です。 http://www.interq.or.jp/japan/se-inoue/cpld.htm http://japan.xilinx.com/company/gettingstarted/cpld/index.htm

kamocat
質問者

お礼

takepon25さん、有り難うございます。CPLDについて知識がなかったものですから、とんちんかんな質問をしてしまいました。 CPUとのインタフェースも含めてCPLDで作れるんですね。ロジックICをさんざん捜して74HC40103を2個使えば何とかなりそうなのですが出力の制御などを考えると、やはりCPLDでやった方がいいかなと思っております。早速CPLDのボード類を調べてトライしてみようと思います。いろいろアドバイス頂き感謝致しております。

回答No.1

そのものずばりの単一デバイスは存在しないと思います。 標準ロジックでもカウンタや比較器を組み合わせて製作できますが・・・。 http://ja.wikipedia.org/wiki/%E6%B1%8E%E7%94%A8%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AFIC >ZENIC製ZEN2024F エンコーダのカウント用ICですね。 そんなICを使うくらいであれば、私ならCPLDを使います。 http://akizukidenshi.com/catalog/c/ccpld/ http://www.sengoku.co.jp/mod/sgk_cart/search.php?toku=%25e5%258d%258a%25e5%25b0%258e%25e4%25bd%2593%25e3%2583%259e%25e3%2582%25a4%25e3%2582%25b3%25e3%2583%25b3&cond8=or&dai=&chu=&syo=&k3=0&pflg=n&list=1 ツールは無料ですので内部回路を作成してからデバイス規模を考えるのがよいでしょうね。

kamocat
質問者

お礼

早速有り難うございます。CPLDという手が有ったんですね。CPLDについて勉強します。有り難うございました。

kamocat
質問者

補足

takepon256さん済みません。肝心な事が抜けていました! CPLDで解決と思ったのですが、カウンタの設定値は都度変更しなければなりません。それでプログラマブルカウンタを捜していたのですが。やはりロジックで組むしか無いのでしょうか? 何かアドバイスが有ればまたよろしくお願いいたします。

関連するQ&A

  • AVRマイコンでクロックカウントする場合

    手元にテスト環境が無いので、質問致します。 周波数40KHz、パルス幅5μSの正パルスをAVRマイコンでカウントし比較一致で出力したいのですが、可能でしょうか? AVRの取説によると、外部カウンタ入力はデューティー比50%でないとダメなようなので、汎用I/Oの割り込みを使って処理しようと考えています。パルスの立ち上がりで変数をインクリメントし、所定の数値との比較一致で外部出力をONさせる、それだけのことですが、可能でしょうか? よろしくお願いします。

  • システムクロックのカウント方法

    題名がイケてない気がしますが、以下のことを知りたいです。 OSが管理しているシステムクロック(=カーネルクロック)は、どのようにしてカウントを進めるのですか? 私はマザーボードに載っているICが割り込みを発生させて、それを用いて更新しているのかと思ったのですが、調べてみると違いました。 OSが起動した際に、マザーボードのハードウェアクロックを読み込み、OSのシステムクロックに設定します。 で、場合によっては、タイミングはわかりませんが、NTPを利用して、原子時計に近い値に更新も出来るようです。 で、Windowsの場合は一定周期毎/Linuxの場合は起動時停止時に、ハードウェアクロックをOSから更新するようです。 そこで、疑問が発生します。OSはどのようにして、カウントを進めているのですか?★ ハードウェアを利用していないとカウントできないような気がするのです。 CPUの動作周波数ですらマザーボード上のICが発生させる信号を元に動作しているので、CPUクロックのカウントに比例させて計測することが出来るとも思えません。 この程度の前知識はあって、足りない部分を補足して欲しいです。★ (「システムクロック」などの思いつくキーワードで検索しても見つけられませんでした。) 以上、よろしくお願いします。

  • マイコンのクロックを測定する回路について

    マイコンのクロックを16MHzの水晶振動子で与えています。 この周波数を測定する回路を作るのですが、水晶の両端から信号を取り出そうとすると、普通のバッファではクロックに影響を与えてしまい、マイコンが誤動作することがあると聞きました。 マイコンに影響を与えないで、クロック周波数を見るのにはどんなインタフェースでクロック端子に当たればいいのでしょうか?

  • dsPICとPIC24の処理速度について

    PIC12とPIC16やAVR(ATmega88など)を使ってこれらのマイコンには慣れてきたところなのですが、今回作成するものが処理速度が速いマイコンが必要で、AVRライタを自作したときに対応しているという事だったのでなんとなく買っておいた、dsPIC33FJ32GP202 か PIC24HJ12GP202 を使ってみようかと思うのですが、これらのマイコンは未経験で全くの素人です。 そこで質問なのですが、PICの場合4クロックで1命令というのはこれらのマイコンもそうなのでしょうか?・・・だとすると、これらのマイコンは40MHzとのことですが、実質10MHz?・・・AVRを20MHzで使った方が処理速度が速いという事なのでしょうか? また、上記が違い1クロックで1命令で、これらのマイコンの方がAVRより速い場合、dsPIC33とPIC24HJはどちらの方が速いのでしょうか?同クリスタルを使えば同じですか? 最後に、dsPICのdspとは何の機能なのでしょうか? 以上3点よろしくお願いします。

  • オーバークロックについて

    オーバークロックに興味があって、CrystalCOUIDというソフトをダウンロードしてインストールしました。 しかし、どこをどのように設定すればよいのかわからずじまいになっています。 基本的な質問なのですが、オーバークロックっていうのはソフト側だけですることが可能なのでしょうか? また、AMD Duron 1100MHzと Intel Celeron-S 650 MHz だと、どのくらいまでいけそうでしょうか?

  • PIC 外部クロックの使用について

    PIC18F24K20というPICを使用しています。 外部からクロックを供給してPICを動作させようとしているのですが、13.56MHzのクロックを入力して動作するにはコンフィギュレーションビットをどのように設定すればいいでしょうか?

  • マイコンorFPGAによるトリガ信号生成

    あるトリガ信号(0-3V程度の立ち上がりor立ち下がり)を感知して,あらかじめ設定した時間後(数μ秒以内)に別のトリガ信号(0-5V程度)を出力する回路を作りたいのですが,H8やSH2などのマイコンで作成する可能でしょうか.数十MHz程度のクロックだと能力的に厳しい気がしています. また,FPGAでも出来そうな気がするのですが,経験がないのでイメージができません.どちらの方がコスト的,パフォーマンス的に良いでしょうか.

  • COMポートの動作について

    初心者ですので、勉強も兼ねて最近AVRマイコンによる 外部機器のコントロールを、シルアルポートを使って制御する 機器を作ろうと思っていました。 構成は AVRマイコン←→ADM3202A(RS-232C変換IC) ←232Cケーブル→PCのCOM1 を接続しています。 ここで、PC電源のON/OFFと、サスペンドのON/OFF時に 僅かにPC側のCOM1ポートに信号が出ているのですが、 これは何の信号なのでしょうか? 制御したい機器が、PC電源(サスペンド込み)のON/OFFで リレーを1回動作させ、外部機器のON/OFFをしたかっただけ なので、僅かに出たこの信号でPCのON/OFFを感知出来て しまったので、このままで良いと言えばいいのですが、 何だか腑に落ちないので、何の信号がCOM1から出ているのか ご存知の方いましたらご教示下さい。

  • Audio MIDI設定パネルのクロックソース

    PowerMac G5 MacOSX 10.4.11を使っています。 Audio MIDI設定コントロールパネルにクロックソース切替えがあって、内蔵S/PDIFのクロックソースを外部クロックと内部クロックとに切り替えできるようになっています。 インターフェースは標準の内蔵S/PDIFなので、クロック入力端子を持っていません。 この場合、外部クロック、内部クロックは何を意味するのでしょうか?

    • ベストアンサー
    • Mac
  • AVRのインプットキャプチャについて

    AVRのインプットキャプチャを利用してパルス立ち上がりエッジ間の時間を計測したいのですが、どうも計算が合いません。知恵を貸してください・・・ 1MHzの駆動でカウンタの分周が64分周なら単純に1カウント64μSecですよね? 実際に計測しますと130Hzのパルス立ち上がりエッジ間に60カウントしました。ですので・・・ 60パルス*64μSec=3840μSec となると思うのですが、 130Hzならパルス立ち上がりエッジ間は・・・ 1Sec/130Hz=0.007692Sec すなわち7692μSecですよね? もし計算間違ってたら教えてください。 計測対象のパルスですが、これはPCファンの回転信号を計測しました。 DSOnanoで計測したら130Hzでした。 AVRのタイマ/カウンタの値はUARTで確認しました。 AVRのタイマーの設定を間違ってたらいけないので記載していきます。以下の通りです。 TIMSK = (1<<ICF1); TCCR1B = (1<<ICES1)|(3<<CS10);//上りエッジの64分周