合掌しながらゴミ箱に埋葬した。私は電子部品はよほど高いものでない限り、検証と予備を兼ねて必ず2つ以上買うことにしている。レギュレータも2つ買ってあったので、もうひとつを正規に配線する。正確な電圧(4.99V)でLEDを沢山つけても全く温度はかわらない。普通のレギュレータなのだけれど妙に頼もしく感じられたのは不思議なことである。基板工作の定番ミニルータを買ったぞ(2/5/08)次のお題、chaN氏のUSB-SPIブリッジのため、小さなケースを2つ買ってある。最初の温度ロガーの基板とケースや、オプティマイズのロジアナのケースは、ありあわせの金鋸や40年も前に買ったかってのラジオ製作用の金やすりで切り出し、あとは紙やすりで根気よく削って何とかそれなりの仕上がりにした。いつまでも牛刀をふりまわすのも芸がない。次はまともな工具で楽に作ろうと考えていた。最近のブロードバンドサイトでは、世界中のマニアたちが電子工作の出来栄えを見せるだけでなく、製作過程をつぶさに記録したビデオまで公開している。このなかで、ミニドリルで簡単に基板を切り出し穴を開けているシーンが印象的だった。これに刺激されたこともある。基板を手にとってレイアウトを考えているうち、急に思い立ってDIY店のJ-Martに出かけた。千石電商にあったミニドリル(ミニルータと言うのだそうだ)と同じ、Proxxonの製品のコーナーがあり、研削ビット(刃)とセットになると良い値段(1万以上)なので迷ったが、結局、0.5~1.5ミリ(これはすぐ折りそう)のドリルビット3本セットも含めて買うことにした(¥11,500)。ロジアナ以来のマイコン関係の大きな買い物である。家に戻って早速試してみる。切断用のやすりディスクを装着のときに力を入れたら、あっさり割れて、セットに5枚も付いていたことを納得させられたが、試しにUSB-SPIブリッジのケースに入るユニバーサル基板を切ってみた。あっと言うまにケースにぴったり収まる基板をきれいに切り出すことができた。1ミリ以下の穴あけはプリント基板でも起こさない限りやることはないと思うが、細かいケースの加工はこれで格段に楽になる。これからの制作が楽しみだ。このミニルータはボール盤やフライス盤になるアダプタが売り出されていて、これが結構精密なつくりでそれほど高くなく(一万以下)、道具欲(こういうのがあるか)をそそる。ビットの折れ予防や、正確な穴あけには欠かせないが、まあここまでやることはないだろう。ボクが悪かった(2/6/08)1/17の「今度はボクは悪くない?」の記事で、インタバルタイマをはずしたら動いたので、自分は悪くないと書いたが、?をつけておいて良かった。通信とタイマは密接な関係があり、タイマをつけたくらいで本来はおかしくなるわけがない。何かのチョンボだと思っていたけれど、原因をつきとめられなかった。それが、解決したのである。I2Cのソースリストを印刷しておこうとI2Cスレーブルーチンのリストを整理していたら、コメントアウトしたタイマーのステートメントがあったので、ついでに少しデバッグすることにした。あのときは先を急いでいたのでそんな余裕がなかったのである。タイマを完全に独立させて1秒ごとにLCDに*を出すようにして動かしてみる。次に、タイムアウトの時に行うI2Cのリセットをやめて通信のスタートでタイマが動くようにする。何と問題なくデータが2回目以降も送られる。何、リセットが問題か。LCDを良く見ると、少しおかしい。*が送信データの前についている。1秒タイムアウトなので、送信データが送られてから暫くして*がつかないといけない。タイマがスタートした直後に*がありそれから送信データが表示される。割り込みがスタートの時に起きているのだ。あーあーあ、わかった。何で気がつかなかったのだろう。タイマの取り扱いに慣れていないからこういうことが起きる。1秒タイマはタイムアウトすれば次のスタートまで割込み許可のビットをマスクして割り込みを止める。タイマは一度動き始めると止められない(止めることも出来るが手続きが面倒)。割込み要求を上げつづける。この状態で、次のタイマースタートでこのマスクをはずした途端、待っていた割り込みがここでかかる。要するに1秒タイマになっていなかったのである。割り込み先では割り込みを止めるのでもう割り込みは起きない。割込み要求ビットは上がったままなのでスタートのときに起きてしまう。ここで通信関係のリセットをかければ、当然先のデータは読まれない。これが1回目は動き、2回目から沈黙する原因だったのである。原因がわかれば、対処は簡単である。タイマースタートの前に、割込み要求ビットをクリアしておくだけである。タイマーを使いこなしている人には常識なのかもしれないが、素人の私には、プログラムは書いたようにしか動かないという格言が身にしみる。負け惜しみかもしれないが、よく見つけたと思う。*が送信データの前にあるという些細な事実から、長い間何が原因かあれこれ考えていた不具合が見事に解決された。現場に残された微小な証拠から犯人をつきとめた名探偵の心境で、風呂に入って寝るまでうきうき気分だった。それにしてもこの楽しさは何なんだろう。100冊の推理小説を読むより面白い。バグのとれたソフトI2Cスレーブのコードは前の「Tiny用ソフトI2Cスレーブ」の記事にまとめて置いてあります。「AVR」カテゴリの記事ソフトI2Cはクロックストレッチまで手を出してあえなく沈没(2017.09.02)オシロのテストどころかソフト開発で大はまり(2017.07.26)超音波方式の人感センサーI2C化と新しいオシロ(2017.06.29)motionの動体検知はRaspi3の電源が安定しない(2017.04.16)赤外線学習リモコンはデータ再現で挫折したまま進まず(2016.07.21)コメントコメントを書く名前:メールアドレス:(ウェブ上には掲載しません)アドレス(URL):この情報を登録するコメントは記事投稿者が公開するまで表示されません。USB-SPIブリッジの制作。