制御用のプロセッサに四苦八苦

前回は、スイッチボードの LED を駆動するトランジスタの買い忘れであたふたしましたが、無事に代替部品で配線を終え、スイッチ・LED ともに正常動作を確認、スイッチのうち二個、どうしても基板に載るものが見つからず(日本国内では入手できそうです)、次回日本に戻るまで代替のスイッチを使う必要があったり、指定のスペーサが長すぎて基板同士の接続がうまくゆかずスペーサの長さを変更しなくてはならなかったりと、小さな問題はありますがとりあえずここまでは概ねOKです。次は鬼門のマイクロプロセッサの動作確認です。ここが動かないと一切の音源が動きません。そして一番不具合のでやすい場所です。ちなみに使われているプロセッサは ATMega64 です。

ドキドキしながら電源投入するも、説明書にあるような動きは全く見せず、LED が一個点灯したままになりました。これは、だめです。動いていません。原因はいくつも考えられます。

  1. マイクロプロセッサに電源が来ていない
  2. リセット端子周りに誤配線がある
  3. マイクロプロセッサのクロック用の水晶発振子まわりに誤配線がある
  4. ヒューズビットの設定が間違っている
  5. 10年も放置したのでファームウェアに書き込まれているプログラムやデータが壊れた
  6. プロセッサが壊れている

まだあるかもしれません。まず配線を電気的にチェックして、1-3 の問題の可能性は小さいことを確認しました。AVRISP mkII プログラマにつなぐとプログラミングソフトから電源電圧が読み取れますが、4.9V を指しています。電源には問題ないと思われます。またヒューズビットの読み書きは問題なくできるのでリセット端子もおかしくはないと思われます。クロック端子にオシロスコープをあてて、16MHz の波形が出ていることを確認。クロックも特に問題なさそうです。

そうなると、4-6 の問題である可能性が濃厚です。とにかくまずはプロセッサが正しく動くことを確認しないと先に進めなさそうです。そこでフラッシュメモリと eeprom のデータを読みだしてバックアップファイルに保存、LED を全点灯させる簡単なプログラムを書きこ…めないです。あれあれ?書き込もうとするとプログラマがタイムアウトエラーを出して書き込みが完了しません。プロセッサが壊れているのでしょうか?

しかし、プログラマ側の問題ということもあり得ます。AVRISP mkII と Atmel Studio 7 のプログラマの組み合わせはなぜか不安定なのです。というわけで、プログラマを昔アイテンドーから買ってきた USB-ASB2 に替えて書き込んでみたところ、今度は書き込めました。書き込み確認も成功。

そうすると、プログラマも問題だった可能性があり、バックアップとして読みだしたデータの信憑性がこころもとないです。ファームウェアのデータが壊れているとすると、アセンブラを根気よく読んでいって動作を理解しつつ修復を試みるか、いちから書き直すかする必要があります。今回の製作は、analog さんの設計を楽しむためというのが大きな目的だったのですが、工夫点はファームウェアにたくさんあるはず、それを失ってしまったらとても残念です。まだどうだかわかっていませんが。

とりあえずファームウェアの書き込みはできるようになったのでプロセッサが壊れていないかどうかの確認は始められるようになりました。というところで今回はこれまでです。

今後必要になるかもしれないリンク:

http://www.colinfraser.com/tr909/my909.htm

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください