
■ 日本語フォントROM [GT20L16J1Y] を制御する ■ |
「スイッチサイエンス」で販売されている日本語フォントROM [GT20L16J1Y]のテストです。
AVRにグラフィックLCDを接続してBASCOM-AVRで日本語(漢字)を表示する場合、16x16ドットのフォント・データを各自で用意する必要がありました。
漢字の字数も多いため、フォント・データがAVRのフラッシュ(プログラム領域)を多く占有してしまう難点もあります。
この日本語フォントROM [GT20L16J1Y] は、SOT-23の小さなチップに16ドットの英数字と第一水準、第二水準の漢字フォントが入っており、4本線のSPI通信で制御できます。
2.54mmピッチ変換基板に乗せられた状態で販売されており、安価で取り扱いも簡単です。
ただし、ROM内のフォントの並びが「JIS X 0208」なので、BASCOMのエディターを使い日本語を書き込んだ場合の、「シフトJIS」にコードを変換する必要があります。
BASCOMのグラフィックLCD表示命令「LCDAT]で簡単に表示ができるように、ライブラリを作成しました。
 |
・電源電圧: 2.2V〜3.6V
・消費電流: 8mA(最大) スタンバイ時: 8μA
・クロック周波数: 30MHz(最大)
・記号、英数字: 1644文字
・漢字: 6355文字
・半角(8x16dot)記号、英数字: 96文字
・半角(8x16dot)英数カナ: 256文字
・パソコン機種に依存する文字(NEC拡張、IBM拡張)は
含まれていません。
|
回路の解説 |
1.電源
・使用したグラフィックLCDが5V電源なので、5Vを供給します。
・日本語フォントROM [GT20L16J1Y] は3.3V電源なので、3端子レギュレーターで3.3Vを作って
供給します。
2.AVRとクロック
・AVRマイコンはATmega328P-PUを使用し、クロックは内蔵RC発振器の1MHzで動作しています。
・チップの種類や動作クロック周波数は、任意で選択して下さい。
3.グラフィックLCD
・LCDのコントローラーに、KS0108を使用している物が使用可能です。
4.SPI通信とレベル変換回路
・ソフトウェアSPIとハードウェアSPIのどちらでも使用できますから、接続ポートは任意で選択して
下さい。 (プログラム内で変更可能)
・AVRの電源が5Vなので、[GT20L16J1Y]に送る信号(CS#,SCLK,SI)は、3.3Vへのレベル変換が
必要です。 (ダイオードを使用した、疑似オープンドレイン回路を構成)
・[GT20L16J1Y]からの出力(SO)は、ハイレベルのしきい値電圧をギリギリで満足しているため、
AVRと直結してあります。 (電気的な保証はしません)
・1KΩの抵抗器は、プログラムのミスによりSOに接続するポートを出力にしてしまった場合の
ROMの保護回路です。
・簡易的なレベル変換回路ですから、クロック(SCLK)は1MHzまでにして下さい。
※ [GT20L16J1Y]の規格上、出力ハイレベル電圧が0.8Vcc(Ioh=-100uA)となっていますから、
SPI信号線に他の回路を接続した場合は、ハイレベルが認識できない可能性もありますので、
この簡易回路を使用した回路設計には注意をして下さい。
注意!
この図面を使用した、いかなる損害にも責任を負いません。
|
 ブレッドボードでの試作。 |

(完全版)での表示例 |
プログラムの解説 |
1.ライブラリとサンプルプログラム (試用版)
● 試用版 (漢字は第一水準のみ、8x16ドット半角英数字モードと半角カナ文字は未対応)
※ 上記ライブラリ・ファイル[glcdKS108_JPROM_demo.LBX]を、パソコンの下記フォルダに保存して
下さい。
C:\Program Files (x86)\MCS Electronics\BASCOM-AVR\LIB\
|
2.ライブラリとサンプルプログラム (完全版)
● 完全版 (第一水準、第二水準 漢字対応、8x16ドット半角英数字モードと半角カナ文字を搭載)
※ 頒布のライブラリ・ファイル[glcdKS108_JPROM.LBX]を、パソコンの下記フォルダに保存して下さい。
C:\Program Files (x86)\MCS Electronics\BASCOM-AVR\LIB\
※ 完全版は、商用利用可能です。 (ライブラリの転売、再販、無料配布は不可です)
|
3.ポートピンの設定
・サンプルプログラムの冒頭にある、点線以下の部分を回路構成に合わせて変更して下さい。
1 日本語フォントROM[GT20L16J1Y]の[/CS]ピンを設定。
Jprom_cs Alias Portd.5 日本語フォントROMの[CS#]ピンに接続するポート。
Jprom_csp Alias Portd : Jprom_csb Alias 5 上記のポートとビットを別々に記入。
|
2-1 ソフトウェアSPIの設定。
Config Spi = Soft , Clock = Portd.2 , Dout = Portd.3 , Din = Pind.4 , Ss = None , Mode = 3
Clock = [SCLK] , Dout = [SI] , Din = [SO] ピンに接続するポート名。
2-2 ハードウェアSPIの設定。
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes
, Polarity = High ,
Phase = 1 , Clockrate = 4 , Noss = 1
AVRの動作クロックが高い場合は、Clockrate = 4 を変更して下さい。 (SCLKは1MHz以下)
※ 必ず使用しない方をコメントアウトするか消去して下さい。
|
3 グラフィックLCDの設定。
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , _
Ce = 4 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 2
グラフィックLCDを接続するポート名を記述して下さい。
|
※ 二重線以下の部分は変更しないで下さい。
|
4.8ドットフォント
・[GT20L16J1Y]には8x8ドットのフォントが搭載されていませんので、8x8や6x8ドット文字を
混在する場合は、それぞれのフォントをプログラムに組み込んで下さい。
・各フォント・ファイルは下記にありますから、プログラムと同じフォルダにコピーしておいて下さい。
BASCOM-AVR 付属フォント |
ドキュメント\MCS Electronics\BASCOM-AVR\samples\lcdgraph\font8x8.font |
|
5.LCDAT命令
・グラフィックLCDに文字を表示させる「LCDAT」命令に、直接日本語を記述できます。
Lcdat 1 , 1 , "日本語フォント"
Lcdat 3 , 1 , "ROM [GT20L16J1Y]"
Lcdat 5 , 1 , "漢字を簡単に表示"
Lcdat 7 , 1 , "★ライブラリです" |
|
6.8x16ドット半角英数字モード (完全版)
・[GT20L16J1Y]には8x16ドットの半角縦倍文字が搭載されています。
・変数「Jprom_mode」の設定値により、下記のバリエーションで表示できます。
・LCDAT命令の前で、変数「Jprom_mode」を設定して下さい。
 |
Jprom_mode = 0
ASCII(半角)文字は、8x8ドットで
表示されます。
プログラム内に8ドットフォントを
組み込んで下さい。
|
 |
Jprom_mode = 1
ASCII(半角)文字は、8x16ドットの
太字で表示されます。
|
 |
Jprom_mode = 2
ASCII(半角)文字は、8x16ドットの
細字で表示されます。
(英字と数字のみ細字)
|
|
|