Yahoo!ジオシティーズ ゲストブック 戻る  

   2010/10/22 (Fri) 09:09:01
[名前] :   kuman
[URL] :   
[コメント] :   ご連絡(残り容量が少なくなりました)

この場所から下はアーカイブにしますので関係の
投稿も新規でお願いします。
(下には書かないでください消えてしまいます)

http://www.geocities.jp/kuman2600/gbook60.html
の予定です。
   2010/10/21 (Thu) 23:15:54
[名前] :   ななし
[URL] :   
[コメント] :    あ〜 ブログのロジアナ波形、サンプリング速度 10MHz にだけ
目がいって、時間軸のひと目盛りが 100nsだと思いこんでアドバイ
スしましたが、データシートでは XTAL1の 正パルスは min 150ns
なのにわざわざ10usオーダーの長いパルスを与えていたんですね
(ひと目盛り10us)。
そういえば、chipイレースのときも長いパルス幅で議論されていま
したし、ならば原因は別にある可能性も高いですね。
 マトハズレですみませんでした。 ラジオ少年さん
   2010/10/21 (Thu) 23:52:18
[名前] :   ラジオ少年
[URL] :   
[コメント] :   ななしさん、今晩は。いえいえ、そんなことは有りません。
ロジアナは修理中で解析は中断しています。分からない事が多くていい加減うんざりしています。
タイミングは変えたりして様子を見ていますが、今一はっきりしない状態です。
もう少しやって見ようかと考えています。
よろしくお願い致します。
   2010/10/21 (Thu) 23:54:01
[名前] :   上間
[URL] :   
[コメント] :   つい最近の話題。

ニックネームは、オーケイ!だけど
通りすがり とかには、反応しない。

ということになっています。ここは、、、

もちろん本名でも オーケイ!
   2010/10/20 (Wed) 00:04:15
[名前] :   ラジオ少年
[URL] :   
[コメント] :   senshuさん、今晩は。
先日のご指摘で

>Arduinoでは割り込み処理でシリアル通信を行っています。その
ため、シリアル通信を有効にしていると、delay関数などは意図
したよりも遅くなることが考えられます。正確なタイミングが、、、、  と有りましたが、これは

noInterrupts();
クリチカルタイミングを要する部分
interrupts();

の様に記述すると言うことと理解しましたがどうでしょう。
   2010/10/20 (Wed) 21:02:51
[名前] :   senshu
[URL] :   
[コメント] :   Arduinoではいくつかのバックグラウンド処理が動作しています。
(利用者が何も書かなくとも)

http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2793

通常はそうした仕組みにより、各種機能が便利に機能するのですが、
それが影響して正確なタイミングを得られない可能性があります。

クリティカルな処理では、割り込みを禁止した方が良い場合もあると
思います。
   2010/10/21 (Thu) 16:14:15
[名前] :   ラジオ少年
[URL] :   
[コメント] :   そうですね。
プログラムを作るとき注意が必要と言うことでしょうか。
例えば下記の様な記述をプログラム中に入れる場合、
入れる場所を良く考えないとBAUDレートを変えると他のportの出力タイミングが影響されてしまいます。

Serial.begin(BAUD);
delay(10);
Serial.println(Chip erase start now:);

void loop()の最初に上記の様な記述をして、メインの機能が終わった後に下記の様な記述を入れる様にする必要が有るかと思います。
Serial.begin(BAUD);
Serial.println(Chip erase complete!);
Serial.end();

メイン機能の途中ではうまくやらないとタイミングがずれてしまいます。
Arduinoはバックグラウンドで動いている様なので難しいですね。
   2010/10/21 (Thu) 20:40:04
[名前] :   senshu
[URL] :   
[コメント] :   通常は大きな問題になることは少ないと思います。

割り込みで若干時間がズレが生じますが、それはコンピュータ
では一般的で Arduinoに限ったことではありません。
WindowsやLinuxでは、どういった処理が行われているかを
利用者が把握するのは不可能なほどですが、Arduinoでは理解
できる程度の複雑さです。

一般には、正確な時間制御が必要な場合には、タイマーなどを
利用して管理しています。
   2010/10/19 (Tue) 23:17:59
[名前] :   上間
[URL] :   
[コメント] :   書き込みの流れを見ずに書き込みします。

マイコン一般で0−255の乱数を発生させるアルゴリズムはありますか?
0−255の乱数の分布が一様な理想的な乱数アルゴリズムはありますか?

すんさん
われわれは日本人だから日本のマイコンのさわりでもかじっていたいと思うこの頃。。

From::マイコン初心者
   2010/10/20 (Wed) 18:09:50
[名前] :   すん
[URL] :   
[コメント] :   上間さん

自分の国が世界に通用するマイコンを作っていることはすごいことだと思います。

国産マイコンも知っていて、海外のマイコンもやるのがいいかも。外国のエンジニアに日本のマイコンはどうだいと聞かれて使ったことないと答えるのは、くやしいじゃないですか。
   2010/10/20 (Wed) 18:17:04
[名前] :   すん
[URL] :   
[コメント] :   乱数は
マイコンだと擬似乱数になると思いますが、
線形帰還シフトレジスタをGoogle先生で
確認して見てください。
   2010/10/20 (Wed) 21:47:19
