SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2005-01-13(Thu) PICマイコン根性の動作

  昨日に引き続いてYRPに出勤。なんと午前中に早くも予定の仕事がコナれてしまった。午後はウニャウニャ気分で来週分の仕事に着手。定時にはウルトラマキシムハイパーグレートビッグストロングターボダッシュスペシャルを発動。瞬時にホテルYRPにチェックインだ。

  あまりに早かったため、晩飯を食おうと予定していた光龍というラーメン屋が開いていない。開店早々に行くのも五時半族(豊田高専語)っぽくてカッコ悪いので、18時頃に行ってミニギョーザセットを食った。まぁうまい。

  昨日はダラダラと過ごしてしまい、232メモリの開発がサッパリ進まなかったので、今日はミッチリと作業を行うべく机の上をセットアップする。ホテルYRPは部屋の照明もシッカリ明るく、デスクには電気スタンドも完備で、コンセントも多く、超高速ネット接続だからして、まことにデスクワークがハカドるコトこの上ない環境である。いえーい。

  画像の説明

  しかしイカに環境が素晴らしくてもハマるときはハマるのがこの世のサダメである。現在はPIC単独で、外部EEPROMに対して正しくI2Cプロトコルを発行する様子をオシロで確認するという目的で作業を行っているのだが、これがサッパリ動作しない。シミュレータではシッカリと動くことを確認しているのに、現実のPICは非常に珍妙な波形を繰り出してくるのである。

  画像の説明

  つーか、ナニよコレ。3.0Vロジックなのに、なぜか1.5Vで安定する期間がある。波形もナマりまくりだ。別にアナログロジックじゃないんだけどなぁ。あまりにも珍妙な動きなので、コード的にはスタートコンディションを発行するダケという単純なレベルにまで落としてオシロを適用しているのだが、クロックだけならチャンと波形が出るのに、データとのコンビネーションにするとLOWにした直後にポョンと1.5Vまでハネ返ってしまうのだ。うがー、ワケわからん。

  原因がわからないので、直接GPIOのビットをSET(bsf),RES(bcf)で操作するのをヤメLD(movwf)でGPIOに書き込むようにしてみたり、NOPで操作間隔を長めに調節してみたり、毎回TRISをセットしてみたりしたのだがサッパリ効果なし。何度もコードを書き換えてはオシロでチェックするのだが、PICライタとosziFOXはシリアルポートも電源アダプタも共用であるため、ケーブルの繋ぎ替えやアプリの上げ下げが超面倒。そのまま6時間ほどベッタリとハマり続けでいい加減イヤになってきた。

  仕方ないので今日はアキらめて寝るかという頃合に、なにげにオシロを電圧計モードにしてPICの電源ラインをチェックしてみた……2.7V……低い……よな。電源には単3電池x2を利用しているのだが、まだ2.9Vは確保されている……っと×◎は△に〆※っ○ッ!!

  電源がつながってねーじゃんッ!!

  恐ろしいことにPICのVddがオープンだったのである。なんでッ!? Vddがオープンでナゼ動くッ!? Vssはグランドに落ちている。すると1kΩプルアップしてあるポートから流れ込んだ電流で動作していたというコト? PICにつながっている正圧はソコしかないのでそうとしか考えられない。そりゃ動作が不安定なワケだ……。

  しかし、もっとドカンと思い切って不安定ならともかく、再現性のある中間電圧を持つ波形っつーのには参った。ヘタにオシロを使い始めて波形が見えてしまうモンだから、他の方面に原因追求するように頭が回らなかったというコトもある。この6時間の作業はいったいなんだったのか……どっはー。くそばかじゃん、おれ。

  頭を抱えつつもチャンとVddを供給するようにブレッドボード上の回路を修正したところ、ビシビシと波形が現れた。あーぁ、こんなタコなことばかりやっているオイラは、ホントはプログラマには向いていないのではないだろうか……実は単なるヘタのヨコ好き? コッチの業界に転職してもう何年にもなるのに、こんなトコロで自分の限界を思い知ってしまうとは……はぁ、心底つかれた。もー、寝ます。