Hatena::ブログ(Diary)

nobchaの電子回路日記

ページビュー
1249118

2012-09-30

マスター側のプログラム

マスター側とはf:id:nobcha23:20120404123326j:image:small:right

f:id:nobcha23:20120929124008j:image:w360

http://d.hatena.ne.jp/nobcha23/20120928/1348802347

この写真で表示を制御しているの方のコードになります。(上がそうです、下のほうのユニットはスレーブです)

i2cキーパッドスレーブを試すプログラムです。PICFUNで紹介されているストロベリーリナックスLCDをテスト表示するプログラムを参考に作りました。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/1827_i2c_lcd_key_test_main_c.pdf   

マスターが自分のポートにつないでいるLCD制御の関数です。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_c.pdf   

今回接続試験しているLCD+KEYを接続するための関数です。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_key_i2c_sl_mssp_c.pdf   

i2cインターフェイス信号をMSSP経由で制御する関数です。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/mssp_i2c_c.pdf   

LCD制御のヘッダファイルです。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_h.pdf   

LCD+KEY制御関数のヘッダファイルです。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_key_i2c_sl_mssp_h.pdf   

MSSP制御関数のヘッダファイルです。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/mssp_i2c_h.pdf

nobcha実験では電源は単三を2本というのが多くて、この実験の場合も単三が二本の3Vで動かしております。従いましてLCDに関してはVoをチャージポンプのマイナス電源で引っ張る方式採用。また、LCDコントローラの自励発振が電源電圧依存のためにLCD制御信号に対しての応答が悪くなり、LCD制御のタイミングにはあっちゃこっちゃに__delay_us(*);を入れています。従いまして、i2cのフル速度(400kbps)では応答難しいかもしれません。今は数十kbpsのスルーレートタイミングで動かしております。

2012-09-29

ピポパ電話機キーパッドでi2cスレーブ コード紹介

PIC16F1827搭載基板(3V動作、LCD付属)を作って試作プロジェクト展開しております。簡易周波数カウンタを作って、RTC付加し時計を作って、i2c接続LCDモジュール作って、今度はキーパッドをくっつけてキー付きLCDモジュールを作成しました。f:id:nobcha23:20120404123326j:image:small:right

ひとつをマスター側に、もひとつをスレーブにしてブレッドボードへ突っ込んで実験中です。(この写真でいうと、上がマスターで、したがスレーブです)

f:id:nobcha23:20120929124008j:image:w360

f:id:nobcha23:20120925171442j:image:w360

今日はコードの紹介です。スレーブ側MAINではi2c接続のLCDモジュール(ストリナ製とデータ構成コンパチ)として動く受信モードと、キーパッドの押下データを送り出す送信モードの2系統を制御しております。MSSPは割り込み起動で、要因別に5状態を定義し分岐処理します。 

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/key_main_slave_c.pdf    

4ビット制御でLCDとつなぐ関数LCDを用意しています。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/key_lcd_c.pdf     

そのヘッダファイルです。

http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/key_lcd_h.pdf







ところで、この基板を使用の第一番目試作プロジェクトで手がけたのは簡易周波数カウンタ、二番目が基板外側にrtcをつけ制御するRTC-8564NB使用のクロック時計機能試作実験です。詳しくは次のホームページのWHAT'S NEWをご覧ください。

http://chitose6thplant.web.fc2.com/

2012-09-28

i2cキーパッド 動作した

PIC16F1827基板(LCD付き、i2c付き、ICSPコネクタ付き)にピポパ電話機用のキーパッドをつけてi2cキーパッドを作ろうというプロジェクトをやってます。f:id:nobcha23:20120404123326j:image:small:right

できました。動くところを確認するためにマスター側のコードも書きました。PICFUN由来のi2c接続LCDモジュールにカウント表示を出すというソフトを流用し、タイトル表示、SW2待ち、キースキャンしてコード取得、表示するという一連動作確認です。PIC16F1827のMSSPを使用しマスターとスレーブを動かしたという事になります。

f:id:nobcha23:20120925171442j:image:large]

回路図はこれです。

http://d.hatena.ne.jp/nobcha23/20120918/1347958786



2012-09-27

ピポパ電話機用押しボタン(その8) AP-734参考のSSP_ハンドラー部分

今回のキーパッドi2cスレーブ試作において、結果的に苦労したのはmssp割り込みハンドラのところでした。

以前作ったスレーブに判断分岐追加で始めましたが、結局はマイクロチップ社AN-734のASMサンプルを参考にMSSP_HANDLERを作って、MSSP割り込みを5つのイベントで分岐するようにしました。

