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

   2006/1/11 (Wed) 12:41:47
[名前] :   GO2
[URL] :   
[コメント] :   Akibow,KKKさん、いつもプロ情報をありがとうございます。

もう秋月のatmega128chipを4つも注文してしまいました。
今回は注意して半田付けをやりたいですが、128の中が
完全な初期状態でないなら、GO2はどうしたらよいでしょうか?
パラレル書き込み器はつくっても動かなかったので
以前買ってあったoptimizeサイトのezusbで書き込み、
初期化をしたいと思いますがどうでしょうか?
助言をお願いします。

また、今回幸運にもできた周波数カウンターのどこを
改良したらよいか、ご指摘ください。。

また、今週の土日に自作atmega128基板でのled実験、
再挑戦fc基板の報告をしたいと思います。
(当方はアマチュアで、こずかいで製作しているので
高価な航空便のかかるolimex基板を注文しませんでした)
   2006/1/10 (Tue) 23:48:50
[名前] :   akibow
[URL] :   
[コメント] :   つれづれなるままに・・05/01/10ですが、
1,599,745=1,600,000-255
799,745= 800,000-255
なんです。
Timer1 overflowがかかった直後にTCNT0が255→0になった場合、g1,g2がくりあがりませんので、255または256少ないカウント数を取得してしまうんです。
おそらく以下のようにすれば解決できると思います。