[名前] :   上間
[URL] :   
[コメント] :   すんさん ありがとうございます。

線形帰還シフトレジスタ=デジタル回路で
疑似乱数生成できるそうです。

日本のマイコンの入り方、googleに聞く「キーワード」とか
ご教授お願いします。
   2010/10/21 (Thu) 22:07:58
[名前] :   iruka
[URL] :   
[コメント] :   上間 さん、こんにちは。

0-255の乱数を得るには、C言語のrand()関数の
戻り値の下位8bitを取ればいいです。
ret = rand() & 255; です。
rand()の実装は、世の中に山のようにあるみたいです。
簡単で計算量が少ないやつは、乗算合同法とか、M系列
とかがあります。

ですが、C言語の乱数列は計算どおりの決まった数列
(シーケンス)しか吐きません。

ですので、rand()を割り込み処理やメインループで
定常的に呼び出しておいて、乱数値が欲しいと思った
とき出鱈目な(前後関係のない)数が出るように工夫
します。
   2010/10/22 (Fri) 00:05:44
[名前] :   上間
[URL] :   
[コメント] :   irukaさん、ありがとうございます。

rand()は知っていたのですが、定常的に、、がキーですね!

定常的に
ret = rand() & 255;
を呼び出し
必要になったら
ret = rand() & 255;



助かりました。
   2010/10/22 (Fri) 09:02:23
[名前] :   そら。
[URL] :   http://nixie.blog123.fc2.com/
[コメント] :   こちらでの書き込みは、はじめまして かな。
よろしくお願いいたします。

ですので、rand()を割り込み処理やメインループで
定常的に呼び出しておいて、乱数値が欲しいと思った
とき出鱈目な(前後関係のない)数が出るように工夫
します。

この方法ですと、電源ONから乱数が欲しいタイミングまでの処理時間が一定の場合、常に同じ乱数値になってしまいます。

もちろん、割込み処理やメインループのどこかに不安定要素(例えば人の操作などの影響)があって、乱数を取得するまでの処理時間が一定でない場合は問題ないと思います。

一般的にC言語のrandは、srandの引数で与えた値を元に擬似乱数列を変えることが出来ます。

RTCを持っている装置の場合は、日付と時刻をsrandに与えて初期化することが一般的です。

RTCを持たない装置の場合、srandを初期化する値の生成が厄介です。

RTCがない場合、私は未接続のADCポートをADC変換して、そのフラついた値をいくつか取得してsrandの引数にします。
   2010/10/19 (Tue) 19:18:40
[名前] :   ラジオ少年
[URL] :   
[コメント] :   chip eraseがうまく行かず何かうまい方法は無いか悩んでいる時に下記URLにちょっと興味をそそられ、息抜きに作って見ました。スタンドアローンで書き込みが出来れば便利です。
http://www.riric.jp/electronics/AVR/Writer/fuse.html
AT90S1200を使っていましたが、手持ちはないしAT2313を使いました。
回路図を見ると12V(Vpp)はon/offしてますがターゲットにVCC(5V)は最初から供給されています。
PORTDはFuse date入力の為にLEDを点灯するのにも使われています。
Prog_enableピンを全てLow(0)に設定後、VccをONにする並列プログラミングの手順を満足するには難しいのではないかな?と。つまり、よっぽど運が良くないとターゲットを並列プログラムモードにセット出来ないのでは無いかと思えるのです。
AT2313での結果は書き込みは出来なかったのですが、
またもや、RDY/BUSYがLOWに落ちない(プログラムでは見ていない)参りました。
   2010/10/19 (Tue) 20:37:10
[名前] :   kawana
[URL] :   
[コメント] :   ラジオ少年さん、こんばんは
そうなんですか、趣味でやっている方の考えかたも色々なんですね。
動けば良しとする人、
Pro.に近い人は、より安定に動作する様に考える。
操作やり直して上手く動作すれば、調子が悪かったでかたずける人
色々なのですね。調子が悪かったでかたずけては、
進歩が無い様に思いました。
   2010/10/19 (Tue) 23:21:59
[名前] :   ななし
[URL] :   
[コメント] :   進展しそうにないので横槍です。
今度はラジオ少年さんの翻案した 回路には 問題がなかったとして、
ブログを見る限り、ラジオ少年さんの主張と違って、波形
タイミングを満足できてないように思います。
XTAL1を LOWにするのと同時に DATA,XA0/1,BS1/2 を変化
させてはいけません。
データシートの tXLDX を検索してよく読んでください。

それと、パラレルプログラミングモードに入れたかどうかは
AVRマイコンの識別バイトを読み出して、期待値と照合することで
確認できます。
ラジオ少年さんのブログでは /OEを High固定にしたとありますが、
自由度が減るので好ましくありません。
   2010/10/19 (Tue) 23:54:29
[名前] :   ラジオ少年
[URL] :   
[コメント] :   ななしさん、コメント有り難う御座います。
つまりホールドタイム(67ns)をミートしていないと言うことですね。
ブログのtiming chartはスケールが大きいので差が見えないと思います。もう一度確認してみます。
回路はオリジナルを使ってますので、制御するポートが有りません。書き込みでは/OEは使わないのでプルアップしたのです。なかなか進展しないので何をやっているのだと思われるかも知れませんね。何せ素人ですので難しいところが有ります。
   2010/10/20 (Wed) 20:10:42
