「74HC165」の解説このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。用語:74HC165用語の読み方:ななよんエッチシーいちろくご同義語・類義語:74HCT165、74LS16574HC165は、74HCシリーズの高速CMOSロジックICの一つで、パラレル入力、シリアル出力の8ビットのシフトレジスタの機能を持っています。74HC165は、パラレル入力端子にパラレル信号を入力し、その信号をシリアル出力端子からシリアル形式で出力する、パラレル-シリアル変換回路として通常は使われます。UnoなどのGPIO端子の少ないマイコンの、入力端子の拡張のため使われる事が多くあります。74HC165は、次の様な特徴を持ったシフトレジスタです。8つのパラレル入力端子(A~H)に入力された信号は、SH/LD端子にLを入力した時に、クロック信号とは非同期にシフトレジスタに取り込まれます。SH/LD端子にHを入力した時は、シフトレジスタはクロック信号(CLK信号)の立ち上がりに同期してシフト動作します。INH端子があり、この端子にHが入力されている時は、CLK信号が無視され、シフト動作は行われません。シリアル出力には正論理のQH信号に加えて、負論理のQH信号があります。シフトレジスタを16ビット以上に拡張する場合に使うシリアル入力端子(SER端子)を備えています。74HC165よりも入力電圧の閾値を下げてTTLと接続できるようにした74HCT165や、TTLの74LS165も、機能やピン配置は、このページで説明する74HC165と同じです。74HC165の入手先を知りたい方は、このページの最後の購入ページの一覧表をご利用ください。1ページ広告1.ピン配置と各端子の意味74HC165のピン配置を図1に示します。DIPパッケージのTC74HC165AP(東芝セミコンダクター製)の写真を写真1に示します。Instruments社のSN74HC165のデータシートを参考に記述していますので、ピンの名称はそのデータシートに従っています。他社の互換ICの場合、ピン名称が異なる場合がある事に注意してください。各端子の意味を、表1にまとめました。パラレル信号の入力端子です。これらの端子にパラレル信号を入力した状態で、SH/LD信号をLにすると、パラレル信号がCLK信号とは非同期にシフトレジスタに取り込まれます。A信号がシフトレジスタの初段のDフリップフロップに取り込まれ、L信号がシフトレジスタの最終段のDフリップフロップに取り込まれます。シフト動作とパラレル入力動作を切り替える制御信号を入力する端子です。INH端子にLを入力すると、CLK信号の立ち上がりに同期してシフトレジスタがシフト動作します。SH/LD端子にLを入力すると、その時のパラレル入力端子(A~H端子)の状態がシフトレジスタに取り込まれます。シフトレジスタをシフトするためのクロック信号の入力端子です。INH端子にLを入力すると、CLK信号の立ち上がりに同期してシフトレジスタがシフト動作します。SH/LD端子にLを入力している場合は、CLK信号は無視されます。CLK信号の動作を妨げる(inhibit)ための信号です。INH端子にHが入力されている時は、CLK信号が無効になり、SH/LD端子にHが入力されていても、CLK信号の立ち上がりで、シフトレジスタはシフト動作しません。INH信号をHに保つ必要があります。シリアル入力端子です。INH端子にLを入力すると、CLK信号の立ち上がりに同期して、SER信号がシフトレジスタの初段のDフリップフロップに取り込まれます。SER端子は主に、複数の74HC165を使用して、16ビット以上のシフトレジスタを構成するために使用されます。正論理のシリアル出力端子です。シフトレジスタの最終段のDフリップフロップの、正論理の出力端子につながっています。負論理のシリアル出力端子です。QH信号を論理反転した信号が出力されます。74HC165の場合は、この端子に2~6Vの範囲の電源を供給します。74HCT165および74LS165の場合は、この端子に5Vの電源を供給します。以下に74HC165の動作について説明します。理解を深めるためには、この用語集のシフトレジスタのページもご覧ください。74HC165の動作原理に興味がなく、74HC165をどのように配線し、にどのような制御信号を与えれば、シリアル-パラレル変換が行えるかを手っ取り早く知りたい方は、パラレル-シリアル変換時の動作波形の項からお読みください。2-1.74HC165の真理値表と等価回路74HC165の真理値表を表2に示します。qGただし、表2には次の記号が使われています。care)↑:立ち上がり(LからHへの遷移)↓:立ち下がり(HからLへの遷移)QA~QG:74HC165の内部信号。シフトレジスタの初段から7段目までのDフリップフロップの出力信号。表2の真理値表を満たす様に74HC165の等価回路を考えると、図2の様になります。図2、74HC165の等価回路この等価回路は、半導体メーカーが公表している物ではなく、表2の真理値表を満たす様に筆者が考えた74HC165の等価回路です。実際の74HC165内部の回路では、Dフリップフロップの入力が負論理(D端子)で、論理の辻褄を合わせるためにSER端子と初段のDフリップフロップの間にNOT回路が入っていたり、2段以降のDフリップフロップのD端子には前段のDフリップフロップのQ端子ではなくQ端子が接続されていたりと、もっと複雑な回路になっています。ここでは、初学者が混乱しない様に、実際の74HC165と等価で(同じ動作で)、より単純な回路を示します。注:Dフリップフロップの詳しい動作については、この用語集のDフリップフロップのページをご覧ください。図2の等価回路の中に、図3の様な回路記号が出てきますが、これは非同期プリセット端子PREと非同期クリア端子CLRを持つ、Dフリップフロップを表しています。非同期プリセット端子PREと非同期クリア端子CLRを持つDフリップフロップは、PRE信号とCLR信号が共にLの場合は、通常のフリップフロップと同様に、クロック(CLK信号)の立ち上がりでD信号を取り込み、Q信号に出力する動作をします。上の回路図に示す様に、非同期プリセット端子(PRE端子)と非同期クリア端子(CLR端子)の両方にLを入力すると、非同期入力のない通常のDフリップフロップと等価になります。下のタイミングチャートにUと書いてある部分がありますが、これは不定を表します。PRE端子がHで、CLR端子がLの場合は、D信号やCLK信号の状態にかかわらず、DフリップフロップにHが書き込まれ、出力信号QはHとなります。その後、PRE端子がLになっても出力信号QはHのままです。図5、非同期プリセット状態のDフリップフロップの回路図と非同期プリセット状態を含むタイミングチャートの例VCCは電源電圧を表します。上の回路図に示す様に、PRE端子にH、CLR端子にLを入力した状態では、D信号やCLK信号の影響を受けず、強制的にQ信号がHになります。下のタイミングチャートにUと書いてある部分がありますが、これは不定を表します。下のタイミングチャートから、非同期プリセット状態でQ信号にHが出力される事と、その後PRE信号がLになって非同期プリセット状態が解除されても、Q信号がHを維持する事が分かります。PRE端子がLで、CLR端子がHの場合は、D信号やCLK信号の状態にかかわらず、DフリップフロップにLが書き込まれ、出力信号QはLとなります。その後、CLR端子がLになっても出力信号QはLのままです。図6、非同期クリア状態のDフリップフロップの回路図と非同期クリア状態を含むタイミングチャートの例VCCは電源電圧を表します。上の回路図に示す様に、PRE端子にL、CLR端子にHを入力した状態では、D信号やCLK信号の影響を受けず、強制的にQ信号がLになります。下のタイミングチャートにUと書いてある部分がありますが、これは不定を表します。下のタイミングチャートから、非同期クリア状態でQ信号にLが出力される事と、その後CLR信号がLになって非同期クリア状態が解除されても、Q信号がLを維持する事が分かります。PRE端子とCLR端子に同時にHを入力する事は禁止されています。参考:PRE端子とCLR端子に同時にHを入力しても、別にDフリップフロップが壊れるわけではありませんが、そういう入力状態の場合のDフリップフロップの動作が、一般には規定されていません。(つまり、そういう入力状態の時に、Dフリップフロップが特定の状態になる事を期待してはいけません)2-3.SH/LD端子がLの場合の74HC165の動作(非同期ロード)非同期プリセット端子と非同期クリア端子を持つDフリップフロップ(図3)の動作が理解できたところで、次にSH/LD端子にLが入力された場合の74HC165の動作について考えます。図2の74HC165の等価回路において、SH/LD端子にLを入力すると、図7に示す様に、等価回路中の16個のAND回路において、片方の入力端子がHに確定します。図7、図2の74HC165の等価回路においてSH/LD端子をLにした場合のAND回路の入力電圧の状態ここで、図8に示す様に、片方の端子にHが入力されたAND回路は、もう一方の入力端子Xの信号を出力端子Yにそのまま出力する事を思い出しましょう。図8、片方の入力端子の電圧をHに固定したAND回路の等価回路VCCは電源電圧を表します。図8の等価回路を利用して図7の回路を書き換えると、図9に示す様に、SH/LD端子をLにした時の74HC165の等価回路が簡略化できます。図9、SH/LD端子をLにした場合の74HC165の等価回路8つのDフリップフロップは、それらの周辺回路が同じですので、図10に示す様に、1段目(一番左)のDフリップフロップに注目します。図10、図9のの74HC165の等価回路から初段のDフリップフロップの周辺回路を取り出した物この図10において、端子AにHを入力すると、DフリップフロップのPRE端子がH、CLR端子がLとなります。そのため非同期プリセット状態になり、Dフリップフロップには、クロック端子やD端子の状態に関係なく、Hが書き込まれます。その結果、出力端子QもHを出力します。一方で、端子AにLを入力すると、DフリップフロップのPRE端子がL、CLR端子がHとなります。そのため非同期クリア状態になり、Dフリップフロップには、クロック端子やD端子の状態に関係なく、Lが書き込まれます。その結果、出力端子QもLを出力します。SH/LD端子にLを入力した状態の74HC165では、A端子に入力する電圧が、初段のDフリップフロップに取り込まれるのです。他の端子(B~H)でも端子に入力する電圧が、対応するDフリップフロップに取り込まれます。これが74HC165のパラレル入力状態(表2の一番上の行に示しています)と呼ばれる状態で、この様にクロックに非同期に端子A~Hの電圧をフリップフロップに取り込む動作を非同期ロードといいます。2-4.SH/LD端子がHの場合の74HC165の動作(保持、シフト)前の節ではSH/LD端子にLを入力した場合を扱いましたが、この節では逆にSH/LD端子にHを入力した場合に何が起こるか考えてみます。図2の74HC165の等価回路において、SH/LD端子にHを入力すると、図11に示す様に、等価回路中の16個のAND回路において、片方の入力端子の電圧がLに確定します。図11、図2の74HC165の等価回路においてSH/LD端子をHにした場合のAND回路の入力電圧の状態VCCは電源電圧を表します。ここで、図12に示す様に、片方の端子にLが入力されたAND回路は、もう一方の入力端子Xの入力がLであれ、Hであれ、出力端子YにLを出力する事を思い出しましょう。図12、片方の入力端子の電圧をLに固定したAND回路の等価回路この事より、図11の回路図中のの16個のAND回路は、全てLを出力する事が分かります。その結果、図11の回路図中の8つのDフリップフロップのPRE端子とCLR端子には、全てLが入力される事が分かります。図4に示した様に、DフリップフロップのPRE端子とCLR端子の両方にLが入力される場合には、PRE端子やCLR端子のないDフリップフロップと等価になります。上の回路図に示す様に、非同期プリセット端子(PRE端子)と非同期クリア端子(CLR端子)の両方にLを入力すると、非同期入力のない通常のDフリップフロップと等価になります。下のタイミングチャートにXと書いてある部分がありますが、これは「不定」を表します。この性質を利用して図11を書き直すと、図13が得られます。INH端子にHが入力される場合と、Lが入力される場合に分けて、図13の回路の動作を考えます。INH端子にHが入力される場合について考えます。INH信号とCLK信号が共に、OR回路に入力されています。ここで、図14の様に片方の入力端子にHが入力されたOR回路は、もう一方の入力端子Xの電圧によらず、出力端子YにはHが出力される事を思い出しましょう。INH端子にHが入力された場合の等価回路は、図15の様になります。INH端子をHにした場合74HC165の等価回路VCCは電源電圧を表します。CLK端子に付いている×印は、CLK端子が回路内のどこにも接続されていない事を示します。INH端子を共にHにした場合は、8つのDフリップフロップのクロック信号が全てHに固定されてしまい、決して立ち上がる事はないため、74HC165内蔵のシフトレジスタは直前の状態を保持します。この動作は、表2の真理値表の上から2行目に示されています。INH端子を設けてあります。これは、回路が動作している間はずっとCLK端子にシステムクロックが入力されている設計の場合に、必要な時のみシフト動作させるためだと思われます。INH端子にLが入力される場合について考えます。INH信号とCLK信号が共に、OR回路に入力されています。ここで、図16の様に片方の入力端子にLが入力されたOR回路は、もう一方の入力端子Xの電圧がそのまま出力端子Yに出力される事を思い出しましょう。INH端子にLが入力された場合の等価回路は、図17の様になります。図17の回路図は、負論理のシリアル出力端子(QH端子)がある事を除けば、典型的な8ビットのシフトレジスタの回路を表しています。この回路は、CLK信号が立ち上がるたびに、Dフリップフロップの記憶した内容が、1つ右のDフリップフロップに移動(シフト)します。初段(一番左)のDフリップフロップには、それよりも左にDフリップフロップがないため、代わりにSER信号を取り込みます。最終段(一番右)のDフリップフリップの出力は、他のDフリップフロップに取り込まれることなくQH端子に出力されます。この様な動作をシフト動作といい、表2の真理値表の一番下の行に示されています。CLK信号が立ち上がる時以外(CLK信号がHの時、Lの時、および立ち下がる時)は、シフトレジスタは直前の状態を保持します。これは表2の真理値表の3~5行目に示されています。INH端子にHを出力するタイミングには注意する必要があります。INH信号をHにしても、シフト動作を止めるには不十分です。INH信号の論理和(OR)です。図19の様に、シフトレジスタを構成する8つのDフリップフロップに供給されるクロック信号は、このICLK信号です。INH信号の立ち上がりでICLK信号も立ち上がってしまいます。INH信号が立ち上がるタイミングでシフト動作が起こってしまいます。INH信号をHに保つ必要があります。INH信号をHに保ちシフト動作を止めた例2-5.パラレル-シリアル変換時の動作波形74HC165は、主にパラレル-シリアル変換のために用いられるICです。パラレル-シリアル変換をするには、まずSH/LD端子にLを入力してパラレル入力端子(A~H端子)からパラレル信号を読み込み、その後SH/LD端子をHに切り替えてから、CLK端子にクロックを7波入力します。図21にパラレル-シリアル変換時のタイミングチャートの例を示します。図21、74HC165で8ビットのパラレル-シリアル変換を行う場合のタイミングチャートの例タイミングチャートにUと書いてある部分がありますが、これは不定を表します。不定の部分では、QH信号やQH信号がHなのかLなのかを予測する事はできませんが、QH信号はQH信号を論理反転したものである事だけは確かです。最初にSH/LD信号をLにしてパラレル信号を74HC165に読み込ませます。図21では、この時に端子A~Hに入力した電圧を、それぞれDA~DHとしています。その後SH/LD信号をHにすると、シフトレジスタに取り込まれる情報が確定します。この時点でDHがQH端子に出力されていますので、これをマイコンなどで読み取ります。その後CLK信号を1波入力します。CLK信号をHに立ち上げた瞬間にDGがQH端子に出力されますので、これをマイコンなどで読み取ります。(CLK信号を立ち下げる前でも後でも構いません。)同じ事を繰り返すと、順にDF、DE、DD、DC、DB、DAの順に、QH端子から信号が読み取れます。INH信号の論理和が各Dフリップフロップにクロック信号として供給されます。INH信号を入れ替えても、74HC165の動作は変わりません。INH信号はCLK信号によるシフト動作を抑制するための信号だと説明してきましたが、これらの信号の働きを入れ替える事もできます。INH"の名称(INHはinhibitの略で、抑止する、抑制する、阻害するなどの意味)の本来の意味が失われてしまい、回路図を読む人の理解の妨げになる可能性があります。3.マイコンなどの入力端子の拡張に74HC165を使う際の配線と制御信号GPIOピンが少ないマイコンなどの入力端子の拡張に74HC165を使う場合は、A~Hのパラレル入力端子を外部からの入力端子として使い、それをQH端子からシリアル信号として取り出し、マイコンに読み込みます。74HC165を制御する信号としてはSH/LD信号とCLK信号の2つが必要ですから、信号を読み取るためのQH信号と合わせて、合計出力2本、入力1本のGPIOが必要になります。マイコンにに74HC165を接続して入力端子を拡張する場合の配線図を、図22に示します。図中のVCCは、電源電圧を表します。QH端子の×印は、どこにも接続されていない事を表しています。この図でマイコンにはOUT0端子とOUT1端子の2つの出力用GPIO端子と、IN端子の1つの入力用GPIO端子があります。INH端子とSER端子は、それらの機能を使わないためGNDに接続してLを入力しています。QH端子は使わない出力端子なので、オープン(どこにも接続しない状態)にしてます。VCC端子は電源線に接続するだけではなく、端子の近傍に0.1μF程度のパスコンを付けます。コンデンサの種類は、高周波特性の良い積層セラミックコンデンサかディスクセラミックコンデンサがいいでしょう。図22の配線ができたら、次は図21の様にSH/LD信号とCLK信号を、OUT0端子とOUT1端子の出力で制御してください。図21に示すタイミングで、QH信号をIN端子から読み取ってください。図21のタイミングチャートでは、SH/LD信号がLの期間は、端子A~Hに入力される信号(DA~DH)が変化しない事を前提にしていました。図22の様に、外部信号の入力端子を増やす目的で74HC165を使用する場合、SH/LD信号がLの期間ずっと外部入力端子の電圧を一定に維持するのは、一般には無理です。いうのは、外部回路からは、いつSH/LD信号がLになっているか分からないですし、仮にそれが分かった所で、その間電圧を維持する事が難しい回路が多くあるからです。(例えば、押しボタンスイッチの状態の検出に74HC165のパラレル入力端子を使う場合は、人はSH/LD信号がHかLかなど考えずにボタンを押すでしょう)そう考えると、図21のタイミングチャートは、パラレル-シリアル変換の動作の基本をよく表してはいるものの、SH/LD信号がLの期間はA~H端子の電圧が変わらない事を仮定している点で、一般性を欠いています。パラレル信号を取り込んだ後、端子A~Hの電圧がLのままになるという必然性もありません。図23は、SH/LD端子の電圧に関係なく端子A~Hの電圧が変化する場合のタイミングチャートの例です。分かりやすい様に、SH/LD信号がLになっている期間を長めに書いています。図23、SH/LD端子の電圧に関係なく端子A~Hの電圧が変化する場合の74HC165によるパラレル-シリアル変換のタイミングチャートの例Uは不定(LかHか分からない状態)を表します。この図のSH/LD信号がLの期間のQH信号とQH信号の変化を見ると分かりますが、H信号の変化に応じて、これらの信号は即座に変化しています。(QH信号はH信号と同じ波形になり、QH信号はH信号の論理反転になっています)そして、SH/LD信号が立ち上がる瞬間にQH信号が確定し、その後はCLK信号が立ち上がるまで、QH信号は変化しません。これはSH/LD信号がLの期間は、シフトレジスタ最終段のDフリップフロップが、H端子を入力端子とするラッチ回路として働いている事を示しています。最終段以外のDフリップフロップの出力端子はICパッケージの外には出ていませんが、これらのDフリップフロップも最終段と同様、SH/LD信号がLの期間は、端子A~Gの信号の変化に応じて出力が変化しており、SH/LD信号が立ち上がる瞬間に出力電圧が確定します。以上の説明の様に、74HC165がパラレル入力端子から取り込む電圧が確定するのは、SH/LD信号が立ち上がる瞬間なのです。QH信号から読み取れる信号も、SH/LD信号が立ち上がる瞬間の電圧となります。5.未使用入力端子の処理74HC165の機能を部分的に使わず、使用しない端子が生じる事があります。出力端子の場合は、使わない端子を単にオープンにする(どこにも接続しない)だけでいいのですが、未使用の入力端子は適切に処理する必要があります。この章では、未使用の入力端子の処理法について説明します。パラレル入力端子(端子A~H)の中で、使わない端子がある場合は、GNDまたはVCCに接続してください。INH端子を必ずGNDに接続してください。SER端子を使わない場合は、GNDまたはVCCに接続してください。趣味の電子工作で74HC165、および同機能のIC(74HCT165等)を使う方を想定して、インターネット上で購入できるサイトへのリンクを集めました。下の表で部品の型番をクリックすると、販売ページにジャンプします。この表は2019年2月時点での情報をまとめたものです。ユニバーサル基板で試作する場合は、DIPパッケージの製品を購入してください。どのメーカーの製品が届くか分からないので、微妙な特性が問題になる場合は要注意。クリア非同期プリセット関連ページウィキペディアのシフトレジスタのページ。Instruments社のSN74HC165の製品紹介ページ。このページはSN74HC165のデータシートを参考に書いた。電子工作ISBN:978-4-7775-1941-5→工学社の書籍の内容の紹介ページ本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。このサイトの中の人が書いた本です。本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。