// ssp int handling function
void ssp_handler(void) {
	unsigned char s_state,dummy;
	s_state=SSP1STAT&0b00101101;
		// SMP,CKE,-D/A,P,-S,-R/W,UA,-BF
	switch(s_state){		
		case 0b00001001:
		// State1 address,S,write,buffer full
			dummy=SSP1BUF;
		// if address, read SSPBUF as dummy
			rcv_count=0;
			break;
		case 0b00101001:
		// State2 data,write,buffer full
			buffer[rcv_count]=SSP1BUF ;
	// 
			if((rcv_count&0x1)==0){
		// receiving RS byte and DATA byte as pair
				lcd_rs_rcv=((buffer[rcv_count]>>6)&0x1);
	       // Set lcd_rs bit
			}
			else if((buffer[rcv_count]==0x10)&(lcd_rs_rcv==0)) 	cnt_stop();
			else if((buffer[rcv_count]==0x11)&(lcd_rs_rcv==0)) 	cnt_setup();
			else if(DEBUG==0) lcd_write_rs(buffer[rcv_count],lcd_rs_rcv);	// Data byte
			stat[rcv_count]=SSP1STAT;
	        // status buffering
			rcv_count++;
		// next buufer
			break;
		case 0b00001100:
		// State3 address,S, read,buffer empty
		case 0b00001101:
		// State3 address,S, read,buffer full
			SSP1CON1bits.CKP=0;
		// CKP clear
			dummy=SSP1BUF;
		// dummy address read
			SSP1BUF=key_in_p;
		// key in data transmitting
			SSP1CON1bits.CKP=1;
		// CKP releas
			break;
		case 0b00101100
		// State4 data,S, read,buffer empty
			SSP1CON1bits.CKP=0;
		// CKP clear
			SSP1BUF=key_in_cnt;
		// key in counter transmitting
			SSP1CON1bits.CKP=1;
		// CKP releas
			break;
		case 0b00101000:
		// State5 data,S, read,buffer empty &full
		case 0b00101101:
			SSP1CON1bits.CKP=1;
		// CKP release
			break;
		default:
			lcd_puts("ERR");				break; 	} }

この関数割り込み関数の中でMSSP要因判定後(MSSP1IFが有ったら)に入れて各処理に分岐します。

WRITEとREADに別れ、LCD表示の方もすっきりと収容しました。デバッグ用の表示が入ってましたが、割り禁で自前のLCD表示に行くため、次の割り込みが追突します。取っ掛かりの実験で使いましたが、その後は邪魔になりました。最後のバグだと思っていたのはデバッグ用表示の割り込み禁止が原因でした。

MSSPの制御で注意点は、スレーブ受信ではアドレス一致、BUF空きでCKPが自動で0(クロックストレッチモード)になるので、MSSPBUF書き込み後にソフトでCKPを1にすること、送信では、受信したアドレスが入ったMSSPBUFを空読みしてやら無いと次のデータ受信で、オーバーフローになることなどぐらいでしょうか。

それからMSSP以前に良く間違う点は、ackは0でnackが1だというところです。ソースコードに関しては追ってwebに掲載していく予定です。

2012-09-26

天満天神繁盛亭に行った

暇人なので、平日の昼席にいけるんです。でも来月から就労予定。

本日も自転車にて天満橋筋2丁目までアクセスしました。

f:id:nobcha23:20120926123141j:image


本日の昼席は 桂鯛蔵「初天神」、桂歌之助「看板の一」、月亭遊方「絶叫ドライブ〜彼女を乗せて」、笑福亭笑子「パペット落語〜幽霊アパート」、笑福亭伯枝「三人上戸」、桂米二「くっしゃみ講釈」-仲入り-三吾・美ゆる「親子漫才」、東京江戸から来演 柳屋三三「たらちね(上方なら延陽伯)」、柳家花丸「電話の散財」、トリの桂きん枝「一文笛」でした。

終演後のお見送り、桂米二さん、柳屋三三さんなど

f:id:nobcha23:20120926162148j:image


前回は9月4日に行ったんです。

http://d.hatena.ne.jp/nobcha23/20120904

初めてが6月13日だった。

http://d.hatena.ne.jp/nobcha23/20120613

7月19日にも行った。

http://d.hatena.ne.jp/nobcha23/20120719/1342695445

2012-09-25

マニュアルをまじめに読む

ひとごとではなく、まじめに読まないといけません。f:id:nobcha23:20120404123326j:image:small:right

PIC16F1827基板(LCD付き、i2c付き、ICSPコネクタ付き)にピポパ電話機用のキーパッドをつけてi2cキーパッドを作ろうというプロジェクトをやってます。i2c液晶は何とかなったが、キーの追加で苦戦。