[名前] :   すん
[URL] :   
[コメント] :   ATtiny2313英文データシート

ATtiny2313 Rev Bはエラッタでパラレル書き込みが正常に機能しないと書いてありました。
   2010/10/20 (Wed) 20:17:06
[名前] :   すん
[URL] :   
[コメント] :   RESETピン
を無効にすると、パラレルライターでも回復できないということみたいです。
   2010/10/20 (Wed) 21:38:29
[名前] :   ラジオ少年
[URL] :   
[コメント] :   すんさん、今晩は。どうも情報ありがとう御座います。
HVRescue_Shieldパラレルライタでプログラムの勉強?をしてます。
分からないことが多くなかなか先へ進みません。
2313のデータを見てみます。
   2010/10/18 (Mon) 21:57:10
[名前] :   kawana
[URL] :   
[コメント] :   HVRescueでWriteの実験
まずは、32 byteの固定デ−タを書く事をしてみようと考えました。出来るかな?
   2010/10/21 (Thu) 18:46:04
[名前] :   kawana
[URL] :   
[コメント] :   Motorola S recode FormtとIntel-Hex Format
Check Sum
Motorola S recode Formt 1の補数
Intel-Hex Format    2の補数(1の補数+1)
だったのか。(うる覚えで理解していたが)
   2010/10/17 (Sun) 22:29:29
[名前] :   ラジオ少年
[URL] :   
[コメント] :   chip eraseの件
Arduinoでプログラムを作りまがりなりに消去が出来たのですが、不安定要素がありました。別にCでchip eraseのプログラムを作り不安定な原因を探っていました。XTAL1,WRのタイミングを色々変えて見ましたが、タイミングの問題では無いことが分かりました。HVRescueの回路ではターゲットのVCCをホストAVRのPB4から100オームを経由して供給しています。
この電圧見てみるとオンするまでフラフラと安定しない状態です。ここを直接5VからTRをON/OFFするように回路変更しました。これで少し電圧降下が有りますが、安定に供給されるようになりました。WRの後にRDY/BUSYが安定してLOWに落ちる様になりました。これで、消去出来なかったT2313も消去出来、BUSYの時間も8.3msと仕様書を満足する様になりました。Chan氏のパラレルライタのBUSYも8.3ms程度です。
Arduinoでのプログラムは再考しないとNGです。
取りあえず、コメントを頂いた皆様に経過報告です。
   2010/10/18 (Mon) 02:34:39
[名前] :   kawana
[URL] :   
[コメント] :   >ターゲットのVCCをホストAVRのPB4から100オームを経由して供給しています。
私も、そこは、10mA流れたとして10x100=1000mV 1Vも
電圧降下するのではと考えSub基板で変更しました。
+12Vも同様に。
あと、BUSY 8〜9msに成るのですね、この点を私は
再確認してみます。
検討結果情報ありがとうございます。
   2010/10/18 (Mon) 07:46:15
[名前] :   shuji009
[URL] :   
[コメント] :   おお!素晴らしい

ラジオ少年さん、お疲れ様です。
私もkawanaさんに紹介した手前、かなり気にはなっていました(汗;)。

今回のケースは、たかが抵抗、されど抵抗・・・ということでも
ないのかもしれませんけど、過渡現象だったのですね(本当かな?)。
   2010/10/18 (Mon) 08:07:13
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、 shuji009さん、お早う御座います。
回り道しましたが何とか原因を突き止めたかな、と言った所です。オリジナルのプログラムのコメントに以下のような事が書いてあります。

// Now were in programming mode until RST is set LOW again
// ATtiny2313: if I dont strobe OE here, the first fuse read returns 0xFF.
// Im not sure why this is necessary!
digitalWrite(OE, LOW);

shuji009さん、コインが出てきて良かったですね。
ロジアナ不具合があり今日修理に出します。

この Im not sure why this is necessary! 多分、VCC供給の影響ではないかと推察しています。
kawanaさんは先見の明がお有りのようで先に修正されたようですね。私はうまく行けば部品は少ない方をとりますので裏目に出たようです。
   2010/10/18 (Mon) 09:21:01
[名前] :   kawana
[URL] :   
[コメント] :   英語の勉強と思い何回も読み返すのですが、なかなか
意味がつかめません。

// Now were in programming mode until RST is set LOW again
// ATtiny2313: if I dont strobe OE here, the first fuse read returns 0xFF.
// Im not sure why this is necessary!
digitalWrite(OE, LOW);

Im not sure には、大変興味が湧きました。
Pro.でも、想像つかない事が有るのかな〜、
マニュアルから読み取れない事とが有るのかな〜と。
   2010/10/18 (Mon) 09:38:21
[名前] :   kawana
[URL] :   
[コメント] :   >Eraseが一段落したところで、休憩のあと、W/Rを
やってみますか。
処理をブロック分けして、少しずつコ−デイングでしょうか。私は、Fileの考え方の理解が遅れているので
コ−デイングは、重たいです。
   2010/10/18 (Mon) 09:45:37
