趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

Nokia LCD5110 を1ドルCPUボード(CPU:STM8S103F3)で動かして見ました

1ドルCPUボードでの表示器を検討していて、探した中で一番安かったNokia
携帯電話に使われていたLCD5110が使えるかどうかを調べて見ました。
LCD5110は昔の液晶で、前にArduino UNOで動かした時、明るくないとバック
ライトが有っても良く見えないものだったので以後利用しないで放置していたの
ですが、このボードでの利用なら釣り合いが取れていると思って再度手に取って
見ました。検討の結果、解像度がこのボードでもグラフィックを利用できる事と
Arduinoのライブラリからこのボードへの移植も比較的容易で有る事が判りました。
以下がその検討内容です。

Nokia 5110 LCD の概要>
  「Nokia 5110 LCD」はNokiaの携帯電話 5110/3310 で使用されていたもので、
     以前はArduino UNO で動作させましたが、今回はSTM8Sのボードでの動作を
     検討しました。
     イメージ 1


  1.画素数 84x48ドット、フォントサイズは6x8ドットにすると
          表示文字数は14桁x4行
  2.インターフェイスはSPIシリアルで、LCD側は入力のみの一方向
  3.そのため、グラフィック表示の実現には84x6=504バイトのRAMが
          必要(CPUのRAM領域は最大1Kバイト)
  4.ドライバICは PCD8544 で3.3vでの動作

 [動作状況]
   動作状況は次の様になります。
    

<関連資料>
  移植ベースのLCD5110駆動用のライブラリは次のArduino用でグラフィック
    機能の無いものです。
   URL : http://www.arduinolibraries.info/libraries/nokia5110

    グラフィック部分に関しては次のArduino用のライブラリから移植しました。
       URL : http://www.rinkydinkelectronics.com/library.php?id=47

  ドライバのチップ(PCD8544)のデータシートは次のURLから入手可能です
       URL : https://www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf

<テスト内容>
    Nokia 5110 LCDのテストは次の様な内容で、STM8S103F3ボード用に
    ライブラリを改造して、Arduino用のライブラリのサンプルプログラムと
    同様なデモ動作をさせる事にしました。

 [目的と結果]
    テストの確認目標は次のものでした。
         1.コードの移植にはどの程度の変更を必要とするかを確認
         2.動作速度およびメモリ容量が小さい事の影響を確認
         3.その他、移植時に特に困難となる点の有無を確認

      結果としては、次の様な状況で、今回のデバイス用のものではそれ程大きな
      困難も無く移植ができました。
         1.SPIの設定および出力ピンのアクセス以外の部分はほほそのまま
               利用可能(I/Oレジスタの設定は方法が全く異なる)
         2.Arduinoの標準のライブラリが利用できない為、利用するものは作る
               必要が有る。(今回はdelayとmillisを作成)
         3.RAMに関しては、グラフィック用の領域(504バイト)を
               確保してもまだ余裕有り
         4.コードメモリに関しては、サイン関数を利用する為にmathの
               ライブラリをインクルードするとそれで数キロバイト消費し、目的の
     デモ動作を全てさせる事が出来なかった。(デモ動作の内容を減らせば、
     正しく動作するのが確認できたが、今回のものは、サイン関数の利用を
     やめて、サイン関数のテーブルを用意してそれを読み出す方法で対応)

        以上の様な状況で、コードの移植に関してはI/Oレジスタの設定を自分で
        用意すれば、Arduinoのライブラリはそれ程難しくなく移植でき、また、
        メモリサイズに関しても、math等のC/C++のライブラリを使用しないで、
        単にI/Oポートでの制御に専念すればコード上の問題もそれ程気にしなくて
        実装できる事が判りました。なお、今回も開発システムにIARの8Kバイト
        容量制限の永久無料ライセンスのものを利用しましたが、コンパイル時に
        容量オーバーのエラーを出す以外は、全機能がそのまま利用でき、ブレーク
        ポイントを利用してのデバッグがとても重宝しました。

 [テストでの機器の接続] 
     イメージ 3 

       イメージ 2

 [コード類]
    今回も、コードの開発にはIARのシステムを利用しました。(とても便利で
    お勧めです。なお、STM8S103F3P6ボードののコード開発に 関しては
  こちらの記事を参照して下さい。)

     Code download URL : https://www.dropbox.com/s/20ol553nw0ocjm8/IAR_LCD5110_STM8S.zip?dl=0