f:id:nobcha23:20120918175902j:image:w360

しかしながら、昨日まで引っかかっていた件は解決。i2cのマスターからスレーブのデータを送ってもらって読み取るプロトコルではマスター側は一番最後のバイトにNAKを返す必要があります。ACKが0でNAKが1というのも間違いを誘発した要因かも。ともかく、キーコードを1バイトだけマスターはもらいますが、返事はNAKにしてなかったため、スレーブ側はまだ次の要求が来ると思って待っていたようです。

その過程の中でPIC16F1827のドキュメント254ページに24.5.3 スレーブ側からの送信と言う節がありましたので、ついでに訳してみました。タイミングは255ページの絵を参照します。

http://chitose6thplant.web.fc2.com/exp/i2c_slave/mchip_1827_p254.pdf

もちろん、マイクロチップ社のAP-734も実験卓においておきます。SSPやMSSPを使用して作るスレーブの説明です。関係部分のみの翻訳。

著作権マイクロチップ社にあります。AP-734の一部訳。

http://chitose6thplant.web.fc2.com/exp/i2c_slave/ap-734_ja_part.pdf

どちらもマイクロチップPICアプリケーション実験の補完用にのみ使用するためのものです。



ところで、この基板を使用の第一番目試作プロジェクトで手がけたのは簡易周波数カウンタ、二番目が基板外側にrtcをつけ制御するRTC-8564NB使用のクロック時計機能試作実験です。詳しくは次のホームページのWHAT'S NEWをご覧ください。

http://chitose6thplant.web.fc2.com/

追記

後からトラ技6月号を読み返していたら、picで動かすi2cの記事がありました。「オススメPICその2:静電容量検出回路8個内蔵!PIC16F1938」P117の中でマスタ・スレーブ間の通信についてチャートで解説されてました。これを知っていたら、英文のマニュアルを数ページも訳さなくても良かったんですが・・・。

2012-09-24

ディジットで

ピポパ電話キーパッドの予備を買って、PIC161827チップも買いました。f:id:nobcha23:20120404123326j:image:small:right

f:id:nobcha23:20120913185437j:image:medium

続いて愚痴。

ピポパi2cの方は苦戦。いままでのi2cハンドリングのシーケンスではだめ(温泉旅館建て増しスタイル)だと思い、AN-734のサンプルプログラム(ただしASM)を見習うことにした。それでまずはストロベリーリナックスコンパチに作っていたLCD部を改造したが、これでえらく手間取った。なかなか前のようには動いてくれない。でもだましだましで動かした。

次にキーパッドサポートを入れたら、LCDサービスと喧嘩をするみたい。キーコードスキャンがタイマー起動で万年サンプリングしているところにLCDの表示サービスのi2cプロトコルがぶつかるとだめみたい。







追記

後からトラ技6月号を読み返していたら、picで動かすi2cの記事がありました。「オススメPICその2:静電容量検出回路8個内蔵!PIC16F1938」P117の中でマスタ・スレーブ間の通信についてチャートで解説されてました。これを知っていたら、英文のマニュアルを数ページも訳さなくても良かったんですが・・・。

2012-09-23

ポンバシ ランチ こけしのカツドン

東京在住時はデバッグ渋滞時などで話をそらすため、アキバランチ情報に振ってました。今回はポンバシです。

昔、そうですね、40年ぐらい以上前でしょうか。ポンバシ行ったら、こちらのカツドン食べてました。便利さとか伝統度と言う点で、アキバならサンボあたりに該当するのかな。http://tabelog.com/tokyo/A1311/A131101/13006063/

f:id:nobcha23:20120920000611j:image:w360

f:id:nobcha23:20120920000606j:image:w360

(撮影はおばちゃん了解済み)

B級度はサンボに匹敵。値段はちょっと上。満腹ちゃんになり、おなかをさすりながら、千石電商、DIGITを冷やかしました。

2012-09-22

ピポパ電話機用押しボタン(その7)

あっちも(スレーブ)、こっちも(マスター)も同時にデバッグしていると訳わかんなくなります。

i2cマスターのデバッグではストロベリーリナックスのi2c液晶モジュールとか、EEEPROMなどにお世話になりなんとか動かせました。

今回はスレーブ未完成で、マスター側も周辺機器からのリードは初めて(EEEPROMではやったが)なのでまとまりません。そして手持ちのLCDスレーブのコードを良くみてみるとストリナLCDを壊したとき、代替えにやっつけで作ったものなので改造に耐えられない感じですね。

そこでしっかりした資料を参考にすることにします。探してみると以前も参考にしたマイクロチップ社のAP-734が良いようです。SSPやMSSPを使用して作るスレーブの説明です。まずは関係部分を翻訳してみます。

