ここから本文です
普通のソフトウェアエンジニアが、半田ごて片手に組込み機器にチャレンジします。

書庫全体表示

先日、スイッチサイエンスさんから届いた漢字フォントROM(GT20L16J1Y)を試食してみました。

イメージ 1

このチップは、SPIでアドレスを指定すると漢字の16x16ビットマップ(32バイト)を返してくれます。
液晶や、ドットLCDにこれらを表示することが可能になります。
※仕様書には、16x15とあり1ライン分は区切りラインを意味しますが、まあ16x16でいいでしょう。

直ぐに使う予定はありませんが、とりあえず動作させることができたので次回使うときに忘れないように備忘録としてメモしておくことにします。

■データシート
いろんなデータシートがあり、情報が不足している簡易版だったりするので、いろいろ探していたららフルで情報がのっているPDFを見つけることができました。
ここ(PDF) にありました。
使うときは、目を通して置くのが良いでしょう。(中文ですが・・・)

■ハードウェア
このチップは、3.3VのSPI通信します。手元にあるGR-KURUMIを利用してアクセスすることにしました。
丁度、3.3VだしSPIもこなれた感じなのでブレッドボードで結線しました。
特に外付け部品はなく、ダイレクトに配線しています。

イメージ 2


イメージ 3

※写真と線の色は異なります。

■プログラム

mbed用のプログラムを参考にさせていただきました。
こちら 私はWeb上では参照できないのでダウンロードして確認しました。

肝は、ROMのアドレス変換にあります。
データシートには、変換アルゴリズム(中文)が記載されています。(笑)
それが、上記のプログラムにも同じように記載されていますのでその変換に従います。

変換した24bitアドレスを以下のような制御で送信し、32BYTEリードすればデータを読み込むことができます。

イメージ 4

★プログラム的には以下な感じです。

uint32_t Address = get_font_rom_addr(code);

// SSをLOWにする
digitalWrite(PIN_SPI_SS, LOW);

// アドレスを送信する。
SPI.transfer(0x03);
SPI.transfer(Address >> 16 & 0xff);
SPI.transfer(Address >> 8 & 0xff);
SPI.transfer(Address & 0xff);

// ダミーデータを送ってデータを32バイト分読み込む
for(int i=0; i<32; i++)
{
data[i]=SPI.transfer(0x00);
}

// SSをHIにする
digitalWrite(PIN_SPI_SS, HIGH);

★あと、GR-KURUMIの場合、SPIの初期設定は以下になります。

// SPI通信設定
SPI.begin();
SPI.setBitOrder(MSBFIRST); // MSB First
SPI.setClockDivider(SPI_CLOCK_DIV2); // DIV2 8MHz 最大
SPI.setDataMode(SPI_MODE3); // アイドル時のクロックがHigh、立ち下がりでサンプリング

※全部貼ってもいいのですが、mbedサンプル参考にしているので全部は止めておきますね。

■表示

あとはご自由にお好きなディスプレイに表示すればOK.
とりあえず、コンソールで出力してみました。

イメージ 5

液晶、LCDだけでなく、家にあるサーマルプリンタに出力しても良いと思ってます。

■追記(2014/2/9 11:00)
もう一点注意箇所がありました。

受信した32BYTEのデータの表示データ構造が以下のようになっています。
※データシートには記載がありますが・・・
なので、受信したビットマップをシーケンシャルに表示しても何のデータか良く分からない可能性があります。
表示するデバイスに応じてビット列を変換する必要があると思います。
私はこれが一番はまったかも。

イメージ 6

  • 顔アイコン

    ROMのフォーマットの件、自分でROMを作る時もどういうフォーマットにしようかいつも迷います。LCD的には縦16ドット(2バイト)が連続していた方が扱いやすいですしね。アドレスで16バイト先を計算して、、はちょっとめんどくさいデス。 削除

    [ yamachu3 ]

    2014/2/21(金) 午後 9:10

    返信する
  • 顔アイコン

    こんにちは
    フォントの読み出しはすぐできましたが不思議なことに電源ピンに3.3V繋がなくてもデータ読み出しできます。
    これはどういうことか不思議です。 削除

    [ cas ]

    2014/5/27(火) 午後 6:49

    返信する
  • 顔アイコン

    すぐに取り出せないので試せないのですが、そんなことがあるんですね。

    [ car**n999 ]

    2014/5/27(火) 午後 8:23

    返信する

顔アイコン

顔アイコン・表示画像の選択

絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
  • 名前
  • パスワード
  • ブログ

本文はここまでですこのページの先頭へ
みんなの更新記事