aitendo C128X64SPI-12P-M with FRDM KL25Z

Dependencies:   mbed

/media/uploads/masato/c128x64spi-12p_2.jpg

aitendo の FSTN液晶モジュール(128x64/SPI)[C128X64SPI-12P-M] を KL25Z につないでみました。今のところ、ドット、ライン操作までしか用意できていません。コントローラ仕様によるとデバイスからデータを取得することができるのですが、シリアル(SPI)ではできないことになっているため、フレームバッファは自前で持っています。テスト用にドラゴン曲線を表示させてみました。

ところで aitendo の商品説明ページ中の FPCケーブル取り付け例の写真は誤っていました(修正された模様)。また、キャリーボードでの LCD とバックライトの GND と電源は直結されているようです。ついでにサンプルのコードでのフレームバッファの使い方にも誤りがありますからドット単位で操作する場合には注意が必要です。

2014.03.12
q61.org さんの Chibimo 表示器として使えるようにしてみました。ドラゴン曲線を描いた後、ホストからの Chibimo データを処理します。KL05 とトラ技 ARM ライタ基板でも動作を確認していますが、Chibimo として使うには USB シリアルの使える KL* が良いでしょう。

/media/uploads/masato/12876787564_6915e1f553_z.jpg

Revision:
1:84b2d36d57f0
Parent:
0:b06afbefd350
--- a/c128x64spi.cpp	Sun Jun 16 13:50:27 2013 +0000
+++ b/c128x64spi.cpp	Mon Mar 03 03:28:29 2014 +0000
@@ -34,7 +34,7 @@
         gfx_buf[i][j] = 0;
   
   // _spi.format(8, 3);                 // 8 bit spi mode 3
-  _spi.frequency(8000000);         // 8MHz SPI clock ..
+  _spi.frequency(16000000);         // 8MHz SPI clock ..
   
   _cs = 0;
   _reset = 0;                       // reset
@@ -215,8 +215,26 @@
     gfx_buf[page][x] &= ~(1 << row_in_page);
 
   wr_dat(gfx_buf[page][x]);
+  loc_x++;
 }
 
+void c128x64spi::locate_x(int x) {
+  /* Selecting Column */
+  int col = ((x & 0xF0) >> 4) | 0x10;
+  wr_cmd(COL_SEL|col);
+  wr_cmd(x & 0xf);
+
+  loc_x = x;
+}
+
+void c128x64spi::locate_y(int y) {
+  /* Selecting Page */
+  // y = y / 8;
+  wr_cmd(PAGE_SEL | y);
+  loc_y = y;
+}
+
+
 void c128x64spi::wr_cmd(int cmd) {
     _rs = 0; // rs low, cs low for transmitting command
     _cs = 0;