うーーん、使うとこだけ訳したのですが、A4で6ページにもなってしまいました。

著作権マイクロチップ社にあります。AP-734の一部訳。

http://chitose6thplant.web.fc2.com/exp/i2c_slave/ap-734_ja_part.pdf

マイクロチップPICアプリケーションの補完用に使用します。





後から追記

後からトラ技6月号を読み返していたら、picで動かすi2cの記事がありました。「オススメPICその2:静電容量検出回路8個内蔵!PIC16F1938」P117の中でマスタ・スレーブ間の通信についてチャートで解説されてました。これを知っていたら、英文のマニュアルを数ページも訳さなくても良かったんですが・・・。

2012-09-21

ピポパ電話機用押しボタン(その6)

ピポパ電話用のキーパッドを使ってi2cテンキースレーブを

作るかというプロジェクトですが、6回目になりました。

・・・・という事はなかなか完成しないという事です。

PIC16F1827をつんでLCDつなぎ、i2c信号などを出している

基板を流用しました。f:id:nobcha23:20120404123326j:image:small:right

ピポパキーパッドはDTMF発生の関連か接点が3行4列の交差

部をグランドに短絡すると言うモノです。4列をLCD接続

データ線と共用し0レベル駆動し、3行側は10kでプルアッ

プしておいて、タイマ起動で列駆動、行センスとし、キー

判定しました。

f:id:nobcha23:20120919173311j:image:w360


で・・・、LCDが付いているのでデバッグ表示しておりま

す。キーをスキャンしコードにし、長押し判定のところ

まで何とか動きました。

f:id:nobcha23:20120919103949j:image:w360

タイトル表示の上に重ねがきしたので判りにくいですが、

ここでは0キーなのでASCIIの0x30がキー入力され、次の

バイトはキー変化無しで100msタイマーを通過した数です。



2012-09-20

ピポパ電話機用押しボタン(その6)

という事で、PIC16F1827使用LCD・I2C基板にキーパッド

を組み付けました。

lcdコネクタ14P2列の横のコネクタ裏表実装用に作った

3列目スルーホールを借ります。ここにダイオードを突っ

込み、LcdのDB4-7信号とキーパッドのD-G列からのダイ

オードとジャンパします。A-Cラインはsw1-3のスルー

ホールが利用できました。

配線は自作pcをばらしたときに取ったあったフラット

ケーブルの再利用。

この実験基板にはLCDついてますからデバッグは楽勝(と

思っている)のはずなのです。

f:id:nobcha23:20120919104254j:image:w360


ところで、この基板を使用の第一番目試作プロジェクト

で手がけたのは簡易周波数カウンタ、二番目が基板外側

にrtcをつけ制御するRTC-8564NB使用のクロック時計機

能試作実験です。

詳しくは次のホームページのWHAT'S NEWをご覧ください。

http://chitose6thplant.web.fc2.com/

2012-09-19

ピポパ電話機用押しボタン(その5)

AVRでのi2cキーパッドスレーブの話をばんとさんから紹介

受けて、pic村界隈で真似するプロジェクトです。f:id:nobcha23:20120404123326j:image:small:right

丁度i2c端子とかlcdが付いたPIC16F1827プリント基板をこ

の間作ったところなので、これにキーパッド追加し実験し

ます。

回路図は昨日。http://d.hatena.ne.jp/nobcha23/20120917/1347852852

まずはキーパッド入力のデバッグからスタートします。そ

の3で示したようにLCDの4ビット接続データ駆動信号線を

共用し、4コラム(d-g)を0レベルで駆動。、3ライン(a-c)

の0レベル判定し、クロスマトリックスから押されたキー

を判定することにしました。キー駆動、キーセンスはタイ

マー1を利用した同期駆動5-10msぐらいの予定。対チャタ

リングは2回センスでキー入力とみなし、長押しカウンタ

は100回で判定とします。

キー駆動、キーセンスはこんなコードになる予定。

割り込みサービスの中で・・

  if(TMR1IF==1){

   cnt_up--;

    if(cnt_up==0){ // FOR DEBUG TIMING

     cnt_up=100; // 100*5ms

      for(pos=0;pos<=3;pos++){ // 1110-1101-1011-0111

       key_in=key_col_scan(pos);  // key scan

        if(key_in) break; // ANY KEY

      }

      if(key_in==0){        // no key

        key_in_p=0;

        key_in_cnt=0;       // key in count reset

      }

      else {            // Any key

       if(key_in!=key_in_p) { // new KEY-in ?

        key_in_p=key_in;     // pre key buffer refresh

        key_in_cnt=0;       // key in count reset

       }

       else if(key_in_cnt<127) key_in_cnt++; // if same key, cnt up

      }

      if(key_in_cnt>100) key_in=(key_in | 0x80); // set long keying flag

      }

      cnt_setup();          // tmr1 REFRESH

}


