趣味のマイコンいじり

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

1602/2004 キャラクタLCDをSTM8S103F3ボードで動かして見ました

以前、Arduinoのチップで動かしたキャラクLCDをSTM8Sボードでも
動作させるのを検討しました。対応した処理としては、2種類のLCDを同時に
表示するもので、次の様な状況でした。

<LCD1602/2004 の概要>
   16文字2行と20文字4行のLCDキャラクターディスプレイに関しても、以前は
    Arduino系のチップで動作させましたが、今回はSTM8Sのボードでの動作を
    検討しました。なお、LCDとのインターフェイスは、4ビットモードと
    I2Cモードが有るので16文字2行は4ビットモード、20文字4行にはI2Cで
    接続して2つのLCDを同時に動作させてテストを行いました。
    イメージ 1

  1.16x2のLCDは4ビットモード、20x4のLCDはI2C変換ボードを
          利用してI2Cモードで利用
  2.使用電源電圧は5V
  3.I2C変換ボードのチップはPCF8574でI2Cアドレスは0x20-0x27、
          デホルトは0x27(チップがPCF8574Aの場合は0x38 - 0x3F、
          デホルトは0x3F)
  4.LCDドライバICはHD44780

 [動作状況]
   

<関連資料>
    関連資料に関しては、Arduino系の時のこちらの資料をご参照下さい

<テスト内容>
    テストは、次の様な内容でSTM8S103F3ボード用にArduino用ライブラリを
    移植して、それを利用してモジュール上の機能を確認するプログラムを組んで
    動作の確認を行う事にしました。

 [目的と結果]
    テストの確認目標は次のものでした。
         1.4ビットモードとI2Cモードのインターフェイスを用意して動作を確認
         2.移植元のライブラリに用意されている機能を動作させる方法を確認

      結果としては次の様な状況で、STM8Sのチップ上でも問題無く動作させる
      事ができました。
         1.4ビット、I2Cの両モードで接続してもROM/RAMサイズ上の問題は
               無い事を確認
         2.ライブラリの機能はArduinoの場合と同様に動作させられる事を確認

        以上の様な状況で、キャラクターディスプレイのコード移植もArduino用の
        ものがほぼそのまま利用できる事が判りました。ただし、チップコマンド
        出力のタイミング調整で、Arduinoではマイクロセカンドのディレイを
        利用して対応している部分はそのままでは利用出来なかった為、代わりの
        タイミング調整用のディレイを用意して対応しました。

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

     イメージ 3

 [コード類]
     コードの開発にはIARのシステムを利用しました。
  (STM8S103F3P6ボードののコード開発に 関してはこちらの記事
         参照して下さい。)

     Code download URL : https://www.dropbox.com/s/r6a7x4o7slljndu/IAR_LCD1602_2004_STM8S.zip?dl=0