自作電子小物/TIPS/I2C接続キャラクタLCD
自作電子小物/TIPS/I2C接続キャラクタLCD
I2C接続型のキャラクタLCDモジュールのSB1602Bを制御する出力サブルーチンです。対応するCPUは、現在PSoC1, PIC18, MSP430F2xxxシリーズ, AVR ATmegaです。
SB1602B Library for PSoC1,PIC18,MSP430F2xx
2010年1月1日
主な仕様
対応モジュール: Strowbery Linux社SB1602B
バーグラフ表示機能: なし
API (アプリケーションプログラムインタフェース)
void i2c_lcd_start(void);
void i2c_lcd_stop(void);
void i2c_lcd_init(void);
void i2c_lcd_position(unsigned char bRow, unsigned char bCol);
i2c_lcd_control(c);
i2c_lcd_writeData(d);
void i2c_lcd_prString(char * sRamString);
void i2c_lcd_prCString(const char * sRomString);
void i2c_lcd_prHexByte(unsigned char bValue);
void i2c_lcd_prHexInt(int iValue);
void i2c_lcd_contrast(unsigned char bCont);
void i2c_lcd_icon(unsigned char bAddr, unsigned char bFlag);
(PSoC DesignerのLCDユーザモジュールに似せています)
ダウンロード
関連ソース全てとサンプルプログラムが入った各IDE用のプロジェクトファイル
回路図のEAGLE用のプロジェクトファイル
サンプルの動かし方
・回路は次の物を用意 i2c_lcd_sample_PSoC.pdf i2c_lcd_sample_MSP430.pdf i2c_lcd_sample_AVR_TWI.pdf
I2Cバスのプルアップ抵抗は、MSP430では内部の物を使っていますので、特に不要です。
・適当なディレクトリにダウンロードしたファイルを展開し、各IDEでプロジェクトとして開く。
・プロジェクトメニューからビルドして、デバイスにプログラムを書込む。
・電源3.3Vを与える。
ユーザアプリケーションプログラムでの使い方
(1)PSoC Designerの場合、ハードウエアI2CユーザモジュールH2CHWまたはソフトウエアi2CマスタユーザモジュールH2Cm配置する。以下の画面イメージを参考にしてプロパティを設定。
(2)必要となるソースファイルi2c_lcd.c, i2c_lcd.h, delay.c, delay.hをプロジェクトディレクトリにコピーしておき、プロジェクトメニューから、ソースファイルを1つづつADDする。
(3)ヘッダファイルの内容を環境に合わせてソース修正する。i2c_lcd.h内の最初の部分に、CPUとインタフェースの選択部分があるので、必要な1行のみ残し他はコメントアウトする。また、下方の定義で実態に合わない部分があれば適せん修正する。なお、PIC18とMSP430はdelay.h内に、CPUクロック数が影響するパラメタがあるので、そこも修正する必要がある。
(4)以上でビルド出来る様になる。
コントラストの設定が微妙なので、うまく初期化出来ていても、最初は全く表示が出ないと思います。ハードが原因かソフトの原因か判別出来ないので、コントラストを一番大きな値にしておくと良いでしょう。
送達確認について
このモジュールは、ステータスを得る事ができないため、コマンドが実行されたかどうかの確認ができません。正常にサブルーチンが終了したからといって、確実に表示されているとは限りません。ただし、I2Cとしての送達確認は行われています。
権利関係
GPLに準じます。他から流用したソース部分はありません。参照した情報源は以下の通り。
(1) 低電圧I2C液晶モジュール(3.3V I2C接続)マニュアル - 株式会社ストロベリー・リナックス 2009年5月18日 第2版
(2)低電圧I2C液晶モジュールアプリケーションノートAN001 - 株式会社ストロベリー・リナックス 2009年5月19日 第1版
(3)ST7032 Serial Specification1.3 2007/11/09 - Sitronix Technology Corp.
なお、MSP430で使用する場合、TexasInstrument社のアプリケーションノート”SLAA368A Using the USI I2C Code Library”で提供しているサブルーチンライブラリを利用していますので、最終的な使用者が自分以外では注意が必要です。