key_col_scan(pos)という関数はD-Gの位置を指定して

0にした後、A-C信号のどれが0になるかを見てキーコー

ドを戻してきます。

2012-09-18

ピポパ電話機用押しボタン(その4)

ちょっと引っ張ってしまったが、やっと回路図です。f:id:nobcha23:20120404123326j:image:small:right

f:id:nobcha23:20120918175902j:image:w360


ところで、この基板ベース部分を使った試作プロジェ

クト一番は外側にrtcをつけた時計機能実験でした。

内容はI2C接続でRTC-8564NBをつないだクロックで

す。詳しくは次のホームページのWHAT'S NEWをご覧く

ださい。

http://chitose6thplant.web.fc2.com/



2012-09-17

ピポパ電話機用押しボタン(その3)

先駆者のコメントいただき、進行中です。

早速回路図と思って書き始めたが、先日作ったPIC16F1827

基板を流用したいという邪心が芽生えた。でどうなのかと

いうと、LCD接続をそのままにして、キーパッドを追加し

ようというのである。

現行の回路図です。

f:id:nobcha23:20120823230455j:image:w360

Wオンリーの現行LCDのスレーブにRはキー入力にしてしまお

うと言う計画です。(LCDのフル機能だとLCDからの読み出し

も必要だが、ここは割り切って)

アイデアはこうです。D-G列はLCDのDB4-7につなぐ。A-Cはタ

クトスイッチのポートにつなぐという具合なんですが、うま

くいくのでしょうか。

D-Gを1ビットづつ下げて(0にして)、A-Cに0が現れるかを

センスする。

0がでないとキー入力は無し。

あったら、D-GとA-Cからキーコードを算出。

LCDへ制御信号を出しているときにキー押されるとどうするか。

D-Gを0にしたとき、A-Cのいずかが0ならば、押されている

からLCD制御が乱れちゃうため、EN出しやめ。

i2cのMSSP割り込みをどうハンドリングするか。LCD表示の

コマンドは2バイトペアでやってくる。キーポーリングはR

があったら、返すことにする。コードは0x30-0x39,0x2A

(米印はアスタリスクにする)、0x23として、長押しはビッ

ト7を立てる。上位でキーコードの変化無しを見ていても

良いのかもしれないが。

レジスタ指定の/Wがあった後、該当レジスタ内容を読み出

すためのリオープンでRになることを心配したが、そうい

シーケンスはやめ、Wでレジスタ選択はやめて、Rであれ

ば無条件にキー状態返すという事にしたい。

この項続く(はず)

2012-09-16

ピポパ電話機用押しボタン(その2)

ばんとさんの回路図を見るとA-Gがダイオードマイコン端子

につながり、Hはグランドである。そうか、A-GはPICだとウィー

クプルアップかけ、シグナルオンチェンジで割り込み待ちにし

てこのあいだnoriさんから教えてもらったチャタリング回避

とか長押しでも入れればよいのではないかと思った。

キーコードのやりとりはi2cスレーブなので、PS/2キーなんか

を真似したらよいのでしょうが、PS/2プロトコルなんかは

知らないので、無視して、勝手にポーリング(ENQ)開始と返答

はキーコード+ステイタス(長押し)とでもするかと安易に思っ

てます。

この項続く(はず)

今まで試作のページとか、掲示板なんかあります。

http://chitose6thplant.web.fc2.com/

2012-09-15

ピポパ電話機用押しボタン(その1)

ポンバシに行きました。共立デジット、千石ともう一軒。

プッシュボタン式の電話機からはずしたと思われるテンキー

ボタンをデジットで買った。これはばんとさんが言っていた物

らしい。100円です。AVRでキーパッドi2cを作られたとのことで

すが、PICでもやったらどうだろうというような暗示を感じた。

秋風のせいだろうか。

f:id:nobcha23:20120913185437j:image:medium

これはDTMF発生を前提に作られている接点のようだ。メモが袋

に同封されていて、0ボタンを押すとA行とD列の信号がH信号線

と短絡する。1→A+E、2→A+F・・・・#→C+G

この項続く(はず)




2012-09-14

ホームページ更新

ホームページメンテナンスを最近サボっていた

のですが、新しいページをアップロードしました。

PIC16F1827プリント基板を使って展開中の試作の

第一弾です。PIC16F1827搭載基板を使いRTCとつ

