
74HC74を2個使って、4個のDフリップフロップをこのように並べました。INにクロックパルスを入力するとbit0~bit3はどのように出力するでしょう。QとQ-の出力をにらみながらじっくりと考えてみてください。と、いっても答えはもう下のタイミングチャートに書いてありますね。(^^)
左端から順に正論理の2進数がカウントアップしていくのが分かりますか?分かりますよね。はい、このように4bitのカウンタになるのです。すごいでしょ~。また、bit0はINのクロックパルスの1/2の周波数、bit1は1/4、bit2は1/8、bit3は1/16になっているのが分かります。これを1分周、2分周、3分周、4分周といい、求めたいクロック周波数を得る目的でもこのカウンタ回路は使われます。
このカウンタは非同期カウンタといい、Dフリップフロップの段数を重ねてbit数を増やしていけば、後段になるほどINの入力クロックに対して応答が遅れていきます。これではチトまずかろうという用途のために、すべてのbitが常に入力クロックの立上り(或いは立下り)でカウントアップするように回路構成されたものを「同期カウンタ」といいます。
関連記事:
同期カウンタ74HC191 2010-04-12
SRAM(メモリ)の原理 2007-10-16
左端から順に正論理の2進数がカウントアップしていくのが分かりますか?分かりますよね。はい、このように4bitのカウンタになるのです。すごいでしょ~。また、bit0はINのクロックパルスの1/2の周波数、bit1は1/4、bit2は1/8、bit3は1/16になっているのが分かります。これを1分周、2分周、3分周、4分周といい、求めたいクロック周波数を得る目的でもこのカウンタ回路は使われます。
このカウンタは非同期カウンタといい、Dフリップフロップの段数を重ねてbit数を増やしていけば、後段になるほどINの入力クロックに対して応答が遅れていきます。これではチトまずかろうという用途のために、すべてのbitが常に入力クロックの立上り(或いは立下り)でカウントアップするように回路構成されたものを「同期カウンタ」といいます。
関連記事:
同期カウンタ74HC191 2010-04-12
SRAM(メモリ)の原理 2007-10-16
D-FFからT-FFへの変換なんですね、これ。
ただ、出力が遅延するんで、ほんとに用途は限定的ですが・・・。
しかし、ラッチとしても何かと重宝するもんなんです、コイツは。
CMOS4000だと4013ですね。周波数上限が低くなりますが、乾電池駆動が簡単なんですね、4000シリーズは。
乾電池駆動が簡単ということは、あまり電流を食わないということでしょうか?HC-MOSよりも省電力だという話は確かに聞いたことがあります。
ただ、HCタイプも含めたC-MOSタイプは「ドハマリ」することもありますんで、それが注意点です。
TTL仕様のものとインターフェースする場合、直接つなぐと「ラッチアップ」することがあります。
たとえばTTLのHC138とか139をPICマイコンのポートに直接つなごうという場合です。
PICマイコンはC-MOSなんですけど、ポートの仕様はTTLコンパチなのでTTLだと思っていないとエライ目に遭います。
PICマイコンでHC138をデコーダにしてキースキャンをやったときに「たまにスキャンのダブリ?」という現象に出くわしました。
結局、470オームの抵抗を介して解決できたのですが、こういうのはなかなか気づきにくいものです。
これは「仕事」ではなく、実験用のMIDI出力キーボードを自作したときの話です。
PICのポートはTTLレベルなんですか、知りませんでした。私はPICの経験もありません。私が唯一使ったことがあるのはH8です。あれのポートは確かC-MOSレベルだったと記憶しています。でもなぜいまどきTTLレベルなのか不思議ですね。
470ΩはPICのポートをプルアップしたということですね。
10年くらい前にH8/2000Sというのを仕事で使いました。(使わされた!)
こいつもTTLインターフェースとして使わないとラッチアップします。
ラッチアップってたいがいHIGHレベル、つまりVCC側にはりつきます。
つまり、C-MOSインバータの入力がLOWだろうとHIGHだろうと出力は常にHIGHレベルになっちゃう、という現象です。
マイコンクロックオシレータが発振しなくなる原因のほとんどがこれです。
電源ON時の突入電流でラッチアップしたりするとクロックオシレータが発振しなくなったりします。
今、ラッチアップという現象が理解できない人ばっかりになってしまいました。
今の職場でもマイコン機器を取り扱っているのですが、シロートさんばっかりなんでいくら説明しても理解できんのです。
まぁ、今の私はVBプログラマだし、会社の人間でもないので関係ないのですけど・・・。
マグロ漁船(FRP船)のエンジンコントローラを制御(ガバナ制御)するプログラムをH8で作ったのがマイコン関係で最後の仕事となりました。
なかなかキツい仕事でしたが・・・。
そう、確か電源突入時に起こるんですよね、ラッチアップ。私が経験したおもしろい現象は、電源ピンに電源を供給してないのに、HC-MOSが平気で動く(動いているように見える?)というのがありました。結局、なんか変だなあってことで気づくんですけどね。
おお、VBプログラマーですか。OSなんかもお強いんでしょうね。H8の経験もお持ちだったんですね。
kaoaruさんには、いろいろ教わることが多そうですね。あらためてよろしくお願いします。
ポートに印加する電圧が0.7Vを越えたあたりでHIGHを認識しちゃうのですね、これが。
トランジスタとインターフェースするときに困るのですよ、この仕様。
フォトトランジスタの出力を受ける仕様だったのですが、温度上昇で簡単に0.7Vくらいにドリフトしちゃうのですよ、フォトトラって・・・。フォトカプラでも同様なんですけど・・・。
HIGHじゃないのにHIGHを入力しちゃう・・・って困るモノなんです。しかも仕事だったんで・・・。
C-MOSって呼ばれているマイコンのポートの仕様ってみんなそうです。
三菱M37450とかもそうでしたし、M7700もそう、もちろんPICの16F84とか16F877もそうでした。
H8は3694Fあたりが手頃で電源をつなぐだけで動作可能なユニットがトラ技の付録でついたことがあります。
昔はモニタプログラムも自前で作らないといけなかったのですが、今のはメーカから入手可能ですからお手軽ですよ!
私はkaoaruさんとこのエリアの話をするにはCPUの経験が無さ過ぎますね。モニタプログラムというのはシンプルなOSのようなものと考えてよいのでしょうか?RAMモニタ?
H8のポートは入力がTTLレベルで出力がC-MOSレベルってことないですか?それだったらTTLもC-MOSも双方使えますよね。74ACT00(FACT)なんてC-MOSもありましたよね。これが入力TTLレベル出力C-MOSレベルで、混在回路でも憂いなく使えたと思います。
フォトカプラのドリフトには私も何度も手を焼きましたよ。
所謂「組み込みプログラミング」ですが、その分野は多岐にわたります。
カーステレオ、電気釜、ファンヒータなどの身の回りの家電品。
でも、もっと高度で必需品にまでなっているのはPCですし、地デジに移行してからテレビまでもが高度なデジタル製品となってしまっています。
私ももとはハード屋さんだったので、ソフトのほうは「???」だったのです。乗り越えなきゃいかん壁がたくさんありましたが・・・。
私も苦しんだ時代があった・・・ということです。主に30代がそうでしたね!
で、モニタプログラムってぇ~のは、デバッグするのに便利な処理ルーチンを用意した道具みたいなものです。
たとえば、マイコンにディスプレイのような表示するものがない場合にPCと通信するようにしておいてデータを取得したりできるようにしておくわけです。
現在のPC環境はそういうことをやるのが楽な時代になりました。MS-DOSの時代は大変でしたけど・・・。
プログラミングに関してはPCを使ってやっていくのが近道です。
というのも、マイコンのシミュレータがフリーで入手できるので、実機がなくともプログラミング&デバッグができるからです。
はじめてのマイコンの習得には時間(期間)と経験取得までかなりかかりますから、そういう気持ちが起きてからチマチマとやられてもいいのではないかと・・・。
長続きできないとね・・・。それに、面白くないと・・・続かないものです。