しなぷすのハード製作記

ArduinoでグラフィックLCDを動かす(AQM1248A編)(6)

ツイート
シェア
このエントリーをはてなブックマークに追加
フォロー
目次へ  前のページへ (2) (3) (4) (5) (6) (7) (8) (9) (10) 次のページへ
2016年04月02日 公開。
3-6-2-3.74HC4050を使う方法

TwitterでAQM1248AとArduinoを接続するためのレベル変換回路の話をしていたら、「74AHC244は秋月電子で売っていない。AQM1248Aとレベル変換ICとを別の店で買うと、送料が余計にかかる」という意見をいただきました。また、同じ方から「秋月電子でDIP品が手に入る74HC4050は使えないか?」という提案もいただきました。

結論からいうと、74HC4050も使えます。そこで今回は、74HC4050を使うレベル変換回路について説明します。

図37に、74HC4050のピン配置を示します。ご覧のように、バッファを6個内蔵したICです。

図37、74HC4050のピン配置
↑ 画像をクリックすると拡大
図37、74HC4050のピン配置
NCは、そのピンが電気的にどこにもつながっていない未使用ピンである事を示す。

74HC4050の大きな特徴は、15Vまで(推奨動作条件では15Vまで、絶対最大定格では16Vまで)の入力電圧を許容する事です。ちなみに、通常の74HCシリーズのIC(例えば74HC04など)では、電源電圧を超える入力電圧は許されません。

そのため、74HC4050を3.3Vの電源電圧で使用すると、5Vのロジック信号を3.3Vのロジック信号に変換できます。74HC4050は、まさに高電圧から低電圧への、ロジック信号のレベル変換のためのICだといえます。(もちろん波形成形や、電流増幅によるファンアウトの増加のために利用することもできるが、データシートを見ても、レベル変換に利用できる事を強調してある)

74HC4050を、前のページで紹介した74AHC244と比較すると、主に次の表の様な違いがあります。

表5、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の場合)に従って配線してください。

図38、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
↑ 画像をクリックすると拡大
図38、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ハードウェアSPI)
図39、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
↑ 画像をクリックすると拡大
図39、74HC4050を使ってAQM1248Aを5V動作のArduinoに接続する場合の配線図(ソフトウェアSPI)
Arduino Unoの場合は、11番端子とSPI-4端子、および13番端子とSPI-3端子がArduino内部で接続されているので、図38の結線と電気的に等価。

図38および図39の配線を行った試作回路の写真を、それぞれ写真18と写真19に示します。

写真18、74AHC4050を使ってAQM1248AをArduino Unoに接続した例(ハードウェアSPI)
↑ 画像をクリックすると拡大
写真18、74AHC4050を使ってAQM1248AをArduino Unoに接続した例(ハードウェアSPI)
写真19、74AHC4050を使ってAQM1248AをArduino Unoに接続した例(ソフトウェアSPI)
↑ 画像をクリックすると拡大
写真19、74AHC4050を使ってAQM1248AをArduino Unoに接続した例(ソフトウェアSPI)

図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の入出力波形
↑ 画像をクリックすると拡大
図40、74HC4050の入出力波形
CH1(黄色)が入力波形。CH2(水色)が出力波形。
図19(再掲)、74HC244の入出力波形
↑ 画像をクリックすると拡大
図19(再掲)、74HC244の入出力波形
CH1(黄色)が入力波形。CH2(水色)が出力波形。

図40の波形を見る限りでは、恐れていたほど伝搬遅延時間は大きくないようです。74HC4050の伝搬遅延時間は5.2nsと、74AHC244の3.2nsと比べても、わずかの劣化にすぎません。

データシートには、負荷容量CL(つまり寄生容量)が50pFの時の伝搬遅延時間しか載っていませんでしたが、実際には寄生容量がそこまで大きくなかったのが一因だと思われます。(4ページの最後の方で抵抗分圧型レベル変換回路の場合の寄生容量を見積もった際も35.5pFだった) 寄生容量が減れば、それだけ伝搬遅延時間も短くなります。

実際にSPIのクロックを8MHzに設定してAQM1248Aを動作させても、安定した描画が行えている様子でした。

ただし、配線の仕方によっては寄生容量が増加する可能性もありますし、伝搬遅延時間には個体差もあります。さらに、今回は約22℃の気温で測定を行いましたが、低温や高温で動作させた場合に、伝搬遅延時間が増加する可能性もあります。それらの事を考慮すると、確実に動作させるには、4MHzまでのクロックで動作させる方が良さそうです。(注:8ビットのArduinoは、4MHzと8MHzの中間のクロック周波数に設定できない)

一方で、74HC244の場合は、最悪の状態を想定しても、データシート上の保証値から見て、20MHzのクロックでも十分動作しそうです。

広告
【コラム】74HC4XXXについて

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が存在することを、私は知りませんでした。

ArduinoとAQM1248Aの接続方法の話はこれで終わりです。次回は、いよいよソフトウェアについて説明する予定です。続きを書くのはぼちぼちと。

ツイート
シェア
このエントリーをはてなブックマークに追加
フォロー
目次へ  前のページへ (2) (3) (4) (5) (6) (7) (8) (9) (10) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

122X32モノクログラフィックLCDシールド 商品名 122X32モノクログラフィックLCDシールド
税抜き小売価格 3333円
販売店 スイッチサイエンス 妙楽堂
サポートページ
GLCD学習シールドキット 商品名 GLCD学習シールドキット
税抜き小売価格 1410円
販売店 スイッチサイエンス 妙楽堂 三月兎
サポートページ
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
サイトマッププライバシーポリシーお問い合わせ用語集
しなぷすのハード製作記