ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

Busyになれ!

2010年10月16日 | 日記
このタイミングはfuse書き込みのコマンド($40)を出した後、fuseのLOWバイトを書き込む部分です。ATtiny2313の仕様書にあるfuse書き込みタイミングチャートを満足していると考えています。
ホストにATtiny2313を使っている関係上、ポートの数が足りず、OEは最初からVccにプルアップ、
RDY/BUSYはプログラムでは見ていません。ロジアナで観測しています。RDY/BUSYはターゲットからでてくる信号ですから、出てこない訳は制御信号にあるのかと?
でも、タイミング的にはいいんだけどね。
WRがLowに落ちたらすぐBUSY(LOW)になってもいいはず、、、、、分からない。
参考にした元ネタは http://www.riric.jp/electronics/AVR/Writer/fuse.html に有ります。
AT90S1200からATtiny2313へ代えて有ります。代えても動くはず。????
コメント (5)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

どうしてBusyにならない?

2010年10月15日 | 日記
ATtiny2313のchip erase プログラムをArduinoで作りました。何とかデータの消去は出来たのですが、3個試して2個はOK1個はどうしても消えません。
この1個は別の書き込み器では問題なく消去出来ます。私の作ったプログラムでは消せません。
色々タイミングを変化させても消えてくれません。お手上げ状態です。
少し気分を変える意味で別のパラレル書き込み器をATtiny2313で作りました。元ネタはAT90S1200で作られたものです。スタンドアローンで書き込みが出来るらしいので、これをAT2313に置き換えて見たのです。
パラレルライタは12Vで書き込みを行います。利点は直列書き込み可能ビットを消してしまったときにこれを再書き込みして、再び直列書き込みを可能に出来る事です。
概ね動きはいいのですが、実際に書き込みは出来ません。ロジアナをつないで各制御信号のタイミングを見てみました。
WRの負パルスが出たあと何故かRDY/BUSYがhighのままでLowになりません制御信号はちゃんとしたタイミングで出ているのにどうしてBusyにならないのか?BS1とXA1、OEはここに出ていませんが条件を満足する設定にプログラムしてあります。
またまた、壁です。参ったな!
コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

HVRescue_Shield、AVR Fuse 書き込み器

2010年10月08日 | 日記
またまた久々の記事です。この所少し秋らしい感じがしてきました。
近くの公園のキンモクセイがアマ酸っぱい香りを漂わせ秋だなーと。
でも、今年の猛暑はすごかったですね、お陰で電気代が大変です。来年も同じ様な夏だと、、、と
今から心配してます。
さて、ここからが本題です。
AVRマイコンはfuse bitを持っていてこのfuseを書き換えることを良くやります。
flash romにプログラムを書き込んでAVRマイコンを動作させます。この為、書き込み器が必ず必要になります。
書き込み方法は直列方式(ISP)と並列方式があります。
直列方式は比較的簡単に作れます。ただ、fuse bitの中にSPIEN(直列プログラミング許可)と言う注意しなければならないbitが有ります。
これを間違えてプログラム(0を書き込む)してしまうと、それ以降はISPは使えなくなってしまいます。
この状態で書き込む為には12Vを使う並列方式の書き込み器が必要になります。
最近Arduinoを少しかじってまして、HVRescue_Shieldという並列方式の書き込み器のことを知りました。そこで、Arduinoの勉強を兼ねて作ってみました。
兎に角、部品はあり合わせ、古い基板をそのまま使い空いている所に回路をつくりました。
真ん中の小さい茶色の基板がHVRです。その上は12V電源をもらうため、左の基板はターゲットのAVRマイコンを載せる基板です。20,28ピンタイプのソケットを使っています。
(必要な部品を欲しいだけ買える状態ではありません。厳しいなーーー。)
右側はHDIaspx(USB)の直列方式書き込み器、その下がHVRとPCをつなげるRS232C変換基板です。
プログラムはオリジナルをかなり変更して使い易い??ものにしたつもりです。
fuseの書き込みはATtiny2313、Mega8,88,168,328に書き込みが出来ること確認しました。
多分、ATtiny4314、mega48にも書き込みが出来ると思いますが手持ちがないので実験はしてません。L/H/E-fuseの読み書き、LOCK,Signature,CAL bitの読み出しが出来ます。Signatureから
AVRのタイプを表示するようにもしました。
プログラムが大きくなり、最初はmega88を使っていたのですが、今はmega328を使っています。
Arduinoは比較的プログラミングが簡単と言われていますが、難しいのは機能を実現するアルゴリズムを考え出すことが難しいですね。


コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする