朝からお手伝い実験。なぜか信号が出なくて参った。
昼食後、ソフトグループのショートミーティングでちょっと遅れて実験室に行ったら同僚が測定を始めていた。どうやら今日の装置の状態では検出器の感度を高めにしなければいけなかったらしい。その後は順調にデータ取りが進んだ。ただ、試料を交換するたびに真空を破るので、再び真空になるまでに30分程度かかる。暇なので、読みかけの技術ムックを読みながら待っていた。なので、結局実験が終わったら夕方になっていた。
実験が終わって、自分の席に戻ってきたら、部下がPICマイコンの誤動作について相談しに来た。少しソースを眺めてみたが、複雑でよくわからない。マイコンのプログラミングの場合、周辺回路のミスがマイコンを暴走させることもあるので、まずソフトウェアとハードウェアのどちらが原因か切り分けなければならない。
とりあえず非常にシンプルなソースを書いて動作させてみたが、やっぱり挙動がおかしい。次に、マイコン内部の機能レジスタの設定ミスをチェック。問題は無さそうだ。最後に回路を確認したが回路の間違いはなさそうだ。
ただし、回路については回路定数が妥当であるか、素子の種類が適当であるかも考慮しなければならない。今回の回路は単純な入出力しか使ってないので、問題があるとすれば入出力ポートの最大電流だろう。そこであらためて資料を調べてみると、原因らしき事実が発覚した。てっきりPICの入出力の最大電流は20mA程度あるものと思い込んでいたのだが、それは出力の時だけで入力電流の上限は1uAだったらしい。抵抗をいちいち交換するのが面倒だったので、プルアップを止めて内部プルアップを使うようにしたら正常に動作した。

詳しい原因解明は部下に明日やってもらうとしても、これでおそらく不具合は解決できたと思う。つい自分で解決してしまったが、そのために彼が成長できた機会を奪ってしまったかもしれない。締め切りまでにはまだ時間があったのだから、もうしばらく部下にがんばってもらえばよかったと反省。