ようやくMEGA164にアセンブルしたhexファイルを
書き込んで動かしてみることに。
AVRstudioからAVRISPmkIIで書き込み、ok。
ベリファイ、ok。fuseビットもちょこちょこ
直して、いざ実行。
USB-シリアル変換ケーブル(いつものFTDI-BASIC
breakout)を繋いで、tera termからコマンドを
打ってみる。
オシロで信号を拾ってみると…波形が出てこない…
オペアンプを通す前のMEGA164の出力ピンを
当たってみる… 出てない。
どうやら動いて無いっぽいなぁ。
USB給電でチョッパ回路2つも動かすのはきついのか?
電源不足なのか?と思って電源回路を見直してみる。
確かに元々の配線時のアレコレで、USB給電でしか
ISPできないようになっちゃってて電力的にキビシイ
ところはあるんだけど、電圧が足りなくて厳しいって
ほどじゃないなぁ。
PCからのコマンドを、AVR基板からエコーバック
させてみようという作戦に。配線自体は元々シリアル
出力をちゃんと敷いておいたので、プログラム修正
だけでうまく行くはず。
修正してアップロード…
ISPモードに入れない!エラーになっちゃう。なんで?
さっき書けたのに…
色々調べてみたんだけど、どうやらfuseか何か変な
設定になっちゃったっぽいなぁ。
配線を全体的に見直してみる。
…発見!この間のベタGNDの太さを変えたときに、
どうやらGNDとRESETをくっつけてしまったらしい。
常時リセットボタン押下状態。なんじゃこりゃ?
とりあえず気を取り直して、リセットボタンの
ショート部分をルーターでカット。
再度書き込みしてみる…
書けない。どうやら、最初に書き込みできたのは
リセット端子がGNDレベルだからISPモードに
入れただけで、その後ISPモードから出られてない
中途半端な状態になっちゃってると考えるのが
良さそう。あぁ、MEGA164のスペアは無いんだよな。
至急MEGA644の買い置きで代替することに。
ソース中の変数やコメント、インクルードファイル
とかを644がらみの名称に変えてアセンブル。
書き込み…。とりあえず動いた。ふぅ。
さて、オシロあてながら可変抵抗のツマミをグルグル。
1チャンネル側は想定どおりに動く。イイカンジ。
2チャンネル側は…まともな波形が出てこない…
こっちだけまともに出てこない理由が良くわかんない
んだけどな…なんだろう?
微妙な波形が出たかと思えば、途中でフリーズしちゃう。
波形の形から考えると、上位ビットと下位ビットは
微妙に生きてる感じ。中間のビットが化けてるとしたら、
なにか重畳している他のペリフェラルの信号がそのピン
だけ生きてるってことか?
なんとなくJTAG信号が怪しいな。JTAG信号って、意図的に
無効化しないと生きちゃうの?
そう考えると、微妙なノイズ入りの波形がたまたま
意味のあるJTAG信号になったときにフリーズする
とか考えると合点が行く気もする…
MEGA164シリーズって、DebugWire対応なんだっけ?
JTAGだけだと、でかいメモリ積んでるのにデバッグ
のためだけにこの配線をしないといけないジャン。
うーーーん。
もうちょっとデータシート読んでからだな。
|