「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



MEGA164のデータシートを改めて眺めてみた。やっぱり
片方チャンネルだけ波形に妙なノイズが載ってたのは、
JTAG信号が出荷時にデフォルトで有効になってたから
だった。

とりあえずこれを無効に設定して再度波形を眺めてみる。



10000Hzの波形。細部を見てみる。



毎秒125000サンプルなので、1波形あたり12.5サンプル。
それをLPF通したのがこの波形。ちゃんとギザギザが
とれて「波」の形。LPFはだいたい考えたとおりに
動いているっぽい。

次に周波数を落としていってみる。100Hz。


まだ何か変なノイズが載ってるなぁ。JTAG以外の
ペリフェラルが邪魔してるのか、それともソフト側
の問題なのか…


両方のチャンネルはほぼ同じロジックで波形生成して
いるから、ソフト側のバグって言うのはあまり考え
にくいんだけど…
周波数をちょっと弄ってみても似たような感じで
ノイズが載るので、周波数に連動しているみたい。
タイマーモジュールか?

どこか1ビットだけ化けている感じなんだけどな。
下から数ビット目のところが。


データシートを読み返す。JTAG関係はやっぱり
無効化されているはずで、それ以外の機能が悪さ
するような原因は考えにくいな。

基板を改めて眺めてみる。ん?



半田吸取り線で吸取ったままほったらかしてあった
らしい…バカらしすぎるミスだな。多分これだ…
下から4ビット目なので、なんんと無く事象と符号する。


これ直すのは直すとして、あともう一つ変なところが
残ってるんだよな。波形の位相が思ったように出てない。
2つの波はsinとcosで90度位相がずれてるはずなのに、
綺麗に90度にならない。信号がおかしいのか、オシロ
側がおかしいのか…

なんだろうな。



コメント ( 0 )




ようやく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だけだと、でかいメモリ積んでるのにデバッグ
のためだけにこの配線をしないといけないジャン。
うーーーん。

もうちょっとデータシート読んでからだな。



コメント ( 0 )