ないだクロック試作です。

what's newから入っていってください。

http://chitose6thplant.web.fc2.com/

2012-09-13

スレーブではLCDは裏向き実装

今回作成したPIC16F1827基板ではLCD接続コネクタ(14P)

のランドは偶数番号ピンは並列にしております。すなわ

ち7Px3列のパターンになっております。f:id:nobcha23:20120404123326j:image:small:right

その理由はLCD接続コネクタ(14P)を部品面でもハンダ面

でもつけてLCDとつなげるようにしたかったからなのです。

今回組み立てたLCDスレーブではLCDコネクタはハンダ面

側に実装し、部品面側をハンダ付けします。そして、ブ

レッドボード用につけるi2c信号線ピンヘッダはその反

対にします。

f:id:nobcha23:20120910130543j:image:w360



2012-09-12

i2cスレーブ

この際PIC16F1827のLCDスレーブ動作も確かめます。f:id:nobcha23:20120404123326j:image:small:right

PIC16F1827をマスターにして、SCG002BとPIC16F1827使用スレーブ(ストロベリーリナックスのi2c液晶モジュールコンパチインターフェイス)をつないでみました。

f:id:nobcha23:20120910185128j:image:w360

無事動きました。LCDスレーブの方のコードは、デバッグ用ダンプ部分も含めて全体的にかなり未完成なのです。msspを使ったi2c制御はMAINの中でベタ記述。





2012-09-11

SCG002B用の関数

昨日お話したSUNLIKE社i2c液晶の制御関数です。

http://d.hatena.ne.jp/nobcha23/20120910/1347248991


f:id:nobcha23:20120911095959j:image:w360

f:id:nobcha23:20120911095956j:image:w360

試行錯誤で動いたところもありますが、拡張コマンドで

set Vlcdをしたらうまくいきました。ただし、値が0x39

という5V用の値です。(0x15にすると暗くて見えなくなる)

SUNLIKE社のマニュアルにはコマンドの存在は書かれてい

るが、機能説明は無く、NXP社のPCF2119のマニュアル

参照して理解しているつもりです。しかしPCF2119をどの

ように組み込んでいるのか、SUNLIKE社設計者の意図は不

明。

また、PIC16F1827のMSSPを使うi2c駆動関数は次になり

ます。クロックエキステンションとか10ビットアドレス

などという難しいことはサポートしていない、ミニマム

のIO用セットです。


f:id:nobcha23:20120911143130j:image:w360

f:id:nobcha23:20120911143128j:image:w360


このブログにググッたり、リンクたどったりして、始めていらした方で、過去書き込みの内容を参照になりたい場合、次のホームページ中にまとめ情報も一部掲載してありますので、覗いてみてください。

http://chitose6thplant.web.fc2.com/

2012-09-10

i2c液晶SCG002B接続もやってみる

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。f:id:nobcha23:20120404123326j:image:small:right

LCD表示でて、カウンタ動き、RTCを外付けし、時計も動きました。

AQUA TALKの前にこの間接続したSUNLIKE社のi2c液晶モジュールSCG002Bともつないでみます。右側の液晶はマスター側pic16f1827接続、左側デジットで買ったi2c液晶(スレーブ)です。

f:id:nobcha23:20120907232059j:image:w360

PICFUNから引用させてもらったテストを使い、自分の液晶とi2cでぶら下げた液晶の両方に出す試験プログラムです。このi2c液晶の立ち上げシーケンスがちょっと自信なく、3種類のINIT()関数書き、切り替えてみました。やっぱりマルティバイト書き込みのコードで3Vで安定して動いたので、この件も決着したかと思います。

以前に取り上げたときのブログ書き込みです。

http://d.hatena.ne.jp/nobcha23/20120611/1339400296








2012-09-09

早速目玉クリップを・・

掲示板にて鏝台のテクノウを教えてもらっております。http://nobcha23.bbs.fc2.com/

まず手始めに目玉クリップをST-11コテ台にねじ止めし、

やってみようとの魂胆です。

f:id:nobcha23:20120909120503j:image:medium


SPIEGEL社の3x6xポケット拡大レンズを持っておりますので、

これもくくりつけようかとの算段中。

2012-09-08

RTC−8564NBを使ったLCD時計表示のプログラムOK

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。f:id:nobcha23:20120404123326j:image:small:right

設計、注文のやり方は・・・。

http://d.hatena.ne.jp/nobcha23/20120825/1345886058