[名前] :   ラジオ少年
[URL] :   
[コメント] :   私は英語の専門家ではありませんが、I am not sure.
の意味は簡単に言えば「分からない」ですかね。
アメリカで話される英語は教科書には出てこないものが多いですね。
例えば、これコピーしていいですか?と聞くと「sure」
と答えが返って来ます。sureはよく使われているようです。
make sureも良く耳にします。
   2010/10/18 (Mon) 10:12:08
[名前] :   kawana
[URL] :   
[コメント] :   >先見の明がお有りの様で先に修正されたようですね
先見の明がお有りの様で何て言われるとくっぐたいですね。
---------
失敗や、動作しなかった時、とことん原因を追究します。たまたま、以前に不安定トラブルを経験していたからに過ぎません。(この時は、考えもせずに、
C 10uFを入れてしまいました。)
先ほども、大失敗してきました。今、反省と予防策を
考えているところです。
   2010/10/19 (Tue) 07:05:39
[名前] :   senshu
[URL] :   
[コメント] :   回路に原因があった件、了解です。

ターゲットのVDDが、AVRマイコンのIOピンで直接
制御していたとは考えてもみませんでした。

フラッシュ書き込み時はかなりの電流が必要です。
AVRマイコンのI/Oピンから、しかも100Ωを経由して
給電しています。そのため、書き込み時にVDDが
変動し、意図した動作をしなかったというわけですね。

ラジオ少年さんの辛抱強い取り組みが功を奏しました。
どうもお疲れ様でした。
   2010/10/13 (Wed) 14:35:08
[名前] :   kawana
[URL] :   
[コメント] :   kumanさんの掲示板を使用させて頂き成果を挙げる事が
出来ました事、感謝致します。

数多くの、Erase記事でうめつくしてしまった事お許し
下さい。
kumanさんの掲示板を通して、Arduino(Erase処理を
理解出来ました。)
kugaさんからも、適切な技術的アドバイスを頂き、早期に原因が解ったと思います。これからも、宜しく
ご指導の程、宜しくお願い致します。
   2010/10/16 (Sat) 11:51:41
[名前] :   senshu
[URL] :   
[コメント] :   お久しぶりです。

ラジオ少年さんの取り組みは半ばであり、問題は解決して
いないと思います。そこでソースを確認してみました。

Arduinoでは割り込み処理でシリアル通信を行っています。その
ため、シリアル通信を有効にしていると、delay関数などは意図
したよりも遅くなることが考えられます。正確なタイミングが
必要なら、以下のような記述は避けるべきです。
 Serial.begin(BAUD);
  delay(10);
  |
 Serial.end();

健闘を祈ります。
   2010/10/16 (Sat) 16:51:41
[名前] :   ラジオ少年
[URL] :   
[コメント] :   senshuさん、お久しぶりです。
そうですね、まだ問題は解決していません。Arduinoの記述に付いては了解しました。
もう少し、食らいついて見ます。
   2010/10/16 (Sat) 17:10:28
[名前] :   kawana
[URL] :   
[コメント] :   senshuさんお久しぶりです。
delay(1);//1ms程度でもダメなのでしょうか?
kugaさん指摘のところは、オリジナルでは、1msに成っています。
   2010/10/16 (Sat) 18:14:04
[名前] :   senshu
[URL] :   
[コメント] :   考えられる不安定要素は、些細なことでも取り除きます。

何の問題もなければ、確実に動作するはずです。

不安定要素が何なのかを突き詰めるのことが重要と
考えます。
   2010/10/12 (Tue) 21:51:09
[名前] :   ラジオ少年
[URL] :   
[コメント] :   Q1.BUSYの時間は同じです。
 avrdude-GUI、Chan方式では消去出来ます。
Q2.Fuseの値は同じだと記憶してます。
   2010/10/12 (Tue) 21:55:53
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、kumanさんの掲示板でのこの話題はこれで終わりにします。
   2010/10/12 (Tue) 08:19:36
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kugaさんお早う御座います。別スレッドにしました。
ロジアナでみたタイミングで別に問題はないと思うのですが消せるIC、消せないIC(2個しか手持ちが無いので)がどうしてでるのか不思議です。それからBUSYの時間が短い、(Chan氏のライタでは8msくらい)これも疑問です。
Cでchip eraseを作っていますが、何せ初心者でうまく行きません。
ホストAVR(mega328)の出してもいない信号が出ていたり、タイミング的に後で出なければ行けない信号が先に出ていたり、自分の意図する様には動いてくれません。
こうなると、頭の中は同じループになって抜け出せませんね。一つずつつぶして行くしかないですが。
(そろそろ掲示板満杯かな?)
   2010/10/12 (Tue) 09:55:15
