■ 日本語フォント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信号線に他の回路を接続した場合は、ハイレベルが認識できない可能性もありますので、
   この簡易回路を使用した回路設計には注意をして下さい。

回 路 図  PDF版 GT20L16J1Y_Test_Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。


ブレッドボードでの試作。
 
(完全版)での表示例



プログラムの解説
 
1.ライブラリとサンプルプログラム (試用版)

 
試用版 (漢字は第一水準のみ、8x16ドット半角英数字モードと半角カナ文字は未対応)
プログラム  テキスト形式 ソースファイル  GT20L16J1Y_Test_demo.TXT (4KB)
 BASCOM-AVR用 ソース
 ライブラリ
 GT20L16J1Y_Test_demo.bas (4KB)
 glcdKS108_JPROM_demo.LBX (12KB)
 
 ※ 上記ライブラリ・ファイル[glcdKS108_JPROM_demo.LBX]を、パソコンの下記フォルダに保存して
   下さい。
    C:\Program Files (x86)\MCS Electronics\BASCOM-AVR\LIB\

 
2.ライブラリとサンプルプログラム (完全版)

 
完全版 (第一水準、第二水準 漢字対応、8x16ドット半角英数字モードと半角カナ文字を搭載)
プログラム  BASCOM-AVR用 ソース
 ライブラリ
 GT20L16J1Y_Test.bas (5KB)
 glcdKS108_JPROM.LBX (13KB)
 完全版のライブラリは、頒布室にて頒布いたします。
 
 ※ 頒布のライブラリ・ファイル[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
 
O-Family オリジナル フォント (英数字のみ。プログラムメモリー節約のため、カタカナを排除。)
横8dot×縦8dot  OFfont8x8.font 横6dot×縦8dot  OFfont6x8.font
オリジナル・フォントの作り方  グラフィックLCD用 フォント・エディターの使用方法

 
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ドットの
 細字で表示されます。
 (英字と数字のみ細字)





   電子工作の部屋 Top へ 前のページへ戻る