ディスプレイドライバ
ディスプレイドライバは特定のディスプレイコントローラファミリーとそれと関連したすべてのディスプレイに対応しています。ドライバーは必要に応じて環境設定ファイルを修正することができます。環境設定ファイルはハードウェアへのアクセスの仕方、コントローラへのアクセスの仕方といったドライバーに必要な情報をもつファイルのことです。
実行時に変更可能なドライバ
ディスプレイドライバ | 対応コントローラ | 対応 bits/pixel |
---|---|---|
GUIDRV_BitPlains | コントローラなしで利用できます。 ディスプレイドライバのないTFTディスプレイである R32C/111を想定して開発されたドライバです。 | 1 - 8 |
GUIDRV_DCache | ダブルキャッシュを管理するキャッシュドライバです。これはキャッシュデータをドライバからわけて管理し、描画の要求の前にデータを変換しておき直ぐに表示て切るようにしておきます。 | 1 (必要に応じて拡張できます) |
GUIDRV_Dist | 複数のコントローラをサポートするドライバ | ディスプレイドライバに依存します |
GUIDRV_FlexColor | Epson S1D19122 FocalTech FT1509 Himax HX8301, HX8325A, HX8340, HX8347, HX8352, HX8353 Ilitek ILI9220, ILI9221, ILI9320, ILI9325, ILI9328, ILI9335, ILI9338, ILI9340, ILI9341, ILI9342, ILI9481 LG Electronics LGDP4531, LGDP4551 Novatek NT39122 OriseTech SPFD5408, SPFD54124C, SPFD5414D Renesas R61505, R61516, R61526, R61580 Samsung S6D0117, S6E63D6 Sitronix ST7628, ST7637, ST7687, ST7712, ST7735 Solomon SSD1355, SSD1961, SSD1963, SSD2119 Syncoam SEPS525 |
16, 18 |
GUIDRV_IST3088 | Integrated Solutions Technology IST3088, IST3257 | 4 |
GUIDRV_Lin | emWin display driver supporting each display controller with linear addressable video memory with a direct interface. This means that the video RAM is directly addressable by the address lines of the CPU. The driver contains no controller specific code. So it can also be used for solutions without display controller which require a driver which only manages the video RAM. This driver supports nearly all built-in display controllers. | 1, 2, 4, 8, 16, 24, 32 |
GUIDRV_S1D13748 | Epson S1D13748 | 16 |
GUIDRV_S1D13781 | Epson S1D13781 | 8 |
GUIDRV_S1D15G00 | Epson S1D15G00 | 12 |
GUIDRV_SLin | Epson S1D13305, S1D13700 (indirect interface only!) Solomon SSD1848 Toshiba T6963 UltraChip UC1617 |
1, 2 |
GUIDRV_SPage | Epson S1D15E05, S1D15E06, S1D15605, S1D15606, S1D15607, S1D15608, S1D15705, S1D15710, S1D15714, S1D15719, S1D15721 Integrated Solutions Technology IST3020 New Japan Radio Company NJU6676 Novatek NT7502, NT7534, NT7538, NT75451 Samsung S6B0719, S6B0713, S6B0724, S6B1713 Sino Wealth SH1101A Sitronix ST7522, ST7565, ST7567, ST7591 Solomon SSD1303, SSD1305, SSD1805, SSD1815 Sunplus SPLC501C UltraChip UC1601, UC1606, UC1608, UC1611, UC1701 |
1, 2, 4 |
GUIDRV_SSD1926 | Solomon SSD1926 | 8 |
コンパイル時に変更可能なドライバ
Display driver | Supported controllers | Supported bits/pixel |
---|---|---|
GUIDRV_CompactColor_16 | Ampire FSA506 Epson S1D13742, S1D13743, S1D19122 FocalTech 1509 Himax HX8301, HX8312A, HX8325A, HX8340, HX8347, HX8352, HX8352B, HX8353 Hitachi HD66766, HD66772, HD66789 Ilitek ILI9161, ILI9220, ILI9221, ILI9320, ILI9325, ILI9326, ILI9328, ILI9342, ILI9481 LG Electronics LGDP4531, LGDP4551 MagnaChip D54E4PA7551 Novatek NT39122, NT7573 OriseTech SPFD5408, SPFD54124C, SPFD5414D, SPFD5420A Renesas R61505, R61509, R61516, R61526, R61580, R63401 Samsung S6D0110A, S6D0117, S6D0129, S6D04H0 Sharp LCY-A06003, LR38825 Sitronix ST7628, ST7637, ST7687, ST7712, ST7735, ST7787 Solomon SSD1284, SSD1289, SSD1298, SSD1355, SSD1961, SSD1963, SSD2119 Toshiba JBT6K71 |
16 |
GUIDRV_Fujitsu_16 | Fujitsu MB87J2020 (Jasmine) Fujitsu MB87J2120 (Lavender) |
1, 2, 4, 8, 16 |
GUIDRV_Page1bpp | Epson S1D10605, S1D15605, S1D15705, S1D15710, S1D15714, S1D15721, S1D15E05,S1D15E06, SED1520, SED1560, SED1565, SED1566, SED1567, SED1568, SED1569, SED1575 Hitachi HD61202 IST IST3020 New Japan Radio Company NJU6676, NJU6679 Novatek NT7502, NT7534, NT7538, NT75451 Philips PCF8810, PCF8811, PCF8535, PCD8544 Samsung KS0108B, KS0713, KS0724, S6B0108B, S6B0713, S6B0719, S6B0724, S6B1713 Sino Wealth SH1101A Sitronix ST7522, ST7565, ST7567 Solomon SSD1303, SSD1805, SSD1815, SSD1821 ST Microelectronics ST7548, STE2001, STE2002 Sunplus SPLC501C UltraChip UC1601, UC1606, UC1608, UC1701 |
1 |
GUIDRV_07X1 | Novatek NT7506, NT7508 Samsung KS0711, KS0741, S6B0711, S6B0741 Sitronix ST7541, ST7571 Solomon SSD1854 STMicroelectronics STE2010 Tomato TL0350A |
2 |
GUIDRV_1611 | Epson S1D15E05, S1D15E06, S1D15719 UltraChip UC1610 UltraChip UC1611, UC1611s |
2 2 4 |
GUIDRV_6331 | Samsung S6B33B0X, S6B33B1X, S6B33B2X | 16 |
GUIDRV_7529 | Sitronix ST7529 | 1, 4, 5 |
注:上記にないディスプレイドライバをお探しの場合、ポジティブワンにご連絡下さい。標準的なハードウェアのためのディスプレイドライバは開発を続けており、追加料金なしでご利用いただけるようになります。
CPU/ディスプレイコントローラインターフェース
ディスプレイコントローラによってCPUインターフェースも異なります。基本的に2つのインターフェースがあります。
- ダイレクトインターフェース
- インダイレクトインターフェース
ダイレクトインターフェスがCPUのアドレスバスを使って直接ビデオメモリにアクセスするのに対して、インダイレクトインターフェースはディスプレイドライバとのもっと複雑なやりとりが必要になります。以下の4種の方法があります。
- パラレルアクセス
- 4ピンSPIインターフェース
- 3ピンSPIインターフェース
- I2cバスインターフェース
つづいて上記のインターフェースとその環境設定方法について説明します。すべての設定を構築する必要はなく、ディスプレイドライバによって必要なものだけ構築すればいいことに注意して下さい。
ダイレクトインターフェース
ディスプレイによっては(特に高解像度のディスプレイ)ダイレクトアドレスバスを必要とします。すなわち少なくとも14アドレスビットの接続が必要です。ダイレクトインターフェースではビデオメモリーがCPUによって直接アクセス可能になっています。つまりディスプレイの使用するアドレスバスはディスプレイコントローラに直接接続されています。ダイレクトインターフェースを構築するときに必要な情報は以下のことです。
- ビデオメモリアクセスのための基準アドレス
- レジスタアクセスのための基準アドレス
- 隣接するビデオメモリ間の距離(通常1/2/4バイト)
- 隣接するレジスタ間の距離(通常1/2/4バイト)
- ビデオメモリへのアクセスタイプ(8/16/32ビット)
- レジスタへのアクセスタイプ(8/16/32ビット)
典型的なブロック図
インダイレクトインターフェース-パラレルバス
小さいディスプレイ用のコントローラのほとんどはCPUアクセスのためにインダイレクトインターフェースを利用します。インダイレクトインターフェースでは1アドレスビットのみ(通常A0)がLCDと接続します。またこれらのコントローラの中には動作スピードが遅いものが有り、そのためCPUの動作を安定化させるためにハードウェアデザイナーはLCDをアドレスバスに接続させるのではなくI/Oピンに接続させると判断するかもしれません。
典型的なブロック図
8(16)データビット、1アドレスビットと2,3本のコントロールラインが必要になります。それぞれのコントローラへの接続法を記した4つのマクロがLCDコントローラ側に必要になります。このマクロはLCDコントローラがCPUのアドレスバスに直接接続していれば1行足らずのものになりますが、LCDコントローラがI/Oピンに接続されている場合5-10行程度のものになります。
インダイレクトインターフェース-4ピンSPI
パラレルインターフェースでよく利用されます。A0、CLK、DATA、CSの4つを使用します。
典型的なブロック図
注:通信のためにポートピンを使用しているため動作が非常に遅くなります。ハードウェア側での通信の最適化が必要となります。
インダイレクトインターフェース-3ピンSPI
CLK、DATA、CSの3つを使用します。
典型的なブロック図
インダイレクトインターフェース-I2Cバス
典型的なブロック図