2016年04月02日 | 公開。 |
TwitterでAQM1248AとArduinoを接続するためのレベル変換回路の話をしていたら、「74AHC244は秋月電子で売っていない。AQM1248Aとレベル変換ICとを別の店で買うと、送料が余計にかかる」という意見をいただきました。また、同じ方から「秋月電子でDIP品が手に入る74HC4050は使えないか?」という提案もいただきました。
結論からいうと、74HC4050も使えます。そこで今回は、74HC4050を使うレベル変換回路について説明します。
図37に、74HC4050のピン配置を示します。ご覧のように、バッファを6個内蔵したICです。
74HC4050の大きな特徴は、15Vまで(推奨動作条件では15Vまで、絶対最大定格では16Vまで)の入力電圧を許容する事です。ちなみに、通常の74HCシリーズのIC(例えば74HC04など)では、電源電圧を超える入力電圧は許されません。
そのため、74HC4050を3.3Vの電源電圧で使用すると、5Vのロジック信号を3.3Vのロジック信号に変換できます。74HC4050は、まさに高電圧から低電圧への、ロジック信号のレベル変換のためのICだといえます。(もちろん波形成形や、電流増幅によるファンアウトの増加のために利用することもできるが、データシートを見ても、レベル変換に利用できる事を強調してある)
74HC4050を、前のページで紹介した74AHC244と比較すると、主に次の表の様な違いがあります。
74HC4050 (このページで紹介) |
74AHC244 (前のページで紹介) |
|
---|---|---|
電源電圧(推奨値) | 2~6V | 2~6V(74HC4050と同じ) |
ピン数 | 16ピン | 20ピン |
バッファの個数 | 6個 | 8個 |
バッファの形式 | 普通のバッファ | 3ステートバッファ |
入力電圧の範囲(推奨値) | 0~15V | 0~7V |
動作速度 |
低速
tpd=85ns max@VDD=2V、25℃、CL=50pF
tpd=17ns max@VDD=4.5V、25℃、CL=50pF
|
高速
tpd=11.9ns max@VDD=3.0~3.6V、25℃、CL=50pF
tpd=7.5ns max@VDD=4.5~5.5V、25℃、CL=50pF
|
この表を見ると、74HC4050が74AHC244に比べて、動作速度の点で劣っているのが少し気になります。
2ページの最後で説明した様に、AQM1248Aの最短のバスサイクル時間は50nsです。レベル変換ICの伝搬遅延時間は、その半分の25nsより十分短い事が望ましいのですが、どうやら74HC4050の伝搬遅延時間の最悪値は25nsを上回りそうです。(4.5Vで17ns max、2Vで85ns maxという記述しかデータシートに載っていないが、3.3Vはそれらの値の間になるはず。断言はできないが、おそらく25nsを上回っている)
その点、74AHC244だと3.3Vにおける伝搬遅延時間が11.9ns以内になることが保証されており、安心してAQM1248Aを最高速度で動作させられます。
5V動作のArduinoで利用する事に限定すれば、SPIのクロック周波数の上限は8MHzとなり、最短のバスサイクル時間は125nsとなります。その半分だと62.5nsという事になりますが、それでも74HC4050では安定動作するかどうかちょっと不安になるところです。
とはいえ、動作が間に合わなければ、SPIのクロック周波数を落とせばいいだけなので、若干表示速度が落ちるのを我慢すれば使えるでしょう。
74HC4050を、5V動作のArduinoとAQM1248Aの接続に使用するレベル変換に使う場合、図38(ハードウェアSPIの場合)あるいは図39(ソフトウェアSPIの場合)に従って配線してください。
Arduino Unoの場合は、11番端子とSPI-4端子、および13番端子とSPI-3端子がArduino内部で接続されていますので、図38の結線と電気的に等価です。
図38および図39の配線を行った試作回路の写真を、それぞれ写真18と写真19に示します。
図38の配線(ハードウェアSPI)を行った場合、動作試験のスケッチは3ページのリスト1になります。
図39の配線(ソフトウェアSPI)を行った場合、動作試験のスケッチは3ページのリスト2になります。
これら2つのスケッチは、Arduino IDE 1.0.X、1.6.Xおよび1.7.Xで動作します。(Arduino IDE 1.0.6、1.6.7および1.7.8とArduino Uno、Arduino LeonardoおよびArduino Mega2560の組み合わせ、計9通りで動作確認済み)
74HC4050の伝搬遅延時間が気になっていましたので、オシロスコープで確認してみました。図40に、74HC4050の入出力波形を示します。この波形は、図38において、74HC4050の7番ピン(入力側、CH1)と6番ピン(出力側、CH2)で測定しました。
比較のために、74AHC244で同様の測定をした波形(図19)も、再掲しておきます。
図40の波形を見る限りでは、恐れていたほど伝搬遅延時間は大きくないようです。74HC4050の伝搬遅延時間は5.2nsと、74AHC244の3.2nsと比べても、わずかの劣化にすぎません。
データシートには、負荷容量CL(つまり寄生容量)が50pFの時の伝搬遅延時間しか載っていませんでしたが、実際には寄生容量がそこまで大きくなかったのが一因だと思われます。4ページの最後の方で抵抗分圧型レベル変換回路の場合の寄生容量を見積もった際も35.5pFだった) 寄生容量が減れば、それだけ伝搬遅延時間も短くなります。
実際にSPIのクロックを8MHzに設定してAQM1248Aを動作させても、安定した描画が行えている様子でした。
ただし、配線の仕方によっては寄生容量が増加する可能性もありますし、伝搬遅延時間には個体差もあります。さらに、今回は約22℃の気温で測定を行いましたが、低温や高温で動作させた場合に、伝搬遅延時間が増加する可能性もあります。それらの事を考慮すると、確実に動作させるには、4MHzまでのクロックで動作させる方が良さそうです。(注:8ビットのArduinoは、4MHzと8MHzの中間のクロック周波数に設定できない)
一方で、74HC244の場合は、最悪の状態を想定しても、データシート上の保証値から見て、20MHzのクロックでも十分動作しそうです。
74HCシリーズのICは通常、74シリーズのTTLを同一機能、同一ピン配置のCMOSに置き換えたものです。例えば74HC04は、7404というTTLをCMOS化したものになります。
ただし、74HCの後に4で始まる4桁の数字が続くIC(以後74HC4XXXと呼ぶ)は、74HCシリーズの登場の前からあり、そして今でも使われている4000シリーズというCMOS ICを高速化したものになります。(74HCシリーズのHCは、High-speed CMOSの略。74HCシリーズは、今では特に高速というイメージはないが、74HCシリーズができた当初、4000シリーズよりも高速だったのでこの名称になった。ちなみに74AHCシリーズのAHCは、Advanced High-speed CMOSの略)
そのため、74HC4XXXは、他の74HCシリーズとは違った特徴を持っている物が多いです。例えば比較的よく使われる74HC4046(VCO付きPLL回路)や74HC4066(アナログスイッチ)はアナログICであり、ロジックICですらありません。(別のいい方をすれば、4000シリーズの中でも74シリーズのTTLと同様の機能のICは、わざわざ74HC4XXXとして商品化される事はないので、必然的に74HC4XXXには毛色の変わったICが多くなる)
74HC4050の基となった4050というCMOS ICは、74HC4050と同じく、電源電圧よりも高い入力電圧を加えても壊れないように回路構成を工夫した、6回路バッファICです。
74HC4050は、そういう経緯で、74HCシリーズとしては例外的に、電源電圧より高い入力電圧を印加できます。TwitterでこのICの話が出るまでは、74HCシリーズに、電源電圧を超える入力電圧を許容するICが存在することを、私は知りませんでした。
次のページからは、いよいよソフトウェアについて説明します。
商品名 | 122X32モノクログラフィックLCDシールド | |
税抜き小売価格 | 3333円 | |
販売店 | スイッチサイエンス | |
サポートページ | 122X32モノクログラフィックLCDシールドサポートページ |
商品名 | GLCD学習シールドキット | |
税抜き小売価格 | 1410円 | |
販売店 | スイッチサイエンス | |
サポートページ | GLCD学習シールドキットサポートページ |