PIC12F1822のMSSP使用i2cマスター実験(1)(2)(c)2011、2012 nobcha |
||
1. 概要8ピンPICの少ないIOピンを補うには基板内2線接続用i2cを利用すれば、多数のIOと 接続できるようになります。ところが、今までの8ピンPICではソフトi2cを使っており、いまひとつ不便でした。新シリーズPIC12F1822には MSSPが内蔵されたので、これを使いi2cマスターを実験することにします。今回はその機能をLCD接続実験で試してみます。 その1としてストロベリーリナックス社販売の液晶コンパチで動かしました。 今年になってデジットでSUNLIKE社のSCG002Bと言う製品を買ったので、その2として表示させてみました。 残念ながらSCG002Bで電源電圧を変化させたときの液晶コントラスト拡張コマンドの扱いがまだ使いこなせておりません。その件に関してはその3の課題とします。
|
||
2.仕様特に仕様というほどのものでは有りませんが、次のようになります。 @LCD制御は従来関数を改造。(i2c関数としてはread/writeの両方を準備) RSビット+データの2バイトを送る。(ストロベリーリナックス社液晶のIFを参考) (このインターフェイスはi2cインターフェイス付きLCD制御用LSIとして業界標準の NXP社PC2119xがベースになっていることが判りました。) A関数にテストメッセージと数字カウントメッセージを表示させる。(picfunを参考)
|
||
3.接続回路
MSSPを使う場合はSCLがRA1,SDAはRA2に指定されます。 ストロベリーリナックス社コンパチの場合の回路図です。
SUNLIKE社SCG002Bの場合は信号線数が異なります。
この液晶モジュールの使い方でトラぶったのは#2リセットラインとVlcdのコンデンサです。VlcdはLSI内部のチャージポンプで発生するようです。#6線をテスターで触るとVdd電圧の2倍強の5Vが出ています。
|
||
3.プログラム(その1)ストロベリーリナックス販売品互換です MAIN関数、そして今まで使いまわしてきたLCD表示用関数、そして今回開発したMSSP利用i2c関数を試作しております。またLCD表示用関数、そしてMSSP利用i2c関数にはヘッダファイルが必要。また遅延時間発生はdelay関数ヘッダを使います。 (その2)SUNLIKE社製SCG002Bを使った場合です MAIN関数、そして今まで使いまわしてきたLCD表示用関数、そして今回開発したMSSP利用i2c関数を試作しております。またLCD表示用関数、そしてMSSP利用i2c関数にはヘッダファイルが必要です。
|
||
4.実験風景その1の実験風景です。ストロベリーリナックスから買ったLCDは取り扱い不注意で落として割ってしまい(普通の液晶のように金属枠が無いので取り扱い注意)ました。この実験ではコンパチインターフェイスをPIC16F88と通常の並列インターフェイス液晶で作ったので、それを利用しております。
スレーブ側はPIC16F88を用い、SC2402液晶を4ビットモードで接続した回路です。 その2の実験風景です。ブレッドボードには不要なスイッチが付いています。こちらの液晶はバッテリー2本の2.4Vで十分表示が見えますので最新PIC低電圧動作品のお相手によさそうです。
#6のVlcdをテスターで観測してみました。
|
||
|
||