LCD表示でて、カウンタ動き、RTCを外付けし、時計も動きました。100円ショップで売っているLCD時計よりレベル低いですが、ここまで動かすのは結構大変でした。RTC-8564NBの時刻データがBCDスタックしておまけのビットも付いていたりしており、UP/DOWNスイッチで設定するとなるとそれもまた大変でした。まだなお作りこみが不足しているのは設定スイッチのチャタリング取りです。(現状タイミングでは応答鈍い)

f:id:nobcha23:20120905162245j:image:w360

次はお隣に居るAQUA TALK(ATmegaに音声エンジン内蔵)もi2cでつないで、ややっと2ヶ月ぐらい前に申し上げたおしゃべり時計プロジェクトに戻れます。あの時はまずPIC12F1822でテスト音を出しました。時計とするには、PI16F1823では信号がちょいと少なくフラッシュも不足、またブレッドボードではAQUA TALKが電源ノイズで誤動作するかもと言う各種障害を乗り越えるためにこの際PIC16F1827を使ってと思って、この基板を作りました。

http://d.hatena.ne.jp/nobcha23/20120727/1343357624

回路図これです。

http://d.hatena.ne.jp/nobcha23/20120906/1346937004

コードは次のPIC16F1823をPIC16F1827に替えたものです。1823はMSSPは一個なんですが、1827はMSSPが二個合ってそこのところがちょび書替え大変。(マイクロソフトフロントページでWEBデータ作ってるんで、もう少し涼しくなってからメンテさせてください)

http://chitose6thplant.web.fc2.com/n_4digit/1823_rtc_clock.htm

このブログにググッたり、リンクたどったりして、始めていらした方で、過去書き込みの内容を参照になりたい場合、次のホームページ中にまとめ情報も一部掲載してありますので、覗いてみてください。

http://chitose6thplant.web.fc2.com/








2012-09-07

2SC3356(SC59)

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。

その中で簡易カウンタのTMR0入力の先っちょにつけるアンプをfTが良い手持ちのトラを選んでつけましたが、チップトラでした。

簡易カウンタの入力用アンプは2SC3356を使ってみました。

SMT実装パターンに付けてみました。ちょっとずれてます。

f:id:nobcha23:20120905162424j:image:medium

ハンダ付け技能を磨く必要あります。



このブログにググッたり、リンクたどったりして、始めていらした方で、過去書き込みの内容を参照になりたい場合、次のホームページ中にまとめ情報も一部掲載してありますので、覗いてみてください。

http://chitose6thplant.web.fc2.com/

2012-09-06

RTC−8564NBを使ったLCD時計表示の回路図

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。f:id:nobcha23:20120404123326j:image:small:right

LCD表示でて、カウンタでき、RTCを外付けし、時計が動きました。機能的には100円ショップの時計に負けるかもしれませんが、これをベースに色々作って生きたいと思います。

さて、ここで回路図です。基板パターン設計時のバグについても記述してあります。

f:id:nobcha23:20120906220816j:image:w360


このブログにググッたり、リンクたどったりして、始めていらした方で、過去書き込みの内容を参照になりたい場合、次のホームページ中にまとめ情報も一部掲載してありますので、覗いてみてください。

http://chitose6thplant.web.fc2.com/



2012-09-05

RTC−8564NBを使ったLCD時計表示のプログラムが動き出しましたが・・

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。f:id:nobcha23:20120404123326j:image:small:right

LCD表示でて、カウンタでき、RTCもつながりました。基板面積の都合でRTCは外付けになります。時計プログラムの移植がいまいち未完成です。時計設定スイッチで設定モードに入りUP/DOWNするとこんなMIN/MAXから逸脱した数字がでました。テーブルか、BCDバイナリ変換関数あたりがおかしいようです。

f:id:nobcha23:20120902230118j:image:w360

ICSPをつないだままだとLCD表示が狂います。LCDのRSとENがICSPの信号と共通なので仕方ないです。書き込み後はずしてデバッグします。

2012-09-04

天満天神繁盛亭に行った

月に一回ぐらいは落語でも聞くかと天満天神繁盛亭に行きました。http://www.hanjotei.jp/index.html

f:id:nobcha23:20120903160310j:image:w360

f:id:nobcha23:20120903160315j:image:w360

終演後、客を見送る笑福亭呂鶴さん、桂文昇さんなど。

9月3日昼席

桂まめだ:青菜、笑福亭笑助:鉄砲勇助、桂米左:豊竹屋、三遊亭絵馬切り絵東京から来演)、

桂曾丸:東の旅(煮売屋)、笑福亭呂鶴:向こう付け、

中入

桂文昇:紀州、笑福亭学光:手水回し、笑福亭智之助:マジック、林家染丸:癪の合薬

本当は1日か2日に生国魂神社で開催された彦八祭りに行きたかったのですが、ちょっと暑さに負けて、天満天神繁盛亭に。