[名前] :   kawana
[URL] :   
[コメント] :   ラジオ少年さんおはようございます。
ArduinoProgramの挙動がおかしいかも?の件了解です。私は、とりあえず、オシロErase波形確認して
見たいと思います。ついでに、RDY/*BUSY処理置き換え出来ればしてみたい。
*WRの↑から、一定時間後でないと、RDY/*BUSYは、BUSY=0に成っていないのでは?
まずは、ProgramFlashのReadをFlow(TimingChart)を
作成し、Arduinoで組んでみたいと思います。
   2010/10/12 (Tue) 10:15:05
[名前] :   kuga
[URL] :   
[コメント] :   並列プログラミング動作への移行で
高電圧印加後、最低10μs、Prog_enableピンを無変化に
との規定があります。
WRピンをHにするのが早すぎませんか?

ArduinoのdigitalWrite()は遅そうなのでこれでも10uS位は
かかるのかな〜 (Arduinoは使ったことありません)
   2010/10/12 (Tue) 10:26:09
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kugaさん、悩ませて済みません。
Arduinoは遅いのか最初WRにもdelayを入れていましたが、ロジアナで見ると無くても時間的には問題なさそうなのでコメントアウトしました。
なんか同じ所をぐるぐる回っている様ですので、少しクールダウン、頭を冷やします。
   2010/10/12 (Tue) 12:04:35
[名前] :   kawana
[URL] :   
[コメント] :   XTAL1↑に同期を掛けて信号をオシロで確認しました。
TimingChartをすんさん掲示板に書きました。
   2010/10/12 (Tue) 12:59:18
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、Timing chart見ました。
私の送ったmyLAを開いてファイルでxxx.mlaを開けば時間を変化させて見ることが出来ますよ。
.jpgのファイルは出来ません。
   2010/10/12 (Tue) 13:39:35
[名前] :   kawana
[URL] :   
[コメント] :   HVRescue_Erase myLAで見ました。
済みません、確認が遅く成りました事。
私が、オシロスコ−プで確認した波形と違うようなのですが、何故なのでしょう。?
kugaさんが注目している、*WRのLow幅は、4.4usで
短いのでしょうか?
   2010/10/12 (Tue) 13:50:05
[名前] :   ラジオ少年
[URL] :   
[コメント] :   多少時間は違っている様ですが概ね同じタイミングになっているのでは無いかと思います。
WRのLOW幅はまた後程見てみます。
   2010/10/12 (Tue) 20:45:47
[名前] :   ラジオ少年
[URL] :   
[コメント] :   WRのLOWの時間を4.4usから13usくらいにしてみましたが、消去出来ないT2313は相変わらず消去出来ませんでした。
   2010/10/12 (Tue) 21:16:46
[名前] :   kawana
[URL] :   
[コメント] :   WRのLOWの時間を4.4usから13usくらいにしてみましたが、消去出来ないT2313は相変わらず消去出来ませんでした。

そうでしたか。
もう少し、広範囲に考える様にしなくてはいけないのでしょうか?

Q1.RDY/*BUSYの時間に違いは、無いのでしょうか?
ERASE処理は、*BUSYの時間に行われていると思うのですが、この時間が同じであれば、別の要因が考えられるのでは、
他のWriterでは、ERASE不能ChipもW/R,ERASE OKなのでしょうか?

Q2.念のためFuseBit値が同じでしょうか
   2010/10/13 (Wed) 01:23:32
[名前] :   kuga
[URL] :   
[コメント] :   注意深く発言を読んでください。
>kugaさんが注目している、*WRのLow幅は
先入観なく注意深く読んでください。
私はWRのLow幅には一度も言及していません。
(問題視していません)
   2010/10/10 (Sun) 16:17:55
[名前] :   ラジオ少年
[URL] :   
[コメント] :   Arduinoについて

HVRescue_Shieldと言う12Vパラレルfuse書き込み器を作り取りあえず自分なりのプログラムをでっちあげました。
ついでに、chip eraseはコマンドも簡単ですのでプログラムを作り(実際は試行錯誤ばかり)を
はじめました。やっとTiny2313の消去ができました。これも実は難ありで消去出来るのと出来ないのが有ることです。
ここで感じたのはプログラムに書いたようには動いてくれないなーと。ロジアナをつないで意図したタイミングで波形が出るようにプログラムを修正して追い込みました。Arduino言語はハードに近い動きをさせるには難しいそんな感触です。ハードに近い部分の動きが分からない、勿論私の能力の問題も大きく影響します。Cで書いた方がいいのかも、、、、。
   2010/10/10 (Sun) 17:38:11
[名前] :   kuga
[URL] :   
[コメント] :   chip eraseはコマンド
すんさんの掲示板にkawanaさんがUPしているのが
そのプログラムでしょうか。(No.20506)

Tiny2313のデータシートと対で見たところ、chip_eraseコマンドを
発行してから、実際の消去時間(7.5mS〜9mS)のBUSY状態の
RDY/BSY信号確認あるいは時間待ちが、見当たらず
すぐに出力ポートをdisbleにしているように見えます。
これが、消去不良の出る原因かも。
   2010/10/10 (Sun) 17:54:35
[名前] :   kawana
[URL] :   
[コメント] :   今度は、ProgramFlashのW/Rですかね-
ArduinoのProgramの理解が進んだところで、挑戦してみるのはいかがでしょうか?
ラジオ少年さんが作られた、Eraseを勉強しているところです。ロジアナで、制御波形を撮りたいと思います
是非、作成から完成迄のProcessをラジオ少年さんの
綺麗なブログに書いて頂きたいと思います。
おかげさまで、Erase処理が理解出来たと思っております。有難うございました。
   2010/10/10 (Sun) 18:17:40
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kugaさん、今晩は。そうです、それです。

while(RDY == 1) で RDYになるのを待つ様にしていたのですが、期待通りには動いてくれません。そこで10msのdelayをいれて逃げてます。
Chan方式のパラレルライタではBUSYの時間は8.8ms位です。私のでは3.3ms位とかなり短いです。ですから、取りあえず10msでRDYになるだろうと。
消去はarduino-GUIで確認しましたが問題なさそうです。
AT23132個を試して見たのですが、最初にデバッグに使っていたICはプログラムを色々変えての消去出来ず、やむなくICを交換して取りあえず消去出来たといった具合です。最初のICはarduino-GUI、Chans writerでは消去出来ます。そんな状況です。
   2010/10/10 (Sun) 18:25:59
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、今晩は。
どうもArduino言語?はよく分かりません。
一つ一つは分かるのですがプログラムと言うことになると
その動きがおかしい(私の頭がおかしいのかも)混乱して
来ます。
chip-eraseはプログラム勉強する丁度いい教材になりますので、今度はCで作ってみようと考えています。
   2010/10/11 (Mon) 07:11:19
[名前] :   ラジオ少年
[URL] :   
[コメント] :   記述に間違いがありました。
arduino-GUIではなくavrdude-GUIです。使用したライタは
HIDaspxです。ごめんなさい。
   2010/10/11 (Mon) 23:19:41
[名前] :   kuga
[URL] :   
[コメント] :   見落としてました。
>そこで10msのdelayをいれて逃げてます。
確かに delay(10) が入ってますね。
データシートから考えればこれでOKのはずですね。
なんでだろ??
   2010/10/9 (Sat) 12:14:54
[名前] :   ラジオ少年
[URL] :   
[コメント] :   最近、senshuさんの書き込みが全然ありませんね。
senshuさんの掲示板も全く音沙汰無しです。どうされたのでしょうね?
忙しいのかな?
   2010/10/9 (Sat) 16:26:30
[名前] :   kuman
[URL] :   
[コメント] :   仕事が忙しくなってマイコン関係には時間がとれないそうですね。
   2010/10/9 (Sat) 16:33:54
[名前] :   Nakayama
[URL] :   
[コメント] :   senshuさんの書き込みにフィードバックが無いからでは?


senshu の書き込みに反応できる人は、ラジオ少年さん、kumanさん位しかいません。
他2、3名いますが

最後のsenshuさんの書き込みにフィードバックした人は、いません。確認してください。

わたしはこういうのを作りました。のような自慢?報告!する人はほとんどいない。

また、報告がなされてもそれに対しておだてる人もいない。

みんなで持ち上げようよ!。嫉妬しないで作品に対しておだてでいいんじゃない?
AVRの作品は高度でなきゃ発表できないみたいな空気が。

kumanさん 削除を。。
   2010/10/9 (Sat) 16:36:01
[名前] :   ラジオ少年
[URL] :   
[コメント] :   そうですか、分かりました。
今までかなりアクティヴにお出なってましたから。
情報有り難う御座いました。
   2010/10/9 (Sat) 16:51:50
[名前] :   ラジオ少年
[URL] :   
[コメント] :   最後の書き込みは
「brd-view-0924.zip を公開」ですか?
私はDLして開いてみましたが、フィードバックはしていません。
何故か?言葉のキャッチボールをするだけの状況に無いからと言ったらいいのか、反応出来るだけの材料が自分にはない状態と言ったらいいのか、、、、
   2010/10/9 (Sat) 17:44:20
[名前] :   kuman
[URL] :   
[コメント] :   至近距離での反応は

浅学の身に厳しいものがあります。
開発されるすべてを追試をすることは理解の点で困難です。
当を得ていないとご指摘いただくこともあって発言には気を使っているところです。
   2010/10/10 (Sun) 15:24:46
[名前] :   すん
[URL] :   
[コメント] :   私は
ヒロさんの日本語データシート有料化騒動があったせいもありますが、AVRは最近やっていません。
AVRは確実にユーザー減らしたと思ってます。
senshuさんの製作物でもAVR関係が多いので、影響かもしれませんね。

じゃあ何をやっているのというと、ルネサスのマイコンです。日本語環境というのは日本人にとって重要な位置を占めていると思いました。

単に私が英語ドキュメントを見たくないという理由なのですが・・・
   2010/10/7 (Thu) 15:32:48
[名前] :   kawana
[URL] :   
[コメント] :   7.*WR=↓↑pulse では、うまくLOWパルスが出ませんね
socketにsetした ATTINY2313のPD3に入力していますが
PD3がinputmodeに成らないのでしょうか?
Pulse幅は1msくらい取っています。Eraseシ−ケンスの
詳細を理解しないとダメの様な気がします。なんだか
心細く成ってきた。
最悪の場合、AVRSPでATTINY2313のErase波形を撮る。
ロジアナが有るといいな。ロジアナの未完成品ボ−ドは、有るけど。
   2010/10/7 (Thu) 15:38:55
[名前] :   kawana
[URL] :   
[コメント] :   すんさんにお願いして、mail Addressでmailできる様にしましょうか?
   2010/10/7 (Thu) 15:46:24
[名前] :   ラジオ
[URL] :   
[コメント] :   
   2010/10/7 (Thu) 15:48:25
[名前] :   kawana
[URL] :   
[コメント] :   すんさんにお願いのmailしました。
   2010/10/7 (Thu) 15:51:07
[名前] :   ラジオ少年
[URL] :   
[コメント] :   7.*WR=↓↑で負パルスは出ていました。
20usのdelayでやっていましたので、うまくトリガが掛からず見落としてました。
kawanaさんももう一度観測してみてください。
eraseの部分はうまく動いているようですが、eraseは出来ていません。
何か他にまずい部分が有るのでしょう。
   2010/10/8 (Fri) 01:24:10
[名前] :   kawana
[URL] :   
[コメント] :   ラジオ少年さん、すんさんの雑談掲示板に書き込み
お願い致します。
   2010/10/3 (Sun) 21:13:57
[名前] :   ラジオ少年
[URL] :   
[コメント] :   Chanさんのパラレルライタを空状態でfuseを読み出すと下記のように表示されます。

C:\avrxtool32\bin avrpp -rf
Put a device on the socket and type Enter...
PAR->Unknown device (FF-FF-FF).
HVS->Unknown device (FF-FF-FF).
HVS15->Unknown device (FF-FF-FF).
FFの方が気分的にいいですかね。
   2010/10/3 (Sun) 21:19:49
[名前] :   ラジオ少年
[URL] :   
[コメント] :   HVR_Rescueの表示も空状態ではFFになるようにしました。

**********Burning fuse starts now!**********

Insert target AVR and press GO button.

Press for 2 sec less, ATmega mode./Press for 5 sec more, ATtiny mode.

[ATmega mode use 28PIN Socket]

Warning: Socket is empty. Insert target AVR.

Read fuse values(HEX) from target AVR:

LFUSE = FF

HFUSE = FF

EFUSE = FF

LOCK = FF

ID() = FF

ID() = FF

ID() = FF

CAL = FF
   2010/10/6 (Wed) 15:55:26
[名前] :   kawana
[URL] :   
[コメント] :   DATA = 0xFF;にしてみました。
下記の様にNo Chip Setでは、FFが読み出されました。
有難うございます。

Insert target AVR and press button.

Target device fuse values:
LFUSE: FF
HFUSE: FF
Enter desired LFUSE hex value (ie. 0x62): 99
Enter desired HFUSE hex value (ie. 0xDF): 99

Read LFUSE: FF
Read HFUSE: FF
Burn complete.
   2010/10/6 (Wed) 19:17:33
[名前] :   ラジオ少年
[URL] :   
[コメント] :   FFと表示されたとのこと了解です。
プログラムを色々変更している内にふくらんできて、今はmega328を使っています。
kawanaさんのやっていたチップイレーズをやっていますがどうもうまく行きません。
プログラムはいいと思うのですが何故か駄目ですね。
   2010/10/6 (Wed) 20:01:33
[名前] :   kawana
[URL] :   
[コメント] :   erase Programを研究されたとの事ですが、がんばりましょう。
私は、文書読解力、Program読解力が無いので暗闇を
ふらふら歩いている所でしょうか?
http://reef.path.ne.jp/~hero/hero.htm ヒロさんの日本語マニュアル ATmega48/88/168 P181-186を読んでもピンときませんし、Programを読んでもピンと来ないので、すんさんの所の、No.20448にTimingChart下書きFormを作成し、少しずつProgramを理解しようとしています。
Targetがずれた、ヒロさんの日本語マニュアル
ATTINY2313もPrintしてみよう。
   2010/10/7 (Thu) 12:20:44
[名前] :   kawana
[URL] :   
[コメント] :   チップ消去(ATTINY2313)
P120を図式可した
1.Trigger TRG Output
2.XA1=1
3.XA0=0
4.BS1=0
5.DATA= 0b10000000 //0x80
6.XTAL1=↑↓pulse
7. *WR=↑↓pulse
8.RDY/*BUSY=1 wait 1
記述を纏めてみましたが、動作しないでしょう。
   2010/10/7 (Thu) 12:24:20
[名前] :   kawana
[URL] :   
[コメント] :   修正
7. *WR=↓↑pulse
   2010/10/7 (Thu) 15:16:50
[名前] :   ラジオ少年
[URL] :   
[コメント] :   7. *WR=↓↑pulse では、うまくLOWパルスが出ませんね。XTAL1はhighパルスがきれいに出ているのですが。
色々書き方を変えて見ましたが駄目です。
この掲示板で訳の分からないことを書くのも何ですので、
この件は何か結論がでたら、その時ちょこと書くことにします。
   2010/10/2 (Sat) 08:13:03
[名前] :   ラジオ少年
[URL] :   
[コメント] :   HVR_Shield12

取りあえず私なりの結果が出ました?のでsenshuさんの掲示板にupしました。
http://www-ice.yamagata-cit.ac.jp/forum/viewtopic.php?t=511&start=15
ホストAVRにmega88(いまは168に換えてます)を使用、
2313、8,88,168,328への書き込みが出来る事を確認しました。
特徴は
GO ボタン”を押す時間でATtinyとMegaの切り替える様にしました。その他、多少フェイルセーフに。
回路図はこれから書かないと、、、、、。
まあ、そんなとこです。
   2010/10/2 (Sat) 11:38:26
[名前] :   kawana
[URL] :   
[コメント] :   やりましたね。おめでとうございます。
苦労した事、色々考えた事が良い醍醐味と成ったのではと想像しています。
AVRのHard,Softのレベルが上がったのではと思います。
私も、簡単なところから、再度やってみようかな。
   2010/10/2 (Sat) 19:52:32
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、今晩は。
以前、eraseをおやりになっていましたが、私はどうなるか結果を期待してました。
AVR ターゲットが空のの時にread dataがFFになるのでは?と疑問を持たれていましたが、プログラムを読めばどうしてFFにならないのか分かると思います。
是非、もう一度トライしてみてください。
私はプログラムは初心者でとてもスマートなものは作れませんが、プロではありませんので、これでいいと思っています。
   2010/10/2 (Sat) 20:00:23
[名前] :   kawana
[URL] :   
[コメント] :   ラジオ少年 さん今晩は
FFに成るのではと思っていましたが、成らないのですね。面白い例題有難うございます。もう一度、トライ
してみます。
   2010/10/3 (Sun) 05:14:03
[名前] :   kawana
[URL] :   
[コメント] :   XA1にトリガ用Pinを付けました。ATTINY2313を
先に調べたいと思います。
Softの力が無いので、何時出来るかは、不明。
最後までやる決心は、付いた。
   2010/10/3 (Sun) 07:50:44
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、お早う御座います。
XA1にトリガピンを立てるとのことですが、XA1はプログラムが走っている間、high,lowを繰り返しています。
ここから、データラインを観測するのはもっと大変だと思います。
HVR12のプログラムの中のfuse_read関数を見てください。
ヒントはプルアップです。その部分を変更、コンパイルして結果を見ればご理解頂けると思います。
   2010/10/3 (Sun) 10:56:02
[名前] :   kawana
[URL] :   
[コメント] :   ありがとうございます。XA1はH-L-Hの繰り返し
Fuse_read関数再度良く見て考えて見ます。
Triggerにふさわしい信号探してみます。
   2010/10/3 (Sun) 17:14:02
[名前] :   ラジオ少年
[URL] :   
[コメント] :   kawanaさん、答えです。
下記はプログラム(read関数)の一部です。

byte fuse_read(int select) {
byte fuse;
send_cmd(B00000100); // Send command to read fuse bits
// Configure DATA as input so we can read back fuse values from target
DATA = 0x00;
DATAD = 0x00;<ーーーー入力に設定されてます。
DATADが入力に設定されていますがDATAは0x00でプルアップされていません。DATA=0xffにすればプルアップされ、読み込みデータはFFになります。
でも、ソケットは空ですので不確定な状態でもいいのではと私は考えます。
FFにしてコンパイルしてみて下さい。
   2010/10/3 (Sun) 18:43:23
[名前] :   kawana
[URL] :   
[コメント] :   ご解答ありがとうございます。
大体は想像出来ていましたが、不明でしたので質問しようか考えていました。
Chipなしでは、なんで0x33が?出てくるのか考えていました。
Chipなしで不定Dataが読み出されるのは、問題ないのでは、結果からChipなしに直ぐ気が付くでしょう。
ChanさんのWriterでは、0xFFに成っていた様な?
   2010/10/2 (Sat) 00:02:43
[名前] :   上間
[URL] :   
[コメント] :   Kumanさんこんばんは

涼しい季節になりました。
冬:コタツでアイデアを練ります。<<上間>>
春:発表します。<<上間>>
ご期待。。。冗談です。

imさんに期待。。してます。。。。。
   2010/9/28 (Tue) 20:12:27
[名前] :   kawana
[URL] :   
[コメント] :   kumanさんは、ATXMEGAには、興味が無いですか?
O-Familyさんは、研究されているようです。
Chipの価格調べたら、1000¥くらいでした。
A4ならば、11x4なので、UEWでKumanさんなら
いけるのでは、0.65 Pitchだと思いますが?

型番の末尾 ピン数 I/O数
A1 100 78
A3 64 50
A4 44(49) 36
どれくらいの機能Upなのでしょうか、Clockは32MHzに
上がっているようです。
おせっかい、おじさんより。
   2010/9/29 (Wed) 16:18:36
[名前] :   kuman
[URL] :   
[コメント] :   お心遣い、ありがとうございます。

まだ、megaと格闘している状況ですのでしばらくは今のままになると思います。

新機能があっても、音と映像に関心が無く、いいアイデアも浮かばない、すこし困った状態ではあります。
   2010/9/24 (Fri) 20:53:08
[名前] :   senshu
[URL] :   
[コメント] :   brd-view-0924.zip を公開

brd-chkを発展させた、汎用のAVRマイコンのFUSEデータ管理
ツールを公開しました。

わずか2日間ほどで作成したものですが、Arduino IDE付属の
boards.txtからのデータインポート、CSVファイルとの入出力
が可能です。

avrdude-GUIとの連携も可能になっています。利用者間の情報
交換によりFUSEデータが充実すれば、かなり便利に使えると
思います。
  
▲このページのトップ 戻る  

Yahoo!ジオシティーズ


inserted by FC2 system 1