_____
/ /|
/ ( ゚∀゚) /.∠フ 個人でも手軽に使える
/ /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
/ __ o/.∠フ || 中心に語るスレッドです。
∠| ̄ ̄凵 ̄ ̄|∠フ || *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
.|| |_____|/||
Atmel AVR 8-Bit RISC
http://www.atmel.com/products/avr/
※もしテンプレに入れて欲しいurlなどがあるなら、 キーワード「テンプレ」をレスに含めること リンク切れ報告の場合も同様
前の
>>995 ARMのgccだけど、こんなコードが
for (i = 0; i < 100; i++) {array[i] = 0;}
こんなコードの処理に変わっててビビった事がある
for (i = 100; i !=0; i--) {*p++ = 0;}
定数と比較するより0との比較の方がコードが少なくなるから
iの判定条件変えてた
6 :
774ワット発電中さん :2012/07/11(水) 15:09:12.86 ID:QR/RfOgk
>>5 数式や訳の解らんプログラムよりも立派な作品例をみせてくれよ。
7 :
774ワット発電中さん :2012/07/11(水) 16:26:41.28 ID:OZN6XZtg
8 :
774ワット発電中さん :2012/07/11(水) 16:42:03.25 ID:yHn2TVMk
>>5 (A)optimize殺しつつ、〜[i]が 皆無のアセンブラソースみたいなCソース書く
あるいは
(B)optimizerに頼りつつvolatile駆使して、ポインタ使えない奴でも解読容易なCソース書く
の、どっちの人が多いのかな?w
俺は、最初に書いたコードが、Z80アセンブラな、オッサンなもんで
ギガ単位のメモリつんでる環境でも、while(*p++ = *q++);みたいなCソース書いているなぁ
>>6 えっ?w
9 :
774ワット発電中さん :2012/07/11(水) 16:46:49.71 ID:yHn2TVMk
>>7 LEDチカチカするコードじゃなくて、
点灯しっぱなし、
消灯しっぱなし、
の二通りのコードつくって、それぞれ、実行してみて、
LEDにつながるAVRの端子の電圧をテスタで計ってみる
>>7 反応しないって?
点滅しないのか、点灯しないのか、点灯しっぱなしなのか...
11 :
774ワット発電中さん :2012/07/11(水) 17:12:15.19 ID:OZN6XZtg
全く点灯しない。(点滅もしない。)
Vccに5Vあるのは確認できた。
>>9 の方法をやってみる。
クロック間違えたか、分周だかの設定を間違えて、点滅が長くなってる予感
だとしても1個は点灯するかと... ただしPB0に問題なくLEDが接続されていればだが 俺的には回路っぽい気がする
14 :
774ワット発電中さん :2012/07/11(水) 17:51:33.78 ID:yHn2TVMk
>>12 逆に、超高速で点滅してて、生身の眼球では消えてるように見えてるだけとかw
>5 pはいつ初期化されたんだ?
i=100の近辺だろ。gccがloopを逆順に回して終了条件まで改変しやがった、 という意味なんだからそこに突っ込んでやるなよw まぁ、30年前のフォートランコンパイラでも for(i=0;i<100;i++) for(j=0;j<100;j++) { array[i,j] = 0 ;} みたいな2重forループを、array[i*100+j]的な1重ループへの改変、 ってのやってたから、「このパタンはこう改変」するって言うTIPSが gccにテンコ盛りに盛り込まれてんだろうね。
え、最適化がどういうものか わかって書いてるの?
pgr
gccのソースまでは読んだ事ないよw 大学の頃にコンパイラ・コンパイラの分厚い本斜め読みして、 1)字句解析→2)構文解析→3)コード生成部が構文木からマシンコード生成 という基本の勉強したのと、 「どうせ、最適化やる3)コード生成部は自動生成できないんだから yaccとかbison使うのはかったるいすよね〜」と、のたもうてた、 ハイスキルUNIX使いの人の話聞いて、「へ〜」って感心してたぐらいw まぁ、20年前の知識だw 「この形の構文木はこう改変してもかまわん」というルール集が 羅列インプリされてるだろう、と思ってたけど違うのか・・ スレチになりそうだから、ちょっと話題かえるけど、avrのニーモニック体系って、 Cでソースかいてgccでバイナリつくってる限りでは、 このニーモニックは絶対出てこない、というような特徴的な命令ってあるのかな? ほら、x86系CPUのマルチメディア向けの拡張命令みたいな感じの・・・ 1命令で、OUTPUTポートの任意BITをON/OFFできるのがpicとちがって avrのウリらしいけど、gccの吐くバイナリにも、その命令でてくる? 最適化殺した時には、出てきてなかったような記憶がある。 ちゃんと調べたわけではないんだけどね。
20 :
774ワット発電中さん :2012/07/11(水) 19:25:03.71 ID:HnrLLxkj
>>11 プログラムはきちんと転送されてるのか?
クロックは発振してるかとか、リセット入りっぱなしとか、そういうのは大丈夫なのか?
AVRはまず大丈夫だが。
あと、CPUはずした状態で、ポートGNDに落とすかすれば、LEDはちゃんとつくんだよな?
クロック絡みじゃないとすると、リセットピンの抵抗か はずかしながら、これは未だに良くやる
LEDの逆付けとか
23 :
774ワット発電中さん :2012/07/11(水) 21:35:28.31 ID:uNC5K2Fy
> ほら
>>19 CBI SBIとかは使ってくれるよ
最適化無しは試した事ないけど...
なのでフラグとかSRAMに置かずに汎用IOレジスタを使ってた
...気がするw
しばらく触ってないんで
最近のPICもLATを使えばピンの状態に関係なくビット制御できるようになったけどね
>>14 消えないってw
暗くなるだけ...もともとギリな抵抗値なら点灯しないかもだが
なぜか炎のコマが頭に浮かんだw
>>19 noinline
void noinline_bitset(uint8_t *port, bit) {
*port |= 1<<bit;
}
noinline_bitset(&PORTB, 0);
みたいなことするとin outのまま。
arduinoライブラリのデジタルIOがこんなことしてて、
数十クロック無駄にしてる。
in outじゃねーよlds stsだw ポートのアクセスは可能な限り直接書くべし
>>24 >>27-28 そう、そう、CBI,SBIだったね
Clear,Setで、直観的で良いな〜w
PORTB &= ~(1<<PORTB3); /* 直観的に何やってるか全然わからんオマジナイww */
なんてCソース行からCBIを生成しろ、なんて、
無茶ブリを頑張ってるんだな〜gccえらいわw
>>26 秋月なんかで仕様不明で売ってるバカ安LEDに
電圧と同じKΩ抵抗つなげりゃ、焼いちまう事はあるまい、と
くら〜く、ちんまり、ポッって感じでしか光らせたことしかないもんでw
去年作ったヤツのhoge.lssを見てみたら while(1) { WDR; if(bit_is_clear(PINC,0)) break; } みたいなコードがあって、アセンブラは wdr sbic 0x06,0 rjmp .-6 だった 素晴らしいw
>>29 > そう、そう、CBI,SBIだったね
> Clear,Setで、直観的で良いな〜w
> PORTB &= ~(1<<PORTB3); /* 直観的に何やってるか全然わからんオマジナイww */
> なんてCソース行からCBIを生成しろ、なんて、
> 無茶ブリを頑張ってるんだな〜gccえらいわw
その程度は簡単だろ。 実際はgcc内部ではなく、移植するCPU毎に書く
アセンブラソースへの置き換え部分の作りだと思うが。
演算サイズがバイト単位で、SETの場合、セットするビットが1バイト中1つ
だけで固定(ビット位置指定は命令コードに含まれるため、ビット位置が
可変だと自己書き換えコードになるため)であることが必須。
それと確かAVRの場合、CBI,SBI命令は全RAM空間に対しては使えなかったので
ポインタ渡しの場合、ビット位置が固定でも、CBI,SBI命令の範囲外に対する
操作が必要になる場合、ポインタの範囲を調べて条件分岐が必要になり、
その分余分なコード追加とステップ数増加で相殺される。
というか、BIT命令なんてZ80だってあるんだが?
直前の読み出し操作に意味があるかどうかなんてコンパイラには判らんのだからしょうがない ビットフィールドで他のビットは要らん事を教えてやれ
>>31 Z80はIOに対してビット操作出来なかった記憶が...
最後に触ってから10年以上経ってるんで、曖昧だけど
>>33 AVRはそもそもI/O空間がない。
Z80でも例えば8255を/RD・/WR信号へ、/IORD・/IOWRの代わりに/MEMR・/MEMW
を繋げば、メモリ空間にマップしてメモリと同等にアクセスできる。
モード2割り込みを使う前提のZ80周辺LSIは、ちょっと現実的ではないが、
外部回路で割込ベクタを読み込むサイクルの時だけ、/IORD・/IOWRが繋が
るように細工してやれば、できなくはない気がする。
Z8なんとかとか、 どうでもいいわけで
スレチではあるが、 Z80とZ8とは区別してくれよ
メモリマップドI/Oとか久しいな
>>34 8255を見て少しだけ記憶が蘇ったw
Z80のI/OポートアドレスとAVRのI/Oがゴッチャになってた...
そもそもAVRスレにZ80なんか引っぱり出してくるから...
と言い訳してみるw
40 :
7 :2012/07/12(木) 09:26:01.58 ID:uqaw0kPx
実は点滅してたようです。 点滅はサンプルプログラムで void DELAY(void) { unsigned char a,b; for (a=1; a; a++) for (b=1; b; b++) ; } でしたが、これでは点滅が速すぎて点灯してないと思ってましたが _delay_ms()関数に入れ替えたら「点滅」が視認できました。
オリジナルのコードでも、a,bの宣言にvolatileつけるか 最適化をOFFにすりゃ点滅するんじゃね?w 2重LOOPの中が空文だから無駄処理認定されて関数丸ごと無視されてる予感w
>>41 pdfには最適化の事も書かれているのに...
>>40 は無視を決め込んでいるようだ
ルネサス(SH.RX)もメモリマップトIO
今時、IOマップドIOの石って、なんかあるの?
8051の派生品はそうだよ
>>45 ほとんどのパソコンに使われているIntel 8086系と互換CPU。
私の認識は、 「I/OマップドのCPUは遅れている」 (古いしがらみを引きずっている) なんですけど間違ってますか? I/Oもレジスタもじぇーんぶデータメモリに割りふったAVRは良い!
>>48 間違ってますなあ・・・
>>34 みたいなZ80を例に持ち出す古株(笑)すら認識を誤ってるから
仕方なのか?ただのにわかか?
そもそもCBI SBIで指定するアドレスは何なのか判ってんのか?
IO空間に対してなんだが?
データシート読んだことないのかなあ?
AVRにもIOアドレスはきちんと存在してますので誤解なきよう
IO操作をメモリ命令として処理すると1サイクル余計に掛かって
速度が犠牲になるのは理解してるのかな?
普段コンパイラで無意識的にI/Oアドレスに直せるものは
勝手に直ってるから気にしてないだけだよ
もし糞遅いメモリマップドなんかに強制するマイコンなんか作ったら
誰も使ってねえよ
>>49 えーとですね、御指摘の点は
純粋に命令のコード空間への割り当てだけの問題ではないでしょうか。
頻繁にアクセスする領域には便利な命令を用意しておこうという配慮から
特定のメモリ領域にしか使用できない命令(たとえばSBI、Inなど)が
存在しているのかと思っていました。
I/O用の命令が存在するからI/Oマップドと言われるならその通りです。
私の「認識」は忘れてください。
51 :
7 :2012/07/13(金) 14:06:47.41 ID:qgcwqzSl
ATmega328PをATMELStudio6でC言語で使ってますが、 DDRB = 0xFF; を書かなくても PORTB &= ~(1<<i); PORTB |= (1<<i); などが(正常に?)実行されます。 仕様が変わったのでしょうか?それともおかしいのでしょうか?
avrいじりはじめて3カ月のニワカもんだが・・・ DDRに0設定して、IOポートを入力モードに設定しているときに PORTに1を書き込んだら、入力PORTをPULLUPする設定になるから 入力PORT端子をテスタで計ったら高い電圧が測定できるはず。 PORTに0書き込んだらPULLUPやめる設定になって電圧が落ちる。 なので、入力モードにもかかわらず、PORTへの0,1書き込みによって 入力PORTの電圧が上がったり下がったりするように見える。 だが、これは、オシロで波形をみるとわかるのだが、 PORT値の1を0に書き換えた時には、電圧が落ちるのが、 時間がかかっていて、裾が広がったパルスになってる。 方形波を出力しようとプログラムしてるのに、でてくるパルスが、 立ちあがりは鋭いのに立ち下がりがダレている、 というのは、DDRに1を設定しわすれている可能性あり。
90S1200なんてメモリ無いから完全な”ポートマップドI/O” 2313でRAM載せたからついでにメモリにもマッピングするようになって MEGA88あたりで、I/Oが64バイト空間にも収まらず拡張I/Oレジスタ I/Oのある領域によるアクセスの違いは、1bitセットするだけでこれだけ $00-1F($20-$3F) SBI xxx,n (1命令,1clk) $20-3F($40-$5F) IN R16,xxx SBR R16,n OUT xxx,R16 (3命令 3clk) ------($60-$FF) LDS R16,xxx SBR R16,n STS xxx,R16 (3命令 5clk)
char hour=0; int a; a= -1; hour += (char)a; hourが-1になりません (; ;
細かいことは気にすんな
>>52 プルアップしない ≠ プルダウンする
であり
プルアップもプルダウンもされてない入力 = 高インピーダンスで浮いた状態の入力
電圧が落ちるのに時間が掛かるのは、ピンの浮遊容量に充電された電荷が
オシロのプローブ内部抵抗で放電されるのに時間がかかる。
プローブ倍率を×1(1MΩ)から×10(10MΩ)にするともっと遅くなるし、
ピンを指で触ったり、ノイズを拾うと電圧が上がる。
>>49 申し訳ないが、判っていないのはアンタの方だよ。
AVRのI/Oエリアは、6502の0ページアドレッシングや、6809のダイレクト
ページアドレッシングと変わらない。0ページアドレッシングや、ダイレ
クトページアドレッシングは、アブソリュートアドレッシングに比べて、
命令長が短いので(命令フェッチサイクルが減る分)実行時間も短い。
アドレス範囲を限定することで、命令長を短くして、結果的に実行速度が
上がっているだけ。命令ニモニックは単に人間に対する区別でしかない。
重要なのはOPコードマップと命令長。
>>48 I/OマップドI/Oの方が、IN/OUT命令を特権命令にすることで、簡単にI/O
アクセスをトラップできる。 一方メモリマップドI/Oの場合、I/Oがメモリ
空間上のどこにマップされるか判らないので、外部のアドレスデコーダや、
MMUなどでアドレス範囲を特定して、割り込みを掛ける等、いろいろ面倒。
なので、メモリマップドI/Oは、大規模なシステムには向かないと思う。
Appleが、Motorola 68Kや、PowerPCを捨てて、最終的にIntelに乗り換えた
のは正解だと思う。
>>56 そうw なので意図的に、「プルアップしない」という表現にしてみたww
ということで、
>>51 の方には、データシートの
I/O-Ports
→Ports as General Digital I/O
→→Switching Between Input and Output
の所にある、Port Pin Configuraions の表を参照する事オススメ
ところで、avrって、PIN単位に、
a)プルアップする
b)プルアップしない
を設定できるけど、「プルアップしない」を、
b1)プルダウンする
b2)トライステート(Z)のハイインピーダンス
のいずれかに、する、と言うのは、chip全体でしか設定できないんだよね?
俺のアプリ目的では、これが非常にツライww
このせいで外付けディスクリートが増えちまった
>>57 48です。勉強になりました。どうもありがとうございます。
>メモリマップドI/Oは、大規模なシステムには向かないと思う。 そうでもないような armの勢いいいし 要は下回りを作る連中次第なんじゃないの あとは値段とか?
>58 AVRでプルダウンなんて出来たか? デジタル入出力の内部構成的にもプルダウン抵抗ないし。
>>58 AVRの入出力ポートの状態は4通りで、各ピンそれぞれに設定可能
1 入力:プルアップ抵抗あり
2 入力:プルアップ抵抗なし(Hi−Z)
3 出力:ロー出力
4 出力:ハイ出力
*入出力を切り替えながら使用する時は予期しないH/L出力や
プルアップの有無になったりしないよう注意。
*リセット中、初期設定が済むまで外部回路が変な動作をしないように注意。
ってところでOKでしょうか?諸先輩方。
その4つの状態を切り替えるときに、 ”この状態”から、”その状態”に、瞬時に切り替えたいのに、 ”あの状態”を経由しないとだめ、というパタンがあって、 外付け部品と、使用ピン数が増えてしまい、28ピンAVRの 使用を諦め、44ピンAVRと格闘中w ISPでかけなくて、JTAGでしかかきこめないということで、泣いてるww
>>63 ISPで書き込めないAVRとは? kwsk
MISO MOSI SCLK 端子に、何か外部から出力するデバイスがISP中にも繋がる
設計になっているせいでは?
普通は、外部デバイス〜ISP端子間に、1kΩ〜2.2kΩくらいの抵抗をかま
して、ISPコネクタは、AVRのISP端子直結にしておく。
そうしておけば、外部デバイスの駆動能力よりも、ISPコネクタからの
直結駆動能力が勝つので、大抵は書き込める。
>>63 何をしてるのか知らないけど...
PUDセットしてもダメなん?
>>60 I/Oトラップの簡単な実装という意味では
>>57 の言う通りなんだけど
コード空間/データ空間/IO空間をそれぞれ分割したり
アクセス違反トラップするお仕事はMMUって専門家がいるからね。
MMUを用意するならば別にCPU側の負担になる訳では無いって事よ。
ARMとかAVR32のコントローラ向けにもMPUって管理機構が付いてるし。
こういうやり方の方がが自由度は増すしメモリ管理の一元化も出来るんで便利なんだ。
>>64 新しいヤツはJTAGとPDIに移行。
いわゆるISPはなくなる方向じゃね?
>>66 I/Oトラップみたいなのは
アプリ(今時の言い方かな?)で勝手にリソース変えられると困るから
CPUに組み込まれた機能じゃあ
I/Oアクセスするのにメモリ空間でも専用空間でも変わらんと思うけどね
メモリ空間の決まった場所にI/Oが配置されてるほうが使い勝手がいいねって感じじゃあ、AVRとかは
>>57 > なので、メモリマップドI/Oは、大規模なシステムには向かないと思う。
>
> Appleが、Motorola 68Kや、PowerPCを捨てて、最終的にIntelに乗り換えた
> のは正解だと思う。
今は Intel でも メモリマップドI/O だよ。
IN/OUT は、ISA バスの時代。PCI は メモリマップドI/O。
面倒くさいことに、PCI 空間をまず物理メモリ空間にマップして、
MMU 使って仮想空間にマップするという 二重のマップをしているんだよ。
あとキャッシュがあるからね、キャッシュが効く物理メモリ空間、効かない空間というのは、
また別の管理。
1から読んだけど 説1を説2で上書きする議論が延々と続きますねww
『メモリマップドI/Oは、大規模なシステムには向かないと思う。』 死の間際まで言ってるといいよ(笑い
72 :
774ワット発電中さん :2012/07/14(土) 04:14:55.96 ID:F6yzqx2a
>>69 > 今は Intel でも メモリマップドI/O だよ。
> IN/OUT は、ISA バスの時代。PCI は メモリマップドI/O。
どっから、こういう嘘を仕入れてくるんだろう?
PCIバスは、32ビット(または64ビット)のアドレス/データバスと、制御線
としてC/BE[3:0]という制御線があって、これの組み合わせで、メモリの
リード/ライトとI/Oのリード/ライトがあるんだが?
第一、汎用バスのPCIバスは、CPUアーキテクチャとは無関係。
73 :
774ワット発電中さん :2012/07/14(土) 06:59:42.98 ID:v0gaZTPh
第二は?ww
>>72 x86にあるinbやoutb命令がどういう動きするのか説明してくれよ
>>72 > PCIバスは、32ビット(または64ビット)のアドレス/データバスと、制御線
> としてC/BE[3:0]という制御線があって、これの組み合わせで、メモリの
> リード/ライトとI/Oのリード/ライトがあるんだが?
>
> 第一、汎用バスのPCIバスは、CPUアーキテクチャとは無関係。
Intel でどう PCI を使っているかの話をしているんだが。
それは、例えば Linux のソースコードを読めばわかる話。
inl/outl といったマクロが、どう展開されるのか見れば、
単なるメモリアクセスになっていることが分かる。
なんでAVRと関係ない話を延々としてるの? AVRは ”I/OマップドI/O”+”メモリマップドI/O” だろ
>>76 分からないので教えて下さい。
メモリやI/Oを内蔵していないCPUなら、
たとえばコントロールバスのIORQ信号を使用した入出力であれば
I/Oマップドと判断できました。
AVRはワンチップなので内部構造が分かりません。
どのような理由で「AVRはI/Oマップド+メモリマップド」と
判定されたのでしょうか?
私の勉強不足だと思うのですが、ふと疑問に思ったものですから。
専用の命令(AVRならIN,OUTにSBIC,SBIS)に専用のI/Oアドレスマップがあれば ”I/OマップドI/O”だろ、最初のAVRの90S1200から引き継いでいてそのままだ。 90S1200はI/Oはメモリ(レジスタ用の32バイトだけだが)上には割ついていおらず 専用命令でしかアクセス出来ない。そこから拡張していくついでにメモリ領域にも 割りつけて(この時点で”I/OマップドI/O”+”メモリマップドI/O”)、さらにI/Oの 64バイト限界を超えてしまったので”メモリマップドI/O”専用の領域ができた。 >たとえばコントロールバスのIORQ信号を使用した入出力であれば 極論だけど、この考えだと外部アドレスバスがA0-15まで出てるCPUがあって 0x8000-0xFFFFをメモリマップドI/Oにしていたら、A15の名称をIORQにしただけで ”I/OマップドI/O”になるって事?
>>78 なるほどそういう事ですか。
私は単純にMEMRQ信号を使用すればメモリマップドでアクセス対象はメモリ、
IORQ信号を使用すればI/Oマップドでアクセス対象はI/Oだと思っていました。
AVRは90S1200のI/Oマップドのみから、
CPUの成長と共にメモリマップドが追加され、
さらにメモリマップドのみも追加、と変化していったわけですね。
了解しました。
あ、すみません、忘れていました、 アドレスA0〜A14とコントロールIORQ信号でアクセスできる空間は 0〜7FFF番地のI/O空間です。
I/OマップドI/Oなんて初めて聞いたよ。 2ch用語か?
>>81 組込みプログラムやってる人なら、みんな知ってる普通の技術用語ですよ。
83 :
774ワット発電中さん :2012/07/14(土) 17:58:20.63 ID:F6yzqx2a
>>75 ロクにハードウェアの知識がないのがシャシャリ出て話を混ぜ返すなよ。
ホントゆとり脳は使えねぇな。
Linuxのドライバコードをどの程度読んだのか知らないが、全てのPCIデバ
イスがメモリ空間上にレジスタをマップしているわけではない。
PCIデバイスでも、リソース(I/Oレジスタ)がI/O空間にしか割り当てられて
いないデバイス、メモリ空間にしか割り当てられていないデバイス、メモリ
空間とI/O空間との両方に割り当てられているデバイス、すべてある。
例えば、うちのPCのPCIスロットには、TI製のPCI-1225というカードバス
コントローラ(PCI-PCMCIAブリッジ)が刺さっているが、こいつはメモリ空間
(D7FFF000〜D7FFFFFF, FFEFF000〜FFEFFFFF, F9A00000〜FD9FFFFF, 000DF000
〜000DFFFF)とI/O空間(F900〜F9FF,F800〜F8FF)の両方を占有している。
また、コンテック製のPICバス接続のGPIBボード「GP-IB(LPCI)FL」は、I/O
空間(BA00〜BA3F,BB00〜BB7F)のみを占有し、メモリ空間は使用していない。
ハーバードアーキテクチャのAVRが、フラッシュとRAMが同じアドレスを
持つ独立した空間に存在しているのと同じように、I/OマップドI/Oの場合、
I/O空間とメモリ空間は、同じアドレスを持つ独立空間として、パラレル
ワールドとして存在する。
カードバスコントローラに、1MB以下のメモリ空間が割り当てられている
のは、ISAバスとの下位互換性(拡張BIOS領域)を保つため。
I/Oアドレスが16bitなのは、PCIバスの制限ではなく、x86アーキテクチャ
では、32bitになってもI/O空間は昔どおり64KBのままだから。
>79,80 私には理解できないけど、あなた的にはCPUのインストラクションやアーキテクチャは関係なく CPUから直のIORQ信号の有/無がI/Oマップド/メモリマップドの違いなのね。 それじゃ外部バスの無いMCUは永遠に不明ということでいいんじゃない、あなたにとっては
俺もI/OマップドI/Oなんて初めて聞いたが(w
ポートマップドI/Oってwikipediaにはあるな。>I/OマップドI/O
>>84 永遠に不明だと進歩しないので聞いてみましたです、はい。
そしたらI/O用命令の有無だと回答があったので、
なるほど、そういう事でAVRは「I/Oマップド+メモリマップド」かと理解したのですが
もしもAVRが可変語長で全データメモリ領域でSBI、INとかが使えるのなら
「I/Oマップド」になるのかなとかちょっと悩みました。
まだまだ理解が足りないという事ですね。
今後もいっそう精進いたしますのでご勘弁を。
88 :
774ワット発電中さん :2012/07/14(土) 19:48:56.56 ID:F6yzqx2a
使用言語を「英語」、検索対象言語を「英語のみ」に設定してGoogleで 検索してみた。 "port mapped I/O" で検索... About 13,800 results (0.13 seconds) "I/O mapped I/O" で検索.... About 96,100 results (0.27 seconds) コンピュータ業界長いが、ポートマップドI/Oなんて、初めて聞いた。(w
そろそろ誰かまとめてくれよ。
本日の論点 1)AVRはI/OマップドI/Oか、メモリマップドI/Oか、 それともI/OマップドI/O+メモリマップドI/Oか? 2)メモリマップドI/OとI/OマップドI/OのどちらのCPUが有用か? 3)用語「I/OマップドI/O」と「ポートマップドI/O」はどちらが適切か? 難しいな。じゃぁね。
>>88 そうなのか。
おれは逆にI/O mapped I/O知らなかった。いままで一度もみたことなかった。
なにかの教科書的な本で何度かPort mappedのほうは見たことがあった。
自分は業界にいないしCS専攻でもないので専門的な本は読んでない。
結論 : 全角英字は止めよう。
外部バスに出ていない物はI/Oマップでもメモリーマップでも無く、すべてCPU拡張レジスタ操作だと思う。 便宜上メモリー操作でアクセス出来たり専用命令が用意されえいるだけだろう。
ここらで違うネタを パーツ棚に2313や328が20個ぐらい残ってるんで 久々に何か作ろうかな...と思ってるんだけど 何か作りたいって意欲だけで、その「何か」が出て来ないw そこでスレ住人に質問! 今作ってる、または最後に作ったモノって何ですか?
言い出しっぺとして、自分のを晒します っと言っても大したモノは作って無かったり 最後は... XBeeで自宅の現在の総消費電力、外気温、湿度、気圧、GM管などのデータを集めて パネルにまとめて表示するモノかな 複数のXBee+AVRセットの中のマスターにSD付けてログ取りもさせてます ちなみにGM管は事故以前から持っていたもので... コレ作ったのは家族に消費してる電力を見せるのが目的です 壁に取り付けたパネルには秋月のバーLED x4と4桁7セグLED x7を付けました …で、節電意識は高まったのか? んー ビミョーw
写真で見せてよ
消費電力計る回路に興味あり。 今SSRで電源管理してるけどSSRからの発熱半端なくて、本末転倒かもと疑問が消えないのでいろいろ計測andLogしたい。
>>97 適当に作ってるからハズいなw
アップ出来る所教えてくれたら...
>87 >もしもAVRが可変語長で全データメモリ領域でSBI、INとかが使えるのなら メモリマップドの利点にそのCPUが持つ全てのアドレッシングモードが使える ってのがあるけどメモリアクセスと同様にアクセス出来ない時点で違わない? >90 1)”I/OマップドI/O”+”メモリマップドI/O” 2)外部バスがあるCPUに限って言えば、絶対”I/OマップドI/O” なぜなら”I/OマップドI/O”用のCPUでも”メモリマップドI/O”は作れるが ”メモリマップドI/O”用のCPUでは”I/OマップドI/O”は作れない。 外部バスが無いMCUならアドレス空間の狭い8bitなら競合しないように ”I/OマップドI/O”、アドレス空間の広い16,32bitなら”メモリマップドI/O”かな 3)どっちでもいい
>>98 我が家は単三なんで分電盤内でCTT-10-CLS-CV50ってな
クランプ式センサを2個使ってます
このセンサ、ちょっと高かったけど...
電源不要で0-5VDCを出してくれるんで
AVRのA/Dに直結するだけという便利モノだw
ちなみに、家庭の目安用途だから電圧は無視してます
ってな感じで手抜きだから...あまり参考にはならんかと
すまそ
>>100 AVRはメモリマップドIOになるよ。
I/OマップドIOの場合、アクセス空間がメモリと別になるし、命令も別。
>>102 いい加減にデータシート読めよ
7.5 I/O Memory
>>103 オマエこそ他人のレスちゃんと読めw
>「アクセス空間がメモリと別」
分かりやすいように言い分けてるだけで、 中身は同じものなんて普通。
アトメルのAVRのエンジニアは 「日本のAVRユーザーはワイルドだぜぇ」 と笑っているに違いない。
まあ68系もi8031系も知らない、ゆとりなんだと思うよw
>102 最初のAVRの90S1200だとI/Oは専用命令(IN,OUT,SBIC,SBIS)でしか アクセス出来ないよ、メモリ上にマッピングもされていない。それでもメモリマップド?
>>109 PLフィルタ通すと時々まともに撮れるらしいぞ
今、スマホのカメラしか無いからなぁ 最初LED無点灯で写したら... 部屋中のモノが写りこんで全然ダメだったしw やはりそれなりの用意が無いと難しいね まぁ使ってるLED全て秋月のだから ここの住人なら脳内補完されてるんじゃなかろうかw
116 :
774ワット発電中さん :2012/07/16(月) 07:57:16.36 ID:CErFjgwu
> やん
ワイヤリングペンって絶滅してないんだ? ワイヤリングペンの配線が見てみたい。
以前にワイアリングペンを買った事があるんだけど、 2、3度やってみて結局使わなくなってしまった。 半田ゴテの温度をかなり高くしないといけないし、単色で見づらいし。 今はラッピング用の10色のジュンフロンETFE線を ハンダ付けでやっていますが、時間がかかって面倒です。 おすすめの配線方法はありますか?
>>83 >
>>75 > ロクにハードウェアの知識がないのがシャシャリ出て話を混ぜ返すなよ。
> ホントゆとり脳は使えねぇな。
>
> Linuxのドライバコードをどの程度読んだのか知らないが、全てのPCIデバ
> イスがメモリ空間上にレジスタをマップしているわけではない。
>
> PCIデバイスでも、リソース(I/Oレジスタ)がI/O空間にしか割り当てられて
> いないデバイス、メモリ空間にしか割り当てられていないデバイス、メモリ
> 空間とI/O空間との両方に割り当てられているデバイス、すべてある。
だから、その I/O空間 を インテル(IA32)でも メモリにマップ している
という話をしているのだ。
もうおまえの相手はしないが、
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol1_Online_i.pdf IA-32 インテルR アーキテクチャ・ソフトウェア・デベロッパース・マニュアル 上巻
これの 第13章 入出力 ぐらいは読んでおいた方が良いとおもうぞ。
UEWのワイヤリングは被覆溶かし用のハンダ槽でもあれば凄く便利なんだけどね
>118 > 半田ゴテの温度をかなり高く 半田ゴテの熱容量に対してワイヤが太すぎる。 ワイヤリングペンは標準0.26mmφぽいが、コテが30Wとかなら0.1mmφあたり調達してこないと辛いぞ。 それと「ラッピング用ジュンフロンETFE」っていうだけでは特性が決まらなくて、 半田ののらない地雷から天国まである。 オーバーコート撚り線てのが天国らしいのだが使ったことないので他の人頼む。
>>120 UEWは恩寵ハンダこて使えば楽だよ
被覆は一定時間高い温度を当てないとうまく溶けない
普通のコテで時間掛けすぎるとフラックスが飛んでぐちゃぐちゃになる
ジュンフロン線は秋葉原のオヤイデで100m巻のボビン10色で買いましたが、 多分、秋月で「ハンダ付け党にも人気です」というコピィで売っていたのと同じだと思います。 潤工社の資料を見たら機器配線用、ラッピング用、単線、2芯、多芯と 色々な種類があるのでおどろきました。 ジュンフロンETFE電線(オーバーコート撚線)というのがそうなのかな? ワイアリングペンの説明書には「VSW−102(0.2m/m)」と書いてあった。 半田ゴテの容量に対して太すぎるのでしょうね。 今度秋葉原に行ったらいずれも探してみます。 最近は金欠なので、できれば、オーバーコート撚線はバラ売りで購入してチェックしたい。 (長文失礼!)
>>114 サンクス
ってどこがワイルドなんだ?w
姪っ子が来たときに遊びで仕込んだデモ点灯モードにしたら...
(4桁7セグx7を電光掲示板に見たてて英数流したりとか30パターン以上作ったw)
「すごい綺麗」とは言ってくれたが...
>>117 絶滅してないぞw
まだまだ現役っす
ちなみにコテ2本で作業してる
念願だったハッコーのステーション導入してからは
コテ先チェンジで済ませちゃう事が多くなったかな...
ハンダ風呂って使った事無いんだけど... 個人的に使ってる人いる? 前に買ってみようかなーと迷った事があったが そこまで大量に配線する訳でもないしと留まったり... スレ違すまそ
> 今はラッピング用の10色のジュンフロンETFE線を 勧めてるサイト幾つもあるけど 半田のノリ悪すぎだよな
> 半田ののらない地雷から天国まである。 そうなのか
UEW線の話。俺はガスライタートーチで先をチョッとアブってから半田付けしてる。 半田ポイントには予め半田を盛っておいて、後から皮がムケた線をチョンづけ。 つうか、書いてて気が付いたんだけど、 なんでトーチなんだろうね?100円ライターで良さそうなのに。 あと思いついたんだけど、 もしかしてビニール袋シーラーとかラミネータで皮膜溶けない? 誰か持ってたら試して報告してよん?
131 :
83 :2012/07/16(月) 21:36:02.57 ID:sGK4YkSO
>>119 > だから、その I/O空間 を インテル(IA32)でも メモリにマップ している
> という話をしているのだ。
MMU機能でI/O空間をメモリ空間にマップするとか、そんな変態的な拡張なんて
あったっけと、あんたが出した資料を改めて読み直したが、書かれている内容は
ごく常識的なことで、どこにも、『I/O空間をメモリにマップしている』なんて
記述はないのだが?
Intelのマニュアルは、ご丁寧に『メモリマップドI/Oで使う場合にキャッシュ
を無効にしないと、I/Oに正しくアクセスできない』と説明するのに、前置きで
メモリマップドI/Oを解説しているだけだ。
別に、I/OマップドI/Oでも、メモリ空間にI/Oデバイスを接続してはいけない
理由はないし、逆にI/O空間にメモリを接続してはいけないというルールもない。
確か、シャープのX1シリーズでは、グラフィックVRAMはZ80のI/O空間に配置
されていたと記憶している。(しかもバンク切り替え付き)
もともとI/O空間を持たない68系/68000系では、どう転んでもI/Oマップド
I/Oは採用できないが、メモリ空間と独立したI/O空間を持つ80系(Z80含む)
や86系では、I/OマップドI/OでもメモリマップドI/Oでも、どちらでも選択
できる。それだけのこと。
AT互換機では、もともと純正IBM機Mが16bit(64KB)あるI/Oアドレスのうち、
下位10bitしかデコードしていなかった(後にISA規格を決める際に16bitデコ
ード推奨になった)ので、他のI/Oカードと確実に競合しない連続アドレスを
I/O空間に確保するのが困難だった。
ビデオカードや、キャプチャカード、LANカードなど、拡張カードでメモリ
空間にリソースが配置されているのは、大半がバッファ用の共有メモリ
ウィンドウであり、これらは、厳密にはI/Oレジスタではない。
別に、32bitアーキテクチャで変更されてはいないし、ISAバスの時代でも
286以降でメモリ空間が大幅に拡張されたので、CreativeのVideo Bluster
のように、当時からメモリ空間を占有するカードは存在していた。
大容量のバッファを必要としない大半の拡張カードは、いまだにI/O空間
しか使っていない。
>130 A--B C--D E--F と配線すべきとき、 A--B--C--D--E--F とUEWでクルクルと絡めつつ繋いでしまってハンダ付け、 その後に、プチプチと途中をカッティングピンセットで切って A--B C--D E--F とやるので、端点をあぶってなんてことができるのは滅多になかったりするのだ…
I/OマップドI/Oなんて呼び方する奴は、最近始めたよくいる知ったかぶり。
>>133 見苦しいから、もう止めたら? ググればすぐ判るじゃんw
>>134 え?
見苦しいって・・・へんなヤツだな。
>>131 スレチ&脱線だが
>確か、シャープのX1シリーズでは、グラフィックVRAMはZ80のI/O空間に配置
>されていたと記憶している。(しかもバンク切り替え付き)
これたしかZ80のバグだったような気が。
Z80のニーモニック上は、 OUT (C),r になってるのに
上位にBレジスタが出てきて OUT (BC),r みたいな動作に…
おかげで、ITDRやOTDR動作でいつも悩むことになった。
>>135 まあ君の判断力で、そう判定されても問題ないよw
どうでもいい話を蒸し返してネチネチと粘着キチガイだねw
>>132 B-C D-E間が近い時は自分もそんな感じ
そこそこ離れてたら
>>130 みたいな付け方
ムき方は違うけどね
まぁ場合によるが
必要な長さと本数を入力したら自動でカット&両端の被膜溶かしするマシンをavrで作る!
ってavrうんぬんより機構が難そうだw
141 :
774ワット発電中さん :2012/07/17(火) 00:23:10.24 ID:sdMkY5Xm
で 半田乗りの良いUEWは なんて銘柄? どこで買えるの?
ジュンフロン線よりカイナー線おすすめ。RSとかで買える ジュンフロンは本当にワイヤラッピング用。半田乗らない。
143 :
774ワット発電中さん :2012/07/17(火) 02:15:36.82 ID:x0vQTkPP
しかし、このスレも細かいことに突っ込むつまんねー奴が増えたな
>>140 ボビー向けのSable-2015っていうミニCNCフライスなら持ってるが...
モノによってはEAGLE開いてる間にユニバーサルで作れちゃったりするからなぁ
悩むんだこれがw
ちなみに、こいつのスピンドル制御とかにAVR使ってるんで
スレ違にはならない...と勝手に思ってるw
鍵swひねってPC起動、CNCソフトの指示でAC100ブラシモーターの速度制御、エアブロー、冷却ファン、照明、LCD...
などをAVRにやらせてます
すまん寝ぼけてた...
>>58 >>63 を書き込んだニワカもんだが亀レススマソ
>>61 げっ。確かに。Port Pin ConfigurationsのTABLEのPUD=1の行のcommentの
"pulled low"を曲解してた。orz
ところで,このPUDってどんな用途を想定して設けられたものなんだろう?
PULLUPしている全入力ピンを一斉にハイインピーダンスにできるとどんな時に嬉しいのかな?
SLEEP前にPUDつかって消費電力カットとか?
>>64 44PINのAtmega1284PなんだけどデータシートのPDFの目次にJTAGがあってISPがないもんだから、てっきりISPでは書けないもんだと勘違いしてたw
目次ではSerilal Downloadingってなってるんだね。
>>65 PORTをoutput HIGHにしてCR積分回路みたいのに一定時間、電荷チャージして、
そのあとでPORTをinput のZ状態にして対象の積分回路を切り離す、と言うのを
複数ピンで時間ずらしてやりたいんだ。普通にPULLUPしてる入力もあるんで
PUDが使えない。DDRとPORTの2か所の値を変更しないとOUTPUT-HからINPUT-Zへ
遷移できないな、と28pinAVR使用をあきらめて、44pinAVR+FETいっぱいへ路線変更
>>147 PUD、自分で答えてるかとw
Hi-Z必要だけど意図しない出力が出るのは困るって時に使う...
と思うけど
他でプルアップ必要なら外付けすればいいしね
自分的には1284チョイスするのはメモリ容量ぐらいかな
ポート数ならシリパラ使ったり、複数avrで連携したりで...
今の所事足りちゃってるんで
まぁ場合によるけどね
ちなみにavrの内臓プルアップって100kぐらい(ちとうろ覚え)あるんで
誤動作にご注意を!
んな事知ってる!だったらすまそ
最初は28PINつかって、こじんまり仕様でコンパクトに仕上げようと企んだんけど ピン数足りねぇ〜 44pinだぁ〜 QFP変換基盤でけぇ〜 コンパクトにはできねぇ〜 ならばテンコ盛り仕様だぁ〜 44pinでも足たりねぇw〜 100pinのQFPのIO拡張CHIPを変換基盤で追加だぁ〜 基盤の面積たりねぇw面積倍増だぁ〜←今、ココw
うーむ、「ガンバレ、ゴールは近いぞ」としか言いようが無いけど、 *目をつぶって何時間か何日か納得ゆくまで脳内設計(配線とプログラミング)を行う。 *自信がないハード、ソフトの部分があれば仮組みで実際に動作確認する。 が足りなかったのでは?
自分はユニバーサルで作る時は深く考えずにスタートする事があるんで... 作ってる最中に新しく閃いたり勘違いしてたりでピン数足りねー ってな事はたまにあるが... そんな時はシリパラの出番だけどなぁ まぁシリパラ並べて金額が1284に近づいたら... 作り始めてからそこまでピン数不足する事態は未経験だがw
もうエナメル線か男らしくVVFで良くね
153 :
774ワット発電中さん :2012/07/17(火) 22:43:24.75 ID:r8fuJNj2
>>147 同時に複数の積分回路へ充電(H出力)する必要がないなら、74HC4051みたいな
アナログマルチプレクサを逆向きにして、入力チャンネルを増やすA/Dの入力
へ繋ぐコモン(Z)端子をVccへ繋ぎ、マルチプレクサの入力(Y0〜Y7)をそれぞれ
の積分回路へ繋いで、チャージしたい積分回路の選択をS0〜S2へ繋いだ出力
ポートで、チャージのON/OFF制御は/E繋いだ出力ポートで制御すれば、4本の
出力で、最大8個の積分回路を繋げられる。
デジタルセレクタのHC151と違って、HC4051は、中身はFETの双方向スイッチ
なんで、信号はどちら向きでも可。
On抵抗がやや大きい点は、用途によっては要注意。
> 28pinAVR使用をあきらめて、44pinAVR+FETいっぱいへ路線変更
328pでポート足りるんでない?
アナログスイッチのOn抵抗と、AVR出力ポートのハイサイドP-ch MOSFETの On抵抗であれば、大差ないと思うのだが?
ピン足りないだけなら、350円のDIPの164Pで組みなおすのが楽じゃないすかね 後で1284Pまでピン互換で交換できるし 売り切れのDIPの644Pや1284Pは入荷するのか判らんけどね QFPはユニバーサルだと面倒だし あるいは100円の2313にLCDを繋いで328pとI2Cやシリアルで通信するとか 2313はデジタルピン増設手段としてはUARTもUSIもあって優秀 I2CのLCDも売ってるけど買い直すのもアレだろうし
なにをやりたいんだかw
もうMARYとかArduinoみたいなモジュール仕様策定しちゃえよ
>>154 仕事なら仕様通りのものを可能な限り短納期で作って納品して終わり。
でも遊び(趣味)で作ると、完成した後で「ムダがあるなぁ」とか、
「こうすればもっと使いやすいのに」とか未練が残る場合が多い。
納得いくまで作り込むのもまた楽しいと思う。
>>155 なるほどね。AVRが、OUTPUT-Highから INPUT-Zへダイレクトに遷移できて、ピン数を節約できたとしても、
そっちで、ハマっていた可能性もあるわけか。今は、パワーMOS FETでON/OFFやらせてるから
ON抵抗が低いんだよ。そこまで考えてたわけではなくて、
単に秋月で売ってるFETのほとんどがパワーFETというだけの理由なんだけどねw
>>156 秋月でLCDモジュールのI2C版を売ってんの、最近知って歯ぎしりしたわw
パラレル版よりちょっと安いし。
>>157-159 仕様決める奴と作る奴が同じ人間なんで、仕様のブレ、ふくれ、
手段と目的の逆転、が出まくってるのは確かw
QFPのハンダ付けをやってみたかった、と言うのもあるな。やったことなかったからww
とてつもなく難しいのか、と思ったら、普通のハンダごてに、ハンダ吸い取り線がありゃ
なんとかなるもんだね。
1ヶ月ほど前に16文字2行のパラレルとI2C、両方のLCD買ったけど I2C高かったぞ。 PICが追加されてるから高くても仕方ねぇなと納得したが。
秋月サイトだとI2C版のLCDは16×2しか載ってないね・・ 先週、店頭で20×4のパラレルLCD買った後で、 I2C版があるじゃん!失敗した!と思ったけどサイズ違いの物みて、安いと勘違いしたかな。 パラLCDとI2Cラインの間に、IF変換用のavr chipをおくとすると I2Cが2本、パラLCDが、データ4本、E,RS,RWが3本で7本、 合計9本か・・・ 20pinのavrより小さいのっていきなり8pinになっちゃうんだっけ?
>>162 tiny24/44/84の14ピンのやつがある。
LCDは汎用ロジックIC(シフトレジスタ)使えば、3線てコントロールできるぞ。
165 :
7 :2012/07/19(木) 14:32:25.34 ID:ESRoVLq3
シフトレジスタ使ってたりすると、よほど28PINや40PINのCPU使う方が安上がりだよね。
キャラクタ液晶のi2cスレーブ化は 電子工作の一つの到達点として 自分で行うべきものだろう 元もと6pinで制御できるキャラクタ液晶をi2cスレーブ化して得られる利点なんてほとんどないのだし
NECだったかな、シリアル/パラレル両方おkって コントローラーが昔あった (もちろん日立のとは別物) トラ技の製作記事なんかでも見た記憶があるが 日立のがデファクトになって見かけなくなった
>>163 秋月では売ってないみたいだね。アキバで店頭で買えるのはどこだろう。
>>164-167 シフトレジスタじゃなくて、avr使うなら、IFの変換だけじゃなくて、
ページ送り用の入力スイッチもぶら下げ、画面の固定表示データも
内部メモリに持たせて、可変データだけをシリアル線でやりとりするのが
スマートかな・・・
>>166 入出力点数に余裕が無い時は差の4本って大きいと思う。
>>167 自由度を考えるとHC164(相当品)より100円のtiny2313を使いたいな。
>>171 2313すらこっちで買うと高いんだよなぁ。
まぁ、この辺は結構いくらでもやりようあるし、作例も色々あるから、
何パターンか作ってみるのがいいだろうね。
2313でI2Cはめんどい感じがあるな、まぁ多少だけど。 安いからTTL代わりに使うってのはアリではあるが。
安いから初めてAVR使おうと思ったけど(ATmega165A)、4.5V以上じゃないと 仕様上は最高速度出せないのね。16MHzのデバイスが3.3Vなら12MHzですら 保証外とか残念すぎる。
>>169 >>171 それにI2Cだと複数デバイスをぶら下げられるのがうれしいよ。
子供が夜中にネット接続するのを制限しようと、無線LANルータのPOWERを
タイマー仕掛けでON/OFFする仕掛けもつくっているんだけど、
秋月のRTCと、2線IFのEEPROMを、avrのtwiインターフェースにつないでみたけど、
スゲー楽ちんだわ。配線もプログラムも。
>>175 何か間違ってる気がしなくもないが、AVRを使った応用例としては評価するw
>>175-176 自宅内のケーブリングの都合上、無線LANルータの設置場所が、
子供部屋なんで、物理クラック対策wも、念頭において
動作モードをeepromにかきこんで、一般chipと特権chipの2つを用意して
特権chipを指さないと、RTCの時刻設定や、
電源ON可能時間条件の書き換えができないようにする、といった感じw
ユニーバサル基盤を小さくカットして、8pinのEEPROMをのっけて、
それに、2pinのピンヘッダ2個を、逆指しできない様な配置で、
とりつけて手製のメモリモジュールを作ってみたw
>>178 まぁ、できあがったら・・
今週末にVer1を運用開始すべく、製作中・・
>>180 ww
>>179 RTCの時刻設定は?
タクトsw付けたりするのなら
いっそ9個ほど並べてスマホのロック解除みたく
押しパターンでチェックするとか...
製作中って書いてあった... 見過ごしすまそ
なるほどなぁ。 俺ならサーバ立てといて、cronでwgetで管理画面叩くとかして特定の時間だけパスキー変えるけど。 俺自身がファミコンのアダプタ隠されて、家中のアダプタを持ってきて互換品を探した経験上。
AVRスレらしくなら AVR+W5100とかでルータの設定ページにアクセスだな 日時もゲットできるし
>>183 そこで 20×4のLCDモジュール+タクトSW×4なのよ。2個がカーソル移動で2個で値の上下で
編集してRTCに書きこみ。ここはできた。
RTCのレジスタの電圧降下フラグが立ってるなら、電気2重層コンデンサでのバックアップが
パァになったということで、特権チップさして時刻再設定しろ、と表示するあたりを書いてる所
>>185 ADSLルータの直下にLINUX箱おいてcronでIPTABLE設定差し替える、
も、考えたんだけど、自分にとっては何も目新しい事がなくて、この路線はつまんないから
avr電子工作路線w
>>182 企業内HUB用に空きPORTを埋めロックする奴があるから、それで空きPORTうめる。
電源プラグと電源アダプタの間の線をぶった切って、工作物を挿入しちまえば、
中坊には簡単には手が出なくなるだろうとw
「稼働履歴をeepromに保存してるからヘンな事したら即バレだからな」と牽制
その情熱をなぜしつけに回さないw
そこを超えるのが子供、というか教育なのか?w つか、そんな手間かけるならネットリテラシーを真面目にw
一方、子供は野良wifiにタダ乗りしていた。
いやw結局、手抜きなんだよ。 しつけ、リテラレシー、は3,4日で、どうなるもんでもないしw まずは、1週間内でできる電子工作で、とりあえずのガード&使用履歴把握できるようにして 「オマイ、1日の最大接続時間が120分だからといってweekdayの合計が600分はまずいんとちゃうか?」とかw 採取データを元に生活パタンを指導改善的な。ついでに、こういう電子工作+プログラミングに興味を持ってくれると それはそれでオヤジとしては嬉しいのだが、そこは、どうだが・・・
俺もあんたみたいな親父の子に育ちたかった・・・
まぁ親の道に行く子供は希だからなw というかこの手は逆効果の予感もするがw
>子供が夜中にネット接続するのを制限しようと アグネスっすなぁ… 自分の子供時代を思い出してやってくれよ。抑制なんて教育では無いぜ? 「しまった」と自分から後悔するよう仕向けるのがプロの親ってもんだに。 例えば「小遣いの配給は朝7時。時間厳守」とかな?色々バリエーションも考え付くべ? 人の言う事を良く聞く良い子ってのは大人になって加減がわからず破滅的な失敗するもんだ。 徹夜でゲームして無断欠勤、取引先からクレーム入って一発でクビとかは大抵が元優等生だよね。 「普段は真面目でよく働く人だったのに」とか、だからこそだったりする。
>>187 swが4個あったら例えば...
sw3 5回
sw1 3回
sw4 2回
sw2 1回
とか、押す順序&回数で十分なチェックが出来るかと
すまん 独り言です
LCDに小遣い額を表示しておいて 時間オーバーで減っていく...
それ・・・いいような悪いようなw まぁ回線使用時間カウントしてるんだったら、減額はアリかもしれんな・・・ 成績か素行か何かでたまにボーナスで復元とか。
旅館の有料エロビデオのタイマーみたく、貯金箱機能を設けて、小銭を投入 すると使える時間が増えるとか、液晶に貯金額と接続可能残り時間が表示 されるようにしてはどうか?
それなら1時間100ペリカにすべき
地下行きかw
>>185 俺は親にSFCのAVケーブルとアダプタ隠されたクチ。
でも、SFCから入ったから、こんなこともあろうかと、
バックアップで引いておいたRFスイッチと予備のアダプタの存在は気づかなかったらしい。
>>187 のガキが
>>190 みたいにならないことを祈りたい。
>>186 だが、AVR+W5100でモバイルからエアコンonとか色々作ったけど...
こいつで子供のマシンに一定間隔でpingすれば時間外をチェック出来てしまうなw
子供マシンの防火壁にエコー通すようにしとくのは当然だけど...
逆にping理解してる子供だと無応答にされる...か?w
有線ならハブのLED利用した方が簡単かな
無線でも色々手はあるが、ちと面倒
(ルータによってはモニター機能で拾えるけど)
って何だか話がヘンな方向にw
まぁAVR工作の雑談って事で...
>>202 デスクトップ型なら、5VSBでPowerLEDの状態をXBee辺りでも飛ばすのもありかと。
もう、PCにコインタイマー付けちゃいなYO!
やがて親子で切磋琢磨し合って技術の限界を競い合うようになるんだね。 素晴らしい家庭だと思う、ウン。
待て、子供がここをジッと見てるぞw
いろいろレスサンクス
1日最大2時間、AM7−PM22が接続可能時間
という制限条件は、母子の話し合いでの決定事項なのだが、
ネットを早い時間帯、勉強・宿題を夜中時間帯、
なんてあらぬ方向に行っちまう可能性もあり
この制限方法が吉と出るか凶とでるかは賭けではある。
手製eepromメモリモジュールにワンタイムチケット情報を
格納することにして、母親がチケット発行avrマシンを管理する
なんて展開もでてくるかも、とI2Cの活線抜き差しも調べてみたw
>>203-204 PC向け既存の「Yahooの安心ネット」みたいなサービスで
制限かけれりゃ楽なんだが、そもそも、ネット接続可能デバイスが
PC以外にDS,PSPもあるんで、機器上流で制限することにした。
母親がぶち切れて「子供部屋のブレーカを落とす!」と言い出したので、
avrで無線LANルータのPOWERを切るぐらいならは屁でもなかろう、と
「もうちょっと穏やかにw電子工作でなんとかしますんで」
と言う事で、今晩は徹夜覚悟で製作に励みますw
部屋全体のACをON/OFとなると弱電な俺はビビるなぁww
208 :
7 :2012/07/20(金) 12:52:42.03 ID:WeeuPhOZ
子供は好きにさせるがいいよ。 あとで後悔するよ。
全然違う方向性だが・・・ 俺は寝坊だったんで、オヤジが目覚まし代わりに100Vでブザーつけたんだ… 初日に電源入れたまま(音がなったまま)コードの線をニッパーで切った。 そして二度寝したw
えっ?100Vの活線をニッパで切ったのか?w 俺、小学生のころ、それやって火花とばしてニッパの刃を溶かしたなww 先週末は、avrが乗ったドータボードを、電源回路、リレー回路、センサーコネクタが 搭載されたメインボードに指す時に、逆差しで指してしまい、avrを熱くしちまったw なんとかchip昇天はまぬがれたけど。 逆ざしできないピンヘッダ配置、逆ざししても火をふかないピン配置って大事だな〜 と思う今日この頃w
211 :
774ワット発電中さん :2012/07/20(金) 16:03:03.85 ID:bjxC1N4T
>>205-207 息子:「とっ、父さん。こんな古い物を1? 酸素欠乏症に掛かって...」
ちゃら、ら・ら・ら〜ら〜♪ ら〜ら〜♪ る〜る〜♪
車の配線に使う挟むだけでつながるコネクタを使えば簡単に装置をバイパス できたりして。
>>210 そりゃもう、盛大な花火と衝撃とその後の静寂が。w
お気に入りのニッパーだったんだがな(´・ω・`)
お気に入りのニッパーが一気ニッパーか
>>213-214 ww
最近みた火花と言えば、秋月のFET 2N7000×10個 200円を愛用しているんだが、
水圧スイッチがON/OFFする24VをavrにIFしようと、Gateに24Vつないで 5VをON/OFFさせたら
2N7000が火花ふいて真っ二つになったw
Gate耐圧が20vというのを後から知ったんだが、高圧をON/OFFできるパワーFETも
Gateの耐圧はたいてい20vみたい・・・
ベース電圧が違う回路系を混在するときはボード上の回路分離や、
ボード分離が大事なのだな、と思う今日この頃w
ちゃんと日本語かけよ 要は分圧サボって壊しただけの話だろ?
壊した時は、50VぐらいがON・OFFできるんだから 24Vかけても大丈夫だろ、と勝手に思い込んでたな。 24V側に誘導負荷のモータもぶらさがってるんで 高圧の逆起電圧でもでたせいで火花でたのか、と思って、 とりあえずは24Vリレーでアイソレートして逃げた後で データシート確認して20V耐圧しかない事を認識した後は 抵抗で分圧でOKだった。
>>207 こういうので大事なのは自分ならどうするかを考えることだと思うよ。
ネットを凄くやりたいがどうやらルータに細工がされているらしい。
お前ならどうするよ?諦める?
「AC、DCの両方で、そしてある程度の電圧範囲で動作する」 という使いやすさを目的として作られた回路です。 ブリッジダイオードは逆指し防止の為に作られたものではありません。 秋月はサラッとヒドイことはしていません。
220です。 すみません、秋月ファンなもんでちょっと断定的に書いてしまいました。 ブリッジダイオードは全波整流用で入力には極性がありません。 結果的に逆指し保護になっているのは事実です。
AC-DCアダプタは極性が決まってないばかりかAC-ACアダプタまであるから…
>>218 ハックできるくらいの知識があれば学校の勉強なんぞビリから10番でも何とかなる。てかそんなに酷い点は取らない。という実例がここにいる。
どう見ても、ブリッジダイオードを入れてる目的は逆指し保護だよ。 なぜならその後のコンデンサの容量が、AC入力の平滑用としては小さすぎるから。
225 :
774ワット発電中さん :2012/07/21(土) 00:56:32.21 ID:EHaV7fC/
>>219 もう、5,6年まえからあるよ。
秋月は極性の異なるジャック(センタープラスと同マイナス)のACアダプタを扱ってた時期があったようで、問題意識を持ってたんじゃないかと思う。
いまは統一規格でセンタープラスだよね?だけどジャックの形はメーカーごとに微妙に違う。
固定電圧ランクをいくつか規格化すればいいのにと思うけど、電流容量とかを考慮すると難しいんだろうな。
>>225 ずいぶん昔のソニーは極性が逆だったと思う
統一規格はあるみたいだけど趣味レベルだから気にしたことないなぁ
10年以上前にリリースされた、LEGO Mindstorms のマイコニュニット(RCX)にも 入ってたよ。
逆刺し保護なら、わざわざダイオードブリッジなんか使わずにダイオード1本で済ませるだろうし、 AC入力対応と考えるのが普通じゃない? ダイオードブリッジの後ろのコンデンサの容量が小さいのは、 単純にマイコンボード側の消費電力が小さいからそれで十分なんだと思う。
逆差し防止じゃなくて逆でも動くようにしてあるだけだろ。AC入力対応でもない。
>>230 AC-ACアダプタなんてそうそう無いし、そうかも
入力端子がDCアダプタのコネクタならDC両極性対応でしょ。データロガーキットもそうでした。 ネジラグとかなら、トランスからのACかな。EleKitシリーズにそんなのがあったよ。
>>223 学校の成績とプログラムや回路知識は殆ど関係ねーよ。
>>231 モデムのアダプタはACACだった。
234 :
774ワット発電中さん :2012/07/21(土) 09:04:49.70 ID:KRJInrZf
テスト
235 :
774ワット発電中さん :2012/07/21(土) 09:31:12.23 ID:EHaV7fC/
ホビーユースだし、素人はジャックの極性を間違えることもあるから、 10円くらいの部品で事故(故障)を防げるなら、その方が親切って立場なんだろうね。 その分、要求電圧が高くなるので玄人にはお勧めできないが。
236 :
774ワット発電中さん :2012/07/21(土) 09:35:20.04 ID:qVds7rJP
ブリッジいれるのは昔やったけど、アダプタ側(電源側)を他の機器と共用すると、 GNDレベルの差から動作不安定になることがあったので、使わなくなった。
AC100Vから手間を掛けずにDC電源を作ろうとすると、 トランスと<整流用ダイオード+3端子レギュレータ>、 つまり秋月と同じ回路構成になる場合が多い。 たいていのACアダプタが電圧も極性も交流/直流も気にせず そのまま使えるってメリットはこういう電源無しキットでは大きいと思う。
また思ったんだけど、こういうマイコンボードって ACアダプタ使わずに電池使うから、両極性対応と考えたほうがいいかも? 自分はこのマイコンボードの基板だけ買って、整流ダイオードは4007で無理やり組んだけど、 極性気にしなくていいから楽だわ・・・・・
まぁ、いろいろな設計思想でブリッジダイオードが入ってると思うけど、 219みたいな感想はないわな
やべー、間違って1時間ほど12Vかけちゃった。
AVR Studioに標準搭載されているシミュレーション(AVR Simulator)使ってるんだけど ステータスレジスタの特定のビットが変化したら一旦停止するとかいった使い方できんものかね? それに関連して特定の汎用レジスタの値が変わったら停止させたりもしたい。 現状だと特定の行にブレークポイント置くしか止める方法が無いんだよね。
>>219 はさすがにネタだろう。
>冗談にマジレス
とわざわざ言ってる。
AVR Studio の avr/io.h ファイルは実物はどこにあるのでしょうか
246 :
774ワット発電中さん :2012/07/21(土) 21:50:41.96 ID:rEAw79gr
俺のパソコンでは、 d:\program files (x86)\atmel\atmel studio 6.0\extensions\atmel\avrgcc\3.4.0.65\avrtoolchain\avr\include\avr
>>227 お、ディスクリートでアナログスイッチって
どうやって作るのかと思ってたところに
ナイスタイミングw
SMDのFETで作ると小さく作れるな。
2つ分欲しかったからちょっと試す。
色々な人がいて面白いね。
249 :
219 :2012/07/22(日) 13:10:38.16 ID:F9KOdT+5
こんな反応されるとは思ってなかった…なんか、ごめんね。
ブリッジダイオード自体は解かってるんよ?
中学校の技術の授業でACアダプタ作ったしね。
ええと、キット作ろうとして何コレ?と思った部品がブリッジダイオードな訳でしょ?
他のマイコンボードもだけど、Arduinoにも付いてるの見た事無いんよ。
なんでかな?と思って調べたんだよね。
そしたら下記のページが出て来て「逆挿し保護ダイオード」って書いてるんよ。
ttp://www.geocities.co.jp/arduino_diecimila/make/ae-atmega/index.html >AE-ATmegaがeJackinoと異なっているところ
> 水晶発振子とセラミック発振子が選択利用が可能。
> DC入力の逆挿し保護ダイオードにダイオードブリッジを採用。
> 電源・GNDのパターンが幅広。
> 基板上辺の100milピッチに整列したデジタル入出力ソケットを省略。
それに基盤の写真見ると「DC」っていうシルクが入ってたりする。
悪いけど、やっぱり…そういう意味なんでしょ?これ。
で、冗談半分に書いた訳だけど…本当に誤解する人が居たら申し訳ないから、
ちゃんと「ブリッジダイオードDIP型」って書いてある商品ページもリンク書いたんだが…
ところで、ブリッジダイオードが正しいのかダイオードブリッジが正しいのかどっちですか?
AT-ATMEGA基板で指定されてるブリッジは、複数の回路モジュールを 組み合わせて使うにはちと邪魔くさい。最近のACアダプタはセンタ プラスが多いので極性固定してGND側はジャンパで良いんじゃね、 と思ってみたり。
最近はスィッチングレギュレータ式ACアダプタを使う場合が多いけど ダイオードと3端子レギュレータの電圧ドロップ分は無視できない。 で、未実装で使う事になるのだが、ただのジャンパーでは寂しいので、 基板のダイオードと3端子レギュレータ用のパターンに ポリスィッチとチョークコイルを付けるのはどうかな? と思ってみたり。
>>252 レギュレータ後にポリスイッチとか入れると、電源の周波数等価容量がすごく低くなっちゃうぞ。
> るんよ? 池沼w
>>253 うむ、では「穴があったら入れたい」、しまった間違えた、「穴があったら実装したい」という
私の下品な欲求を満たす適当な他のパーツを探さねば。
ポリスイッチはピンキリでしょ。 定格3Aクラスだってあるし、バスパワー
のUSBデバイスなんて、ハブやホスト側にも入っていたりするし。
>>255 表面実装部品が増えると、捌け口がなくて欲求だけが溜まりそうですな。
>>256 電流容量の問題じゃないっての。
ポリスイッチをおもいきり遅い方形波で駆動してみて、どれだけ鈍るかみてみ。
負荷が高速応答を必要とする場合、パスコンだけでがんばらなくちゃならない。
パスコンががんばれない起動時など、CPUが起動時間を満足できず、
起動しないことすらある。
>>257 起動時にトリップ気味になるような電流値のポリスイッチ使ってないか?
トリップ回数や時間は、制限があるから実験しすぎで、もう寿命?
トリップ回数は、500サイクルあたりから抵抗値が増大。
トリップさし続けると200時間で抵抗が3倍
>>179-181 金〜土、二晩半徹してネット制限機を仕上げた。そのブリッジダイオードがのった秋月のavrキットを使ったのだが
ソースがでかくなってキット付属の168ではコード、データともに9*%の使用率になっちまい最後は数バイトをケチるはめに.
なんとか誤魔化して子供部屋で本番運用はじめたが大バグがありそう。ステージング機を製作してソフトの完成度をあげようと
2号機を作り始めたが今度はキットの基盤だけ買って必要最低限の部品のみ実装。avrは328にした。
俺はブリッジダイオードの空きスペースに電源ON/OFF用のトグルスイッチをとりつけてみたw
260 :
7 :2012/07/23(月) 12:26:59.07 ID:BFRjIoxA
ArduinoIDEを使ってるとしたら、328P(350円)でも行き詰まるので、ゆとりバージョンでATMEGA64(500円)+変換基板(100円)も準備しといたらいいかも。
そのあたりは
>>154 の趣味製作の流れで、ストックパーツとして部品箱に入ってるよ。
秋月で大人買い、と言うのが小中の頃の夢だったんだw。当時は信越って名前だったけど。
Arudinoじゃないんだけど、AVRStudio5で、安直に、あんまりバイト長を意識しない
int,short,longとかの非組みこみノリのCソースで書いたら、あちこちでオーバフローがでてる感じ。
一日120分制限なんでとりあえず動いてるって感じ。
1000分あたりを超えるとuint16をオーバフローして動作異常するマヌケな状態なんでバイト長を全見直しないと・・・
>>257 > パスコンががんばれない起動時など、CPUが起動時間を満足できず、
> 起動しないことすらある。
あなたの使っているマイコンのリセット端子やBOD機能は飾りですか?
USBデバイス以外に、例えばPS2キーボードにもマイコン(しかも10年前
くらいまではNMOSで電気大食らいの8031とか8048)が入っていて、M/B
側の電源にもポリスイッチは入ってますよ。
しかも、キーボードとPCの間は概観は太くても中身はAWG #28よりも
細い電線で、カールコードを伸ばせば1.5mくらいあったりする。
>>262 結局、外付けのリセットICで時間引き延ばして解決したんだよ。
俺だって最初はえーと思ったんだけど、ポリスイッチ両端の波形と、ポリスイッチの有無で
現象の変化が再現、確認できたんだからしょうがないじゃん。
もちろんポリスイッチの容量も動作、遮断、ともに確認済み。もちろん寿命も。
おまえら、ポリスイッチはいろいろ使ってるから大丈夫なはず、っていうだけじゃなくて、
実際にやってみろよ。
AVRじゃなくて、SH2だったので、消費電流はもう少し大食らいではあったけどさ。
>>263 突入電流が一瞬越えてトリップして抵抗値が大きくなって立ち上がりが鈍るのじゃないの?
対処療法したら、そのうちにポリスイッチのサイクル数をオーバーしてソニータイマーになっちまう。
昔AT90S4414にリセットICを付けて使ったとき、電源電圧が上昇しリセット解除になった瞬間、 AVRが電流を消費し、電源電圧がドロップし、リセットがかかる・・・・・・・・・(延々と繰り返し) というのがあった。 今のMCUはパワーオンリセット内蔵だろうから、こんなことも無いだろうが。
今日の標語 「電源回路は正しく設計しましょう」
>>264 それも考えたんだけど、ポリスイッチ両端の波形を直列に見たら、
そこまで電流が流れてなかったんだよ。
でもGND間の波形はドロップしてたんだよな。
ポリスイッチからCPU側にレギュレータを移動したら、きちんと起動した。
自分もそれまでけっこういい加減にポリスイッチ使ってたので、ちょっと
びっくりした。
レギュレータの出力側にポリスイッチ付けてたの?
外部から3.3Vを直接入れるようにしてた客先仕様を、 5V以上入れるように変更して基板上にレギュレータ増設。 基板上にポリスイッチがありましたん。 妙に起動不良多発。リセットスイッチだと正常起動。 その不具合解析を依頼されたの。 言っとくけど俺の設計じゃないよ。
なんだかんだ言ってるけど、具体的に定格(トリップ電流)いくつのポリ スイッチを使って、突入電流がいくらで、どれくらい電源の立ち上がりが 遅れたの? ポリスイッチの定格が小さ過ぎたとか、ポリスイッチの先に無駄に大きな 電解コン(容量は普通でも低ESRのOSコンとか含む)ぶら下げていたり、単に 設計が悪かっただけの気がするけどなぁ。 あと、(最近のデバイスは、マイコン内部で発振安定まで自動リセットして くれるバカチョン仕様だから可能性は低いけど)外部発振で、負荷容量が 大き過ぎて発振が安定するより先にリセット解除されていたりとか。 AVRならリセット端子を外付けの10kΩでVccへ繋いでいても、ヒューズのBOD 選択で普通に動く気がする。
>>270 最初は1Aくらいついてて、10Aくらいまでいろいろとっかえひっかえしたけど、
傾向は変わらなかったから、単純なトリップ電流とかではないんだよ。
電解コンも、逆に数十u程度しかついていなくて、より大きいのや低ESRのをつけると、
動作が安定した。最初はだからパスコンを疑ったりしたんですよ。
まぁ、電源まわりの設計が悪いのは間違いないと思った。
それまで、PICやAVRでは問題なかったのを、そのままSH2に持ってきたんだってさ。
その症状 どっかのノウハウに書かれてないのか??
電源系の、ちょっと関係するけど、もっと、ド素人的な話でスマナイのだが、 RTCのバックアップに、リチウム電池を使うのは安直すぎてツマラン、と思い、 電気2重層コンデンサをつかってみたんだけど、通電するとパワーLEDが チカチカと点滅しちゃって、SWレギュレータが電源ショートと誤解しとるな、 という状態になったので、安直に、50Ωの抵抗をコンデンサにかました。 5Vだから100mAぐらいに制限すりゃエエンとちゃうか、と。目論もどおりに LEDチカチカは解消され、コンデンサ両端電圧がジワジワと上昇する ようにはなり、RTCのバックアップも目論見どおりには行ってるようなんだけど、 コンデンサの電荷が少なくなってる状態で通電すると、、 avrがちゃんとSTARTかからない現象がでてきる感じなので、充電電流を もっと押さえた方がヨサゲではなかろうか、と思ってるんだけど、 抵抗値上げるより、LED用に売ってる20mAぐらいの定電流ダイオードを かませてみたら、と思いついたんだけど、これって素人の浅知恵かしら?
>>273 定電流ダイオードの電圧の特性とかそこら辺を考慮してるならいいんじゃない?
知ってると思うけど逆流には気をつけてね。
>>273 VccからRTCの電源ピンへ向けて、Vfが小さいショットキーDi入れて、電気二重層
コンデンサの+側端子と、ショットキーDiのカソード&RTCの電源ピンとの間に、
抵抗を入れる。
バックアップ時のRTCの消費電流は1mAよりはるかに少ないので、抵抗は100Ω
くらいでよい。電気二重層コンデンサは自己放電電流の10倍以上くらいで
あれば、充電に時間がかかっても支障はない。
ショットキーDiを入れないと、電源OFF時にRTC以外へも電流が流れる。
> 20mAぐらいの定電流ダイオードをかませてみたら
完全放電時は、コンデンサはほぼ短絡(定電流ダイオードの両端電圧≒Vcc)
になるので、消費電力(P=EI)が最大定格を超えなければ桶。
消費電力: 5V×0.2A=1W。
入手が容易な石塚電子のEシリーズだと、定格300mWだからダメ。
逆流って、電源切ってる時に、コンデンサの電荷がRTC以外に流れることかな? これに関しては、すぐ気付いたんで、整流用のダイオードかまして逃げてる。 電圧降下が気になったけどRTCはかなりの低電圧でも動くから、よかろう、と。 でも、ちょっと上の書き込みで、FETのDとSをひっくり返して使うことで、 電圧降下無しで逆流防止するアイデアのっけてるサイトの紹介があったから、 2号機ではFETをつかってみるよw
>>275 おー。消費電力に注意ね。サンクス!!
秋月のPICつかったデータロガーも2重層コンデンサつかってるの思いだして、
回路図みたら、確かにショットキーDIがはいってた。
でも、なんかRが見当たらないような。不思議・・・見落としかな・・
老眼でてるんで細かい図面が苦手だったりww
>>276 ボディダイオードをバイパスするMOSFETのスイッチは、負荷側に電源(電気
二重層コンデンサ)が存在する場合の逆流防止にならないよ。
常時ON状態のハイサイドスイッチ(=オープンドレイン出力)が構成される
だけ。
>>275 石塚電子のEシリーズって18mAまでしかなくね。
>279
秋月で 30mAのがあったんで、これならば、と。
秋月のサイトのPDF、エラーでて表示できないけど、千石の情報みたら
W数的にもOKそうなかんじですが・・・↓
ttp://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=8AAL-NCF8 >>278 そうなんだ・・・
ボディダイオードの順方向(FETを通常使用する時とは逆方向)に電流流れるように接続し
ゲートをavrのVCCラインにつないでやれば、
通電時(充電時)は、FETがONになってボディダイオードの電圧降下分をキャンセル。
非通電時(放電時)は、ゲート電圧が落ちて、FETがOFFになって、
コンデンサの電荷がavr側に流れるのを防げると思ったんだが・・・
CRDは、パラ使いで電流を増やせるよ。
>>280 秋月の回路図、avrの168のキットの奴もおかしかったようなw
複数あるLEDの中でパワーLEDだけあればいいや、どれかいな?
と回路図みても、みつけられず。老眼のせいかなw
と図面見るの諦めて、基盤パタンを目で追って特定したww
>>281 > ボディダイオードの順方向(FETを通常使用する時とは逆方向)に
> 電流流れるように接続し
ここまでは普通ですが ...
> ゲートをavrのVCCラインにつないでやれば、
> 通電時(充電時)は、FETがONになってボディダイオードの電圧降下分をキャンセル。
Pch MOSFETは、ゲート電圧をソース電位より低い電圧(VGS-on)にしないと
ONしません。 したがって、ゲートをVCCライン(ドレイン側と同じ電位
と解釈)に繋いでも、この時点でMOSFETは期待通りにONしません。
逆流防止に使っている回路では、ゲートはGNDに(電源電圧がVGSの
最大定格を超える場合ツェナーで制限)繋いでいます。
Nch FET使うことかんがえてたんだけど、
Nchでも、ゲートをvcc=5vにつないだら、VGSがかせげないね。
でも、
>>283 の秋月の168キット限定の手だけど、3端子レギュレータつかってて、
9Vスイッチングレギュレータで給電してるから、3端子のIN側の9Vを
ゲートにつなげば給電時だけFETがONしそうw
それ、ArduinoのUSB5VとDC入力9Vの切り替え、そのまま。
MOSFET使った逆接防止回路は考え的にはN-ch MOSFETを使ったI2Cレベルシフト 回路と同じよね。最初見たときは頭のいい人がいるんだなと感心した。 逆流は防いでないからカソード側のコンデンサの容量が大きいときは入力を ショートするとMOSFETが危険な気がする。
>あんまりバイト長を意識しない >int,short,longとかの非組みこみノリのCソースで書いたら、あちこちでオーバフローがでてる感じ。 それ組み込みとか関係なくて、プログラミングの理解が浅いんじゃん
30mAの定電流ダイオード(
>>281 )を買いに秋月行ったら店頭は品切れといわれた
若松店頭のオバチャンにダメ元で聞いたら終了品だが在庫はある、と。
>>284 wwずっと sizeof(int)=4の処理系を相手にしていたもんで、つい・・・
こういう処理系では通算秒をlongに格納しておけばまぁ実用上は支障はなかった。
ANSI C言語規格をJIS規格に写像する作業に関与された方から殆どの(UNIX)処理系では
2=sizeof(short)≦sizeof(int)≦sizeof(long)=4
の関係にあると、その昔聞いた事がある。
つまり、intのサイズは処理系依存だが、short,longは処理系での差がないと。
まぁ、実際そうだった。80*68とか680*0とかのCPU上では。
8bitCPUはZ80,6809いらい30年ぶりなジジィなんだよw
当時はアセンブラで、変数サイズをソース上でいちいち指定してたから
こういうマヌケは起きようがなかったかな。
sprintfとか平気で使ってそう 変数はint8_t,uint8_t,int16_t,uint16_t.... を使うべきかと あと、自分ではFLASHに置かれていると思ってても実は貴重なSRAM消費してたりとか... まぁよけいなお世話かもだけど
>>291 スルドイw sprintf 使ってはまりましたよw
printf("Remain:%s",get_display_timestring(unsigned long型));
とか書いて、読んでる関数の中でsprintfやってたら、
最初は問題なく動いていたんだけど、段々、ソースがでかくなって、
ときどき動きが怪しくなる症状がではじめ、最後の方は、まったくうんともすんとも言わない状況にw
printf("Remain:");print_display_timestring(unsigned long型));
と書きなおして、sprintfをprintfに書きおなして何とか逃げ切ったww
longとかじゃなくint32_tとか使った方がいいよ それとgccでビルド後に生成される.lssファイル見れば大体何やってるか判るよ AVRはこれ確認するの必須じゃないかなあ 品種によってバグがあるし
prjntf系を使っている時点で、ROM容量が20kBくらい増えるのを覚悟すべき。
そんな殺生なww秋月で、168のキットとLCDを買う人は必ず328に乗り換える羽目になるということですかw %書式つかわず,string_disp(char *p){int c;while(c=*p++) lcd_putc(c);}みたいなのをチマチマ呼べ、という ことなのかもしれないけど、辛すぎるww
>>296 草生やしている暇があるなら、自分で関数作れば?
AVRはフラッシュがRAMとは別の空間にいて、直接ポインタで参照でき
ないので、特に考えなくプログラムを書くと、固定文字列もスタート
アップルーチンでRAM上にコピーが作られてRAMを消費する。
PSTR("文字列")と定義して、pgm_read_byte()等でチマチマ読み出して
表示する関数を作らないと、あっという間にまずRAM(ヒープ/スタック)
が足りなくなる。
アセンブラで書けばCPUの持つ能力を100%発揮出来るのに。
xprintf 使おうぜ。先人の叡智に感謝だぜ
かぶった/(^o^)\ でもChaN氏のライブラリは本当に便利だわ
>>298 コンパイラが吐き出すコードより効率良いの書ければね
>>299 あ!
久しぶりに覗かせてもらったら
xsprintfとか増えてバーアップしてた
日付みたら一年以上も前に....
気づかなかったー!!
>>296 は作業に戻ったのかな?
苦労する前に戻ってくるのを祈ろうw
>>297 そのあたり
>>292 のpdfをみて、つい、先ほど認識したところです。
ハーバードアーキテクチャ(命令とデータ空間を分離することで、
riscアーキテクチャのキモのパイプラインがうまく動く)だったわけね。
328のprojectを新規につくって、でかいCソースを機能ごとに分離して、
いっぱいでてたWarningを全部つぶしたら、
Device: atmega328p
Program: 16006 bytes (48.8% Full)
Data: 879 bytes (42.9% Full)
この状態でコードいじりはPendingして、ステージング用の2号機
組み立てて、long宣言した時間変数のオーバフロー現象が再発するか試してみるよ。
>>299-300 えらいカワイイサイトだねw
1段落したら使ってみます。
>>305 >>299 はちょい間違えてた
AVRならアセンブラで書かれててCから使える様になってるのが置いてあるよ
xprintf(PSTR("%%06u"),xxx);
こんな感じで
自分も手前のsprintfよりコンパクトだったんで、ありがたく使わせて頂いた
感謝(ってココに書いてもw)
>>302 AVR程度なら書けるだろ、仕事でやって工数に見合うかは別として…
XYZレジスタが同時に出てくる箇所は確実に手書きした方が効率よくなるよ こういうとこだとgccはテンプレ的なコードしか吐かないから それと割り込みハンドラ内のレジスタの使い方が需要と合ってないから ここも手書きでチューニングしないとSRAM少ない品種で詰む
>>307 そうか?そいつは凄いな...
俺には100%なんて無理だ
-O0指定のgccには勝つ自信が100%あるぞw
>>307 工数に見合うかどうかってのは趣味も仕事も大して変わらんよ。
20MHzでゴリゴリ動かす方が安くて楽なら、趣味でも別にやりたいと思わないでしょ。
>>310 Cには標準ライブラリがあるんだが...
演算関連とか全部アセンブラでなんて言われたら
俺なら逃げるw
AVRがPICより優れている点教えて
>>313 使ったこと無いけど、アーキがすっきりらしい。
後発だもん。それくらいやってくれないと。
>>313 AVRはアセンブリ言語でプログラムをする気になるがPICはならない。
AVRはCでプログラムする気になるがPICはならない。
PICはローカル変数もリカーシブコールも使えないんじゃなかったっけ?
両方のCPUで量産基板を作った事があるけど、AVRの方がスッピン美人だね。 アセンブラで組むと命令が工夫されているところなど、その美しさが良く分かる。
316です。 後で読んでみて、スッピン美人って何だよ?と書いた本人が思ってしまいました。 私がAVRの好きな点を具体的にあげれば、 レジスタが多い、命令(ニーモニック)が工夫されている かな。
電気2重層コンデンサの逆流防止を
>>285-286 でやってみたけど、
電源スイッチ切ってもFETのGate電位がすぐ落ちないみたいで、
逆流しちゃってた感じ。あまりつっこまずショットキーDIに変更で逃げました
充電電流制限を30mAの低電流ダイオードでやってみたら
5Fのキャパシタなんで電圧が上がるまでかなり時間がかかり、
RTCが動作可能になるまで待たされそう。
低抵抗+ショットキーDIが王道なんだな、と再認識
そのショットキーダイオードの逆漏れ電流は検討した? ショットキーは結構漏れ電流が大きい品種が多いんでバックアップ電源に使うときは 品種を選ばないとマズい場合が
へぇー、そうなんだ・・・ 手持ちのストック品を考えなしにつかったよ。 1号機でつかった只の整流用ダイオードの方がましだったかな。
>>318 だから、電流制限は、VccからRTCの電源に逆流防止ダイオードと直列に
入れずに、
>>275 でわざわざ
> VccからRTCの電源ピンへ向けて、Vfが小さいショットキーDi入れて、電気二重層
> コンデンサの+側端子と、ショットキーDiのカソード&RTCの電源ピンとの間に、
> 抵抗を入れる。
と書いたように、「T」字配線の電気二重層コンデンサの+側端子とRTCの
電源ピンの間に入れろよ。 ここなら、電気二重層コンデンサの充電に
関係なく、電源ONでRTCの電源電圧はすぐに立ち上がる。 ただ抵抗を付け
れば良いわけではない。
あと、秋月のキットでELNAのスーパーキャパシタで抵抗が入っていなくても
動くのは、もともとメモリバックアップ用に作られた製品で、ボタン電池と
同様に内部抵抗が高い(短絡しても大電流は流れない)からだと思う。
>>321 抵抗+整流ダイオードをつかった1号機は、その位置に抵抗いれたよ。
定電流ダイオードと逆流防止FET(あらためショットキーダイオード)を
つかった2号機では、同じ位置にいれたら、コンデンサ放電時に定電流ダイオードに
逆に電流を流す事になるのが気になって逆流防止の上流に配置したんだけど、
>>318 になったと。
>>322 Pch MOSFETをNch MOSFETに替えたところで、逆流防止としては機能しない
し、電流制限に定電流ダイオードを使えとは、こちらからは一度も言って
いないのだが?
やってみたらこうなった、と主旨で書いたんですけど・・・ CRDでも消費電力こえなきゃ大丈夫、というレスも貰ってたし。 あんま、このあたりに拘泥してるとスレチになっちゃうけど、 バックアップ回りも、いろいろケアすべきことがあるようで楽しかったよ。 コンデンサをハンダ付けちゃったら、取り外せないから、 回路変更するときにビクビクもんだったよ。 実際、1回だけ短絡させちゃって、一瞬だけどスズメッキ線が、 真っ赤になって驚いた。自作でいろいろいじる場合は 安全に放電できるような配慮したほうがいいな、とか、 avrのAD変換PORTが余ってるからコンデンサ電圧もついでに モニタリングしてみようか、とか。
苦労して学んだ分だけ血となり肉となっただろうし、 暖かい助言や励ましは強く記憶に残って一生忘れないだろうし、 灼熱のスズメッキ線なんて滅多にお目にかかれない物も見られたし、 とりあえず良かったということでOK? すみませんね、横からしゃしゃり出て。
えぇ。いろいろな助言はホント、感謝、感謝。
プロの方かな?と思える方からの、定石はこうなってるみたいなレスを読んで
仕事でやってるわけではない気楽さをいい事に、定石からずれた事をやってみて、
定石の理由が体感したり、とか。
>>319-320 逆方向電流をデータシートでチェックしてみた。0.5μA
大電流がながせるショットキーはmA単位のやつがあるみたいだね。
1号機でつかった普通の整流用シリコンダイオードもμA単位。
大電流ながせる整流用ダイオードもmA単位になってるのがあるみたいだから、
単純に、順方向大電流が流せる=逆方向電流もでかい、ということなんだ、と理解。
あたりまえかw
今晩の工作作業にもどります。
読むのマンドクサw
>>313 PICはよくしらんが、AVRは汎用レジスタが多い。
だから、簡単なことならメモリ領域に変数を取らず、レジスタだけで済むことがある。
そのかわり、各種フラグの入ったレジスタはIO領域に取られるので、IN/OUT命令で操作し、
スタックにPUSH・POPする必要があった。
AT90Sxxxxの時代。
レジスタ間演算ができるからステップ数はPICの半分以下 必要な命令が無いってこともないしビットコピーも便利 品種が不自由なことだけが残念
>328 もう2012年だというのに、前世紀から変わっていないのね。 PICはPIC12/16FからPIC18,PIC24,dsPIC,PIC32とドンドン進化してるよ。 PIC24以降ならAVR MEGAより優れてるよ
PIC24もPIC32も安くなったよねぇ いまさら16Fシリーズ使う気にはならないわ
AVRもAだのVだのPだの進化してるんだけどね。アーキは変わってないね。
秋月さんは、16Fシリーズの購入を止めて、16Fシリーズはせっせと キットで消化したほうがいいだろうな、というのが個人的見解 てか、もうそうしてるのかな
microchipがsmscを買収したけど、これからどう変わっていくのか楽しみ
>>330 24から上は進化じゃなくてまったく別物だな
バンクとwの不自由なアーキテクチャこそがPICだ
>>336 PICって8051より古かったのか…。AVRに綺麗さで負けるわけだ。
>336 PIC32が喧嘩売るべきはAVR32、SAM3あたりであって、 格違いのPIC24あたりまでとにもかくにも相手してあげてる8bit AVRが異常。
普通に今の感覚で32bitとか浮動小数点とかUSB扱えたりしたら・・・ 僕の考えた最強のAVRちゃん!
でもトラ技は押してるよね
>>339 AVR32のUC3C系は32bitでFPU付きでUSBもOTGだぞ?
Atmel Studioで開発できるぞ???
ワンチップはPICからAVRに乗り換えて今日まで来たが... PIC32MXとかは気になるなぁ ...が、パーツ箱にまだまだAVR残ってるし 今まで作ってきたライブラリを移植するの面倒だし 今はまだ乗り換える気力がないな エラッタが解消された頃に使ってみるか
>>340 トラ技が押しているCPUは優秀か?
CPUが優秀だからトラ技は押しているのか?
あまり関係ないと思うな。
安い原稿料でも原稿を書く人がいるから記事を載せているだけじゃないか。
>338 秋月で数百円程度、DIP28品など、入手性や価格が同程度なら比較の対象にならないか? 8bit は 8bit 同士で比較すべきって考え?
>>344 8bitで縛らないとCoretex-Mが参戦してきて全部持っていかれるからな。
>>344 秋月で売ってたDIP品だと、parallax propellerのDIP40品が変態度も含めて最強?
今は秋月通販だとDIP品出てこないんだよな…
入手性と、使いやすさだなやっぱり。 どんなに高性能で簡単に手に入ったとしてもQFPを使う気にはどうしてもなれないし…。
>>341 digikeyで探してみたー一個1000円くらいか。そのうち試してみたいな
>>349 1個100円じゃあ買えないからなあ。ちょこっと使いにはAVRで充分ですし。
AVRとARMマイコン、どっちの方が優秀?
5VのAVR、3.3VのARMと思ってる PIC32は期待してる 1.8Vコアなのは先取りしすぎな感があるけどMIPS側の都合なのかな
5VのARMなんてのもあるけどね
■電気2重層コンデンサでRTCをバックアップする件 「秋月のRTCモジュール(500円)を使う時は モジュール上のI2Cプルアップ抵抗を使ってはいけない AVR側のI2Cポートの直近で自分で抵抗とりつけろ」 というオチで、以下の経路で逆流が発生してました。 [2重層コンデンサの+側→RTCモジュール上プルアップ抵抗→I2Cの信号ライン→ AVRのI2Cポート→AVRのVCC電源ピン→電源LED→GND] ArudinoもどきのFETによる逆流防止は問題なかったのかもしれない・・ ■168でlongがオーバフローしていたように見えていた件 328でメモリに余裕ができたら発生しませんでした。 スタックが不足してlong四則演算ライブラリの呼び出しに齟齬がでていた、 なんてあたりが理由だったんでしょう。 お騒がせしました・・
I2Cのプルアップ抵抗までバックアップしちゃったのか。 そして電源の入っていないAVRのI/Oピンに電流が流れ込むと。 初めてだとうっかりして見逃すかもね。
attiny2313をI2Cのslaveにするための先人方のライブラリが いくつかネットに公開されているようですが、 初心者向けという観点で、どれが一番、とっつきやすいでしょうか?
357 :
774ワット発電中さん :2012/07/27(金) 18:31:05.26 ID:+ed+dPmc
例えば?
attiny2313のUSIでI2Cスレーブを色々試したけど AVRマイコンは処理速度が速いからソフトウェアI2CスレーブでもUSIと同等のクロック周波数に対応できてしまうし USIだと端子が固定で使いにくいとかで 結局ソフトウェアI2Cスレーブで使うことが多いという結果 USIでI2Cスレーブやる利点はスタートビット検出&クロックストレッチにハードウェアで対応していることくらしかない感じ
割り込み使わなければね。
362 :
774ワット発電中さん :2012/07/27(金) 21:32:54.38 ID:Gi/jnLE7
初歩的な質問で申し訳無いですが、質問させてください。 マイコンに電源とモーターをつなぎ、モーターを回したり回さなかったりといった動きをしたいのですが、 モーターが回っていない間の消費電力はどうなるんでしょうか? モーター側に電圧がかからないから、マイコンを通ってだらだら流れちゃうんでしょうか?もしそうなら電池がすぐなくなってしまいます...
で、電池はすぐになくなったの?
w
>>360 I2CのマスタからのCLKが100KHzでも
atiny2313の内蔵クロック8MHzでもソフトのスレーブで処理がおいつくかな・・・
XTALの端子をIOに回しちゃって良いものか迷い中・・・
>>362 モーターのドライブ回路しだいなんだろうけど
普通はモータ止まってる時は電力をくわないような設計をすると思う
>>365 クロックストレッチ機能に未対応だとしても
内蔵クロック8MHzでCLKが100KHzの場合1クロック当たり80サイクルの余裕があるから大丈夫
(OSCCAL=127 にすれば内蔵クロックを15MHz位にまで上げられることは別にして)
受信ビット列から1バイトのデータを再構成する処理をできるだけ簡略化するようにすることと
アドレスを受信して一致不一致を判定してack/nackを返すまでの処理を(アドレスマスク機能などのために)複雑にし過ぎないのがコツかな
ソフトの場合は、割り込み禁止で動かして、 ストレッチの時だけ開放すれば8MHzでも400kは処理できるよ だたそれだとスタートビットを待ってる間は他のことができないから マスターをリトライさせる仕様にして、スタートビットの検出を適当に 打ち切ってやれば定期的に何かやらせることはできるけど タイマー処理なんかは難しい これはUSIの無いtiny10とかで使える手法だけど USIがあるならそっちの方が全然楽だよ
>>367 SDAをtiny2313のPD2(またはPD3)に接続して
スタート条件を割り込みで検出する方法は?
あ、ごめん、「割り込み禁止」って条件なのか。
tiny2313を使って簡易ストップウォッチを作ろうとしています。
内部RCオシレーターのキャリブレーションをしようとAVR Stuio 4の
Programming DialogのAdvancedタブを開いてみたのですが
Oscillator Calibration Byteを読むことは出来てもその項目は
グレーアウトしていて値を編集した上で書き込むことはできません。
http://s1.gazo.cc/up/s1_31251.png ヘルプを読むと
> If this option is grayed out, the selected device does not have a tunable internal RC Oscillator.
と、この項目がグレーアウトしているデバイスは内部オシレータを調整できないようなことが書かれています。
Oscillator Calibration Byteを微調整しつついいところまでチューニングしたいと思っているのですが
tiny2313で内部RCオシレーターをキャリブレーションすることは不可能なのでしょうか?
>>370 どの程度の精度を目指してるん?
それによって助言も変わるかと...
>>371 そもそもミリ秒の表示すらない簡易ストップウォッチです。
2,3分回して誤差が±1秒程度に収まれば万々歳です。
デフォルトの状態はこれよりもう少し誤差が多い気がします。
タイマIC555で基準信号作ったことがあるが、CRなど不安定すぎて使えない。
簡易、ってことだからCRでやりたいんだろうけれどねぇ… 20個くらい買って、誤差の少ないのを選ぶとかじゃダメかなw じゃなければせめてセラロックとか。
>370 "Oscillator Calibration Byte" は調整できないんでは。 これはリセットで OSCAL の "Oscillator Calibration Value" に代入される工場設定の固定値。 工場設定で10%以下だから 100秒での実測誤差は 10秒ってことはないとしても、確かに 1秒よりは多いだろう。 頑張っても 1% だそうだから 1秒 / 100秒で 1 秒というのは凄く頑張ることになるな。
>>374 > 20個くらい買って、誤差の少ないのを選ぶとかじゃダメかなw
そのお金でストップウオッチが買えてしまうかと(^-^;)・・・
>>375 > "Oscillator Calibration Byte" は調整できないんでは。
> これはリセットで OSCAL の "Oscillator Calibration Value" に代入される工場設定の固定値。
AVR Studioのヘルプを見るとそんな感じのことが書かれているんですね。
tiny2313はそもそもチューニングができないチップなんでしょうか?
tiny2313でチューニングされた経験がある方がいらっしゃいましたら
是非教えていただきたいのですが・・・。
そもそも2313の2個目を買う金で水晶買えるがなw デフォ測定でどっちにずれるかわかってんだから、 手で適当な値を OSCAL に代入すれば追い込むことはできるだろ。
気温によって変わっちゃう補正値だから 今合わせても冬には再設定 温度センサ付いてるならテーブル作る…
発振器の精度をあてにするより、ソフトウェア側で簡単に随時キャリブレーションできるようにしたらどうだろうか。 身近にある基準発信源、例えば商用交流とかで。
380 :
370 :2012/07/28(土) 16:22:39.27 ID:N4d8G8qI
>>377 > 手で適当な値を OSCAL に代入すれば追い込むことはできるだろ。
2313def.incファイルを覗いてみてもOSCCALという変数は定義されていませんでした。
2313のデータシートには
> $31 ($51) OSCCAL - 内蔵RC発振器 発振校正値レジス
と記載されているのでI/Oポートアドレスの0x31に直接outコマンドでキャリブレーション値を出力する
という方法でいいでしょうか?
余談ですがtiny2313に
http://s1.gazo.cc/up/s1_31251.png の"Address"欄に適当な2桁の数字を打ち込んでWriteボタンを押したところ
ストップウォッチのカウンタがもの凄いスピードで回り始めて凄く焦りました(^-^;)
再度プログラムを書き込むことで通常のスピードに戻りましたが
いったい私は何をいじったことになるんでしょうか?
どんな周波数でもいいんだから水晶付けろって
>>379 商用交流を時計のクロック源に使っているけど正確だよね、定期的な時刻合わせが必要なくなった。
フォトカプラで簡単にインターフェイス出来るし。
でも停電対策には悩む。
タイマー割込と外部のPIN CHANGE割込を併用している時に、 割込ルーチン実行中に別の割込がはいったときの挙動など、 このあたりの説明って、データシートのインタラプトの所を 一生懸命よめばわかるかな? 8MHzの内蔵クロックの2313で、カウンターをカウントアップして 4ケタの7セグLEDに表示するのを、2セット、同時にスタートさせてみたら カウント値が、どんどん、ずれていってるよ・・・ 同時に買った2313なんだけどね。
386 :
774ワット発電中さん :2012/07/28(土) 16:41:58.46 ID:9aWBrwi6
自作できるの?
秋月で6400円で売っている奴。 回路図とプログラムを入手すれば(ry
>>376 いあ、残り19個は別な用途にちゃんと使えますぜ?w
何かの配線増やしたりパーツ増やしたり、IOが足りないってことじゃないなら現実的には水晶で駆動が正しいとは思うよ。
次点で安くってことならセラロックって書いたんだけど。
OSCALは使ったことないけど、今度やろうとしてる事は内蔵だけで過ごそうとしてるから多少気にはしてるところ。
とはいえ時計とかのアプリじゃないから、ある意味どうでもいいって思ってはいるけれど。
>>381 内蔵RCの校正値は工場で識票バイトに含む形で焼き込まれていて
リセット中に自動的にOSCCALへ書き込まれる
ただ、識票バイトは実行時に読み出せないから
実行時に値を使いたい時はFLASHやEEPROMに予め置いておく必要がある
(Cだとスタートアップがやってくれる)
そのCのスタートアップが使う値を書き換えちゃった...
って事だと
...こんな感じだったはずだが
間違えてたらごめん
アルコール入ってるもんで
最初の1個はAVRにNTP実装してその時刻で動作させる。 2個目以降は1個目とZigBee通信で時刻を得る。通信は一日一回でOKだからバッテリも問題なし。
>>372 色々レス付いてるけど
内蔵RCじゃ厳しいから...
セラロック買ってくるのが手っ取り早いかも
通販でそれだけ買うとなると手数料もったいないけど
ラーメンタイマーなら内蔵RCでもラーメンが伸びる程の誤差は無いと思うがw
44.1KHz(CD)とかの水晶かな?記憶が曖昧なのでテキトーだが 中途半端っつーか大量にある何かに使えるもの、ってことだよね。 以前ならNTSC関連とかで3.5795455/14.31818とかが安かったみたいな。
単なるシリアル用との噂。
RCで足りない程度の精度が欲しいなと思ったら水晶使っちゃうなあ あるいは負荷容量内蔵のセラロックか 小型化が進むと過大電力で壊れることも気にする必要があるけど、 今はまだ32kHzの音叉型を選ばなければ大丈夫(だよね?)
>>368 速度を落とせば割り込みでも検出できるけど
他のアドレス宛の通信が発生すると、
次の開始条件までピンが変化する度に
無駄な割り込みが連続して掛かることになる
>>396 D−FF(HC74とか)でSCKとSDAを組み合わせると
開始条件だけで割り込みをかけられるけど、
それだけの価値(外付けのICを追加する)があるかどうか。
>>398 よく考えたらピンを見て判定して戻るのはレジスタやSREG退避が要らないから、
空の割り込みが連続して掛かっても大した負荷じゃないね
8MHzで100kbpsを受けるとして20クロックぐらいで戻れれば負荷は25%
SDAはSCLほど頻繁に変化しないし
>8MHzで100kbpsを受けるとして20クロックぐらいで戻れれば負荷は25% 無駄時間としてはずいぶんともったいない
>>397 すまん
脳内で色々ごっちゃになって書いてたみたいだ...
先に書いたスタートアップは手前の事なんで忘れておくれw
で、改めて説明すると...
その画像ではValueが0x9Fになってるけど
これは工場で焼き込まれた値で、その個体のRC校正値って所はいいよね?
そして、この値は実行時に取得出来ない所にあるから
例えばプログラムでメーカー設定値+1とかしたい時は
何らかの形でソースに例の0x9Fを仕込む必要がある訳で...
これだとチップ毎にソース変えなきゃならなくなる
それならFLASHまたはEEPROMの使ってないアドレスに0x9Fを書いて置いて実行時に読み出せばいいんじゃね?
ってな考えになるんだが...
ん〜 ソースいじらずにどうやって特定のアドレスに値を書き込むんだろ???
長くなったが、そこで画像のツールの出番な訳だ
もうわかると思うけど...
適当なアドレスを書き換えちゃった = 暴走しちゃった
って事なんじゃないかな?
多分これで合ってると思うけど、記憶から引き出した情報なんで...
帰ったら検証してみるよ
>>401 そうそう
複数作る訳じゃないんだし
そのツールはメーカーの校正値を確認するだけに使って
ソースでOSCCAL=0x9F+1; とでもして
コンパイル&書き込みを繰り返す方が簡単かも?
まぁお好きな方法でどぞ
>>401 > 適当なアドレスを書き換えちゃった = 暴走しちゃった
> って事なんじゃないかな?
なるほど、そういうことでしたか。
フラッシュの方の適当なアドレスに書き込んだところ
そのアドレスがたまたまプログラムのコア部分に相当し、
そこを書き換えてしまったが為に暴走しちゃったのかもしれませんね。
初めてAVR(tiny2313だった)を10個買った時は、 10個全てのRC発振器の補正値を調べてラベルに書いてCPUに貼り付け、 プログラムの起動時にOSCCALに補正値を書き込んでいた。 でも補正値の±1で悲しくなるほどずれて微調なんかできない。 ±10度の温度変化でもあきれるほどずれる。 (8MHzのRC発振器としては素晴らしい性能かもしれないけど) 今はプログラムの機能が 周波数精度に影響される、実行速度を上げたい →外付け発振素子 周波数精度に影響されない →内蔵RC発振 で無条件に振り分けている。 興味が無いので内蔵RC発信器の周波数を調べもしない。 (日記でゴメン!)
数パーセントの誤差の積み重ねが問題にならない用途なら 内蔵RCは使えるピン増えてグッドなんだけどね
>>404 そこまでして、精度が必要な用途で内蔵RCを使おうとは思わないなぁ。
制度が必要なら水晶でサクッとできちゃうし、
ピン数が足りないなら、普通にピン数多いの使っちゃうし。
>>404 も今ではもう思っていないんだからいいじゃないか。
このあいだ、秋月でも8だったか16MHz10個100円で売ってたな。 レギュラー品じゃなくてジャンク品て書いてあったか。もうないかな。
シナルートで手に入れてみたら、中身が入ってない ハリボテICとか、全然関係ないダイが入っていたなんて いうことがあったな。
412 :
774ワット発電中さん :2012/07/30(月) 00:46:44.60 ID:IrtvuEPG
おもしろいらしいぞ
ISPの配線をミスッたらFUSEとばしてしまう、なんて事があるかな? デバイス種別をISP経由でちゃんと拾えさえすれば、配線はOKだと思ってたのだが。 attiny861Aを内蔵クロックから外付けXTALにしようとFUSE書き換えたら ISPで読み書きできなくなってしまった。外付けXTAL指定したつもりが、 外部クロックを間違えて指定したせいか、と思い、 Chip交換して、AVRStudioのdropdown list boxの選択を、 よ〜く、確認してもう一度やったら、同じ症状が再発して、2個CHIPを飛ばしてしまった orz 書き込み機がJTAGICE-mkUのclone機で純正でないせいかもしれないけど・・・ tiny2313やatmega128/328では何の支障もないんだけどなぁ。
>書き込み機がJTAGICE-mkUのclone機で純正でないせいかもしれないけど・・・ それだな。
>>413 lfuse以外に書いちゃったなら飛んだ可能性もあるけど、
大抵はISPの通信クロック落とすとかリセットすれば見えるよ
プログラマは変なGUIのよりはavrdudeがおすすめ
純正なんて使う必要ないよ
>>413 Xtal指定したらXtal付けてないとISPできなくなった
気がするけど大丈夫?
あとはパラレルライタでも作って初期化するとか。
>>413 とりあえず、新品の861Aを2個買ってきたから、
FUSE設定を以前つかっていた共立のライターでやってみて、
cloneのmkUでFUSEを読んでみるよ
ついでにパラレルライタの部品も調達はしてきたが・・・
本来のプログラムづくりを優先するか、パラレルライタづくりを先にするか・・・
純正のdragonは日本への送料込みで$71みたいね・・・
手造りの手間賃も含めて考えれば安いとも言えるか・・・
418 :
774ワット発電中さん :2012/07/30(月) 19:03:21.69 ID:3zLuWgwo
1台目のISPは純正を使わないと問題の切り分けに迷いそうな。
>>411 そういや電解コンデンサの中に電解コンデンサがある写真もあったな
電気二重層電解コンデンサというやつか
分配器はそんなもんじゃないの?
それはちょっと高周波回路のエンジニアがかわいそうだと思う。
>>423 国産の分配器ならともかく、シナ製の安物は、マジで
中で4つに配線してあるだけだった。
マッチングトランスも何も入っておらなんだ。
>>416-417 結局、俺がアホタレなだけだったw
共立のライターで、新品の681AにFUSE設定したらちゃんと動いて
クローンのmkUで読みこんだら俺が指定したのとは違うXTAL設定が表示された・・・
周波数の低い別のXTAL指定しちゃったみたいで
20MhzのXTALでは発振しなかったというオチみたい。
AVR StudioのFUSEのクロック設定のUIはアカンw
・1個のdropダウンリストBOXで多数の中から選択指定させる
・指定した選択肢がどういうBIT値指定になるのかがわからん
というのはツライわ
MLFって、どうやってハンダ付けするの? ハンダゴテじゃ、無理?
裏返してやってるのは見たことあるな
QFPと同じようなパターンの上にのせて 普通にハンダゴテでいけるが。 基板作るの前提ならQFPより簡単だよ。なんといっても検査が楽。
それは、隣のピンとのハンダブリッジがQFPより出にくいということ? リードが出てないと目視で検査する術がないのでは?と素人的にはおもってしまう・・・
430 :
774ワット発電中さん :2012/07/31(火) 20:31:27.68 ID:GRDU3AmK
> なんといっても検査が楽。 MLFパッケージ下面のパッドのハンダ付け状態はどうやって確認するの? 脳内検査? それとも特殊な透視能力?
X線
別に見えない部分まではんだ行ってなくても大丈夫じゃね? どうせ省電力しか扱わないんだし・・・・・。
433 :
774ワット発電中さん :2012/07/31(火) 21:37:48.50 ID:wb/Vul3t
AVRでwebサーバーに仕立てた電子工作のハード、ソフトを見たことありますか? 「Arduinoで...」ではなくてです。
>>443 ニコ動にエアコンの赤外線リモコン鯖作っていたのがいた気がする。
今確認できないがAruduinoだったり純粋にAVRじゃなかったらスマソ。
>429 QFPだと影になる部分にもブリッジが出るかもしれないがQFNではそういうことはない。 ガラエポとモールドの隙間にハンダが入る恐れは無いと思っていていい。 それに、アトメルのMLFではリードはモールド壁面に出てる。 旧ナショセミのSONをはじめ、全てのパッドが下面にしかないタイプは地獄なので混同無きよう。
32bitマイコン使うならAVRがいいかね
>>433 ネット上でとか書いてないんで...
自宅で見た
っと言ってみるw
念のため書いておくが... ソースくれとか言わないでおくれよ 暇があったら助言は出来るかもだが
32bitのMCUも最近はlittle endianで済むようになってきてる (endianを選べたりする)から、big endianなdesignはオワコン いや、そう願ってるだけw
>>433 ENC28J60+ATmega328Pでググれば
結構な数のインターネットガジェットが引っかかるね
>>440 webサーバでもSDカードとかの外部記憶にコンテンツ収めて
ソレを表示出来るようなのだとすごく【興味あります】
外部記憶使ったようなのだと全く見つからない
#件数的には「神様ならインターネットで見たよ」の方が多い
AVR本にSDカード使った工作事例のってたので
SPI通信で測定したデータを格納するデータロガーみたいなものを
製作しようとしているのだけど、カードを抜き差しするんではなくて、
httpプロトコルでSDカード中のデータファイルをDLできると確かに嬉しいw
でも、センサーIFに端子数をつかっちゃうから、SDカードとの通信は
シリアルでやらざるえなくだろうから、DL速度がそこで律速しちゃうかな・・・・
また、httpサーバまで盛りこんだらPGが入りきるか?
http://SDカード持ったavr箱/download?blockno=ブロックNO なんてGETリクエストに応答して、SDカード上のデータブロックを
HEXDUMP形式でレスポンス返す、なんて簡単な仕様にすれば・・・
>>441 mega328と組み合わせるならW5100とかっしょ
こいつならTCP,UDP, ICMP, IPv4 ARP, IGMP, PPPoEまでチップがやってくれるから
328でもかなりの事が出来るし
カニチップのコードを手前で全て書いてた時を思うと、劇的に楽できるw
>>442 SDとの通信はシリアルでって...
もともとSDはシリアルなんだが?
じゃなくて、作ったロガーからデータ取り出すのがUSARTって事かな
ちなみにUSARTでもISDN時代の数倍は行けるぞw
>>441 ファイルシステム備えたHTTP鯖はCortex-M3の領域かな。AVRだと何かをオフロードしないと荷が重すぎないか?
>>445 パラ通信もできるらしいとか?
まぁAVR本にも、シリアルでの例しかなかったわけだが
>>447 Apache1.Xのソース落としてきて、けずりまくれw
httpでリクエストを受け付けるアプリケーションサーバモドキを
昔つくった時に、この手で、3日ぐらいで、スケルトン部分は安直につくれたよ。
どんなGETリクエストを投げても,Hello Worldを返答するような奴
Apacheはmallocを裸で読んでなくて1枚皮をかぶせて呼び出してるから、
皮の中身をいれかえりゃメモリが少ない環境でもなんとかなりそう。
mbedだと要領が良ければ当日中に完成するから 時間的なコストを考えるとAVRでやろうとすると高くつくかも
それとインターネットガジェットが云々ていうAVRの本を一読してみるといい 恐らくやりたいことが網羅されてる
452 :
441 :2012/08/01(水) 15:24:09.98 ID:vOMGwJow
441の
>>440 アンカは
>>438 の間違いだorz
まあ元は
>>433 が「見たことある?」から始まったわけで
HTTPを実装した例なら構成ハード例をググレば出て来るだろ
でFAなんだが
ただ,どの程度のwebサービスまで期待して聞いてるのがわからんかったんで
外部記憶にコンテンツ置いてやるような例は見たことないや
つうのが
>>441 なわけよ
俺としては実際にSDカードとかの外部記憶でコンテンツを
供するようなwebサービスは,AVRでもがんばれば実現は
可能だと思うんだ
そのSDにAVRならでは、という感じのデータを格納するところまで やらせないと、AVRでやる意味というか、面白みがないよな。 SDを真ん中に置いて、センサ抱えたようなSDに書き込むAVRチップと httpリクエスト受けて、SDの中身を返すようなAVRとわける設計にすれば・・・ SPI通信のSDなら排他管理が簡単にできそうだ。 ネット制限機のネット仕様履歴をI2Cのeepromにいれるようにしたけど、 SDにかえようかなw
出来ないことはなさそうだけど、俺なら2石使う。
SDへの書き込みまでやるとファイルシステム管理とバッファ確保で メモリがきつそうなんだよな マルチMCUも悪くないけど...そこまでして...という感があるw
ファイルシステム使わないで大容量eepromがわりに、
ブロック単位に、直書き込み、直読み込み。
ロゴイメージgifみたいな静的コンテンツは、
http://avr箱/upload?blockno=XXX&len=NNNN なんてリクエストURIを使ってPOSTメソッドで、
ブロック指定でSDに直書きでUPLOADしておいて
htmlコンテンツ内のリンク記述も
ブロック番号指定で直参照w
そこまでするならRaspberry Piでいいや・・って感じになってる。
>>448 ちょっと端折りすぎた
AVRスレって事でDAT0-3使う本来のモードは除外してました
だって必要無いっしょ?w
>>447 自分が書いたのはW5100専用でPing、DHCP、DNS、SNTP、HTTP等をサポートしてるけど
普段よく使うmega328では流石に全部は厳しいんで選択的に使ってる
Web鯖として使う時は.html.gif.jpgといったリソースをVC#なツールでCソース化して組み込む形になってます
その際ツール上でファイルに対してBASIC認証を指定する事もokで
例えば、これを使ってブラウザからLEDオンオフを作るとすると...
雛型+CGIにリクエストがあった時にコールバックされる関数を書くだけ...
てなお手軽仕様となっとります
...が、公開はまったく考えてなかったなぁ
つーか公開に耐えうる状態にもっていく時間が無いっす
461 :
774ワット発電中さん :2012/08/01(水) 20:40:56.63 ID:juF2hr4b
W5100買えばマイコンチップは必要ないの?
>>457 それをいっちゃおしまいよw
>>458 なにその人デナシ専用のURIアクセスはよ(笑)
そこまでするならSDカードに記録したデータのダウンロードは
FATとかのPCでも使えるフォーマットにして,メディアごとPCに
持っていく方がいいんじゃね?w
まあどうしてもネット使ってDLってんなら,いっそFTPかTFTP
あたりの軽いプロトコル使ったほうがいいべさw
それかテキストベースで常時垂れ流しができるならsyslogサーバ
に送りつけるとか,UDPベースのなんちゃってシリアル通信プロトコル
の垂れ流しの方が負荷的には分散されていいと思うけどな
>>459 やろうと思えばSPIを使わず,USARTの同期シリアルでSPIをエミュレート
という手段もあるからな可能性はひろがりまくりんぐだわなw
鯖+SDの話が出てるけど... ロガーとしてなら有りと思うが リソース置くためならFSで増加するコード分をCGIに割り当てたいな とは言え、携帯(i-mode)でアクセスしてた時はテキスト+小さなロゴぐらいでも 満足...つーか何も感じなかったが スマホからだと寂しすぎるんだよなぁw 今なら8MB SDとSD用AVR追加してもワンコインだから コンテンツをリッチにするのも有りかなw
SDだからってファイルシステムを使わなきゃいけないわけでもあるまい。
>>461 ちゃんと読んでおくれw
逆に聞きたいんだが、W5100だけでドコまで出来ると思ったん?
466 :
462 :2012/08/01(水) 21:10:18.44 ID:vOMGwJow
462の
>>458 アンカは
>>456 の間違いなorz
>>463 リッチコンテンツ目的なら俺なら素直にcortex-M3以上のプラットフォームへ行くなw
まあAVRをふんだんに使ってマルチコアというのもやってみたい気はするけどなwww
>>464 そうだよ(便乗)
設計/製作者の好きにしていいことだよ
>>464 EEPROMチップ替わりにユニバーサル基盤にSDカード貼り付けて
カードに直接ハンダ付けしたもん作った時に
ファイルシステム載っけなかったなw
ただ、ハンダ付けしたのMicroSD->SDアダプター側で、引っこ抜けるから
結局利便性を考えてFATにしてしまったが...
>>466 そりゃ上位クラス使えば楽だけどさ
例えば、スマホからエアコン操作とか作るとしたら
苺のW5100モジュール完成品 2500円
秋月でmega328 250円
その他パーツとユニバーサル基盤で数百円...
これだけで十分実現できてしまうんだよなぁ
これに、ブラウザ上を賑やかにするためにSDカード追加しても...
まだまだ安い!w
まぁ趣味で、作るの面倒過ぎるってんならAVR以外も有りだが
自分的には別にそれほど苦はないもんでw
話変わるが、mega328だけでW5100とSD カード使ったWeb鯖いけるか今度やってみる
(問題はCGI用にどれだけ空きを残せるかなんだけどね)
どう作っても外からアクセスするとなるとラッパー(逆串)なしでは怖くなる。
>>453 例えば1Mbit EEPROMだと2GByte SD買えそうだから...
ざっと16384倍っすかw
>>472 だからW5100みたいな楽ちんチップが出てくるんじゃん?
それは、接続がSPIで簡単ってだけでカニチップとかわらんよ
AVRを中間コード実行エンジンとして使うならRAMもROMもMMUも載せ 放題だろうけど、速度が辛そう
475 :
774ワット発電中さん :2012/08/02(木) 01:57:35.62 ID:JQFgTIsK
AVRの8bitではwebサーバーが苦しいのならAVRの16bitや32bitに行くのでしょうか? それとも別のCPUを考えるのでしょうか?
x86のAtomが5000円だからねぇ。
raspberry pi届いたら、Arduinoと通信させてそのへんをスマートに解決してみたいな。
>>475 何で苦しいのかにもよるが...
自分的にはmega1284で厳しかったらAVR外を考えるよ
ちょいと(かなり?w)古いが...
秋月のH8/3069ネット対応マイコンLANボード用に組んだ過去の資産が色々あるんで
これも候補に入るかも(まだ買えるし)
>>477 ラズベリーパイ出されると立つ瀬がないなぁw
ラズベリーパイで20軸のサーボコントローラ作れる?
>>480 そこが問題になるならAVRチョイスしないんだがw
483 :
472 :2012/08/02(木) 07:15:55.26 ID:tTEya2gN
>>473 だから、W5100のTCP/IPをアテにしなくちゃダメな品種なら、
次はSPIかシリアル接続でfatのSDからファイル読んでくれるモジュールとか要るでしょ。
そういう事をリンク先見て考えてって事。
…要するに、データのサンプリングは使い慣れたAVRでしたいって事じゃないのかな。
職場から自宅のデータ?みたいな事がしたいんでしょ。
AT90USBKEY2はどう?コレはUSBホスト機能(正確にはOTG)と大容量のFLASHメモリー積んでます。
話の流れのまんまならUSB-LANとカードリーダ使ってWebサーバーでしょうか。
USBポート付きのNAS持ってるなら、USBKEYをデータロガー+ストレージに仕立てれば良いです。
>>483 何を言ってるんだ?
混信してないかい?
問題 1. ATMega8MHzでのSPI通信最大速は? 2. とあるSPIのクロックで、立ち上がりから次の立ち上がりまでが70nsでした 周波数に換算すると?
必死に役に立たないレスや質問形式を書くのはオナニー好きと見た
オナニが嫌いな女子なんていません!!
>>485 最大速度って、このクロックより早いと定常的に取りこぼす、って意味かい?
ソフトのみで割込なしで、SPIでたれ流れてきたデータを受信して7セグLEDに表示させてるけど
受信処理以外の処理を実行しているタイミングでSPIのクロック変化を取り損ねないか、
というあたりが、心配になってあんまり速度を上げてない。送り側がACKを確認して再送する
プロトコルにすりゃいいんだが、そこまでできてない。
>>488 あれは、ググりまくって俺は全てを理解したぜ!っと鼻息荒く得意げに間違った情報を語ってる
>>480 へに対してだよw
システムが8MHzならSPIはマスター時最大でも4MHzで...
そのクロックを元にコマンドやアドレスを流してデータ受け取るんたから遅くなるのはあたりまえ
あと70nsって事は約14MHzだけど、データシート通りそこまでokなのかは試してないが...
少なくともW5100側のSPIクロック最大が4MHzってのは誤情報です
そのあたり検索すると情報が錯綜してて勘違いしたんだろうね
でもまぁ今時の通信速度と比べたら遅いのは確かだけど、W5100(SPI)はメモリ・ピン数節約出来て楽に組めるってのが存在意義だろうし
AVR(mega)工作になら十分だと俺的には思うんだけど...
どうだろう?
補足しておくと... AVR工作で、スマホなどから家電制御 と AVRで貯め込んだデータのダウンロード の話が出てたんだ 後者の方なら扱うデータ量にもよるけど、速い方がいいだろうね
>>489-490 そういうことねw
W5100+AVRの場合はownコーディングする事になるのは、
IP通信の場合どのレイヤーからになるんだろう?
(1)ソケットライブラリついてるから、listen,acceptを使えればOK
(2)IPパケットの送受信まで。TCP/IPはてめぇでかけ。
(3)MACパケット送受信まで。IPヘッダもてめぇで付けろ
The Internet経由でのDL速度の話になると、MTUサイズとかWindowサイズとか、が
かなり影響を与えるから、(1)だと簡単だけど工夫の余地なし、
(2)だと工夫の余地があるけど敷居が高すぎな感じ。
(2)が手ごわい印象。(1)と(2)の間は凄いギャップがあるよな。
(2)と(3)の間のギャップは大したことない印象・・・
>>491 TCP,UDP,ICMP,IPv4 ARP,IGMP,PPPoEまでチップ側がやってくれるよ
簡単に書くと4つのソケットがあり、それぞれに内蔵メモリーの区画を割り当て
て
OPEN,LISTEN,CONNECT,DISCON,CLOSE,SEND,RECV等のコマンドで制御できる
なのでUnixのソケットライブラリとかわかるなら割と簡単に色々出来ちゃうかと
まぁ実際使うとしたら、open()send()recv()....などなど拾ってくるなり
自分で書くなりしないと駄目だが(そりゃあたりまえかw)
ってな感じでワンチップマイコンに向いたお気軽仕様ですw
1GBのmicroSDが150円だったので3つ買ってきた、いつかAVRに繋ごうと思いつつ忘れてしまう
>>493 SDアダプター付きなら
アダプターの端子にハンダ付けしてソケット替わりにする
ってな方法を簡易用途でしてる
ケチり工作w
AVRにお勧めのOSってある?できればネット上に情報がたくさんあるが理想
wiki落ちてる?
>>497 ありがとうございます。
ところでwikiが見れないのですがどうなっているのでしょうか?
500 :
774ワット発電中さん :2012/08/06(月) 08:09:41.85 ID:m+ZY4AT+
高機能CPUなどの微細加工技術に高電流を避けるのは常識。
>499 P140の注3,4でパッケージがPDIPなら200mA、QFPなら400mAと書いてある この違いはVcc,GNDのピン数の差なのかな(PDIPは各1,QFPは各3)
FreeRTOS使うためにATmega323が必要なんだが。千石にもマルツにもなかった。 秋葉原か大阪で売ってそうな場所知らないかな?
SRAMがそこそこ載ってるmegaなら動くと思うけど FreeRTOS atmega328とかでぐぐれ
>>505 323と328のデータシートのタイマの説明見くらべればわかるんとちがうんか?
atmelサイトでデバッガーのDragon注文したらBoard1枚だけ届いて驚いたw
マレーシアのペナンからDHLでとてつもない過剰包装で届いた。
ケーブルもついてないのね。どうりで安いはずだわ。
100均かアキバで適当なケースみつけてこないと・・・
>500 教えて!AVR MEGAシリーズってどれくらいの微細加工なの? 電源5Vということは0.5um程度? その場合の高電流ってどれくらいから?
WinAVR(avr-gcc)の include/avr/iom323.h include/avr/iom328p.h これとデータシートを見比べて適当に変えてくしかないかなあ タイマー0ならTCCR0→TCCR0A,Bとか タイマー1は同じレジスタ名でも設定箇所が違うね 基本的にタスクスイッチ用のインターバルタイマーの設定だろうから ADC完了割り込みとか適当なもので代用できると思う
>>509 16bit timerだね。
323と328のデータシートのレジスタ名の所だけ
見くらべてみたら、
レジスタ名はほとんど同じだが、
328の方は、
TCCR1C、TIMSK1、TIFR1
の3つがふえてるな。
TCCR1Cは使い方を設定するレジスタだけど未設定(デフォルト値)のままでOK
TIMSK1は、タイマ割込のマスク設定だから設定必要で、323ではTIMSKに
設定していたものをTIMSK1に設定しろ、ということだろう。
TIFR1は参照する必要なし、と読んだ。
>>509 参考までに、328P(164,88P)に移植したときの変更点
PORT.Cの修正箇所
//割込み許可ビットの修正
#define portCOMPARE_MATCH_A_INTERRUPT_ENABLE ( ( unsigned char ) 0x10 )
を
#define portCOMPARE_MATCH_A_INTERRUPT_ENABLE ( ( unsigned char ) 0x02 )
に
//マスク名称変更
ucLowByte = TIMSK;
ucLowByte |= portCOMPARE_MATCH_A_INTERRUPT_ENABLE;
TIMSK = ucLowByte;
を
ucLowByte = TIMSK1;
ucLowByte |= portCOMPARE_MATCH_A_INTERRUPT_ENABLE;
TIMSK1 = ucLowByte;
に
//割込みベクタ名変更(2箇所あり)
void SIG_OUTPUT_COMPARE1A( void ) __attribute__ ( ( signal, naked ) );
void SIG_OUTPUT_COMPARE1A( void )
を
void TIMER1_COMPA_vect( void ) __attribute__ ( ( signal, naked ) );
void TIMER1_COMPA_vect( void )
に
88Pとか164にも入れてみたけどさすがにメモリ(SRAM)がきつい
Mega328クラスでRTOS使いたい用途ってなんだろ? 技術的な興味や何となく遊びで... 自己の技術不足を補うため... OSにAVRの各資源を食われようが自分がやりたい事を楽に実現できるから... ん〜 最後のは書いておいて、まったく思いつかんがw やはり最初のだろうか?
浮遊容量だけで発振するから発振させるだけなら付けなくても良い 個人的には5pF〜15pFを付けるようにしている 何も考えずクリスタル用全振幅発振器のほうに設定しておけばよい
516 :
774ワット発電中さん :2012/08/07(火) 19:07:30.16 ID:ZTSbcAB0
22pF
>>513 ?
赤外線リモコン操作とキー入力を同時に処理とかで使うととても便利じゃん?
とりあえず、RTOSを導入すれば、時間管理が楽。 オーバヘッドなどはMCUの高速化におんぶにだっこにかたぐるま。
割り込み駆動プログラミング あるいはイベント駆動じゃね
まあarduinoで満足する人もいるんだし 好きにしたらいいと思うけど
人それぞれ好きな様にってのは理解してるつもりだし、それについては何も言うことはないが... ただ、自分に思い付かないだけで、「おおー 確かにそれならRTOS欲しいな」ってもんが 何か出てくるかと思ったりしたもんでw
>>513 お前が思い付かないだけでそういう所からもマイコン人口が流入してくるわけだからバカにできない。
>>517 レスありがたいが...
自分には、そこにRTOSが必要になるもんが見いだせんのだが
すまそ
たとえば。0.5秒おきにLEDを点滅消灯させたい場合 原始時代→クロック周波数と命令実行サイクルから0.5秒に相当する時間を算出し、ループを作る。 江戸時代→CPUの外部にタイマを取り付け、0.5秒毎に割り込みがかかるようにする。 第二次世界大戦→MCUの内部タイマを使い(江戸時代と同様) 最近→RTOSを使って、0.5秒周期のタスクを生成し、他の処理とは独立なものとして扱う。
俺的には、昭和初期の古き良き時代が居心地がいいと思うw
>>赤外線リモコン操作とキー入力を同時に RTOSなんて資源食いを使わなくても、SP領域を2つ用意して タイマ割り込みでリターン先を切り替えれば簡単に実現できる。 小さくて早いよ。色々と気を使うけど。
>>523 RTOSが必要になるものがある・・じゃなくて、RTOSを使って楽をする、
プログラム/処理全体の見通しを良くしてやるっていうことよ。
必要性を感じないなら無理して使わなくてもいいだろうさ
多くの人が漫然と思い込んでいる 真理・真実・現実・事実・史実は一つだけ 怒り・憎悪・悲しみは自然な感情 戦争・テロ・犯罪・虐め・差別は無くならない 躾に体罰は必要 学校を何度変わっても虐められるのは、虐められる側に原因がある証拠 死刑を廃止すると殺人が増える などの論理的間違いを解説ちう m9(`・ω・)ビシ 義務教育では教えない 感情自己責任論
OS載せる載せないが議題になるAVRが好き。 ARMスレだとWebアプリ開発をRubyでするかとかが議題だからな、なんか次元が違う。
>>526 だから楽したいだけだよ?
さらに処理時間が違うタスクの追加したいとかだってOSまかせにした方が楽だぞ?
40pinのやつって今ないんだっけ?mega323が廃番になったから。 mega328pは28pin…。足りん
うげ、今ぐぐってATmega1284がRAMが16kBもあっていいと思ったがFreeOSが使えない…。 8*8のマトリックスLEDを2個つなげて16*8のテトリス作りたいんだが、表示に32pin 、ボタンに4pin使う。何かいい手はないか。
ミス、FreeOS→FreeRTOS
>>534 シフトレジスタとかで、出力を稼ぐのと、
キー入力はアナログ使う。押してるボタン毎に電圧変えればいいでそ。
出力ピン同士を抵抗入れたスイッチでつなぐとか 入力は1本だけ使って出力ピンで順次走査を兼ねるとか
>534 表示に32ピンが多すぎる。 16x8の8側はそのままで16のところは、どうせ同時に1個しかONにならないなら 74HC154みたいな4to16デコーダー使って4ピンですます(4+8=12本)とか いっそスキャンは0→15と決めて、CLRとINCの2本+8本(2+8=10本)でいく 外付けでTINY2313あたりで入力にCLR,INCと出力16のデコーダーを作れば楽じゃないか CLR入力で全部OFF、INC信号↑でR0on → R1on(R0off) → … → R15on(R14off) → R0on(R15off) と 一定時間 INC信号↑来なかったら全部OFF みたいな
ピン足りないとかRTOS使えないとか言ってるアホに テトリスはハードル高すぎるだろ
そもそも RTOS載っけてるんだから そういうこと出来ない或いはしたくない人種なんだと思われ と想像してみる
>>539 ピン足りないとかRTOS使えないとか言ってるアホでも
テトリス作れるかどうかは別問題だぞ!
....アホ呼ばわりすまん ついつい
いやH8は使えるんだが、AVRは初めてなものでLEDチカチカみたいな簡単な 物を作りたかった。でもLEDチカチカじゃ楽しくないんでマトリックスLED でなんか使おうと思った。 FreeRTOSは将来的にという意味。まずはOSなしでやってみる。
普通のオチゲーぐらいではRTOS使うまでもないかな。せっかくのAVRなんだから、 なんかのセンサーのデータで割込かけて、落下物を落としてみれば? 人為的にセンサーデータに影響与える事ができるような場合には、 落下物を決める奴との2人プレイ、乱数的なセンサーデータなら1人;プレイ
ATmega1284Pに使えるRTOSってないのかな?ネットに情報沢山あるもので。 16kByteものメモリ、OSなしじゃ使い切れないと思うんだが
使い切る必要もないと思うが。
SPI通信でバイナリデータ受けて10進化して7セグメントLED×4をに ダイナミックディスプレイするだけでほぼ2Kになっちまったがな・・・
さすがに食いすぎだろ printfとか使ってないか
秋月のダイナミック点灯用4桁高輝度7セグLEDに2313からTr使わずRx4だけで接続して 1/32...つまり1セグメント単位のダイナミック点灯な奴を以前遊びで作ったが... まぁ室内なら問題ないぐらいの明るさだった って高輝度意味ないしw (?mAになるか計算して光らせてみれば作る前からわかるじゃんってツッコミは無しで) ちなみにソフトは英数・スクロール・点滅などなど思いつく限りぶち込んであるんで 350円+αの表示器としては、それなりに使えるかもw しかし、Trx4使った所で大した額でもないのに... なんであんなの作ったんだろ俺w
>>550 VOH(IOH = -20mA, VCC = 5V) Min 4.2V を目安にするくらいしかないのかもね
>>546-548 その秋月の4ケタの7セグLEDは、6pin×2列の足があるわけだが、
この2列の間に2313を置くと、2313ピンとLEDピンとの間は
2.54mmと2.54mm×2の隙間ができるので、対向する2313ピンと
LEDピンの間を1KΩのチップ抵抗でつなぐ、なんて感じの
手抜き配線をやったんだよ。出力PORTをHIGHにしてLEDに
流してハイインピーダンス設定にした入力PORTで受けてTrなしで光らしてる。
手抜き配線の代償として、7セグ+小数点の8本の出力PORT値を
設定するのに、Cコード8行必要なの。PORTアサインが配線都合でバラバラだから。
HEX表示の0〜Fの16通りのcase文毎に8行
こんな感じでも2Kもありゃ余裕で入るだろう、と、力の抜けた
コーディングしたら、2Kギリギリとなりました〜
printfは使ってないけど、10進に変換するところは、コードサイズ食ってる感じ
>>552 ちょっとヘンな記述になってしまってるので補足
7セグLEDのカソードコモン側はPORTに直結して、PORTレジスタを0にしたまま
DDRレジスタを操作して
(点灯)→OUTPUT LOW
(消灯)→INPUT ハイインピーダンス
をタイマ割込で1ケタづつ切りかえて、アノード側は、1KΩチップ抵抗通して
PORTにつないで、DDRレジスタを1にしたまま
PORTレジスタ操作して、OUTPUT LOW/HIGHを切りかえてる
>>552 Tr使わないなら、ダイナミック点灯した時の全体の明るさは変わらないんだから
抵抗は4本でいいんじゃね?w
まぁ桁単位なら、点灯する桁を減らせばその分明るくなるけど...意味ないし
>>554 そうなの?
7セグのうち「1」は2セグが点灯、「8」は7セグ全部点灯だからさ、
コモン側に抵抗いれたら、ピッカピカの「1」と、くら〜い「8」って感じで
数字によって明るさが変動するだろう、と思って、非コモン側に抵抗いれたんだけど。
avrのIOポートって、定電流的な特性あるのかい?
>>555 じゃなくて、セグメント単位でのダイナミック点灯だよ
だから割込32回で8LEDx4桁分の処理って事
つまり1個ずつのLEDをAVRの全力でピカっと光らせて行く訳だが...
明るく点灯(1seg)=点灯してる時間が短い(1/32)
暗く点灯(8seg)=点灯してる時間が長い(1/4)
と、結局はAVRのピン能力限界があるんで人間の目には同じ明るさに見える
説明下手ですまんが...
こんな感じで通じるだろうか?
>>552 ちょいとスレ違だが、7セグ処理なら
#define SEG_A _BV(PB0)
#define SEG_B _BV(PB1)
...
こんな感じでピンを定義して
~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F ),// 0
~( SEG_B|SEG_C ),// 1
.
.
~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 8
こんな感じのテーブルを作るのが定石かと...
まぁ人それぞれなんたが、if switchからステップアップの参考までに
>>556 納得!
AVRのピン数節約の観点しかなかったんで、8本の抵抗と4回の割込で光らしたんだけど
4×8=32回の割込でひからせれば、抵抗も4本節約できるって事ね。
いっそのこと、通電パルスを狭くして、抵抗0本という手もあるかも。
あぶねぇかなw?
>>557 SPI通信をUSI使うか完全ソフトにするか、流動的だったんで、
どのPORTのどのBITをどう使うか、というのを
・
#define PORT_DIGIT_0_ON (DDRD |= (1<<DDD0))
#define PORT_DIGIT_1_OFF (DDRD &= ~(1<<DDD1))
・
#define PORT_7SEG_B_ON (PORTD |= (1<<PORTD6))
#define PORT_7SEG_C_ON (PORTB |= (1<<PORTB3))
・
・
見たいな感じでマクロ定義して switch文で呼び出してるよ
配線長最短でピン割り付けしたから8セグが単一PORTに
収まってないんだ。まぁ、その複数のPORTの数だけ
テーブルつくれば良いわけだが、表示専用のサブCPUだから
そんなにコードサイズけちらんでも余裕ではいるだろ、と思ったら
2Kギリギリになってあぶねぇところだったw
559 :
774ワット発電中さん :2012/08/09(木) 20:34:49.29 ID:ODclT9f4
>>558 > いっそのこと、通電パルスを狭くして、抵抗0本という手もあるかも。
> あぶねぇかなw?
たとえ便所の床でも、地面に落として3秒以内なら拾って食っても大丈夫
みたいな理論ですね。わかります。
外付けTrをつけると、そのスイッチング特性によって、オン→オフになるのに、ベース蓄積電荷の影響で 数マイクロ秒、オン状態が続く。 デューティ比が0に近づくと思わぬ落とし穴があるから注意。
>>559 ネタにマジレスすると
熱湯風呂に落とされてもマッハの速度で飛びだせばヤケドはしねぇ的なw
>>556 それで、FETのHブリッジを駆動したときにハマったよ。
右側のFETをOFFしたあとで、ゲートの電荷が抜ける遅れ時間を
見こんでから左側のFETをONしないと、両サイドがONになって
電源がSHORTしちまったよ。大きな電流流せるFETほど遅れがでかいんだよな
>>561 もしかして556じゃなくて560への返信だったかな。
FETだとゲート容量が相当ありそうだから大変だろうな。
電源を+-にして、オンのとき+、オフの時-に振るとかでゲート電荷抜けないかな。
バイポーラの場合、スピードアップコンデンサというのをベース抵抗にパラに入れてやる。
適当な容量があるので、お城で波形を見ながらちょうどいいのを選んでやる。
dutyやAVRの回路的にも直結出来そうだが... 実際どうなんだろ? そういうのは精神的に宜しくないので試した事ないけどw あと1/32だと、それなりに割込周期を上げる必要があるからコードサイズより処理時間の方が重要かと まぁPWM含めなければ、内蔵8MHzでも余裕あるかもだけど 余談たが、自分ならポート跨がってたら16bit値でテーブル作ってhigh lowバイトをそれぞれのポートに割り当てるかな 条件ジャンプはそれしか方法が無いときしか使わないスタンスなもんでw
>>561 液体窒素に指を突っ込んでもマッハで引き抜けば凍傷にならない。
マメな。
マッハだと衝撃波が発生しで指が破壊されない? スタートストップの反動で関節も砕けそうだし
AVR用のUSB-UART変換用のFirmってCDC-232以外にある? あれ、素でWindows7 64bitに対応しないから他の無いかなと。
> デューティ比が0に近づくと思わぬ落とし穴 kwsk
そんなにびびらなくても、液体窒素を手ですくったって平気だ 手の表面のところで気化するので、直接は触れられない
出力インピーダンスが片側30Ω位だから、Vfが2Vで電源3.3Vなら抵抗無しでも動くんじゃない?
>>567 マイコンのIOポートのデューティ比と、スイッチングトランジスタのデューティ比が違う。
4桁合計32セグメントをCPUのI/Oでダイナミック点灯するってどうなんだろ? 誰か実際にやってみた?
>>571 だから
>>548 が、それやってみた、というレポだなんだろう。
抵抗かました状態でも室内なら、まぁOK、と。
>>572 ゴメンよ、見逃してた。
1KΩで1/32でも「室内ではOK」ならトライしてみようかな。
>>573 おいおいw
それじゃuAオーダーになってしまうぞ
575 :
774ワット発電中さん :2012/08/10(金) 13:02:34.79 ID:zJwdY9qG
ちなみに、AVRの出力に設定したピンって 例えばhigh lowにしたピン間を100Ωで繋いだりしても壊れない? 直ぐには壊れなくても、長期的にはNGかな... まぁ90円だし自分で試してみるべきかw
ATmega1284と1284Pの違いってなに?
100Ωどころか highのピンをGNDに直結したりしても壊れたことないよ 全ピンについて同時にそういうことやったらわからないけど
点灯時は流れる電流値の大きさをケアしないと、
と言うのはすぐ気付いたんだが、最初は、消灯時に
出力PORT(Lowレベル)→LEDアノード側 カソードコモン側→出力PORT(HIGHレベル)
という駆動してた。ちゃんと動いたんだが、
これは、LEDに対して逆電圧かけることになる事に気付いた。
秋月の4ケタ7セグLEDのデータシートでは、逆耐圧が5Vになってるんで、
マージン少ないな、まじぃかな?と、
出力PORT(Lowレベル)→LEDアノード側 カソードコモン側→入力PORT(HIGHインピーダンス)
という駆動方法に変更したよ。
>>558 みたいにマクロ定義変更して。
>>579 消灯時
high high あるいは low low
じゃダメなん?
>>578 短時間なら耐えてくれそうだけど...
例えばVf3.3V duty1/10(max10ms)で100mAなLEDに
電源5V時に18Ωの回路組んでAVRのシンクあるいはソース限界で頑張ってもらう...
ってのは、ちょっと精神衛生上よろしくないのでw
いくつか試してもまったく壊れない頑丈さなら...
って、やはり趣味だとしてもリスキーな回路はイヤかも
小心者なんでw
charlieplexing とかを使えば、 ドット無し7segLEDをI/O8本で7桁表示、 ドット有り7segLEDをI/O9本で8桁表示できるよ。 とはいえ、7segじゃなくて、普通のLEDを7x8並べたのをPICで試した事しか無いが。 逆電圧については charlieplexing で最大限にLEDを並べた場合、各LEDが --+-AK-+---- | | +-KA-+ みたいな配線状態になるので順電圧までしかかからないと思われ。 また、未接続LEDがある場合は回り回路で複数のLED分の順電圧がかかると思われるので、 白・青LEDはきつそう。
>>581 ダイナミック点灯の結線の仕方だと、
low-high
になってしまうところがでてくるだろ?
例えば、4ケタを”1111”と表示するなら、
非コモン側のLEDアノードにつながる、8PORTは、
2つPORTがhighで6つのPORTがlowになるわな。
カソードコモン側につながる4つのPORTを、
注目中の桁をlowにして非注目中の桁をhighにするなら、
1)注目している桁の点灯しているセグメント→high-lowで点灯
2)注目している桁の点灯していないセグメント→low-lowで非点灯
3)注目していない桁の点灯しているセグメント→high-highで非点灯
4)注目していない桁の点灯していないセグメント→low-highで非点灯だけど逆電圧
の4パターンがでてくるわけで、4)が気になった。駆動トランジスタをケチッた故の話ね。
だから、コモン側の4PORTに関しては
output high/lowで切り替えるんじゃなくて
output low/input ハイインピーダンスで切り替えるように変えた。
>>582 秋月4桁7セグ、10msパルスで100mAが絶対定格だね
Rも完全にはしょれたら製作が、さらに簡単になってウマ〜なんだがw
○○○○○○←4ケタ7セグLEDの足
●●●●●●●●●●←avrの足
●●●●●●●●●●
○○○○○○
みたいに、隣の●と○をハンダ付けするだけ。数分で出来上がり〜
1セット目は●と○の間にムリして普通の1/6w抵抗を押しこんだ
2セット目は●と○の間にchip抵抗置いてハンダづけしてみた。普通の抵抗よりは楽な感じだけどかなり気を使う
>>583 その「ピン数が超節約できるやり方」ってやつ、おっ〜!と意気込んで
調べたら、秋月4ケタ7セグみたいな、普通のダイナミック結線用の奴ではダメで、
1ケタ7セグをバラ買いして桁間の結線を自分でやらないとダメと知って、
その時点で、1CPUで組むのを諦めて、
センサー測定用861A+ 2×(4ケタ7セグLED駆動用2313)の
3chip構成で腹くくったw
結線済のLEDモジュールがあるといいのにな。
>>584 いや そう意気込んで書いてもらわなくても逆電圧は理解してるつもりだけど...
点灯してるLEDの消費分だけ電源電圧より下がるから問題ないかなと
まぁ「それで絶対寿命に影響しないだろうな」と言われてもyesと言える程の自信はないがw
自分的には、それより処理速度上げる方を取るかな
PWMで明るさ変えるのに周波数上げられるからさ
>>585 完成品だと高いしw
まぁ数いるなら手前で基板作ればいいんたけど
それ程必要ないしなぁ
悩ましい所だw
ちなみにホビー用CNC持ってたりするが、精度的にあまり細かいパターン引けないんだこれが
ピン間無理なんでジャンパーだらけになってしまうというw
おっとスレ違だ
>>588 定義名だけ変更しても...
その定義を利用してる箇所がそのままじゃ意味ないかと
チラッと見ただけなんでハッキリと言えないが
1チップでも処理速度&メモリ的にokならソースいじっていけそうだが
どうだろ?
ふむ
PS3コンは我が家に6個転がってるんでwちょっと興味がわいた!
今度作ってみる
サンクス
晩酌後だが、ちょっとコードを眺めてみた んで見た感じピン数多いAVRに変更すれば4つ同時充電とかも出来そうだけど... さすがに定義変更程度では無理っす いい加減な事言うのもなんなので まずは試してみるよ パーツ箱に12MHzあったかな...
>>590 >>591 パーツ揃える前に可能かどうか知りたくて、質問してみました。
ありがとうございます。
サイト本文に
「The MCU should be able to handle charging up to 4 controllers at once using the other free pins, but the code needs a bit of love before that will work. 」
とあるので、このマイコンのちょっとのソース変更で
4コントローラ充電可能の様ですが、「ちょっとの変更」とは
何を指してるのかわからない状況です。
>>591 tiny24Aの物理ピン数の制限で4つと書いてるだけで
861Aや2313なら8本繋がるという事だよ
コード量が接続本数で倍増していくから2313だとフラッシュが足りないかも
>>592 ホントだ
回路図とコードしか見てなかったw
PS3コンというかUSBのプロトコル自体詳しくないけど
最後の(多分充電状態を維持するためだろう)ループに1msの待ちが入ってるから
複数処理する余裕あるかなっと思ったりしたんだが
「ちょっと」と言っても、それは人それぞれだからなぁ
すまんが文章で簡単に説明できる自信はないんだ
>>593 ん? アンカーミス?
...と思ったら「以上」が抜けてたw
自宅にPS3コンx6あるから、どうせ作るなら全部まとめて出来る奴にしようと考えてたんだ
596 :
774ワット発電中さん :2012/08/11(土) 12:38:22.52 ID:Cxqv+k4S
AVRマイコンでwebサーバーに仕立てた人います? (Arduino化ではなくてです。)
597 :
774ワット発電中さん :2012/08/11(土) 13:42:47.34 ID:wyDIs6sS
か抜き田舎っぺ
現行スレすら調べないんだな...
ゆとりゆとり馬鹿にしてるやつもある意味ゆとりだな
∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ こいつ最高にゆとり 彡、 |∪| / / __ ヽノ / (___) /
(´・ω・`)
ゆとりゆとり馬鹿にしてるやつをゆとりというやつを最高にゆとりというやつもゆとり
605 :
774ワット発電中さん :2012/08/11(土) 18:24:55.44 ID:Cxqv+k4S
ATmega644PでLEDを点灯させてるのですが、 PB0〜7、PD0〜7、PC0〜1、PD6〜7は点灯するのに PC2〜PC5はなぜ点灯しないのですか? プログラムはこれですが、 DDRB = 0b11111111; DDRC = 0b11111111; DDRD = 0b11111111; while(1) { PORTB = 0b11111111; PORTC = 0b11111111; PORTD = 0b11111111; _delay_ms(200); PORTB = 0b00000000; PORTC = 0b00000000; PORTD = 0b00000000; _delay_ms(200); }
>>605 ヒューズ設定か何かでJTAG-IFが有効になってるからじゃないのか?
607 :
774ワット発電中さん :2012/08/11(土) 19:48:39.98 ID:Cxqv+k4S
>>606 おぉ、そのとおりでした。
ヒューズ上位バイトのJTAGENを変えたら、点滅し始めました。
EEPROMを読み書きしている最中に割り込みが発生したらどうなる?
>>608 「してる」のは独立して動くハードであって、ユーザー側は指示を出して終わるのを待つ...だよ?
つまり待ってる間は邪魔さえしなければ他は何しようが問題ないかと
ちなみに書き込みには数msかかる訳だが、もしその期間割込禁止にしなきゃならん...なんて設計だったら
欠陥品じゃね?w
念のために書いておくと、書き込み中はokでも書き込み指示中はngだから
SPMを発行したら4クロック以内割込みダメ!絶対!
あーAtmega1284P秋月でずっと売り切れだ…。いつになったら手に入るのだろう・・・
すいません、質問です。 ATtiny10 ってROM, RAMが小さいですけど、C言語で開発できますか? それともアセンブラが必要でしょうか? やりたいことは、電源投入後に3秒間WAITして、GPIOを出力にしてHレベルを出力するだけです。
C言語での開発は出来るよ ATtiny10 C言語でggr それくらいの処理なら困難もなく実装も可能だと思うよ
遅延機能付リセットic使えよ
>>615 電源投入直後はHi-Zで3秒後にHレベルが必要なんじゃないか?
リセットICでこのタイプの出力持ってるのって見たことないから
自作するんだと解釈したけど
>>617 どういう意味で?
リセットICってCPUを扱う人なら知識は普通にある。(と思う)
なおオープンドレイン出力は普通にある。
>>615 >遅延機能付リセットic
秋月だとtiny10より単価5円高いが、もっと安いの小売りしてるトコある?
別にマイコン使わなくっても適当に回路組めばいいんじゃね? もっとも、時間が大雑把でいいなら、だけど
遅延機能の無いリセットICなど無いという意味では
>>621 電圧検出だけの遅延機能なしのリセットICもあるからな。
本当に電源投入後の3秒、というのが必要で、わざわざ組むのであれば、
電源投入の検知をAVRだけに頼るのは危険。
そうでなくていいかげんでいいなら、CRかなにかで問題ないし、AVRより
マシかもしれない。世の中にはゆっくりとすごい波形で立ち上がってくる
電源とかたくさんある。
ここはひとつ、 電子工作をやる誰もが一度はお世話になる定番タイマーICの 555の出番では? しばらく前にトラ技で555の特集やったけど、 これ設計した人はICの何層かの版下を 自分でフィルムに手貼りしたんだってさ。
そういえば学校に、マスク作る用のパターン切るカッター台があったな 全手動だけど
AVRスレなのに、AVR使わない方向へ持っていったりとか (これはまぁその方がいい時もあるしネタとして有りだと思うが) そっちの方が活性化するってどうよ?w
それだけネタに渇望してんだろうよw たとえばここにATtiny2313が1レール(18個)あったとしてこれを有効に使う アプリを考えてくれといってAVRだけを使うネタが18個もあるかというと なかなかでないんじゃまいか だが秋月では簡単に1レール入手できるわけでレール単位で買ってる奴も 割といると思うんだ...結果ネタ切れも必然だしな ちなみに↑はオレのことなんだが お盆休みの時間を使って何かしようにもネタがない何かこんなモノ作ったら 的なネタというかアイデアはないものだろうか(MCUはtiny2313で) ダブらないように今までに作ったものをあげとくと 周波数カウンター GPS時計 TCXORTCで精密時計 時計表示用のセグLED表示器 PS/2キーボードアダプタ 汎用キャラクタLCD用I2Cアダプタ 温度湿度ロガー LCRメーター
同時に18個使うネタを考えれば1アプリで・・・
俺も似たようなものだが他には 2313使用のI2C-232C変換アダプタとか役に立ってるな マスター側はソフトウェア方式のI2Cで任意の端子を選べるようにしてさ atmega328pで内部発振不使用で8bit連続のポートが欲しい場合 232C用の端子が使えなくなってデバッグに困るから作った
ネタは突然降ってきたりする そんな時に慌ててパーツ集めに併走して気力を消費するより いつか使う時の為とストックしておくのも有りかと そんなパーツが溜まりまくってるんだがw その、降ってきたネタの一例を晒すと... 職場の先輩が買った車にキーが無くてもドアノブをガチャガチャしてパス入力するとアンロックされるという機能が備わっていて 「コレいいだろ?便利だろ?」と見せ付けられたらのだが... その晩サクッと同じ機能をマイカーに実装したw まぁこれはAVRが世に出る前の話だし、2313まで必要ないけどね (ふと思い出したもんで) でも、2313安いし、大きさ的に困らなければガンガン使えるw
しかし、車を例にとっても今時のは最初から機能満載でイジりにくいからなぁ それでもマイカーには無いがAVRで簡単に真似できるってのは多少は残ってたりするが...
>>630 よし、思いついたわ。
>>626 用のネタが。
車についてるCANのパケット解析して速度etcを秋月にある音声合成ICに読ませる。
夢はK.I.T.T.だ!
>>626 妄想してみた。分野の偏りは容赦で。
・大気圧ロガーと、気圧変化による天気予測。
急激な変化の場合は警報も。
・AC電源の波形欠落のログ取りと警報表示
トランスでAC電源の電圧を降圧して、その値を読み込んでロギングと、異常時には警報を出す
可能なら、平均電圧の変化を一週間とか長期監視できればなお良い
・デスクトップ型PCのアフターアイドル制御システム
通常運用で使うFANをアフターアイドルで回すもの。
5VSB電源を使って、気温とCPU(またはGPUなど任意の温度)に応じた、換気FANの稼働時間延長回路。
サーミスタによる温度測定と、標準仕様のDC12Vファンを回す電源の確保をどうするか。
低消費電力のファン1つならチャージポンプによる昇圧で回せるので問題ないはず。
PC筐体外の気温が得られれば(吸気温度で代用)、夏季のアフターアイドル時間も延長で。
複数ファンを回したいとか、5VSBを弄りたくないという場合にも備えて、外部電源仕様も。
・ATX電源の状態判定ツール
出力電圧をモニタし、設定(上限や下限など)を外れた場合に警告する(LEDを点灯やBeep音)。
ロガー機能で長時間のロギングができればなお良い。記録時刻は別途RTC(バッテリバックアップ付き)で
用意した日時情報を使用し、(よくある相対時刻ではない)ログが取れるように配慮。
監視対象は、3.3V、5V、12V1、12V2、5VSBなど。
・PCのCPU冷却PWMファンのPWM率(?)を表示させるアダプタ
PWM制御の状態を表示させる。クリップや底上げモードなどで、ファンの駆動条件を任意に制御させるとか。
・ダミーのキーボードやマウス
一部の機器ではPS/2接続のキーボードやマウスを未接続の場合、POST時にエラーを出したりするので
電源供給されて以降のデバイス認識プロセスで、あたかもキーボードやマウスが
接続されているように振る舞うもの。ダミーキーボードとダミーマウスの2種類を別々に。
自動認識で対応でもいいけど。
>>633 電子工作の凄さじゃなく別の凄さだけどw
うむ まあ、何事もとことんやると凄みが出る
>>631 手持ちのロジアナに確かあったが...
マイカーは10年選手だからそんなもの無いんだよなw
まぁ逆に新しい知識も必要なく好き放題出来るんだが...
>>631 ごく最近ニコ動画でそのネタ見たなぁ、PICだったようだが
639 :
774ワット発電中さん :2012/08/13(月) 07:23:13.02 ID:xjUulSk0
ニコ厨・・・
PCM再生ぐらい自力で... っても過去からの積み重ねがない状態でのゼロスタートだと まぁそれなりな勉強が必要だけど しかし今はググれば何でも出てくる時代だから楽だよなぁ と呟いてみたりw
定期的にマウスを少し動かすことで、スクリーンセーバーが起動するのを防ぐデバイス
スクリーンセーバーを切れよ
644 :
626 :2012/08/13(月) 11:40:39.06 ID:XwDV9J5k
うわぁ...想像以上に伸びてますねぇ...たまげたなぁw
>>628 >I2C-232C変換アダプタ
あーこれもありそうでない変換機能だな
汎用キャラクタLCD用I2Cアダプタを改造して作ってみる候補に入れさせていただこうw
>>631 >秋月にある音声合成IC
tiny2313制御でmega328をこき使うというのはいかがなものかw
それよりも問題なのはオレクルマ持ってないからw
>>632 >・AC電源の波形欠落のログ取りと警報表示
MCUはAVRじゃなくてARMだけど多機能電力計を作ってるんで
その異常波形検知の警告とログは機能的に取入れさせていただこうかな
>・ダミーのキーボードやマウス
これもイイ!と思ったけど
実は壊れたキーボードの中身で既に作っていたりするんだw
>>641 ARMのUSB機能を試したときにHIDデバイスで作ったのがそれだわw
まぁ単にマウスでランダムウォークさせて生成乱数の質を見るのに作ったんだけど
いろいろアイデアがあってこれをネタ元にしてオレも何か考えてみる
でも皆考えることは似てるんだなと思ったw
そろそろwにも飽きてきました。 微wとか苦wとか嘲wとか付けていただけると なお一層楽しく読めて、細かなニュアンスも分かり助かります。
PICのwレジスタは使いづらいから、R0-15の汎用レジスタにしてくれと翻訳した。
すげー翻訳だ(笑)
AVRならR0-31まで使えるだろ。
651 :
774ワット発電中さん :2012/08/14(火) 18:41:41.18 ID:ioiNFUhV
>648 PIC24/dsPICならW0〜W15が汎用に使える。 PIC16F程度しか知らないのに、さも全てのPICを知っているような言動は恥ずかしくないのか?
わざわざageて何がしたいんだよ? 見てるこっちの方が恥ずかしいよw
age sageにケチ付ける人何年ぶりかで見たw
654 :
774ワット発電中さん :2012/08/14(火) 20:06:37.32 ID:3oRvOjAN
ですよねぇw sage推奨だった過去の理由も知らずにねぇーw
こういうのがいるからsage推奨なんだけどな
>>650 AVRのR0〜R15の使い道を知りたい。
AVRって実質R16〜しか使い物にならないでしょ?
即値命令が使えないだけなんだけどねえ gccだとr1がゼロレジスタになったり、 破壊レジスタが決まってるから あらかじめレジスタに割り当てといて 余計な退避命令の生成を避けるとか SRAMの代わりになる事が多い 割り込みハンドラの実装でよくお世話になるよ SRAMが少ない品種だと特に
>>656 メモリとの直接操作はR16以降だけど、R15までは所謂レジスタ変数として使える。
他のレジスタとの演算などふつうにできるし、ただ、メモリとのやりとりにR16以降の
レジスタに転送してやる必要はある。
制限が多そうに見えるけど、実際に使ってみると結構便利だよ。
即値操作と内蔵SRAMアクセスはR16〜である必要があって それ以外の操作に関してはR0〜R15もR16〜も変わらなかったのか。 ちょっと設計見直してくる
>>658-659 lds sts st ldはr0-r15でも使えるけど?
SRAMアクセスって何を意味してるの?
>>629 > 職場の先輩が買った車にキーが無くてもドアノブをガチャガチャしてパス入力するとアンロックされるという機能が備わっていて
もしかしてスバルか? うちの18年落ちレガシィにもついておるぞ。(w
>>660 R0-15は即値のロードや演算などが行えないので面倒。
SRAMとはやりとりできるみたいだけど、レジスタ変数として使った方が便利だし高速なので、あまり意味がないと思う。
自分もR0〜R15はどうしても使用優先順位が低くなる。 R0〜R15の使い方には少し考える。
演算ができないってどういうことよ? R0 ← R0 + R1 みたいな使い方は出来ないってこと?
× 即値のロード+演算 ○ 即値の(ロード+演算) 日本語ってムズカシイネ
666
具体的に言うと SUBI Rd,K8 SBCI Rd,K8 ANDI Rd,K8 (CBR Rd,K8) ORI Rd,K8 (SBR Rd,K8) CPI Rd,K8 LDI Rd,K8 上記の命令でRdにR0-R15は指定不可(Rd指定用のビットは4bitしか無い)
1個しか使えないならともかく16個あれば別に困ることも無いし R0-R15に即値が必要になったところで1サイクル増えるだけだし
そういやPICって汎用レジスタもっと少ないんだよね。 32個どころか16個もないんじゃなかったっけ?
RAMとレジスタとどっちを取るか、みたいな設計の差
32bitPIC (PIC32) 32bit幅レジスタ32本(zeroレジスタ含む)、汎用として使える 16bitPIC (PIC24,dsPIC) 16bit幅レジスタ16本(SP含む)、汎用として使える こんな命令も1命令で可能 例 ADD W2, [W3++] , [W4++] ; W2の値を、W3が指すメモリ内容と足して、W4が指すメモリへ & W3,W4はそれぞれ+2 またW0(=WREG)のみ13bitでアドレス指定(0x0000-0x1FFF)したメモリと直に演算でき 結果を演算結果をメモリに戻すことも可(W0に戻すのと選択) 例 ADD 0x1000 ; 0x1000のメモリ内容とW0を足して結果を0x1000のメモリに入れる 8bitPIC (BaseLine,Midrange,Enhanced Mid-Range,PIC18) 8bit幅レジスタ 1本 、ただしメモリとWとの演算結果をメモリに戻すことも可(Wに戻すのと選択) Wレジスタとメモリが直に演算でき、結果をメモリ戻せるのは使いこなせれば便利。 メモリ全体がAVRで言うR0-R15のように使えるとも言える。
>>671 >メモリ全体がAVRで言うR0-R15のように使えるとも言える。
のように使えるなら、なんで8bitのPICにはgccがないんだろうね
AVRはtiny10のゴミみたいなチップでもgcc使えるよね
gccじゃないけど、PICもXC8コンパイラがでたよね ってそういう話じゃない?w
>>661 マネモノ作ったのが、確か自分がPICを触り始めた頃だったから
先輩レガシィもそれに近いぐらい前かな
キャンプ行った時とかキー持ってないけど中の荷物取りたいって時は多々あるんで、なにげに重宝したなぁw
>>673 XC8って昔の制限付き糞コンパイラのリネームだよねw
ここにPIC宣伝しにくる人って普段何使ってるの?
AVRはgcc一本で非常に楽だよ
PIC16F886 PIC16F887 + hitech c pro lite attiny2313 atmega328p atmega644p atmega1284p + winavr 両方楽しんでます
AVRは品種が不自由だから使い分けるしかない しかし多すぎないか
AVR32が秋月で500〜1000円で手に入るようになれば完璧
率直にいってatmega644p atmega1284pはなかなか使い道がない 買いすぎて失敗した
>675 宣伝じゃなく、”間違った知識を吹聴”するのを防止。 「PICが・・・」と言いながら、一部のPICの欠点を全てのPICに当てはまるように吹聴する奴が多すぎる。 90S1200にRAMが無いからって、「AVRにはRAMが無い」と言うのはおかしいだろ。
682 :
774ワット発電中さん :2012/08/16(木) 08:46:59.87 ID:/ONm4LEz
>>680 Arduinoだと実行ファイルが膨らんで、すぐに328Pのメモリ上限にぶつかるので、644Pや1284Pに差し替えないと使えない。
>>681 あのさあ、一部のPICガーとか書いてるのお前だけだよw
普通にPICと言えば8bitのアレのことだし
文脈でもどれのことかぐらい判断できるだろ
もっとPICを使ってる自分に対して自信持てよ
もてないからわざわざこんなとこまで来て愚痴るんだよ?
自分を客観視できる?
防止。じゃねーよ笑わせんなwwww
PICのアドレッシングを自慢しているけど、 Wレジスタ方式のCPUでアドレッシングが貧弱だったら 「使えないCPU」になってしまう。
>>684 なるほどw
大昔の(8080,Z80)vs(6800,6502)の議論を思い出すな
懐かしやww
PIC自体のインストラクションを、マイクロコードだと思えばあまり気にならない気がするんだけどね。 まぁそんなのアセンブラも最近使わなくなってるから、意味不明だけど。 よくも悪くもPICは8bit(アーキテクチャの意味で)ってことでしょう。
以前、PICとAVRの両方のプログラムをアセンブラで書いた事があるけど、 私にとってPICの致命的な欠陥は、 「PICのプログラムを書いているとイライラしてくる」 だった。 PICは人間修養には向いているかもしれないな。
どうせメモリ演算が使えるなら、もう一歩踏み込んでレジスタウィンドウっぽく使えると最強になると思うんだよね。 6502のZeroAddressingは当時すごい発明だと思った。
ゼロでないなら次の命令を実行しない みたいな二重否定が至るところに
>>687 >PICは人間修養には向いているかもしれないな。
いや、ここまでのレスを読んで思ったことだが、決してそうは思えない。
わざわざ関係ないスレにまで来て、何を言ってるんだといった按配で、
お隣の国のメンタリティを髣髴せざるを得ない。
>>687 ソフト屋だとそう思うかもな。
PICを設計した奴ってきっとこんな風に考えたんだろうなと思って
眺めると、だいたいそういう風に出来ているから、あまり腹もたたなかった
>>625 修正というか追加!
アセンブラの話が出てくると
AVR vs PICみたいな流れになって活性化するw
色のついたレジスタの80系
汎用レジスタをメモリ上のPageに追いだした68系
のどっちがいいみたいな話をアーケードゲームソフト開発のバイト仲間と、エンエンとやってたな〜(遠い目w)
Apple謹製の1号機がつかってる6502は6800の血筋を引きつつpageを0に固定して
簡略した代わりにパイプライン処理を取り入れて高速化したCPUらしい、
なぞとワァワァ、MPUオタク会話ww
>>689 秋月のPIC搭載のデータロガーのソフト改造したことあるけどアレは確かに気持ち悪いw
ひょとして、あれは、フェッチしてパイプラインの中にはいった命令が
分岐で無駄にするのがもったいない、なんて考えがあるのかな・・・
avrはRISC系統だからパイプラインを大前提に、ハーバードアーキテクチャなんだよな?
WSで使ってたMIPSチップは、パイプラインがブレークしないように、コンパイラが
NOP挿入してコードサイズを犠牲にしてでも高速化、なんてことやってた記憶があるんだけど、
PICとかAVRとかでは、パイプラインがらみで、どんな工夫がなされてるんだろう・・・
PICは分岐でも計算でも大抵2個の命令をペアにして使うことになるんだよな マクロじゃ制限あるからアセンブラレベルで2ワード命令組み込んどけと 最初に使ったParallax PIC16CXX-PGMがそうなってたから後でナマ命令に書き直したらワケワカラン状態になった やっぱりAVRだ
695 :
774ワット発電中さん :2012/08/16(木) 18:15:33.27 ID:vXQ8DnlZ
出たww いまどき謹製人ww しかも爺ちゃんw
>683 >普通にPICと言えば8bitのアレのことだし なぜそうなるのか、教えて欲しい。 君が8bitPICしか知らないから、それが全部ってこと? 足りない知識で嘘を吹聴することは間違った行いだとは思わないのか? 蔑みたいのなら、PICじゃなくて8bitPICや、PIC16と書きなよ
>672 1行前くらい読んでくれ >Wレジスタとメモリが直に演算でき、結果をメモリ戻せるのは使いこなせれば便利。 「使いこなせれば」と書いてあるだろ。
>>695 無駄な改行いれおってw
この、こわっぱめがww
秋月と名を改める前の、通信販売をやっていなかった信越店頭にて、
AMDの8080セカンドソースのMPU+1KBITSRAM×8
のCHIP9個セットを1万8000円也で購入するためだけに、
新幹線で上京した、厨二小僧だったジジィをなめんなよwww
なんかスゴイことになってるな。 しばらく関係ないフリしよ。
お盆だし。オリンピック終わったし。 ありゃっ。規制中だった。暑さのせいかな?
高校野球も見てやれよ
なんだか偉く伸びたな。 おれは自作時計にAT90S4414を使って、10数年後の今でも動いている。 分け合ってプログラムを弄る必要が出て、STK500を買った。 ATmega8515とか言うのが一個付いていたな。
何ですぐPIC vs AVRになって熱くなるんだろうねぇ┐('〜`;)┌
H8「」
avrアセンブラが余りにも簡単で数日でつかえたので、7セグ表示速度回転距離燃費計作ってみた。
>>703 AVR使いは(特に面倒臭がりな)元PIC使いが多いんだってさ
PICを見るたびに昔の自分を思いだして自己嫌悪に陥るからといわれている
AVR使ってSD映像(640x480@60p)のフレームシンクロナイザーっぽいことをさせようと思ってるんだけど 内蔵メモリの容量じゃSD映像の1フレーム分すら保存できないだろうから外部にメモリを増設しようと思ってる。 どんなメモリを使うのがAVRともっとも親和性が高いと思う?
>>707 4bit/wordのDRAMを使ってサウンドエフェクト用のバッファにしてた例があるが...
一定以上の万遍ないアクセス頻度と使用ピン数減らすとかならDRAMというのもありか。
709 :
708 :2012/08/16(木) 22:52:28.14 ID:gOOa0rvL
送信してもうた... つうかAVRじゃなきゃいかんの? ARMの大容量SRAM内蔵のものとか
>>709 > つうかAVRじゃなきゃいかんの?
2313を18個かっちゃったん゛たろ、きっと
_秒未満が制御対象ならPLDが適任そうね
おっと、『宇宙刑事ギャバン THE MOVIE』のステマはそこまでだ。
アキュムレータと汎用レジスタアーキテクチャの違いも分からんのか…
>>707 640x480@60p というとピクセルクロックは25MHz程度
AVRマイコンが扱えるデータレート????
ぢゃないな、確実にw 60iでも無理ぽ。 ピクセルクロックからアドレス生成するカウンタと、フレームバッファを読み書きするメモリコントローラを FPGAで作って、AVRはライン数をカウントしてメモリコントローラに渡すだけ、という設計じゃね?たぶん。
716 :
707 :2012/08/17(金) 22:56:46.53 ID:4LNrXkDO
>>709 たぶんもっとも大容量の内蔵SRAMを持ってるAVRでもSD画像1フレームも保存できないと思う。
>>714 クロックは20MHzを予定。
20MHzならギリギリAVRでも対応可能かなという感じ。
ただ20MHzというのあくまでもAVRを動かすクロックのことで20MHzでサンプリングして
なおかつメモリ読み書き処理となると厳しそうな予感。
メモリの読み書きはシーケンシャルリード・ライトができるメモリを外部に用意する必要があるかな?
> FPGA
FPGA使うならAVRなんて使わず最初からFPGAを使った方がよさそうねw
ちょっと数えてみたけど、DRAM繋いで全力でバースト転送しても 20MHzだと2MB/秒程度 吐き出す方もあるし簡単なフィルタを掛けるとして1/4の256KB/秒 ぐらいを維持できればいいとこじゃないの 全然間に合わないと思った
>>なおかつメモリ読み書き処理となると厳しそうな予感。 いやいやw 8bit/ピクセルでも1フレームで300KBは越えるから外部メモリ必須なのはいいが 60fpsで18MB/s,フレームメモリ使ってもAVRではほぼ無理だな >>FPGA使うならAVRなんて使わず最初からFPGAを使った方がよさそうねw だな というか映像処理用にフレームメモリまで込みこみのシンクロナイザ ずばりそのものがありそうな気がするが... シーラストかその辺あたりで探してみたらどうだ?
AVRはちょっとしたことヤルには便利なんだよな。
FPGA+verilogを趣味レベルでさわってみたけど、 条件分岐的な処理が激しく苦手って感じ コンカレントな高速な処理はとてつもなく得意って感じ 複数の入力ピンにはいってくるパルス幅を100MHzクロックで 独立して正確にカウントするのは何の苦もなくできるけど、 カウントした複数の値をこねくり回して、A、B,Cの動作を選択するなんて言う フローチャート的処理がつらい感じ 苦手部分はFPGA上のMPUのIPコアでやらせるのが定石みたいだけど敷居が高かった FPGAでないとつらい事を趣味レベルでやるときには、AVRみたいなone chipマイコンも 併用すると楽だと思う。FPGAだけではなくて。
TTLよりも安い値段なのにまぁまぁの仕事ができる。 AVRはそういうCPUです。 過大な期待をしてはいけません。
>条件分岐的な処理が激しく苦手って感じ それは>720の能力の問題だな。
Verilogでステートマシンは余裕だけど、趣味でやるならSFLを推してみる。
Atmel studioがマルチプラットフォーム化してくれたらいいのになぁ。。
だが328単体で喋るぞw 海外フォーラム見てると328クラスでシンセ作ったりテレビゲーム作ったり... そりゃまぁ数千円だしたらラズベリーパイみたいなもんが買える時代だけどさ 数百円のAVRでも「ちょっと」を超えて頑張れるのは確かかと
海外の人間は頑張れるけど、日本のユーザは全然頑張れないと、こういうことだな。
日本人より海外のユーザの方が圧倒的に数が多いのになにいってんだか。
728 :
707 :2012/08/18(土) 18:52:11.24 ID:15/XnDRy
>>717 やりたいことはフレームシンクロナイザーっぽいことだからフィルタ処理みたいな高度な処理はやらない予定なんだけどね。
ただAVRじゃ厳しいことには変わりないか(´・ω・`)
フレーム同期のPLL外付けして、AVRを何十個かパラにして・・・ S&Hも外付けか・・・
昔売ってたビデオ向けのFIFOとか使えるなら随分楽にはなると思うけど…今更だよな…
731 :
707 :2012/08/18(土) 20:30:31.32 ID:15/XnDRy
FIFOは良かったよね ああいうお手軽メモリが時代と共に無くなったのは残念の極みとしか言いようがない
>>731 HM530281やHM63021なら
若松とか千石でまだ売ってた筈。
VTRのトリックプレイとか3次元Y/C分離に使われてたからね。
専用ICはDRAMオンダイでワンチップになったし
汎用はSDRAM系で済む時代だからね。
まず、フルアセンブラからだな
ここではアセンブラは禁止です。 小さくて早いアセンブラよりも、 Cのほうが大きくて遅くても楽だから良い、 演算ルーチンを自作するなんてありえない、という世界ですので。
おまえごときに禁止される謂われは無い
じゃあ私が禁止します
まあ、計算部分を書きたくはないな 小さい割り算プログラムを作るよりは、 割り算を使わないアルゴリズムを考えた方がいい
Cは時々おバカなところがあるから必要な時は使え くだらんルール作るな
アセンブラだけに、低レベルな話だこと
めちゃくちゃ初歩的な質問をさせていただきたいのですが、 ご存知かと思いますが、GDLと言うavrのプログラミング用のソフトを使ってプログラミングを行おうとしています。 そこで本題なのですが、マイコンに書き込みをする時のポート設定の仕方が分かりません。 二足歩行超入門と言う書籍を参考に初めてロボット製作をしているのですが、今までは別のソフトを使っていたので、本当に行き詰まってしまいました。 どなたか、ご教授願います。 本当に初心者で申し訳ないです。 ちなみに、windows 7です。
>>727 要するに、日本人にはそれだけの能力ある奴がいないってことね?
>>734 禁止の割にてんぷれにアセンブラ関連があるのはなんで?
質問です。 TG12864Eというグラフィック液晶に文字とかを表示させたいのですが、どうもうまくいきません ピンの並びが同じSG12864Eという液晶のサンプルプログラムを見ながら AVRにプログラムしてみたのですがバックライトだけが光ってる状態です どなたかこの手のLCDに詳しい方がいましたらアドバイスをください
>>740 GDLなんて初めて聞いたんですけど…統合開発環境なんだよね?
チップメーカーのATMELが出してる統合開発環境で「AVR Studio」ってのが有る。
つうか、質問の内容から察するに君の場合…
ttp://akizukidenshi.com/catalog/g/gK-04590/ コレ買って、Arduinoスレに行くのが良いのかもしれない。
まあ、しかし…Arduinoって良くバカにされるよね。私も自分では絶対に使わない。
なので、私の場合…というか、多分大半のAVRユーザーのパターンを書いとく。
まずAVR Studio Ver.4を入れる。(Ver5からはVisualStudio統合型で使い辛い上に、古いチップに未対応で使えない)
ttp://www.mikrocontroller.net/articles/AVR-Studio (AvrStudio4Setup.exe AVR Studio 4.19 (build 730) (124 MB, updated 2011/09/11) MD5:609209DB9A1C6191945421299101DC15)
するとCコンパイラ(GCC)とアセンブラ、それにヘッダやライブラリとか、
必要な物が一発で全部入る。でも統合開発環境は使わない人が多いと思われ。
書き込みは何パターンか有って…(私は不具合アレコレで結局ほとんど持ってる)
「ライター(書き込み機の事ね)にATMEL純正のAVRISPmkII、ソフトはStk500.exe(AVR Studioに入ってる)」
「ライターはUSBaspでライターソフトはavrsp、又はavrdude」
ttp://www.aitendo.com/product/3174 「書き込み機にFT245RかFT232Rの乗ったUSBシリアル変換ボード、ライターソフトはavrdude」
ttp://suz-avr.sblo.jp/article/30760403.html 「ライターとソフトがセットで\2,400の共立ライタ」(最新チップへの対応が遅いのが難点)
ttp://eleshop.jp/shop/g/gB9M411/ チナミに、Auduinoの開発環境をインストールすると中にavrdudeの独自改造版が入ってて、
コレだとUSBaspやFT232R等、多種のライターと、新し目のAVRの書き込みに対応してる。
本家のavrdudeはライターかチップが対応してなくて設定ファイル探し回らないとダメな事が多い。
>>744 そのサンプルプログラムを参考にしてプログラムしたり
それをそのままコピペもしましたがうまくいきませんでした
違うところがあるとすれば1MHzで動かしているというところです
_delay_us(6)などが使えないので_delay_ms(1)と書き換えて試しました
ネット上でもいろいろ調べたのですが有力な情報がなく何かヒントでも貰えればと質問しました
もう少し自力で頑張ってみますありがとうございました
グラフィックLCDは自分も最近はじめて使ったけど、初期化手順なんかは キャラクタLCDよりむしろ簡単だよ。ウェイトも適当だったけど動いた。 ちょっとつまづいたのは、CS1/CS2のコントロールあたり。 どちらかをHにしないとデータを送っても反映されない。 あと、VOの接続は合ってるかどうか。キャラクタLCDと違って ここにかけるのは負電圧で、そのためにLCDの18番ピンを利用する。
>>745 Atmel Studioも慣れると使いやすいよ。オートフィルがあるから楽。
起動もデバッグも遅いけど。
>>745 丁寧な説明ありがとうございます。
avrの純正ライターは持っているのですが、これをつかってATmega32に書き込むことは可能でしょうか?
以前は、avr studioを使い、ATmega88に書き込んでいたので、少し仕様は違うのかと思い、参考にしていた書籍に従ってGDLを使うことにしたわけでしたが…
>>750 ありがとうございます。
まだ見てませんでしたので、
これを参考にもう一度試してみます。
もしダメだったらその時はまた質問しにくると思うので、よろしくお願いします。
752 :
743 :2012/08/20(月) 10:13:57.67 ID:FS7SqRZH
>>747 負電圧の-10Vというのを利用して可変抵抗調整したら文字が表示されました!
-10Vから5Vの間で可変なので利用しなくても構わないと思ってしまっていました
本当にありがとうございます!
>まずAVR Studio Ver.4を入れる。(Ver5からはVisualStudio統合型で使い辛い上に、 こりゃ酷い どれだけ俺様基準な押しつけなんだ
>>753 大半のと書いてあるし
気に入らないならボクちんのオススメでも教えたれよ
お勧めもクソもねーよナニ言ってんだろ AVR Studio5ないし6を使うだけのこと
不用意な質問は、回答者に無用の混乱を招くと・・・
AVR Studio 4がオススメ
自分は、GDLはH8でAVRはAtmelのStudioシリーズを使ってるが 5.0からデフォだとお節介過ぎてウザイんで、自分好みにカスタマイズして使ってるよ hex書き込みもワンクリックだし、それなりに快適だったりする まぁVC#とか使ってるからかもしれんが (編集には秀丸も併用してるけど) っと書きつつ只今久々にAVRコーデイング中
僕のAVR用エディタはWZ 思えば長いつきあいだなぁ。
エディタはMIFES98っぽくカスタマイズ出来れば特にこだわりは無いが... Studioのインテリセンスも捨てがたいつーか今ではコレ無いと不便に感じる 何でも便利なもんに慣れちゃうと軟弱になっていかんなw
> 入荷されない。 ww されちゃうのかよww
日本語として十分に通じると思うけど? 秋月の社員が主体:CPUを入荷する CPUが主体 :CPUが入荷される
出荷される・・は使うけど、入荷される・・は使わないなぁ。
「CPUが店に入荷する」 という文は 「象は鼻が長い」 と同様に、主語が不定になってしまってるな 「CPUが店に入荷される」 の方が英文和訳的で紛れが無い でも文系の人はきっと嫌がる
CPUに入荷する
典型的なこのスレのパターンだな あげあし取り 次スレ要らないよ
769 :
774ワット発電中さん :2012/08/21(火) 15:54:06.49 ID:4reAuT5V
>>766 理系が日本語音痴に思われるだろw
>CPUが店に入荷する
日本語として全然問題ない。
773 :
774ワット発電中さん :2012/08/21(火) 17:17:30.39 ID:qo3vLSju
>>771 >>CPUが店に入荷する
>
>日本語として全然問題ない。
おかしいだろ。
CPUを入荷する。/CPUが入荷される。
AVR初心者の俺にはこのスレはありがたいけど、揚げ足取りはよくないなぁ。 まぁ意味が通じればいいと思う。で、AAA品が少なくとも8/11から入荷しないこの状況をどうしたら…。 ちなみに秋月のお盆休みは8/15〜8/17だったらしい。お盆休み挟んでるよ!休みの間に入荷しとけ!
CPUが店に入荷する CPUは店に入荷する ここでの”が”は主格をしめす"が"でなく"は"と対比される強意の"が"。なんらおかしくない。
>>772 フラットは配線したことないし俺には無理だよ…。世の中の部品が全部フラットになったら
電子工作やめるかフラットのハンダ付け覚えるか考える
777
秋月で1284のフラットパッケージのを買ったよ 変換基盤と一緒に 面積的には、DIPとあまり大差ないんじゃないかな・・・
定時後は、一気にすすむなw
>>776 老眼のジジィだけど、変換基盤にフラットパッケージをはんだづけするのは
そんなに大変じゃなかったよ。秋月で売ってる逆方向のピンセットで、
パッケージと変換基盤をはさんで、普通のハンダごて当てていく。
となりのピンとSHORTすることはあまりきにしないで。
SHORTしたところは、ハンダ吸い取り線あてて回復する。
最後に、テスタでパッケージの全PINについて、導通確認とSHORT確認
>>773 それは英語の文法で日本語を解釈するからだ。
CPUが入荷する。
日本語として全くおかしくない。
チップは最初抵抗があったけど (やはり老眼) 慣れたら 0.5ピッチ位楽勝。勿論虫眼鏡は必須だが・・ あとね、日本語なんてもともとあやふやな文法だから、細かいこと気にするなよ。 プログラムの文法はしっかり守ららないとイケないけどね。
虫眼鏡無しでも頑張ってるよw
目視よりテスタを信用して・・・
スレチだけど、機械翻訳の研究室にいた大学の同級生から聞いた話だが、
昔からの国文法と言うのは、機械翻訳の工学的見地からは全くの役立たず!ということで
その分野の理系の研究者・エンジニアたちが、いちから日本語研究をしなおした結果として、
日本では「助詞」が最重要要素だ〜的な結論にいたったとか・・・
つまり、
>>780 に同意で、
>>781 の「あやふや」というのは「主語が〜」的な意味で、
自然言語処理研究者たちが再検討した文法の観点では、あやふやさは少なく、
結構、厳密にとりあつかえるらしい。
だって外国語の文法を日本語に当てはめようとして作ったものだし 文法ってのは既にある現象を帰納的にまとめたものでなければ 機械翻訳で躓いてみるまでもなく、日本語は助詞主体だよ 象は鼻が長い、を例に出した時点でピンと来て欲しい
ス レ チ
>>782 >自然言語処理研究者たちが再検討した文法の観点では、あやふやさは少なく、
結構、厳密にとりあつかえるらしい。
ならば、機械翻訳がもそっとまともになるのではないか? ・・・と
文法以前に日本の表現があやふやと言い換えたほうが厳密かとも思うけど。
で、 日本は ニホンorニッポン はたまたヒノモトか?
最近まで ”ニホン”が正解なのだと思い込んでいた。
自国の呼び名まであやふやな国は他にないのじゃあるまいか。
そもそも国旗でさえ、ちゃんと決まって居なかったりしていてだな。
>>785 語法、文法、文脈、他を一緒にしてはならん。
たとえアセンブラの文法が厳密であったって、プログラムを流暢にFORTHに訳せたりはしないだろ?
>>786 それ何処の国?
日本は、法に基づき日の丸だけど?
>>789 その日の丸の丸サイズがグダグダでな。
確か平成も二桁になってからようやっと法で決めたという体たらくぶり
あれ?ここ何についてのスレだっけ?
日本語が分からない移民たちの憩いのスレなんじゃね?
みんな意味はちゃんと通じてるでしょ? 「mega1284早く欲しいよ〜」って。 もうこれ位にしたら?
794 :
774ワット発電中さん :2012/08/21(火) 20:06:21.02 ID:qo3vLSju
だめだ
/j /__/ ‘, // ヽ ', 、 // ‘ ! ヽ …わかった この話はやめよう /イ ', l ’ iヘヘ, l | ’ | nヘヘ _ | | l ハイ!! やめやめ | l_| | | ゝ ̄`ヽ | |〈 ̄ノ ゝソノノ `ー‐' l ! ¨/ n/7./7 ∧ j/ / iヽiヽn |! |///7/:::ゝ r===オ | ! | |/~7 i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/ | | | | l {':j`i::::::::::::::::`ーr ' ||ー---{ | '" ̄ ̄iノ .l::::::::::::::::::::::∧ | ゝ ', , 一 r‐‐l γ /、::::::::::::::::::::::::〉ー= ___ ヘ ヽ } / o |!:::::} / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ ノ / o ノ:::::∧ /ヽ o ヽ::::::::| o i::::::::ヽ、 / / / ノ::::::/ /::::::::ヽ o ヽ:::| o {::::::::::::::Υ / ところでPICスレみたいにお勧めチップのテンプレがあった方がいいと思うんだがどうだろうか?
>>795 そもそもチップの種類が少ないのでおすすめもクソもない気が
Attiny2313とATmega328Pだけあれば余は満足じゃ
確かに・・・あと変り種としてattiny85があるくらいか フラッシュが64K以上でDIPのやつはでか過ぎるしなぁ
>>790 明治だったかにガイドラインが出来て以後それに基づいて作られてるから
その主張は無知の証。
日本語つーか自然言語が苦手な理系には自動詞的な使われ方が理解されてないようで。
あれを自動詞的に解釈するからおかしくなる 「品物が入荷した」 は、主語を仮に補うと、それは「店」なんだよ 店が入荷した状態になった。何によって? それは品物によって 「品物が(店に)入荷した」の略では*ない*ことに注意
6 ATtiny10 内部8MHz 最大12MHz USIなし SOT23のみ 8 ATtiny13A 内部9.6MHz 最大20MHz USIなし 8 ATtiny45/85 内部16MHz 最大20MHz PLL付き 14 ATtiny44/84 内部8MHz 最大20MHz 20 ATtiny2313/4313 内部8MHz 最大20MHz tinyで唯一USARTありADCなし 20 ATtiny461/861 内部16MHz 最大20MHz PLL付き 28 ATmega88/168/328 内部8MHz 最大20MHz 40 ATmega8515/162 内部8MHz 最大16MHz 外部バス付き TWIなし 40 ATmega164/644/1284 内部8MHz 最大20MHz 44 ATmega32u4 内部8MHz 最大16MHz USBデバイス QFPのみ 64 AT90USB647/1287 内部8MHz 最大16MHz USBデバイス/ホスト 外部バス付き QFPのみ 64 ATmega64/128 内部8MHz 最大16MHz 外部バス付き QFPのみ 100 ATmega1280/2560 内部8MHz 最大16MHz 外部バス付き QFPのみ 比較対象になりそうな現行の主な品種のみ。 DIPがある場合はその足の数。 価格、容量、末尾PAとかは省略。
digikeyで買ったXMEGA32D4が神過ぎてMEGA328Pに戻れません・・・・
あ、xmegaとか忘れてたわ 使ってる人いたんだw
805 :
774ワット発電中さん :2012/08/22(水) 00:02:41.91 ID:EuD5VVE/
だって328Pと値段変わらないですもん。 周辺機能もいっぱいでUARTねーよーとか、SPI足りねーよーとかならないんで めちゃくちゃ重宝してます。 ポート足りなけりゃSPIで増やす癖があるので・・・
秋月で取り扱って欲しい品種 ATtiny4313 使いやすい20ピン。200円ぐらい? ATtiny85 最強の8ピン。160円ぐらい? ATtiny84 わりとどうでもいい 秋月で価格改定して欲しい品種 ATtiny13A 機能の割に高すぎ 80円ぐらい?
秋月か xmegaも安かったら買う....と思う 扱う予定とかあるんだろうか
ATmega88でサーボモーターって動かせますか? 本当にプログラミング初心者で、すみません。
>>799 >明治だったかにガイドラインが出来て以後それに基づいて作られてるから
実際に世の中にあったのは、かなりいい加減でバラバラだったっていう
現実を知らない無知さん?
縦横比も、それに占める直径の割合も複数通りあったんだっけか
>>809 そういう目的ならArduino
ぐぐってみ
>>809 昔ながらのRCサーボ?
RCサーボの信号はmsオーダーなんで、これを作れないワンチップマイコンは存在しないかと
(ひょっとすると自分が知らないだけで有るかも?)
問題になるのは制御する個数と分解能だね
大雑把に言うと、サーボで適当にネギ振らせるwだけならIOピンの数だけ動かせるが...
個々の分解能を10bitになんてのは不可能な訳だ
まぁググれば色々と情報出てくると思うんでガンバレ
行き詰まったら改めて聞いてちょ
その時に居るかは保証出来んが...
親切な誰かが答えてくれるさw(たぶん)
>>806 XMEGAってDESエンジンのせいで輸入がメンドイけどどうしてる?
ATMELもなんでこんな余計なもの載せたんだろう…
>>個々の分解能を10bitになんてのは不可能な訳だ 16bitのPWMで簡単に出せるよ。 けど、RCサーボがついてこれないだろうね。 実際の所あれの実質精度はどれくらいなのか? 良くて8bit程度かな?
>>811 昔はともかく今は決まってるんだから、別に何の問題もない。
ここは、何スレ?
>>787 FORTHって知らなかったけど 高級原語なのね。
ちょっと悩むけど、可逆翻訳はできるんじゃないだろうか(論理的に)
ただし人間が書くコードみたいに冗長な翻訳は論理的に不可能だけれども
大昔にFORTHを知った時、そのユニークさにとても興味をそそられて 別のCPU用に自作したことがあった。 スタックと逆ポーランド記法を使うせいか、 少し人間にはなじみにくいなというのが実際に使ってみた感想。 誰かAVR用に作っていて、まだ生き残っていたのかとチョット驚いた。
ここでコーホーさんネタにならないのか
>>816 そこだけ抜粋するなよw
個数と分解能が問題って書いてあるっしょ?
ちなみにヘリのサーボが分解能8bitだったらヘロヘロのホバリングになっちまうぞw
まぁスロットルに使うサーボなら8bitでも構わないけど...
>>822 書いてあるけど、数が増えてもパルスは一緒に出さなくていいから
16bit timer割り込みでOKだな。
PWMでも timer当たり2個 timer0と1で4ちゃんあれば十分だと思ったけど
ロボットなんか20個ぐらい使うんだな。
俺の2980円のヘリのホバリングがヘロヘロなのはそのせいだったのか。
825 :
774ワット発電中さん :2012/08/22(水) 16:28:55.49 ID:EuD5VVE/
> ヘロヘロ
>>810 ,
>>814 レスありがとうございます。
試行錯誤してみますが、自分の周りに詳しい人がいなくて…
また、分からなくなったらお願いします。
>>823 もちろんパルスが正確ならパルスを出す周期は多少狂っても問題ないし例え50ms間隔でもサーボは動くが
これが長すぎると用途によっては使い物にならなくなる
んで例えば20ms周期にしたとしてパルスをソフトや内蔵タイマーのカウントで作る場合
当然ながら20ms内に作れるだけ...と個数の制限がある
ところで
> 16bitのPWMで簡単に出せるよ。
これって内蔵タイマーのPWMモードの事でしょ?
これで10bitの分解能を出せるん?
俺にはわからんが...
あと、トイヘリちゃうから!w
Xcodeでビルドしようとすると Command /usr/bin/make failed with exit code 2 というメッセージを吐かれてビルドに失敗するのですが、このメッセージはどういう意味で、どうすれば解決するのでしょうか。 OSX Lion、ライタはAVRISPmkIIという環境です。最近マイコンをはじめた全くの初心者ですがよろしくお願いします。
>>779 そかDIPは随分入荷されてないみたいだし、考えてみる。ありがとう
>>821 マジか!?ありがとう。でもAAA品が1ヶ月入荷してないなんておかしいよね。
メールで問い合わせは受け付けてないらしいからFAXで問い合せちゃおうかな。
>>823 ソフトウェアPWM
644pで6脚ロボット18軸を21.6ms周期で動かし取る。
タイマーを分周なしで48000カウント(20MHz 2.4ms)ぐらいで割り込みかけて出力を変えればいい。
ひとつの割り込みで9軸分動かす
0.7msを最小角度2.3msを最大角度としてこの間を0-16000で表現できる。
理論上は0.01度ぐらいの解像度。
他の割り込みのロスとかで少し狂う可能性があるが
それを解消する方法もジッターレスとかいうのでどっかのサイトで紹介してた。
それだとマイコンからの出力ピンも少なく出来てた。
いい加減にID登録して数値で受け取るサーボにならんものか
>>827 >これで10bitの分解能を出せるん?
単純にパルスの時間分解能が16bitだろうに・・・
駆動クロックまでの分解能は基本的に可能(PLL使えば更に1/8)
たぶん、あんたにはわからんやろな。
>>833 サーボ駆動用に一個マイコン増やしたほうが早そうだし
ギヤモーターよりサーボモーターの方が安いからなぁ
ちなみに内部のボリューム外して外部センサーで駆動することもできる
(単純に駆動回路付きギヤモーターとして)
何十個もサーボ動かしたい時、マイコン代がバカにならないよね。ロボットで人間の 手を模したりするとき。サーボをI2Cで制御できたらいいね。
AVRよりサーボのほうがずっと高いだろ
837 :
774ワット発電中さん :2012/08/23(木) 09:20:52.37 ID:3d6kbp6x
I2Cが理解できないのですが、SPIなら理解できますか?
秋月にATmega1284P-PU(DIPパッケージ)がないか八潮通販センターに電凸したら 「入荷の目処が立っていない」だとよ。しかも通販のその部品をお気に入りに入れようとしたら 「指定された 通販コードが見つかりませんでした。」オイオイ…これはほんとに取り扱いやめる気か まぁ変換基板とフラット版買うよ・・・
>>838 >指定された 通販コードが見つかりませんでした
取り扱いの予定とは無関係に、在庫なしのとき、その表示になるよ
在庫なしでもお気に入りに入れたいときがあるのにね
つまり気に入られたくないんだな
>>837 どれも使ったことがないがI2Cが一番配線少ないのでは?
SPIの方がプログラムは簡単で高速全二重。 ただし配線多いしエラー処理とかはやってくれない。 スレーブをセレクトするための出力がスレーブの数だけ要る スレーブごとに速度変更可能。 送信受信が異なるので5Vと3.3Vの間でも分圧でどうにかなる。 I2Cはプログラム手続き多いので慣れないと面倒 配線はコンセントみたいに蛸足で可能。 速度は一番遅いスレーブに合わせないとダメ。 データ線が1本なので5V-3.3V系間では双方電圧変換が要る。半二重のみ。 厳密にはよく知らないがつかってる限りではこんな具合。 I2C通信でのセンサー多いからI2C覚えるとお得。 SPIはMCP328とか自前のスレーブとかしか使ったことないけど 配線が多いので速度が間に合うならI2Cの方がお勧め。 後からスレーブ追加が容易
プログラムの書き込みにISP使ってるけど、 通常時にIOポートとして使えないもんなのかな?
デバッグ時に面倒になるけど、アプリケーション・ノートとかで解説あると思う
プログラムの書き込み時にISP用の端子以外はハイインピーダンス状態になって切り離されるから その状態でISP用の端子にライタ以外からの出力信号が入力されないように配慮すれば大丈夫 例えばISP用の端子に、CS端子をLOWにするとデータを出力してくるようなデバイスのデータラインが接続されている場合に そのCS端子を外付けの抵抗でプルアップしておけばプログラムの書き込み時にCS端子が確実にHIGHになるので大丈夫 キャラクタ液晶やグラフィック液晶のデータラインは入出力双方向だけど各種制御信号は マイコン->液晶の単方向の信号だからそういった各種制御信号をISP用の端子に割り当てれば プログラムの書き込み時に支障がない
前に質問させて頂いた超ド級の初心者です。 ビルド時のエラーについて、お聞きしたいのですが make: Makefile: No such file or directory make: *** No rule to make target 'Makefile'. Stop. Build failed with 2errors and 0 warnings... と言うエラーが出てきます。 これはどこを書き換えれば良いのでしょうか。 必要なら、短いですが、プログラムもうpします。
さすがにそのレベルの初心者の面倒は見切れんなあ つまりググレカス
ISP端子をIOポートに・・・だってググればすぐに出る枯れた内容じゃないですか。 気持ちは分からんでもないですが、そう思えばわざわざ書かずにスルーしましょうよ。 プロジェクトのフォルダパスに日本語が使われていませんか? avrstudioは2バイト文字のパスに対応していませんので、 OSのユーザー名が日本語だとよくあるトラブルです。 フォルダをCドライブ直下などに移動してからプロジェクトオープン&ビルドを試してみてください。 ハズレだったらごめんなさい。
>>845 わざわざ詳しく解説してくれてありがとうございますー
>>849 ISP経由でのICEしか使った事ないんだけど
ICE的に、ISP(debugWIRE)と、JTAGでは、使い勝手に差があるかしら?
>>847 申し訳ないです。返す言葉もありません
>>848 実践してみると、エラーの種類が変わりました。
量は増えましたが、さきほどのようなソフト外での問題では無いと思いますので、
ググってやってみます。
853 :
774ワット発電中さん :2012/08/24(金) 21:16:29.08 ID:TalJ8pgq
デバッグやめるときにdebugWIREきり忘れるとややこしいことになるじゃないですか。 JTAGだとそれが無いことと、デバッグスタートがちょっと速い程度の差しか私は感じないですね。 ああそれと、デバッグ中はJTAGに使うポートが完全に占有されるのが痛い時がありますね〜
下げ忘れすいません^^; フォルダパスに日本語が入っているとmakefileの自動作成・変更が出来ませんね。 makefile変わらなければコンパイルは出来るという微妙な制限が困ったものです。 最新のatmelstudioでも直ってないのかな? studio4で困ってないので試したくないですw
>>853 あ〜!たしかに、「ややこしい」事になるねw
AVRStudioのメニューの
「Disable DebugWIRE and Close」
が選択できなくなって焦った事が何回かある
落とし上げとかウニャウニャやってるうちに脱出できるんだけど・・
>>854 フォルダパスどころか、
コメントに日本語つかっただけで、コンパイルエラーがでることがあるようなw
AVRStuidio5です
PICとAVR及び、ATmegaとATtinyには、 プログラム上で、どんな違いがありますか? いろいろページを見ていて、プログラムを参考にしたいのですが、違いが大きいのなら意味がないので… 1番最初の関数の部分が違うことぐらいしか分かりません。 書籍で調べようにもAVRの本自体、少ないですし(−_−#) ちなみに、環境はAVR Studio 4で、ATmega32を使っています。
質問の意味がわからない。
>>858 ごめんなさい。自分でもおかしいと思いました
さっきのは忘れてください。
build時のエラーで
avr/io.h
avr/interrupt.h
avr/signal.h
が、そんなものは無い、と表示されます。
GDL(GCC Developer Lite)
と言うソフトを使っていた時は問題ありませんでした。
同じc言語でも、ソフトによって変わるんでしょうか?
GDLにavrlibcって含まれてるんでしょうか? あるいはライブラリへのパスがstudio側で設定されていないのではないでしょうか 言語仕様の話じゃなく環境設定の問題だと思いますよ。
連投すいません、もう一つ確認を。 MinGWなんてインストールしていませんか? 基本的なヘッダファイルの名前がかぶっていてstudio側でコンパイル不能になります。
>>860 レスありがとうございます。
なるほど環境の問題ですか…
パスの設定の言うのはsettingから出来るのでしょうか??
闇雲にいろいろとDLしてしまったので、
もしかしたらあるかもしれません。
探して見ます。アンインストールで大丈夫ですよね?
863 :
774ワット発電中さん :2012/08/25(土) 11:08:34.16 ID:ZzsNHXUJ
AVRのCPUで温度センサーの値をLCDに表示させるまでは出来たのですが、 これにイサーネットをつけてIPアドレスを振って手持ちタブレットから温度を観察したいのですが、 どうやってイサーネットをつけたらいいのか参考になるものがあれば教えて下さい。
865 :
774ワット発電中さん :2012/08/25(土) 11:57:42.98 ID:ZzsNHXUJ
イサーネットよりブルートゥースで無線シリアルの方が良か無いか? 余計なお世話だけど
webサーバーでも立てるのかな?
868 :
774ワット発電中さん :2012/08/25(土) 13:07:28.64 ID:ZzsNHXUJ
>>867 そうなのですがI2Cも理解できないヘタレです。
>>868 大丈夫、波形を見ながらやってけば、そんな難しいもんじゃない
ADって何もつながないとピンの電圧が不定になってまずい?それとも 内部プルダウン/プルアップされてる?
>>866 BluetoothだとPC側で専用ソフト(シリアル的な何か)必要だけど
イーサネットは既存のブラウザで見れるように作れるからね
ところでENC28J60は別途TCPスタックが要るから
ストリナのモジュールの方がいいと思うのだが
872 :
774ワット発電中さん :2012/08/25(土) 14:51:31.10 ID:ZzsNHXUJ
873 :
774ワット発電中さん :2012/08/25(土) 15:00:28.11 ID:ZzsNHXUJ
自己レス ググれば、 <iom8v.h> <macros.h>がネット上にありました。 すいまそん。 ついでに、 GICR = 0x00; TIMSK = 0x00; がコンパイルエラーになるのですが何かご存知の方どうしたらいいのでしょうか?
>>872 #include <iom8v.h> というヘッダーファイルは、ImageCraft ICCAVR compilerの
ヘッダーファイルの様です。
ソースもImageCraft ICCAVR compiler用に書かれてて、AVR GCCではコンパイルす
るのなら修正が必要かも知れませんね。
>>870 ADピンのデジタルIOを切り離せば入力不定でも問題なし。データシートに書いてます。
保護ダイオードは入っているのでノイズ程度で電源範囲を超える電位になっても大丈夫。
>>875 オープンでいくつの値になるのかわからなかったが、自分で実験してみるか。
ありがとう。
やったことありますけど、見事に不定でふらふらしてましたよw
>>877 マジか!とりあえず実験してみるわー 必要ならプルダウンするかな
>>872 「ImageCraft ICCAVR compiler」ってのはチップごとのヘッダが有って、
それをCのソースで#includeするのが前提のようだけど、
「GCC(WinAVR)」ではコンパイルオプションでチップを指定すると
(新規プロジェクトでチップを選ぶと自動的にコンパイルオプションが付く)
全チップ共通のヘッダ(io.h等)から更にチップ専用のヘッダを#includeする仕組みになってる。
「iom8v.h」って、ファイル名からして恐らくI/Oアドレスの定義なんだから、
「#include <iom8v.h>」って所を「#include <io.h>」に書き換えるだけで良いと思われ。
ネットで拾ったiom8v.hは要らない。ポイ。
「macros.h」が正体不明だけど…とりあえずコメントアウトしてコンパイルしてみそ。
エラーが出るんなら、それは恐らく「何々は未定義だぞ」という内容なんだから、
macros.hの中から、その何々を定義してる部分を切り出して、
Cソースの「#include <macros.h>」と書いてあった部分に投入すればいい。
>>861 mingw-vista.patchと言うもので合ってますか?
パスについてですが、ググって調べたのですが、インクルードファイルのパスの設定の所で何も表示されません。
なにかファイルをインストールしておく必要があるのですか??
本当に申し訳ありません。パソコンを変えて、改めてやって見たら、いろいろ仕様が変わっているようで…
>>880 ドツボにハマっているようですね・・・・
ムリに直そうとせず初心に帰りましょう。
1、使わない開発環境(MinGW,ICCAVRなど)をすべてアンインストール
2、avrstudio + WinAVRの開発環境セットアップをググって再インストール(上書きで構わない)
ライブラリのインクルードで大きな混乱が起きていないのは普通にインストールすれば普通に動くからです。
あなたのトラブルの原因は、
1、余計な環境をインストールすることでライブラリのサーチパスに混乱が生じている。
2、avrstudio入れたけどavrlibc(WinAVR)をインストールしていない。
このどちらかと思います。(あるいは両方?w)
落ち着いてやり直してみましょう。
>>881 本当に丁寧にありがとうございます。
易しい説明で分かりやすいです。
AVR Studioは6にしといた方が良いのでしょうか?
883 :
774ワット発電中さん :2012/08/25(土) 22:51:34.88 ID:ZzsNHXUJ
I2Cで使うSCL、SDAというのは、CPU毎にPIN場所が違うのですね。 どれでもC4、C5と思い込んでました。 ははは。。。
studioのバージョン議論ははそれだけでスレが進みそうなネタじゃないですかねぇ・・・ ここの住人のみなさんはどうなんでしょう? 私の場合ですが、特に問題もないので使い慣れている4です。 6も使ったことはありまして、デバッグワイヤーの場合に前出の「ややこしい状態」を 回避しやすいのは評価できると思いました。 画面デザインはMSのVisualStudioコンポーネント使ってますので、これこそ個人の好みってことでノーコメントw ビルドはGCC依存ですから吐き出すコードは変わりません。 単純に起動やデバッグ開始がいちいち重たいのでアンインストしました。 5についてはリリース期間も短かったし、なかったことでいいのかなと思いますw
俺もこのネタ振ったことあるけど、あんまり盛り上がらんのよ ちなみに5から6の変化点って何?
ググってたら、6の方に誘導されましたので、取り敢えずそのままダウンロードしておきました。 742MBもあるんですけど、合ってますよね?
あってるよ ごついけどインストールしたらそのまま使えた気がする PCがしょぼくなければ6でいいと思うが
888 :
879 :2012/08/26(日) 00:02:25.77 ID:hxCn5puB
なにやら質問者が複数居るようですが…
見てるコッチは誰が何の話してるかゴッチャになって解かりません。
質問側は名前欄に「最初に質問を書いた投稿番号」を入れて書き込みしてくれると解かり易いです。
>>882 >AVR Studioは6にしといた方が良いのでしょうか?
881氏の回答の本質が解かって無いですよ。
>2、avrstudio + WinAVRの開発環境セットアップをググって再インストール
この回答ってのは、環境のセットアップからコンパイルまで全て通して説明してる
サイトなり本なりを探して、その通りにすべきだよと言う事なんですよ。
開発環境もソレが指定してる物にすべきです。
…つうか、何一つ明確に決めてなくて何もかもメチャクチャになってない?
まず「サンプルソースのコンパイルがしたい」とか、目標をキチンと決めて、
それに対する手本のターゲットを一つに絞るべきです。他の事は目標を達成した後にしましょ。
手本の解からない部分を理解する為になら、他の物を見たり質問するのは良いですが、
解からないから別の手本に変えるとかの浮気はダメです。
出来るまでやらずに逃げ回るだけでは上達しない…って、子供の説教してるみたいだな…
それとStudioのVer4だのVer6だの言ってる人。
同等の物を作ってフリーで公開する人も居ますよね?要は「使う側」って次元の話なんですよ。
良い車買って自慢するようなもんです。金さえ有れば子供でも買えるのにね。
そうでなくて、何でも使えるようになる事を目標にすべきですよ。
職人は道具を選ばないって言いますよね。道具の至らない所は自力でカバーするんです。
入門者に勧めるにしても、理屈の上では全部使えないとダメなんだから何から始めたって一緒です。
ただ参考になる手本の数とか種類と言ったら古い方が多いから有利ではありますね。
>>887 ありがとうございます
スペック的には問題ないと思います
>>888 分かりにくくてすみません。
これからは名前書くことにます
連投すんません
5はリリース初期に触ってブチ切れた記憶しか残ってないんですよ・・・・
なので何が変わったんやらwww
>>886 6はでかいですよ。MSのコンポーネント付きを落としたんじゃないかな?
今気づいたけど、6のシミュレータってどうなんでしょうね?
4のシミュレータは動かない周辺機能がけっこうありますから。
私はいきなりOn Chip Debugなんでほとんど使わないんですけどw
初心者にもマターリAVRスレは何処…
ここだよ なんでもきいて
連投すいません。考えながら書き込んでいたら進んでたんでコメントを。 >>開発環境もソレが指定してる物にすべきです。 まぁそこはその通りですw ただ、ここは職人だけの場所ではないですし、あくまで趣味の範囲の人に 「どんな環境でも使いこなせないとダメよ」的な事はどうかと思いました。 フリーな環境もいっぱいありますけどavrstudioもフリーですし環境議論もいいじゃないですか。 答えなんか出ませんけど、そのログは一時的であれ良い情報だと思います。 私はプログラミングで飯食ってますけど、道具を選んでいるからこそ4を使っています。先に書いた選択理由は抜粋でして、実は一匹狼ならば別の環境を選んでいるかもしれません。 私もオッサンですので、小言を言いたくなるような投稿があることも分かります。 でもそこはスルーしてマターリやりましょうよw >ALL (←古いw) 明日からまた子供にPC占有されますので、私に答えられるものならば寝るまでにどうぞ〜
xmegaの型番なんとかして
A4のあとにAUとかA4Uかよ
ハードウェアCRC欲しかったのに…
>>894 仕事だと環境変える行為そのものに縛りがあったりなのでしょうね
永遠にビギナーが来るものですから、奇抜な環境には行けませんねw studioのバージョンが変わるだけで共有しているデバッガのファームも変わるものですから、 軽い4に「合わせて貰っているのです」orz ハードウェアCRC・・・・ワカリスギル・・・・
>>885 8bit AVR用のADCとかのテンプレートが無くなった。
5は8bit AVRの機能サンプルみたいなテンプレートがあった。
あと、6はXmegaやAVR32の開発用にシフトされてる感じ。
6になってBuildした時の反応が変わってしまったようですが、 Build succeeded. =====Build: 1 succeeded or up-to-date, 0 failed, 0 skipped===== と、なっていたら、成功なのでしょうか?
>>898 英単語くらい自分で調べて理解できないとこの先は無理だ
900 :
超ドュ級の初心者 :2012/08/26(日) 03:02:02.26 ID:R9LazJ7S
>>899 succeededと言うのが、成功した。
という意味なのは分かるのですが、
前のバージョンみたいに色で分けられることも無くなってしまっていて…
一応確認できたら、と思ったのです。
ごめんなさい。
ちょいと前に出てたネタの PS3コントローラーx6充電器を作ってみました ネタくれた人まだいるのかどうか不明だが...一応お礼を サンクス
studio使うなら自分もVer4がいいかな と、ずっと思ってたけど 5や6も自分好みにカスタマイズすればそれなりにイケる まぁこれは人それぞれなんだけども ちなみにVer6にしてから古いソースを引っ張り出してきてコンパイルしたら prog_charダメだとかconst付けろとか小言を言われるようになりましたw ver6つーか、これに付いて来たgccの問題なんだけどね 初心者だとネットで拾ってきたコードとかビルド出来ず悩むかも?
AVRのオーバークロック耐性すごいなぁ。 見つけた中では、2313を32.25MHz(@5V)動作させてたよ・・・・。 6V突っ込んだら何MHzまで行けるかな?
私のオーバークロック実績 tiny2313 32MHz atmega328p 32MHz ただしハードウェア乗算器がときどき計算ミスする その他の動作はok atmega644p 28.3MHz atmega128p 25MHz
× atmega128p 25MHz ○ atmega1284p 25MHz
>>904 2313とか168は定格の1.5倍+ぐらいまで行けちゃうのかー
最大周波数が同じはずの644や1284がオーバークロック耐性低いのは面白いね。
ところで、それは5Vの時の結果?
OCはCPUよりペリフェラルが先にへこたれる 選別すれば2313は40MHz、328Pは32MHz辺りで動くけど ペリフェラルが全部正常に動いてるかは微妙 定格の1.3倍程度なら選別なしでも大丈夫じゃないかな
5Vだよ 644や1284のオーバークロック耐性が下がるのは プログラムカウンタの桁が多くなるからだと個人的には信じている
SRAMか大きいほど耐性が低くなるような気がする
じゃあSRAM小さいほど耐性強くなるのかな?
流れ切ってすみません。 どなたかAVR Studio 6の使い方分かる方いますでしょうか? ググっても4の説明は出てくるのですが、6の方は出てこなくて… マイコンへの書き込み方を教えてください。 純正ライターは持ってます。 4とは、項目が変わってしまっているのもあってorz
OCする際は当然ペルチェは付けたんだよな?
913 :
774ワット発電中さん :2012/08/26(日) 16:55:27.96 ID:0LVEsqC2
>>911 右上の(CPUに雷の図)のアイコンをクリックする。
接続しているCPUを選択する
applyボタンを押す
memoriesを選択してprogramを押す
と書き込まれる
>>913 ありがとうございます。
もちろんライターをつないだままですよね?
>>865 それ、だいぶ下層しかやってくれないんじゃないのか
TCP/IPのプロトコル層までソフトを作り上げるのは、かなり至難な希ガスぞ
シリアルをTCP/IPもしきはUDPに変換してくれるWIZ110SRとかのほうが手軽だ
ちょっと高いけど
916 :
774ワット発電中さん :2012/08/26(日) 17:23:23.53 ID:0LVEsqC2
LANジャックのある評価ボードはないのだろうか。
Arduino
920 :
774ワット発電中さん :2012/08/26(日) 19:14:54.47 ID:0LVEsqC2
ここまで揃えてくるとCPUオンボードMBやRasberry Piまであと一歩だね。
何があと一歩なのかよくわからん
もうAVRは卒業って意味だろ
>>913 Programを押す前に、ファイルを選択しますよね?
どの種類のファイルを選べば良いのですか?
ELFファイルとHEXファイルは試したのですが、そんなファイルは存在しないとエラーが出ました。
また、EEPROMと言う方でも、ファイルを選択しないといけないのでしょか?
>>911 Studio6のライターは使いづらいんで(俺だけ?)
Studio4付属のライタープログラムだけ残しておいて
Studio6のカスタムボタンに登録してやると、ビルド後にワンクリックで書き込みできて便利
ビルドオプションに登録すれば[F7]一発で書き込みまでオートでいけるけど
それはウザイ時もあるんで、やっぱボタン作る方がいいかも
>>924 カスタムボタンの登録方法詳しくお願いできますか。
>>923 ソースコードにFUSE・LOCK・EEPROMのデータを仕込んでおけばELFでまとめて書き込みできるよ
ELFファイルを作るかはプロジェクトのオプションで指定する
書き忘れたけど FUSEやLOCKをツールの選択から書き込んで FLASHあるいはEEPROMだけに書き込むだけならHEXでokだよ
>>927 存在をしないので、開けない。
と、エラーが出てしまうのですが、
ファイルの保存場所が悪いのでしょうか?
>>928 普通ソースコードが保存されてる場所にDebugあるいはReleaseフォルダがあって、その中にELFやHEXがあるはず
そして、先ほど書いたオプション話は勘違いで
出力ファイルのオプションで指定出来るのはhex,lss,eepでした
すまそ
>>925 書き込みボタンの追加方法は...
ツール・外部ツールで設定ダイアログ出して
タイトル:[Mega328P書込]
コマンド:C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe
引数:-cUSB -dATmega328P -e -pf -vf -if"$(ProjectDir)Release\$
(ItemFileName).hex
初期ディレクトリ:$(ProjectDir)
[出力ウィンドウを使用]にチェック
ツール・カスタマイズ([コマンド]タブ選択)
[ツールバー]を選んでリストから[Device and Debugger]をチョイス
[コマンドの追加]をクリック
カテゴリ:ツール
コマンド:外部コマンド1
以上でツールバーにボタンが出来るはずだけど...
複数のデバイスを扱うなら[書き込み]メニューボタンを作って
その下に各デバイス用の外部コマンドを配置するとか
自分好みにカスタマイズしてちょ
ちなみに、上の例はこちらの環境での内容だから
そこら辺は自分の環境に合わせてね
デジカメ画像、、、
>>931 Windowsのユーザー名に全角文字使ってるんじゃない?
自分は昔からの習慣つーかCドライブに作ったもん置いとくのイヤなんでw
d:\data\src\avr\
みたいな所に保存してるよ
>>934 使ってました…
名前変更して、再起動してからやり直して見ます。
>>933 > いろいろいじっていたら
って、
まさかFUSEも適当にいじってないよね?
名前変えてみても駄目でした。
保存場所も、Cドライブ、デスクトップと、試してみましたが、先ほどと同じエラーが表示されてしまいました。
>>936 恐らく大丈夫だとは思いますが、何分、詳しくないもので、絶対とは言い切れません…
>>937 先ほどと同じってUnable to...って方?
ターゲット側を触ってないのにStudio上の操作だけでそのエラーが出たって事は...
Fuse間違えて書き込んだんじゃないかな?
RSTDISBLをイジっちゃってたら、残念ながらAVRISPmk2では復活できないよ
(復活にはパラレルライターが必要)
とりあえず予備のAVRがあるならそっちに差し替えて
まずはDevice signatureが読み込めるか試してみる事をおすすめする
あと、当方Studio5を日本語化しててStudio6はデフォが日本語だったから
カスタムボタンの説明は気づかずそのまましてしまったよ
すまそ
939 :
774ワット発電中さん :2012/08/27(月) 06:20:15.34 ID:ZBwMqQla
>>933 これはCPUの選択違いの時にも出てくるよ。
CPUとして「ATmega32」を選択しているようだけど使っているCPUはこれで合ってる?
違うんじゃないの?
>>939 確認した所、ATmega32Aでした。
ありがとうございます。
しかし、同様のエラーが出てしまいました。エラーはまた、Unable to...というものでした。
その前に、cancelと言うウィンドウも出てきて、
Execution of command cancelled because of previous command failure.
と、表示されます。
詰みそうです…orz
>>938 Fuseって言うのは、雷マークのボタン押して、出てきたウィンドウのFusesと言う部分をいじらない限りは問題無いですよね?
順番に確認しましょう。 写真にも撮られていた画面で「Device signature」というところがありますから、 そこのReadでシグネチャーが返ってくるか試してください。 「0x1E9502」と表示されればデバイスとのISP通信はできています。 アップされている画像はどちらも「Unable to」で始まっているのですが、現在はどちらなのですか? 1枚目の画像であればファイルパスに「??」が出ているので、フォルダパスに日本語があるせいです。 ユーザー名を後で変えても作業フォルダのパスは変わらないので、プロジェクトのフォルダを別の場所に変えなければなりません。 ちなみにATmega32とATmega32Aはプログラマ上では違いがありませんので、それによって書き込み失敗になることはありません。
>>941 ありがとうございます。
ファイルの名前に日本語が入らないようにし、1MHzに変更して、プロジェクトも一応、新規でやってみた所、
無事、書き込みは成功しました。
他の質問に答えてくださった方も、本当にありがとうございました。
でもサーボモーターは動かなかったので、プログラムの方は試行錯誤してみます…orz
改めて自分の書き込み見たらenterが抜けてた あれじゃどっちの話かわからんがなw そうそうAVRISPmk2だと速度設定できるから、それが合ってなくてもダメだったね チップ側の1/4以下にする必要があるから、出荷時1MHzのチップなら250kHz以下の速度にしないとダメだよ
>>943 と言うことは、1MHzじゃ駄目っことですか?
>>942 書き込めたなら取りあえず先に進めるようになったね
まず動作確認用にLED付けて初期化処理後に1Sec点灯とか点滅とかしてみる
プログラム通り問題なく光ったら動作クロック的には問題ないからさ
じゃないと1msのパルス出したいのに実際には8msだった...とかあるからw
>>944 ん?
1MHzってISPの方?ターゲットの内蔵クロック?
先ずはLEDチカチカを試してみる事をおすすめする
っと仕事に戻らねば
あの1/8分周のFUSE設定だが、 なにゆえデフォでONになってて、 また、1/4でも1/16でもなく1/8なんだろう?w
948 :
7 :2012/08/27(月) 16:20:15.86 ID:fUqA90I8
TWIやUSART、SPI周辺機器の想定している速度に合わせてるせいじゃね?
地球温暖化対策
マイコン制御って時間管理が多いので タイマー割り込み使ったLチカは経験しておいたほうがいいですよね。 動作確認もこめて空いてるピンで必ず1個点滅させています。 点滅見てればプログラムが吹っ飛んでリセットベクタに飛んでるのが分かったりしますし、 945氏のようにクロックデバイダの設定間違いが分かったこともありますw
mega32は使った事無かったから、今データシート眺めてみたら Fuseのclock1/8やRSTDISBLは存在しなかったよ 混乱させてたらすまなんだ
>>950 余りピンでLED点滅させたり、タイマー余ってたらホタルっぽく点けたりは自分もよくやるw
状態を知らせるハードがLEDだけなら、リセット要因で点滅パターン変えて知らせたりとか
まぁ趣味なんで好き放題出来るw
みなさん、様々な助言ありがとうございます。 おすすめ通り、LEDの点灯から試して見ます。 お仕事の忙しい中、わざわざ返事くださった方もありがとうございます。 自分は学生なので、勉強もやっているとなかなか時間がとれなくなってしまって… どうでも良いと思いますが、二足歩行のロボットを作るので、その外装も同時進行で進めています(`・ω・´)
>>外装ってモーターとか決まらないとできないような。そしてどんなモーターを 使えるかはMOSFETによる。よって最初はロボットなどには手を出さず、そうだな・・・ LEDチカチカの次はキッチンタイマーでもどうだ?ダイナミック点灯をやってみるといい
RCサーボ使うって話だから制御はAVRの出力で問題無いかと ただ、レスを見てた感じでは先は険しいと思われる まぁ挫折しなけりゃいつかは達成出来るであろうが って、やっぱ初っぱなからサーボ制御は無謀だな やはりLED点滅、ダイナミック点灯、PWMでホタル等からこなして行くべきかも しかしネットで目的のコード見つけたりすれば何とかなってしまうご時世だからなぁw ま、ご自由にどぞ
剣菱さんの動画がわかりやすい!
959 :
774ワット発電中さん :2012/08/28(火) 11:24:13.08 ID:KEjR/WsZ
2線中1本はGNDとして残り1本はVCCと信号線を共用しているのかねぇ 待機中に2次電池に充電しておいて来客時にバッテリー駆動に切りかえて VCCラインを信号ラインに切り替えるような感じ?
俺は、中学生の時以来30年ぶりにハンダごて握ったけど、きっかけは、ちょうど流行していた 二足歩行ロボットのサーボをATmega128でロジック回路4分割で16個動かす基板。 普通に一発で動作して、すぐに感圧センサつけてAD変換してたよ。 もちろん、最初に開発環境含めたテストとして、LEDチカチカやったけど。 だいたい、ネット見ればH8とか別のマイコンで回路とかプログラム公開されてるし、本屋に行けば AVRの解説本売ってて、何冊かはサーボコントロールの説明が出てたし。 C言語は初めてだったけど、サンデープログラマ暦30年とかで、何とかなった。 そんなに難しいことじゃないだろ。
>>955 モーターはGWS Micro/2BBMG
を使う予定です。
無謀なのは承知ですが、どうしても完成させたのです。
LEDで試して見たのですが、 LEDでさえも、抵抗を通さなくてもほとんど光らなかったので、 テスターで測った所、電圧は約5Xきていたのですが、電流が0.12mAしか来ていなかったのです。 マイコンのポートから直接ひっぱって来ているので、マイコンにいく前の回路に問題があるのでしょうか? また、ブレッドボードとジャンパー線を使っていることに問題はあるのでしょうか?
回路図と電圧、電流の測定方法を詳しく
まぁ、頑張れ。2chなんかに頼らずにな。
というか、電源何使ってるの?
大体何が起きてるか判った このまま回路図も出さないなら そのままぶっ壊したらいいよ
おまえに見せる回路図はねぇ
9Vの電源を5Vに変換して、 マイコンとAVRライターの電源を供給してます。 測定方法は、5Xに変換されたマイナス部分と、マイコンのポートから直接つないである、線につないで測定しました。 回路図は書かずに作ってます...
基礎を理解していない自覚があるなら回路図含めて すべて開示したほうがアドバイスを受けやすいよ。 「普通そういうことはしないよな・・・」ってことしてたりするから
手書きで大丈夫でしょうか?
回路図書くのが無理だったら、ブレッドボードに配線した様子そのものを撮影してくれた方がわかりやすいこともあるよ。
>>972 部品名やピン名がわからないと回路図の意味ないですよ
デバイス:Mega328 1:---4.7kΩ---5V 7,20:---C1---5V 8,22:---C1---GND 14:---K_LED_A---1kΩ---5V C1:0.1uF LED:青高輝度 コレだけでも伝わるかと
一気にいろいろ繋ぎすぎでしょ まずはLED一個から
写真みると赤いボードってどこかの評価ボードなのかな?
>>975 ATmega32Aで、LEDに繋いでいるポートはPC0です。
それと、下から出ている4つのポートはそれぞれ、SCK,MISO,MOSI,RESETにあたるポートです。
>>978 入門用マイコンボード PIColo です。
真ん中らへんのゴチャゴチャしているのはほとんどライター用の線です。
マイコンボードから無理やりブレッドボードにつけているので、相当見にくくなってしまっています。すみません...
入門用マイコンボードPIColoでは無かったです。すみません。 ただ、最初から半田付けされていたものです。 連投すみません
>>979 LEDがほとんど光らないと書いてますが向きはあってますか?
>>981 プラスマイナスですよね?
小さい方がプラスなら、合っているはずです。
もちろん逆も試して見ましたが、全く光らなかったので、向きは大丈夫だと思います。
なんか抵抗いれるの忘れてて、3つぐらいLEDが逝きました...orz
結構前に100個入りを買ったんですが、ほとんど、どこかへいってしまって、ピンチですf^_^;)
3端子レギュレーターまわり見ようと思って写真見たけど、何がどうなってるのかわからんw ところで、関係ないとは思うけど、赤の基板につけてる2列のピンヘッダ、逆に使ってないか? ハンダづけも酷いけど、それソケットにちゃんと刺さってるのか?
半田付け酷いですよね… ブレッドボード育ちはこんなものなのかな…orz ソケットには刺さっているはずです。 それと、改めて測りなおしてみたところ、電圧は約1.8Vしか無く、電流は約25mAでした。
>>984 >それと、改めて測りなおしてみたところ、電圧は約1.8Vしか無く、電流は約25mAでした。
抵抗がないから?
>>985 いえ…測り方をミスってました。
電流も80mAになりました…。
何かもう死にたくなってきた。
人間ってテンパると知ってる知識も出てこないものなんですね(−_−#)
抵抗の値は? 電流を流しすぎるとマイコンの出力端子の電圧は下がったりするよ。 まあ「電圧は・・・」ってどの電圧を測ってるのかしらないけど
80mAは定格オーバじゃないすか・・・既に焼けてたりして・・・ LEDにかますRは1mAとか2mAぐらいになるようなのを選んでるなぁ。暗いけどw 一から組み直せば?
>>987 抵抗は使ってる抵抗の値ですか?
先ほど書いていた電圧は全てLEDの両端で測ったヤツです。
現在の状況ですが、
入出力を勘違いしていて、改善させたら、LEDもちゃんと光りました。
点滅も試しましたが、問題ありませんでした。
出来れば、サーボのプログラムに入っていきたいと言うところです。
すすむかどうかは自分で判断すれば良いのでは? ここはセミナーとかじゃないんだし
>>988 LEDにかます抵抗は大きくしたほうが良いのですね。
ちなみに、サーボは電流など、どのぐらいが適当でしょうか?
電圧は別で5Vを用意しますが…。
992 :
774ワット発電中さん :2012/08/28(火) 19:06:45.14 ID:6GlbzZHS
誰か次スレを
テンプレのAVR-wikiのリンク先を
>>954 に更新しました
他にテンプレがあればどなたかよろしくお願いします
>>991 サーボの電源ラインは、マイコンとは別個にしろよ。
モーターが瞬間的に大電流食って、電圧降下してマイコンが落ちたりするから。
(一緒にLEDチカチカを動かしとくと、その落ちる状況がわかるってのが、上の方に書いてあったな)
信号線はデジタルのオンオフ信号と考えて直結でよいかと。心配なら100オームくらいの抵抗を直列に。
プルアップを忘れるなよ。
>>993 ,994乙
先ずはパナの9V電池を何とかしよう!
勿体無さすぎる...と思ってしまう俺は貧乏性だろうか?w
まてまてまて餅つけって。 超ドュ級の初心者さん、LEDとモーターを「付け替えるだけ」のつもりでない? トランジスタをスイッチのように使う事は知ってる? ココで私が文章で書くより図解してるサイトをググった方が良いに決まってるが… 無視して逃げられる予感がするので無理やり書いちゃうよ? プラス---豆電球---スイッチ---マイナス で、スイッチ押すと電球が光るよね? このスイッチをマイコン制御するならば… プラス---豆電球---トランジスタ---マイナス という具合になるんだけど、トランジスタって 「ベース」「コレクタ」「エミッタ」の3本足だよね? トランジスタは「1815」というnpn型トランジスタを使うとして、 「豆電球側にコレクタ」「マイナス側にエミッタ」を繋げて、 余った「ベース」をマイコンと繋ぐ。 この回路で、君がLEDにやった要領で ベースに対して1を送ると、コレクタからエミッタへ電気が流れ出して豆電球が光る。 0を送ると電流は止まり豆電球は消灯する。 この回路では豆電球とマイコンは別電源でも動くって事は解かる? 極端な話、上記の回路を本当に作っちゃって、 今君の手元にあるマイコンからLEDに繋がってる線を切ってベースに繋げば実験出来る。 あと、モーターをドライブする場合は、トランジスタでなくFETという部品を使う。 FETはスイッチ専門のトランジスタみたいなもんで大電流が流せると思えば良い。 詳しくはググってね。
サーボだって書いてあるんだから、普通にPWMの信号線だろ。
>>995 電源は別で水素ニッケルを4本用意します。
>>997 LEDの線と付け替えるだけにつもりは無いですが、丁寧な説明のお陰でだいたいは理解できました。
というか、逃げないですよw
自分も中途半端で終わるのは嫌なので。
1000 :
774ワット発電中さん :2012/08/28(火) 23:34:41.48 ID:G88KJqRl
夏休み!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。