2015年12月

PICでLCDはお手上げ(解決編)

症状:
”■”→”_”→”■” というように、カーソルが一つだけ表示され、点滅を繰り返すだけで後は何も表示されない。二行表示モードのはずが、一行だけ表示されているっぽい。


原因:
単に初期設定で、”ANSELB = 0b00000000”が抜けているからだった。

似たような症状の人のヒントになるとうれしいが、残念ながらすごく初歩的な話なので、こいつアホかで終わるかもしれない。

昨日までは、ネットで探してきたソースを元にいろいろやっていたが、今日はデータシートを読みながら色々改変。ビット一つ一つまで確認したが、何が悪いか全然分からない。これはLCDが壊れているのではないか、二つとも同じ症状だから二つとも壊れているのでは、と考えた。順番として、LCDが正常であることが担保できていることが先決だが、二つとも壊れているとは考えがたいので、LCDは正常ということにして作業していた。が、やっぱり真っ先に確認すべきことだったのだろう。 

まずやったのは、arduinoのLCDシールドからLCDを引っぺがして同じ回路につなぐこと。だが、意外に頑強にくっついていて剥がれない。半田を結構吸い取っても、グルーガンか何かでくっつけてあるみたいで剥がれない。そうでなくても半田を剥がすというのは大変だということが分かった。途方にくれていたが、よくよく考えたらLCDをarduinoにつなげば良いわけで、arduino用のLCDを引っぺがしてこちらの回路につなぐ必要は無い。何でこんなことに気がつかないのか我ながら驚きだ。 arduinoでのテストは各一分もあれば終わる。どちらも異常なし。散々悩んで行を削ったりしたが、前述の通り、単に初期設定で、”ANSELB = 0b00000000”が抜けているからだった。アナログ出力する場合だけ設定すると思い込んでいたけど、これって必ず必要なのね。 

何でもそうだが、勘所というものがある。考えなくても原因が直感できることだ。初めての分野ではそれがないので、何処がどう間違っているか五里夢中で途方にくれることになる。この一行だけで丸二日半。尚、パスコンやプルアッププルダウン抵抗、各種ディレイ、ポートを分ける等、前回試したものはすべてなくても動いた。えらいこと遠回りだったが、久しぶりに大きな達成感を感じた。 ちょっとアホだったが。

PICでLCDはお手上げ

秋月で安い16F1827はインサーキットデバッグに対応していない。というわけで何らかの可視化ツールが欲しいので、LCDを購入した。これが全然うまく表示されない。

とりあえず豆腐状態だけは脱却したが、その後から先に進まない。一文字分の入力プロンプト状態の表示になる。以下試したこと

・プルアッププルダウン抵抗
・パスコン
・ Enableの間隔調整
・制御とデータビットとのポートを分ける
・ CCP1SEL=0の付加
・各種ディレイの付加

全然駄目。新しいLCDを購入して試してみても同じ結果なので、LCDが破損しているとは考えにくい。なぜかPICに書き込む時に画面がクエスチョンマークで埋め尽くされるので、キャラクタ自体は表示しているのだろう。一度だけ”ソソソ”というような意味のありそうな表示が出たので何か変化があったのかと思ったが、 PICKITのVDDが変なところに刺さってしまったようで、危険だった。

まるまる二日くらい使っていると思うのだが、何ら進展が無いのでさすがに苦痛になってきた。arduinoだとLCDの実験は5分とかからない。PICで実現する場合、LCDの仕様を知る必要があるのでそういう楽しみはあるのだが、敷居が高すぎる。ネット時代でもこうなのだから、これが無かった時代だったらとっくに投げ出しているだろう。

うまく行ったら追記するつもり。

白光FX600



もう少し良い半田ごてが欲しかったので、買ったのだが・・・・・・・・・・・・・・買ってまさに発送中に、amazonタイムセールを覗くと600円も安く売っている!すごく悔しい。 いやまぁ、それだけが言いたかったんだけどね。

電子工作は理論本を借りてきて勉強中。こんなもん簡単だろうと思ったけど、ちゃんと数式やデータを計算して理解するのは思った以上に厄介だ。言いたいことはだいたい分かるのだが、それでは後でモノにならないし。 電子工作、こういう勉強系嫌いではないので自分に合っているかもしれない。

PIC敷居高すぎ

Lチカに丸一日かかった。何が悪いのか分からないので試行錯誤していて、結局ウォッチドックタイマがONになっていて、こいつのせいで先に進まなかったようだ。さらっとウォッチドックタイマとか書いたが、チップごとのコンフィグレーションビットの説明にたどり着くのに時間がかかったし、ウォッチドックタイマが悪いことに気付くにはさらに時間がかかった。チップは秋月でPIC16F1827が安いので使っているが、インサーキットデバッグに対応していないことを知らずに、コンフィグレーションビットを色々組み合わせていて、これも数時間。arduinoの偉大さが分かった。PICをゼロからはじめるのは結構大変だ。未だに普通のデバッガの挙動がおかしくてよくわからない。

又、arduinoと違いPICに対する知識も必要で、とりあえず1827のデータシートを見ると、英語の上400ページある。英語であること自体は仕方がないとしても、よく理解できていなくて、わけのわからないことを英語で読むのはつらい。 仕方がないので、他のピン数が似ているチップの日本語版データシートを読んで、1827の英語データシートとつき合わせて読んでいるが、これは正解だったかもしれない。

PICに限らず、結局いろいろ回路を組んでみたが、ところどころテスタで計っても予想通りの結果になっていない(特にトランジスタとかコンデンサまわり)ので、電子工作の理論本を買ってきたり、抵抗を完全に見分けられるようにしたりいろいろ勉強している。というように、どっぷり漬かりこんでいる。arduinoやその他本、工具、電子部品を含めると既に6万円くらい使っているのだが、これは意外と金のかかる趣味で、ここまで金をかけた以上投げ出せないと状況になっている。多分上達すればもっと面白くなるのだろうが、プラモデルも数万円使ったのに数ヶ月で飽きたから、これもどうなるか不明だ。
最新コメント
QRコード
QRコード
  • ライブドアブログ