Arduino FMラジオ、そしてその後
Arduino FMラジオ、そしてその後
昨日の続き。
俺duino(自分でブートローダを焼いたArduino互換チップ)が動かないと唸っていたところにpsm1723さんからのアドバイスをいただき、ブートローダ読んで動作を理解してデバッグに臨んだ。
結果として問題は、焼けたと思っていたブートローダが焼けていなかった。書き込み時のVerifyは通ってOKを出すくせに、検めて読み直してみるとオールFF、書かれて無いじゃん状態。AVR Studioの書き込みツールで、フューズ設定を変えたりいろいろ試したがダメ。AVR JTAG ICE mk2 でだめ、STK500 でだめ。AVR Dragon を動かすかなぁと考えたところで AVR Studio の新版が出ているのを認めた。それまで使っていたのは 4.16 (build 628) (だったかな)。これに対して 4.16 SP1 (build 633) というのと 4.17 (build 666) というのが出ていた。最初SP1を当てたが、思い直して4.17にバージョンアップして、件のブートローダを書いてファイルに読み出してみたら今度はきちんと書けていた。
追記
同じ問題にあたられた方を発見。
リンク時にマップされなかった領域にダミーのコードを入れた ihexファイルを作って焼いて対処されたようですね。
手痛い歓迎をうけつつブートローダを書き、それでもArduino-IDEからうまくスケッチのアップロードができなかったが、pcm1723さんの説明にあった手プロトコルでブートローダの動作は確信できたので、Arduino-IDE設定をリセットしてATmea168Pが俺duinoとして動き始めた。
あとはとんとん拍子。
の回路とスケッチを実装して、
FMラジオとして動き始めた。
可変抵抗値で分圧した電圧をA/Dで読んで、I2Cにチューニングデータを送っているので、境界ではバタバタとちょっと鬱陶しい。箱に仕込むときには考えないとね。
いろいろと実験して、リード線をアンテナ代わりに82.5MHzを受信したり、TVアンテナ線を繋いで周波数変換された80.8MHzのNHK-FMを受信したりできた。TVアンテナ線経由のほうが電界強度は高い。
アンテナ線を繋ぎ換えているときにスピーカからパチと音がした。
Arduinoのデバッグ画面を見るとFMモジュールがリセットされたような痕跡があった。チューニングつまみを回しても反応が返っていない様子。放送局の受信ができなくなっていた。
モジュールを触るとえらく熱かった。
夏が終わった。砂を集めて撤収…
壊れたFMチューナモジュールに合唱。らーら、らー♪
電位差なんて気にしない! 溜まった電荷を汲み出してっ♪
愛があれば電位差なんて、抵抗あれこれなんのその♪