(上方落語のルーツは米沢彦八が生国魂神社境内で始めた説法とのこと)

http://ja.wikipedia.org/wiki/%E5%BD%A6%E5%85%AB%E3%81%BE%E3%81%A4%E3%82%8A

6月、7月と続け、今回3回目なので、サイクリングの道中も安全裏道ルートを間違いなく走破。良い運動にもなりました。

6月13日

http://d.hatena.ne.jp/nobcha23/20120613/1339585766

7月19日

http://d.hatena.ne.jp/nobcha23/20120719/1342695445

2012-09-03

次はRTC

大体、この基板を作るつもりは、ブレッドボードでの配線だと不安定。RTCにAQUA TALKつなぐi2cを備えLCDが付いたマスターになるという構成が欲しかった。回路図は次の書き込みで紹介してます。http://d.hatena.ne.jp/nobcha23/20120812

ということで、RTCもつなぎ、確認します。0xA2がでました。AQUA TALKもブレッドボードに乗っかっていますが、まだ未配線。

f:id:nobcha23:20120902151839j:image:medium


このブログにググッたり、リンクたどったりして、始めていらした方で、過去書き込みの内容を参照になりたい場合、次のホームページ中にまとめ情報も一部掲載してありますので、覗いてみてください。

http://chitose6thplant.web.fc2.com/



2012-09-02

i2cアドレススキャン

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。f:id:nobcha23:20120404123326j:image:small:right

まずはシンプルカウンタ(TMR1で10msゲート時間つくり、TMR0で入力パルスを計数。内部クロック使用)を組み立てて動かしました。

次はi2c関係が動くかをみるために先日作ったi2cアドレススキャンテストプログラムを走らせてみます。ストリナLCDのアドレス0x7cがキャッチできました。http://d.hatena.ne.jp/nobcha23/20120708/1341742365

f:id:nobcha23:20120901182720j:image:w360

つながっているのはストリナLCDコンパチのPIC16F1823+LCDスレーブ基板です。http://chitose6thplant.web.fc2.com/n_4digit/1823_i2c_slave.htm

f:id:nobcha23:20120901182652j:image:w360


このカウンタのコードにはマイクロチップ社AN592のアイデアを使わせていただいております。この実験時に周波数源が無く8MHzまでしか確認していないのですが、もっと高い周波数まで応答が行くはずです。なおAN592に関しては次のホームページ内容でも採用しており、PICを始めた2010年秋に手がけていました。

http://chitose6thplant.web.fc2.com/pic16f/628a_pres.htm



ところで2.7Vで表示動作できるストロベリーリナックス社の液晶モジュール共立デジットで売られています。また直販WEBショッピングでも買えます。

http://strawberry-linux.com/catalog/items?code=27001

最近8行x2行で420円というのが追加されました。こちらは残念ながら共立店頭販売に設定されていず、WEB直販だけです。

http://strawberry-linux.com/catalog/items?code=27030

2012-09-01

シンプルカウンタ動く

PIC16F1827基板:LCD付き+ICSP付き+i2cインターフェイス付き+タクトスイッチ付き+簡易周波数カウンタ用入力TRアンプ付き(3Vで動作、LCD表示できる) のプリント基板をMBEでパターン設計し、中国FUSIONで作りました。組み立てデバッグ中です。f:id:nobcha23:20120404123326j:image:small:right

設計、注文のやり方は・・・。

http://d.hatena.ne.jp/nobcha23/20120825/1345886058

従来PIC12F1822やらPIC16F1823で動かしていたコードを回路構成変え、信号端子、レジスタ名を修正し基板デバッグを行っています。昨日はLCDの負電圧チャージポンプ配線が設計漏れ。本日は簡易周波数カウンタのTMR1利用ゲート配線の取り方間違いを発見。今のところパターンカット1箇所、ジャンパ2本です。

f:id:nobcha23:20120831205118j:image:w360

ということで、簡易周波数カウンタが動きました。DSO QUADの波形発生機能を使って、8MHzまでのカウントを確認しました。200kHz以下がおかしい。これは前からバグを引きずっている・・。

まあ、ともかく、LCD表示とポート周りは動いたことになります。

流用したソフトは次のPIC12F1822版です。元ねたはLCDはちょっとトリッキーなバイナリーカウンタをシフトレジスタ風に使ったLCDインターフェイスですが、この関数を4ビット並列にしたものです。

http://chitose6thplant.web.fc2.com/n_4digit/1822_128mhz_cnt.htm

LCD接続のソフトの作りは次のブログでまとめて説明しております。

http://d.hatena.ne.jp/nobcha23/201207