マイコン工作実験日記

Microcontroller を用いての工作、実験記録

いよいよ困った

2008-07-25 00:03:35 | Weblog
以前にも書いたように、MCU内蔵フラッシュへの書き込みが失敗するようになって困っていましたが、いよいよ深刻になってきました。近頃では多少コードサイズが増減しても、もはやべリファイが成功することはありません。必ずどこかでエラーとなります。エラーの発生する箇所によっては、LCD画面が初期状態まで進まないことすらあります。運が良ければエラー箇所を通らずに済むので、問題なく動作することもあります。時には、しばらく動いてから突然ハングすることもあります。これでは、動作がおかしいのが書き込みエラーに起因するのか、バグが原因なのかを区別することすら容易ではありません。

エラーの発生する原因はMCUのフラッシュなのかもしれませんが、他の可能性もあるかもしれないと思い、いくつか調べてみました。

  • まず、書き込みに使っているKrisTechのデバッガが原因かもしれないと考え、書き込みソフトとしてOpenOCDを使ってみました。やはり、Verifyを入れると終わりの方でエラーが発生します。
  • 同じくKrisTechのJTAGインタフェースが原因かもしれません。あいにくと、他のJTAGインタフェースはもっていないので、これを交換してみることはできません。そこで、JTAGは変えずにボードの方を代えてみることにしました。AT91SAM7SE256の代わりにAT91SAM7S256のヘッダーボードSAM7-H256に同じイメージを書き込んでみました。エラーは発生しません。
  • JTAG信号にノイズが乗っているおり、そのために動作が不安定になっているかもしれません。JTAGクロックとして6MHzを使っていましたが、これを1MHzにしてもやっぱりダメです。

やはり原因はボードあるいはMCUの方にありそうです。うーん、どうしましょうか。MCUの交換を試す必要はありそうです。