ハードウエアの整合性チェック
手元にあるLCDディスプレイのデータシートから パラメータを抜き出し、検討しました。 LCDディスプレイは、CRTコントローラの出力 信号に似た信号を受けるように設計されているので 次のパラメータを見ます。データシートに記述された数値を読んで、CAT760の ハードウエアとSH-4内蔵LCDコントローラの動作 を検討します。
- 垂直同期信号(VSYNC)
- 水平同期信号(HSYNC)
- ドットクロック(DCLK)
- RGB信号
垂直同期信号
垂直ラインは、最低251H必要となっています。 このHは、Horizontal Lineの意味で、1ラインを指します。 表示するのは、240H(240ライン)ですが、表示の タイミングを取るために、余分なライン数を加えることに なっています。垂直帰線区間と、ひとくくりします。 垂直同期信号のため、最低3H(3ライン)は電圧レベルが Lです。そして表示開始前に4H(4ライン)、表示終了後 に4H(4ライン)を入れます。これは、表示の1〜240 Hは、固定ですが、3H、4H、4Hは最低限確保するカウ ント値になっています。上の図を、少し変形して、次のようにします。 (フロントポーチとバックポーチを0にします。) こうすると、SH-4のLCDコントローラがもつ レジスタへの設定値がわかりやすくなります。
![]()
水平同期信号
水平1ラインの出力時間は、最低379D必要です。 このDは、Dot clockの意味で、1クロックを指します。 水平同期信号のため、最低3D(3クロック)は電圧レベル がLです。表示開始前に48D(48クロック)、表示終了 後に8D(8クロック)を入れます。これは、表示320D を固定にしたとしても、3D、48D、8Dは最低確保する クロック値になっています。上の図を、少し変形して、次のようにします。 (フロントポーチとバックポーチを0にします。) こうすると、SH-4のLCDコントローラがもつ レジスタへの設定値がわかりやすくなります。
![]()
ドットクロック
水平、垂直を合せて、1回の画像表示に必要となるドット 数は、最低379x251=95129になります。 利用するLCDディスプレイでは、垂直同期信号の周期は 12.5ms〜20.0msと規定されています。 この周期の最大値と最小値から、ドットクロックの範囲を 計算できます。 95129 / 12.5ms = 7610.32 kHz = 7.61032 MHz 95129 / 20.0ms = 4756.45 kHz = 4.75645 MHz これで、ドットクロックは、4.7MHz〜7.6MHz であれば、充分となります。 この範囲にある5MHzを採用したとすると、1周期は200ns になります。10MHzを採用したとすると、1周期は100ns になります。 ドットクロックの周期は、データシートで最小100nsですが、 7.6MHzが最高なので、実際に与えるクロックの周期は 130nsが最高になります。 この値以上であれば、よいことになります。 何故、この計算をしたかというと、LCDコントローラが 出力できるドットクロックにあるかを検証するためです。 また、LCDディスプレイの論理レベルは、5.0Vを基準 としているのに、SH-4では3.3Vを基準とします。 電圧変換バッファICで、このレベル差を埋めます。 今回は、74HCT541を利用しました。これで、3.3V→5.0V変換 をします。ICを入れると、遅延時間が発生するため、繰返し 周期が決まってしまいます。そこで、1周期を求めました。
再計算
ドットクロックの最高値が130nsと求められたので、CAT760 のLCDコントローラが、これを満足する信号を出力可能 かを検討します。 SH-4(SH7760)のデータシートを読むと、外部から与えられる クロックを分周し、ディスプレイのドットクロックとして出力 可能と記されています。 この分周比は、1:1、1:2、1:4、1:8、1:16で、CAT760には 外部から25MHzがLCDコントローラに入力されています。 分周比と外部に出力するドットクロックの関係は、以下と なります。分周比を、1:4とすると、6.25MHzになるので、LCD ディスプレイのドットクロックの範囲4.7MHz〜7.6MHz に入ることがわかります。 これで、LCDコントローラから出力するドットクロック を、ディスプレイに接続できることを検証できました。
- 1:1 -> 25.0000MHz
- 1:2 -> 12.5000MHz
- 1:4 -> 6.2500MHz
- 1:8 -> 3.1250MHz
- 1:16 -> 1.5625MHz
RGB信号
RGB信号は、それぞれ3ビットずつ入力します。 このとき、LCDディスプレイ内部では、ドットクロック を利用して、RGBの合計9ビットを記憶(ラッチ)します。 ラッチするには、クロックの↓のエッジを使います。 このエッジからどれだけ前にデータが確定しているかと どれだけ後までデータに変化がないかを規定されています。 これらを満たさないと、正しく表示できないのです。エッジからどれだけ前にデータが確定しているかと示す時間 をセットアップタイムと呼びます。 エッジからどれだけ後までデータに変化がないかを示す時間 をホールドタイムと呼びます。 セットアップタイムが30ns、ホールドタイムが20nsです。 ドットクロックの周期を130nsとすると、↑と↓のエッジ間が 65ns程度になります。通常は、↑でデータを出力するため、 ドットクロックの↑から30ns遅れて出力されても、 65ns-30ns=35ns 程度前にはデータが確定しているので、セットアップタイムを 満足します。また、ドットクロックの↑でデータを出力すると なれば、↓から65ns(最小)はデータに変化がありません。 従って、ホールドタイムを満足することになります。 これは、7.6MHzを採用したときで、ドットクロックに6.25MHz を採用すると、実際のセットアップタイム、ホールドタイムは 大きくなるので、データシートに規定された値を満足します。
DIPスイッチ設定
SH-4の内蔵LCDコントローラに、25MHzのクロックを 入力しないと、表示ができません。 マニュアルに従って、DIPSW(SW1)の4ビット目を ONにします。 これを忘れて、まったくLCDに表示できないで、焦りました。(^^;