1 :
774ワット発電中さん :
2005/08/30(火) 00:00:48 ID:Za9aUMED _____
/ /|
/ ( ゚∀゚) /.∠フ 個人でも手軽に使える
/ /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
/ __ o/.∠フ || 中心に語るスレッドです。
∠| ̄ ̄凵 ̄ ̄|∠フ || *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
.|| |_____|/||
Atmel AVR 8-Bit RISC
http://www.atmel.com/products/avr/
2 :
774ワット発電中さん :2005/08/30(火) 00:02:23 ID:Za9aUMED
3 :
774ワット発電中さん :2005/08/30(火) 00:04:04 ID:Za9aUMED
4 :
774ワット発電中さん :2005/08/30(火) 00:04:39 ID:Za9aUMED
スレ立て乙
>>1 乙!!
…つか、最近AVRスレは寂しいな
せっかく秋月に新しいAVRも入ったというのに…(´・ω・`)ションボリック
7 :
774ワット発電中さん :2005/08/30(火) 21:03:16 ID:sqqnM7cz
ある意味新しいけどある意味古いね...。(´・ω・`) <AVR4点セット
新ジャンルのICコレクションシリーズか? AT90シリーズはもう使うことないだろうから記念に買っとくかな。
90Sシリーズはほぼ全滅しましたね。初期のmegaもそろそろ。
FPSLICのPLD部ってどうなんでしょう. 例えば,AVRのメモリデータの外部デバイスへのDMA転送とかできたりしますか?
>>10 可能。SRAMはDualPortになっている。
これから使い出すならば、何が適当なのでしょう。
迷ったらmega8系
話の流れでAVRを使うことになった。
とりあえず4点セットってやつを買ってみようかな。
>>14 にあるやつから一番高性能なやつも売ってたら買おう…
>>16 うん、そう。
そろそろ秋葉原いこうかな
mega8系を狙うならツクモロボット館の基板が楽チンそう。
秋月にはないのかな・・・
AT27C516 これな〜に
EPROMですが何か?
>>19 ありがとん
HDDの基板に載ってたんで知りたかっただけです。
>>15 Digi-Keyで、ATMega8と、AVRISPを買うのが一番苦労しないと思うよ。
古い石のほうが何かと使いやすい (Mega8あたりでもいいけどね) 90Sの流通在庫をいくらか備蓄しときますた 秋月の抱き合わせ4個セットみたいな、あざといものは買わないけどね
>>21 それもいいですね,情報ありがとです。
で、実は土曜に秋月で2個買ったのでした。
ATMEGA128-16AU \850
AT90S2313-10PC \忘れた
MEGAの人はなんかわりといけてる人っぽい。
90SはDIPなのと人身御供用ってことで買いました。
90SはやっぱりLED光らすところからやってみようと思います。
PWM制御でフェードイン・フェードアウト点灯目標です。
ジャンク携帯からフルカラーLED抜いたので、これを使う予定。
>>24 まだきちんと資料を読みきれていないのですが、
FPGA用の書き込みケーブルが使える(流用できる)との
記事をちらほら見かけるので、なんとかなるのかなと。
URLにあるヤツは、予めフラッシュになにか書き込まれていて、
そいつのおかげでシリアル経由でフラッシュに書き込みができるってことでしょうか?
レベル変換AVRに内蔵されてて、PCのシリアルポートと配線繋ぐだけで書き込みがOKという事…?
なんだかすごいのかな、もうちょっとじっくり読んでみます。
27 :
774ワット発電中さん :2005/09/13(火) 15:11:01 ID:eWTraOMw
秋月のサイトをみると、 ATMEGA128−16AU 1個 850円 ATMEGA64−16AU 1個 650円 ですね。これで何を作ろうかにゃ? 書き込みはって? おいらは自前でやっているから問題なし。
とりあえず…変換ボードが欲しいな。
なにをつくるかってのがいがいと難しいよねぇ
とりあえず、俺は車輪型二重倒立振子の制御をしてみようかと思う。
とりあえず、秋月のATmega128の文が128Kバイトじゃなくて128Kビットになってるね。
書き込みを自前でやらないでどうやってAVR使うのよ(w サンハトヤの変換ボードは高いよな。MEGA64をも一個買える。
H8Tinyみたいに基板に実装してくれよー。
AAAか サンプルの店頭発売が好調なんで、不良在庫まとめて引き受けたのか。 長い間在庫してそうだなw
>>35 だったら、尚のこと、基板に実装してくれればいいのに。
ICPのヘッダつけてね。
37 :
774ワット発電中さん :2005/09/14(水) 13:39:34 ID:a5kAoRyw
>>35 QFPのAVRなんてうちはいらない。H8/Tinyを使う。
小口品向けにはこれまでDIPのAVRを使ってきたが、R8Cもよさそう。
似たようなCPUを続々出して商売になるのかな。
技術者も大して変わらん新CPUの勉強などするものだろうか。物好きは別として。
技術者なら新CPUだろうが勉強するだろう。 勉強しないやつは技術者じゃなくて作業員。
>>37 AVRは「大電流出力ピンはどれだっけ?」とか考えなくていいからラクなんですよ。
とはいいつつ、ARMも面白そうですね。
40 :
774ワット発電中さん :2005/09/14(水) 17:50:16 ID:a5kAoRyw
>>37 お前そういうが最近このクラスのCPUは恐ろしく増えたぞ。
トラ技の抽選でもれなく当たるNECの78Kなど。俺は申し込んでもいない。
命令の特徴をつかんで内蔵周辺を使いこなせるまでにはそれなりの慣れが必要。
恥ずかしながら俺はAVRの入力ポートと出力ポートのアドレスが異なるのに
気づかず丸一日悩んだ。AVR使いはじめの苦い思い出。
PSoCのように今までと違うことができるCPUならがんばる気も起こるが。
ただPSoCはCPUそのものの性能はかなり落ちるので、AVRとの使い分けは必要。
先月AVRとPSoCと2個使いした制御ユニットを客先に納品した。
41 :
40 :2005/09/14(水) 18:01:25 ID:a5kAoRyw
しかし、よく「78Kで」参入する気になったよな。 最初は冗談かと思ったよ。
43 :
774ワット発電中さん :2005/09/15(木) 06:28:35 ID:SozBn/tJ
>>39 おお、そうでした。H8系などふつうのCPUではLEDすら直接駆動できませんね。
これはAVR(やPSoCなど)のアドバンテージですね。
とするとR8Cも何を今さらの出し遅れくそCPUでしょうか。
>>42 どう冗談だと思ったの?すれ違いだけど詳細キボンヌ。
78kはうちはallflash化前のモデルを使ってたが 営業の人いわくPICの置き換えを狙ってラインナップを一新したそうだ
46 :
774ワット発電中さん :2005/09/15(木) 10:27:00 ID:24hbX5Ee
>>32 >>書き込みを自前でやらないでどうやってAVR使うのよ(w
書き込み器のソフトとハードを自前でやっている、という意味なんだが。
47 :
774ワット発電中さん :2005/09/15(木) 10:52:14 ID:24hbX5Ee
>>37 仕事でも趣味でもAVRとH8を使っているが、H8って意外に遅いんだよな。
Cで書いているとどうにもスピードが足りなくてインラインアセンブラで
書くことがある。それでも遅かったりする。単純なことを高速でやる
のはAVRの方が上ってこと。ポートが多いAVRも充分用途はあるな。
プログラム領域に128Kバイトもいらん、その分、RAMを増やしてくれ、って
ことも思うね、バリエーションとして。H8もそうだけど。RAMの方が嵩張る
のだろうけどね。
48 :
774ワット発電中さん :2005/09/15(木) 18:17:10 ID:vZpkzBpF
今週末、急遽秋葉原に行くことになったんだけど、 STK500を購入できる店ってある?
秋月のサイトには載っているようだが店頭で買えるかは知らない
50 :
774ワット発電中さん :2005/09/17(土) 02:09:40 ID:RK1Nl+/3
>>47 同意です。H8は昔ながらのCISC汎用CPUで、特に乗除算など演算速度は期待できない。
といってAVRは8ビットCPUで、16ビット幅以上を扱おうとするとどん臭い。
AVRとH8は、実際あまり用途が重ならない。
AVRは8ビット高速、H8は16ビット中速/32ビット低速という感じ。
H8で演算がボトルネックで速度が間に合わなさそうな場合、うちはSH2を使っています。
ただSHはクロックが速く消費電力が大きい上にノイズ対策がたいへん。できれば
使いたくない。
AVRは簡易な用途向けであり、高級言語全盛の今日では汎用性に欠ける気がします。
専用性ではラインナップのそろったPICが優り、中途半端ですね。
多少大きなプロジェクトにはどうしてもH8を使ってしまいます。
AVRすら立ち位置を確立できないのに、R8Cや78KやMSP430に居場所はあるのだろうか。
ユーザ企業の技術者を高級弁当+夜宴会つき講習会にご招待でもしないと、勉強すら
してもらえなさそう。
多少不満はあっても「勝手知ったる○○」というのはあるからねー やっぱり一度特定のプロセッサでうまく行き始めると、よほどの理由が 無い限り別のCPUで1からやり直すとうのはなかなか難しいんだよな。 趣味でやってるわけじゃないから。
あぼーん
逆に仕事であれば、要求を満たして量産時に安くなるなら、よっぽど変なCPUでなければ使うとも言えまいか
仕事ならよけいに、つまらない部分でのリスクは背負い込みたくない ものだよ。そのCPUを長く使っている人にとっては常識の範疇なこと であっても、そうでない人には余計な時間を食うものでしかないし。 全く知らないものについてはエラッタを全部調べ上げるのも骨だしね。 劇的に開発期間が短縮できるとか、圧倒的に小型化/低コスト化 できるとかいうのでもなければ、なかなか手をだしてもらえない。
仕事の性質にもよるとはいえまいか。 新規のCPUを探すということもたまにはやるだろうし。
どこにそんな事が書いているんだろ
そのへん
漏れもAVRを長い間使ってるから新規設計ではこれがデフォになってる。商社経由では入手性も悪くないし価格もそこそこ安い。 ファームだけ書いてくれという仕事も多いので大抵のマイコンは経験済みだが、 それでも最初から使うとなるとちょっとめんどいから、毎回あとで考えようということになる。
(´-`).。oO(少数なら秋葉原でも入手性が良いのに、PICよりやっぱり人気無いね・・ まあ、それはそれで良いんだけど・・SHとかH8も使ってみたいけど、あんまり 複雑なことやらないから仰々しいっていうかね・・)
複雑か単純化どうかよりも重いか軽いか
64 :
774ワット発電中さん :2005/09/18(日) 15:48:40 ID:4VPT1mIl
モライラ教えて下さい。 今までSTk500と付属のAT90S8515でチマチマと簡単なプログラムを作って遊んでました。 ちょっとした基板をつくってみたくなったので、ATMEGA48を買ってきて、 8515で作ったLEDが点滅するだけのサンプルプログラムをMEGA48に書き込んでみたんだけど 動かない。 PORTBのLEDを一定周期で点滅させるだけのもので、GCCで作りました。 MakeFileのデバイス指定はATMEGA48にしてあります。 なんか他にも変えないとダメなの? いまデータシート読んでるけど、良くわからん・・
65 :
774ワット発電中さん :2005/09/18(日) 16:04:00 ID:4VPT1mIl
追記 ATMEGA48はSTK500上の緑のソケット(SCKT35000)に挿しています。 ISPのケーブルは同じく緑のSPROG2につないでいます。 ISPでの書き込み、ベリファイはエラー無く正常に出来ているようですが、 LEDが点滅しない状態です。
まあ、とりあえずコード晒してみろや
67 :
774ワット発電中さん :2005/09/18(日) 16:30:15 ID:4VPT1mIl
こんなんです。 #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/delay.h> void main( void ) { char sw,data,old,on,cnt; sw =0; data = 0; old = 0; DDRB = 0xff; DDRD = 0x00; PORTD = 0xff; for(;;) { for ( cnt = 0; cnt < 255 ; cnt++ ) { for ( on = 0; on < 255 ; on++ ) { if ( on < cnt ) { data = 0; } else { data = 0xff; } PORTB = data; } } } }
連続ポストでごめん。 STK500のおまけにATMEGA16Lが付いてたのを思い出した。 それで試したところ、うまく動いた・・。 なんで48だとダメなんだろう??
mega48のレジスタアドレスは8535やmega16と違う。ちゃんとmega48で再コンパイルした? つか、これコンパイル通らなくね?
つーか、gcc-libがmega48に対応しているバージョンか?
71 :
774ワット発電中さん :2005/09/19(月) 10:00:57 ID:DBEWVyfX
>>69 Makefineに
MCU = atmega48
と書いて再ビルドしただけじゃダメ??
>>60 avr-gccのバージョンは3.4.3なんだが、gcc-libのバージョンの確認方法がワカンネ
でも最新に入れかえてみるよ
ありがと
>>67 クロック周波数いくらよ?
点滅早すぎてみえないんじゃないの?
>>64 それと、クロックソースは何にしたんだろう?
ヒューズビットさらしてMISO
ヒューズが変な設定になっている気がする
75 :
774ワット発電中さん :2005/09/19(月) 19:26:22 ID:a2wDakE0
前スレでも何件か出ていたWinAVR(gas)でアセンブルしたコードのAVRStudioでのソースレベルデバッグって 可能になったのかな…?
PICから移行中なんですが、1つ質問があります。 ANSIベースのCたとえば、ImageCraftとかで ステートマシンを記述するのはどうしていますか? PCベースだと、switch case でお茶を濁しています。 picでは、cc5xを使っているので #pragma computedGoto 1 skip(state); goto STATE0; goto STATE1; goto STATE2; goto STATE3; #pragma computedGoto 0 STATE0: 処理0.... return; STATE1: 処理1.... return; のような記述をすると、プログラムカウンタをstate 分だけ進めてくれます。この記述の利点は、どのステート 処理へも同じタイミングで飛び込むことです。 関数ポインタを使う手もあるんですが、オーバーヘッドが大きそうです。
>>76 アセンブラならできるんですけど、
普通のCではまずできそうにないですね。
場合によってはswitch-caseをコンパイラの最適化で
あなたが望むようにしてくれるかもしれない。
C言語によってはそのような記述できるものあるかもよ。
言語仕様説明書が公開されているものが多いので、
あたってみては?
>>76 やってみましたが、AVRGCCではコード最適化として行うようです。
分岐先が少ない間は比較と条件分岐で、多くなるとテーブルジャンプに置き換えてきます。
こんな感じ。
switch(a) {
eorr25, r25
eorr26, r26
eorr27, r27
movwr30, r24
sbiwr24, 0x0c; 12
brcc.+76 ; 0xfc
subir30, 0xED; 237
sbcir31, 0xFF; 255
ijmp
>>78 ありがとうございました。自分でも試してみました。
たしかに、avrgccでは最適化でよしなにやってくれるようです。
ちなみに、ImageCraftのデモ版ではこのような最適化は確認できませんでした。
でも、avrgccのコードでも、所要時間がPICの同一クロックと大して
変わらないようなのでがっくりです。倍以上になってくれればと思ったのですが。。。
トータルで見るべきでしょうが。
avrgccのコードはIARとかに比べると最適化が甘い(大きくて遅い)ですね。 リスト出力を見ていると歯がゆくなってきます。 只だから仕方がないかなー。
>>80 なるほど、IARも正式版はかなり最適化できるんでしょうか。
さすがに、PRO版は手が出ませんが、コードコンプレッサ
より、速度を重視しているので、
また、PSOCのCコンパイラもIAR版が存在しているので、
モジュール共用のためにと食指が動いています。
avrgcc のコード効率の低さは、ソースをどう書き換えても 密度が上がらないという意味でかなり性質が悪い部類に入るね。 とくに short ⇔ char 間の変換がすばらしく酷い。 ので、ソースコードが 8bit マシンを期待しているときは -mint8 すると なんとか読めるコードを出してくれる。 そこまでしてもループ最適化は sdcc for 8051 にも負けるレベルだけどな -_-;; アーキテクチャ非依存の最適化すらすっぽかされてるところがあるので、 これが gcc だと思われるときっと gcc は泣く > 80氏
>>80 IARはもっていないのでわからないけど、確かにavrgcc時に歯がゆいですね。
とはいってもコンパイラ作るなんて想像もつかない俺は手伝うこともできず
>>79 PICはPCLをファイルレジスタとして直接参照できるってのが大きそうですね。
AVRの場合はZレジスタをmovするだけのijmp、スタック経由のPUSH/POPしか
使えませんから。
PCはいちいち取り出さなくてもプログラム中で自明なのですけど、AVRの場合は
それが16bit(2bytes)だもんで、stateを16bitにしてから現アドレス値を加える
処置が必要なので、ijmpを含め6クロック、範囲外処理を加えて8クロックを
要しますね。
>>78 は↓くらいにはなってほしい・・・・
cp r24,12
brcc default ;
mov r30,r24
clr r31
subi r30, low(-15); 基準アドレス
sbci r31, high(-15)
ijmp
PICの場合は
movf w,state
addwf w,PCL
でいいんでしょうか。範囲外チェックなし/同一クロックなら
AVRの8クロック相当で、ちょっとAVRが早い程度ですね。
>>78 は-mint8つけて、switchに渡す変数はuint8_tで宣言しているんですけど、
switchの引数?を16bitとして扱っていますね。
switch()内の引数を8bitにするoptionってありましたっけ?
>>83 movf w,state
addwf w,PCL
基本的には、これでOKですが、PCLは8bit長なので、メモリ配置のアライメントをとります。
これは、コンパイラの役目ですね。
同一クロックなら、avrの方が有利なんですが、Cのソースコードと、対応するasmリストの可読性
を考えると、picの方がシンプルですから、低レベル操作は意外といいんだなと実感しています。
もちろん、Cコンパイラの使用が前提ですがね。
もう少し、調査してみてから、IARを検討します。
ステートマシンは、少々面倒ですが、以下のように関数ポインタを使うのが 合理的なようですね、しかし、IARで,このコードが通るとはANSIならではですね。 void stateFunc0(void) { } void stateFunc1(void) { } typedef void (stateFunc)(void); stateFunc* stateFuncList[]={stateFunc0,stateFunc1}; void hoge(void) { unsigned char state; state = 0; stateFuncList[state++](); stateFuncList[state](); }
>>86 へえ、これだけで通るのか。おもしれえ。
avrgccでもこれは通りました。
ただ、アドレスを取り出してicallするまで13ステップ要しますが(^^;)
caseの場合は先に6/8ステップと書きましたが、ジャンプテーブルからさらに
実行ルーチンへジャンプが入るので8/10ステップですね。
市販の開発環境は豊富な最適化オプションがあってそれがウリになっているからなー。 avrgccがダメダメというわけではないけど、もう少しマシになるといいね。 と、今後に期待してみる。
>>88 ちなみに、
>>86 のコードですが、
IARのデモ版より、avrgccの方が完全に勝っています。
とりあえず、Webで発注はしてみたけれど、Demo版と
Std版の違いは、コードサイズだけだと書いています。ガックリ。
アドバンス版でもコードコンプレッサ付加のみで
PRO版でImprove runtime speedとあるので
最終的には、$750も払えと云うのだろうか、
さすがにそれは躊躇する。
>>89 そうやって少しずつ高い方に誘導される(笑い)のは嫌だなぁ。
IAR以外にもICCやCodeVisionAVRといった廉価な製品もあるので、調べてみるといいと思います。
CodeVisionは引数の渡し方が変わっていて?面白いですね。
# avrgccも処理によってはいけるのですか。
>>90 ICC と IARを勘違いしていました。
>>81 ,83,86,89でIARといっているのは,ICCに読み替えてください。
再度調査してみます。
IARは高すぎて、私の範疇外ですね。
ICC=ImageCraft Cでいいですか?
>>93 そうです。
基本的にライブラリには、興味なくて、Cの基本制御構造をシンプルかつ効率的に
コンパイルできればいいんです。
ゴテゴテしたライブラリはいらないから、素直でシンプルなのがいいな。 …となると、avrgccになるのか?
そもそも、仕事でLinuxのライブラリを作るとき、gccを使っているので、気長にavrgccと付き合うのも良いかもしれないですね。 IDEは、もう10年くらいVC6のものを使っているので、いまさら抜けれませんね。 ところで、avrgccのAtmega48の割込みベクターの定義が間違えているようです。 いきなり、avrgccのdemo.cがシミュレータで割り込みへ飛んでくれませんでした。ちなみにICCでも失敗。 データシートを頭から読む羽目になりました。勉強になったとです。
FAQには無いから間違ってはいないと思うけどな。 でも、デバイスごとに割り込みベクタを定義するシンボルが微妙に違ううえ、 間違って書いても黙ってるからよくハマる(w iom48.hをチェックしておくか #ifndef で警告するしか無いかな。
つうか釣りだろ? 間違ってるのなら その間違ってる 1 行さらせばすむ話。5 行も書く必要なし。
1行晒しただけじゃメッセージの意味がないだろが(w
iomx8.hとデータシート照らし合わせてみたけど、違っているとは思えないな。 シミュレータの方の問題じゃないの??そっちの制限はいろいろあるらしいし。 具体的にどの割り込みベクタか書きましょう。 シミュレータの問題だとしてもガイシュツじゃなければ役に立つ話だし。
iom48.h には #include <avr/iomx8.h> が定義してあって、 #define SIG_OVERFLOW1_VECTOR(8) そこで avrgccのdemo.c では、SIG_OVERFLOW1 が使われているが 実際には、TMR1のOVFのベクタは #define SIG_OVERFLOW0_VECTOR(13) でなければならないです。一応、書き換えてみて正常に動きましたが、 ヘッダーファイルがどうあるべきかは、判断しかねるので とりあえずさらしておきます。 私自身は、mega48用に自分用のおもちゃを加えた、ヘッダファイルをを作るつもりなので 特に大きな問題はないです。
>>101 の
実際には、TMR1のOVFのベクタは
#define SIG_OVERFLOW0_VECTOR(13)
の部分は
#define SIG_OVERFLOW1_VECTOR(13)
の間違いです
>>101 へ?俺の手持ちのiomx8.hだと、はじめっから
#define SIG_OVERFLOW1 _VECTOR(13)
ですよ?
タイムスタンプ
2005/02/16 01:35 14,341 iomx8.h
>>103 なるほど
iom8.hとiomx8.hを早とちりして読み間違えていたいたみたいですね。
demo.cで
#include <avr/iom48.h>
と定義したのに、何でうまくいかなかったんだろう?
もう少し落ちついて調べてみます。
105 :
103 :2005/09/30(金) 23:21:51 ID:yYG4qWeN
ちなみにうちのはWinAVRの20050214版。 タイムスタンプはどうやらインストール日時のようなので意味無いな
>>104 そのやりかたたぶんだめ。
#include <avr/io.h>
として、デバイス指定はmakefile内のMCUで指定です。
io.h以外にもデバイスで異なる部分があるので(使える命令など)
こうしなければならない。
>>106 最初 Makefileで
MCU = atmega48
とやっていたんですが、うまくいかなかったので
#include <avr/iom48.h>
としてみましたが、だめですか。
どこで
__AVR_ATmega48__
がdefineされているかが問題でしょうか?
winavr の gcc と linux で使う普通の cross gcc は中身が少し違う。 同じ version(timestap) だと後者は微妙にバイナリの MCU サポートが少ない(遅いとも言う)。 ヘッダには定義が入っているにもかかわらず。 ぎりぎりで atmega48 がサポートされてないんじゃないか? avr-gcc --target-help や avr-as --target-help で atmega48 出てくるか?
>>108 とりあえずはavrgcc,avr-asどちらでもatmega48出ますね。
>>107 実際どんなコードで、どんなバイナリを吐くのか、
あげてみませんか?こっちでもOVERFLOW1の割り込みがちゃんと出るか
やってみます。
110 :
109 :2005/10/01(土) 08:51:25 ID:oJB3vOjA
>>107 やってみました。
avr-gcc (GCC) 3.4.3
GNU assembler 2.15 + coff-avr-patch (20030831)
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
SIGNAL(SIG_OVERFLOW1)
{
PORTB=~PORTB;
}
int main( void )
{
TCCR1A=1;
TCCR1B=0;
sei();
for (;;);
}
これをMCU = atmega48でコンパイルして、間違いなくRESET含めて14番目(アドレス0x1a)の
割り込みベクターが割り込みルーチンを指すコードを出力してます。
1a: 27 c0 rjmp .+78 ; 0x6a
:
SIGNAL(SIG_OVERFLOW1)
{
6a: 1f 92 push r1
111 :
109 :2005/10/01(土) 08:56:46 ID:oJB3vOjA
>>108 あ、すみません読み違えた。
>>96 氏の環境がどうかという話なんですね。
ぼけレス失礼しました。
>>110 同じソースでは確かにうまくいきました。
以下のように、割込みを別ソースにしたところ失敗しました。
よく見ると、割込みソースで
#include <avr/signal.h>
を忘れていました。
コンパイラでwarningが出ていました。
一応解決ということで、お世話になりました。
--- Makefile ---
SRC = demo.c intrr.c
--- demo.c ---
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
int main( void )
{
TCCR1A=1;
TCCR1B=0;
sei();
for (;;);
}
--- irr.c ---
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h> <----これを忘れていた。
SIGNAL(SIG_OVERFLOW1)
{
PORTB=~PORTB;
}
>>112 お、解決しましたか。よかったよかった。
別ソースで忘れるというのはありがちですね。俺も気をつけます。
avrgccで、eepromの初期化をソースコードで記述してプログラム時にやりたいのですが可能なのでしょうか? ひょっとして、ライターで別途書き込むものでしょうか?
>ひょっとして、ライターで別途書き込むものでしょうか? ソースコードにEEPROMの初期値を書くと.eepファイルが生成されるから、それもライタで書き込む。
>>115 ありがとうございます。見落としていました。
ところで、設定した、eepromデータは、avrStudioのシミュレーション
では、設定されていないようですが、これはミスでしょうか?
ちなみに、
eeprom_read_byte
eeprom_write_byte
は、シミュレータできちんと反映できています。
こんな感じです。
volatile uchar __attribute__((section(".eeprom"))) eepromData[] =
{
0,
3,
4
};
>>117 elfよませたらeeprom読み込んでくれるけど、coffだとだめっすね。
avrgccのシミュレータで、atmega48の高速PWMを見ようと 以下の初期化を行いましたが、カウントアップはしているものの 出力PINの変化はわかりませんでした。 これも非対応なのでしょうか? void initPwm(void) { DDRD=0xff; TCCR2B = 0x00; //stop ASSR = 0x00; //set async mode TCNT2 = 0x01; //setup OCR2A = 0x80; OCR2B = 0x80; TCCR2A = 0xf3; TIFR2 = 0x00; TCCR2B = 0x01; //start }
>>121 だね。ポート直結タイプよりUSBブリッジの方が付加価値高いと思うんだが。
その分cp2102基板も売れるし(w
もしかしてavrdudeでも使えるから選んだとか?
>もしかしてavrdudeでも使えるから選んだとか? 多分それは偶然でしょ。 avrdudeでSerial-Bitbangがサポートになるより前からAVRライタ発売予告していたような希ガス・・・
AVRSTUDIO更新されてたけど JTAGICEmkUのファームにISP機能搭載されたよ。 (AT90SなどJTAG・DWに対応してないのは対応不可らしい) 使ってみたけどなかなかいい感じ。すげえ便利。
>>124 シミュレータでEEPROMの初期化もされていて素敵
MEGA48の高速PWMはだめのようですが、
Makefile書かなくても良いのも少し素敵。
シミュレータの高速PWMはいつになったらまともになるんだ…orz
PonyProgシリアルライターがPICにも浮気できそうなので作る。 オリジナルの回路はRS232Cの電圧を抵抗とツェナーで落とすが、そのまま作っても 面白くないので専用レシーバを入れることに。 論理が反転するのでインバーティングバッファを入れ、回路切断を容易にするよ うにした。回路完成でプログラム起動してヒヒーンと動いたけど、メニューみた らコンフィギュレーションに極性反転機能あったよ。1個で済んだじゃないか。 最初にプログラムを見るべきだった。 なお、PICはあくまでも浮気です。本気ではないです。
△ インバーティングバッファ ○ トライステートのインバーティングバッファ
>>124 へぇ。自宅にも1個買おうかな。
ISP機能があるってことは、DWの活性・不活性が1台で可能ということ?
DW活性不活性は以前から出来てたよ(SPIインターフェース経由) んでそのSPIインターフェースにROMの書き込み機能がなかっただけ
ATtiny45 オプティマイズに登場、 4個@275円。
ストロベリーリナックスのライタ変換ケーブルに対応しないのかよぅ
最近なんか活気が無いですね。
暇がない・・・
128です。ついでに232トランシーバ1個版AVR/PICライタも作ってみました。 SCKが反転されていると使えることは使えるのですがイマイチ。 RESxをLに保ったままでコマンドを送ると2回目が失敗する。 どうやらSCKの元ラインがノーマリーLの影響を受けてる。 これを反転で使うとコマンド終了時にCPUにアクティブエッジを与えてしまう。 それが2回目のコマンドを失敗させてる模様。しょうがないので手元にあった ワンゲートのインバータをSCKに突っ込んで問題解決しました。 PICの試し焼きもしてみたいがハードル高い。なぜPIC→AVRを勧める人がいる のにその逆はないかよくわかった。まともなフリーのコンパイラがあるかない かわかんないし、書き込みに13Vが必要で電源投入から2mS以内でないと走りだ してしまうからダメとかマンドクセー。 それはそうと自作用AVRライタとしてはPonyProg互換はお勧めします。 elm-chanライタも高速でいいのだが、DOSコマンドは不便。
PonyProgってATmega88やATtiny45等サポートしてたっけ? AVR910互換もそうだけど新AVRに対応できないライタは作る気にならない
>>131 秋月裏の東芝サポートの向いにある店ですか。AVR豊富でいいです。
でもいつ消えるか分からない雰囲気ですね。
>>136 結局市販品ということですか。
自作お勧めはないでしょうか。
自作ですか・・・
ハードは
LPTポートやCOMポートが使用可能なら
bit-bangタイプがよいですかね(STK200,avrsp,PonyProg-Ser)
USBで使用するなら
usbaspかchanさんのSPIブリッジ+USB-SERIALかな
上記ライタはPC側のソフトで新CPUに対応できるので
PC側のソフトはCUIならフリーのが色々ありますが
GUIで新AVRサポートのものは私は知りません^^;)
有料のなら
ttp://www.hpinfotech.ro/html/cbavr.htm がそこそこ
私は作るの面倒なのでAtmelのAVRISPを使ってます
DOSコマンドは不便だからavrspをD&Dで使ってる。ちまちまとGUIを操作する煩わしさも無いしね。 …な使い方は漏れだけ?
オレもそうしてる。 書き込みはHEXファイルをavrspにD&DでOKだし、ヒューズビットの書き換えに したって、DOS窓開いてそこにavrspをD&Dして、そのあとに必要なコマンドを 打ち込めばいいだけだもんね。
俺も同じだけど、ヒューズビット系はショートカットのプロパティ変えたの作って 「デバイスチェック」とか「Tiny26_8M」とかがずらずら並んでる。
PICは、純正ICD2を買って使うのが結局、安上がり。実際には,PSTARTが 最新のサポートが早いです。 最近、avrへの引越し作業をしようと、optimizeのライター買いました(USBだから) ところで、純正STK500を買っても出番があるんでしょうか? ISP系のライタでもヒューズ書き換えできるようなので、必要な条件を知りたいです。
通常の書き込みはD&Dでやってるが、ヒューズはコマンドラインでやってきたな。 たまーに打ち損じてRSTDISBLを書いてしまって真っ青ってことがあったよ(w よくある設定別にショートカット作っておけば間違わないからいいね。 さっそく…
144 :
774ワット発電中さん :2005/10/18(火) 08:25:56 ID:rHmXHTwZ
heroさんのところに、AVRISPmkIIってのがあるんだけど USB接続のAVRISPで、USB経由でVTGも供給できるぽい。 ターゲット電圧を別に掛ける必要が無いって時点で良いね。 USB2.0で変換無く、書き込み速度も向上するぽいし。 業者に聞いてみるかなぁ。 書き込み速度が上がるってのは、絶対的に良いからなぁ。 DIGIKEYにまだ売ってないのが気になる。
AVRISPmkIIは90Sシリーズ全滅なのか?
これまでのATMELの商法を考えれば、その可能性は高い罠
>>145
JTAGICEmk2のISP対応も それ見越してやったぽいな そろそろ無印の在庫もはけた頃だろうし
90Sシリーズだけでなく、MEGAの古いやつも不可みたいね。 ようするにディスコンになったのはサポートしない方針らしい。
>>138 USBaspはブリッジ不要でよさそう。
AVRは手段だったのにAVRライタ作成が自己目的化して来たw。
150 :
774ワット発電中さん :2005/10/20(木) 01:20:23 ID:fsgGUDEU
なんでAVRはライターごときで悩む必要があんだよ・・・・糞だな。
AVRって74HCとかを使わないと書き込めないのですか?
いいえ
153 :
774ワット発電中さん :2005/10/20(木) 01:40:30 ID:87L3x+W8
>>150 149だが、安定して動くの作ってあるが、趣味で別種のも作りたくなってる
だけ。書き込み条件picより楽だ。
AVRだから悩むというより、USBへの移行期だからとか、 純正開発環境との相性で悩んでいるだけ。 別にシリアル、パラレルだったらあまり悩まない。 っていうか何でavr assembre2は16bit環境じゃ動かないのかと。 何故にwin32コンソール環境なんて中途半端な環境用なのかと。
拘りと言うか探究心の範疇だな。 「書ければ何でもいい」と言う考え方とは区別した話しかと・・・。
PICライタの製作に血道をあげている人はたくさんいるから、AVRでもそういう趣味があってもいいと思うよ。 つ、ついに完成したぞッ! 究極のAVRライタ!!
せっかくならD-SUBコネクタカバーの中に収めて欲しかった。
そこまで単純なのは無いと思うけど、 AVRの場合は基板から外して書き込むという習慣は無いんだよね。
>>158 3000円とか取ってたらクヌヤロだけど、980円ならいいじゃん。
ユニバーサル基板でも無いみたいだしさw
164 :
774ワット発電中さん :2005/10/21(金) 00:09:58 ID:Q7trF1YD
USB直結なら、最近のシリアル無しノートも使えて幸せ。 そうはおもわないか!?
最近のマシン、プリンタポートとか(レガシー)ないのね・・・ ライターもそうだけど、CADのドングル刺さらなくて困ったwww
>>165 このごろはUSBドングルか、LANのMACアドレスでライセンスコード発行ですよね。
ところで、MACアドレスというのは、自由に書き替えられgrせがせこsgせじおあ@rgせg
NO CARRIER
167 :
Mr.とんぐる :2005/10/21(金) 04:25:10 ID:UoYVp0F5
呼びましたか?
AVR-Wikiが荒らされている。 いつかはこうなると予想はしていたが・・・ Wikiの運命ですかね。 実はまだ他にもWikiで危惧していることがあるけど今はまだ触れないことにします
どういう事情かは知らんけど なんで荒らされるのかがよくワカラン。 だってタダで情報提供してくれてるサイトでしょ?
170 :
774ワット発電中さん :2005/10/21(金) 13:40:23 ID:Q7trF1YD
まあ荒らされたら1日ぐらい置いてバックアップから復旧すればいいでないか
>>168 これってWikiのセキュリティホールみたいなもんか?
セキュリティホールというかWikiは誰でも書き込めるようなシステムなので 悪意のある人がいたらいくらでも改竄できてしまう。 みんなの善意に頼るしかない・・・
AVR-Wiki管理人さん早い もう復旧してらっしゃる
後はIPから馬鹿を割り出して通報だな。 息の根を止めておかないとまたやるよ。
復旧したと思ったけど左のメニューの最新のavrgcc/WinAVR等のリンク先がまだ書き換えられたまま >後はIPから馬鹿を割り出して通報だな。 通報はムリポ(外人さん?)
こういうスクリプトやボットで機械的にやられる荒らしは、 何とか人手に頼らず撃退する方法ないんか
>>174 いや、管理人は今帰ってきました。
善意の皆様による復旧だと思います。
IPはちょっと調べてみます。
荒らしを防ぐ意味でも串はじき位はしてもいいと思う
AVR使っててPICどうなの、と見た場合、よく見えたのはH流出電流がたくさん とれること位だな。それ以外はAVRがいい。
>>179 最近は串チェッカ(環境変数チェック、及び不審ポートの串チェック、有名なWeb串Deny)で検出できない串がある
俺もやられたことある…orz
そういう香具師に荒らされた場合はあきらめて去るのを待つか、海外ばかりなら海外からのアクセスを拒否る位しか対策がないと思う…
>180 最近のAVRよりH出力が取れるPICを寡聞にして知らないが、どれ?
Trevaが何処にも売ってねぇ!!!! あのシリアル一本ってのが使いやすかったのだが 皆はTrevaの代わりに何使ってる?
あー とうとうストロベリーリナックスのトップページからUSB PIC/AVRライタの告知が消えた たしか8月頃からずっと楽しみにまってたのに
>>185 >※USBシリアル変換では使用できません(当社のUSBシリアルを含む)PC本体に内蔵されているシリアルポートでお使いください。
あーあ、どうせならUSB-SPI変換を提供すればよかったのに。
キット品は最初のAVR書き込みをクリアできるので、1から自作でもできるロジックIC品より
AVR使った鶏卵系ライターこそ意味があるのに。こちらは苺さんとこのUSBシリアルで快適に動きます。
>>182 AT90S時代のことでしょう。
このころのPICはH/Lとも25mAだっけ?
AVR(AT90S)はLow(シンク)で定格いっぱいの40mAを電圧降下0.8Vで得られ、
High(ソース)では電圧降下3Vで16mA程度
(これはこれで5V電源でLEDを直結できるという便利な特性につながるわけだが(w
megaシリーズの場合、Low(シンク)、High(ソース)とも電圧降下1V程度で40mA程度。
吐き出しが強化されたのは、多分新しいプロセスになってからかと。 MEGAも古いのは弱いよ。 古いプロセスでもTINY28は60mA吸い込めるポートがある。
180です。確かに自分の見てたAVR品種が古かった。 PICいいとこなし。
PICに敵対心むき出し乙 でも、相手にされずw
>>189 いいとこなしってこともないよ。
両方のアセンブラを経験すると、たまに
お、PICっておもしろいじゃん?
って場面もあるよ。
>>190 煽り乙。
でも、相手にされずw ってオレが相手してしまったorz
善し悪しは別にして、PICはおなかいっぱいって感じだけどもね。
今頃、ATTiny13はWinAVRが使える事を知った。 (WinAVRのMakeFileの一覧にないので、使えないと思っていた) いやぁ、ちょっとしたシーケンスプログラムとか書くのに凄く便利。 ATTiny45もいいけどね。
AVRJTAGmk][って、新ファームでISPできるみたいですが、 ATTiny45とかでISPしながらDebugWireしている人います? 使用感など聞きたいのですが、DebugWire自体、誰も使ってない?
>196 旧ファームの時でもたいした差はなかった。 DebugWireを有効にしておけばプログラムはDebugWireで転送できるので デバッグ中にISP機能が必要になることはないです。 DebugWireはあまり使い勝手が良いわけではないですが シミュレータが対応できていないI/Oをデバッグするには有効ですね。
>>197 >プログラムはDebugWireで転送できるので
え?DebugWireに書き込み機能ってあるんでしたっけ?
>198 書き込み機能という独立したものではなくて 普通にデバッグモードでプロジェクトを読み込めばターゲットに転送されます。 これは以前のAvrStudioでも可能です。(再コンパイル後再ロードする) いままで出来なかったのはISPプログラマとしてのプログラミング機能です。 デバッグモードでのプログラム転送は以前から可能でした。 AvrStudio4.12ではavr-gccが使用可能となったので特に便利です。 AvrStudioで変更してそのままコンパイル&デバッグが出来るので非常に使い勝手が良くなりました。
200 :
774ワット発電中さん :2005/10/28(金) 20:55:02 ID:vdnzNtpS
すみません、mega128で組んでるところなんですが 電源(Vcc,AVcc)とグランドつないで、ISPをつなげても書き込めません 他のavrと違ってmega128でなんか注意する事とかありますか? ライターはELMのCOMライター使ってます.
>200 >他のavrと違ってmega128でなんか注意する事とかありますか? 通常時は同期シリアルはSCK(PB1),MOSI(PB2),MISO(PB3)ですが ISPモード時はSCK(PB1),MOSI(PE0),MISO(PE1)となりピン配置が違います。
202 :
200 :2005/10/28(金) 22:06:11 ID:vdnzNtpS
>201 ありがとうございます、やっとの思い出書き込むことが出来ました.
Σ(゚д゚) プログラムじゃなくて思い出を書き込んだのか!?
思い出を書き込んでもらえて私もうれしい
ファームウェアの余白に落書きした奴、手を挙げろ(w ♪AVRのFLASHの中に〜 ♪隠れて〜思い出がいっぱい〜 ♪無邪気なIOのの下位の ♪レジスタ はるかなメモリー ♪SRAMは無限の広がりで バンクを思いもしないね ♪手の届くポートは リードモディファイライトで ♪君を包んでいた ♪AVRの階段昇る 君はまだアマグラマさ ♪ライブラリは誰かがきっと ♪運んでくれると 信じてるね ♪だったといつの日か 想う時がくるのさ って俺は趣味グラマですけど(w
>ライブラリは誰かがきっと >運んでくれると 信じてるね ワロタ
秋月店頭にatmega128のQFPが売ってた。 それはそうとライタ作るとき味噌がこっちでモシがここと言いつつ 配線してた。
AVR-Wikiがまた荒らされた この前と同じやつみたいだ なんかむかつくな
>>208 ついにCGI経由で無く直接書き込んできたらしい・・・
アクセスログに痕跡が無かったです。
お察しの通り前回は外人さんなので
書き込み用に公開ID作ろうと思ったのだけど効果なさそうです。
何か良いアイデアあったらここでも雑談の方にでもヨロシク。
>>207 秋月の掲示板(?)に、QFPを実装したボードを売り出すって書いてあったらしいけど、ソース不明。
211 :
774ワット発電中さん :2005/10/30(日) 14:11:58 ID:IvnulrZy
>>209 直接来たなら、不正アクセス防止法で叩き潰すって手が使えるよ。
セキュリティ対策してない方にも落ち度はある
出た。レイプされる方にも落ち度はあるの論理
出た。とか言っとらずに現実を見ろ 被害者側の過失認定が大きなウェイトを占める時代なんだ
>>212 Wikiで出来るセキュリティ対策って何?
>>211 外国の厨房を、日本の法律で取り締まることは、事実上できま千円
差分が元ファイルより大きくなったら自動的に元に復帰するとか。
>>218 Wikiは祭りをするところではないから、それでもいいかw
ATmega48のタイマ1の高速PWMですが11bit〜16bitでPWMを動かすにはどうしたら良いですか? TCCR1A=0b10100010 TCCR1B=0b00011001 TCCR1C=0b00000000 OCR1A=0x0001 ICR1=0xFFFF この設定だとどうも8biのPWM相当で動いている感じです(WGM=0b0111(10bitPWM)より明らかに明るい) WGMを0b1110にするとICR1がTOP値になって16bitまでカウントしてくれそうな気がするのですが…
>220 うちではちゃんと16bitPWMで動作しているなあ (220と違って出力論理は逆で使用しているけど)
>>220 これだといちおうデューティ1/65535の高速PWM波形が出てきそうですが、
なんででしょうね。
ICR1の書き込み方をまちがえているってことはないですか?
下位から書き込むと、下位8bitしか書き込まれず結果8bitPWMのように
振る舞うと思いますが。
223 :
220 :2005/10/31(月) 21:04:01 ID:IvBxbIKM
>>222 ビンゴですた…orz
Highから書き込むようにしたらちゃんと16bitで動いているようです
>>223 あ、よかった・・・・・
過去にはまったケースって、他の人も結構はまるんだなあ。
よかった。俺も人並みなんだ。
・・・・・・かわいそうに、
>>223 は俺並みか(^^;)
226 :
220 :2005/10/31(月) 22:43:52 ID:IvBxbIKM
PWMのクロックつか出力のレートmax。 LPFかけたときのリップル周波数知りたい
>>226 周波数・周期のことでしょ。
>>220 の設定ならクロック/65535の周波数ができる。
16MHzなら・・・・・244Hzになっちゃうね。結構遅い。
>>228 サンクス 8bitでは16MHz/256 ですね?
>>229 より高い周波数が欲しいのなら
ATtiny26/ATtiny25/45/85等は内蔵PLLで64MHz/256までいける(8bitPWM)
ありがとう
>>230 ATTiny26のTimerを64MHzPLLで駆動するときって、
CPUクロックを外部クロック(水晶発振モジュール)にする事はできますか?
233 :
230 :2005/11/04(金) 11:46:43 ID:7yLR60M0
実際に使ったことはないけど・・・ データシートのブロック図を見る限りは独立しているのでいけるのではないかと
AVR-Wikiの「荒らし」何か拒絶する方法はないものか・・・
>>234 左のメニューみると、.ru(ロシア連邦)のドメインが多いので、
そっちから来てるんじゃないか?
アクセス拒否してみたら?
236 :
234 :2005/11/04(金) 17:48:10 ID:7yLR60M0
私は中の人ではないので出来ませんが・・・ AVR-Wikiの管理人さん そういう対応はできます?(IP拾えました?) 多分IP判っても無理ですかね? ああいうことを専門にやっていそうだから
練習用ボードに投稿して、それを中の人が掲載 じゃあ負担が増えるしなあ。画像込みだと移動は大変だし。
238 :
774ワット発電中さん :2005/11/04(金) 20:23:53 ID:898if3oo
投稿にパスワード必須にしたら? そのパスワードは画像合成で横に表示して、人間が見ればわかるようにするの。 最近多いでしょ。
>>238 あああれか、それならいいな。
パスワードを別のサイトで公表というのもいいね。
AVR-wikiに書き込む人なら知っている程度の質問の答えをパスワードにするのもいいね。
今日のパスワード:mega168のシグネチャコード
なんてやるとか。
>>236 CGI本体を弄くらないと弾けないのと
最初の一回以外アクセスログに残っていないので多分難しいと思います。
>>238 本当は気楽に書き込んで欲しいから付けたくなかったのですが
ログインしてからで無いと書き込めないようにしました。
始めは日本人なら解るようにして、駄目ならシグネイチャコード案を採用させていただきます。
同時ログインで弾かれることが多かったら此処にでも書き込んでくれたらIDを増やします。
AVR MEGA406ソースをGCCに移植したいもんだ。 そしたら、千石とかのリチウムイオン電池の充電制御がしやすくなる予感。
MEGA406って、熊谷のパーツショップに売ってた悪寒…
244 :
774ワット発電中さん :2005/11/06(日) 09:54:08 ID:qnYMrrCp
本当?石単体で売ってるとこあんのかー 職場でIAR使ってるが、 個人的にGCCで自宅電子工作をしようと思う。IAR高いからね。 IARの試用版の4kバージョンで406で動作するミニコードは作成できそう。 でもやっぱGCCでライブラリ使って書きたい。 GCCってIAR slaveのモジュールは無いのかな?
>>244 ざっと見たけど速度とタイミング以外TWI(I2C)と同じように見えますね。
あちこちにあるgcc用I2Cライブラリでいけないですかね?
>>245 IAR slaveはIIC slaveのミスです。IICライブラリ探してみます。
slaveだとSIGNAL使って書くんだろうけど、既存のものがあれば参考にしたいかなと思ってて。
ところで、自宅でAVR弄ってる人は、ICEmkII買いましたか?
趣味でAVRで遊んでる人で、ICE使ってる人って、 いるんですか? オレは今年の春頃からマイコンを始めました。 最初からAVRです。 趣味でする分には、なるべく安く、なるべく簡単にと思ったので。 ライター製作からはじめて、入出力の設定、A/Dコンバータ、 PWMでブザー鳴動、LCD表示、タイマー割り込みという風に 一つ一つ機能のやり方を覚えていき、夏には多機能の プログラマブルタイマーを作品として完成しました。 プログラムすること自体が初めての経験なので、 わかりやすくと思い、言語はbasicを使用しましたが、マイコンの動作が自分の イメージと違ってて、2〜3日はまってしまったことがあります。 そういう場合にはICEを使用すれば、簡単にできるものなのでしょうか?
>>247 I/Oの波形が全く違うのだったらICEで解る。
波形のタイミングが違うだけだったらアセンブラを理解しないと無理。
まぁ大抵はAVRスタジオで解決できる。
>>248 Studioでほぼわかるのは間違いないんですが、タイマー絡み、特にPWMあたりは
シミュレータに、ちょこっとバグがあるんで、実機じゃないとわからないところはありますね。
ICEいらね。AVRくらいなら無くてもそれほど不便ではない。 あれば便利だろうけど、接続やらセットアップの手間がめんどいし。
253 :
774ワット発電中さん :2005/11/07(月) 16:07:50 ID:ShN874I5
STK500 を使って ATMega8 にシリアル書き込みしようとしてるんですが、 「Entering programming mode.. FAILED!」って言われて書き込めずに困ってます。 Mega8535 なら同じように書き込めるのに、何故なんでしょう? STK500 の基板上のジャンパの設定等が必要なのでしょうか?
>253
ttp://www.nahitech.com/nahitafu/bbs54.html > 最初は問題無かったのですが、どうもFusesのクロック
> 設定を変更してからおかしくなったように思います。
AVRのISP機能はクロックが供給されていないと動かない
ので、クロックの設定を誤ると書き換えできなくなります。
やってしまう人が多いみたいですね(w
ISPプログラミング時は、
STK500ソケット=SCKT3200A2
ISPヘッダー=SPROG2
高電圧プログラミング時は、上記に加えて
PJUMPジャンパを装着。
BSEL2とPC2間を接続。
で、Fusesのクロック設定を元に戻せ。
>>253 STK500って、面倒だよね。
素直にAVRISPにしとけ。
257 :
774ワット発電中さん :2005/11/08(火) 00:26:20 ID:G2tGQJSr
>ICEmkII買いましたか? ノ Digi-keyで買ったです。 ISP機能が追加されてとても便利になりました。 ただ不便なところはフイルムケーブルの接続が ちょっとしたショックでずれてしまい、ターゲットと通信が 出来なくなってしまうことです。 とりあえずテープでがちがちに固めてずれなくさせました。
今、ATmega128をSTK500上でSTK501もどきで動作させようとしてますが、 Bポート出力するのに、M103Cヒューズビットを”1”にしないといけないのに やっと気付いた。>orz 他にデフォルト状態でいると動かないI/Oポートってありますかね。
cpse命令って効果的な使い道がないよね?
その命令により、あらゆる命令を条件付にすることが出来る。とっても便利。
elm氏のAVRの使いこなしぶりは神がかってるなあ。 8bitMCUにFFTさせてる時点で目から鱗落ちまくり。 ......既出だろうけどマルツでAVRをそれなりに豊富に扱ってる。 ATMEGA88が500円だ。 もうデジキーに貢がなくても済むかも。
>>261 マルツだとフラットパッケージ無いから…orz
まるっつ〜、まるつ〜っ。
マルツ電波ってネーミング自体がやばいな
じゃあ、まるち電波にすれ
マツルからのmail "※先日"ATMEGA88"が、多量に注文が来てしまい、 欠品となってしまいました。申し訳ありません。 只今、納期確認中ですので、納期が確定次第ご連絡いたします。" wwwww....orz.... 新規会員登録で300ポイントもらえまつ。 唯一、ポイント制のお店と言う切り口もありまつ。マツル。
267 :
超初心者 :2005/11/19(土) 00:21:30 ID:8sWag3Xr
ひょんな事で、AVR Butterflyを入手しました。 ダウンロードしたマニュアルを見ると、PCのRS232Cと直結できる 旨の記述があります(Butterfly側でレベルコンバータ対応)。 マニュアル通り直結してプログラムをダウンロードすれば、 作成アプリケーションを動かすことが出来るのでしょうか? (過去スレを読むと、書き込み治具が必要なようですが、 ハードウェアは苦手なので…。)
過疎スレ!過疎スレ! _ ∩ ,-― 、 ( ゚∀゚)彡 // / ` i ⊂彡 _...,,_ |_ i | 〈 \ ,| \ // ヽ 丿 ||l >====||l= /|l / |" バッコン! ノ /、 // } ) ヽ、__i||,./ / ベッコン! ⌒ ,〉 ,, ",〉 〈 _ _ , / `ー--‐''"
そうでもないぞ 今日は横浜が終わって打ち上げで 呑みに逝って帰ってきてないんだろう
271 :
267 :2005/11/19(土) 10:18:15 ID:8sWag3Xr
>>268 回答ありがとうございます。
特別にハードは必要なさそうですか。
とりあえずRS232C経由で直結できそうですね。
書き込み前に、ATMELから直接落としたものを
読んだだけですが、和訳化されたものがあるのですね。
参考にします。
ご紹介ありがとうございました。
マルツのMEGA88は本社には届いたようです。 数日で店頭に行き渡るかと。 88って、いしかわきょーすけさんのイカサマUSBモニタのせいなのかな。
あれってmega8じゃなかったっけ
MEGA88だぴょん
まあ、それはともかく、mega8とmega88の違いって…
メモリサイズ?
>277 スピード
280 :
774ワット発電中さん :2005/11/21(月) 20:43:18 ID:t4W10wg4
内蔵ペリフェラルのアドレスマッピング
世代が1つ違う WDTに割り込みついてる
8と88の違いは…まとめると… クロック(16->20) 動作電圧(2.7->1.8) PWM(3->6) SPI(1->1+1,USARTでspi動作できる様になったので) 割り込みべクタ(19->26) 外部割り込み端子(2->26) 8bitタイマ*2,WDT等の機能向上 割り込みべクタで増えた部分は ピン変化割り込み関連*3,WDT計時完了,タイマ比較関連*3 って所かいな…
>>283 質問〜
その動作電圧1.8Vってクロック20MHzのとき?
>>284 ファミリの最低動作電圧。
8Lが2.7vで8MHz。
88Vは1.8vで4MHz,2.7vから10MHz。
>>285 おお〜
replacingでサーチするとapplication noteがそれなりに出てくる〜
サンクス〜(^^)/~~
MEGA406のデータシートをhiroさんのとこからダウンロードして読んでみた。 ( ´Д`) ためいきもののレジスタの美しさ。 ところで、AVRの温度センサ搭載のチップ tiny25とかMEGA406とかは、 どの程度つかえますか? まだ実物ないんで、知ってたら教えてください。 tiny85って、digikeyにもナイね。 tiny45はあったけど。 4kBだし、体験版Cコンパイラでさくっと書いてみるかな。
MEGA406なんて、なんでまたそんな特殊なチップから…
過疎化してるんで、age
そして転載
ELMさんは、やっぱ使い手だなぁ。AVRなんざ一捻りというか・・・。
77 名前: 63 投稿日: 2005/11/28(月) 21:43:41 ID:a5pp6FSU
>>63 の補足説明をしておきますね。
EEPROM 00h〜03h:各LEDのON/OFF受光レベル 04h:対応するGPIOの出力bitを反転
・動作は
>>12 のレイヨ=グラフィーみたいに暗くなったLEDが光ります。
・参考HPは
http://elm-chan.org/junk/leddet/report.html です。えるむさん、ありがとう。
えるむさんのHPでは、コンパレータ-を使ってましたが、
>>63 ではADコンバータで受光レベルの検出をしてます。
検出・点灯の手順として、約16ms毎に下記の事をしています。
・A/Dのチャンネル切替、および出力をOFF。A/D入力部のコンデンサを放電。
↓
・TRISIOを操作、出力→入力に変更。
↓
・一定時間ウェイトをかけて、コンデンサに充電させる。(約2ms)
↓
・A/Dを起動、LED起電力を読み取る。
↓
・全LEDの読み取り終了後、TRISIOを操作、入力→出力に。
↓
・読取データを設定データと比較、LEDのON/OFF。
※充電時間は短いと、電圧が上がりきらないため、あまり時間を短縮できません。
使用電源によってはLEDが誤点灯等する時があるんで、電池を使った方がいいかも。
290 :
774ワット発電中さん :2005/11/29(火) 04:16:57 ID:vAk5jZUz
ヽ(`Д´) あげぇ (つい習慣でsageてしまった)
秋月で90S1200が百円(つД`)
某BBSにコソーリ置かれてるTINY45の宿題やってみた人いる?
294 :
774ワット発電中さん :2005/11/30(水) 21:49:40 ID:2MUZ5flO
>292 それ、自分もびっくりしたwww
295 :
774ワット発電中さん :2005/12/01(木) 12:51:26 ID:zJHw80E8
1200をパラレル書き込みでCR発振モードにすると外付け部品 少なくてちょっとしたシーケンス制御とかに便利かも。 他にタイマIC555の代わりとか。(555の方が安いけど)
>>295 外付け部品込みだと差は縮まるかも
いくつかのプリセット周波数を切り替えるまねもできるしな。
297 :
774ワット発電中さん :2005/12/01(木) 15:33:30 ID:zJHw80E8
複数ビット使ってR-2RラダーのD/Aコンして効果音も出せる。 1個\100は嬉しい。遊べる。 パラレルのライタを作ろう。(別にセラロック付けてもいいのだが。 CR発振にしたところでポートが増えるわけでもないから)
wave table音源でもやろうと思ったが、LPM命令無いのな。
>>298 まえその話題で盛り上がったことあったよ。過去スレを探そう。
>>298 スレ落ちしていたのでPart4をAVR Wikiにあげといた。
AVR-Wiki→AVRFAQ→その他お勉強になるサイトなどを紹介してください→2ch関係
DigikeyにAVRISP MkIIきたね. なんか2種類あるけど. AVRISP MKII と ATAVRISP2 ATAVRISP2ってなんだろ・・・
>>301 ATAVRISP2-ND 4002円
AVRISP MKII-ND 5053円
ATAVRISP2-NDのほうは「USB]と書いてないんだが、
どっちにしろ在庫0だ。安心しろw
WinAVRの安定版ってどこら辺ですか? 20050214試したら何故かavr-gcc -gってやってもデバッグ情報を吐いてくれない…(汗 C:\data>type test.c int main() { for(;;); return(0); } C:\data>avr-gcc -g -o test.o test.c C:\data>avr-objcopy -O coff-ext-avr --debugging test.o test.cof avr-objcopy: test.o: no recognized debugging information
>>304 最適化されて0番地にrjmp +0がかかれて終わっているとか(w
>>305 やってみたらSRAM初期化、スタック初期化の後は無限ループだったな。
>>304 makefileに任せたら普通にできます。こうなってますね。section-addressを設定しないとだめとか。
# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
COFFCONVERT=$(OBJCOPY) --debugging \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000
extcoff: $(TARGET).elf
@echo
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
しかし、90s2313指定で 4e:de bf out0x3e, r29; 62 (SPHの設定) いいのかこれ?まあ支障ないんだろうけど・・・しかもSPLも2度設定しているし。
WinAVRでアセンブラで書いている人ってほとんどいないのか? 情報が皆無な気が…
>309 thx 一応情報が無いわけではないのか アセンブラで書いている場合、みんなデバッグってどうしてるんだろ? AVRStudioのDisassemblerとにらめっこしかないのか?
デバッグするほど大きな関数はアセンブラではあまり書かんと思うが… 特にクリチカルな部分なんてたかが知れてるから。
>>310 AVRStudioのディスアセンブラ画面でもステップ実行できるよ。
313 :
774ワット発電中さん :2005/12/09(金) 12:55:34 ID:Yc/l+UuP
デバッガなんか使わなんでも、デバッグできるよ。 ステップバイステップで精密に積み上げれば。
314 :
310 :2005/12/09(金) 21:08:12 ID:AJf/O1wF
フルアセンブラで書いている俺は相当変人ってことか… AVRStudioのDisassembler画面でのデバッグはある程度コードがでかくなってくると死ねる…il||li ○| ̄|_
>>314 別におかしくはないと思うけど、悩むほどでかいプログラムなら
結局わかりやすくモジュール化するように考えながら作るんじゃない?
>>311 ,
>>313 が言うのはそういうことかと。フルアセンブラでも、1関数は小さいと。
そういうのなしで効率や速度優先のスパゲティを作るには、あなたが天才になるしかないと思う。
A/D変換のばかやろー(・д・`)
>>317 WinAVR & tiny26LでA/D変換できなくて夜を明かしました
起動直後(ADMUX書き込み直後?)にADCSRに書き込んでもレジスタの値が更新されないことが判って
10ms待ってからADCSRに書き込むことでとりあえず解決しました
どうしてそれでうまくいくのか、どうして今までうまくいかなかったのか、細かい条件を詰めるのは
今は考えるのがマンドクセーので追々
>>318 10msecってのはまた長いな・・・・
たまたまLEDの表示更新用に回してたタイマーが10ms周期だったんで
>>318 >起動直後(ADMUX書き込み直後?)にADCSRに書き込んでもレジスタの値が更新されないことが判って
へ?
んな事は無いと思うな。
ソースを晒してください。それはAVRerを不安にした貴方の義務ですw
例えば、ADMUXに書き込みするまえに、ADSCRのADENをONにしてないとか、まさかそういうマヌな事はしてないと思うんですが、
なんせソースを示してくれないと、なんともいえない。
>>322 そうか。ボクの目には
ADEN in ADCSRA. Voltage reference and input channel selections will not go into effect until ADEN is set.
っていう文が見えているのだが、これはボクの錯覚なんだな?
>>323 ん?じゃあなおさらADMUXのMUX3-0が先じゃないとまずいんでないの?
ADMUX設定はすぐには反映されず、ADENセット時に反映される。
ADENセット中は基準電圧セットやマルチプレクサ設定書き込みは無効ってことですよね。
確実にするためには一度ADENクリアしてからADMUXセットするのがただしいんだろうけど、
リセット後最初の設定ならADENよりADMUXが先でいいのではない?
>>324 >ですよね?って言う前になんで
>The user is thus advised not to write new channel or reference selection values to ADMUX until
one ADC clock cycle after ADSC is written.
っていうところを読まない?
>>325 うぐ。読んでないみたい。・・・時間ないからあとで
>>326 どうせ匿名なんだから、感謝の気持ちの安売りくらいしてやれ。
それだけで満足してくれる奴もいるんだからさ。
>324 の解釈で良いだろ。 325 の文は ADMUX 書き換えるときは ADSC からはひとつ待て、 でないと well-defined な切替えシーケンスにならない、という意味。 ADMUX を先にするぶんには構わない。
>>325 その前の文章からのつながりで見ると、これは
「channelはいつ切り替えてもいいけど、変換中はチャンネルはロックされて変更されないよ」
「AD変換の最後のクロックサイクルで反映されるよ」
「ただし、次のADCクロックの立ち上がり(ADSCがたちあがるところ)でまたAD変換が始まるので、
ADSCが書かれてから1ADクロックはADMUXを書き換えるな」
(連続変換ならADSCが1になって1ADCクロック待ってから書け、
単独変換なら変換始めてから1ADCクロック待ってからかけ、でいいでしょうか?)
でないの?
あと、
>>323 だけど、ADENをセットしてADCを動かさなければ何の動作もしないよと言っているだけで、
ADMUXの書き換え自体についてははっきり書いてないな。
>>324 もちょっと勘違いでした。
ADMUX設定はAD変換スタート時に読み込まれますので、設定しておけばちゃんとあとで使われるってことはないかな?
しかしながら、ATMELのANに当たってみましたが・・・ATMELのADC初期化ルーチンは
ADENを1にしてからADMUXをセットしてますね・・・・
データシートにははっきり書いてないとしてもこっちにしておいた方が無難かな・・・・・
330 :
318 :2005/12/12(月) 03:23:47 ID:Ec59VHyt
331 :
318 :2005/12/12(月) 03:28:34 ID:Ec59VHyt
あ、あと待ち時間は10msじゃなくてもうちょっと長かったです
>>330 ん?AVccは??>回路図
>
http://rep2.net/up/data/861.txt <うまくいかないのを再現したやつ
>ADCSR = _BV(ADEN)|_BV(ADFR)|_BV(ADIE)|_BV(ADPS1)|_BV(ADPS0);//AD変換動作許可、連続動作許可、変換完了割り込み許可、クロック分周設定(1/8)
>ADCSR = _BV(ADSC);
あ・・・・あたりまえじゃん。2行目の時点でADSC以外のビットはクリアされてるよ。
ADCSRは割り込みビット型(1書き込みで動作、0書き込みでnop)と、通常のレジスタビットが
混在しているよ。もしこのようにやるなら、以下のように。
>#define adcsr_value (_BV(ADEN)|_BV(ADFR)|_BV(ADIE)|_BV(ADPS1)|_BV(ADPS0))//AD変換動作許可、連続動作許可、変換完了割り込み許可、クロック分周設定(1/8)
>ADCSR = adcsr_value;
>ADCSR = _BV(ADSC) | adcsr_value;
>>330 「昨日うまくいったやつ」がうまくいっているのは単に割り込みルーチンでADCSRをセットしているからだろう。
334 :
318 :2005/12/12(月) 09:13:40 ID:Ec59VHyt
テンパってて気づきませんでした ごめんなさい
>>330 頼むから、回路図は、せめてbsch3Vくらい使って書いてくれ。
>>335 読めるからいいじゃん。
再利用するならいやだけど。
とにかく、期せずして、ADコンバータの使い方を再認識するハメになったわけだが ADEN→ADMUX→使う直前にADCSRで変換開始 でいいわけ?
>>337 ANなどatmel提供のソースなどを見ているとそれっぽいね。
あとADMUX変えてからしばらくは安定しないから時間置けってのも今回初めて知った。
勉強になった。ありがとう
>>318
初期条件のセットはともかく、変換中は、 ADSCにビット立てる→ADSCがクリアされるまで待つ→値を読む→チャンネル変える→ ADSCにビット立てる→ っていう繰り返しなんだから、それでいいんですよね(要は、変換中にチャンネルを変えないような プログラムにしてりゃ問題ないんだよね?って意味です)
>>339 いや、変換中に変えてもいいんじゃない?
どっちでもどうせ有効になるのは次の変換開始時。
連続変換時などだと変換中しか変えられないし。
ただ、チャンネル変えてから電圧が安定するまで時間がいるそうなので
連続変換+チャンネル変更は実際にはあり得ない?
>>340 そうなのか。
って事は、ADMUXを切り替える→ADSCを立てる→ADSCのクリアを待つ→もう一度ADSCを立てる→クリアを待つ→値を読む
ってした方が安全?これなら確実に1ADクロック待っているよね?
まぁどうせ10bit精度でくADC読むには、64回くらい読んで平均取らないとノイズが取れないし。
× ADSCを立てる→ADSCのクリアを待つ→ADCを読む ○ ADSCを立てる→ADSCのクリアを待つ→しばらく待つ→ADCを読む ○ ADSCとADIFに1を書く→ADIFのセットを待つ→ADCを読む
>>341 Hero版とオリジナル多少違っていて混乱してきたと思ったら、版が違ってた。
hero版も最新版(G)拾ってきました。
データシート見たら連続変換+マルチチャンネル計測について触れられているね。(Hero版)
問題ないみたい。切り替えてから値が安定するまで時間がかかる(125us)のは、差動入力を
選択したときだけのようです。
というわけで、唯一の条件は、
○ADSC書き込むと、次のADCクロックでADMUXが取り込まれるから、ADSC書き込んでから
1ADCクロックはADMUX書き換えないほうが無難
だってことみたい。書き換えても問題はいいのだけど、タイミングによっては次の変換が書き換え
前のチャンネルなのか書き換え後のチャンネルのものなのかわからなくなるから困るということ
なんでしょう。
ということで
>>339 でいいですね。かき回してすまん。
344 :
774ワット発電中さん :2005/12/13(火) 09:41:26 ID:EvKX17nY
>>342 そうそう。確かシミュレータで見ていたら、
ADSCのクリアを待ってても全然動作しないので、
ADIFのセットを待つようにした覚えが。
(うろ覚えですまん)
>>344 連続変換ならADSCはクリアされないしね。
348 :
774ワット発電中さん :2005/12/18(日) 17:18:13 ID:TuS0m55o
AVRGCCで作成したコードって、公開義務ありますか?
ありません。 っていうか、当たり前。
>>348 AVRGCC自体を改変して配布するなら、ソースの公開義務があるんでしょうねぇ。
関係ないけど、バイナリのどこかにGCCを使った旨の痕跡はどっかにあるんでしょうか?
>>350 スタートアップルーチンとか、ライブラリなんかはどうしてもわかるでしょうね。
同等のライブラリを自分で作りましたといえるかもしれないが
AVRStudioのシミュレータのタイマのPWM周りが変なのいつになったら直るんだろう…直す気無し?il||li ○| ̄|_
>>348 GCCを使って作ったプログラムのソース公開義務はない。
気をつけるのはライブラリ、スタートアップルーチンもライブラリの一部。
GPL準拠ライブラリを使うとソース公開義務がグレーで、突っ込まれる可能性もある。
AVR以外ならソース公開義務のないNewlibがよく使われている。
AVRなら、avr-libc ってのを使うといいんじゃないか?さっきライセンスをちらっと
読んだだけだがBSDベースのライセンスと書いてあったからたぶんソース公開義務なし。
354 :
774ワット発電中さん :2005/12/19(月) 10:25:26 ID:05VTf/yE
AVR910のライタ(ファームは90S2313)を自作して使っていたのだが、 今度 Tiny2313 を使おうと思ったら AVR Prog のリストに載っていない。 だれか、使えるようにする方法を知っていたら教えてほしい。
>>354 ライターソフトとファームを同時改造し、
同じ書き込み手段で書き込めるターゲットのコードとすげ替える。
そんなマンドクサイことしないで、他のに移行した方がいいよ。
俺はELMさんとこのシリアルSPIブリッジを勧める。あれだとUSB経由でも問題なく使える。
356 :
774ワット発電中さん :2005/12/19(月) 12:44:03 ID:05VTf/yE
>>355 情報ありがとうございます。
シリアルSPIブリッジは、最初 AVR910のファームを書くのに使って
いましたので引っぱり出して試してみます。
>シリアルSPIブリッジは、最初 AVR910のファームを書くのに使って その、シリアルSPIブリッジのファームは…
♪卵!鶏!卵!鶏! あ〜ぁ。
359 :
354 :2005/12/19(月) 18:33:07 ID:05VTf/yE
一番最初は、同じくELMさんのCOMポート接続ライタを使っていました。
ところで、おまえら、”ポルシェのようなバキュームカーとバキュームカーのようなポルシェ” ドライブするならどっちがいい?
>360 原付しか持ってない
362 :
774ワット発電中さん :2005/12/19(月) 19:52:04 ID:uSMNrnDc
> 一番最初は、同じくELMさんのCOMポート接続ライタを使っていました。 俺今でもそれ使ってる。Tiny2313やMega64書き込んでる。
>>360 ポルシェが作ったバキュームカーは無いのかい?
トラックとか作っていたと思うけど>ポルシェ
トラックメーカーが作るのはシャーシと駆動系と運転台までなのさ。 架台(荷台のこと)にハコを載せるかタンクを載せるかとかは別のメーカーなんすよ。
>>364 メルセデスならいっぱい作っているね>トラック
ところでなんでAVRスレでこの話題が?
つながりを勘の鈍い俺に教えてくれませんか?
367 :
360 :2005/12/21(水) 12:48:55 ID:ENSAfmVf
ところで、おまえら、なに流されてんの?そんなに話題ないの?
gcc環境のバージョンアップに挑戦中! Cygwin上で binutils-2.16.1 gcc-4.2-20051217 avr-libc-1.2.6 の組み合わせで ツールがコンパイルできることを確認しました。
AVR自体は人に聞くほど難しくないから、話題がないんだろ。 応用一般についてはPICスレ見てれば事足りる。
>>369 使い方云々だけで成り立つスレっていうのも考え物だぞ
371 :
774ワット発電中さん :2005/12/21(水) 17:53:18 ID:vwwSMC3B
多分、プロはアセンブラ直打ちかIAR-Cなんだろうな。 gccも次のverupで最新の石に対応するんじゃないか。 つか、何かつくれよおまえら。
Megaになってデータのホールドタイムが長くなったから 色々と繋げやすくなったね。 USBNもパラレル接続簡単になったし。
375 :
774ワット発電中さん :2005/12/26(月) 11:30:56 ID:hTh8G6pO
おお、PASCALだ! $149でなにか一緒に買ったら$99かあ。どうしよう 昔はPASCALだったんだけどもうCに染まっちゃったなあ。。。
377 :
774ワット発電中さん :2005/12/26(月) 12:38:43 ID:JS9ZHInk
>>376 PIC用ならデモ版を使ってみたが、糞だったぞ >mikroPASCAL
AVRにはAVRCoという高級なPASCALが、以前からあるじゃないか
>>379 へんな文法的な制約がいくつかあって何も考えずに書くと
(コンパイルでエラーが出ない分)動かしてからハマるところが
いくつかあった記憶があるな。でもアセンブラで書くより楽だった。
と最近AVRを使い出したへたれの俺が叫んでますよ
それならGCCの方が楽じゃないかなと。
もうGCCになじんじゃったしな。 ライブラリもちょっと面倒なだけで充実はしてきたし
383 :
774ワット発電中さん :2005/12/27(火) 12:32:38 ID:AjfFBfR6
GCCのライブラリ集ってない? 標準入出力で浮動小数点を表示して欲しいよぉ
>>384 別に普通にprintfと浮動小数点が使えるんじゃなかったっけ?
コードふくれあがるので使ったことないけど。
AVRで浮動小数点は辛いので、可能なら整数演算に置き換えておいて、
必要に応じて小数点を挟んで表示するルーチンを組んだ方がいいよ。
たとえば12.3℃を123として計算して、これを"12.3"と表示するルーチンで
表示するとか。
MAKEFILEに明示しとかないとだめね>浮動小数点表示 こんなかんじに # Floating point printf version (requires MATH_LIB = -lm below) PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt MATH_LIB = -lm
>>385-387 トンクス
GCC Dev liteなんで、そんなもんかと思っていました。
ありがとー。
とりあえず、Makefile.templateを見つけた。 これが多分Makeのテンプレートになるんだろうとあたりをつけた。 ># Floating point printf version (requires MATH_LIB = -lm below) >PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt 部分は寸部違いなく書かれている事を見つけた。 >MATH_LIB = -lm を、その下あたりに追加すれば良いという事?
WinAVRのmfileつかうと その辺自動的に記述してくれるよ
今年は色々と作れるかな…?
USI でI2Cを実装しようとしたんだけど、どうやっても動作しないです。 環境は、IAR 4.12 kickstart JTAGICEmkII tiny2313 誰か教えてください。
>392 マスタとスレーブのどちらを実装しようとしてるのか知らんけど、 とりあえず AVR310 (I2C マスター) と AVR312 (I2C スレーブ) と どちらもサンプル実装が本家から出てるのでどんなんか見てみたら?
>>393 ありがとう。スレーブの実装なんだけど、AVR312を動作させても
正しく動作しないんです。オシロで見ても、SCLがずっとLに引かれっ放しになる。
これは変ですねぇ。
>>394 マスター側には問題ないんですね。
SCLを引いているのは確かにスレーブ側?
最初からLowに引かれてるの?それとも途中から(ACKビット時)Lowに引いてもどってこなくなるの?
とりあえずソフトはAVR312みたいだから ハードとI2C通信の対象物を晒してみては?
>>395-396 どもどもです。
仕事でも若干噛んでるので、その関係で都合のいいコードが晒せません。
簡単だけど・・・。
USIで、IIC-EEPROMのランダムアクセスの手順が綺麗に実装されたコードないかな。
どうもUSIの2線動作モードが怪しい。
シフトレジスタのオーバフロー割り込み中はSCL=Lのはずなのに、ホールドされない場合がある。
というか、このアプリノート。
ACK応答の場合に、SDAを出力ポートにして、出力した後に、入力に戻してないような。
だからSCL=Lにひきっぱなし。
ATMELのアプリケーションノートを実際に使いこなしてる人って、どの程度いるんでしょう・・。
このあたりが、アマチュアの影が薄い原因じゃないかと。
>>395 実績のある商用ツールなので、これまでも大丈夫でしたし、問題はないはずです。
ICEで調べた限り、ACK応答時に動作が正しくないです。
ちょっといじったので、それでミスしたのかもしれませんが。
>>396 それは無理なのです。ごめんなさい。
>>397 >シフトレジスタのオーバフロー割り込み中はSCL=Lのはずなのに、ホールドされない場合がある。
これはUSIではそういう設定にしなきゃだめじゃないかな。
USIWM0を1にして、割り込みを抜けるときにUSIOIFをクリアするようにしなければ。
AN312ではUSIWM0は0になってます。
SDAを引きっぱなしにしたとしてもSCLとは関係ないよね。
USIWM0はクリアだから、PORT_USI_SCLに書き込まない限りスレーブからSCLをいじることはなさそうだが・・・
IAR-Cかtiny2313自身にバグがない限り、SCLがLowに引かれるのはありえないように見える。
わかんねえ
AVR312では、開始条件で割り込みが掛かった時点で、 2線モードを切り替えて、SCLホールドするモードに切り替えてますね。 デバイスアドレス一致までは動作しました。 その次、SLA+Rの後の、ACK応答が変です。 まだ触って4時間程度なので、ちょい頭整理してから、考えます。 やっぱTWIモジュールは、便利だなぁと思った。 ちょいとスレから離れます。
>>400 SLA+Rなら
case USI_SLAVE_CHECK_ADDRESS:
if ((USIDR == 0) || (( USIDR
>>1 ) == TWI_slaveAddress))
if ( USIDR & 0x01 )
else
USI_TWI_Overflow_State = USI_SLAVE_REQUEST_DATA;
SET_USI_TO_SEND_ACK();
}
break;
SET_USI_TO_SEND_ACKでUSICNTに0x0Eが入っているので、SCL1クロックで割り込み再入
この時点はマスターがACK応答用のSCLを送り終わった直後
case USI_SLAVE_REQUEST_DATA:
USI_TWI_Overflow_State = USI_SLAVE_GET_DATA_AND_SEND_ACK;
SET_USI_TO_READ_DATA();←SDAが読み込みモードになる
というわけで、Masterがデータを送り始める前に読み込みモードになっているように見えます。
>>401 なるほど。勉強になります。大変助かります。
オシロで波形を見ると、ICEmkIIで SET_USI_TO_SEND_ACK(); の時点で、既にSCL=Hに戻ります。
見ためではACKを返したような形なのですが、正しくないようです。
どうも全体の動作のフローが読み取れずに、間違いを書いているかもしれません。
その点はご容赦下さい。
>>402 1.SLAVEからSDA=Low(ACK送信)
2.MASTERからLowにされていたSCL解放、Highへ
3.MASTERからSCL=Lowへ
4.SLAVEからSDA解放(High)、次のSDA受信に備える
の順序なら問題ないと思いますが、1.より先に2。が起こっていると言うことでしょうか?
MASTERのクロックが速すぎると言うことはありませんか?
AVR312はSLAVEからの同期機能(処理が終わるまでSCLをLowに引く機能)はありませんので、
MASTERが速すぎるとアウトだと思われます。
ありがとうございます。 mega48あたりで、マスター装置をつくろうかな。 ところで、I2Cのマスター装置って、皆さんナニ使ってるのかな。 自作?
>>404 マスターは自作だな。
たいがいスレーブがEPROMとか既成のスレーブってパターンが多いもので。
趣味じゃなくて仕事なら逆のパターンの方が多いかもね。
406 :
774ワット発電中さん :2006/01/08(日) 19:07:06 ID:Ohzej8dq
リセット命令に関して質問です。 WinAVRを使用してC言語でファームかいてます。 処理中にリセットを掛けたいのです。例えば、 Reset(); で処理が電源投入時となるとか。 インラインアセンブラとかいうので、 $000 にRJMP すればOKとかそんなんでしょうか。
>>406 プログラムのサイズによってはRJMPで0番地に届かないから、IJMP命令で飛んだ方がいいかな。
スタックなどはちゃんと初期化されるだろうけど、各種IOレジスタは明示的に初期化していないものは
初期化されないので、注意が必要。
408 :
406 :2006/01/08(日) 20:59:13 ID:Ohzej8dq
早速の返事ありがとうございます。
>>407 IJMP了解です、となると私の考えは的外れでもなかったみたいで
うれしいです。レジスタの初期化も含めmain()の最初に用途に
応じ抜け目なく処理します。
ウォッチドッグリセットかける と一番手っ取り早いかも。
出力ポートからリセットピンにリセット信号を送るとか。
>>409 WDT設定していれば、割り込み禁止して無限ループすればウォッチドッグリセットかかるな、たしかに。
412 :
406 :2006/01/08(日) 23:03:09 ID:Ohzej8dq
恥ずかしい限りですがインラインアセンブラがうまくいかず
>>409 さんの通りWDTでやってます。
しかし、INT0を電源/Playボタンにしており、兼ね合いと
いいますか状態遷移をうまく構築できず悩んでます。
>>410 さんの方法も思いつきましたが、力技的に感じて敬遠してます。
もっと修行せねば・・・。
>力技的に感じて敬遠 ハード屋から見れば唯一の正道なのだが
414 :
406 :2006/01/09(月) 00:53:32 ID:2V4kIyrK
うーん、起動時のポートの状態によってはすごく不安定に感じてるんですよね。 感じてるだけじゃだめなのはわかってるのですが、当方アホなもので・・・。 恥ずかしながら私も一応、ハード屋(F/W、S/Wもやらさてますが) 一年生だったりします。BBSは離れひとまず色々探ってみることにします。 ありがとうございました。
MP3プレーヤでも自作ってるのか? ガンガレ
>>414 リセットにポートをつないでやる場合、
リセット直後ポートはリセットのためのLow→High出力(PORTx=1,DDRx=1)から
Hi-Z入力(PORTx=0,DDRx=0)に移行していくと思われます。
PORTxから先にクリアされれば一瞬Lowになるのですけど、
かなり短い時間だろうから、ローパスになるように小さいキャパシタでも入れたら大丈夫でない?
AVRの場合は、電源ON起動時にPORが効くからポートはHi-Zが保証されている。 目立のマイコンだが、電源ONでポート状態が不定になる(たとえ/RESが入ってても水晶が発振開始するまで)マイコンもあって、はまったことがあったな。
>>417 この場合はパワーオンリセットじゃない気がするんだけど。
RESETがLowに引かれている間って、ポートはどうなっているんだろ?
もしその時点からHi-Zなら直結だけじゃだめってことか。リセット回路経由?
リセットがLOWに引かれてポートがHi-ZになってHIGHに戻っても 一旦かかったリセット状態はタイマで一定時間保持される。
リセットを自分自身で直接引いた場合、LOWになった瞬間に内部リセットがかかる。 その後どこまでポートがLOWのままかは保証されていないので、リセット最小パルス幅も保証できない。 したがって、遅延タイマーが起動するかどうかも保証されないので、最悪の場合不完全なリセットとなり暴走する。 以上は予測なんですが、私が実際に実験した90S2313は不完全リセットが発生しました。(どこからも飛ばないはずのアドレスが実行された等) MEGAでは試していませんが、その辺はアーキテクチャ的に変わっていないので同じだと思います。 外部にリセット回路作るのがメンドイならWDTリセットが正解。←これでちゃんと動いてます。
ならば、CRで若干の時定数持たせればいいんじゃないかなぁ。 RESET入力には大きなヒステリシスがあるから、最低LOW期間くらいは確実に確保できる。
fastAVRとかのPDF版日本語マニュアル出してたところ、ずっとサーバーが落ちっぱなしだね。 潰れた???
423 :
420 :2006/01/11(水) 01:58:07 ID:nuBzVWjQ
リセット端子にコンデンサってのも実験したので追記。 BODの無い90S2313では、電源投入時か断時かわかりませんが、 やはりプログラムカウンタが変なところに飛んでいるようで、 どこからも読んでいないEEP書き換えルーチンが実行されて、 EEPの内容が書き換わりました。(アドレス00hではなくランダム) もちろん、リセットピンのプルアップ抵抗と並列にコンデンサ放電用の ショットキーダイオードは入れていました。 やはりMEGAでは試していませんが、BODがあるから大丈夫かなと思ってます。
424 :
420 :2006/01/11(水) 01:59:03 ID:nuBzVWjQ
あ、ゴメン、コンデンサ入れて自分で引くのは試してない...
BODなしAVRでEEPROMを使うときは外付けBODが無いとカナーリ高い確率で飛ぶね。 FAQ級だったけど、あまり知られていない悪寒…。
>422
ここですか?
ttp://micomfreaks.hp.infoseek.co.jp/AVR.htm >423,425
以前に色々試験しましたが90S2313でプログラム内で書き込みをやっている部分があると
かなりの確立でEEPROMのデータをつぶしますね。読込のみしか使用していないと大丈夫だけど
つぶすのは電源をOFFにする時みたいです
BODを使用すると改善されます
またMEGAでも古いタイプのMEGA8だと内蔵BOD有効でもごくまれにつぶれた時がありました
MEGA88では問題ありません
ほんとにFAQ級なんだけど知らない人も多そう・・・
427 :
774ワット発電中さん :2006/01/11(水) 10:36:14 ID:v+69aSxG
>>406 main() の最初にラベルを書いて goto 命令は使えないか?
>427 mainの前にcrt0とかの初期化ルーティンがある場合は駄目だろ
429 :
774ワット発電中さん :2006/01/11(水) 15:17:56 ID:v+69aSxG
ハード的にリセット掛けても初期化ルーチン通過して mainにたどり着くんだから動作的には一緒でしょ
>429 そうですね
432 :
774ワット発電中さん :2006/01/12(木) 09:01:39 ID:gjEsSW69
main() が始まる前のスタートアップルーチンで重要なのは STACKの設定だろうから、 こんな感じかな? main() { LABEL ここで STACK の再設定 init(); I/O と 変数の初期化 while(1) { | いろいろな処理 | if(条件) goto LABEL; } } どうだろう
433 :
774ワット発電中さん :2006/01/12(木) 10:42:18 ID:FKAwn+/Z
WDTとかのハード的なリセットに頼ると、 リセットから初期化終了までの間、出力が浮いてしまうのが 問題になることがあるので、432 のようなことをする場合が ごく稀にあるな。 結局気持ち悪いので最後にはハード的にプルダウン入れて WDTに戻すんですがね。
434 :
774ワット発電中さん :2006/01/12(木) 13:28:06 ID:jsqHnFWE
気持ち悪いも何も、通常処理でも出力端子はpull-up, pull-down とておかないと、機器が勝手にONしたりするので必須じゃないの?
よっぽど基盤面積の縮小とかの要求がなければ入れんといけんだろうなぁ
436 :
774ワット発電中さん :2006/01/12(木) 22:37:12 ID:Ao4jMwdb
megaで一番使いやすいのってなに?
用途によって使い分け
>433 「出力が浮いてしまうのが問題になる」所でpull省略する事自体が問題だろう。 「出力が浮いても問題無い」所は要求によって省略する。 そもそも、パワーオンからポート設定が終了するまでだけでも浮いてんじゃん。
439 :
774ワット発電中さん :2006/01/13(金) 10:05:30 ID:PEdAT+HD
>>436 先ず、用途に応じて何種類かチョイス。
その中から扱っているショップの多いものを選択。
万一壊して代わりを買おうと思ったら「売り切れです」となったらアウト
441 :
774ワット発電中さん :2006/01/13(金) 11:59:46 ID:+sFeRfNf
>>426 データEEPROMの0番地がよく潰れる っていうやつじゃなくて?
ソース不明なんだが、なんかそういう話は確かに聞いた事があるので、
0番地は使わない用にしている。
ただ、Mega8をいつも使っているけど、今まで幸い、データが潰れた事はない
>441 EEPROMの0番地とは関係ないです(古いAVRでそういうErattaもあったようですが) 特定の番地ということではなくところどころデータがつぶれます。 Mega8を200台ほど出荷して10回程そういうことが起こった Mega88に変更してからは全く起こっていない。 また不具合の起こったMega8に外部BODを追加したものはその後
きれちゃった・・・ 現在は無問題
>>442 書き込み時に電圧不安定だとやばしってことね。(BODでそういうときの動作を止めればOK)
読み込みだけでも書き込みに化けることがあるというのはほんと?
445 :
420 :2006/01/13(金) 16:47:41 ID:D33MModP
>442 0番地が壊れるのは、書き込み中にリセットされた場合の話。 >444 BODが無い場合、最低動作電圧付近で正常に動作せず、 プログラムカウンタ(又は命令自体も)むちゃくちゃなものが実行されて 消えるのだと思います。 プログラム内に書き込みのコードがあるが、どこからも参照されないように していても書き換えられました。 そもそも書き込みのコードが無ければどうなのかは実験していません。 MEGA64でBODをONにしたら、数万回電源再投入をしても発生しませんでした。 したがってbrown outが原因だと思っています。
>445 >プログラム内に書き込みのコードがあるが、どこからも参照されないように >していても書き換えられました。 >そもそも書き込みのコードが無ければどうなのかは実験していません。 それ以前にチェックしたことあります 読込のコードだけで書き込みのコードを書いてなければ大丈夫でした。 EEPROM書き込みするならBODは必須ですね
>>446 ということは、EECR書き込み時、ビット化けするのが原因ってことですか。
ビット化けが起こるんなら、読み込みコードしか無くても発生するはずでしょうが! プログラムカウンタがぶっ飛んでる証拠。
すごくタメになるレスが続いてるなぁ。 感謝感激。 BOD抜いてmega48で電圧がゆるりと降下するシーンで EEPの0番地が死んだことある。BODつけて激しく安定。 tiny25とか、保護フラグ3で eepromの読み出し不可能になる不具合は あれってどうなんでしょうね。 tiny24も実はすこし触ったんですが、eepromに同じバグあり。 あと、USIの2線モード 2ndでSCLが lowホールドされない。
もう1つ聞きたいのだけど、BODやWDT、内臓電源を使うと、 消費電力が100uAとかのレベルで増えるでしょう? 極限まで減らしたいときに、電源を信用してBODをなくし、 自分を信じてWDTを外したりと、考えてるんだけど、どうおもいますか? 上を読んでたら、やっぱつけたほうがいいのかな、と思った。 でも、消費電力が・・・。
既に書いてあるけど、信用できる電源でもコンデンサがついていたら、 電源OFFにアウトだろ。瞬間でゼロVにするような回路があれば別だけど、・・・ 要するに、BrownOutで問題が発生するような構成なら、BOD有効にするしかない。 問題ないなら、無効にしてもいい。 WDTは自分を信用してOFFにするってのはありだろ。 WDTはBODの10倍くらい消費するし、WDTある限りスリープに出来ない。 BODの分はスリープ状態で稼ぐ。それでもキツイなら別のマイコン探すべきだな。 以上、一般論。
MEGAだと自分でコアクロックを変えられるから、 処理内容によってクロックを変えるってのもいいな。 一般的に、クロックと消費電流は比例するし。
>>447 読み違えたすまん。読み込みのコードだけなら誤動作しないわけね。
馴れ合いとマターリの区別がついていない2ちゃん初心者なのでは? 何でも殺伐としてれば良いってものじゃないんだけどな。
WinVARってtiny12には対応してない? アセンブラじゃ俺にはきつい。
>>456 さすがにtiny12となるとコンパイラでは難しい。
32個のレジスタはメモリマップ上にも乗っているので
>>457 のような裏技はあるけどね。
そんな苦労をするくらいなら、アセンブラを学ぶか、
gccが一応対応しているtiny13あたりにデバイスを変更するかを勧める。
512ワードくらいならアセンブラを強く勧める。
他の人に引き継ぐ必要がないものなら、マクロ使いまくりで使いやすくする手もある。
AVRは分岐命令が割と使いやすいのでPICなどよりは敷居が低いよ。
>マクロ使いまくりで使いやすくする手もある。 WinAVR(というかavr-as)使うならやらないが吉。書くときは良いがAVRStudioでのデバッグ時にソースレベルデバッグが出来ないため死ねる
460 :
456 :2006/01/15(日) 18:30:31 ID:azVcf4t6
みんな、ありがとう。 素直にアセンブラするとこにします。 tiny13は対応してるんですね。SRAM積んでれば対応と認識していいのかな。 ついカッとなって共立電子で買ったやつだからなぁw あほな頭で頑張ってみます。
宣伝すんな。digikeyでまとめ買いのほうが全然安い。
>>462 25個以上なら、DigiKeyの方が安いんですかね? そんなに要らんのですが。
464 :
456 :2006/01/16(月) 00:35:00 ID:NVTPgLOM
おおお、なんか良さそうなショップ情報ありがとうございます。 日本橋と大須に交通費なしでいけるのでどうにも送料が悔しいのですが、 送料払ってもこっちのほうが安そうだ。 あと便乗で申し訳ないのですが、「共立電子(デジット)のAVRドングル(Printerポート)。 ジャンパ1つでSTK200互換になり多くの書き込みプログラムが利用可能。 」 これってどこをジャンパするんでしょうか、どこからきた情報なのか見つけられず。
>>464 2-12をショートしてSTK200付属ライタ互換。
3-11もショートしてSTK300付属ライタ互換。
最初の出所はSTK200を解析した結果だろうけど
BasconBasicコンパイラのマニュアルに書いてあったりはする。
>>463 ついでにいうとCompass--Labだと1個売りで1個あたりの値段がOPTIMIZEより安い
誰かAVR-Wikiのパスワード変えた?ATmega88でログインできません。 あれって誰でもパスワード変えられちゃうので、そのへん禁止できたらいいんだけど。
>>459 単純な物に限定すれば(マクロ内部をデバッグできなくても問題ない信頼性付き)そう問題ないよ。
リテラル加算とか、16bit演算などをマクロ化するだけでもいい。
(リテラル加算マクロは演算結果のフラグが変なのに注意ですが)
アセンブラなら普通にAVRStudio使う方が吉ですね。
>>463 digi-keyでtiny13のDIPは1個売りで164円なので、ここにあがった中では一番安い。
でも送料手数料がアレなので、結局まとめ買いか他に買う物がないと高くつく。
>>470 digikeyは5000円以上10000円以下にしないと損をする。と、思って
いらん物まで注文して、後で冷静に考えるとやっぱり損をしている。
>471 正確には5001円以上10000円未満ね
473 :
774ワット発電中さん :2006/01/16(月) 16:31:10 ID:pVzP6J0x
>>471 8000円以下だと、消費税が付かなかったんじゃなかったっけ?
違っていたらごめん
>>473 さっき見たら「送料込みで」1万円以上だと消費税分上乗せすると書いてあった。
送料2000円だっけ?それなら商品代8000円から引っかかるな。
>>467 不便で申し訳ないです。
とりあえず事故の時のためにIDを2つにしておきました。
今日tiny13Vが届いたけど、気づけばデジットドングル+PonyProg2000じゃ 非対応だった…orz 面倒になってきたから、本家のライター+AVRStudioにしようかな・・・。
>>477 ありゃあ、tiny12/15はOKなのにねえ。yaapもだめみたいね。
avrsp+STK200はOKみたいよ。
479 :
477 :2006/01/18(水) 22:50:00 ID:O5h75WOQ
すばやいレスどうもです。 それ、今elmみて気づきました。 CUIかぁ…とりあえずSTK200へ改造へはしてるので 自分の環境で実際にできるか否か試してみます。 余計な手間考えるなら、純正買ってお金で解決かなぁ…。
480 :
477 :2006/01/18(水) 23:27:50 ID:O5h75WOQ
ProgrammersNotePadのショートカットも使えてかえって便利になった。 デジットドングル(STK200化)+AVRSPで Tools - Option - Tool のAdd name:ROM Write Command:(AVRSPへのパス)\avrsp.exe パラメータ:%n.hex -pl1 This tool will modify the current file をチェック Console I/O のCapture Output? はチェックはずす。 って項目追加して使えました。 誰かの何かの役にたてば…。
tiny13/uispのパッチ。うちではこれでavr910(ファームにデバイスコードの 追加などが必要)/stk200は使えてる ----BEGIN BASE64----(uisp-20050207-tn13.diff) LS0tIHVpc3AtMjAwNTAyMDcvc3JjL0F2ci5oLm9yaWcJU3VuIE1hciAgNiAwNTow NzozOSAyMDA1CisrKyB1aXNwLTIwMDUwMjA3L3NyYy9BdnIuaAlTdW4gTWFyICA2 IDA1OjA5OjE0IDIwMDUKQEAgLTEzMSw2ICsxMzEsMTEgQEAKICAgICAgICAgICAg ICAgICAgICAgfCBBVlJfRlVTRV9SRCB8IEFWUl9GVVNFX05FV1dSIHwgQVZSX0NB TF9SRCBcCiAgICAgICAgICAgICAgICAgICAgIHwgQVZSX0ZVU0VfSElHSCB8IEFW Ul9GVVNFX0VYVCkgCiAKKworI2RlZmluZSBBVlJfVE4xMyAoQVZSX0JZVEVfUE9M TCB8IEFWUl9QQUdFX1BPTEwgfCBBVlJfTE9DS19CT09UIFwKKyAgICAgICAgICAg ICAgICAgICAgfCBBVlJfRlVTRV9SRCB8IEFWUl9GVVNFX05FV1dSIHwgQVZSX0NB TF9SRCBcCisgICAgICAgICAgICAgICAgICAgIHwgQVZSX0ZVU0VfSElHSCkKKwog I2RlZmluZSBBVDg5UzUxIChBVDg5UyB8IEFUODlTX0JZVEVfUE9MTCB8IEFUODlT X0xPQ0tfUkQ0MzIpCiAjZGVmaW5lIEFUODlTNTIgKEFUODlTIHwgQVQ4OVNfQllU RV9QT0xMIHwgQVQ4OVNfTE9DS19SRDQzMikKIAotLS0gdWlzcC0yMDA1MDIwNy9z cmMvQXZyLkMub3JpZwlTdW4gTWFyICA2IDA1OjA5OjI3IDIwMDUKKysrIHVpc3At MjAwNTAyMDcvc3JjL0F2ci5DCVN1biBNYXIgIDYgMDU6MTM6MjMgMjAwNQpAQCAt NDksNiArNDksNyBAQAogICB7ICJBVDkwUzEyMDAiLCAgICAweDkwLCAweDAxLCAg IDEwMjQsICAgMCwgICA2NCwgIDQwMDAsIDQwMDAsIEFWUl8xMjAwIH0sCiAKICAg eyAiQVR0aW55MTIiLCAgICAgMHg5MCwgMHgwNSwgICAxMDI0LCAgIDAsICAgNjQs ICA0NTAwLCA5MDAwLCBBVlJfVE4xMiB9LAorICB7ICJBVHRpbnkxMyIsICAgICAw eDkwLCAweDA3LCAgIDEwMjQsICAgMCwgICA2NCwgIDQwMDAsIDQwMDAsIEFWUl9U TjEzIH0sCiAgIHsgIkFUdGlueTE1IiwgICAgIDB4OTAsIDB4MDYsICAgMTAyNCwg ICAwLCAgIDY0LCAgMjAwMCwgNDAwMCwgQVZSX1ROMTUgfSwKICNpZiAwCiAgIC8q IDEyViBzZXJpYWwgcHJvZ3JhbW1pbmcgb25seTsgaGVyZSBqdXN0IGZvciB0aGUg ZXZpZGVuY2UgKi8KLS0tIHVpc3AtMjAwNTAyMDcvc3JjL0F2ckF0bWVsLkMub3Jp ZwlTdW4gTWFyICA2IDA1OjE5OjI4IDIwMDUKKysrIHVpc3AtMjAwNTAyMDcvc3Jj L0F2ckF0bWVsLkMJU3VuIE1hciAgNiAwNToxOTo1MiAyMDA1CkBAIC03Myw2ICs3 Myw3IEBACiAgIHsiVE4xMCIsICAgMHg1MSwgIkFUdGlueTEwIiwgIGZhbHNlfSwg LyogcGFyYWxsZWwgKi8KICAgeyJUTjEyIiwgICAweDU1LCAiQVR0aW55MTIiLCAg ZmFsc2V9LAogICB7IlROMTUiLCAgIDB4NTYsICJBVHRpbnkxNSIsICBmYWxzZX0s CisgIHsiVE4xMyIsICAgMHg1NywgIkFUdGlueTEzIiwgIGZhbHNlfSwKICAgeyJU TjE5IiwgICAweDU4LCAiQVR0aW55MTkiLCAgZmFsc2V9LCAvKiBwYXJhbGxlbCAq LwogICB7IlROMjgiLCAgIDB4NUMsICJBVHRpbnkyOCIsICBmYWxzZX0sIC8qIHBh cmFsbGVsICovCiAgIHsiVE4yNiIsICAgMHg1RSwgIkFUdGlueTI2IiwgIGZhbHNl fSwK ----END BASE64----
483 :
477 :2006/01/19(木) 22:58:29 ID:MO+09c3/
レスどもです。
>>481 ごめんなさい、Wikiの使い方わからないです。
IDとパスなくても書き込めるんでしょうか。
>>482 そのファイルをどう使えばよいのでしょうか。
とりあえずBASE64デコーダ探してきます。
WINAVR200600119出てたけど MAKEFILE 中に EXTRAINCDIRS = (WINAVRをインストールしたディレクトリ)/avr/include の一行を入れないとちゃんとMAKEしてくれないみたい。 AVRFREAKSのGCCフォーラムでもこの問題あがってるっぽ
>485 音しか出ない orz
488 :
485 :2006/01/21(土) 14:59:16 ID:YEvF7b2r
>>488 はぅ・・・・PWMサウンドも結構いけるんだね。
tiny45って4倍PCKクロックで250kHzPWMなんていけるんだ。びっくり。
はう、すごいよー。
>>489 tiny25/45/85は、いろいろついてて使いやすいよ。
ADC, 温度計, USI, 高速PWMとか俺様的には最強の8pinマイコン。
のぞきに来たら
>>346-347 でガイシュツだった>AVR解説本
誰か買った人いる?
俺、車の故障のため小遣いがなくて買えない〜
>>491 AVR内部に温度計まで内蔵するとは、すごいな〜。
秋月で安く買えるようになったらPICから移るのに………orz
データシートからするとあんまりアテにならない<内蔵温度センサ
>>494 これで内蔵RC発振を時々校正したらそこそこ正確にならんかな?
普通のAVRの背中にサーミスター貼り付けてADC4につないでプルアップしても同じか。
>496 >これで内蔵RC発振を時々校正したらそこそこ正確にならんかな? マニュアルに「温度測定の精度は(バンドギャップ)基準電圧校正後で±10℃」となっているから厳しいかな? ちなみに内蔵RC発振器の精度については以前ATmega48で試したことがあるけどドライヤーでちょと暖めただけで通信エラーが頻発しました。
>>497 プルアップ抵抗のバラツキなんかと一緒で製造上の問題でばらつくんですかねえ。
個別に校正しても±10℃ってのはきっついなあ・・・・異常高温でシャットダウンするくらいしか使い道がない?
シャットダウンするなよ ファンコントロールしたり発熱源への電流を止めたりで温度を下げようよ
500 :
498 :2006/01/26(木) 17:40:35 ID:+GaDRLVv
>>499 AVRが発熱源や冷却装置などをコントロールしていないつもりで書いてしまいました。
普通内蔵温度計をどう使うかって考えれば
>>499 ですね。バカでした>おれ
501 :
774ワット発電中さん :2006/01/26(木) 23:26:38 ID:Wvz910P+
502 :
774ワット発電中さん :2006/01/26(木) 23:37:44 ID:idCVV7xY
AVRって細かいバグが多いなぁ。 このあたりを、丁寧に対応してくれる日本代理店があればいいんだけども。
>>502 今のところ、Errataがいちばん丁寧で的確だな。
>>501 発振周波数が温度計に影響するという話ではなくて、
温度取得→温度依存の内蔵発振を校正
を定期的にやればRC発振誤差が減る??という話。
アブネーWinAVR20060125入れちゃう所だったよ〜 直前にWiki見て思い留まった。
506 :
774ワット発電中さん :2006/01/27(金) 17:09:20 ID:8ie5OaJn
>>505 特に問題なく動いてるよ。修正前(ファイルサイズが24,683,835Bのやつ)を
持ってったんじゃない?再ビルド後はファイルサイズ24,713,318Bだよ。
にしても、せめてファイル名ぐらいかえてくれりゃいいのにね。
(両方ともWinAVR-20060125-install.exe)
508 :
501 :2006/01/28(土) 00:38:57 ID:Tj047zvA
>504 >496 >内蔵発振を温度取得で校正。了解です。カン違いスマソ 現実的にはカウンタやソフトタイマーのN数を調整することになるのかな。
>>508 OSCCALレジスタの変更がいいんじゃね?
やっとDigi-KeyからAVRISP2が発送された。 在庫表示は0のままだけど、取り寄せだったのか?
>507 WinAVR-20060125-install.exeの両方ともAVRStudio4.12SP1でgccを使用すると固まります
512 :
774ワット発電中さん :2006/01/28(土) 20:40:37 ID:VAeCfFdB
どこかのホムペに、AVRはオーバークロックに強いって書いてあったので、 tiny26に20MHzのセラロック付けてみた。 動かなくなった。 瞬殺だったようで、発熱すらしてない。
513 :
508 :2006/01/28(土) 23:44:47 ID:Tj047zvA
>509 OSCCALはリセット時の自動設定だけだと思っていました。 手持ちのTiny2313で周波数数が変わるのを確認。おかげで1つ賢くなりました。
>>512 もしかしてそれ秋月のtiny26Lじゃね?
2.5倍のオーバークロックは流石に・・・・
Lなしだと動きそうだな。代表特性グラフは20MHzまでのびてる。
しかし、発熱すらしてないって・・・動いているかどうか判断できるほど発熱するんかな?
(20MHz-5Vで25mA、125mW程度・・微妙だな)
>>514 といいつつ16MHzでは動いてるけど>うちの秋月26
>>513 それを使うと(あんまりお勧めは出来ないが)動作周波数の
アクティブ制御ができるお。若干タイミングが厳しい時に、
敢えてクロックアップしたりしてるw
初めからゲフンゲフン
ELMさんとこのUSBISPを作ってみたいんじゃけど、90S2313のとこをtiny2313に置き換えたりできるん?
>518 ソースのincludeをattiny2313に換えてビルドしたらできるよ。 今のところまったく問題なし
>>519 ありがとう
ということは別に2313にこだわらんでもtiny26とかmega48でも配線さえちゃんとすれば行けるんかね
521 :
774ワット発電中さん :2006/01/29(日) 14:29:59 ID:e2F0Mkut
>518 hexファイルそのまま書いても動きました。
>>522 成田を15時頃出たから明日には届くと思う。
欲しい情報は何?
ただ、明日、明後日は修羅場なので、レポは水曜日以降になると思うけど。
>>520 Tiny26の場合はUARTない分だけは苦労するかも。
>>512 発熱すらしてないのなら、単に発振してないだけと思われ。
セラミック振動子では12M以上は不可となってる。
製品に16M世羅ロック使っちまったよ…orz
529 :
774ワット発電中さん :2006/02/01(水) 10:28:14 ID:5upcgq1+
以前 Mega8だったがユニバーサル基板でテストしたときは16MHzセラロックでOK。 その後 パターンを起こしたら発進しなくなった。 幸い、コンデンサ用のランドも設けていたので水晶に交換して助かった。
>>526 AVR32いいね
デジキーや秋月で小売すれば使ってやる
>AVR32 8bitAVRとは全然関係ないようだね。
>>529 俺もMega64のパターンはセラロックと水晶どっちもいけるようにしてる。
ところで、勘違いされそうなので整理しとこう。
512は(もしかすると527も)Tiny26で仕様外となる12MHzオーバーの
セラロックを使ってしまった。
529はMega8で仕様内である16MHzセラロックで動かなかった。
ということで別問題ね。
MEGA8で16Mのセラロックが発振しなかったのって、CKOPTの設定をミスってるのかも。 デフォルトのままだと8Mまでのようだ。
534 :
774ワット発電中さん :2006/02/01(水) 17:14:04 ID:36FOSFOO
>>530 AVR32の何が良いのか、もうひとつわからんな>じゅんこちゃん
もうちょっと具体的に書けよ。
じゅんこちゃんは記事を書いた人
DigikeyでAVRISP mkIIの発送予定日が2006-04-07になっている まじっすか
じゅんこちゃんはコスプ好きかな?
539 :
774ワット発電中さん :2006/02/02(木) 22:29:42 ID:ReseoGJH
じゅんこちゃんは、〜 said〜 (〜は〜と言っている) ばっかりだ。 日経バイト誌もこんな言い方の記事が多いね。大抵、肩書き付きで 人を紹介してる。企業名なんたらシステム開発室室長とかね。 英語圏のライタはみんなこんなのかな? 書いてる本人自身はよくわかってないのだろうな。 うんざりするので、日経バイト買うのやめた。おっとスレ違いスマソ
>〜 said〜 (〜は〜と言っている) それは伝聞と言って証拠にはならないんですよ
プレスリリースなんて9割方はホラだからな。
>>541 プレスリリースですらないんじゃない?
ATMELサイトにもみつからないし。
偉い人の独り言、夢、時に風説の流布(wをとりあえず書いてみました。
「こんなこというてます」ってレベルです、ってことなんでしょうね。
544 :
774ワット発電中さん :2006/02/05(日) 19:51:41 ID:ftZ2RWLO
おまえらようやく digikey にて ATmega2561 が販売開始ですよっと。 しかしまあ、上位クラスについては、こういうのを無理して出してくれるよりも AT91SAMのI/Oの出力電流を強化してくれるほうが有難いんだけどなぁ。
256K版AVRはスタック構造が変わる(スタックするPCが増える)から、一部書き直しが必要だよ。 その分遅くなるし、RAMが多い以外はいいこと無い。gccもまだ対応していないと思った。
Mega88.pdf読んでいます 教えて下さい。 タイマ/カウンタ2の非同期動作で tosc1から入力すれば cpuクロック近くまでカウントできるのでしょうか?
>>548 ASSRレジスタのビットEXCLK=1だと外部入力が可能になる。
しかし、
>16.9.2. タイマ/カウンタ2 非同期動作
>■ CPU主クロック周波数はタイマ発振器周波数の4倍より高くなければなりません。
だそうな。
90S2313について質問させてください。 パワーダウン動作のスリープから復帰するには、 INT0ではLowレベルじゃないと復帰できない気がします。 立上り、立下りでは無理な気がします。 みなさんもそうではなかったでしょうか、ご意見願います。
>>549 ありがとうございます。
周波数カウンタ機能を持たせたいのですが適当な構成はどうしたらいいでょうか、
CPUの4MHzクリスタルを基に25MHz位までを分周後入力して 1K,100,10,1Hzで測りたいです。
無理でなければ他にPWMでアナログ電圧を作りそのVCOを制御したいのです。
>>550 まぁコアクロック停止したらエッジ検出なんぞ出来ないからなぁ。
>>551 外部に8bitカウンタICを入れてこれをプリスケーラにして入力するしかないかな。
読み取りはラッチICで捕まえてから読む
内部のカウンタと外部のカウンタ、そして内部カウンタの桁上がりそれぞれ
同時には取得できないから結構工夫が必要。
でも、普通はカウンタ全部を外部32bitのカウンタとかにして
一斉にラッチ、読み取りするような気がする。CPLDとか使って。
>>554 TNX
外部のカウンタのラッチICで捕まえるにはそのICは同期式が必要でしょうね、
ゲートするならカスケードのもので使えそうですけど。
picだとcpuだけで60MHzは楽々らしいですが
avr使いたいのでもっと考えなくては。
受信機スレの人か。 下限がいいとこ5MHzと分かってるならそれを主クロックとして、 基準周波数のほうをカウンタにいれる方法があるが。 主クロック入力は一応100MHzに耐える、ことになっていた(w 今のデータシートから消しやがったので現状のプロセスがどうかは知らん。 ちなみにPICもスペック上はプリスケーラ入力は20MHzまで。 60MHzはあくまで実力値。比較するならAVRも実力値で。
>>556 その方法では1Hz単位の値はでないわな。基準周波数の刻み幅で分解能が決まってしまう。
1Hz単位でなくていいなら外付けプリスケーラでいいわけだし。
AVRのカウンタ入力の実際の限界ってどれくらいなんだろ?
>>549 は「タイマ発振器周波数」とかいてあるので、外部信号入力のことではない
気がするのですが。
>>557 コアクロックとの同期をとるため、入力は1/4以下でなければならないとなってるが。
もしかしたら、Timer2関連レジスタにアクセスするときカウンタ入力が
止まってればいけるんじゃないか?
>>558 とすると、きっちり1秒でカウンタを止めて読み出す分にはこの制限がないと?
560 :
774ワット発電中さん :2006/02/07(火) 17:40:04 ID:pruhfQBv
一例として、90S2313-10PCでクロックに12.8MHzを使うと6MHzはカウントできた。 しかし、50%の6.4MHzはカウントできなかった。5Vです。
>>560 いやそれは同期カウンタですよね。2313に非同期カウンタはないし。
mega88ないから試せないので試してくれる人を待ちます。
562 :
550 :2006/02/07(火) 19:47:57 ID:YOakNtHv
ありがとうございます。 クロックが走ってないとエッジが検出できないんですか。 エッジの検出のメカニズムを理解してないのでそれが当たり前なのが わかりませんでした。 データシートは日本語訳のものを読んでますが、ちょっとどこの文章が それを意味しているのがわからないです。 「パワーダウン動作からの起動復帰にレベルで起動された割り込みが使用されるとき、このLowレベルがリセット遅延時間(tTOUT)より長い時間 保持されなければならないことに注意してください。そうでないとMCUは起動復帰しません。」 これでしょうか、つまりこれはLowレベル割込みで ないと意味をなさないという解釈でしょうか。 宜しくお願い致します。
>>562 正解オメ。
エッジ検出の回路はFFを2-3個直列にするだけだ。マニュアルのどっか(I/O辺り)に書いてある。
>>562 滅茶苦茶な日本語訳だな。オリジナルの方がはるかに分かりやすいぞ(w
誤解するのも無理もないか。
>>562 その前の文です。
>外部リセット、(許可されていれば)ウォッチドッグリセット、INT0またはINT1の外部レベル割り込みだけがMCUを起動復帰できます。
・・・・実は俺も最初誤解したんだけどね。
「外部レベル割り込み」=「外部割り込み−Lowレベル発生設定」とは最初は気がつかなかった。
原文でどう書いてあるか見てみたら
>an external level interrupt on INT0 or INT1 can wake up the MCU.
なんで、まあそのまんまです。
>>564 そうか?変な訳でもないと思うけど。
ちょっと句読点を足せばもう少しわかりやすいかな、と思うくらい。
566 :
548 :2006/02/07(火) 22:03:17 ID:vNvVKmhx
TC2の非同期動作で外部入力時カウント中にアクセスしなければその間は 主クロック無関係になりそうな気がしますよね、 そうならpic以上のカウントできそうですけど。 この出力(ovf)のカウントはcpuじゃできないでしょうか、 できれば他のカウンタは基準を作るとかPWMに使えるので。
>>566 オーバーフローなら1/256の頻度でしか出ないので、こっちの読み出しは大丈夫じゃないかな?
といってもシステム20MHz、外部60MHzなら80クロックに1回の割り込み処理になるが。
非同期動作中TCNT2を読み出すのはややこしそうだね。
ゲート動作は、TCCR2BのCS22-20でできそうだな。
TCCR2B-CS22-20を0にして
ASSR-TCN2UBがクリアされるのを待ってからTCNT2に0を書き込み
TCCR2B-CS22-20を1にして
きっかり1秒後、TCCR2B-CS22-20を0にして
ASSR-TCN2UBがクリアされるのを待ってからTCNT2を読み出し
オーバーフロー割り込みでカウントさせた値を読み出し
こんなもんでいいのかな。
568 :
548 :2006/02/07(火) 23:22:16 ID:vNvVKmhx
>>576 ありがとうございます。
感じが少しわかってきました、とはいってもZ80以来なのでこれから何ヶ月掛かるかわかりませんw
picを超えるか早く知りたい人は先にやってください。
>>きっかり1秒後、TCCR2B-CS22-20を0にして
私にはovf割り込みと基準分周の割り込みとの干渉さけて"きっかり1秒後"がむづかしいです。
>>568 やっぱりそれがネックですよね。TCNT2のカウントアップも割り込みですから。
○外部にNANDゲートIC置いて、これで入力をON/OFFする。
たとえば12.8MHzで動かしているなら、1024分周タイマ1で比較一致出力機能を使い、1秒Highを生成すれば
割り込み競合を心配する必要がなくなります。これならTCCR2Bでタイマを止める必要もないかも。
○桁上がりカウント時に1秒たったかどうかもチェックする
OCF1Aなどで簡単にチェックができるようにして、もしovf割り込みの間に1秒経過イベントが
起こったらならその旨のフラグをたてておき、あとでその分を考慮して減算する。
誤差は消せないけど大きな誤差は出ない?
570 :
548 :2006/02/08(水) 14:03:50 ID:beul3Snf
>>569 >>桁上がりカウント時に1秒たったかどうかもチェック〜あとでその分を考慮して減算する。
ゲートICと1024分周タイマ1を使っても必要なんでしょうか?
571 :
548 :2006/02/08(水) 14:52:59 ID:beul3Snf
↑外部回路無しの場合ですね、タイマ1を他に使えるのはいいですね。 1秒カウントしてるレジスタの値が1秒直前に来たら ovf割りこみを禁止し TCCR2Bでカウントを止めれば簡単ではないでしょうか。
>>570 >>569 はどちらか一方という意味です。言葉足らずですみません。
1秒Highの生成ですが、高速PWMなどを使うと楽かも知れませんね。
ICR=12500 OCR1A=12499で1秒High、80μsecLowを生成する(12.8MHzの場合)。
これをゲートICに入れる。
比較一致割り込みで80μsec以内にカウント値取り出し+次に備えてカウンタリセットを
行い、その後ゆっくり得たデータの出力処理を行うとか。
>>571 「1秒直前に来たら」ってのをどうやって検知するか。
たとえば比較一致でOCR1A=12498でovf割り込みを禁止し、12499でカウント止める?
でもこの間に12.8MHzなら80μsec経過します。3.2MHz以上ならカウンタ2は1回り以上します。
この時間をかなり短くできたとしても、ovf割り込み禁止している間にovfが1回起こったか2回以上
起こったかは判断が難しいのではないでしょうか。一定周期のパルスが来ていると決めうち
していいなら簡単なのですが。
573 :
548 :2006/02/09(木) 00:17:22 ID:ezAZaK7I
>>572 >>一定周期のパルスが来ている
に決まってますので(最小ovf間隔は掴んでおく)タイムベースはレジスタのインクリメント
でやってポートからゲートへ タイマ1は他に使うって話です、でもかかりっきりになってほかのことさせ難くなるから
素直に分周タイマ1でということにしておきます。
タイマ2のプリスケーラ使って後でその半端分をクロック入れて見る方法だとovfがゆっくりして楽かな。
各氏ありがとうございました。
12.8MHzのTCXO売り切れてしまい広告にもなくなりました 早く買うんだったorz
どなたか買えるとこ知りませんか?
日米になかったっけ>TCXO
先日の日曜、秋月で見たけど?12.8M
きっとサトー電気か現品.comにはあるよ
去年は鈴商や小沢電気にあった。
>>573 >プリスケーラ使って後でその半端分をクロック入れて見る方法
これはいいな・・・・
タイマ1のプリスケーラをなしにしておいて、5.12msec周期で回し、 ovf2のたびにTCNT1とovf1の回数をチェックして、1秒を越えたところでovf2回数とTCNT1,ovf1回数から 除算で周期を求めるってどうでしょうか。低い周波数の場合1Hz以下の桁まで出せるメリットもあります。
>>574 -
>>578 おおありがとう!
>>572 と
>>573 を考えていたら
ゲート時間で決まる周波数分解能とチラツキを1〜2桁改善できる方法がありそうです、
教えていただいたおかげで思ってもみなかったほど早く感じが掴めてきました 感謝します!。
>>580 581とカブって今読みましたがほとんどそれと似た様なのを考えてました!
二つの数値に即して演算するなら 普通のカウントとレシプロの良いとこどりみたいな
のもやれそうです。
>>573 タイマ1は他に使うってことだけど、1秒時間計測はどうするの?
タイマ0?
>>584 タイマ0か1のovfでレジスタをイククリメントすればいいかと(>580の様に)、
結果は演算する気なら1secでなくともいいから割り込み間の干渉もさけやすいですね。
自由度がうんとひろがった思いで 味噌汁うまかったので夜も同じの作りました。
>>585 あとはがんがってつくってMOSI/MISO汁!
楽しみにしています。
DigikeyでAVRISPmkIIが非在庫保有商品になってしまった >510,523 の人、物は届いたの?
USBなAVRがキタ ホストとデバイスの両方の動作モードが可能。
これで俺のGigabeatがデジカメデータの待避所に昇格できる! ・・・ってAT90USB647は何処に売ってるんだ?
>>588 キターとオモタらパッケージが変な奴
ディップの28くらいで出してくれんかなあ
いや、だからどこで売ってんのよ?
592 :
774ワット発電中さん :2006/02/13(月) 10:13:16 ID:TuveV9Fv
>>587 非在庫でも、注文すれば在庫が増えるwっていう事があるよ。
とりあえず注文してみれば?
>593 俺、過去に2回もサンプル請求したけど無視されたよ。 誰かまともにサンプルもらった人いる?
>>594 やったこと無いからわからんちんだけど
Potential Production Quantityが少なすぎたとかってないか?
596 :
594 :2006/02/13(月) 21:23:02 ID:fCjz4MMd
long termを「年間」ととらえて一万個くらい書いたけどね。間違ってんのかな? もしこれが少なくったって完全無視はひどいよ〜
日本の代理店からはもらえませんか?
俺は逆に代理店にしか頼まなかったけどなんとか出てきた。 1度や2度じゃ動かなかったけどな。 単品チップで年間数千〜1万ってアトメルから見たらニッチなんだろうか。
>>598 汎用プロセッサは100K/monthなんてザラにある
え〜(゚ε゚) 何そのレス
100K/monthなんてフラッシュマイコン使わないよな。マスク買うだろ。
10k/month なんてニッチらしいよ。 よくかんがえろよ。8ビットのマイコン制御程度の製品なんて、1日に1000台作れる。 哀しいよなぁ。
607 :
774ワット発電中さん :2006/02/28(火) 00:28:22 ID:l2jPs5ab
ほっしゅほっしゅ
608 :
774ワット発電中さん :2006/03/07(火) 02:38:00 ID:FxQFwK5b
AVRはhiroさんが頑張ってるけど、それでも情報が少ない。
どんな情報が足りないと思っている? 初心者向け情報は割と多いけど大部分がAT90Sシリーズってのはつらいな。
足りないのはAVRには直接関係ない情報じゃないかな。 AVRの応用なら、PIC本を読めばいいわけだし。 gccの使い方ならAVRwikiで十分だ。
アセンブラとデバッガの情報が少ないかなとは思う
>>611 アセンブラはともかく、gdbの話があまりないね。
みんなAVRStudio使っているのだろうけど。素人はそれで足りちゃうしなぁ。
アセンブラだと… レジスタの使いこなしが意外と難しいかも。 直交と言っても、r0〜r15は即値が使えないから慣れないと持て余し気味…。 X,Y,Zの使い分けも微妙。 ま、それ以前にAVR向けアセンブラ、代表的な奴でavrasm,avrasm2,gasとあるけど どれも微妙だからなぁ…(w
AVRたんとアセンブラの微妙な関係について。
615 :
774ワット発電中さん :2006/03/11(土) 11:09:40 ID:b/UEue0A
C言語はImagecraft社のかあ。 でもWinAVRも紹介はしてくれるようですね。
マイコン初心者にはC言語の基礎も欲しいところだなぁ。
>>617 C言語は「初めてのC」で勉強しろ。ポインタとか、ボインタンとか。
独習Cの方が好きだな
俺はTURBOC初級プログラミング(上)(下)だけで勉強したなぁ・・・ 当時はまさかマイコンでも使うことになるなんて想像出来なかった。
多少慣れてる人にはプログラミング言語Cの方が アルゴリズム実装の例が豊富で良いのだが。 それはともかく…AVRのアセンブラはな… adiw、sbiwなんかもあってr24:r25ペア辺りを テンポラリや16bitカウンタに使う事が多いぐらいか。
そうそう、 avrasmやavrasm2でコード側に.db使ってデータ置くと 強制的にワードで整列させられるのが凄く嫌… a:.dbで奇数バイト置いた後にb:.dbでもう一度データ置くと b:側アドレスがワードで整列(つまり+1)させられる…。 a:とb:が完全に別データならメモリが無駄だなと思うだけなのだが、 a:とb:を連続して扱いたい時に不都合が出る訳で。 コードならワードアライメント警告が出るのは仕方ないと思う訳だが。
.db "hello" .db " world!",0 というふうに長い文字列を複数行に分割したくてもできない。 コードのアライメントなんて手動でするようにした方がいいのに。 しかも、16bit版avrasmはラベルの対応がずれるバグがある。
>>622 その制限は頭いたいよなあ。
俺もどうにか1つの.dbを複数行にしようと悪戦苦闘したことがあるが、だめだったな。。。
>>623 そういうことならavrasm2で行継続で対応できるです
>>625 知らなかった・・・
>Line continuation
>Like in C, source lines can be continued by means of having a backslash (\) as the last character of a line.
>This is particularly useful when defining long preprocessor macros, and for long .db directives.
>Example
.>db 0, 1, "This is a long string", '\n', 0, 2, \
>"Here is another one", '\n', 0, 3, 0
>>625 奇数文字列のContinueも問題なくうけるな。
.db "Conti", \
"nue" , '\0'
↓
43 6F 6E 74 69 6E 75 65 00 00
>>615 俺は最初からwinAVRで入った手抜き君だから、結構欲しいかも。
つか、アセンブラ使いこなせる貴方達が羨ましい。
とりあえずSTK500とICEmk2をもう1セット買っておきたいな。
ISPmk2は何時になったら売るんだろうか・・。
AVRも最近はいい使い道がないよね。
大量に使わないとサポート悪いし、沢山使うとミスのカバーが大変だし。
なんかありえん。
>>628 アセンブラ、きちきちに最適化するんでなければそんなに難しくないよ。
C言語ではややこしい処理があっさり書けて感動もあるし
と、アマグラマが偉そうにいってみたりする(w
>C言語ではややこしい処理があっさり書けて感動もあるし 具体的に
>>630 シフトとかはそうじゃないかな。
16bit変数を上位から1bitずつ読みながら処理なんて、Cだと
for (i=1;i<=16;i++)
{
if (0x8000 & value) hogehoge();
value = value<<1;
}
なんて感じになり、判定に16bit演算を使うことになるけど、
アセンブラだと、キャリーフラグが使えるとか。
LDI r18,16
loop:
LSL r16
ROL r17
BRNC no_hogehoge
hogehoge:
(hogehoge処理)
no_hogehoge:
DEC r18
BRNE loop
24bitとか48bitのような整数を扱うことができるのも場合によっては便利。
これらの点とメモリ効率以外はC言語の方が圧倒的に楽だなあ。
>631 それくらいだと gcc でも16bit演算は消える。 hogehoge の長さが分からないから brnc でなく skip + rjmp なのは しょうがない。 ldi r18,lo8(16) .L6: sbrs r25,7 rjmp .L5 (hogehoge処理) .L5: lsl r24 rol r25 subi r18,lo8(-(-1)) cp __zero_reg__,r18 brlt .L6 余談だけど、むしろ最後から 2 行目のゼロ比較がどうやっても 無くならないのが avr-gcc の最適化のタコな点だったり。 subi でフラグセットされてるのに勿体ないったら。
633 :
632 :2006/03/21(火) 19:24:46 ID:+9VEP4SA
と思ったら cp も消せた。 ループを for(i = 16; i!=0; i--) という回しかたをすれば良いのだな。 そりゃそうか。
>>632 ふむふむ、and 0x8000くらいは最上位のsbrsに置き換えてくれるんですね。
結構C言語でも望む処理に変換してくれると期待していいのか。
635 :
774ワット発電中さん :2006/03/22(水) 18:45:08 ID:VX8dAZvT BE:147697834-
AVRのメリットと、PICと比べて、(AVRのほうが)よい点を教えてくれる方はいませんか?
あっ、ついでにデメリットも教えてくださいな
やっぱりいいです。お騒がせしました・・・
638 :
774ワット発電中さん :2006/03/22(水) 19:09:05 ID:qiZFqxBc
635-637 凶状持ち?
>>635 PICに対するAVRのメリット:
速い!
命令が適度に豊富、レジスタも適度に豊富=やりたいことに対し命令数がかさばりにくい
ポートがPICよりパワフル(mega/tiny以降)=40mA/pin、100mA/port
・・・・現実にはPIC程度あればあまり意味なし
メモリ多め(一部を除けば128-数kBytes)
FLASHにデータを置いて読み出す命令がある(PICではRETLWなどちょっと裏技的)
メモリや命令などがCPUとして普通っぽく理解しやすい
アドレスが16bitでわかりやすい
avrgccその他比較的制限が少ない高級言語が豊富(PICにもC言語はあるが)
デメリット(PICのメリット)
メモリを扱う場合、アドレスが16bitで8bitCPUには操作が煩雑、小さいプログラムではPICの方が簡潔になることもある
FLASH埋め込みデータ読み出し(LPM)は16bitアドレスで煩雑、小規模ならPICのRETLWの方が簡単だったりする
SRAMメモリ(ファイルレジスタ)に対する演算命令が多少あり。AVRは汎用レジスタ対象のみ
INCFSZ/DECFSZなど、SRAMメモリにループカウンタを置くのに便利な命令がある
比較的情報が少ない
俺は趣味でやってるのでよくわからんが、仕事で使おうとするとサポートが悪い・・・という話をよく目にする
>>637 遅い!
デメリットもというならいいんでない?
RAM上のプログラムを実行出来ますか?
>>639 >アドレスが16bitでわかりやすい
の一部かも知れないが、
「バンクがない」
というのがかなり大きいメリット。
そのかわり、アドレスが16bitになってしまうのがデメリット。
頭の32バイト(汎用レジスタ)、次の32バイト(IOレジスタの一部)は
5-6bitの短いアドレスで、0x20〜0x5FのIOレジスタは6bitで
アクセスできるようになっているが、それ以外のレジスタ・メモリは多少面倒。
PICはバンク+8bitの直接・間接参照でできるのに対し、AVRは16bitの直接・間接参照。
小さいAVRデバイスのSRAM開始アドレスが0x0100あたりだったら便利なのに・・・と思う。
ZHを動かさずに256バイト単位で8bitアドレスで参照ができる。
ATmega48でも RAMが0x60 から始まってれば I/O ともどもの ZH=0固定アクセスができたのにと思ってる位だけれども… >644 >小さいAVRデバイスのSRAM開始アドレスが0x0100あたりだったら便利なのに・・・と思う。 tiny45使いの人? RAM空間256バイト以下ならZHが効かなくて同じことが出来てるわけだから これが意味があるのは160バイト以上256バイト以下のRAM持ちのデバイスだよね。 さすがにニッチな要望な気が。 AVRのメリットとして、開発環境が安い、というのもあると思う。 PICでコンパイラを揃えるころにはAVRでは純正ICEが揃ってる。
なんでAVR使ってる人って必死にPICと比べたがるんだろうね。 どのAVRのサイト見に行ってもPICから乗り換えましょう!って必死な文章ばっかり。
>646 そりゃあPICなヤシがネタふったからだろう。
Macで言うところのSwitchキャンペーンって事だね。
650 :
774ワット発電中さん :2006/03/23(木) 20:54:37 ID:TJ0Fa4rC
自動低電圧電源のスレかと思ったら違うんだね
>>648 実際のとこ、世界的にみてもPICの方がメジャーなの?
なんとなく、秋月あたりがPICに力を入れてるせいで、
日本限定でPICがメジャーになってるような(AVRと
比べて)気がするんだけど。海外事情に詳しい人いない?
営業的にはPICの圧勝じゃない? ライセンス受けてマスクデバイス作ってるトコいっぱいあるし、 マイコン扇風機はPICらしいって聞いて開けてみたら PIC(のライセンス品)だったよ。 俺もアーキテクチャの素晴らしさ(PICに比べての話ね) でAVRに乗り換えたけど、PICは内蔵周辺機能の選択が うまいと思うな。
まぁ、PICは登場してから20年くらい経ってるしね。 秋月で安く手にはいるし。
>>651 世の中のマイコンでさせたい仕事を考えると
PIC16で済みそうなのが大部分。そうなると性能以外の分野で決まる。
複雑なのはUSBとかLANとかの親和性が欲しくなるとか
もうちょい性能欲しいとかでARMとかにいっちゃう
というわけで、数の上ではやっぱりPIC>AVRになるんじゃない?
趣味で遊ぶなら楽しい方がいいので、美しいAVRの方がいいなと思うけどね。
隅々まで把握して納得いく状態で使うにはAVRぐらいがちょうどいいね。
長年Z80+構造化アセンブラで製品を作ってきた私にはこんな公式があります。 AVR > Z80 > PIC したがって今はAVRにどっぷりです。
なら公式じゃなくて私式じゃん
My宇宙を語っちゃいけないこんな世の中じゃ
ポイズン!
>>648 秋月でPICとAVRが同時に発売されていたとしたら、
PICの惨敗だったわけだが。
いろいろな面でAVRの方がいいのだが、いかんせんPICで
いろんなモノを作ってしまったので、いまでも両刀使い。
鱈は北海道
AVR本のれびゅーまだ?
>664 なかなかよさげでした。 ほとんどすべての周辺I/OにCのサンプルコード付きで説明が入ってる。 データシート引き写しでなく実際に扱ってみた風なところは好感。 たまにオシロで見た絵もある。 普段48/88/168だよな〜と書いておきながらきっちりUSIも入ってるし。 山ほどあるアドレッシングモードの説明も図入り。ただし、この図入り説明が 分かりやすいかどうかは人によるかもしれない。 ただすこしばかりハードに弱い人なのかどうか、ADC のグラウンドのとりまわし、 差動ADCの挙動など極端にハードよりの話になると とたんにデータシートっぽくなるのがたまに傷。
666 :
774ワット発電中さん :2006/03/27(月) 18:33:05 ID:/pyQt0LW
>666 あ、それもあったか。WinAVR、mfileのたぐいについては記述ほぼ皆無。 ダウンロード先が紹介されてるだけと思いねぇ。
AVR+WinAVRの初心者向け本はないってことだな。 AVR本+C言語入門本(これは仕方ない) +WinAVR関連はググれ、って状態か。 俺も注文しました。
デバッガ関連情報は載ってました?
670 :
774ワット発電中さん :2006/03/28(火) 22:27:00 ID:XrKU5k7J
AVR本、近所の本屋になかった。 ネットで昨日注文した。 今日近所の本屋に行ってみたらあった。orz ネットで注文したとこキャンセル受け付けていない。 現在取り寄せ中で時間かかるもよう。 あーあ、買えずに馬鹿みたい。 愚痴ってすまん。
その本ではないが、すぐに欲しくてネットで注文する前に市内の本屋を数軒回ったが、 無くてあきらめて家に戻ってネットで注文した漏れがいますよ。
で、明日本屋にいくとあるんですよ、きっと。
青い鳥
買って帰ってきたら、既に本棚の中に。
>>674 そりゃああなたのFLASHの書き換え回数が限界?
通販した翌日に、通販忘れたと思って、店頭で購入orz
677 :
774ワット発電中さん :2006/03/30(木) 12:03:44 ID:g4p2FUXh
>>677 今頃これを買うのはうーん・・・・・・
AT90S1200も使えますけどね。
AT90S1200ってディスコンじゃないの?
>>679 ディスコンだけど、1個100円(秋月,AT90S1200A)としてはかなり使えるかと。
パラレルプログラマ(簡易型可)がないと内蔵1MHzでしか動かないが。
店頭だと1200Aも\100で売ってるのか?
>>682 220円だとなぁ。。。
tiny2313が266円、tiny26が290円だから、あんまり魅力感じない。
パラレルライタがあれば。中身はどっちも同じじゃなかったっけ? 1200買って1200Aにして150円くらいで売ったら?
685 :
774ワット発電中さん :2006/03/31(金) 00:55:49 ID:WRsY7tdr
出荷状態が違うだけで中身が同じとかなにかに書いてあった気がするけど。 Atmel のサイトでAT90S1200 を検索して出てきたなかにそのことの文書が出てたよ。 たぶん...
686 :
682 :2006/03/31(金) 07:15:56 ID:urgS76O3
>>683 中身は一緒だよ。パラレルライタで相互に変換可能。
90S8515でもA付きがあったと思った。ISPでヒューズを書けないデバイスの救済策だね。 90Sシリーズは廃盤になって久しいから、どうでもいいこどだけど。
ATmega8のDIPを挿してライタ接続してもデバイス認識しない。 実装状況をじっくり見ると逆挿し。改めてもう一度やるとOK。 デジ電源とアナ電源の端子位置が対抗しつつ位置が逆な意味がこの一瞬で理解できました。
AVRの本買ったけど1つ間違えばメイドのイラストが多用された本になって いただろう。まともでよかった。elm氏が絡んだら魔法使い少女のキャラか。
690 :
774ワット発電中さん :2006/04/02(日) 01:55:29 ID:DsgiLCaG
691 :
774ワット発電中さん :2006/04/02(日) 02:03:27 ID:uzbAw7Yo
実は、たったの24時間で、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
あなたの今後のネット収益を倍増するスキルがあります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
それを知りたい方は、他にいませんか?
アフィリエイトを使わずにホームページとEメールだけで3,000万以上稼いだ
インターネット・マーケッターの宮川さんが、
巨大な現金の山を作り出す門外不出の一生涯使えるノウハウを
下記のサイトで公開しています。
その内容をお知りになりたい方は、下記をクリックしてください。
【たったの24時間で あなたの今後のネット収益を倍増するスキルとは? 】
http://infostore.jp/dp.do?af=moneyclick&ip=successpreneur&pd=01
>>688 tiny26なら、うまくやれば順挿し・逆挿し両方で動くようにできるよ。
人を驚かすくらいの意味しかないと思うけど…
693 :
774ワット発電中さん :2006/04/02(日) 10:02:55 ID:DsgiLCaG
AVR本1号の人がLED装飾の本を書いてます。 1200か2313で点滅させている内容でした。
694 :
774ワット発電中さん :2006/04/02(日) 18:06:46 ID:Kba/lY32
UART用のシリアルレベル変換回路について質問させてください。
AVRのUARTと、PCの9pinシリアルとの接続を考えています。
MAX232などを使用してレベル変換の電源供給を9pinシリアルから供給
する方法を
ttp://hp.vector.co.jp/authors/VA011973/prg_keitai1.htm で見つけましたがどうも納得が行きません。実際PCのテスターをあてると
(RTS-GND)間で-12Vでした。
色々と検索してもRS232C関連の製品ばっかりヒットしたりと、
情報がうまくつかめませんでした、識者の方、ご教授お願いします。
>694 RTSがマーク(1)だと-12Vでも、スペース(0)にすれば+12V出てくれるんでない? 5Vくらいしかでない手抜きが多い中で、ちゃんと12V出るハードだっていうのは たぶんラッキーだと思っていい。今回は扱い辛いけど...。
696 :
694 :2006/04/02(日) 19:04:35 ID:Kba/lY32
早速のレスありがとうございます。 となるとPC側のソフトは限られるってことですか。 うーん、素直にマイコン側から電源を取るorUSBシリアル変換 にした方が早いですか。 ちなみにPCのM/Bはintel865Gです。会社のDELLPCでは -9Vしかでてませんでした。
RS-232Cの規格からすると、±5V以上出ていれば正常なはず。 5Vしか出てないぞゴルア、と言われても(w
>>694 というか、ADM232Aの電源に12Vなんかつないでいいのかな?
Vcc-Maxは5.5Vだろ?
内部抵抗が高いとか、
>>697 が書いているような±5Vしか出ない回路
に救われてセーフとなるかも知れないが、あまりよろしくないような。
電流はたいしたことなさそうなので、抵抗+ツェナーによる制限かけた
方がいいんじゃなかろうか?
699 :
694 :2006/04/02(日) 20:05:03 ID:Kba/lY32
>>698 ご指摘の通り、R・ZD・Cの簡単な定電圧回路は構成する予定です。
レベル変換ICを3.3V程度で動作させれば、5V系、3.3V系の両方のH/Lの
閾値を超えるので、これで電源もシリアルから取れば(力一杯の主観ですが)
美しくなるなーと思ってるわけです。
なんだか皆様を私の趣味につき合わせてしまっているようで申し訳ありません、
半分諦めているのでスルーして戴いても結構です。
AVRと関係ないなぁ・・・ といいつつレスをする。 一般的にはCOMポートCLOSE時はRTSなどの信号線は(-)で OPEN時に(+)になるものが多い。 Windowsのハイパーターミナルなどでポートをオープンすると RTSが(+)になる。 ただし、使用するソフト次第ではOPEN時にも(-)のものもあるカモ。
701 :
774ワット発電中さん :2006/04/03(月) 11:21:21 ID:0gbaIQ6l
誰か教えて下さいな、 AVR Studio を使って Atmega88 の EEPROM にデータを埋め込みたいと思い、 .ESEG .DB 0x12 として Build and Run とした後、View Memoryメニューで EEPROM を見ると FF のままで設定したデータが書かれていないように思えるのだがどういうこと? ソース上から EEPROM に予めデータを書いておきたいのだが。
>>702 この場合は実機じゃなくAVRStudio内シミュレータの話なのでWrite EEPROMは関係ないかと。
俺のは古いVer4.11/build401ですけど、確かに.ESEG内でdbで定義したデータはMemory-EEPROMに反映されないね。
ちゃんとデータの入った*.eepは吐き出しているんですけど。
704 :
701 :2006/04/03(月) 12:07:56 ID:0gbaIQ6l
>702 and 703 レスありがとう。 そうなんです、シュミレータの場合 Up/Download Memory を使うか、Memoryウインドウで手入力するしかないのでしょうか? Build時に Memoryウインドウに反映されてくれると嬉しいんですが。
>>701 gccならなんの問題もなくEEPROMにデータ置けるなあ
uint8_t __attribute__((section(".eeprom"))) val[] ={ 1,2,3,4,5,6,7,8,9,0 };
アセンブラでプロジェクトにeepを追加するにはどうすればいいのだろう???
ファイル追加してもソースファイルに追加されるだけで何も起こらんし。
706 :
701 :2006/04/03(月) 12:41:59 ID:0gbaIQ6l
とりあえず、 Build and Run を実行したら Up/Download Memory から ???.eep ファイルを指定して「Load from File」、それからデバッグ開始 の流れで済ましています。 シュミレータの「仕様」なのかな。
>>706 elfを読ませると自動でロードされるんだからなんとかなると思うんだけどなあ。
とりあえず最新バージョンにあげてみようっと。
なひたふに質問したのお前?
よくわからんがオレオレ
>>708 なひたふさんとこって掲示板閉じてるんじゃね?
と思ったらいつの間にか再開している〜だいぶ前から開いてたんだな。
なにがあったかわかりませんがおつかれさまでした>なひたふさん
ATmega48をITプラザで買ったがPonyProgで書き込めない。 そんじゃいい機会なんんで前から気になってたUSBaspを作ってみた。 日本のホームページで製作したの見ると律儀にオリジナルに忠実にクロックに 水晶使ってるがセラロックで置き換え。ユニバ−サル基板に組んで動作試験し てAVRdudeでコンフィグが読めるとこまで確認。他人設計ではあるが始めて自作 したUSBデバイスだ。プログラムの書き込みは明日以降。
>>711 発振器は水晶を使ってあげてください。
詳しい説明はAtmelのApplicationNoteのAVR309にありますが日本語訳されたのがHEROさんとこにあります。
http://reef.path.ne.jp/~hero/hero.htm そこのAVRusb.zipの中のAVR309s.pdfの5〜6ページに説明があります。
(その中ではセラミック振動子で動いたら偶然とまで言い切っています)
特にホストがUSB2.0でなくてUSB1.1の場合は動かない可能性が大です。
>>711 USBはLowSpeedでも最長210bitくらいあるシリアルなんで、UARTの20倍、
0.1%くらいの精度がないと成り立たない。0.5%精度のセラロックなら確かに
動けばラッキーの世界なんでしょう・・・
実際には同期機構があって、LowSpeedなら±1.5%の速度調整が可能で
セラロックでも動くようにできているらしいのですが、USBaspには速度同期の
ための機構を省略しているのかも。PC側はUSBaspについていけても、
USBaspがPCに合わせられない。システムクロックが通信速度の8倍しかないし。
なんかシリアル直結のDASAケーブルで書き込むのが急にかっこわるく思えてきた。
>>715 俺なんてパラレルコネクタ+抵抗三本の100円ライタで開発してるぜ。
気にすんな。
>>715 だから、「ださケーブル」なんだろう。と釣られてみる。
パラレルポートさえあれば100円ライタでも十分。
おれのださケーブル、抵抗すら挟まってないよママン ていうか、PonyProgが対応してるライタならuispでATMega48も 書き込めるのではないかしらん。SI-Progなら-dprog=ださ2 かな。
>>715 この用途的にはUSB経由で苦労するよりレガシーポート最強なのだ。
気にするな。
USB経由で安くうまくやるにはどうやればいいのだろうと
悩むのも楽しいけどね。
715だけど、今作ってるのはavr-usbのHIDデバイスだったりするよ。 あとUSBもけっこう電子工作に活用してる。5V取得用とか、あとは...5V取得用とか。
>720 マザボのUSBポートから+5V引っ張ると1ポートあたりでも 500mA以上余裕で取れるよね。電源取得用のUSBケーブル作っとくと ちょっとした工作に便利。
>>720 そのHIDデバイスってパイプいくつ?おいらはキーボードとマウスの複合デバイス作りたいけどパイプが足りね
>>722 とりあえずロータリエンコーダと組み合わせて適当にPowerMateもどきをでっち上げて
いまファームウェアと格闘中。
だからエンドポイントは今んとこふたつで間に合うと思う。
でも、最終的にはデバイスドライバも作らないといけない感じなので、
そっちに挫折して放り出してしまいそう。
725 :
:2006/04/08(土) 18:25:36 ID:EA8fahN0
713です。ラジデパ2Fサンエレクトロに3端子ロープロファイルの12MHz水晶 発振器が売られているのを発見、セラロック抜いた跡にちょうどはまりました。 \283は発振器としては手ごろ。ユニバーサル基板製作なので配線をちょっと修 正し、とりあえずプログラムリードコマンドを試すと安定してます。セラロッ クのままならコケていた可能性が高い。助言どうもでした。
AVRマイコンリファレンスブック キタ━━━━━━(゚∀゚)━━━━━━ !!!!! WinAVRではないことが残念という声多く、俺もそう思うけど、 IAR-Cでもまあ雰囲気(なぜかふいんきで変換できる)はつかめるな。 これにWinAVRの簡易マニュアルでも足せば問題なさそう。。 あと10ページくらい足してWinAVRの解説入れてくれたらうれしかったなあ。 動作理解のための図表が多いのは好感がもてる。 まあ、データシートで足りるという人には・・・不要だなあ。 かといって初心者には・・・・実際の工作例がないのでこれ単独では 初心者向きともいいがたい。リファレンスブックだからあたりまえだけど。 工作例はロボット魚本でも買いましょうってことになるんでしょうね。
IAR使いなんですが、値段が高いんでWinAVRに移行しようかと思ってます。 gccプラグインの出来もスバラシイですし。 今日は春の暇で、せこせこ1人で実験してました。 一応、MEGA48のタイマー1でLED1秒点滅とかまで出来ました。 活発なソフトウェア資産や情報交換があるので、IARよりコード効率はわるくても 使い勝手はよさそうですね。 AVRWIKI読んで試したんですが、PINポートに1を書くと、トグルするって面白いですね。 ところで、WinAVRを常に最新版に保ちたいのですが、 情報など、どこが活発なのか教えていただけませんか?
>>728 英語でいいならavrfreaks.net。
国内では、AVRWikiになるのかなあ。
730 :
774ワット発電中さん :2006/04/12(水) 00:04:06 ID:b6suyVWQ
最近、STK500が常にdigilkeyでさえ売り切れ御免になってる件について。 最近ユーザふえてんのか? つか、AVRISP2って見たことないぞ。ホントに存在するのか世の中に。 AVRSB100面白そうだけど、3万以上する件について。 なんか、足元見られてるようで、苗。
ユーザ増えてるかどうかは知らないけど 最近のDigi-KeyはAVRに限らず何でもかんでも品切れのように思える
>>730 常時注文が来る見込みがない物については在庫持っていないだけだろ。
注文かけてみたら?
>>730 ATAVRISP2-ND 在庫数量31。 4002円(Digi-key)
734 :
はじめまして :2006/04/12(水) 22:18:27 ID:sXI2v/dM
tiny2313でrs232cの信号をfast-avrと言うコンパイラを使って送信したいのですが、 どうもうまくいってないようなのです。 どのような記述をすればいいのですか? print &H41 などとすれば’A’が送信されそうですが、、、、 クロックは10MHzです。 ご教授お願いします。
735 :
はじめまして :2006/04/12(水) 22:24:03 ID:sXI2v/dM
追記です。 9600ボーで 10MHz水晶です。 AVRの送信データーをpcでモニタしてもなんだか変なデータが送られて 来ているだけです。 すみませんがよろしくお願いします。
Max232みたいなコンバーターちゃんといれてる?
737 :
774ワット発電中さん :2006/04/13(木) 00:15:15 ID:z+vESWlt
その前にプログラムちゃんと走ってるの?
>>734 できるかぎり単純化したサンプルプログラムをあげないか?
>>734 コンパイル結果を読んだ限りでは,'A' を出力するには
PrintBin &h41 としないとダメみたいだがなー。
740 :
はじめまして :2006/04/13(木) 18:24:25 ID:I+EF9S50
みなさんありがとうございます。
プログラムは
$Device= tiny2313' used device
$Stack = 32' stack depth
$Clock = 10' adjust for used crystal
$Baud=9600,n,8,1
dim n as byte
DDRB=&hff
PORTB=&h00
' 76543210
DDRD=&b00000010
PORTD=&h00
n=&h41
Do
Print n
Print Chr(n)
Print "n=";n
Wait 3
Loop
End
と、やっていました。
>>739 遅くなってすみません。
printbin ですか!?それでやってみます。
741 :
はじめまして :2006/04/13(木) 18:36:19 ID:I+EF9S50
>>736 入れないとだめなのでしょうか?
avrのgnd-----シリアルケーブルのgnd
avrのtxd-----シリアルケーブルの2ピン。
という接続でいけないでしょうか?
(とりあえずなら見られないのでしょうか?)
頭使って考えろヴォケ
逆論理で出力すればいいんでないかい? と、PIC使いの俺が言ってみる。
746 :
はじめまして :2006/04/13(木) 22:21:18 ID:JW8gWufp
>>745 逆論理でやったらせっかくのハードウェアUARTが遊ぶよな。
まあ送信だけならソフトウェアUARTでも楽勝なんだけど。
749 :
はじめまして :2006/04/13(木) 22:59:47 ID:JW8gWufp
>>747 みなさんありがとうございます!HC14で反転させたら出来ました!
助かりました。。。
GJ
>>745 PICのUARTは論理反転で入出力するモードがあるのか。
そんな美味しい機能が付いてるなんてうらやますぃ〜。
>>751 そんなのあるか?
ソフトUSART だったら なんでもありだろうけど・・・・
ソフトですよ。 UARTがついててもピンの位置が気に入らないから、ソフトでやってる。 コンパイルオプションに"invert"って書くだけで反転してくれる。 すれ違いなのでこの辺に。
AVRStudioで、 .include "2313def.inc" .def temp = R17 //PortBをすべて出力にする ldi temp,0b11111111 out DDRB,temp //PD6のみ入力にする ldi temp,0b10111111 out DDRD,temp waitforon: sbic PIND,6 rjmp waitforon rcall T_5ms rcall T_5ms sbic PIND,6 rjmp waitforon //5ms待つ T_5ms: nop nop ret というコードをデバッグしたらT_5msのretのところで AVR Simulator: Invalid opcode 0xffff at address 0x00b8b8 AVR Simulator: Invalid opcode 0xffff at address 0x0000b9 というエラーを出してデバッグが最初の行に戻るんだがなぜだかわかる?
//スタックポインタ設定 ldi temp,low(RAMEND) out SPL,temp これをコピペしたら直ったんだが low()って何?
アセンブラわからねぇ、誰か教えて。 どのマイコンでも同じなんだろうけど、どうもカンがわからない。 決まりきった作法があるらしいんだけど、 面倒だとかで質問も相手してくれないんだよね。 自分でやるか・・・('A`)
>757 アセンブラ一般にまったく分からないのか、 マイコン各々のアセンブラの作法やイデオムが分からないのかで 話が違うが後者なら、 アセンブラマニュアルを流し読みする。 C コンパイラを用意する。 適当に小さな for文や if文や while 文や何かを最適化を最強にした 状態でコンパイルしてアセンブラコードを出させる。 それを読んで感動する。 でだいたい書けるようになると思うが。
>>757 サンプルコードを読む。Atmelのページ行ってApplication noteを見る。
どんな言語も最初はマネから。(最初はできるだけ、質の高いコードを
見た方が良い。そうでないと、変な癖がつく)
761 :
774ワット発電中さん :2006/04/16(日) 21:37:50 ID:h+72Hz1B
757じゃないけど
>>760 さんありがとう。
公式とか行かずに、我流でWinAVRでカリカリやってた俺にとって良い情報です。
学生時代から変な癖がついてて、仕事に支障が出てる俺、
うーん、orzです。
仕事だとIARとか使うもんだと思ってた。公式のCサンプルは全部IARだもんな。
>>759 前者です。('A`)
763 :
761 :2006/04/17(月) 00:11:29 ID:BWkmgqde
>>762 仕事のおまけ的にやってるだけなので…。
AVRは99%趣味でやってて、仕事に使えるツールになれば
「社内にどうぞ使ってみてー」って感じで提供。
会社で使うマイコンがAVRだったらなぁ〜…w
これだけでは何なので、本日はじめてAVRでUART通信してみたけど
ごっつ簡単だったことにビックリ。PC間通信ができると工作の幅も
広がりそう…室温ロガーとか作ってみようかなぁ…。
EEPROM保存の勉強にもなるし。うん、AVRたのしー。
>>767 CPUそのもの、アーキテクチャの勉強をしなさい
767って、あなた?↓ があんばって!
>>767
よーし、お兄ちゃんは勉強のためパタヘネ本買ってくるぞー ・・・って当然読破してますよ。AVRにTLBなんて無いけどね。
>>762 なんか楽しい流れになっているが(^^)
低レベル側、高レベル側両方から攻めるといいな。
低レベル側については、AVRのインストラクション解説(これもhero日本語版あり)でも読みましょう。
フラグとかシフト演算の理解を。ものが単純なだけに理解はそう難しくない。
雰囲気がつかめたところで、分岐とかループとかを組んでみる。
サンプルプログラムの中にあったりするのを参考に。できるだけ単純なのを。
たぶんこの辺までOKになれば、読めるサンプルプログラムが増えてくると思う。
その後は
>>760 かな。
AVRStudioでフラグなどを見ながらワンステップずつ動かせば、やってることがつかみやすい。
簡単なCプログラムを書いて、WinAVRの出力などをAVRStudioのアセンブラモードで見て、
やってることとアセンブラとの対比をつけていってもいい。
データシートなんかで時々出てくる、アセンブラ・C両方で書かれたサンプルも参考になる。
もっといいコードにしたければ、たくさんある汎用レジスタの使い方が肝かな。
煩雑に使う変数や高速処理しなければいけない変数などはレジスタに割り当て(数に限りあり)
一時的に使う変数は使用範囲を見極めて他の変数とレジスタを共用してやる(このへんはWinAVRとか
でもやってるけど)やりくりできなくなったらはじめてSRAMに手を出す。できるだけSRAMメモリとレジスタを
行ったり来たりしないですむように処理の順番をちょっとかえると結構いい。
ある程度以上複雑な処理で、数回以上出てくるのはサブルーチンへ。
データの受け渡しはできるだけ汎用レジスタ経由。
よくあるサブルーチンは既にサンプルがたくさんある。
Application Notesや、ELMさんとこのサブルーチン集参照。
単純な処理・出現回数が少ないけどよく使うもの(16bit演算とか)はマクロを活用。
もしかして、かるちゃん?
771 :
769 :2006/04/17(月) 11:27:19 ID:2KMvUNBM
長い割にレベル低くて済まん。かるちゃんじゃないよ。
かるちゃん≠PICスレでよく話題になる人じゃなかったら
>>770 は無視してくれ・・・
90S2313-10PCで起動したらLEDを光らせるだけの簡単なプログラムが動かなくて、 リセット周りが怪しいといわれたんだが、1ピンを単にVCC(20ピン)と接続するだけじゃだめ? 発振はセラロックで4MHzを発振させてて、これは周波数カウンタで測ったらちゃんと出てた。
そこまで絞れているなら抵抗入れてみればよろし。
>>773 データシートには、Vccに直接つないでOKって書いてあるね。
むしろここに書いてない事に原因がありそうな。
>>769 おお、ためになります!
Mega88なんかだと1kBもSRAMありますけど
レジスタの使いまわしで対応しようと頑張ってしまうと、余らないですか?
そこらへんのバランスとか、SRAMの初期化とか、定数の保存先とか・・・
色々知りたいこと多いです。
Cでなら、まぁそこそこに動くものをさくさく作れる程度なんですが・・。
>>776 mega8とかだと確かにSRAMもFLASHもそう簡単には足りなくなったりしないけど、
速度に関してはやっぱり汎用レジスタを使い倒す意味はあると思うよ。
もちろんtinyシリーズを使うときは生きるし。大部分のtinyシリーズはそもそも
実質的にC言語使えないし。
>>773 DDRxレジスタを出力設定してないとか
PORTxとDDRxの対応がずれてるとか、
そっちはあってるけどLEDつないでいるピンと違うとか、
LEDの極性が逆とか(;o;)
220Ωつないだつもりが220kΩつないでたとか(一度やった・・・)
>>773 俺、他人が設計した絶対に動くはずの回路を自作して動かないときは、
とりあえず全半田箇所に再度半田鏝あてて芋半田チェックして、場合に
よっては半田をさらに足す。
これで9割方動くようになるorz
大抵、とてもつまらない理由なのよ。
ブレッドボードで簡単に回路を作ってみようとして、接触不良、発振不良、 電源コンデンサ無し、電源電圧不足、などで動作せず。orz セラロックは、測定器に繋ぐと正常発振するが、外すと発振停止。orz STK500とかの、模擬動作の可能なボードを見てこれなら必ず動くと思った。yo
781 :
774ワット発電中さん :2006/04/18(火) 13:15:11 ID:AsEKOR6M
777に同意、 まず R16 は 汎用レジスタとして取っておく。 次に R30,R31 は IJMP命令用に取っておく。 R26〜R29 は X,Y 用に取っておいた方がよい場合とそうでない場合がある。 残った R0〜R15 と R17〜R25 を変数用に使用。 R0〜R15 は 直接値を代入する頻度の少ない場合に使用。 R17〜R25 は 直接値を代入する頻度の多い場合に使用。 レジスタを使い切ったら使用頻度の少ないものから順にSRAMに配置。 これで結構速い処理ができますよ。 EEPROM は BCD→7seg変換などの テーブル参照 なんかに便利です。
>>781 あと、WinAVRみたいにレジスタの1つをゼロクリアして
以後これはゼロ決め打ちにしてしまうと演算で何かと便利。
それと、R0,R1はLPMやMULで使うからここは変数に使わない方がいいかな。
EEPROMはそういう目で見たことなかったな。
確かに、アドレスが1バイトなんで小さいテーブルにはFLASHよりいいな。
783 :
773 :2006/04/18(火) 18:42:56 ID:bg/ojsMf
回路をよく調べたら、配線を忘れてる部分があってつないだら直った。迷惑かけてごめん。 次の工作で、不定期のデータを受信しながら左右のモーターを可変速でドライブする必要があるんだけど、 PWM機能が2つ以上ついたAVRとしてtiny26って今簡単に手に入る?
秋月のAVRライタ(PICライタに追加するやつ)しかなくてパラレルライタは持ってないんだが、 tiny26Lは初期状態では内部発振?だとしたら何MHz?
データシートを読もうという気は無いんかいな?
日本語のデータシートがあるのか。 「最長起動時間の1MHz内蔵RC発振器」で解決した。
>>785 というか発振設定変更はシリアルプログラミングでOKなんだが。
パラレルポートを使うライターって言う意味?=パラレルライタ
秋月のAVRライターでもたしかtiny26は書き換えできるファームがあったはず。 でもPICライタの親亀子亀ライターでどうかはわかんね・・・
接続自体はシリアルだけど、秋月のライタはヒューズビット書き換えができないって 書いてあるのを見たから駄目なのかと思って…90S1200だけの問題? 結局のところ内蔵1MHzが使えるなら周波数を変える必要はなかったけど。
90Sシリーズはそうなんだっけか 26Lは内蔵発振器で1,2,4,8MHzが使えるよ シリアルプログラミングで変更できる 10番ピンが標準ではRESETに割り当てられてて、それを汎用IOに機能切り替えすると シリアルプログラミングができなくなるからちょっと注意
tiny26はPLL付きだから内蔵16MHzも使えるな。
ATmega48でデジタル時計の作成中。 最初のトラブル。60kHzの水晶を付けてCPUクロックにするのだが、内蔵RC発振 から水晶発振に移行するFUSE変更時に1/8分周を有効のままにしてしまう。 7.5kHz動作。元に戻そうとしても内部クロックが低すぎてライターのSCKに追従 しない。パラレルライターで戻すしかないのか、持ってないけど。orz 仕方ないので予備を使ってめでたく時計動作。結構正確。バッテリーバックアップ をつけようとして確認の意味でAVRのみの電流を測定。10mAを軽く超えてる。μA オーダのはずなのに。出力ポートのリークパスに気付き擬似オープンドレイン制御 にプログラム変更、それでも2mA。空き入力端子がフロートして入力バッファの貫 通電流が怪しいのでレジスタをプルアップに設定。やっと100μA台になりました。 いい経験になりました。
ダメもとで試してみます。 低周波発振モードなので周波数の選択が微妙そうですが。
>>793 ELMさんとこのライターならSCK幅に65msec程度まで指定できるから
クロック30Hzくらいまではいけるんじゃなかろうか。
外からクロック端子をドライブしてやりゃ何モードだろうとクロック入っていくんじゃね?
>>796 avrspのパラメタ確認してみます。
>>797 60kHzの水晶は付けたまま4MHzを強制注入は効果なしでした。
-d65535オプションね。SCKのHigh/Low期間をそれぞれ65535μsecにできます。 stotoul()で取得しているけどWORD型変数に納めているようなので、65535が最大の模様。 7.5kHzの水晶なら、データシート上SCKのHigh/Low期間は2クロック以上必要なので、 267μsecで、余裕もたせても-d1000程度で充分と言うことになるね。 60kHz水晶を外して4MHz強制注入ならいけたんじゃなかろうか。
PICからAVRに移行しようと思ってたけど、上で出てたトラブルが大変そうだね。 PICならクロックなしでプログラムできるのに。
>793 擬似オープンドレイン制御って、具体的に何やってるの?
時計作るならメインクロックを内蔵oscにして、水晶は非同期クロックソースに 設定すればいいんじゃないか?
>>801 PORTxは0のままにして、DDRを動かしてるんじゃない?
で、power-saveモードが使えるから計時動作しながらで10μA以下だ。 ほかにも周辺へのクロック供給を個別に切れるから試してみたら。
>>793 あとはアナログコンパレータなどのカット。
mega48のデータシート見ると、いろんなのをパワーオフにできるんだな。
つPRRレジスタ
あと、電圧を下げよう。いまいくら?
>>804 さんの言うとおり、スリープを活用すれば平均電力はぐっと下がると思うよ。
時計用途なら、表示器の消費電流次第ではあまり意味はないかもしれないけど(^^;)
消費電力低減ならtinyのほうがよくね?と思ったが、
tinyってパワーセーブ+非同期クロックが使えないのが大部分なのね・・・
>>800 picで満足してるんなら無理に移行する必要ないんじゃないか?
それとも移行したい目的があるなら、こんなトラブルなんてほとんど問題にならないと思うがな。
普通こんな低速クロックで使うことなんて無いし。
807 :
774ワット発電中さん :2006/04/19(水) 23:45:47 ID:LajeG7nj
AVR-Wikiの雑談1とよくある質問が4日ぐらいServer Errorになっているのですけど
>>807 どうやらファイルがでかくなりすぎたみたいでした。
ページ自体は変更してないのにErrになるのが謎ですが、分割して対処しました。
809 :
774ワット発電中さん :2006/04/20(木) 09:01:58 ID:7TlNoILB
低速で使いたいならPICで、高速で使いたいならAVRで、
>803 Thx なるほど。入力にしとけばハイインピーダンス状態ってことか。
811 :
807 :2006/04/21(金) 00:36:00 ID:vvwSrV78
>808
さっそくの対応ありがとうございます。
AVR-WikiとELMは毎週のように巡回しています。ありがたいサイトです。
出てきたついでに、
>751
M16C/26とかにはスタート,ストップビットもハード的に反転できるUARTがあります。
>789
TEMPLEさんの秋月用ファームは、
http://www.t3.rim.or.jp/~temple/software.html WikiみてMega対応の新しいライターを作られてはどうでしょう。
>810
寄生ダイオードがあるので12Vとかには使えません。電源電圧でネ。
812 :
789 :2006/04/21(金) 08:40:38 ID:1byX7dVy
>>811 mega対応と言うけど、AN911系ライターの面倒さとしてコード振らないといけないってのがあるよな。
コード互換性がなければファームとソフトがセット。シグネチャコードをそのまま使えばいいのに・・・と思う。
こうすると1200には収まらないのかもしれないが。
やっぱりELM-SPIブリッジなどに移行したほうがいいと思う。キットはないけど。
>12V不可
寄生ダイオードというか、保護ダイオードがあるからねえ。
813 :
774ワット発電中さん :2006/04/22(土) 01:06:11 ID:3JqT6fVe
WinAVR使用での質問です。 90S2313のUART受信を行い、以下のような構成でコーディングしました。 しかし、変数rxに値が入らないのか、main()内ではrxが0x00のままのようです。 グローバル変数という概念がないのでしょうか。私の問題点の指摘、 この問題の回避方法等、識者の方にご指摘いただきたくお願いします。 (...省略...) uint8_t rx;/* main()の外、グローバル変数 */ ISR(UART_RX_vect) { rx = UDR; } main() { ... if(rx==...)/* */ ... }
>813 volatileでググれ。
>>813 コンパイラが勝手にループの中の式を削除しちゃうんですけど。
でググれw
817 :
774ワット発電中さん :2006/04/22(土) 20:01:04 ID:Gb04Es3t
>>781-782 こういう回答を待っていました!
感激です。
いくらでも設定方法はあるけど、お勧めメニューに相当するものを
とりあえずは最初に教えて欲しかったんですよ、理由付きで。
先人の知恵を学ぶことは、とても意義あることかと。
ところでなのですが、winAVRでC++開発はどうでしょうか?
AVRstudioのGCCpluginは、正常に機能しないと聞いたのですが・・・
818 :
813 :2006/04/22(土) 21:10:11 ID:3JqT6fVe
早速の返答ありがとうございます。 やっぱりコンパイラの最適化で(?)そうなっちゃうんですね。 Wikiにあったんですね、自分の調査ミスでした。 わざわざ有難うございました。
>>819 ありがとうございます。私の勉強不足に丁寧に回答くださり感謝です。
その他の項も、なるほどでした。IARはコード効率よくても、問題ありますね、やっぱり。
>>820 >IARはコード効率よくても、問題ありますね
IAR使ったことないんですけど、なにが問題なんですか?参考まで教えて。
>>796 -d200を付けてコマンド与えたらデバイス認識できました。
ありがとうございました。
PICスレで流行っていたので・・・・ ATmega8の成分解析結果 : ATmega8はすべてやましさで出来ています。
赤外線リモコンの信号を受信するプログラムを書くのに正確なウェイトルーチンが必要なんだが、 Cで書くのとアセンブラで書くのとどっちがおすすめ?
Cで書いてうまく行かなきゃアセンブラにしろ。
まさか、ウェイトをfor文で回したりとかして実装してないよね・・?
>>824 割り込み使わないなら、ウェイトループでかまわない。
割り込み使うならそれじゃ不正確になるのでタイマを使用すべし。
「今何時何分だから3分後は何時何分。それまで時計をみておくべ」
比較一致を利用しても良し。
最適化でウェイトが無くなる
829 :
774ワット発電中さん :2006/04/26(水) 14:31:44 ID:HhCepeL5
JTAGICE mkIIでATMega8にISP書き込みってできますか・・・?
>>828 そこでWinAVRのディレイマクロですよ
WinAVR以外ならワカンネ
>829 ISPモードですよね AVRStudioのJTAGICEmkIIメニューにATMega8は載ってないすね コマンドライン版でオプションつけて起動したら未サポートデバイスと表示された 最低でもDebugWire対応しているCPUでなきゃ無理のようですね(裏技があるかは知りません) ちなみにAVRISPmkIIで古いCPUはサポート外ですがxmlファイルを修正すれば焼けるらしい AVRFreaksのフォーラムのどこかにでてた
そもそも JTAGICEmkIIって Mega8に物理的に繋げられるの?
>832 >そもそも JTAGICEmkIIって Mega8に物理的に繋げられるの? Mega88とちがってdebugWireでないので接続は出来ないですね。 ただ現在のJTAGICEmkIIはJTAGモード/debugWireでの書き込みだけでなくISPモードでの書き込みがサポートされています。 ファームウェアがサポートしていればISPモードでMega8に書込みできるはずですが残念ながらそうではないようです
>833 それは昔の話 まだ知らない人がいたんだ・・・ AVRStudio4.12(からだったかな?)からJTAG/debugWireをサポートしているすべてのCPUでISPモードがサポートされています。 STK500なんかと全く同じメニューがでてきてISP読み書きがすべて可能です。 CPUと接続するピンもJTAG用のピンではなくISP用のピンに接続します。 なおJTAGのコネクタはピン配置をISPピン配置に変換するアダプタが必要です。
835 >834 の間違いです orz
>>835 考えてみるとISPでヒューズ書き換えなどができるなら、ハードはあるってことだから
適切なソフトさえあればできるわな・・・まさかDWENヒューズコマンド以外をブロックする
ハード積んでる訳じゃないだろうから(w
838 :
834です :2006/04/27(木) 12:00:47 ID:iTrlcgXM
>837 ハード的にはISPもJTAGも似たようなもんです chanさんのavrsp.exeではXlilinxやAlteraのJTAGケーブルでISPをサポートしてますしね
>829 その後気になってATmega8が書けないかいくつか試してみました。 まずavrdudeならいけるか?と思ったのですが現在のavrdudeはjtagicemk2でのISPモードをサポートしていませんでした。 AVRISPmkIIの裏技と同様の方法でATmega8.xmlの[ICE_SETTINGS]にElement [JTAGICEmkII]を追加してみました AVRStudioのJTAGICEmkIIメニューからMega8が認識されISPモードで読み書きできました ただコマンドライン版のjtagiceii.exeでは認識できませんでした。とりあえずここまで
841 :
774ワット発電中さん :2006/04/27(木) 17:17:04 ID:qCknLjpd
どなたか教えてください。 WinAVRを今月でた最新の物に居れなおしたらコンパイル できなくなりました。 以下のようにメッセージが出るのですが、何が原因なんでしょか。 elfファイルっていつも自動で生成されてたと思います。 -------- begin -------- avr-gcc (GCC) 3.4.6 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. make.exe: *** No rule to make target `obj/main.o', needed by `main.elf'. Stop.
>>841 makefileの問題っぽいね。
objectを置くディレクトリというのができてる(obj/)のが今までと違うような。
>841 mfileのmakefile_templateが中途半端に変更されているね WinAVR20060421をインストールする前に現在のmakefile_templateを保存しておいたほうが良いみたい
844 :
774ワット発電中さん :2006/04/28(金) 08:29:04 ID:GqMzEDDI
>>842 ,843
objと.depというディレクトリが生成されるみたいです。
でもそのなかみは空っぽ。以前のVerのmakefileを流用すればいけるんですかね?
うろ覚えですができなかった気がします。
以前のmakefileと以前のelfファイルなどがあるとビルドが通ったような
挙動はしますが、実際Hexはそのまんまでした。
昨日前VerのWinAVRに戻そうと探したのですが見つからなくて、
眠かったし寝てしまいました。折角の休みなのにしょんぼりだ。
>>844 たぶん*.c→*.o (%.o : %.c)のところで、生成される*.oを全部objフォルダに出しておいて、
*.o→*.elf (%.elf: $(OBJ))で、それをリンクするはずだったんでしょうね。
この2カ所(もしかしたら*.S→*.oも)に問題がある予感。
846 :
844 :2006/04/28(金) 08:53:40 ID:6ff0EmiL
>>845 うわー、なんだか俺にはついていけない領域だ…。
とりあえず、main.oも、main.Sも何も生成されてないです。
上記の2個のディレクトリの中身も空っぽで。さっきWikiのほうにあった
makefileで修正してみましたが症状の変化はありませんでした。
皆様は上書きアップデートか何かですんなりいけてるんでしょうか。
847 :
844 :2006/04/28(金) 09:04:12 ID:nV9RiQe+
makefile ながめてて、cpp関連かなーと思って、 main.cのコピーをmain.cppとして作成したらhexファイルができました。 おさわがせしました。
,:::-、 __ ,,r 〈:::::::::) ィ::::::ヽ 〃 ,::::;r‐'´ ヽ::ノ ,'::;' /::/ __ l:::l l::::l /:::::) ,:::::、 ji |::::ヽ j::::l、ゝ‐′ ゙:;;:ノ ,j:l }:::::::ヽ!::::::::ゝ、 <:::.ァ __ノ::;! . {::::::::::::::::::::::::::::`='=‐'´:::::::::/ ';::::::::::::ト、::::::::::::::i^i::::::::::::/ `ー--' ヽ:::::::::::l l;;;;::::ノ `ー-" 【ラッキーコアラ】 このレスを見た人はコピペでもいいので 10分以内に3つのスレへ貼り付けてください。 そうすれば14日後好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です。
>>844 ,845
>objと.depというディレクトリが生成されるみたいです。
>でもそのなかみは空っぽ。以前のVerのmakefileを流用すればいけるんですかね?
>うろ覚えですができなかった気がします。
>この2カ所(もしかしたら*.S→*.oも)に問題がある予感。
.depは以前のmakefieも作成していました(依存関係用です)
新たにobjディレクトリが作成されて中間ファイルなどはこちらに作成されますが別に問題はありません
makefileはgcc/avr-libc関連が機能的に変更されない限り一度作成したものはそのまま使用できます(再作成の必要なし)
通常gcc等ーのバージョンがあがった場合は一度<make clean>をしたあとに<make>を実行します
>>847 >main.cのコピーをmain.cppとして・・・
基本的な解決にはなっていないような・・・
おそらくmekafileを変更しているところのどこかにミスがまだあるのではと思います
例えば、今回のMakefileでは
TARGET = main
SRC = $(TARGET).c
CPPSRC =
とします
Wikiの分で確認しましたが特に不都合はないです
特に今回の場合はWinAVR20050214等からは以前のmakefileの変更なしでコンパイルできます
長々とスマソ
850 :
844 :2006/04/29(土) 11:11:12 ID:Ld4AkzaF
make clean後にmake allしてます。やはり.cファイルだとエラーになります。 コメントにC++の //を使ってるからでしょうか。以前はCファイルでも//使っても 問題なかったもので。 ご指摘部分のmakefileはその通りになっています。 うーん、もっとそういったところを勉強しないとなぁ。 ありがとうございました。
>>850 >make.exe: *** No rule to make target `obj/main.o', needed by `main.elf'. Stop.
このエラーに限って言えば、君の心配は杞憂だ。
852 :
844 :2006/04/29(土) 11:41:37 ID:2HdhqYR0
>>851 どういうことでしょうか、今日もさぁやるぞと思ったら
やはりそのエラーでHexファイルができないです。
できるのは .dep obj ディレクトリだけ。orz
Wikiのmakefileでやってます。
$(target).c のあとにゴミがあるのでとってます。ゴミの有無は関係ないようです。
エラーメッセージの意味がわからないのでそこを探れば良いかがわかりません。
あと、WinAVRのいれなおしもやっています。前のバージョンにもどそうにも
DLできなくなってるんですね。
何度も申し訳ないですが、お教え下さいませんでしょうか。
>>850 cppだといけるというのがわかんないんだよなあ。makefile(Wikiにあがってる奴)見る限り、
cpp用設定以外は根本的な違いがない・・・チキンなので新版入れてません。
まさかと思うけど、C言語ファイルの拡張子が大文字のCで、新しいmakeがこれを判別するとか?
>852 現在使用しているMakefieをAvrWikiのSandBoxにアップしてみてください 動作を確認しますので SandBoxのページで[編集]を押して[参照]dでMakefileを指定して[添付]でアップできます
855 :
774ワット発電中さん :2006/04/29(土) 19:15:36 ID:giCG6QZl
856 :
852 :2006/04/29(土) 19:37:20 ID:oMTJiYVl
>>854 了解です。えっとCPPにしたら行けた件ですが、
こっちの環境のせいでした。どうもWin98SEだとmain.c(全て小文字)をMAIN.Cと
認識するようでmakefileで見つけられなくなっていたようです。あと、
コンパイルできたと思ったら、main.cの中身がアセンブラに改造されてパーに
なりました・・・orz
makefileアップしました。
大文字小文字のワタシのヘマはちょうどWin98SEに環境を移行させたのと被った
のがややこしくしたようです。(旧版の時はWin2kです。)
>856 確認しました やはり大文字小文字の問題です。 72: TARGET = MAIN ファイル名は実際のファイルに大文字・小文字を合わせてください 80: SRC = $(TARGET).C これは$(TARGET).c の様に拡張子は小文字でなければいけません (Mafileの中で大文字の.Cの定義がなされていませんので) Makefileの中では慣例的に小文字で書くようになっていますので小文字の方が良いでしょう
857 >856 追伸) Win98環境では大文字・小文字の扱いが異なるようです
>>859 Thx
2ちゃんねるのスレに貼られた直リンだけを許容してるのかね?
Googleの直リンを禁止する意味はよく分からないが・・・
クロールが気に入らないなら、それを禁止すればいいだけだろう
>>860 やってみたけど2chのスレに貼られた直リンもアウトだよ。このスレをexplorerで開いてリンクをクリックするとアウト。
もっともこれは2chの外部リンクシステムがURLの一部を切り捨ててしまうのが原因っぽい。
適当なサイトにリンクを作ってクリックしてみたが、やっぱり
>CGIが、設置されているユーザ(本人)のホームページ領域以外から呼び出されました。
ではねられます。リンク元情報があればチェックの上はねる。リンク元情報がなければOKなんでしょう。
2chブラウザを使ってリンクを開く場合はリンク元情報を入れずに呼び出しているんじゃないかな。
専用ブラ作ってHTTP_REFERER細工すればいいんでね?
Wikiのために専ブラとかありえんだろ
サイト間移動のときはリファラ吐かないブラウザ?はあった希ガス。 avr-wikiの場合は、rejectされたらGOボタン押し直せばいいだけでは?
>>865 そだな。アドレス欄のURLはそのままだからね。
>>865 スマソ。IEの場合はGO押し直しでもダメみたいだわ。
tiny2313のデバイス定義ファイルって どこから入手したらいいのか誰か教えてください。
>868 それってAVRStudioのAVR Assembler用のファイルのこと? それならAVRStudioをインストールしたディレクトリのAvrAssemblerやAvrAssembler2の中にあるけど
870 :
774ワット発電中さん :2006/05/06(土) 11:43:25 ID:TwBU3lCH
AVRISP2 が入荷してるぞ。digikeyに。
>>861 マイコンピュータからアクセスで問題無し。
PIC板から来ました〜。 昨日マルツに注文してATMEGA168と48と74HC126が届いた、 とりあえず………ライターからかorz
質問があるんですけど、 あるWebページでFlashROMに格納してあるデータへの アクセスのやり方の例として ldi scroll,5 ldi zero,0 ldi tempA,low(data*2) ;データアドレス下 ldi tempC,high(data*2) ;データアドレス上 add tempA,scroll ;相対座標の下位ビットを加算 adc tempC,zero ;相対座標の上位ビットを加算 mov ZL,tempA ;テーブルポインタ下位ビット設定 mov ZH,tempC ;テーブルポインタ上位ビット設定 lpm ;r0にデータをロード data: .db 0x07,0x02,0x03,0x2f,0x0a,0x55,0x45 って書いてあったんですけど、これの (data*2)はどうゆう目的でやってるんですか?
アドレスが2の倍数で変化するから
PICからAVRに乗り換えてみようと思ったけど PICみたいにGUIな画面でシリアルでAVRやUSBを使わないのってひょっとして無いの? どこ見てもAVR使ってたりプリンタポートばかりで90Sとか古いのばっかりでMAGE168に対応してないし……
>>875 納得しました。ありがとうございました。
>>876 要するにAVRaspのGUフロントエンドがねーか?って話??
880 :
774ワット発電中さん :2006/05/07(日) 01:49:22 ID:mceZv9Bv
>>876 74HC126を一つ使って、シリアルポートから、GUIで設定することなくドラッグアンドドロップ一発で、
デバイスも自動設定してくれて、ほとんど全部のデバイスに書き込める簡単な方法を
使っている人がたくさんいるようです。
見つからなければ、あきらめてPICでもいいでしょうけど。
PonyProgは?
ChaNさんところの、USB2SERのライタをATmega8で作ったよ。 アセンブラの移植(90S→m8)は凄く簡単だったよ。 うちのPCはシリアルポート無いので、USBシリアル。 USBシリアルだと74HC126だけのライタだと凄く遅いので、 それでATmega8を焼いて、以後はUSB-SERで。 ライタプログラムはAVRSPのコマンドラインで十分でしょ。
USBaspをWindowsでご利用の方へ avrdude.exeで使い方がややこしいという意見がありますので chanさんのavrsp.exeに組み込んでみました。 avrspに慣れていらっしゃる方はavrdudeより良いかも・・・ 保証はしませんが試してみたい方はAVR-WikiのSandBoxのページへどうぞ
dudeもavrspもコマンドラインだし大差ネーヨ 誰かどっちにも使えるGUI作ってくれよ PonyはGUIあるけど、いかにもホビー臭いクセがあって使いにくいし #俺は876とは別人だよ
>>884 avrdudeにはGUIがあるよ。
WinAVRインストールしたら、avrdude_gui.exeってのがc:\winavr\binに入っているよ。
なんのことはないguiで設定したパラメータをavrdudeに渡しているだけだけどね。
しかしそんなにgui欲しいのかな・・・・俺はavrsp.exeがguiオンリーだったらとても使えなかっただろうと思っているのだが。 まあ両用できると一番いいな。
>>885 dudeのGUIって、だいぶ前に開発が凍結された糞じゃなかったけ?
GUIを求めるのはVBも使えない人達って事は解った。 もうVSも無料になったのだから自分で作るのが一番早い。
正直コマンドラインアプリに値を渡す方法がわからなくて開発凍結中です
GUIいらね。DnDするだけで何も設定しなくてもいいし。 しっかし、VSが只なんていい時代になったもんだ。
GUI無くてもマイコン初めて触る初心者が10分程度で理解できるマニュアルがあればそれでもいいなと思う
どうせMakefileとかに一回書いてあとは使い回すだけだから 難しいって言ったってどうということもなかろうと思うけど...
VSがタダなのか。初めて知ったThx。 でも、作ったアプリを他人に使ってもらう時に .NET Frameworkインストールしてもらわないと いけないんだよね。
AVRでAD変換とLED点灯をするコード(やすっぽいが売り物)+α をCで作って最適化コンパイルで950Byteくらいになった。 小さすぎ!とか言われたんだが、どうなんだろ。何か大事なものが欠けているだろうか・・。 不安だ。バグあるだろうね、とか言われたし。 独学ではいかんせん問題がありすぎる。
895 :
774ワット発電中さん :2006/05/09(火) 01:22:26 ID:m2AWUDrL
GUIな画面なら でんし研のAVR-ISPをよろしくお願いしまーす。 今ならI/F付録版もありまーす。
897 :
774ワット発電中さん :2006/05/09(火) 05:37:02 ID:0b5jcbRk
898 :
774ワット発電中さん :2006/05/09(火) 06:44:14 ID:RNv46qw/
自分で作れ
なんじゃこりゃ お得意の変換基板つくって表面実装のやつ使えばいいのに
>>897 配線ずみなところが売りなんでしょうけど、
ユニバーサル部を使って自由に試作と言うにはちょっと高いですね。
虎技付録H8ボードのような奴だと厚みが出るのを嫌ったのかな?
こんなのなら生のユニバーサル基板の方が400%マシな気がする。 買う人いるんだろうか?
902 :
774ワット発電中さん :2006/05/09(火) 19:28:30 ID:TWoKDLaF
>>894 AD変換とLED点灯といってもどの程度の規模かは
分かりかねるけど、そんなものなのでは?
むしろもう少し抑えられそうな・・・。
いかんせん自分はアセンブラ派なんで
C使いの人とは容量に対する感覚も若干違うでしょうが。
>>894 avr-libc付属のlargedemoが似たようなことをやって1536Bytesだね。
こっちはスイッチやUARTからも読んで明るさ調整し、しばらく放置したらEEPROMに
最終値のバックアップとったりしてこれなので、ADCとPWMだけにしたらかなり小さくなりそうだな。
904 :
774ワット発電中さん :2006/05/10(水) 08:54:00 ID:NPo8EXIO
>>894 PWMを有効にして、
単独AD変換を割り込み使わないで行い、得た値をどんどんOCR1Aに入れる動作を繰り返す
だけのプログラムにしたら、132バイトになったよ。mega16、内蔵発振1MHz用のつもり。
#include <avr/io.h>
int main(void) {
TCCR1A = _BV(WGM10) | _BV(WGM11) | _BV(COM1A1) | _BV(COM1A0);
TCCR1B = _BV(CS10);
DDRD=_BV(PD5);//OC1Aを出力に
ADCSRA = _BV(ADEN) | _BV(ADPS1) | _BV(ADPS0);
for (;;) {
ADCSRA |= _BV(ADIF);
ADCSRA |= _BV(ADSC);
loop_until_bit_is_set(ADCSRA,ADIF);
OCR1A=ADCW;
}
}
906 :
774ワット発電中さん :2006/05/10(水) 22:06:41 ID:RNNej+9O
WIN AVRなら基本部分は400バイト弱で、Project Optionsの Optimization(最適化)を-O0から-O2にすると上の人ぐらいの サイズになると思います。
>>897 p板.comで、100*100の両面を起こすと、400*400で16枚取を20枚起こすと146000円。320で割ると@456円。
DigiKeyでMega168が100個で@280円。
まぁそんなもんと言えばそんなもんかなあ。
320枚、掃ける保証があるなら、@500円で基板起こしてもいいけどw
>>907 さらに言うと、それに色々部品つけてを全て売り上げても、
粗利益は30万円程度にしかならんだろうね。
商売のシロートは、100円ショップとかの価格設定の意味を知らない。
仮に粗利率50%として、100円の商品を一個売って粗利益50円。
店を運営するのに家賃200万円、人件費50万円その他込みで300万円かかって
いるとすると、月あたり6万点分の売上が無いと損益分岐点を越えない。
単価1000円の粗利率50%でも6000点分の売上が必要。
例えが悪いかも知れないが、原価が150円のラーメンを800円で売るのは高すぎ
とかほざいている奴は、一軒のラーメン屋が1日何食のラーメンを売る事ができる
のか考えて、粗利益額を計算してから文句を言うべきだ。
909 :
774ワット発電中さん :2006/05/10(水) 23:11:37 ID:BgMw0i6v
隊長! 苺のような直販と、ラーメン屋の固定費を同じ次元で語る馬鹿を発見しますた! 割高な物は売れずに不良在庫になる、それだけのことです。 買い手は原価など知ったことではありません。
そりゃあだって100円ソップのダイソーは創価学会員の忠誠心を利用して超低賃金の製造コストで製品作ってるもんかてるわけないじゃn
つうか苺は、今までデビューセールで安めだっただけだろ。 軌道に乗ってきたので利益率を徐々に上げてきただけ。 フィットデザ○ンみたいに流通パートナーを見つけるか、 苺のように直販で小ロットでも利益率を確保しようとするか。 ガレージメーカーだってそれぞれだ。
>>909 あんた、自分の給与どこから出すつもり?
>>912 アマチュアか官公庁とかの、買い手オンリーの立場なんだろ、
>>909 は。
で、あんたは売り手の理屈オンリー。はじめから議論にならん。
俺には、
>>909 は学園祭の学生店舗の発想に見えたよ。
俺が言ってるのは、確かに売り手の理屈だけど、売れなきゃ値下げすれば良いという
のはあり得ない。最初から、想定売上と想定粗利益決めてから、その事業をやるべきか
やらざるべきか判断するのよ。
というか、粗利益30万円は全部売れたときの前提だからね。売れないで不動在庫に
なれば更に減る。処分で安売りすれば売れるなんてのは、損益分岐点越えてから
考えれば良いことだ。
「1枚1000円にしたら買っても良いのに」ってのは、売り手がそれで十分な利益をあげ
られないなら、ただの願望だよ。
ちなみに、この手のボードだと、個人的には粗利率が80〜90%くらいないと無理じゃ
ないかと思う。それだけ安く原料調達できてるかは知らない。
粗利率高杉wwwwwwwwwwwwwwwww
>>915 これ、P板.com以外の加工賃はいってないよ。
まあ、そこまで読み解けってのも無理だろうけど。
広島のジャンクパーツ売ってる松本無線の店員さんが 「300円が30000円になるからやめられない」って言ってました(><)
たかがAVR程度に妄想激しすぎ。
中古ゴルフショップの粗利率は90%くらいなんだけど、それでもパタパタ潰れる。
売れるのであれば、薄利でやる必要は無い。
>>908 全て捌ける保障があるんだから粗利益30万
でもいいだろ。
( ´・ω・)うーん、まあ安い方なんじゃないの?蛇の目は配線めんどくさいし。自分で配線したらちょっとでも、30分ぐらいはかかるから、時給・・・ 普通に作ったら(ピー板COM)あんぐらいにはなるよ。大量生産でもないし売れにくい?だろう 商売は難しいね
つーことで、最近流行りの高すぎる!企業努力が足りない!厨も勉強しろと。 日本全体でユーザーが1000人もいないような商品をフォローしてくれる会社 も、少しは大事にしてやらんと、欲しいものが手に入らなくなる。 ダメ企画にダメ烙印押すのは構わないと思うけど、価格の妥当性は簡単には わからんし、それで買う奴がいて採算がとれてるんなら、自分が買いたい価格 より高くてもそれは我慢するしかなかろう。
へんなので沸騰しているなあ。
要は、高いと思う人は買わない、高くても欲しい人は買う、
そして売り手はこの辺を見極めて値段を決める もしくははじめっから断念する
それだけのことだし。
高いというのは自由(発言者にとっては高いと言うことだけ)
それをぼったくり扱いするのはちょっとなぁ〜
>>923 ですね。欲しくないなら文句いって却下でもいいけど、
「欲しい!でも高い!」という文句を業者にぶつけるのはみっともないよなあ。
鎮めに来たんだか焚き付けに来たんだか
マイコン趣味自体がサブカルなのに、更にその中でもAVRなんてマイナーも良いところだろ。 コンシューマー市場の発想というか、そういう所だから許される屁理屈を持ち込まれてもなぁ。
まぁこのスレつーか板で、売り手側の論理が優勢になるのはしかたないわな 開発者は基本的に売り手側に組み込まれてんだから しかしおまいら本当に、自分サイドのことしか考えが行かないのね ┐(゚〜゚)┌
は? 売り手側も買い手側も、必死なのは約1名のようですが<ぷ
まあ、あれだ。 完成品を買ってきた方が遥かに安いのに、わざわざ高くつく自作をするわけで。 そこには価格がどうこう以上の価値があると、「少なくとも本人だけは」思っている から自作をするわけだ。 キッチンタイマー1つ作るのに1万円かける阿呆がおるかも知らんわけで。 それを見てニヤニヤしながら共感する阿呆もおるわけで。 同じ阿呆なら踊らにゃ損だよw まあ、「たけーなーorz」と思う事はしょっちゅうだけどな。
VS1011 単体の値段で MP3 プレイヤーが2台買えるからねぇ…。
933 :
931 :2006/05/11(木) 18:34:33 ID:6bQrOyhq
>>931 言葉足らずで誤解されそうなので。
共感する阿呆って俺のことね。
>>932 それ言っちゃ悲しくなる。
ま、MP3プレーヤはもうとっくに旬が過ぎちゃってるからね。
だが、あえて手間暇かけてオリジナルを作るのもまたイイ。
>>926 ( ´・ω・)え?そのつもりで書いたけど?
蛇の目基板ではいせんするのは大変だから、ちょっとでも配線(プリント)されてれば、じかんがかからなくてお得ってこと。
そういう意味で安いと。
936 :
774ワット発電中さん :2006/05/12(金) 02:45:50 ID:HfvuXW9c
AVR Studio 4.12 使ってるんだが、Tools > Customize > Tools でさ、 %n=プロジェクト名とか、スペシャルシンボル的なモンは使えないのか?
tiny2313 がディスコン間近って聞いたんだけどマジですかね。 AVRのMLFタイプ最小でNCが無いという美味しいマイコンなのに A/Dが無いから・・・か? MEGA88系とtiny25系しか残らなかったら嫌だな。 ATMELは長く供給するって観点がちょっと足りない
>>937 tiny26のピン配置にみんな慣れちゃった、今更使わない
実はAT90S2313の在庫が山のようにある
tiny26ってそんなに人気あるんだ・・・。261になるって聞いたけど。
>>939 いや、適当に書いただけよ(汗
2313があんなに好きだったのにtiny26でいいやといってtiny2313買っていない俺だけかも。
2313の保守部品としての需要はそれほどないのかな
Tiny26はUSARTがないので欧米のATMEL厨には評判が悪い罠 それでも日本で人気があるwのは、単に秋月で売ってるTinyがこれしかない、 というのが理由だろwww
そこは嘲笑するような場面じゃあないだろう
逆毛語の使い方間違ってます! つかtiny2313ディスコンはマジですか?
ATmelのディスコン予告はデータシートにかなり前からのる。ATmega644みたいに。 Tiny2313は今んとこそういう気配ないな。 つーか貴重な20MHz多ピンのMega644のディスコンやめてくださいおねがいします。
今tiny26lでA/D入力しているのですが、値が変で pin測定電圧20mmV程度で変換値が400mmV等となり 実ピン電圧もピン番号によりばらついていて有るピンなど0.6Vも有ったり もちろん、ピンは入力のプルアップなしの設定で回路上は短絡など有りませんし A/D変換中IOピンは動作停止してます。(少なくとも実測でパルスは出ていません) cpu内部で漏電でもしているのかとチップを替えても同じ アドバイス御願いします。
>>945 まずは日本語を何とかしる。
それが終わったら、深呼吸してAVCCとAREFの処理を
間違っていないか調べてみる
なんで二チャンで質問してくる香具師って日本語が弱いんだろうか?
>>945 あと、20mmVっていうのは20μVの事ですか? ときいてみたり
>実ピン電圧もピン番号によりばらついていて有るピンなど0.6Vも有ったり すべてのpinを繋いでるの? 繋いでなくて開放してるんなら電圧があってもおかしくはないぞ。
>>945 基準電圧の設定(ADMUXに入れている値)と電源電圧と実際に得られているADCL/ADCH値を晒そう。
ADLAR=1になっていて値が64倍になっているというオチじゃあるまいな?
日本語もヘンで申し訳ありませんでした。 avccが浮いていました。 avcc電源接続にて各端子電圧も変換値も正常になりました。
>>951 普通はAVccにはマイクロインダクタかます。
データシートに推奨回路書いてある。
>>952 漏れはマイクロインダクタの代わりにフェライトビーズを入れている。
簡単だし、意外と良く効くよ。
マニュアルにはアナログを使わない時でもAvccを電源につないどけっ
て書いてあるね。
普通とか言うな上位3ビットぐらいしか使わんときは直で十分じゃ フェライトビーズいれることとインダクタ入れることと何が違いがあるのか
>>954 十分じゃないよ。パスコンの入り方(実装方法)や周辺回路によっ
てはAVccにそれこそ1ボルトぐらいのスパイク状ノイズがのってる。
こうなっちゃうと上位3ビット精度も取れない。前に設計したとき、
ADCの出力が一定しないことがあって、AVccラインをオシロで
見たら、絶句したことあったし。
フェライトビーズの方がマイクロインダクタより実装が楽なのと、
中を通す線を太くすることで直流に対するインピーダンスを下げる
ことができる。さらに、周波数が(適当に)上がったとき損失が大きい
ので高域ノイズのダンピングには良い。(スパイク状ノイズの場合は、
フェライトビーズを入れるだけでも、相当に落とせる)ただし、インダ
クタンスは小さいから、低域のノイズはなかなかうまく取れない。
(この辺はキャパシタとの兼ね合いもある。)
なるほど
ふむ。いままで付けてなかったけど、なんか動いてたな。 幸運だったんだろうか。まぁ負荷も電源も低ノイズ・低負荷なんだけど。
>>955 組み込みはともかく、普通にマイコン単体+周辺チョコチョコで作るときは
電源のところに0.1uFの積層セラミックと33〜100uFの電解をパラっておけば、
まず問題は起こらないからねぇ。
秋月のATmega128で、TOSC1、TOSC2に32.768kHzのクリスタルを接続して 使ってる人います? クリスタルの両足をそれぞれTOSC1、TOSC2に接続。 同じことをやってるんですが、どうも発振が安定しなくて。 1024分周で6〜8秒に1回オーバーフローが起こっているので・・・128Hz〜170Hz? オシロは持ってませんです。 mega128のピン変換基板を経由していてクリスタルとICピンとの距離が2〜3cm くらいありますが、関係ありますかね?
>>959 1024分周なら8秒に1回オーバーフローで正常じゃない?
(1024*256/32768=8)
6秒になることもあるということ?
961 :
959 :2006/05/16(火) 19:49:43 ID:looN4H7f
>>960 あ゛!
256カウントでオーバーフローだった・・・
久しぶりにいじったのですっかり抜けてました。
ありがとう。
だいたい8秒でOF発生してます。
クリスタルの接点を指で押さえたりすると6秒。
発振不良かと思っていろいろ試してたんです。
・・・
962 :
774ワット発電中さん :2006/05/17(水) 23:27:34 ID:iOGSNk08
メインの水晶発振回路を指で触ると暴走しちゃう。 LEDならデタラメな点滅がきれい。接続先によっては素子や機器が壊れるかも。 サブ発振だと回りに影響ないのかなぁ。
963 :
774ワット発電中さん :2006/05/18(木) 08:34:21 ID:tyP41lVf
digi-keyにavrisp2が、、、、もう品切れです。。(早)
Compass Lab にAVRISP2が在庫ありになってたよ。 digi-keyの方がずっと安いの?
そんなわけわからんとこが買い占めるから
966 :
774ワット発電中さん :2006/05/18(木) 22:12:25 ID:wh1QU32m
Compass Lab 6000円。。digi-keyは約4000円+送料。 買い占めないでぇえぇぇええぇえぇ。
967 :
774ワット発電中さん :2006/05/18(木) 22:20:01 ID:wh1QU32m
AVRISP2は6ピンコネクタしか使えないyo ピンソケットとピンヘッダを使って10品ソケットアダプタを作ってね。 コ*パスのケーブル高いなりよ
>>967 逆に聞きたいんだが、10ピンソケットなんか、何に使うの?
ISPだったら普通6ピンでしょ?
クマー
昔は10ピンが主流だったらすぃ。 今は6ピンみたいだね。
10ピンでも6ピンでもどちらでも良いとは思うけど 逆さし防止用にとBOXタイプが必要な場合6ピンは極端に入手性が悪い なら10ピンが良いかというとJTAGICEmkIIのJTAG用10ピンがあり混同する
>>967 んなもんフラットケーブルを裂いて10pin用に合わせて圧着すればすぐできるじゃん。
ターゲット側の4本のGNDがターゲット内でつながっているのが前提だが。
>>968 俺もだらだらと10pinで使い続けています。
GNDが多いと何となく安心(フラットケーブルで信号線の間にGNDが挟まる)
LEDピンは実質的に使わないのでこれを埋めれば逆差し防止もできる。
一番の理由は6pin圧着コネクタがないことかな。
6pinでも工夫すれば作れるのはわかっているんだけど・・・・
圧着なんて贅沢な 長いピンソケットをのこぎりで切ってフラットケーブルハンダ付けだ
>>973 そう、その手があるのは知ってはいるのだけど、
熱収縮チューブで守っても半田付け部に力がかかるのがいやな俺。
とはいえターゲットに10pinのスペースを割くのも大変だと思い始めたので
次から6pinいこうと思っています。
975 :
974 :2006/05/19(金) 12:53:30 ID:WhOJE05O
あ、フラットケーブルコネクタのアレって圧着とは言わないんだっけ?? 圧着っつーのはあのごっついのを思い出すなあ。
せっかくAVRには便利なISPがあるのに、製品はメンテ用の6pinすら出してもらえない謎。 3pin(vcc,gnd,com)で1線通信ブートローダを自分で組んでるよ。苦労した割に効果が少ない。
コネクタにハンダじか付けしたところを100円ショップのホットメルトで固めると、結構持ちますよ。
DIPは板バネICソケットにISP配線した物を被せて書き込んでます。 従って、基板にISPの配線自体有りません。
6ピンの圧着コネクタってありますよ。
共立エレショップのQIコネクタで、3ピン2列で52円。
圧着はホーザンの圧着器P-706で圧着して使ってます。
>>978 ブレッドボードでテストするときは、似たようなことをしてます。
使っているのは、サンハヤトのDIPICテストクリップだけど。
980 :
447ワット発電中さん :2006/05/19(金) 18:54:31 ID:raQnjE70
>978 それいいねぇ。早速買おうっと。
>>976 1ピンでも出してもらえるだけ有り難い
おいらの所はメインのMPUからI2Cでダウンロードっす。
982 :
774ワット発電中さん :2006/05/20(土) 00:36:19 ID:hg3GJ+9v
圧着じゃなく圧接のこと?
>>972 ネットから情報を得るだけじゃなくて、たまにはトラ技でも買って広告を見るのもいいぞ。
ダイセン電子工業でセット販売している。
>>983 ああ、そういえばあれ、ダイセンのホームページには出てないんだよね
あのホームページ手抜き杉
ダイセンの商品は共立でも一部販売してるけど、何で全部揃えないんだろうね〜