SIGNAL(SIG_OUTPUT_COMPARE1A)←CTC使用版のため
{
f3=TCNT0;
TCNT0=0;
f12=g12;←カウント変数をuint16_t g12にしたため
g12=0;
// TCNT0が繰り上がる前に比較一致割り込みに入り、
// g12が繰り上がらなかったケースを救済
if (bit_is_set(TIFR,TOV0) && f3
   2006/1/10 (Tue) 23:56:32
[名前] :   akibow
[URL] :   
[コメント] :   ソースコードをうまく乗せるのが難しいですね。
まとめてメールしてみます。
   2006/1/10 (Tue) 23:56:35
[名前] :   kuman
[URL] :   
[コメント] :   akibowさんありがとうございます。
時間をみてトライします。
   2006/1/10 (Tue) 11:29:50
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさん ついに完成し、6000077HZを表示しました

最終的に訂正した3つの箇所:

1.GO2は計算違いをしていて、正確な1秒間をつくる
  ところを H=194、L=247に訂正しました。
2.SIGNAL(SIG_OVERFLOW2)に訂正しました。
3.TIMER0は使っていないので
  TIMSK=_BV(TOIE0)|_BV(TOIE1);は
  TIMSK=_BV(TOIE2)|_BV(TOIE1);に訂正しました。

これで、岩通のユニバーサルカウンターとチェック
したら59999500HZ,この128基板は60000093HZを示し
ます。。これで完成したのだと思います。
今日は、午後から仕事です。本当に今日完成してよ
かった。うれしいです。。7ヶ月かかったです。

KUMANさん、大感謝してます。また、お世話になり
ます。AKIBOWさんにも大感謝します。
皆さん、ありがとう一応完成しました。
   2006/1/10 (Tue) 11:35:12
[名前] :   kuman
[URL] :   
[コメント] :   パチパチパチ(拍手)

おめでとう!
   2006/1/10 (Tue) 14:46:04
[名前] :   akibow
[URL] :   
[コメント] :   おめでとうございます!

これみて私もちょっとさわってみたくなりました。
いろいろいじっております。
とりあえず、
●CTC動作を使うと1秒タイマーが単純化できます
●表示ルーチンを割り込みではなくメインルーチンに追い出せば、表示と計測を同時並行させることができます。割り込み内ではg1,g2,TCNT0値取得だけを行い、フラグを立てる。メインルーチンではフラグが立ったのを確認したら表示ルーチンを動かす。
   2006/1/10 (Tue) 19:35:29
[名前] :   akibow
[URL] :   
[コメント] :   winavrのFAQを眺めていたらおもしろいものが。
秋月出荷のmega128がこれらの問題に引っかかることはないか1度点検する必要がありそうです。2番目は大丈夫でしょうか?短く要約しました。

●UARTが動かない!mega128が壊れた!ポートFが壊れた!
○内蔵RC発振が有効で意図しないクロックで動いていないか?
○ATmega128 はATmega103コンパチモードを有効に設定して出荷されています。これだとRAMの位置が大きく異なるので、ATmega128用にコンパイルしたプログラムは最初の関数コールでたちまち暴走してしまいます。(正しくは、最初の関数コールからのリターン時、ですが)
○JTAGが有効にされていると、JTAGに使用している各ピンが通常の入出力に使用不能となる結果をもたらします。
   2006/1/10 (Tue) 08:50:07
[名前] :   GO2
[URL] :   
[コメント] :   int main (void) {
fg=1;

DDRB=0xFF;
PORTB=0x00;
DDRD=0b01111111; PORTD=0b10000000; lcd_init();
TIMSK=_BV(TOIE0)|_BV(TOIE1);
TCNT2=0;
TCCR2=7;
TCCR1A=0;
TCCR1B=5;
OCR1AH=255;
OCR1AL=255;
TCNT1H=255;
TCNT1L=44;
sei();
lcd_cls();
lcd_putstr(FREQUENCY);
for( ; ; ) {
}
}
が全LISTです。よろしく
   2006/1/10 (Tue) 10:47:13
[名前] :   kuman
[URL] :   
[コメント] :   だいぶ(かなり)悩みました。

でも、きっと、原因は
>SIGNAL(SIG_OVERFLOW0) {
にあると思います。

2313ではカウンタ0を使いましたが、今回はカウンタ2でカウントしています。g1もg2もインクリメントされていないはずです。TCNT2=241だけがカウントされているのでしょう。

_OVERFLOW2 に修正してください。
   2006/1/10 (Tue) 08:49:45
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさんへ どうしても最上位桁表示しません。

#include
#include
#include
#include lcd.h
volatile uint8_t fg,g1,g2;
SIGNAL(SIG_OVERFLOW1) {
uint32_t d;
uint8_t d1,d2,d3,d4,d5,d6,d7,f1,f2,f3;
TCNT1H=194;
TCNT1L=61;
if(fg){
TCNT2=0;
g1=0;g2=0;
fg=0;
PORTB|=_BV(7);
}else{
f3=TCNT2;
f2=g2;
f1=g1;

d=(uint32_t)f1*65536+(uint32_t)f2*256+(uint32_t)f3;
d1=d/1000000; d=d-(uint32_t)d1*1000000UL;
d2=d/100000; d=d-(uint32_t)d2*100000UL;
d3=d/10000; d=d-(uint32_t)d3*10000;
d4=d/1000; d=d-(uint16_t)d4*1000;
d5=d/100; d=d-(uint32_t)d5*100;
d6=d/10; d7=d-d6*10;
lcd_gotopos(4,1);
lcd_putch(d1+0x30);
lcd_putstr(,);
lcd_putch(d2+0x30);
lcd_putch(d3+0x30);
lcd_putch(d4+0x30);
lcd_putstr(,);
lcd_putch(d5+0x30);
lcd_putch(d6+0x30);
lcd_putch(d7+0x30);
lcd_putstr( Hz);
PORTB&=~_BV(7);
fg=1;
TCNT1H=255;
TCNT1L=44;
}
}
SIGNAL(SIG_OVERFLOW0) {
g2++;
if(g2==0){g1++;}
}
   2006/1/10 (Tue) 06:36:13
[名前] :   GO2
[URL] :   
[コメント] :   皆さんへ 秋月のBBSによるとATmega128基板の発売予告あり

なにげなく、秋月の消費者BBSをみていたら、担当者
が多くの要望にこたえて、年内にはAH8-3664タイプ
のような、Tmega128基板の発売を予定していると答
えてました。確かに128のFPGA販売では利用しにくい
ですから。。。本当なら、朗報ですね。。ただGO2は
海外基板の購入は航空便費が4000〜6000円もしそう
なので、もう一度ATmega128-FPGAを注文しました。
丁寧な半田付けでFC基板つくりをやってみます。
   2006/1/10 (Tue) 06:27:44
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさんへ   肝心なd1の箇所

uint32_t d;
uint8_t d1,d2,d3,d4,d5,d6,d7,f1,f2,f3;

TCNT1H=194; /* 書き込みは上位から */
TCNT1L=61; /* 1Hzを作る */

if(fg){
/* 計測 */
TCNT2=0;
g1=0;g2=0;
fg=0; /* フラグクリア */
PORTB|=_BV(7); /* PORTB7=L LED点灯 */
}else{
// 表示
f3=TCNT2;
f2=g2;
f1=g1;

d=(uint32_t)f1*65536+(uint32_t)f2*256+(uint32_t)f3;
d1=d/1000000; d=d%1000000;
d2=d/100000; d=d-d2*100000;
d3=d/10000; d=d-(uint32_t)d3*10000; /* ここをキャストしないと計算がおかしくなる */
d4=d/1000; d=d-(uint32_t)d4*1000; /* ここはよくわからない */
d5=d/100; d=d-d5*100;
d6=d/10; d=d-d6*10;
d7=d;

でやりました。よろしく。
   2006/1/10 (Tue) 07:11:00
[名前] :   akibow
[URL] :   
[コメント] :   桁分離の計算、計算結果に応じたキャストで
割り算よりかけ算の方が負荷軽いので、d1部も%使わず下記のようにした方がいいと思います。
d1=d/1000000; d=d-(uint32_t)d1*1000000UL;
d2=d/100000; d=d-(uint32_t)d2*100000UL;
d3=d/10000; d=d-(uint32_t)d3*10000;
d4=d/1000; d=d-(uint16_t)d4*1000;
d5=d/100; d=d-(uint32_t)d5*100;
d6=d/10; d7=d-d6*10;

なお、32bit演算のオンパレードはAVRへの負荷が大きそうなので、以下のように16bit演算に分離した方がいいかも。
//万の桁以上と未満に分ける。これで32bit演算が減る
dh=d/10000UL; dl=d- (uint32_t)dh*10000UL;
d1=dh/100; dh=dh-(uint16_t)d1*100;
d2=dh/10; d3=dh-(uint16_t)d2*10;
d4=dl/1000; dl=dl-(uint16_t)d4*1000;
d5=dl/100; dl=dl-(uint16_t)d5*100;
d6=dl/100; d7=dl-(uint16_t)d6*10;
   2006/1/10 (Tue) 07:24:53
[名前] :   kuman
[URL] :   
[コメント] :   今日から忙しくなりますね。

あと一息ですから、焦らず考えましょう。
書き出しルーチンに誤りはないでしょうか。
lcd_putch(d1+0x30);
のd1です。

デバグの一つとして、他の発振器をつないでみましょう。適当なものが無ければ、90S2313に小さなループ
 for(;;){
  PORTD=4;
  PORTD=0;
 }
を臨時に書いてもいいです。上の例ではクロックが4分周されて出てきます。
   2006/1/10 (Tue) 08:44:15
[名前] :   akibow
[URL] :   
[コメント] :   d1=d/1000000UL; d=d-(uint32_t)d1*1000000UL;←UL追加
d2=d/100000UL; d=d-(uint32_t)d2*100000UL;←UL追加
d3=d/10000; d=d-(uint32_t)d3*10000;
d4=d/1000; d=d-(uint16_t)d4*1000;
d5=d/100; d=d-(uint16_t)d5*100;←cast訂正
d6=d/10; d7=d-d6*10;
   2006/1/9 (Mon) 20:42:17
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさんの助言で訂正完了しました。

BEST-TECHの128基板はCLOCK=16MHZを使ってますので
H=194、L=61を入れ、TCNT2=0;TCCR2=7;と変え、32番
ピンPD7=CLOCK-INにしました。BEST128基板のLEDが
正確な1秒点滅を示します。。これは成功!

すると、液晶画面は6MHZのCLOCK-ICからの出力は

FREQUENCY 
0.000.241Hzと表示されます。

100万の桁が抜けます。今回、KUMANさん最新のFC-LZH
を解凍して、

d2=d/100000; d=d-d2*100000;
d3=d/10000; d=d-(uint32_t)d3*10000;
d4=d/1000; d=d-(uint32_t)d4*1000;
d5=d/100; d=d-d5*100;
d6=d/10; d=d-d6*10;
d7=d;

にしましたが。。。どこが間違いでしょうか?
6MHZ-ICをとりさると確かに、0.000.000HZ
となります。

(GO2の「液晶が面が青い」という表現は、電源ON
の初期液晶画面のことです。薄い青色の4角が表示
されて、電源ONをいつも看取るためです。)
   2006/1/9 (Mon) 22:35:11
[名前] :   kumann
[URL] :   
[コメント] :   もう一息。

d=(uint32_t)f1*65536+(uint32_t)f2*256+(uint32_t)f3;
d1=d/1000000; d=d%1000000;
のd1はどうなっていますか。
   2006/1/9 (Mon) 23:04:10
[名前] :   kuman
[URL] :   
[コメント] :   「青い」にこだわったのはコントラストの調整誤りかどうかを確認したかったのです。スミマセン。
   2006/1/9 (Mon) 15:01:06
[名前] :   GO2
[URL] :   
[コメント] :   Akibowさんへ bexttechで周波数表示

BESTtechのatmega128基板で、kumanさんの最新版の
fc.cを焼き付けたら、液晶画面には

frequency
 0,000,000HZ

まではでましたが、入力pd4端子のclock
を与えてもさっぱり表示しません。

いわれたとおり、
d2=d/100000; d=d-(uint32_t)d2*100000;
d3=d/10000; d=d-(uint32_t)d3*10000;
d4=d/1000; d=d-(uint32_t)d4*1000;
d5=d/100; d=d-d5*100;
d6=d/10; d=d-d6*10;
d7=d;

TCNT2=0;
TCCR2=7;
と直しましたが、
TCNT1H=255;
TCNT1L=44;
をどう直して、基準1秒をつくるかわかりません。
よろしく、助言ください。
   2006/1/9 (Mon) 16:40:43
[名前] :   kuman
[URL] :   
[コメント] :   プログラムでTCCB1B=5と定義しています。ここはタイマ1のクロック選択で1024分周を設定しています。
1秒は12.8MHZ/1024=12500タイマクロックです。割込はH=255,L=255の次のタイマクロックで起こりますから、12500クロック(1秒)で起こるためには65536-12500=53036を設定することになります。
53036/256=207余り44ですからH=207,L=44としています。

H=255,L=44は表示時間を決めるための試行錯誤による適当な時間です。深い意味はありません。
   2006/1/9 (Mon) 16:51:24
[名前] :   kuman
[URL] :   
[コメント] :   もう少しですね。
>入力pd4端子のclock...
測定入力にタイマ2を使っていると思いますが、タイマ2の入力端子は128の場合、32番ピンPD7だと思います。
PD7を入力設定にして、ここに入力を接続してみてください。
   2006/1/9 (Mon) 01:41:44
[名前] :   GO2
[URL] :   
[コメント] :   BESTTECHの128基板で液晶表示に成功!

急にわかってきたので、BESTTECHの基板で液晶
表示に挑戦し、kumanさんのtiny26のLCD_TEST.c
で以下のように表示されました。

LCD test program
8 +

このPROGRAMをそっくり、自分の128基板ように
書き換えてやてみましたが、液晶画面は電源ON
時の四角い初期画面のままです。

ほとんど、わかりましたが基板を買い換えなくて
は、あるいは自作しなおさなければならないよう
です。。。

でも、この傷んだ自作MEGA128基板の箇所を点検
する必要・価値はあります。

実験の合間に、KUMANさんのサイトの他記事をよま
せていただきました。まだ、だいぶやることがあ
ります。。。。

90%成功したので感謝!。。寝ます。。明日もきます!
   2006/1/8 (Sun) 23:47:15
[名前] :   GO2
[URL] :   
[コメント] :   kumanさんへ 

自作基板のLED,LCD実験についてですが、

うかつでしたが、HTML言語ではダブルコーテーション
記号”も消えてしまいますし、不等号記号も消えて
しまうことを一瞬忘れて、PROGRAM表示してしまいま
した。。。。皆さん、すみません

LED点滅ではPORT-BはX55出力をし、すべて正確に
出力していました。ですから、LCD表示を期待して
いたのですが残念です。。。まだ、自分の128基板
は表示する可能性はまあまあ、あると思っております。どこか、配線、半田ミスの可能性大です。

明日も祝日ですので、午前中くらいまではLCD実験
がGO2はBESTTECH基板でできるでしょう。。。
   2006/1/8 (Sun) 23:28:04
[名前] :   GO2
[URL] :   
[コメント] :   Besttechnology基板でのLed点滅実験完了!

今、自作dongle回路で焼きこみをやりled点滅
をすべて確認しました。これで新makefileでの
HEX-FILE生成は正しく、自分の128基板は直感
どおりどこか傷んででいることが最終確認できました。

つまり、
・A0ポートは点滅を繰り返し、
・fポートはAA、bポートは55をしっかり
出力してました。。

結局、自分の0.8o半田づけ作業がミスったと
いうことです。

さらに、このあまり気に入らないbesttecの128
基板で液晶表示、周波数計もできる可能性がある
(また6000円も出費せずにすむ!)ということです。

たしかにbesttechは名前に反して、説明が大変不足
してます。

kumanさん、Akibowさん、また助言をお願いします。
   2006/1/8 (Sun) 22:40:11
[名前] :   kuman
[URL] :   
[コメント] :   GO2さんへ

ledがいうことを聞いたのは望みありですね。

lcd_putstr(LCD test program); は文字列をダブルクォートで囲んでください。

その前に、
lcd_putch(0x35);を書いてみてください。「5」が表示されるはずですが。 0x35 は 5 と同じです(はずです)。

A=0b1010
4=0b0100
ですからハードの関係で無いみたい。
確認で、0x00と0xffを調べてみてはいかがでしょうか。

同様にPORTBも確認できたらと思います。

>液晶は青いままです。
この意味がよく分からないのですが。青いのは全ドットONということでしょうか。
   2006/1/8 (Sun) 22:11:17
[名前] :   GO2
[URL] :   
[コメント] :   せっかく買ってあるBESTTECHNOLOGY ATMEGA128基板
を自作DONGLE回路でled.c,lcd.C、fc.Cを書き込んで
みます。。。。放置していたらもったいないです。

またまた、報告します。
   2006/1/8 (Sun) 21:23:48
[名前] :   GO2
[URL] :   
[コメント] :   さきほど、

ledのon-off実験とlcd書き込み実験の報告

1.ledのon-off実験

AポートのLEDを0ポートのみ1秒間隔でONOFF
を確認しました。BポートにはX55出力、Fポート
にはAA出力したら、FポートにはA4という信号で
でました。これは基板の傷みかと思い、すべて64
PINをテスターでも点検しました。が、わからない。

ただ、Aポートの点滅信号は間隔を長くしたら確認
できました。

ということは、新MAKEFILEについてはOKだと思います。

2.続いて液晶に1文表示を

#include
#include
#include
#include lcd.h
// メインルーチン
int main (void) {

DDRB=0xff;
lcd_init(); // 液晶パネルの初期化
lcd_cls(); // 表示クリア
lcd_putstr(LCD test program); //文字列の表示
for(;;){
}

}
のようにしましたが出ません。液晶は青いままです。
基板を市販品にして続行します。。。。。。^_^;;
   2006/1/8 (Sun) 19:41:44
[名前] :   akibow
[URL] :   
[コメント] :   徒然なるままに・・・ですが
空きポートの処理、趣味工作だしぃ、とばかり何もやってません(笑
外部に何もつないでいないなら、ハイインピーダンス入力以外なんでもいいとは思うのですが、ショートなどを考えるとプルアップ入力状態にしてしまうのがいいのではないかと思っています。
ただ、外部から何らかの輻射を受けて暴走した場合なども考えると、抵抗を介してプルアップが確実かな?と思います。これならDDRx/Portxがどうなっても大きな問題がおこらないようなので。
   2006/1/8 (Sun) 10:54:47
[名前] :   kuman
[URL] :   
[コメント] :    GO2さん、頑張っておられますね。akibowさん、ありがとうございます。

「周波数カウンタ」のソースを少し変えました。同時にlcd関係ファイルも「メモ」に書いてあるものに変えました。こちらの方がポート変更時に分かりやすくなっています。また、関係ファイルをlzhで置きました。

>ソースとmakefileをアップできれば..
メールで送っていただければ可能かと。

組み立て時は、今でも、電源とISP回路だけで書き込みテストをして次に進みます。簡単な仮動作を書いては実行・確認を繰り返して積み上げています。
   2006/1/8 (Sun) 10:46:08
[名前] :   GO2
[URL] :   
[コメント] :   ATmega128 でのLED,LCDの基礎実験について

はずかしながら、見落としてました!
ここのKumanさんのサイト

http://www.geocities.jp/kuman2600/begintiny26.html

に、LED,LCDの基礎実験のプログラムもMAKEFILE例も
すべて掲載してありますね!やり方まで丁寧にかい
てあります。すぐ使わせていただきます。

GO2は3年前、楠木さんのサイトを参考にしてAVR2313
でLCD,RS232の実験をして以来、あまり使ってません
でしたので忘れてます。再勉強です。WINAVRは初め
ての使用で、当時はAVRSTUDIOをよく使いました。
   2006/1/8 (Sun) 09:57:39
[名前] :   GO2
[URL] :   
[コメント] :   Akibowさんありがとう! 貴サイトも拝見してます!

まず第一のLEDをON-OFFすることをわすれてました。
昨夜(NETから)LED-ONOFF,MAKEFILEを準備しました。

それにしても自分の2枚のFPGA基板が欠陥物?だとし
たらがっかりです。Atmega128は本当に魅力があるの
で自由につかいたいですね。

今晩も、このLED-ONOFFの実験報告をいたします!
   2006/1/8 (Sun) 00:44:20
[名前] :   GO2
[URL] :   
[コメント] :   これからどうするかですが、

自作ATmega128基板が書き込みはできるが一部、機能
を果たしていない可能性があるので、安いolimexの
128基板を2枚買って、とにかくFCOUNTERをつくり?、
報告したいと思います。

今回、dongle基板で書き込めることがわかっただけ
でも大進歩でした。

皆さん、ありがとう。。。。まだつづけます。
また128用にはFC,Cはあとどこを変えるべきか助言
ください。ほかの方の128製作記も期待します。
   2006/1/8 (Sun) 00:24:51
[名前] :   GO2
[URL] :   
[コメント] :   kumanさんへ

残念ながら現段階では動きません。MAKEFILEも
手直しし、OLIMEXのSAMPLE.HEXも使ってみましたが
液晶には表示されませんでした。

なお、
掲載いただいたFC.LZHのFILEではMAKE時にERROR
が頻発したので、以前ののFC.CでTCCR0をTCCR2に,TCNT0をTCNT2に変更して、かつ一新したMAKE
-FILEでコンパイル、MAKEしました。

動かない原因:

・自作ATMEGA128基板の半田付けがおかしい。
(何度もこてあてをしました。自分はここ1年
SPARTAN2,3基板の0.5mm半田付けは一度も失敗
していないのです。。安い基板の品質も??)
・まだ、MAKEFILEがおかしい。
・FC.CがATMEGA128用に、完全に書き換えられていない。

などです。

AKIBOWさんへお聞きしますが、OLIMEXの完全動作し
ているATMEGA128基板や他の128基板には32768HZの
振動子が使われています。これって必需品でしょ
うか? どういう役目をしているのでしょうか?
   2006/1/8 (Sun) 01:34:10
[名前] :   akibow
[URL] :   
[コメント] :   32768Hzの振動子ですが、先に述べたようにTCNT0への入力に使えます。これでたとえば128分周でカウントさせると、128*256=32768となり、1秒ごとにTimer0 Overflowをかけることができます。

自作ボードですが、焦る気持ちはわかりますがまずは簡単なものから実行してはいかがでしょうか?LED点滅プログラムはできるか、液晶へ単純なメッセージ表示はできるか、などなど。
どこかにソースとmakefileをアップできればいいのですけど。
   2006/1/7 (Sat) 19:41:34
[名前] :   kuman
[URL] :   
[コメント] :    akibow さんへ
少し距離が離れましたので、ここでお礼申し上げます。

最初に使ったWinAVRが20040404でしたから、駆け出しの時期五里霧中、暗中模索で書いたものでした。とにかく動いたからこれでよい−−と吟味もできずに出しました。
コメントミスや、DDRD設定忘れもありますので、ご指摘いただいた点を含めて考え直します。
   2006/1/7 (Sat) 16:15:48
[名前] :   GO2
[URL] :   
[コメント] :   実はPICの周波数カウンターを後閑さんのC参考書
を丸写しでCで作ったのが12月25日で、それ
からKUMANさんのすっきりしたAVR−FCOUNTERを
見つけ、完成させました。だから2週間ぶっつづけ
でがんばってきましたが、今ちょっと息切れ状態です。
チカレタB−−−デス。
でも10日から仕事が開始ですので完成させたいです。

(後閑さんの周波数COUNTERはtimer02で例示して
ありますが、間違いがあり、その訂正もまた間違いで
割り込みのCODEを運良く自分で直せましたが、あまり
正確な表示はしません。。念のため)

がんばってやってみますが、まず自分のMAKE-FILE
でLEDがON-OFFできるかをやってみるのが早いですね。
確か、OLIMEXのサイトでこのFC-CONTERのATMEGA128-
SAMPLEを見ましたので参考にします。。

半田疲れは、軽いランニングにて疲れをとります。
   2006/1/7 (Sat) 14:52:31
[名前] :   GO2
[URL] :   
[コメント] :   kuman,akibowさんへ

配線は5回ほど点検して、間違いなし、SHORT箇所
もなしの上での1月7日14時報告分:

・液晶濃度はちゃんと変えれます。可変です。
・岩通ユニバーサルカウンターで計測したら
 12.8MHZからはCLOCKがでてました。
・TCCR0をTCCR2に,TCNT0をTCNT2に変更してもうごか
 なかったです。
・助言いただいている
「d=(uint32_t)f1*65536+(uint32_t)f2*256+f3;
d2=d/100000; d=d-(uint32_t)d2*100000;
など。」
ですが、GO2自身はわりこみについてはほとんど知識
がありませんので、FC.Cの修正が完璧におこなえま
せん。
・MfileはDESKTOP画面にありますが、使用したこと
がありませんが、取り組んでみます。
・とにかく、MAKEFILEが正しくないのだとGO2は思っ
ています。

また、今晩報告します。明日の日曜には完成したいですね。
   2006/1/7 (Sat) 15:42:33
[名前] :   akibow
[URL] :   
[コメント] :   大事なことを忘れていました。



がんばれ〜
   2006/1/7 (Sat) 11:50:41
[名前] :   GO2
[URL] :   
[コメント] :   kumanさん、akibowさん、助言ありがとうございます。

現在、fcounter の画面は電源ON時の青い初期
画面のままです。一切文字はないです。

1.port変更はなしです。
2.Makefile上のMCU定義をmega128に変更ずみ
3.動作時ライターは切り離しています
4.TCCR0をTCCR2に,TCNT0をTCNT2に変更、のよう    書き換えれば動作できると思います。。了解!

5.自分のgccコンパイルは、winavrのexamples
−fordaの中に、fcなるfordaをつくり、kuman
さんのFCのmakefileの2行目をちょっと変えて
dosでmakeしてます。正常に終了していますがどうも
あやしいです。本当にこれでGCCコンパイルができ
ているか助言ください。

6.まず、4をやってすぐ報告いたします。
   2006/1/7 (Sat) 12:39:11
[名前] :   akibow
[URL] :   
[コメント] :   makefileですが、最近のはずいぶん複雑になっているようなので、gcc添付のmfileで作ったものを使った方がいいかもしれません。winavrをインストールすればデスクトップにショートカットができています。
   2006/1/7 (Sat) 12:41:33
[名前] :   kuman
[URL] :   
[コメント] :   GO2さん

1 青い初期画面はコントラスト調整用可変抵抗で薄い色に変わりますか?

2 makefileは、テンプレートが新しくなっているので変更しました。HPの「コンパイルの方法」の中の圧縮ファイルを見てください。
   2006/1/7 (Sat) 12:48:10
[名前] :   kuman
[URL] :   
[コメント] :   追伸
なぜか切れました。

3 液晶表示の方法を「メモ」の中に書き直しましたのでお読み下さい。lcd.c、lcd.hはこの中のものがわかりやすいと思います。要変更ですが。

MFileにmega48がない、Tiny2313がない...
   2006/1/7 (Sat) 09:52:02
[名前] :   GO2
[URL] :   
[コメント] :   kumanさんへ

kumanさんのAT2313のは無事FREQがでているので、
コメントミスはあってもPROGRAMミスはないのでは?

現在、3回配線点検しましたが、液晶にはFREQは表示
されず、青いままです。
   2006/1/7 (Sat) 10:49:03
[名前] :   kuman
[URL] :   
[コメント] :   >青いままです
というのは、文字の色ですか、それとも電源OFFのときの地の色ですか?
もし、文字の色ならコントラスト調整端子の可変抵抗はどうなっていますか?
コントラスト端子の電圧がGND電位に近くなれば文字が濃くなって、ついには濃い色の四角ばかりの表示になったとおもいます。反対にVccに近くなると薄くなって見えなくなります。

また、ポートはPBから変更はありませんか?
   2006/1/7 (Sat) 11:29:20
[名前] :   おせっかいakibow
[URL] :   
[コメント] :   この周波数カウンタではTimer0をカウントモードで使用しているのですが、そもそもmega128のTimer0は外部信号をカウントすることができないようです。
 データシートを見ると、内部クロックのカウントと、外部32768Hz水晶発振器のカウントのみができ、外部信号のカウントについての記載がありません。TOSC1に外部信号を入れることは推奨されない(できないことはない模様)とする記載もあります。なお、TCCR0=7の指定はmega128では1024分周の指定を意味します。
mega128で使うには、Timer2を使うように変更する必要があるでしょう。これは2313のtimer0と互換性がありそうなので、TCCR0をTCCR2に,TCNT0をTCNT2に変更、のように書き換えれば動作できると思います。
しかし、FREQ:のコメントも出ないのですから、この問題だけじゃなさそうですね。
*Makefile上のMCU定義をmega128に変更した上で再コンパイルしているでしょうか?
*PORTは変更されていないか?
*動作時ライターは切り離しているか(PB1-SCKがライターに影響されている可能性)
   2006/1/7 (Sat) 12:33:55
[名前] :   akibow
[URL] :   
[コメント] :   これはお節介ですが、fc.cの割り込み内の周波数計算部分ですが、
uint32_t d;
uint8_t d1,d2,d3,d4,d5,d6,d7,f1,f2,f3;
が望ましいと思われます。dが32bit型なので、これでもちゃんと32bitで演算されます。割り込みルーチン内なので、これだけでも150バイトほどプログラムメモリの節約になります。
   2006/1/7 (Sat) 13:34:16
[名前] :   akibow
[URL] :   
[コメント] :   もとい、要小変更
d=(uint32_t)f1*65536+(uint32_t)f2*256+f3;
d2=d/100000; d=d-(uint32_t)d2*100000;
など。
   2006/1/7 (Sat) 09:06:58
[名前] :   kuman
[URL] :   
[コメント] :   GO2さんへ
128の周波数カウンタについて、1行目の「FREQ」は表示されたでしょうか。
ポート名とピン番号は同じでしょうか。

当時のプログラムを見直すと、申し訳ないのですが、ずいぶんミスが多いようです。
信号入力ピンがコメントではT1に、回路図ではT0(こちらが正しい)になっています。
また、DDRDでPD4を入力設定にすることも抜けているようです。その他コメントミスもあります。
とりあえず「FREQ」表示の件お願いします。
   2006/1/7 (Sat) 08:31:58
[名前] :   GO2
[URL] :   
[コメント] :   kkkさんへ

いつもの的確なご助言に感謝しております。また
ご指導をお願いします。

成功したOSがWINDOWS98-FIRSTでは皆さんも所有され
ていないかもしれないのでWINDOWS98-2でもやりす。

さきほどもやってみましたが、WINDOWS-XPのDOS画面
でAVRSP FC HEXとやってみると

>COM1が接続されていないと表示され、焼きこめま
せん。

AVRPP FC.HEXとかの実験をいろいろやってまた、
総合報告いたします。
しかし、これで秋月の安価な128が利用できてよかったです。
   2006/1/8 (Sun) 02:23:53
[名前] :   kkk
[URL] :   
[コメント] :   avrpp.exeは高電圧パラレル書き込み用です。
chanさんの「パラレルライタ」というハードがそれです。

avrsp.exeが低電圧シリアル書き込み用です。
chanさんの
「LPTポート制御 ISPアダプタ」の場合
>avrsp -pl1 ・・・ (LPT1の時)
「LPTポート制御 ISPアダプタ」の場合
>avrsp -pc1 ・・・ (COM1の時)
の様にポート指定をしてみてください。
avrxsからはオプションの指定が変更になっていますので注意してください。
   2006/1/8 (Sun) 02:35:19
[名前] :   kkk
[URL] :   
[コメント] :   2つ目の例は
「COMポート制御 ISPアダプタ」の場合
です。訂正します。

WIN98でavrxsで書き込めたとありましたので
「LPTポート制御 ISPアダプタ」の方だと思います
>avrsp -pl1 ・・・ かな
   2006/1/7 (Sat) 00:48:47
[名前] :   GO2
[URL] :   
[コメント] :   ATMEGA128の書き込み成功の報告、続きです。

・OSはWINDOWS2000ではGIVEIO.SYSをINSTALLした
PC機では不可能。同じく、WINDOWSXPでも不可能
・成功したのはWINDOWS98-FIRSTです。
・成功時のDOS画面には以下のようです。
No LPT264 port in this system.
found an STK200 ISP dongle on the LPT1.
Detected device is ATmega128.

Flash:Erasing..Writing..Verifying..Passed

でした。
   2006/1/7 (Sat) 03:57:51
[名前] :   kkk
[URL] :   
[コメント] :   avrxsはgiveioに対応していなかったのではと思います?
新しい書き込みソフトの方avrspではどうでしょうか?
   2006/1/7 (Sat) 10:09:27
[名前] :   akibow
[URL] :   
[コメント] :   STK200互換ライターの場合、Windows2000/Xpでは
以下のライターソフトが利用可能です。
yaap (DLPORTIO Driverが必要)
PonyProg
ChaN氏のavrsp(GIVEIOが必要?)
avrdude
http://www11.ocn.ne.jp/~akibow/AVR/digit_to_STK200.htmlにライターソフト公開サイトへのリンクがあります。
   2006/1/7 (Sat) 00:39:17
[名前] :   GO2
[URL] :   
[コメント] :   先ほど、ATMEGA128の書き込みをAVRXS FC.HEX
とやって成功しました。。皆さん、ありがとう!

今までの不成功の理由は自分の128のFPGA変換
基板への半田付けが悪かったようです。

成功時には、CHANさんのAVRXSを使用し、

・1番PINのPEN−PINはなにもつながない。
・2番ピンはPE0 =>MOSI
・3番ピンはPE1 =>MISO
・11番ピンはSCK  =>SCK
・20番ピンはRESET =>10KOHMでプルアップ
・ 0V=22、53、63ピン
・ 5V=21、52、64ピン
・書き込み器はAkibowさんのサイトのDONGLE回路
 です。74HC244を使いました。ダイオードは1S1588
 を使いました。

しかし、残念ながら2313から移植した周波数カウン
ターは動きません。どこを変えると動くのでしょ
うか?kumanさん、カウンターの使い方が違うので
すか? お願いします。
   2006/1/6 (Fri) 16:43:58
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさんへ

AKIBOW,KUMAN、KKKさんありがとう。
まとめてみますと、確認事項は:

1.自分でも気が付きましたが、BESTTECH社のMEGA128
基板に書き込みができたのは「mega128にブートローダー
プログラムが書き込まれているからできることです。」
。。。。>そのとおりです。

2.ATMEGA128のRS232用ICにはAMD232なる普通のIC
を使ってかける。MAX3313でなくても良い。JIN-SATO
さんの試作基板はAMD232を使っていた。

3.昔、CHANさんのAVR書き込みプログラムで書き込めた
実験基板2台が昨日動かない。。PATHがとおってないせ
いかも?

4.GO2の日本語訳ATMEGA128.PDFの誤読かもしれませ
んが、MEGA128もJTAGーPIN使用しても書き込めるので
はないでしょうか?

5.秋月のUSB-RS232ケーブル使用ではBESTTECH社のAT
MEGA128はノートパソコンでは焼きこめなかったです。

6.SCK/ISP用MISO/ISP用MOSIがPB1/PE0/PE2になって
るようにして自作基板を焼きつけしても不可能でした。
再実験続行。。

当方、AVR初心者なので自分につづく初心者のかたが
同じ苦労をされないように、記録・報告いたします。
   2006/1/6 (Fri) 18:28:58
[名前] :   akibow
[URL] :   
[コメント] :   6.だめだったですか。
その他となると、ターゲット電源やパスコンとかクロック源とかでしょうか?標準だと1MHz内蔵発信なのでavrspなどで問題なく書けるはずですけど、念のため-dオプションでディレイをかけてみては。念のためオシレータつけて書き込んでみる?これくらいしか思いつきません。

4.ですが、Mega128はJTAG書き込みはできるようですが、JTAG書き込みに対応したライター+ライターソフトがないとだめだと思います。それぞれ何をお使いでしょうか?

5.は理屈上はUSB経由でも問題ないはずなだけに残念。マニュアルに書いてあるので文句は言えないですね。
   2006/1/7 (Sat) 04:08:58
[名前] :   kkk
[URL] :   
[コメント] :   4.GO2の日本語訳ATMEGA128.PDFの誤読かもしれませ
んが、MEGA128もJTAGーPIN使用しても書き込めるので
はないでしょうか?

JTAG-PIN使用して書き込めますが、書き込みのハード&ソフトがJTAGモードをサポートしている物に限られます。
chanさんのソフトではLPTポート用のJTAGアダプタが使用可能ですがこれはJTAGモードで書き込みするのではなくシリアルISPモードで書き込みを行います。
JTAG書き込み出来るのは純正ではJTAGICEmkIIがあります。
また工場出荷状態ではJTAG有効になっていますがベステクさんのは出荷時にJTAG禁止で出荷されているようです。
   2006/1/6 (Fri) 15:01:58
[名前] :   JR3KBU
[URL] :   http://www.eonet.ne.jp/~jr3kbu/
[コメント] :   kumanさん、こんにちは。初めまして。

私もAVRが好きで、いろいろいじっております。
「CQ ham radio」という無線雑誌に「AVR入門」という
記事を書いておりました。

kumanさんのサイトの「徒然なるままに」05/8/15のと
ころに「このファイルはテキストのコピペができません」
とあります。pdfファイルは、AcrobatReaderで読んで
おられると思いますが、最初はカーソルの形が手の平の
形になっていますね。この状態では確かに文章をコピー
することができません。

AcrobatReaderのWinsdowの上の方に「I 」のボタンがあ
ります。(AcrobatReader7.0の場合) これをクリック
すると、カーソルの形が「I」になって、これで文章を
コピーすることができるようになります。

AcrobatReaderのバージョンが7.0よりも古いものでは
ボタンの形は「T」になっています。

もしご存知でなければやってみて下さい。
   2006/1/6 (Fri) 16:38:10
[名前] :   kuman
[URL] :   
[コメント] :   JR3KBU さん こんにちは。

ご連絡ありがとうございます。
今日、あらためてドラッグするとできました????
セレロン500Mゆえ、ver5.0を使っていますが、いつもTでコピーしています。このときだけなぜかできなかったので「おかしいな」と思いながら何度か試みたのですがダメでした。今でも不思議です。

アマ無線は電話級を1960年頃取りましたが、それまで。
スクーターで取った限定無しの2輪は90ccの実用車で終りです。
   2006/1/6 (Fri) 18:49:42
[名前] :   akibow
[URL] :   
[コメント] :   できますか?
kumanさんのこの記事を最初に見たときは私も試しましたが、できませんでした。今改めてサイトから落としてきてやってみましたが・・・やっぱりできません。
文書プロパティを開いてみると、内容のコピーと抽出を許可しない設定になっています。Readerのバージョンによってはこの設定を向こうにしてくれるのでしょうか。私のAdobe ReaderのはVersion7.0.5です。
   2006/1/6 (Fri) 19:55:55
[名前] :   kuman
[URL] :   
[コメント] :   申し訳ない。早とちりでした。
ドラッグすると選択されたように色は変わるのですがやはりできません。
akibowさんのいわれるように「コピーと抽出を許可しない」設定になっています。
http://www.atmel.com/dyn/products/datasheets.asp?family_id=607
このページのmega48はコピー禁止なのにその下のmega8はコピーできます。
どうなっているんだろう。
   2006/1/6 (Fri) 20:12:13
[名前] :   kuman
[URL] :   
[コメント] :   追伸:
doc2545.pdf(48) doc2486.pdf(mega8) doc7530.pdf(48)
この3つの文書のセキュリティを見るとすべて設定が違います。
   2006/1/4 (Wed) 18:12:53
[名前] :   GO2
[URL] :   
[コメント] :   ATmega128書き込み成功はBEST-TECH社のGDCの中の
AVRDUDEを使ったときだけです。自作基板のAtmega128
には成功していません。

AkibowさんやKIKIさんの助言書き込みには感謝して
ます。

書き込みはWINDOWS-XPやWINDOWS2000でやってますが
WINDOWS98-2でもやってみます。
   2006/1/5 (Thu) 22:34:18
[名前] :   akibow
[URL] :   
[コメント] :   もう一つ念のため。
ベステクのボードに用いているブートローダー経由の書き込みは、mega128にブートローダープログラムが書き込まれているからできることです。それが書き込まれていないmega128チップに対しては、ISPやパラレルプログラミングで書き込むしかありません。ベステクと同じ方法で自作ボードに書き込むことは通常できないと思われます。
   2006/1/4 (Wed) 09:28:16
[名前] :   GO2
[URL] :   
[コメント] :   ATmega128の書き込みと相性?

この1週間、ATmega128の書き込みと格闘してます。
昨年に買っておいたBEST-TECHNOLOGYのAtmega128
基板(SRAMつきで4000円台でまあ、値打ち品)
で書き込み成功にしました。

1.日立ノートパソコンでは書き込みが不可能でしたが
  DESKTOPではRS232-1を使って成功しました。

2.秋月のUSB-RS232変換コードでは書き込みの相性
  がわるく、不可能でした。

3.自分はRS232−ICにAMD232を使っているが、BEST- 
  TECHはMAX3313を使っている。BEST-TECHは詳細な
  接続回路図は提供してません(PENは+5V)ので、
  海外サイトのAtmega128製品の回路図を参考にして
  ます。MAX3313はELISSHOPでは注文可能みたいです。
   2006/1/4 (Wed) 11:28:36
[名前] :   kuman
[URL] :   
[コメント] :   BEST-TECHNOLOGY社のページを覗きました。
akibowさんのレポートと重複しますが、
この基板は専用ソフトとブートローダを使ってアプリケーションを書き込んで使うことを第一とし、
ブートローダを無視してライタによる書き込みも可能にしている、ようです。
しかし、説明文を読む限り前者の説明がほとんどなく(ソフトの解説に少しあるようだ)、後者の説明がわかりにくく書かれています。
この2つをはっきり場合分けして説明すべきでしょう。使う人の身になって書いて欲しいものです。少々あきれています。ついでに、「機械に相性はない、規格がずれているだけだ」と聞きました。商品説明書に書く言葉ではないと思います。

GO2さん、わかりやすい解説をしてやってください。
   2006/1/5 (Thu) 18:12:28
[名前] :   akibow
[URL] :   
[コメント] :   kumanさんへ:
BestTechnologyはどちらかというとメカテク工作の部品としてMega128ボードを供給しており、Mega128学習ボードという位置づけではなさそうなので、あの解説でも致し方ないように思います。ブートローダー経由で書き込めればそれで充分(ISPのことは知らなくてもいい)というスタンスなのかと思い、私は納得できる範囲かな?と思っています。AVRDUDEについてはIDEソフト(Developper-Lite) により、COMポートの指定だけで動作するようにしてあるようです。

GO2さんへ:
自作ボードについては、先に話題になったMOSI/MISOの問題は検討されたでしょうか?
   2006/1/4 (Wed) 01:29:54
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさんへ

年末年始のひまを見つけて、atmega128の自作基板
n実験とBESTTECHNOLOGYT社の基板の比較をしてま
した。無事、DESKTOP環境下ではAVRDRUDEでAT128に
RS232-3本ケーブルで書き込みができました。

BESTTECH社はRS232−ICにMAX3313を使っており、
OLIMEX社n128基板もRS232レベルは微妙なつくり
をしてます。

まずは、一応128に書き込みができたのでお知らせ
ました。
   2006/1/4 (Wed) 10:21:49
[名前] :   kuman
[URL] :   
[コメント] :   ご成功おめでとう。お疲れさまでした。
私にはmega128も基板もわからないのですが、
どこをどのように変えたら書き込めたのか、また、書き込めなかった原因はどこにあるのか、mosi,misoはどの接続で書けるようになったのか、など苦労されて得た知識が共有できるように伝えていただくとありがたいと思います。引き続きよろしくお願いします。
   2006/1/1 (Sun) 15:34:02
[名前] :   宮前
[URL] :   
[コメント] :   皆様、明けましておめでとうございます。
以前kumanさんに相談したピンバイス(ミニモータ用)を購入 しましたのでレポートします。
http://www.rakuten.co.jp/seasonproshop/465973/495930/496075/#TP-26
TP-26(モータ軸2mm)とTP-28(モータ軸2mm)がありますが購入したのはTP-26です。
コレットが2本入っていて、上下差し替えで4種類の使い方ができ
ドリル径が 0.0mm〜1.1mm、1.1mm〜1.9mm、 1.9mm〜2.5mm、 2.6mm〜3.2mmが使用可能(全体で0.0mm〜3.2mm)です。
6角レンチが付属していて黒ねじを緩め、2mmのシャフトを抜いてモーター軸に差し換えます。

マブチモーター(RE-0280)に接続して回したところ、ブレもなく回りました。
kumanさんも使用してる秋月購入のドリル(シャフト径3.12mm)でガラスエポキシ基板にはトルクが少し不足気味でしたが
何とか空けることができました。紙フェノールなら問題ないと思います。
   2006/1/3 (Tue) 01:52:52
[名前] :   kuman
[URL] :   
[コメント] :   新年おめでとうございます。
それだけ径が幅広く使えると便利ですね。
私のは0.0〜1.2mm位かな?コレットは1本で差し替えてこれだけです。
昔はマジックで線を描いてエッチングして穴を開けましたが、この頃はすべて蛇の目基板を使いますのでたまにしか使わなくなりました。で、100Vのハンドドリルを引っ張り出したりしています。
私のモータは12Vで0.5〜0.8A流れています。
   2006/1/3 (Tue) 12:33:02
[名前] :   宮前
[URL] :   
[コメント] :   訂正 
上記のTP-28は、モータ軸3mm用の間違いです。

私のモータは12Vで0.5〜0.8A流れています。
それはパワーがありそうですね。うらやましい。
簡易ドリルスタンドが簡単に作れないか、考えてます。
   2005/12/29 (Thu) 23:08:59
[名前] :   KIKI
[URL] :   
[コメント] :   kumon様
こんばんわ
今日はありがとうございました。
自分なりの分析ですが。
一番のポイントは、pathの部分です。インストール時に、作られていません。再起動してもありませんでした。現在のウインドウズソフト?でこのようなことが起こっているとは・・ただいろいろな情報を得られる今ですから、すぐに解決できたのですが、まさか環境変数を、触るとは。そして考えてみれば、入力ダイアログで迷ったような気がします。これでアセンブラとCの環境ができました。ISPライターも動いています。
いろいろとありがとうございました。またくだらないことで質問するかもしれませんがよろしくお願いします。akibow様ありがとうございました。
   2005/12/29 (Thu) 23:55:29
[名前] :   kuman
[URL] :   
[コメント] :   環境変数PATHが書かれなかったとは、驚きました。
その後手動でかかれたのですか?

わからないこと、うまくいかないことを公開してみんなの知恵を増やしていきませんか。

お疲れさまでした。
   2005/12/30 (Fri) 19:32:04
[名前] :   akibow
[URL] :   
[コメント] :   パスが設定されなかったというのは不思議ですね。
今テストで別ディレクトリにWinAVR 20050214をインストールしてみましたが、しっかり加えられていました。
もしかしたら最初にインストするソフト指定のうちどれかを外すと設定されないのかもしれません。

コマンドライン基本のソフトですので、環境変数は意識しておいたほうがいいですよ。
>コマンドプロンプトでNO RULE TO MAKE TARGET
>TEST.O,NEEDED BY TEST.ELF. STOP
パスがないということがこの形で現れたというのは
ある意味興味深いですね。KIKIさんはgcc以外のC言語もインストールしているのではないでしょうか?
gcc以外のmake.exeが呼ばれて、そこから各プログラムを呼び出すところでPATHが届かない問題が出てしまい、こんな形のエラーになった??もしそうなら下記のと根が一緒ですね。
http://www.geocities.jp/kuman2600/c_memo.html#t29
   2005/12/29 (Thu) 21:30:18
[名前] :   GO2
[URL] :   
[コメント] :   kumanさんへ

ヒントをありがとうございます。

実験報告:

1.avrpp.exe -r を実行しましたが認識せず。
2.avrsp.exeでも実行できるようにAMD232とATmega128を配線で結びましたが、まったくDEVICE
認識されません。(<=BEST−TECHNOLOGYの配線図
どおりにしたのですが)
3.市販ではATmega128までをRS232で焼きこめるも
のがありました。6000円くらいで売っていますね。

4.http://elm-chan.org/bbs/?lang=ja&show=4012
を読んでみました。200pageのATmega128.pdfにはそ
ういうことはかいてありません。
5.RS232配線後に、ISPで -r しても、USB-RS232
変換ケーブル(秋月製)を使っているのでCOM1接続
はありません、DEVICEはなしという表示結果でした。

6.日立ノートにGIVEIO.SYS はINSTALLしてありま
すが、DESK-TOPでももう一度やってこのBBSへ報告
いたします。。

ご親切なヒントやサイト記事に感謝しております。
それにしてもATmega128の記事はNETには少ないです。
当方は変換基板を安く買って128を使って?ます。
   2005/12/29 (Thu) 23:51:00
[名前] :   kuman
[URL] :   
[コメント] :   >200pageのATmega128.pdfにはそういうことはかいてありません。
http://reef.path.ne.jp/~hero/pdf/MEGA128.PDF日本語版p196に
シリアルフ゜ロク゛ラミンク゛用ヒ゜ン配置
SPIフ゜ロク゛ラミンク゛インターフェースがSPI I/O部を流用すると言えど、1つの重要な違い、SPI I/O部でPB2とPB3に配置されるMOSI/MISO
ヒ゜ンがこのフ゜ロク゛ラミンク゛インターフェースで使用されないことがあります。代わりに表127.で示されるようにPE0とPE1がSPIフ゜ロク゛ラミンク゛動作
のテ゛ータに使用されます。....
とあります。

デバイスが認識されないと後の手が打てませんね。デフォルトの1MHzで発振しているかどうかも確認できないということでしょうか。

他のデバイスで稼働が確認できているISPライタで試行するしか方法は無いのかもしれません。COMポートは付いていますか?

よい知恵がなくてごめんなさい。
   2005/12/29 (Thu) 23:55:09
[名前] :   kkk
[URL] :   
[コメント] :   初歩的なことなのですがISPの結線は合ってますでしょうか?
ATmega64やATmega128等は
通常使用する時
MISO:PB3/MOSI:PB2/SCK:PB1を使用しますが
ISPの時は
MISO:PE1/MOSI:PE0/SCK:PB1を使用します
   2005/12/29 (Thu) 23:56:30
[名前] :   kkk
[URL] :   
[コメント] :   すいません
かぶりました
   2005/12/30 (Fri) 20:07:27
[名前] :   akibow
[URL] :   
[コメント] :   ちょっと気になる点が。
2005/12/29 (Thu) 09:41:38 へのコメント
>資料のAtmega128.PDFを見ると、JTAGモードでも焼けるとあります。
avrxp.exeにJTAGモードで書き込みする機能はなさそうです。ISP経由シリアルプログラミング、パラレルプログラミング機能のみです。JTAGインタフェースを流用してISPで書き込む機能はあります。ついでに、ベステクのサイトを見ると以下のことが書かれています。
>※ JTAG I/Fは出荷時にヒューズビットにより使用禁止にしています。再プログラムする場合はISP経由で行なってください。

ISPに関してはkumanさんとkkkさんが言われたとおりの問題があります。MISOとMOSIが、SPI機能のMISO/MOSIとは異なるピンになるようです。ピン配置図からMISO/MOSIを探してそれだと思うとまずいようです。これはデータシートに書かれています。

ベステクの該当ボードのマニュアルも見ましたが、ここにはブートローダーを用いたプログラミングについて書かれています。これはマニュアル通りAVRDUDEを使うプログラミングになると思われます。せっかくですのでこちらを利用する方がよいと思われます。
   2005/12/31 (Sat) 05:52:14
[名前] :   akibow
[URL] :   
[コメント] :   まとまってなかったのでちょっと整理
1.→SCK/ISP用MISO/ISP用MOSIがPB1/PE0/PE2になっているかどうか。データシートに記載があります。PB1/PB2/PB3ではないようです。

2.→AMD232ベステクの配線というのがCN3ならそれはISP用ではなくSTK500互換ブートローダー用です。これはいってみればATMega128自体がそれ自体のライターになるというもので、ATMega128に決まった方法でデータをRS232C経由で送ってやるだけで書き込みができます。これはavrsp.exeでは対応できません。ボードのモードスイッチを切り替えた後再起動し、avrdudeまたはATMEL STK500のライターソフトを使用することになります。

4.→ATMEL本社からATMega128のデータシートを見ると、書いてあります。p303あたりの「SPI Serial Programming Pin Mapping」参照
http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf
ただし、このボードにISPで書き込みを行いたければ、RXD/PDI(PE0)と232Cレベルコンバータを切り離す必要がありそうです。(回路図のJP1)ブートローダーによる書き換えが基本のボードみたいです。
   2005/12/29 (Thu) 21:30:12
[名前] :   GO2
[URL] :   
[コメント] :   kumanさんへ

ヒントをありがとうございます。

実験報告:

1.avrpp.exe -r を実行しましたが認識せず。
2.avrsp.exeでも実行できるようにAMD232とATmega128を配線で結びましたが、まったくDEVICE
認識されません。(<=BEST−TECHNOLOGYの配線図
どおりにしたのですが)
3.市販ではATmega128までをRS232で焼きこめるも
のがありました。6000円くらいで売っていますね。

4.http://elm-chan.org/bbs/?lang=ja&show=4012
を読んでみました。200pageのATmega128.pdfにはそ
ういうことはかいてありません。
5.RS232配線後に、ISPで -r しても、USB-RS232
変換ケーブル(秋月製)を使っているのでCOM1接続
はありません、DEVICEはなしという表示結果でした。

6.日立ノートにGIVEIO.SYS はINSTALLしてありま
すが、DESK-TOPでももう一度やってこのBBSへ報告
いたします。。

ご親切なヒントやサイト記事に感謝しております。
それにしてもATmega128の記事はNETには少ないです。
当方は変換基板を安く買って128を使って?ます。
   2005/12/29 (Thu) 09:57:12
[名前] :   KIKI
[URL] :   
[コメント] :   kuman様
ありがとうございます。
すばらしいです。
自分なりにもう少し違いを勉強してみます。
ms-dosももう20年以上前ですか。忘れていることがいっぱいあるようです。
夜遅くまでありがとうございます。
(この一週間はなんっだたんでしょう。)
   2005/12/29 (Thu) 09:41:38
[名前] :   GO2
[URL] :   
[コメント] :   kumanさんへ

先日はありがとうございました。

先日の周波数計は6MHZまでは正確に測れましたが、
12MHZの水晶CLOCKではさすがに不正確でした。

現在、成功した周波数計(AT2313用)をそっくり
ATmega128でも利用できないか実験しております。
ATmega128をATs2313のMAKEFILEを手直しして
ChanさんのAVRPP.EXEで焼こうとしたらぜんぜん、
DEVICEすら認識してくれません。どうしてなのでしょ
うか? 配線は2,3回点検いたしました。(WIN−XP
のDOS窓を利用してます)BEST−テクノロジー社のRS232
の書き込み方式にしないとだめでしょうか? また、資料
のAtmega128.PDFを見ると、JTAGモードでも焼けるとあ
ります。

すみませんが、ヒントを少しください。当方、BETSテク
の128基板を1枚持っております。自分の128はSTRAWBE
RY−LINUXサイトで買ったものを変換基板に半田つけし
て利用しています。
   2005/12/29 (Thu) 10:13:05
[名前] :   kuman
[URL] :   
[コメント] :   申し訳ないのですが、mega128もパラレルライタもavrppも使ったことがないのでよくわかりません。
ただ、http://elm-chan.org/bbs/?lang=ja&show=4012
にあるように128は違ったところがあるのではないでしょうか。
ChaNさんのページには変換アダプタを使ってパラレルライタで書き込み可能と書かれていますがISPモードも使えるようです。
ISPで -r はできませんか?

周波数計は自分のクロックで入力のクロックを数えるので半分以下が普通と読んだことがあります。半分なら立派なものでしょうw
   2005/12/29 (Thu) 08:33:08
[名前] :   KIKI
[URL] :   
[コメント] :   ありがとうございます。
kumanさんありがとうございます。
そうです。とりあえず書いてあるようにやってみたのですがうまくいかずいろいろな方のホームページを見ているうちにテストという名前がファイル名になってしまってます。
現状をもう少し書きます。
osはxpのホームです。osはインストールしなおしました。winavrだけをc:\にインストールしてあります。
pathはデフォルトでは作られませんでした。
作業している場所は。c:\winavr\prog¥としています。akibow様お付き合いありがとうございます。
   2005/12/29 (Thu) 09:31:50
[名前] :   kuman
[URL] :   
[コメント] :   ホームページの「連絡」から「コンパイル...」を読んでいただけたでしょうか。(「連絡」は上から3行目の枠の中にあります。)

>pathはデフォルトでは作られませんでした
再起動してもpathは登録されていませんか?

コンパイルに成功してもしなくてもご連絡をお待ちしています。皆さんのために原因と解決法を公開してください。

なお、progをwinavrの下に置くと、ツールでwinavrをアンインストールしたときに削除されてしまうのでc;\に置くように変更しています。
   2005/12/28 (Wed) 20:21:44
[名前] :   KIKI
[URL] :   
[コメント] :   akibow様
早速ありがとうございます。そのとうりですよね。
kumanさんのページでやらせていただいてます。
LED01です。WINAVRは一番新しいものです。
MAKEFAILは、SAMMPLEからのコピーです。ホームページのとうり、修正してみました。
とりあえずパスも見てみました。基本がわかってないものですから・・・・
すいません。こんなんで。
   2005/12/28 (Wed) 22:45:07
[名前] :   akibow@少し悪い子
[URL] :   
[コメント] :   led01ってどこにあるのでしょうか。
ちょっと探してみたけどわからなかったので断念しました。kumanさんならわかるかもしれないけど。
sampleのmakefileとはどこのsampleでしょうか。
パスを見た結果どうだったのでしょうか。
残念ながらわからないことだらけですので、私は降参します。

読み手のことを考えて書いていただけると双方利益があると思うのです。
   2005/12/29 (Thu) 01:55:14
[名前] :   kuman
[URL] :   
[コメント] :   kumanです。
エラーは種類が多いのでメッセージだけではなかなかわかりません。
tiny26ではじめるledの点灯ですね。
ファイルの関係と、ファイル自体を「連絡」にupしますから少しお待ち下さい。
makefileの中が違うのか、どこかでTESTという名を付けていないでしょうか?
   2005/12/28 (Wed) 18:40:54
[名前] :   KIKI
[URL] :   
[コメント] :   はじめまして
勉強始めたのですがいまいちです。
WINAVRコンパイルうまくいきません。
ホームページを見ながらいろいろとやってはいるのですが......
コマンドプロンプトでNO RULE TO MAKE TARGET TEST.O,NEEDED BY TEST.ELF. STOP


よろしくお願いします。
   2005/12/28 (Wed) 19:28:50
[名前] :   akibow
[URL] :   
[コメント] :   どの作例についてなのか、WinAVRのバージョンは何で、どのようなコンパイル手順をとったのかを書いた方がいいですよ。今のままだと原因究明は困難かと思います。

kumanさん
下の方のハナシも絡めて、makefileも乗せといた方がいいですね。mfileのパラメータを書いた方がためになってよりよいかもしれません。
  
▲このページのトップ  

Yahoo!ジオシティーズ


inserted by FC2 system 1