2017-06-27 17:31 | カテゴリ:PIC応用回路
例のコントローラに8文字x2行の小型液晶表示器を付けました。



(V3_01)
V3_01.jpg


これまで、PFM+PWM方式の鉄道模型コントローラでフィードバック制御にトライしてきました。
しかし、BEMFというパラメータを正確に測定し、それに基づいて出力を微妙に制御しなければならず、そのためには、BEMF値や、その他の制御値を数字で把握する必要があり、そのために液晶表示器が要りました。


続きは、、、、


LCDディスプレイは、手持ちの在庫にちょうど良い大きさの8文字x2行のものがあり、それをコントローラに四角い窓を開けて、取り付けました。

ソフトは、以前に、PIC16F876Aで組んでいたので、それをコピペして、さっくりと製作するつもりでした。
しかし、、、

なぜか、PICが起動しません。
PIC16F1716です。
これまで、デバッグ中に時々起動しない時がありましたが、そんな時は、ソケットに差し込みなおしたりしたら直ぐに起動できたのですが、今回は、10回に1回くらいしか起動しません。
回路をテスターで当たって、ちゃんと電圧やリセット端子がV+になっていることも確認しました。

(V3_02)
V3_02.jpg


いつも使っている延長ソケットの24本のリード線もひとつづつ導通を確認しましたが、異常ありません。
基板の裏の半田がテンプラになっていないかも見ましたがOKです。

こうなったら、ソフトの作成やデバッグどころではありません。
3時間ほど、アチコチをチェックしました。

原因がわかりました。

(V3_03)
V3_03.jpg


セラロックのピンの半田が外れていました。
このセラロックは、10MHzの物を後日20MHzに変えた際に、接ぎ木の様にして、半田をしましたが、その内の一本が外れていました(笑)

(V3_4)
V3_04.jpg

これで修理完了です。

やっと、ソフトのチェックです。

しかし、これもPICは起動するのですが、LCDに何も表示されません。
いろいろPICのデータシートを調べてみると、PIC16F1716には2系統のi2cが内蔵されているようで、そこを変更しないとダメなようです。

また、配線の都合で、標準のi2cポート(SDAとSCK)のピンの位置も変更したく、結局プログラムを書き直すことになりました。
この際、このLCD用のライブラリを作っておこうと思います。

あとは、

文字列と数字を表示する関数。
カーソルを移動させる関数。
画面消去の関数。

を作ればOKです。

で、さあ、これからプログラムの作成とデバッグを、と思ったとたん、まやもや、突然PICが起動しなくなりました。

先ほどセラロックを交換したばかりです。
半田のテンプラもなく、ちゃんと動作していたのに、です。

ブレッドバードにこのPICをセットしたらちゃんと起動しました。
ひょっとしたらと、PICのICソケットも、交換してみましたが、ダメです。

あああーーーー

全く原因が想像できません。
電圧もOK。

仕方がないので、思い切って基盤を作り変えることにしました。
幸いにもパーツが手元に揃っています。

この際、部品配置も見直して、再設計しました。

(V3_05)
V3_05.jpg

設計から製作まで二日間の突貫工事でした。

(V3_06)
V3_06.jpg

裏側はこんな配線状況です。

(V3_07)
V3_07.jpg

製作後は、回路を何度も見直して、配線ミスが無いことを確認し、まずは電源電圧チェック。
新旧の基盤を比較するとこんな感じです。

新しい方が、若干「洗練」された感じです(笑)

(V3_08)
V3_08.jpg

続いて、PICをセットして、LED点滅での起動確認です。
なんとか起動することができました。当たり前なんですが。

続いて、作りかけていたLCD表示ルーチンを組み込んでテスト。
これもやっとうまく表示できました。

(V3_09)
V3_09.jpg



いよいよ、プログラミングの再開ができる準備が整いました(笑)




管理者のみに表示する