雑記/2008-3-16

最終更新時間:2008年03月15日 22時29分49秒

[公開:any]

[放電器,AVR,ATmega644P]

header

まだまだ続くバッテリー放電器。先月からノロノロとやっている放電器の実験ですが、AVRのATmega644Pをつかって複数バッテリー放電のソフトウェア作成とテストもやっておきます。

body

40ピンDIPのATmega644Pを使ってみます。I/Oポートは、PORTA、PORTB、PORTC、PORTDと8ポートずつ4系統もあるので豪勢です。PWM出力やAD変換と共用していないPORTCをLCDに割り付けることにしてブレットボードに組み込みます。

プログラムは、ATmega168で作ったものがそのままコンパイルできたので、AVRISPmk2で書き込みました。

・・・・が動作しません。やっぱりATmega168のソースそのままはまずいのかと、あちこち見直したりしたのですが、さっぱりわかりません。

今回からブレットボード用小物のテスト用LCDユニットを新しくしたので、こいつが原因かとあれこれチェックしましたが、わかりません。

ふと気になってPORTCをテスターであたってみると、いくつかのポートがリセット直後からhighになりっぱなしです。どうやらプルアップされているようだ・・・

ここで、データシートを見てみるとPORTCは、JTAGと共用されていてデフォルトでは、有効になっているようです。←もっと、早くデータシート見るべきだった・・

AVRStudioでライター設定を開いてヒューズビットを見てみると JTAGEN がセットされてました。このビットをクリアしてJTAGを無効化しました。

AVRStuido4のヒューズの設定画面

正常に動作するようです。

ATmega644Pのテスト

しかし、JTAGってプロが使用するものだというのが個人的なイメージです。
ATmega644クラスになるとJTAG使ったICEが必要なくらい高度な用途に使われるマイクロチップということでしょうか。

このテンプレートをデザインした者がへたれなので IE6 には非対応です。IE7FirefoxSafariOperaChrome など、モダンなブラウザを利用して下さい。


▲ページ Top へ...