_____
/ /|
/ ( ゚∀゚) /.∠フ 個人でも手軽に使える
/ /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
/ __ o/.∠フ || 中心に語るスレッドです。
∠| ̄ ̄凵 ̄ ̄|∠フ || *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
.|| |_____|/||
Atmel AVR 8-Bit RISC
http://www.atmel.com/products/avr/
よっしゃゃゃゃあ。生まれて初めての2get
orz...
6 :
1,2,4:05/02/13 19:25:43 ID:Gmdf3kDx
7 :
1:05/02/13 19:29:20 ID:Gmdf3kDx
大事なこと書き忘れた。
今回からAVR H8 etc.マイコン総合スレから、AVR関連を独立させてみました。
H8やPSoCな方は、専用スレ(無ければ立てる)の活用をおながいします。
その他マイコンスレがどうしても必要と考える方がいらっしゃったら、スレ立てをお願いします。
>>1 乙〜
前スレでAVR Studio4のシミュレータでのPWMの動作が変と書いた者です
現物で動かしてみたところちゃんと動いているようです(当然っちゃ当然か)
もっと完成度の高いシミュレータって無いんですかね?
1乙!!
みんなでAVRを盛り上げていこう。
乙!
Wikiの中の人だけど何にもしてないのにリンクされると
ちょっと恥ずかしいなw
12 :
774ワット発電中さん:05/02/13 23:41:41 ID:wrjMtpUZ
AVR独立記念日じゃ〜
>>11 いえいえ、立ててくれたことだけでもう最大級の功績なんです。
一人のサイトだと限界があるところを、複数の人で盛り上げるきっかけを作ってくれたということで。
夢はavrfreaks.jp?
気分的にはリンク集のTOPに書きたかったのですが、
先人達に敬意を表して勝手ながら末席にさせて頂きました。
>>1 独立おめ。
激しく乙!
ところで、前スレの流れからついでに聞きたいんだが、
「AVR H8 etc.」ではない、
普通のマイコン総合スレってあったほうがいいかなあ?
Z80とか、8051とか、6502とか、
今じゃあんまし盛り上がってないけど、
語りたい香具師はいるだろうし。
PICとかAVRの話題は、
専門性が強かったり、長引きそうならば専門スレで、
ってな感じで。
>>14 そんな、Z8とか8088とか、6809とか、SC/MPとかを扱ったら、単なる「懐かしスレぢゃん」
と思って調べたら、Z8のフラッシュってあるんだな。
>>14 語りたい香具師がいればその人がスレを立てればいいのではないだろうか。
DVDプレーヤーのビデオ信号からクローズドキャプションを
取り出して、液晶モジュールかRS232Cに吐き出すものを作ろうかなと
思ったんですが、ビデオ信号が良くわからない。orz
とりあえず
ttp://www.robson.org/capfaq/technical.html を見て垂直同期のフレーム間の21番目の行を取りだせば良いと
いうのはわかったのと、同期信号分離は専用チップを使えば
楽そうだというのはわかったけど、だれか参考になるような
サイトを知りませんか? picでやってるのは見ましたけど、
picのコードが読めない… orz
(文字放送なんかも似たような仕組みのようです)
今頃
AVR Libc 1.2.2 を見ているのだが、1.2.0で
+ deprecated macros and functions from
. <avr/eeprom.h> (eeprom_rb, eeprom_rw, eeprom_wb),
. <avr/io.h> (cbi, sbi, inb, outb, inw, outw, inp, outp, BV),
. <avr/pgmspace.h> (PRG_RDB).
+ . <avr/timer.h> removed completely.
なんだね。
それはともかく、
* Moved header files:
+ <avr/ina90.h> moved to <compat/ina90.h>
+ <avr/twi.h> moved to <compat/twi.h>
このcompatって何?コンパチブル?
22 :
18:05/02/15 00:37:52 ID:Mq+SzvIy
>>19 ChaNさんのところを見て、いまLM1881(秋月で売ってた)の
データシート見てるところだけど、だいたい様子がわかりました。
どうもありがとう。
>>21 ina90.hはIAR Cとのコンパチビリティのためのものらしいので、コンパチブルなんでしょうね。
でもtwi.hはなんでだろ?philips対策でしょうか?
今WinAVR添付の1.0.4のドキュメントを訳しているんですけど(AVR-Wikiに乗っけてる適当日本語訳)、
結構変わっているようなのでドキドキ。
でも1.2.2を訳しても、互換性はあってもヘッダファイル位置やdepricatelist対象マクロなどが、
ユーザーが多そうなWinAVRと合わなくなるから今は1.0.4でいいかな?
>>23 つっかLibCの中で、単に
#define sbi(sfr, bit) (sfr |= _BV(bit))
って定義しなおしてくれればいいだけの気がするんですが?
なんで削除しちゃうんでしょうね?
>>24 メモリマップドIOでしかアクセスできない領域のレジスタなら、read-modify-writeが複数
命令になるので、その間に立ったビットが消えたりクリアされたビットがまた立ったりする
事態が起こるかもしれないと言うことを心配しているのかなーと思っています。
そういうのは自分で管理してくれ(マクロが欲しければ自分で作成して中身を把握してくれ)と。
でもそんなこといったら複数バイト変数やペアレジスタもだめってことになるよなあ。
avrfreaks.netのgcc forumでも漁ってみます。多分FAQでしょうから。
漁ったけどよくわからなかったな。
GIMSKのビットクリアに使うなとか(これはごもっとも)、ANSI-Cにはないとか(これは他のCコンパイラのPORTB.1=1のスタイルに対するコメント)
割り込まれることがあるよというコメントがありましたが。その他はdeprecatedだよ、って一言だけ。
AVR Libcにwait作るマクロがないのはなんでだろ
>>28 たぶんいろんな制約があって、いろんな解決法があるからでしょうね。
ただぼーっと待つだけならウェイトループでいいし(でも割り込みがあれば狂う)、
間に何かやりたいならタイマ使うだろうし。
待ちたい時間によってもクロックの選択によっても
タイマの他用途への使用状況設定値が大きく変わりますからねえ。
AVR-LibCのドキュメントでしたらインラインアセンブラのサンプルとしてdelayという関数がりますよ。
>>22 もう解ってると思うけど
>>19>>20はARIBの規格だからCCとは別物だよ。CCは32bit/lineね。
同じLine21でも2つの規格があってVideoDecは両方判別しなくちゃいけないから大変なのよ。
>>30 うん。ありがとう。
pdfの山でどれがそうだかわかんないけどEIA608だとか、EIA708、
ARIB B37とかいう規格はみつけました。
SAA5252とか、MC144144とか、Zilogからはいくつもデコーダーの
専用チップが出ていて、それのデータシートにも説明が載ってるんで
読んでまつ。
ウォッチドッグタイマーを普通の割り込みタイマーとして動かすのに必要な条件って
MCUSR ←0b---0--- // WDRFクリア
WDTCSR←0b00011000 // WDCE、WDE
WDTCSR←0b01000000 // 割り込み有効、プリスケーラ無し
以外に何かありますか?
夕方まで動かせていたのに…どこいじっちゃったんだろう…il||li ○| ̄|_
33 :
774ワット発電中さん:05/02/15 23:32:29 ID:6JO0sPbD
>28
AvrLibCのVer1.2.2 にはWaitマクロがあるよ
そのかわり outpが 無いけど ワラ
avrgccで自分のライブラリを分けておきたいんですけど、
-Project
main.c
Makefile
-MyLibrary
lib.h
lib.c
って場合、lib.cがコンパイルされないため、リンクで失敗してしまいます。
Makefileを色々いじってみたんですが、どうもうまくいかない。
どなたか御助け
>>35 Makefileをどういじったか書きましょうよ。
>>33 おお、group__avr__delay.htmlだね!
タイマを使うdelayですね。空ループ版も欲しかったな。
>>35 lib.cをパス付きで指定したらできるよ。相対・絶対どちらもOK。
たとえば同じディレクトリにProject、MyLibraryディレクトリがあるなら
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c ..\MyLibrary\lcd.c
# List any extra directories to look for include files here.
# Each directory must be seperated by a space.
EXTRAINCDIRS = ..\MyLibrary
>>34 AVRはメモリマップドI/Oです。汎用レジスタもI/Oレジスタもメモリアクセス用命令でアクセスできます。
ただしポート0-$1F(メモリアドレス$20-$3F)への、アドレス値が定数のアクセスは
最適化レベルによっては勝手に小さくて高速なin/out命令に置き換えてくれます。
>>38 あーすまん、lcd→libに置き換えてくれ
>>38 ありがとうございます!うまくいきました
SRCもパスで指定してやらなきゃいけなかったんですね。
おかげさまでLCDが動かせそうです〜。ほんと助かりました。
>>32 2番目と3番目の命令の間に何か挟まっていませんか?他の割り込みとか。
どうやって「普通の割り込みタイマーとして」動かしていますか?
WDTではリセットされてしまうわけですが。
リセット→WDT設定→初期設定→何かの処理→WDTが掛かるのを待つ、って流れですか?
もしそうなら、リセットでは単にリセットベクタ(0番地)に飛ぶだけでなく、各種IOレジスタも
初期値に戻ることは考慮していますか?(WDTリセット前にどっかのIOにセットした内容を利用しようとしているとか)
>>42 レスありがとう
リセットは無効(WDE=0)にして割り込みベクタのWDTを利用(WDIE=1)しています
サンプルコードはこんな感じなのですが
.text
.org 0x0000
INTERRUPT:
rjmp RESET // リセット
reti // INT0
reti // INT1
reti // PCINT0
reti // PCINT1
reti // PCINT2
rjmp INT_WDT // WDT
.org 0x0034
RESET:
cli
wdr
lds R16, MCUSR // ウォッチドッグタイマー設定
andi R16, 0b11110111
sts MCUSR, R16
ldi R16, 0b00011000
sts WDTCSR, R16
ldi R16, 0b01000000 // 割り込み有効、リセット無効、プリスケーラ無し
sts WDTCSR, R16
sei
MAIN:
nop
rjmp MAIN
INT_WDT:
nop
reti
ウォッチドッグタイマーのカウント完了でINT_WDTへジャンプする…はずなのですが…
この場合他のレジスタが勝手に変わることはないはず…
>>43 え?WDT専用のリセットベクタなんてあったっけ?
・・データシート捜しまくり・・・・・
あー、Mega48/88/168かぁ・・・デバイス名書いてよぉ。WDTCSRってレジスタ名で気づくべきだったけど。
WDONヒューズビットどうなってる?デフォルトで非プログラムでOKのハズではあるが念のため。
46 :
32=43:05/02/16 21:38:29 ID:dFGlDXqG
>>44 スマン…ATmega48です il||li ○| ̄|_
WDTONは1=通常動作です
シミュレータの方は…特にいじった記憶はないけどどっかに設定できるところあるのかな…
47 :
32=43:05/02/16 22:24:57 ID:dFGlDXqG
Σ(゚Д゚)
サンプルコードを実物で試したらウォッチドッグタイマー動くし…il||li ○| ̄|_
シミュレータの問題かよ!この前まで動いていたような気がしたのは幻想だったのか…
どうやってデバッグしよう…タイマーはPWMで全部使い切っちゃっているし…il||li ○| ̄|_
48 :
774ワット発電中さん:05/02/16 23:05:30 ID:rrYd8jea
Digi-key , ATMega88-20PIどころか、ATMEGA88V-10PIの方まで
品切れになりそうなんですが(残り67個)どうしてくれる?
49 :
774ワット発電中さん:05/02/16 23:27:50 ID:LKKmwJ6U
日本語マニュアルを読む限り、ヒューズで設定した場合は割り込みベクタへ飛ばずにシステムリセット。
ヒューズで設定せずにレジスタで設定した場合、設定に従って
割り込みのみ・システムリセットのみ・割り込み後にシステムリセットを選べる。
どちらでも変更可能なのは、リセット時間だけ。最大8秒だっけ。
atmelのアプリケーションノートのenhanced wdrを参考にすればいいかと。
Cだけど、mga48と同じ世代コアのtiny13のコードが書いてるんで、そのまま利用可能。
アトメルにAT-MEGA406ってチップ出てますね。有志の日本語マニュアルもでてる。
これって明らかにパソコン用バッテリパックの制御マイコンなわけだが、
なかなか高機能で興味深々。
実物見た人とかいますか?まだでてないのかな・・・digikeyにはなかったけど。
うーーむ、とうとう、その他のマイコンスレッドはなくなったのね。
EZ-USBは、居場所なしか... 多分、スレッド立てても、すぐに落ちそうだし。
ここの人は、EZ-USB/8051なんて、使ってないですか?
ちょっと、聞きたいのだけれど、
sdcc --model-large
は、複雑な変数の初期化にバグが有ると言う報告をネットで発見したのだけれど、
実際、自分のところでも、うまく行かないのです。
このバグ?の行方はどうなったのでしょうか? 最新版でも直ってなさそうなんだけど。
% sdcc --version
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.4.8 #941 (Jan 26 2005) (UNIX)
>>51 >EZ-USB/8051なんて、使ってないですか?
ノ
初めてのUSBデバイス作成で6in1の複合デバイスとか無茶なことをやりますた
タイマ2を動かせなくてタイマ1に逃げた記憶が…orz
>SDCC
アセンブラでしか使ったこと無いのでわからんです
EZ-USBスレって立てて需要あるかな…?
>>52 AVR主体だけどマイコン統合スレってことで、ここでいいんじゃないの?
AVRやってる人は、それ以外もやってること多いみたいだし。
>>52 DAT落ちするかもしれんがその他マイコンスレは
あったほうが他の専用スレに迷惑かけなくてよいんじゃないかなと
>>50 バッテリパックごときに勿体ないなぁ。
それより、tiny25,45,85の方が興味ある。
57 :
1:05/02/17 06:56:05 ID:BKQeGv+r
>>52 >>7ということで、スレ立てをお願いします。
今回のスレおかわりの時、AVRとH8の人しかいなくて総合スレの需要が
発生しなかったので総合スレが立っていません。需要が発生した時点で
欲しい人が立てておくのがよいと思います。よろしこ。
58 :
14:05/02/17 18:24:51 ID:H+Uj0QGP
AVR Studio4でWinAVRで生成したファイルのソースコードデバッグって出来ます?
-D付きでアセンブルしたELFファイルを読み込ませるとAVR Studioが強制終了しちゃうんですが…
>>60 アセンブラですかCですか?
Cならとりあえずできますけど・・・ -Dってなんだっけ?
>>61 アセンブラです
avr-as -D -mmcu=atmega48 -ohoge.elf hoge.s
みたいにアセンブルしています。-Dはデバッグメッセージを付加するオプションです
>>62 avr-asを裸で使ったことないのでよくわかんないんだけど、elfってリンクなしでavr-asからダイレクトにはき出せるの?
makeとCプリプロセッサを使う流れなら*.S→(avr-as)→*.o→(link)→*.elf→(objcopy)→*.cofで、
そのcofをAVRStudioで読み込み、だと思うのだけど。
WinAVRのニューばーじょん出たね。
ループWaitの関数も付いてた。ヽ(´▽`)丿
>>64 いよいよsbiが使えなくなったわけだが、sbiが使える事がわかっている場合には(昔のチップ等)、回避策として
file:///C:/WinAVR/doc/avr-libc/avr-libc-user-manual/FAQ.html#faq_asmconst
に
asm volatile("sbi %0, 0x07" : "I" (_SFR_IO_ADDR(PORTB)):);
ってな事が書いてあるんだが、↑このコード通る?
asm volatile("sbi 0x18,0x07;"); は、ちゃんと通るんだけど、これじゃ何の為のCだか(w
>>64 出たのかー
AVR-LibCのドキュメント訳やり直しだ〜(^^)←でもうれしい
>>65 いや、C言語のsbi関数(マクロ)が使えないだけで、機械語命令としてのsbiは問題なく使えるんでは?
その例はコロンの位置が間違っているね。それじゃ出力オペランドにPORTBアドレス(定数)を割り当てている。
asm volatile ("sbi %0, 7" :: "I" (_SFR_IO_ADDR(PORTB)));
ならOK.
>>64 バレンタインバージョン、キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
早速落としてみる。
普通に PORTB |= _BV(bit); と書けば sbi命令が生成されるんでないの。
え、そういうことではないって?
>>68 PORTB |= _BV(bit); と マシン語のsbi 命令は微妙に違うからなぁ。
(sbiは、PICのBCF命令とは違って、他のビットに影響を及ぼさない事が保証されている。、、、よね?)
>>68 sbi命令が到達可能なIOレジスタ、たとえばPORTBに対して、PORTB |= _BV(bit); として、
これを適切な最適化オプションをつけて行えばマシン語としてのsbi命令でやってくれる。
ただしbitは定数しか受け入れない。当たり前だけどbit部分に変数を入れたらsbi命令は使われない。
でも最適化次第(デフォルトはメモリマップドIO手法)なので、確実にsbiにしたければインラインアセンブラで。
71 :
俺様様しおり:05/02/18 18:42:25 ID:6sKKIBDm
studio4.11 build401でアセンブリ言語でコードを書いて
buildしようとすると
cannot find include file: C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\2313def.inc
というエラーが出てビルドできません
インクルードファイルが見つからないってことだと思うんですが、
パスは合ってる(2313def.incのプロパティから場所を貼りつけた)はずなんです
studio4.10までは特に意識せずにインクルードできていたのですが・・・
試しにstudio4.11 build401のAssembler Optionsで
AssemblerのVersionをデフォルトの2から1に変えて
インクルードファイルのパスもそれに伴って変えてから
buildしてみたりもしましたがやはり同様のエラーが出ます
なにか指定の仕方で変更等あったのでしょうか?
思い当たること、ご存知のことなどありましたら
どんなことでもよいのでご教示下さい
よろしくお願い致します
73 :
俺様様しおり:05/02/18 19:42:09 ID:WYwldBj3
>>72 .include "2313def.inc"
でいいんじゃないすか?
>>72 ソースと同じディレクトリにもってきて
>>73のようにしたら?
c言語と違ってそうたくさんのincludeファイルが要る訳じゃないし。
75 :
俺様様しおり:05/02/18 20:19:57 ID:WYwldBj3
>>74 いや、別にソースがどのディレクトリにあっても、 .include "2313def.inc"
って書いておけば大丈夫っす。
たとえば C:\temp\test\test.asm に
.include "2313def.inc"
nop
っていうソースを置いてビルドすれば、(2313def.incはコピーしてこなくても)
C:\temp\test\test.asm(1): Including file 'C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\2313def.inc'
となります。
76 :
72:05/02/18 20:23:59 ID:2/kKkTKb
>>73 さっそくやってみました!
「不正なエラー」とかで強制終了
studio自体が落ちました orz
ちなみに98SE、XPSP2のどちらでもstudioが落ちました
つらいです
ただ、.hex 、 .obj 、 .map 、 .eep 、 .bat 、 .tmpといった
アウトプットが出てきました
>>72の段階では何も吐き出されていなかったので
1歩進んだのかも
レスありがとうございました
でもなんでstudioが落ちるんだろう?
>>76 フォルダ名称に漢字とか半角かなとかスペースとかのアレか?
>>75 avr toolsが子ディレクトリを検索対象にしてるってことかな?
79 :
72:05/02/18 23:59:29 ID:clDNANuo
>>77 うわっ まさにそれでした
漢字ではなかったですが
日本語名のフォルダの中にソース置いてました
studio4.10ではフォルダ名称に普通に日本語を使えてたので
ウッカリしてました
ホントにどうしようかと途方にくれていました
レスを下さった皆様方ありがとうございました
関数コールした瞬間に関係ない変数の値が書き換わっちゃって
丸一日悩んでヒープとスタックの干渉に気付いたわ。チカレタ(´・ω・`)
81 :
774ワット発電中さん:05/02/22 00:44:09 ID:NwU8cSpi
板違いで流れてしまったので、コチラで質問させてください。
秋月のH8-3052USBセットでCDのH8\HTML\usb.htmには今回のサンプルでは
「割り込み毎に送信しているので、最大64Kbyte/secしか送れません。」とあり、
付属のVB6のソースをいじり、毎秒何回の送受信が出来るか試しています。 (送信とはマイコン→PC?)
usbstart 4096,0で試しています。(0のときが最も早いので)
PCからのは用意した2つの配列をランダムな順序で送り、戻ってきたデータと比較します。
比較結果は毎回一致するのでデータの送受信はされているようです。
ここで、
Do While get_outbufflen <> 0: Doevents: Loop
write_buff w(0),64
Do While get_inbufflen = 0: Doevents: Loop
write_buff r(0),64
の流れで送受信をしても、毎秒150回程度しか通信できませんでした。
また、マイコン→PCのみの速度テストは出来なかったので、
PC→マイコンの速度テストをすると
Do While get_outbufflen <> 0: Doevents: Loop
write_buff w(0),64
では毎秒840回程度の通信となり、そこそこの結果となりました。
マイコン→PCを毎秒500回程度は行いたいのですが、(PC→マイコンはどれくらいでも良い)
どなたか似たようなことをしたことある方いらっしゃいませんか?
H8に詳しい人はもうココ覗いていないんじゃないかと思われ。
前スレでavrdude/usip(Freebsd)で、共立のTiny12に書きこめないと
言ったヤシです。Tiny12は庭に埋めようかと思いました。
でも、もしかするとRSTDISBLになってのかと思ったんですが、
高電圧シリアルの道具がないんで、AT90S1200で作って
チップイレースとヒューズ書き込みをしてみたら、
普通に使えるようになりました。
アトメルか共立のSTK500を買わせようとする陰謀でしょうか?
86 :
81:05/02/23 01:35:01 ID:bT/+LN8u
申し訳ないっす。以前の板と見間違えてました。
avr-wikiにAtmega88チップがDigi-keyで@439円 とか書いてあるから、
やっと入荷したのかと思って探したけど、やっぱり在庫無いじゃないかよー
89 :
774ワット発電中さん:05/02/23 13:11:17 ID:ta1MLCjN
チップごとの、使えるインストラクションと使えないインストラクションが
表になってるとこないですか?
>>90 自己プログラミングの有無、ROM容量、megaか否か、で大体決まる。
>>90 AVR-LibCのusing_tools.htmlにあるarchitecture分類がそれに該当しそうだ。
せっかくですからそういう表を作りませんか?
93 :
90:05/02/23 19:38:01 ID:FAbJniD9
>>92 そうですね。
探しても、まとめてあるのが見あたらないので、あるといいかも。
tavrasmのソースにある devices.hh にアセンブル時の
エラーチェックに使われるその手のものがあるのですが、
新しいチップが載ってませんでした。
その中でいちばん制限のある at90s1200 では、使えない命令が
S_JMP |S_CALL |S_MUL | S_ADIW |S_CALL |S_ICALL|
S_IJMP |S_LD |S_ST | S_LDS |S_LPM |S_PUSH |
S_POP |S_SBIW |S_LDD | S_STD |S_STS |S_EXTENDED
となってましたんで、これで他のチップで増える命令が
分類(というか、そのものかな?)できるのかと思いました。
(なぜかS_CALLが2回ある…)
>>93 AVR-Wikiの 勝手に練習(非公式)ページ〜命令一覧に、AVRStudioのマニュアルから
AWKで(^^;)抽出したデバイスとその命令の一覧をおいときました。
うまく処理してみて
>>94 やってみた。こんな感じでいいかな?AVR-Wikiの同じ所にうpしてあります。
>>97 良いのだけど、DoxygenでDocがあるのにコメントがDoxygen形式でないのは何でなのか?
使うのならソース嫁!と言うことなのかな・・orz
99 :
774ワット発電中さん:05/02/26 18:39:22 ID:ZWV37Ht2
今頃WinAVRを使ってみた。
Atmega48をターゲットとして、IOレジスタをいじると、
TIMSK2 |= 0x01;
が
+00000039: 91800070 LDS R24,0x0070 Load direct from data space
+0000003B: 6081 ORI R24,0x01 Logical OR with immediate
+0000003C: 93800070 STS 0x0070,R24 Store direct to data space
とコンパイルされているのは、まぁ当たり前だが
DDRB |= 0x01;
が
+00000039: 9A20 SBI 0x04,0 Set bit in I/O register
になっているのは、ちょっと感心した。
>>99 でも、その最適化って02以上じゃなかったっけ?ちょっと微妙なんだよね。
>>100 まあたいがいの人は最適化オプション-Osをつけてるでしょ。
しかしやっぱりsbi(),cbi()は自前でマクロ作ってでも使いたいな。
1命令ではないかもしれないことだけ意識していれば問題ないし。
tiny13用にavr910(潮時かなあ)のファームいじろうと思うんですが、
デバイスコードは、とりあえず0x57あたりを使っとくのが妥当ですかね?
Tiny系のavr910コード
tn10:0x51 tn11:0x50 tn12:0x55 tn15:0x56
tn19:0x58 tn26:0x5e tn28:0x5c tn2313:0x23(STK500コード/avrdude)
試しにいくつか試してみると…
sbi(PORTD,1);
13e: 91 9a sbi 0x12, 1
sbi(TIMSK,1);
140: 87 b7 in r24, 0x37
142: 82 60 ori r24, 0x02
144: 87 bf out 0x37, r24
sbi(PORTF,1);
146: 80 91 62 00 lds r24, 0x0062
14a: 82 60 ori r24, 0x02
14c: 80 93 62 00 sts 0x0062, r24
あらら〜。思ったようにはいかないもんですね。
アセンブラ上がりの漏れもsbi/cbiが消えるのは寂しいけど。
それにしてもavrgccは無用な混乱が多い気がする。
俺は
sbi(PORTB,0);の代わりに
PORTB |= (1<<PB0);
cbi(PORTB,0);の代わりに
PORTB &= ~(1<<PB0); ってやってた。
>>103 これはしょうがないでしょう。sbi命令はポートアドレス部が5bitしかないので、
ポートアドレス0x37(メモリアドレス0x57)のTIMSKについては
in/out命令(ポートアドレスに6bit)は使えても、sbi命令は使えない。
>>103 しかし拡張領域は5ワードになっちゃうんだね。
バンクアドレスなPICが羨ましかったりして(w
107 :
774ワット発電中さん:05/02/28 15:27:31 ID:ap353Ogg
ガイシュツかも知れないですが、最近のチップでは
PINx = _BV(bit);
とやると、PORTxの対応するビットが反転するようになったみたいです。
110 :
774ワット発電中さん:05/02/28 18:45:09 ID:iLZGbakX
>>109 最近のチップって、MegaとかTinyの事?
>>107 うひゃー、これは大きいですね。バグフィックス待ち〜
>>109 うぉ、ほんとだ書いてある。mega8にはないけどmega169には書かれている
>ピンの出力交互切り替え
>PINxnへの論理1書き込みはDDRxnの値に拘らず、PORTxnの値を反転切り替えします。SBI命令がポート内の1ビットを
>反転切り替えするのに使用できることに注目してください。
112 :
774ワット発電中さん:05/02/28 19:53:21 ID:7JZ/wtiI
>>107 コメント:確認できました。仕様ではpregの宣言時にvolatileをつけると下位バイトを先にするコード最適化を切る
仕様になっているはずなのですが、volatileつけても下位を先に書き込むようです。
2:abc.c **** void out16test(volatile uint16_t *preg, uint16_t dat)
3:abc.c **** { *preg = dat; }
60 .LM1:
61 /* prologue: frame size=0 */
62 /* prologue end (size=0) */
63 0000 F92F mov r31,r25
64 0002 E82F mov r30,r24
65 0004 6083 st Z,r22<==下位が先になっている
66 0006 7183 std Z+1,r23
67 /* epilogue: frame size=0 */
68 0008 0895 ret
69 /* epilogue end (size=1) */
70 /* function out16test size 5 (4) */
113 :
774ワット発電中さん:05/03/01 09:36:49 ID:yx1nAylj
#include <avr/io.h>
int main( void )
{
unsigned int tmr;
tmr = 0x1234;
TCNT1=tmr;
}
をAtmega48でコンパイルすると
---- test.c ---------------------------------------------------------------------------------------
2: int main( void )
3: {
+00000035: EFCF SER R28 Set Register
+00000036: E0D2 LDI R29,0x02 Load immediate
+00000037: BFDE OUT 0x3E,R29 Out to I/O location
+00000038: BFCD OUT 0x3D,R28 Out to I/O location
6: TCNT1=tmr;
+00000039: E384 LDI R24,0x34 Load immediate
+0000003A: E192 LDI R25,0x12 Load immediate
+0000003B: 93900085 STS 0x0085,R25 Store direct to data space
+0000003D: 93800084 STS 0x0084,R24 Store direct to data space
8: }
となって、ちゃんと上位から書き込まれているんだが?
114 :
774ワット発電中さん:05/03/01 09:48:01 ID:yx1nAylj
あ、失敬。
「アドレスを定数でアクセスする場合は問題ありません。」
って書いてありますね。すまんそ。
115 :
774ワット発電中さん:05/03/02 09:11:04 ID:XLVDDXJ/
あ〜Digi-Keyですが、ついにATMega88のDIP品は、20MHz品も10MHz品も在庫が0になりました。
やっぱ根性でTQPFを使うしかないのかなー
ADCチャンネルを2本も削ってまでDIP品を使う理由などなかろ。
男は黙ってTQFPだ。
MLFに手を出すツワモノはまだいないようだが(w
>>116 最近はAVRにもMLF品がでてるのかdクス
118 :
774ワット発電中さん:05/03/02 13:39:40 ID:c8+Q2P/l
>MLF用のユニバーサルボードってありますか?
それじゃぁ、MLFの意味が無いような気がする。
専用基板を起こすか、裏返してウレタン線で配線かな?
7セグLEDを偶数個ダイナミック点灯で使うときに、
LEDを選択するポートをひとつの7セグに対しひとつ使うのが普通みたいだけど、
ひとつのポートでHiの時とLoの時とで違うLEDを選択するようにする場合に
場所を食わない(74HC04とかだと空きピン処理まですると場所くうので)
シンプルな回路があったら教えてくだちい
>>120 よくわからないけど、
LEDを選択するポート=LEDドライバ用トランジスタ駆動ポート?
HiとLoで違うLED(unit?)を選択=1つのポートで2つのunitを選択?
ということなら、片方は普通にトランジスタにつないで、
もう片方はトランジスタを2つかませて論理反転すればいいんでない?
たとえば
PD0→PNP-Tr→LEDs
PD0→NPN-Tr→PNP-Tr→LEDs
PD0→PNP-Tr→LEDsA
PD0→NPN-Tr→LEDsB
だよ。
PD0がLoのときはLEDsAが点灯し、PD0がHiのときはLEDsBが点灯する。
当然だがカソードコモンとアノードコモンを使い分けること。
7セグは奇数個でも良い。ある瞬間に点かないLEDがあるってだけの話。
>>120 ポート2本(LEDユニット4つ)までは3to8デコーダと同等のピン数なので
けっこういけるかもね。
124 :
774ワット発電中さん:05/03/04 09:53:30 ID:u2YHnfQa
>>122 それやったら個々のセグメント点灯を制御するピンはどう接続するの?
そのままつないでカソードコモンとアノードコモンで論理をひっくり返せばいいのかな?
でもこれだと2連・3連の7segLEDが使えないー
125 :
120:05/03/04 12:19:26 ID:voDX0wNC
どうもありがとう。
アノードコモンしかないので、まずは121さんので試してみます。
論理が逆になるほうにNPN入れて、
PD0→抵抗→NPNのベース
VCC→抵抗→(PNPのベース)→NPNのコレクタ
NPNのエミッタ→GND
126 :
774ワット発電中さん:05/03/04 13:05:17 ID:u2YHnfQa
>>125 アノードコモンなら、両方PNPにしてこういうのでどうだろ?
Vcc
|
PD0────K Vcc
| |
├──┬──K
| │ │
LEDs R1 LEDs
| │ │
GND GND GND
127 :
774ワット発電中さん:05/03/04 13:07:28 ID:u2YHnfQa
>>126訂正
Vcc
|
PD0────K Vcc
| |
├──┬──K
| │ │
LEDs R1 LEDs
| │ │
PB0-7 GND PB0-7
128 :
774ワット発電中さん:05/03/04 13:11:16 ID:u2YHnfQa
>>125 ベース抵抗も忘れた・・・(_ _)/
Vcc
|
PD0─R1──K Vcc
| |
├──┬R3─K
| │ │
LEDs R2 LEDs
| │ │
PB0-7 GND PB0-7
>>119 MLFをウレタン線で実装してた人いたな・・・。
正直、折れはマネできんと思った・・・orz
130 :
774ワット発電中さん:05/03/05 10:19:35 ID:4aCo/bTo
>>122,
>>124 これだと桁切り替え時の消灯が難しいね。
切り替え時はDDRD=0にするって手はあるが。
>128
その回路、左の TR が ON しても右の TR が OFF にならない。
左の LEDs に電流制限抵抗いれればいいのかな。
でもこれって左右の明るさ揃うの?
132 :
774ワット発電中さん:05/03/05 11:11:56 ID:ST3avsdn
>>131 左のTrがONならR2/R3接続部の電位はほぼVccにならないかな?
R2=470Ω、R1=1.5kΩ,R3=1kΩ程度で桶?
133 :
774ワット発電中さん:05/03/05 11:13:19 ID:ST3avsdn
>132
LEDs 入ってるから、その両端は上がっても 2V 位じゃないの?
135 :
774ワット発電中さん:05/03/05 18:53:25 ID:4aCo/bTo
>>134 そこは実際にはLED+制限抵抗だろうし、
左TrのVceはベース抵抗が適切ならほぼ0でしょう。
ISP用のケーブルってどうしてますか?
漏れは秋月の長いピンヘッダのソケットを切ったのに、
フラットケーブルかLANケーブルの切れっぱしを
ハンダづけしてますが、よくハンダのとこが取れてしまいます。
どっか通販で、できあいの高くないISPケーブルか、
うまく線がとまるソケットがあると良いのですが。
使ってるのは2×3の6ピンです。
>>136 半田付けしたところをエポキシで充填してから、
熱収縮チューブで覆う。
まあ、金属疲労を起こさないように固めてしまえるなら
なんでも使えると思うけど。
>136
6ピンヘッダを使う。
俺は逆挿し防止で10ピンだな。
圧着のも買えるけど、古PCマザー用のジャンクケーブル使ってる。
俺は逆挿しが怖いので
JST-EH6極1列で使ってる。
このコネクタは小さい上に2.54mmピッチと便利
なのでほかの用途にも重宝する。
6ピンISPを逆差ししたくらいで壊れるようなライタは無いと思うが。
EHコネクタは小さすぎて抜くときハウジングをつまめないので、よく切れる(w
>142
頻繁に抜きさしするところにはカエシをカッターで切り取って
使ってます。そこまでやるならAMPのダイナミック使えとか言われそうですが。
ちょっとおしえてください。
秋月互換のISPプログラマを作ろうとしているのですけど、
LED2個つくようですが、あれどこについているのでしょうか?
1つはコミュニケーションチェック目的でPORTD-bit3らしいことは
わかりましたが、もう1つ(通信中表示?)がわかりません。
SCKあたりにつなげればいいのでしょうか?
>>145 でした・・・もう1つは単なる電源パイロットランプだったのか。
STK200のターゲット上につけるLEDと混同していました。
147 :
774ワット発電中さん:05/03/06 20:02:22 ID:6p56lGoB
>>147 AVR-Libc1.2.3マニュアルのgroup__avr__eeprom.htmlに書いてあるよ。
*このライブラリはEEPROM I/Oポートが異なる位置にある以下のデバイスでは動作しません。
AT90CAN128
ATmega48
ATmega88
ATmega165
ATmega168
ATmega169
ATmega325
ATmega3250
ATmega645
ATmega6450
ライブラリ関数でI/Oアドレスが固定的にコーディングされているから。
ATMEGA48/88/168/169でアドレスが変わってボロが出た。
150 :
774ワット発電中さん:05/03/07 10:06:39 ID:pgzP0WWI
>>147 そのMLの文はAVR-LibCの問題とは関係ないみたいね。
mega48で、EEAR(16bit)とEEARH(8bit)が定義されていないというバグがあるということですね。
mega48はEEPROM 256bytesなのでEEARHは常にゼロですけど、mega88/168と共通の部分が
あるためか?EEARHが存在していて、0を設定する必要があるようです。
151 :
774ワット発電中さん:05/03/07 14:22:14 ID:RM/ewC8u
>>148 Atmega48でEEPROM使うにはどうすりゃいいんでしょかね?
って自前で書けばいいのか
ふと、ISPコネクタにデバッグ用の液晶モジュールつけたら
便利かなと思ったのでした。でもって、VCC,GNDはそのまま液晶に供給、
MOSI,MISO,SCKのどれかひとつをE(ストローブ)にして、もうひとつを
シフトレジスタ(4ビットモードなら74HC164とか)に
使えばいいじゃんと思ったんですが、それだとビジーチェックができません。
(シフトレジスタはデバッグ液晶ボードにつける)
でもって、質問は
1)読み書き両方できるシフトレジスタで入手しやすく、余計に
ISPピンを使わない(読み用に1つはOK)で済むものはあるのか?
2)シリアルでダラダラやることになるんで、ビジーチェックなんて
そもそも必要ない?
です。探すと誰か、すでにやってそうなんだけど見つからなかった…
あ、シフトレジスタに2本必要なんで、空きピンないですね。
154 :
774ワット発電中さん:05/03/07 19:46:32 ID:/n84CWU7
155 :
774ワット発電中さん:05/03/07 19:51:55 ID:pgzP0WWI
>>152 自分がやるならbusyチェックなし(待ち時間決めうち)でやりそう。
これなら3線、164×1個で充分だし。
156 :
774ワット発電中さん:05/03/07 19:54:07 ID:pgzP0WWI
シフトレジスタに入る前のdata線の信号も使えば、164が1つで8bitインタフェースでできるかな?
AVRをLCD側に乗せる
158 :
774ワット発電中さん:05/03/07 20:05:50 ID:pgzP0WWI
>>157 もったいないおばけが・・・
でもそれなら2線でステータス読み込みも可能だな。
>>157 あ、そうでした。液晶のめんどい部分はそっちに任しちゃって、
単にシリアルにして送れば良くなりますもんね。そうします。
161 :
中の人です:05/03/09 12:33:32 ID:xm/dOkvM
>>160 ありがとう。ブランチは時間があったらそこを参考に書き直してみます。
162 :
774ワット発電中さん:05/03/09 12:49:03 ID:xm/dOkvM
>>159 できたら是非晒してくれ。LCDコマンドは9 or 10bitなんで、これどうにか8bitに納めてくれるとありがたいな。
どこかの文字をコントロールコード扱いにして、コントロールコードに続く1バイトをコマンド扱いに
すれば8bitで扱える。
>>165 それだけ大量のタイマを16MHzで捌ききれるのかが見ものだね。
大量のタイマを持ってるとタイーホ
digi-keyのふしぎ
attinyで検索→20-DIPで絞りこみ→tiny2313が出てこない
attinyで検索→8-DIPで絞りこみ→tiny13が出てこない
それが、絞りこまないで全部表示させるか
"attiny13"、"attiny2313"で検索すると出てくるんです(w
>>166 ハードウェア任せ(フリーランとかPWM)なら問題ないような
>>172 受信側なんか不思議な感じだな?
AN910みたいにRS232CのTDを電源として使うわけでもないのに
なんで受信側Trを送信側にからめなければ行けないのだろうか?
論理反転しなくていいなら単にDSUB-pin3〜制限抵抗〜MOSIで
心配ならMOSI側ダイオードクランプってとこでいいんじゃないかと思ってしまう。
この回路だと入力が1(-15V)でC6→PCのRS232Cに結構な電流が流れるような
気がするんですけど。AN910なら1μFだからまだいいけどこれは10uFですし。
入力が1(-12V)だと初期C6充電電圧-D2の電圧降下で、PC側のインピーダンスに従って
電圧落ちていき、すぐにはLoにならない気がするし、時間が経ちすぎると制限抵抗なしに
C6に負電圧かかるような気がする。AVRは10k経由ですからなんとか大丈夫かもしれないけど
入力が0(+12V)だと10k経由で直結と同等だと思うし。
何か見落としてるのかな?
>>172,
>>173 このRS232CポートのPIN配置はPCとストーレートケーブルで接続するもの。
よってDSUBの2PINはAVRの送信出力で,DSUBの3PINがAVRの受信となる。
C6は通常マイナスに充電しておき送信の時に±に振幅させるため。
特殊なのはAVRから送信する時はスタートビットを0とする通常の論理だが
受信はスタートビットを1とする逆の論理になっていること。
受信に負の電圧がかかるが10K抵抗で許容範囲内?
でもあまり良い回路ではないと思う・・・
175 :
774ワット発電中さん:05/03/13 11:21:25 ID:tbcrgTyI
176 :
774ワット発電中さん:05/03/13 11:40:04 ID:tbcrgTyI
ところで、ATTiny25/45/85って何処かで売ってるの?
>>174 あそうか、何かの回路と勘違いしていた。AN910でも送信側で負電圧を作るものでしたね。
AN910の受信側論理反転Trを抜いたようなものですね。
負電圧の再現にこだわらなければ
>>175の方が良いように私も思いました。
もちろん一番良いのは232Cレベル変換ICですけど。
今ならUSBシリアルICをレベル変換せずAVRに直結が一番いいかな?
>>175 74HC04のやつは使ったことないです。AN910は大丈夫です。
わざわざ8ピンAVRを使うときに、16ピンのMAX232系のやつとか、
HC04とか使うとそっちのほうが2倍くらいデカかったりするんで
試してみました。
Dallas DS275ってチップを使ってみたいんですけど、digi-keyでも
非在庫品で、なんかいいのないかな状態です。
不器用でDIPじゃないとハンダできないんで、2つ入りというか
1/4で6ピンの74HC04でもあるといいんですけど
AVRのポートに直結汁
IgorPLUG USB を mega48/88 で動かすパッチかソースか知りませんか。
UART とかが違うので本家のは mega8 でしか動いてくれないです。
AVR309.pdf には 48/88/168 使えって書いてあるのに ...。
181 :
774ワット発電中さん:05/03/15 08:43:15 ID:Nya7aWHj
>>180 アセンブルができないってこと?
添付のusb90s23x3.hexを書き込んでも動かないってこと?
アセンブルできるけど動かないってこと?
前者と2番目ならUSR→UCSRA、UCR→UCSRB、UBRR→UBRRL(UBRRH=0、UCSRC=0も忘れずに)だと思うけど、
それならmega8でも動かないはずだよなあ・・・
クロックはあっています?勝手に内蔵RC発振が動いているとか?
182 :
180:05/03/15 12:08:12 ID:z9Cm0Wtd
48/88 で動かすにはソースレベルで書き換えが必要で、
分かってるだけでも
SBI UCSRB,RXCIE ; USART受信割り込み再許可
になってる奴を
LDS TMP0,UCSR0B ; TMP0(R20) にロードして、
SBR TMP0,1<<RXCIE0 ; ビットセットして、
STS UCSR0B,TMP0 ; 書きこみ。
みたいにしないといけないです。えーと、これでいいのかな。
実行クロック数指定のところがあったりして置き換えるだけでも
神経使うんで、パッチかソースが無いかなと。
シリアルポートに74HC04でなくて、40107(Dual NAND DIP-8)を
使ってみた人いますか?
184 :
774ワット発電中さん:05/03/15 13:31:28 ID:Nya7aWHj
>>182 ああそうかぁ。アセンブラだとSBIとIN/OUT関係が変わってくるのねえ。
エラーが出たところを片っ端からマクロへの置換でも難しい?
185 :
180:05/03/15 18:36:37 ID:z9Cm0Wtd
>184
だ、だめかも。0x60 〜 0xff の SRAM への 8bit ポインタ使いまくり。
0x100〜 に移して YH = 1 にして、ごにょごにょって、死にそ ...。
>>185 もうプログラムの流れを読み取って書き直した方が良いね。
よかったらavrgccで書き直さない?
>>186 それだと最適化によってコード変わるから流石に辛そう。
188 :
180:05/03/17 00:59:49 ID:6GfCZyTL
地道に書き換えはじめたけれど ...、
割り込み禁止時間を 8 サイクル以内におさめるのがとってもむずい。
mega48/88 になって、mega8/tiny2313 から割り込み反応速度が
実質的に下がってんのね。
>185
同じ理由で avrgcc + gas への書き直しほぼ不可。
割り込みハンドラ突入/復帰で push/pop する暇がないです。
189 :
774ワット発電中さん:05/03/17 02:11:06 ID:tLRqS2k0
>>188 アセンブラでがんがってください。
ところでソースはどこにあるの?
pdfファイルからカットペーストで取り出そうとしたら、文字装飾のためかぐちゃぐちゃー
>189
すんげー紛らわしいけど、そっち:
www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm
は旧ページ。
今は新ページ:
www.cesko.host.sk/IgorPlugUSB_RS232/IgorPlug-USB%20(AVR)%20RS232_eng.htm
にぜんぶ置かれています。プレーンなソースともども。
あと、コメントを日本語化してラベルを簡約化したやつが Hero's download にあります。
Version は同じ。でもこっちの mega8 版、一ヶ所ミスプリがあってコンパイルできないけど。
igorplugのサンプルPCアプリのシリアル部分が使いづらいので
シリアルに特化した簡易ターミナル作ろうと思うんですけど需要ありますか?
194 :
774ワット発電中さん:05/03/20 14:01:20 ID:mUDjLSRX
>>192 確かにはっきりした記載がないんで不安になるね
(ATMELのEEPROMの入力ピンにはSchmitt-triggerの記載あり)
入力ポートの電気的特性を見ると、
Lowレベル入力電圧 Lowレベル認識が保証される最高電圧=0.3*Vcc
Highレベル入力電圧 Highレベル認識が保証される最低電圧=0.6*Vcc
って書いたけど、よく考えるとこれは例えば0.35VccではLowレベルになるとは
限らないと言うことであって、0.35Vでは絶対にLowレベルにならないってことでは
ないなあ。うーむ、確かに根拠薄い。シュミット入力だと思って使ってきたけど汗
195 :
774ワット発電中さん:05/03/20 16:29:47 ID:0QF2EHMt
【PIC・AVR 初心者のためのスレッド】で質問をしていたのですがこちらを紹介されました。
どなたかご存知の方はお力を貸していただけませんか。
秋月のAVRプログラマキット、AKI-AVRについてです。
秋月のHPよりAVR Programmaerの1.40.25をダウンロードしてインストールして
みたところ、チップに書き込みを開始しようとすると「ライタと通信中」という
ダイアログと同時に「実行時エラー’9’:インデックスが有効範囲にありません」と
エラーをはいて停止します。
読み込みでも同様です。
COM選択時には「ライタを検出しました」「AVR ISP SW:3.9 HW:3.1」と出ています。
なお、AVR_PGMの1.1.7では正常に書き込みができます。
どなたか対処方法をご存知の方はいらっしゃいませんか?
>>195 ・VBのランタイムが最新のものかどうか確認
・他のマシンでも同じ症状が出るか試してみる
・OSの種類ぐらい書け
・AVR_PGMの1.1.7を素直に使え
>>192,
>>194 データシートのポート回路構成図には絵が描いてありますね。
ATmegaシリーズ等のデータシートの兼用機能用兼用信号の一般定義には
DI(デジタル入力)のところにはシュミットトリガとの記述があります。
>>192 ATMega88のPDFには
>デジタル入力許可とスリープ動作
図24.で示されるように、デジタル入力信号はシュミット トリガの入力をGNDにクランプできます。
>表133. 2線シリアル インターフェース必要条件
Vhys@ シュミット トリガ入力ヒステリシス電圧A 0.05VCC
TWIの方は、なんか心もとないが(w
データシートにはヒステリシス−VCC特性のグラフがあるけど
具体的数値で保証されてるわけではない
馬鹿馬鹿しい質問かもしれませんが
error: stray '\26' in program
この様なエラーが出るのですが何が問題なのか教えてくれませんでしょうか。
ソースファイルは以下のとうりで’¥26’に心当たりが有りません。
#include <avr\io.h>
int main(void)
{
unsigned charucTmp1;
DDRB=0xff;
PORTB=0x01;
for(;;)
{
for( ucTmp1=0 ; 200>ucTmp1 ; ++ucTmp1 ) {}
if( PORTB==0x80 ){
PORTB=0x01;
}
else{
PORTB <<= 1;
}
}
}
ターゲットはATmega8
コンパイラはWIN AVR 20050214版
¥26は^Z (0x1a)のことです。
ソースファイルの末尾に ^Zが挿入されているんだと思います。
古いエディタ等ではファイルの最後に^Zが挿入される場合があります。
202 :
774ワット発電中さん:2005/03/23(水) 18:10:36 ID:jK2kMYDQ
ちょっと質問です〜
sbi命令(機械語の方)って2クロック掛かるようですが、
sbi命令実行中に、対象ポートの他のビットが変化した場合は
どういう挙動を示すことになるのでしょうか?
1.変化がなかったことにしてしまう(それは困る)
2.sbi命令終了後反映される(その前に元に戻ったら反映されない)
3.
>>203が想像もできないクールな解決法
4.どう動作しようが無問題
$00-$1F範囲内のレジスタで、読み書き可能で、プログラム以外から変化させられる
レジスタはあるが、そういうのはそもそも変化のない時に操作することになってる(SPDRなど)
4.でいいかな?と思いつつちょっと疑問だったので。
203 :
774ワット発電中さん:2005/03/23(水) 18:11:19 ID:jK2kMYDQ
>202
5. read-modify-write 中に勝手に動くビットで問題をおこすビットは存在しない。
ではないかと。
1 に変化したビットをクリアするのに 0 を書く必要がある、というのは
そういう意味だと理解しているが。
205 :
204:2005/03/23(水) 18:55:02 ID:mEl9lo18
0 じゃねぇ orz.
誤 1 に変化したビットをクリアするのに 0 を書く必要がある、というのは
正 1 に変化したビットをクリアするのに 1 を書く必要がある、というのは
>>204 つまり該当するビットは割り込み要求フラグのような仕様にしてあるから問題ないと。
TIFRやGIFRはsbi/cbiの対象外だけど、まあこれはsbiマクロ(旧winavr)やport|=_BV(bit)
みたいなのにも言えるということなのかな?
割り込み禁止さえすれば(他のプログラムによる書き替えをとめれば)OKと。
逆に言えば割り込み内外双方で突然変えられそうな読み書きポートなんてPORTxくらいだから
こういうのにはsbi/cbiつかっとけ!でいいのかな?
207 :
200:2005/03/23(水) 23:45:48 ID:yVmjGl+J
>>201 無事解決できました。
サンプルをエディタ(ちなみにMIFES6 )で変更したら急に
コンパイルできなくなったので、原因はプログラムの方に有るとばかり
思っていました。
どうもありがとうございました。
208 :
201:2005/03/24(木) 00:36:51 ID:j0zAmsMh
MIFES6を使用しているのでしたら
[その他]⇒[環境設定][拡張子]で[C]のオープンモードが[テキスト(^Zまで)]になっているのだと思います。
これを[テキスト]か[デフォルト]に設定すれば自動では^Zは入らなくなると思います。
すんません〜。秋葉でMega8って入手・・・できないですよね?
秋月で取り扱ってくれればいいんだけど。
さすがにCで4433はキツかった・・
>211
その元文の外の人です。
メインルーチン側だけでなく完了割り込みルーチン側で何やってるかによると思いますが、
ええと ...
sleep に入ると同時に ADC 変換が始まってしまうので、変換完了割り込み時点では
自動起動要因に指定している割り込み要求フラグがまだ立っていません。
自動起動要因で変換が始まったつもりでルーチンが書かれているので、
そのフラグをクリアするつもりでセットしてしまいます。
このため、完了割り込みから通常ルーチンに復帰した直後に自動起動モードで再起動してしまい、
あたかも連続変換モードのように見える、てのが今の解釈ですが、同じこと言ってたりしますか。
ちなみに生粋の連続変換モードではないのは、sleep で眠る深さを
変える(ADCノイズ低減モード ⇔ アイドルモード)と、
ADC 変換レートが微妙に変化することでわかります。
213 :
212:2005/03/24(木) 22:05:54 ID:tqwoioxo
あー、もっと単純でいいのか。完了割り込み後に sleep するから、
そこで変換がまた始まってしまう、というので良いのかな。
>211の解釈で、ADIE をクリアすると、... ええと、この場合
変換データはどこのルーチンが処理するんでしょうか。
>213
その元文の外の人さんへ
>213の通りだと思われます。
開始はするけどAD変換はデータ読んでもそのまま走っちゃう状態らしい。
唯一、止められるのはADCSRAへのアクセスだけみたいな。
元プログラムは、改造を重ねてしまい複雑になっちゃいました。(恥
>変換データはどこのルーチンが
SIGNAL(SIG_ADC)の、AD割り込みルーチンでグローバル変数に代入して
>211の終わりに続けて数値>文字処理してシリアル出力してます。
ADスタートは、タイマー0をアイドルsleep状態でコンペアマッチで自動起動のつもり。
215 :
214:2005/03/25(金) 03:19:36 ID:YWzU5mzY
SIGNAL(SIG_OUTPUT_COMPARE0A)
{
ADCSRA |= _BV(ADIE) | _BV(ADIF);
set_sleep_mode(SLEEP_MODE_ADC); /* AD変換ノイズ低減スリープ */
}
SIGNAL(SIG_ADC)
{
adc_val = ADCW;
ADCSRA &= ~_BV(ADIE);
set_sleep_mode(SLEEP_MODE_IDLE); /* アイドルスリープ */
intF=1;
}
int main(void)
{
…
set_sleep_mode(SLEEP_MODE_IDLE); /* アイドルスリープ */
sei(); /* 割り込み許可 */
while(1)
{
sleep_mode();
if (intF==1){
intF=0;
//adc_valのデータ処理
}
}
}
216 :
774ワット発電中さん:2005/03/25(金) 09:36:23 ID:EByT10tx
>>211 tiny13/mega48持ってないのでお役に立てないのだけど、
Wikiの用例に関しては、OCF0Aが立って、ADCが動作開始して、動作終了するときに、
未だOCF0Aが立っていると再突入するってことでしょうかねえ?
データシートではエッジトリガがあることになっているけどこれが機能してない??
スリープ内でOCF0A=0のような状態になり、目覚めるときエッジトリガが動いてしまう?
>216
OCF0Aは、COMPARE0A割り込みでカウンタ0がクリアされるので
ADCが動作開始時には"0"になってると予想してます。
ADIFつまりAD変換終了ビットが、OCF0Aビットと、ORな関係になっちゃってるのか。
一度自動起動されたAD変換が、どうして連続変換モードに移行するのが謎です。(汗
スリープ中での割り込み要因の処理が普通じゃ無いのかなぁ。
218 :
774ワット発電中さん:2005/03/25(金) 17:26:12 ID:EByT10tx
>>217 あ、
>>211はCOMPARE0A割り込みが許可された場合でしょうか?
それなら納得なんですけど。
>>216はCOMPARE0A割り込み許可していない+SLEEP使用を
前提にした書き込みでした。
219 :
213:2005/03/25(金) 19:03:42 ID:/ggr+1fX
sleep で起きだしてしまうので変換自動起動モードで sleep を使うことはできない、
が結論だと思います。
データシート電力管理のアイドル動作、AD変換ノイズ低減動作の項に、
ADC を有効にしているときに sleep すると AD変換が始まるとの記載あり。
>215
AD変換ノイズ低減スリープに入るとタイマ0 は止まっちゃいますが、
動作を追うとタイマの割り込みが起きたときに ADC 動いてるので、
無視されるという動作になっていると思いますが、
これ、連続変換のように動きますよね。
これが正しく自動起動モードとして動いてるとすると前提がひっくりかえります ...。
>216
OCF0Aが立ったまんまだと単に無視されました。
一回だけの変換。データシート通りに動いてます。
最初まるで動かなかったんで覚えてる。
>218
>COMPARE0A割り込みが許可された
の方です。どうもお話に付き合って頂いて恐縮です。
>219
スタートに関してはやっぱりそのようですね。
それでは、変換自動起動モードだけで動作させた場合は、
エンド(AD変換の終了後に変換が停止)が起きると言う事でしょうか?
ただ問題なのは>215では変換自動に設定しているのにも関わらず、
SLEEP終了後まで他のメイン処理中にも変換連続して
AD終了割り込みが掛かり続ける事が気になる感じです。
>正しく自動起動モードとして動いてる
だぶん正しくは起動していないと思われますです。>変換連続モードになっている。
結論としては、>変換自動起動モードで sleep を使うことはできない。
AVR-Wikiにあるように、こんなのじゃだめ?
EMPTY_INTERRUPT(SIG_OUTPUT_COMPARE0A);
SIGNAL(SIG_ADC)
{
PORTB=ADCW
>>2;
}
:
:
for (;;)
{
set_sleep_mode(SLEEP_MODE_IDLE);
sleep_mode();
//COMPARE0Aでここから目覚める
set_sleep_mode(SLEEP_MODE_ADC);
sleep_mode();
//ADC変換完了割り込みでここから目覚める
}
223 :
213:2005/03/25(金) 21:25:19 ID:/ggr+1fX
>222
それ、誤解してます。
set_sleep_mode(SLEEP_MODE_ADC); sleep_mode(); の時に
勝手に ADC が起動するばかりでなく、
set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode(); の時にも
寝た瞬間に ADC が起動してしまう
ので、ひとつめの sleep_mode() した瞬間に COMPARE0A 待たずに
ADC が動き出してしまいます。
それと、set_sleep_mode(SLEEP_MODE_ADC); sleep_mode(); したら
タイマ0 止まっちゃいます。たぶん希望する動きではないのではないかと。
>221
ほとんど連続変換モードなために変換してない時間帯がなく、
変換自動起動モードの対象フラグエッジをみる瞬間がない、
だから変換自動起動モード的に起動されることはない、
ということではないかと。
>223
AD起動はどんな事で何回しても良いけど、希望するADスタートタイミングで変換開始し
SIGNAL(SIG_ADC)は唯一度だけ割り込みが欲しい。
それ以前のデータはいらないし、それ以後の無駄なデータも必要無い。
希望するADスタート=COMPARE0Aが成り立つ時、出来ればCOMPARE0Aの
割り込み処理には飛んでいって欲しくない。(且つ、揺らぎは極力排除の方針で)
出来れば、set_sleep_mode(SLEEP_MODE_ADC)でsleep_mode();が使えると嬉しい。
無理っぽい希望ですかね。。。
一応>215での状態で、自動起動?状態で動いたので良しにしちゃった、ヘタレです。。。
226 :
213:2005/03/25(金) 22:38:44 ID:/ggr+1fX
>224
結果が必要なのは唯一回だけだから SLEEP_MODE_ADC 使ってたのかぁ。
それはタイマのタイミングの前後関係でどうなるか分からないですね。
基本はこんな感じ?
init_adc(); // 自動変換モード、完了割り込み許可。
init_timer0(); // timer0 割り込み禁止。
set_sleep_mode(SLEEP_MODE_ADC);
while (bit_is_clear(TIFR0,OCF0A)); //抜けると同時位に勝手に変換開始
TIFR = _BV(OCF0A); // 一応フラグはクリアしとく。
sleep_mode();
ADC クロックにくらべ CPU クロックは十分に速いから、
自動変換開始後 sample and hold する前( ADC クロックで 2 サイクル後) には
CPU は sleep に入ることができると思います。
busy-loop 前までは完了割り込み止めとけば自由に sleep できそうですが。
>226
どうも解説ありがとうございます。
で、最初にWikiのsleepの所も読んでいて、
while (bit_is_clear(TIFR0,OCF0A)); //抜けると同時位に勝手に変換開始
みたいな局所ループみたいな所も何とか低電力でノイズ少な目に出来ないかな
と思ってプログラムしたのでした。
>>223 うーむ、タイマ周期がAD変換時間の2倍以上という
条件をつければ回避できない?AVR-Wikiの例(1200サイクル毎)ではだめだけど・・・・
その無駄変換結果は捨てればいいというわけで。
>>215でガイシュツっぽいけど
ADC割り込み内でも捨てデータかどうかは現在のスリープモードまたは適切なフラグで
判断できるんじゃないかと考えました。
なんなら前者スリープ時だけADIEを止めてもいい。ってこれも
>>215ガイシュツでしたけど
でも後者は致命的ですね・・・ClkIOないADCノイズ低減動作スリープでは
タイマ動かないっすね(恥)。行うとしてもIDLE動作しかできないって事ですか。
SLEEP_MODE_ADC動作スリープの最中タイマが止まるとしても、
その時間が一定だとみなしてその時間を引いた値をOCR0Aに入れとくというのは無茶?
スリープ前後のIOクロックが不安定になるかなあ?
それならスリープ前後でTCCR0を0にしておくとか・・ドンドン複雑になっていく・・
---とりあえずSLEEP_MODE_IDLE-----
EMPTY_INTERRUPT(SIG_OUTPUT_COMPARE0A);
SIGNAL(SIG_ADC)
{
ADCSRA &= ~_BV(ADIE);
PORTB=ADCW
>>2;
}
:
:
set_sleep_mode(SLEEP_MODE_IDLE);
ADCSRA &= ~_BV(ADIE);
sei();
for (;;)
{
sleep_mode();
ADCSRA |= _BV(ADIE);
}
---意地でSLEEP_MODE_ADC版(ADC動作時間だけOCR0A減)-------
set_sleep_mode(SLEEP_MODE_IDLE);
ADCSRA &= ~_BV(ADIE);
sei();
for (;;)
{
set_sleep_mode(SLEEP_MODE_IDLE);
sleep_mode();
ADCSRA |= _BV(ADIE);
set_sleep_mode(SLEEP_MODE_ADC);
TCNT0=0;
sleep_mode();
TCNT0=2;
}
---COMPARE割り込み排除版(非変換時SLEEPなし)(ADC動作時間だけOCR0A減)---
//SIG_ADC割り込み内でADIEをOFFにしない
set_sleep_mode(SLEEP_MODE_ADC);
ADCSRA |= _BV(ADIE);
sei();
for (;;)
{
loop_until_bit_is_set(TIFR0,OCF0A);
TCNT0=0;
sleep_mode();
TCNT0=2;
}
AVR-Wikiでは、自動変換の例を出したかったからあの状態になったと思われ。
今回の>211の意図する所は、タイマー0割り込み周期5mSで200サンプルして平均化し
1秒おきにアナログ電圧をシリアル出力したいと思ってプログラムしてました。
>SLEEP_MODE_ADC動作スリープの最中タイマが止まるとしても、
>その時間が一定だとみなしてその時間を引いた値をOCR0Aに入れとくというのは無茶?
上記の様な事は、実際にしてます。スリープと言ってもクロックダウンまではしないので
多少の揺らぎは有りましたが結構安定してます。
スリープを積極的に使いたいのは、
>loop_until_bit_is_set(TIFR0,OCF0A);
みたいな無駄な単純待ちループを排除し、低ノイズ化しておきたいと思ったからです。
ただ、自動変換モードにおいて
>set_sleep_mode(SLEEP_MODE_ADC);
>sleep_mode();
した後に、SIGNAL(SIG_ADC)が5mSの待ち時間中に連続で割り込み掛かるのを
排除したくて色々プログラムした次第です。<ヘタレ=ぷろぐらま
ん〜、開始時刻が多少曖昧になってもいいならもはや自動起動でなく
所定時刻の 12 ADCクロック前に COMPARE0A で起き、
その割り込み起動ルーチン内でタイマ見ながら
ADC を単独変換モードで電源入れて寝る(と同時に ADC 起動)で
良いんでは。
>226のようなのは変換開始時刻前後に別の急ぎの重たい割り込みが
あっても変換開始時刻が変わらないところに自動起動モードの
意味があるんで ...。
>>230 >スリープと言ってもクロックダウンまではしないので
え?そなの??ClkIO停止とあるのでタイマは完全停止と思っていましたが
>多少の揺らぎは有りましたが
多少揺らぎがあるならコンペア割り込みからの単独変換でも揺らぎは1クロックなので
使う意味が無くなるなあ。
タイマの動作とADクロックが同期していないことにはジッタは相当なものになると思うのだが…
AD開始でADプリスケーラがリセットされるんだっけ?
>ADC を単独変換モード
割り込み有効状態にして、且つSLEEPが設定されていると、
それ以後はADIFが立つタイミングで必ず割り込み発生しちゃいます。(≠180uS)
単独変換モードと言えど、SLEEPが設定されると有無を言わさず連続変換モード突入です。
>多少の揺らぎは有りましたが
9.8MHzCPUクロックの数クロック分、AD変換の遅クロック分じゃ無いです。
>ClkIO停止とあるのでタイマは完全停止
その通りですが、AD変換のクロックは生きているので必ず一定時間(≠180uS)で生き返る。
235 :
231:2005/03/26(土) 15:58:17 ID:rMjadktB
234>単独変換モードと言えど、SLEEPが設定されると有無を言わさず連続変換モード突入です。
いや、ADEN=0, PRR |= _BV(PRADC) で寝るってことだけど。
ADEN=1 しとくのにくらべ、必要なサンプリング時刻よりかなり前に
変換を始める必要はあれ、今はそれくらいの余裕があるわけで。
キターATMEGA88-20PI !!
で分かるよね?
俺用メモ:現在240
買わないか?オフ発動!?
241 :
774ワット発電中さん:2005/03/30(水) 06:11:25 ID:lsyzlonm
おれは168が出るまで待つよ
んでは俺用に240個大人買い
243 :
需要調査:2005/03/30(水) 16:55:27 ID:PrYYJDuI
>>238 脊椎反射で25個頼みました。275.6*25+2000=8890円
だから、送料込みで、1個あたり355円。
誰か欲しい人いる?頒布価格700円(送料別)くらいで、どうだろ。
とりあえず、compass-labでのatmega8-16PIと同じ価格設定
まー送料も相当するので(EXPACKだって500円)アレだが。
244 :
774ワット発電中さん:2005/03/30(水) 18:07:13 ID:1B1qMHMY
mega8に対するアドバンテージは、こんなもんでいい?
○20MHz Max
○8bitタイマが2つともOC付き
○それに伴い?PWMが3→6
○ピン変化割り込み
○外付け32kHzより省電力な省電力(内蔵125kHz発振)
うーむ、手元のmega8使ってからかなあ・・・
秋月のネット通販のページで4414とか8535などの40ピンAVRが消えているけど品切れ?
店頭では売っているの?
>>245 通販ならCompassLabで買えば?
Megaバージョンで値段は秋月とほとんど同じで送料半分。
248 :
774ワット発電中さん:2005/03/30(水) 21:26:25 ID:1B1qMHMY
>>245 AT90S2313は当分生きているかもしれないが、それ以外はそろそろアウトでは?
>>248 AT90S2313もメーカーのラストオーダーは終わったよ。
でもいまさら買うやつは少ないかもしれないから、そういう意味では
当分店頭には残る可能性あるかな?
251 :
774ワット発電中さん:2005/03/30(水) 23:01:12 ID:1B1qMHMY
>>250 2313も入門用にはなかなかいいんだけどなあ。
適当に単純で、適当に機能があって、gccも使えて。
困るのはADCがないことくらい(コンパレータ使った簡易ADCという手もあるが)
252 :
774ワット発電中さん:2005/03/30(水) 23:01:55 ID:1B1qMHMY
×いいんだけどなあ
○いいのでそっちに回るといいな。
>>247 それ、mega8535自体は載っていないのでは??
秋月のat90s2313安いなあ。
在庫を吐きだしてtiny2313にするのかな?
しかし、at90s2323の強気な値付けがわからない。
100円でもあんまり欲しくないのに、あの値段で売れるんだろうか。
>>255 小物作るのには使いやすいと思うけどな。
今後買うこともないだろうから1レール買っとくか…
買うのは2313のほうね。 2323は只でもいらん。
秋月のAVRは不良在庫が目立つよな、1200Aとか4433とか。
>>254 違うとこ見てた。正直スマンカッタ orz
259 :
774ワット発電中さん:2005/03/31(木) 11:02:58 ID:Gc6xKgjQ
1200が2313より高くなってしまった。1200売れるのかな?
>>239 現在 ATMEGA88-20PI = 182個。
261 :
774ワット発電中さん:2005/03/31(木) 23:28:41 ID:bC92DcxA
gas (avr-as) のコードを AVRStudio でソースコードデバッグするには
どうしたらよいでしょうか。
もちろん avrassembler2 や avr-gcc は大丈夫なんですが、gas の奴だけ
ソースを読んでくれません。
>>261 とりあえず、プロジェクトをzipしてうpしてみては?
>>261 俺も同じ問題にぶち当たって結局解決できなかった
逆アセンブルリストとにらめっこしてた
解決法があるなら俺も知りたい…
俺も今、試してみた。
No Sourceって領域になる・・・
↑投稿日がえらい事になってる^^
Digi-KeyにAtmega168が4個だけ入ったぞ!!!
うそ。
いつのまにか在庫が増えてる
現在458
269 :
243:皇紀2665/04/01(金) 08:48:37 ID:zJxJ3Kxi
>>268 うー、またどうせ直ぐに在庫がなくなるだろうと、脊椎反射で25個買った俺の立場は?
AVR 用の ICE200 ってもう手に入らないのでしょうか?
IPIもデジキーも生産終了で在庫も無かったんです。
STK200 等ではプログラムの書込みはできてもソース中にブレークを
設定したりレジスタ値を覗いたりとかってできないですよね?
271 :
261:皇紀2665/04/01(金) 20:06:47 ID:piiUbs3F
>>271 とりあえずやってみたら、うまくいった・・・と思ったら、関数だけしかトレースできない orz
mainも吹っ飛んだ
avr-asのマニュアル読んでみたが、よく分からない。たぶんTYPEが鍵を握っていると思うけど。
ようやく時間ができたんで、シリアル液晶用のとりあえず動くコード書きました。
どこか(どこ?)にうpしますか?
いまの仕様
CPU: tiny26L 内部OSC 8MHz動作
液晶: 日立コントローラ互換2行液晶8ビットモード
(ソースは12*2用だけど、桁数は.equの定数変更で可)
データ入力: PA0(DI)から19200bpsの半二重UART
(AVR307の入力部分のみ。バッファあり)
画面操作: コントロールコードで、画面クリア、カーソルHome、
(以下、激しくやる気なしで手抜き)、改行、BS、カーソル左右など
1行目、右はしで折り返し
言語: アセンブラ(tavrasmのみで確認)
自分的には、今の状態で用が足りちゃうので、もうめんどくさいやという感じなんで、
I2Cスレーブにするとか、まじめにANSI/VT100にするとか、
1〜4行対応にするとか、添削してやるって人がいたら
おながいします (現時点で、約250ワードなのでflashスカスカ)
自分の想定用途
・(ラックマウントの)マシンのRS232からレベル変換して接続
・他のボードからISPコネクタ流用で接続。(まんまではGNDとMOSI使用だけど
入力用のヘッダピンかクロスケーブルみたいの用意するといいかも)
275 :
774ワット発電中さん:2005/04/02(土) 08:59:36 ID:vq0QvnZN
>>273 マスターのAVRからは線1本で繋がるの?
(又は、赤外LEDと受光つければ、無線で繋がる?)
そういえば、今気がついたけど、電気電子の他の板は、なんか暦表記がヘン
なんだけど、電電板は、もとから変えなかったのか?それとも瞬殺で戻したのか、どっち?
>>274 とりあえずsandboxのとこ置きました。
>>276 GNDと2本です。赤外はUARTが多数決なものじゃないのでノイズでだめかも。
>>278 回路図もよろしく。(できれば bsch3Vで書いて)
280 :
774ワット発電中さん:2005/04/02(土) 17:10:12 ID:vq0QvnZN
桁は_COLにでもしましょう。_ROWだとこれも行になってしまう。
4行対応だとカーソル絶対座標指定がないのは辛いかな。
これを先に定めると他のコマンドが作りやすい。
カーソル系コマンドは_LINE,_COLを動かしてrcall set_xyでOKです。
あと、^Mですが、clr _COL / rcall set_xyしたほうがいいかなと思う。
CRコードで行頭に戻って繰り返し同じ表示をするってケースありますので。
そうなると^J(LF)もinc _COL/rcall lcd_curDNだけで済むかも。
;4行対応
set_xy:
ldi _CHAR,0x80
add _CHAR,_COL
sbrc _LINE,0
subi _CHAR,0x40
sbrc _LINE,1
subi _CHAR,0x14
rjmp lcd_putchar
lcd_curL:
subi _COL,1 //carryflagを使うためdecではなくこれ
brcc lcd_curL_ok
clr __COL
lcd_curUP:
subi _LINE,1
cpi _LINE,_LINES
brcc lcd_curL_ok
clr _LINE
lcd_curL_ok:
rjmp lcd_putchar
lcd_curR:
inc _COL
cpi _COL,_COLS
brcs lcd_curR_ok
clr __COL
lcd_curDN:
inc _LINE
cpi _LINE,_LINES
brcs lcd_curR_ok
clr _LINE
lcd_curR_ok:
rjmp lcd_putchar
;; 0x09 ctrl-I / next tab(4)
subi _COL,-3
andi _COL,0xFC
281 :
280:2005/04/02(土) 20:05:41 ID:vq0QvnZN
>>278 ちょっといじったのを上げてみました。4行対応、いくつかのコマンドをつけてみた。
>>279 うちWin系ないんでeagleでつくったやつで勘弁して。
液晶のコネクタのところ、線に名前入れたほうがいいかと思ったけど
やりかたわからない。orz
VCC,VSSは秋月のと逆です、たぶん。
>>280-281 GJ!
>>282 漏れはWin版使ってるけど、配線にNameしてやって、その後にLabelで良いんじゃないか?
変なこと聞くけどマイコンのオーバークロック耐性ってどの位なの?
ちょっとATmegaの速度を稼ぎたいときとかに出来ないかなと…
>>284 6MHzを6.144MHzで動かす程度なら平気なんじゃね?
もっとも、ちょっとだけでもマジ厳しいって奴もあるみたいだからケースバイケースでしょ…。
>284
AVRは割といけるんではないかな。
データシートの特性にも定格の上の周波数までグラフがでている。
AT90S2312(10MHz)は15MHzまで
ATmega8(16MHz)は20MHzまで
ATmega88(20MHz)は24MHzまで
当然保証外ですが・・・
実際ATmega8を20MHz動作で屋外仕様で24時間運転している(2years)が問題出ていない。
アマチュア用途では大丈夫かな
287 :
286:2005/04/03(日) 23:48:19 ID:ycuu4xTf
AT90S2312⇒AT90S2313
AVRで速く動かしたければSpecぎりぎりまでVccを上げる。
だけど外部からクロック注入するの? それとも発振子外付け?
内部発振でOSCCALの範囲で上げる?内容によって変わると思いますが。。
もっと速い処理をやりたけりゃシリコンラボラトリのC8051Fの方が
ICEが安くてクロック速いし(24.5-25MHz〜98-100MHz)ずっといいと思う。
289 :
284:2005/04/05(火) 01:28:33 ID:6ZX2xoab
>>285,286,288
レスありがとう
発振子は外付けの予定です。
データシートに書いてある範囲なら無保証ながら動く可能性は高そうですね
それ以上はやってみないことには判らないですかね…
DIPのATMega8 , ATMega16 にISPとJTAGと液晶とDSUB9のランドと穴をあけた
基板が欲しいんですが、ないみたいなので、P板あたりで起こそうかと思って
P板で見積もったら100x100mmのを4面づけして、総計で100枚くらい起こせば
1枚あたり1000円を切りそうなのですが、需要あるでしょうか?
基板の空いているところは全部Φ1.6のスルーホール(穴系はΦ1)にするつもり。
>>291 電源なんて、コネクタで供給すればいいから、どうでもいい。
>>290 基板起こすなら表面実装用のが欲しいな。SOPなmegaと232Cレベルコンバータもセットならうれしい。
デジキーで100個買ったら安いでしょう(w
いや、今ならUSB-パラレル又はシリアル変換チップつけられる方がありがたいかな?
Mega162 + 32kSRAM + USBN9604なら欲しい…。
Mega8+CP2101のユニバーサル基板。名刺サイズくらいがいいな。
>>295 CP2101となるど自分でハンダ付けつらいな。あれMLPだし。
>>293 なんで、みんな表面実装のを使いたがるのかなぁ?
DIPでソケットにさせば、ひっこぬいて使いまわせるじゃん。
というわけで、オイラはDIPでいいと思います。>290さん。
298 :
774ワット発電中さん:2005/04/06(水) 11:55:09 ID:kFFiX00W
>>297 AVRはDIPでもいいんだけと(むしろ個人で買うにはDIPの方が便利だけど)
USBインタフェースとか周辺回路乗っけたければそっちは表面実装でせざるをえないかも。
できればレギュレータICとかも乗っかって欲しい。
LCDだけじゃなく、PORTDとPORTBのコネクタもつけてほしい。(LCDと共用)
外付け水晶発振子をとりつけて、ジャンパーでコネクタのPB6/7か発振子か
外部発信源か選べるようにできればうれしいな。
IPIのFTDI+2313ボードみたいなのがほしいなと思ったりするわけ。
1000円するなら1000円なりの付加価値がついていた方がいいと思う。
dontronicsの日本版目指してがんばってください。
FT232BMはUSBシリアルとして有名だが、皿錠や飯助などの周辺部品が多くてウザい。
単純なシリアル変換ならCP2101の方がベターかな。DIP版出ないもんかのう…
>>299 確かにクロックやらなにやらつけるべきなのが多いね。
EZ-USBみたいにプログラミングしたいならともかく、単なる変換器ならCP2101いい。
市販のモジュール使うしかないかな。
苺Linuxさんとこのやつもいいけど、14pinDIP化したモジュールでもあれば面白いね。
302 :
290:2005/04/06(水) 15:05:20 ID:+eVCxD5D
>>293 Mega16なら、TQPFがDIPの幅に入るので、なんとかなりそうですが、
Mega8みたいなナローDIPだと、TQPFの方がでかいので、困ったなと。
というわけで、TQPFはナシということで。(僕が使わないので)
232C変換は、MAX232CのDIPのパターン付けますか。
レギュレータのパターンは作ります。
あと、ポートの出力ピンは作ります。
まぁ今年中にはパターン書いてみようかと。
基板と16MHzクロックモジュールとATMega8とMAX232Cセットで原価2000円くらい?
20MHzとATMega88のセットの方がいいか?
(MAX232Cは、
http://akizukidenshi.com/catalog/items2.php?p=1&q=I-00763 )
(CPUとかクロックとかはDigiKeyで100個買いするとして)
100個売れるなら、考えます。(儲けなしだな)
>>303 おお。DIP20ですか。ちょっと大きいけど安いですね。
>301
加藤氏のAVR入門には、それを 1200 の Xtal1 に直結する例が出ているね。
大丈夫なんじゃない?
ところで、AVRのデータシートには、ADコンバータ使うなら、VCCとAVCCの間に10μHのインダクタ通して、GNDとの間に0.1μFいれろ
とか書いてあるんですが、0.1μFの積層セラミックなら、いくらでも転がっているし、まとめて買えば1個数円(千石なら500個1500円)程度で
入手できるわけですが、10μHのインダクタで安いのって、どっかで売ってる?
千石では マイクロインダクタ 10μH っていうのが1個40円もするんだが。
抵抗でいいんでない?
>>311 AVCCはポートCだか、どっかのポートの電源なので、抵抗つなぐと、そのポートの出力電流が制限されちゃわないかなー?
インダクタの抵抗って数オームでしょ?
>>310 じぶんでグルグル巻くんだっ!
自作コイルでいっちゃえ!
314 :
774ワット発電中さん:2005/04/08(金) 21:44:27 ID:C6I9rh1Y
>>310 オクをチェックすべし
リード品とチップ品ともに一個5円程度だった
ただし、振手・送料を加えると、何の事やら・・・
>312 AVCCはポートCだか、どっかのポートの電源
マジ? ていうか ADC使う間は ポートC の出力動かすんじゃねぇという記述はそういう意味なん?
90S初期のデータシートでは、抵抗とコンデンサだったけど、後にインダクタとコンデンサに変更になって現在に至っている。
digi-keyにattiny25/45/85が追加されてるけど、
みんな非在庫保有商品になってる…
>>317 それに限らずPbFreeはどれも在庫もってないよ
>>315 ATMega8の「ピン概要」の所に
AVCCはポートC(7,6と3〜0)とA/D変換器用供給電圧(電源)ピンです。例えA/D変換が使用されなくても、外部
的にVCCへ接続されるべきです。A/D変換が使用される場合、VCCから低域通過濾波器を通して接続され
るべきです。ポートC(5,4)がデジタル供給電圧(電源:VCC)を使用することに注意してください。
って書いてある。
320 :
315:2005/04/09(土) 17:19:57 ID:5W0LezVI
>319
おお、ありがと。見落としてた。
ノイズ低減の記述と一本に繋がったよ。
ところで原文にもあたったが、ポートC(7,6) については
そこは誤訳で、7は無く、6はVccからだそうだ。
(でないとADCでの話と辻褄が合わない)
>>310 >10μHのインダクタで安いのって、どっかで売ってる?
リード型・チョーク型だと、
鈴商は1個¥30
日米商事は10個¥100
チップタイプの10μHは鈴笑で10子100円だった。
AVRStudio4.11のシミュレータでレジスタ or メモリの値がxxになったらブレークする
みたいな事って出来ますか?
誰か、チップワンストップでATMega88とか買った人いない?
いくらなんだろ?値段がわからんのよなー
325 :
774ワット発電中さん:2005/04/12(火) 19:33:47 ID:1ZQOpNpn
>>324 会員登録したら見積もってくれるんでしょ?レポートキボンヌ。
しかし必須項目に企業名はともかく年商があるのがプレッシャーになるな。
うちはいちおう農産物の通販の窓口やっているので表札に企業名ついてる。
これで登録したらだめかな?まるで電子に関係なさげな名前なんだけど。
>>324 イチゴLinuxでうっとるで
@400円
327 :
774ワット発電中さん:2005/04/13(水) 01:20:42 ID:27T8h30E
128は1500円。
これは微妙age
>>326 イチゴは余剰製品だから、いつまで買えるか微妙だしなー。
チップワンストップってアマチュアは利用しないんかな?あんまり使用記っていうのが無いね。
あのイチゴは酸っぱいに違いないさ
>>328 B2Bなんでアマチュア対象外らしい。
従業員数とか年商聞かれます。 <chip1stop
んじゃー今度の試作機、フロントマイコンにAVRを提案してみようかな?
mega88ゲットー。今週末に弄ってみる。
Digi-KeyのATMega88-DIP:売り切れましたっ!
つっか、苺で1個400円なら、(25個未満なら)Digi-Keyより安いわけですが。
avrdude.exe -p m8 -c avrisp -U flash:w:hoge.hex:i -U hfuse:w:0xD9:m -U lfuse:w:0xE4:m
データEEPROMですが、書きかえる方法は解るのですが、
初期値(.EEPファイル)を設定する方法が解りません
どうすれば良いでしょうか?
なおコンパイラはWINAVRです。
>>337 |#include <avr\io.h>
|#include <avr\eeprom.h>
|
|#define EEPROM_SECTION __attribute__ ((section (".eeprom")))
|
|uint8_t ee_byte_value EEPROM_SECTION = 0x12;
|uint16_t ee_word_value EEPROM_SECTION = 0x1234;
|struct st_data {
| int16_t value;
| char msg[16];
|};
|struct st_data ee_data EEPROM_SECTION = {
| 123,
| "EEPROM Test"
|};
|
|struct st_data mydata;
|
|int
|main(void)
|{
| uint8_t b;
| uint16_t w;
|
| b = eeprom_read_byte(&ee_byte_value);
| w = eeprom_read_word(&ee_byte_value);
| eeprom_read_block(&mydata, &ee_data, sizeof(mydata));
| do {
| } while (1);
|}
こんな感じで書くと .eepファイルに初期値が入ります。
340 :
339:2005/04/19(火) 09:27:37 ID:hLxioHN7
誤: w = eeprom_read_word(&ee_byte_value);
正: w = eeprom_read_word(&ee_word_value);
組み込んであるATmega48なんだけどCKSEL3〜0=0010のまま
CKDIV8を1にしてしまって起動不能に…il||li ○| ̄|_
復旧させるにはパラレル書き込み機を使うしかない…?
現在ISP書き込み機しかないんだけど何か復旧させる方法があれば教えてください
>341
それって、内蔵RC で 8MHzで起動しようとしているんだよな?
普通に立ち上がってくるはずだと思うが。
343 :
337:2005/04/20(水) 06:10:11 ID:ofzn5o+x
>>339 様
書きこむ事が出来ました、有難うございました。
ところでEEPファイルを見てみた所宣言の逆順に
格納されて行く様
(st_data型構造体mydataの16ビットデータ→
st_data型構造体mydataの文字配列→16ビットデータ→8ビットデータ)ですが、
これは仕様なのでしょうか?
また格納アドレスを指定する事は出来るのでしょうか?
ご教授願います。
344 :
341:2005/04/20(水) 08:37:04 ID:xOzmM+Sr
>>342 そうです。内蔵RCで起動しようとしています。
書き込まれているプログラムが起動している形跡もなく、ISPライター(avrezusb)からも見えません。
データシートには
>校正付き内蔵RC発振器
>校正された内蔵RC発振器は既定の8.0MHzクロックを供給します。この周波数は3V, 25℃での公称値です。このデバイスはCKDIV8
>ヒューズがプログラム(0)で出荷されます
との表記があるのでこのせいかと思ったのですが…
CKDIV8がデフォで0ということは、ATMega48って、外部に8MHzとか繋いでも、デフォルトでは8分周されて、1MHzになっちゃうってことですかい?
347 :
341:2005/04/20(水) 09:02:33 ID:xOzmM+Sr
>>345,346
CKDVI8=1:起動時システムクロック1分周、内蔵RC発信回路無効?
CKDVI8=0:起動時システムクロック8分周
らしいです
348 :
339:2005/04/20(水) 09:08:02 ID:dtrMBKO7
>>343 >ところでEEPファイルを見てみた所宣言の逆順に格納されて行く様
>これは仕様なのでしょうか?
そうですねこれは仕様です。
アドレス決定はリンカー任せになるためです。
そのため格納アドレスをソース側で指定することはそのままでは無理そうです。
回避策としてEEPROMのデータすべてを一つの構造体で宣言して
その中に変数を記述していけばCのソースで配置を自由に決めることは可能です。
>>347 出荷時設定はクロック8分周内臓RC1MHz動作ですが
クロック1分周内臓RCで8MHz動作も問題なく出来ますよ。
ISPで認識できないとすると間違って外部クロックか外部発振器になってしまっている可能性もあると思います。
350 :
349:2005/04/20(水) 09:35:52 ID:dtrMBKO7
>内臓になっている
内蔵に訂正
351 :
341:2005/04/20(水) 09:53:05 ID:xOzmM+Sr
あ、サンクス。
書き込み時のビットをよくよく確認したらCKSELを0000にしてしまっていた…
外部クロックか…適当なクロックを突っ込んでやってみます
352 :
341:2005/04/20(水) 10:43:26 ID:xOzmM+Sr
焦ってヒヨっていたな…il||li ○| ̄|_
適当にクロック突っ込んだところ動きました。
クロック設定のミスならならまだいい方だ。
RSTDISBLを叩いて真っ青。泣く泣く外してパラレルライタにかけたことがあったよ(w
それ以来ヒューズをいじるときは3回確認してる。
>>353 って、事は、ISPでは設定が出来ない、RSTDISBLとかその辺の設定だけが出来るスタンドアロンライタ
を安価に作れば売れるってことですね?
>>354 AT90S1200Aを外部発振で使うためにRCEN専用パラレルライターを
組み立てていた人もいたね。そういうのを作ればいいんかな?
ISPで設定すれば最後、シリアルライターではどうしようもないヒューズは
マスクしてくれるプログラマーソフトってのも欲しいな
356 :
341:2005/04/20(水) 16:57:46 ID:xOzmM+Sr
>>353 小物への組み込み(当然ICソケットは使っていない)だったので
「せっかく詰めたこれ外すのかよ…il||li ○| ̄|_」
だった…
>>354 ttp://www.toshu-ltd.co.jp/gaki/electronics/AVR/works/AVRfuseWriter.html 見たいに明らかにあると便利という場合ならともかく、緊急用のみではあまり需要無さそうかも…
コスト的にもChanNさんのパラレルライター作るのとコスト的に大差ないような気がするし
>>355 コマンドラインから使えるプログラマーソフトなら適当なスクリプトを通してコマンドラインをチェックするとか…
続けて質問になっちゃうけど…
ATmega48のウォッチドッグタイマー用のクロックジェネレータってノイズが多い環境だとクロックが変わったりする?
MAX1674をつかった昇圧基板と背中合わせになっているんだけどプリスケーラが1分周の時ウォッチドックタイマー
が掛かる間隔を調べてみると
昇圧基板非動作:18msec
昇圧基板動作:22msec
非動作時でもデータシートを見ると16msecのはずなのでかなり遅いんだど、昇圧させると更に遅くなる
一方システムクロックの方は変化がない模様…PWM出力の周波数にも目立った変化は見られない。
明らかにマイコンが暴走している雰囲気もないし…う〜む…
タイマーは全てPWMの出力に使っているのでウォッチドックタイマーをプログラムのシステムタイマーとして
使っているんだけど、このせいで目に見えて遅くなるんだよね…('A`)
>>356 Vddが変化してるんじゃないんですか? データシートの後ろのほうに
Vdd-WatchDogTimerFreq.のグラフが有るんじゃないかと思いますが、
ウォッチドックタイマの周波数がかなり変化します。
例えば昇圧回路が動作すると大電流が流れてATmega48に印加される
電圧が下がったりとか。
違って鱈スマソ。
358 :
356:2005/04/20(水) 20:16:55 ID:xOzmM+Sr
レスありがとう
>Vdd-WatchDogTimerFreq.のグラフ
そもそも128KHzは出ないみたいですね…直接電源(上では書いていないけど約4V)
に繋いだときの周期は合っているようですね
1 / (108KHz / 2K) ≒ 18msec
でも22msecだとグラフにはない周波数に…
1 / (90KHz / 2K) ≒ 22msec
確かにそれなりに重い負荷が繋がっているのでフルロード時で0.3V位ドロップしますが
グラフを見る限りでは電圧が下がると周波数は上がるようですし…
う〜ん…なんだろう…
発熱は大丈夫か?内蔵発振器の場合温度が変わると
周波数はかなりふらつくよ。
360 :
358:2005/04/20(水) 23:50:24 ID:xOzmM+Sr
>>359 AVRをさわってみても特に熱せられている感じはないです。
というか、しばらく通電するとおかしくなるのではなく通電直後からおかしいです
オシロがあれば何か判るかも知れないけど持っていないしな…
361 :
337:2005/04/22(金) 03:07:51 ID:gr7KAA3s
>>348 さん
方法が無いのならしかたが有りませんね、
構造体の方法で進める事にします。
別の所で警告が出て処理に手間取り
お礼が遅れましたが、ご指導有難うございました。
362 :
774ワット発電中さん:2005/04/22(金) 19:34:44 ID:1zESnuWy
>>361 データがbyteやwordの配列のような単純な構造なら、gasって手も
<<test_asm.S>>
#include <avr/io.h>
.section .eeprom
.org 0
.global eep_test1
eep_test1:
.byte 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
.end
<<test.c>>
#include <avr/io.h>
#include <avr/eeprom.h>
extern char *eep_test1;
int main(void)
{
volatile char adr,c;
adr = PINB;/*test用。最適化回避のため*/
c=eeprom_read_byte(&eep_test1[adr]);
PORTB=c;
for(;;);
}
363 :
774ワット発電中さん:2005/04/22(金) 19:38:16 ID:1zESnuWy
×adr = PINB;
○adr = PINB&15;
>>362 それなら
char eep_test1[] __attribute__((section(".eeprom"))) = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
とCで書いたほうが簡単ですよ。
>>364 任意の固定アドレスに割り付け、しかも初期値をEEPROMに書き込むるには?って話で。
まあ
>>343の問題は構造体で順序を固定する方がずっとわかりやすいですね。
367 :
774ワット発電中さん:2005/04/23(土) 14:10:15 ID:TAfOzJlS
PIC18F8720モジュールキット
◆フラッシュ:128Kバイト
◆SRAM:3840バイト
◆EEPROM:1024バイト
◆I/Oピン数:最大68ピン
◆A/Dコンバータ:10ビットx16ch
◆その他周辺機能:SPI,CCP,PWM,I2C,USART等
AVRでこんなのキボン
PICの癖にRAMが3800も有るなんてAVRもうだめぽ
同じページの「ResetをOpenにしてませんか」だけど
AVR042 "AVR Hardware Design Considarations"の3ページ
"Connecting the Reset Pin on AVRs"と違う部分があるので
こっちの記述も入れたほうが良いかも。
- Reset pinには、100 - 500kΩの内部プルアップ抵抗があるが、
実験によると周囲がノイジーな環境では不足で、外部プルアップを
行わないとリセットが起こる
- STK500を使う場合のプルアップ抵抗の推奨値は 4.7 - 10kΩ
375 :
774ワット発電中さん:2005/04/24(日) 11:50:11 ID:EWyB8z97
>>373 デバイス毎に異なるってことで一覧表を作るのが一番いいと思うのだが。
データシートの推奨回路見るとどのデバイスもARefはOpenってことになっているんだけど、
使わないときはOpenまたはARef-GND間に0.1uFパラっておくだけってことではだめなん?
(内蔵リファレンスがないAT90SならVcc接続で。)
AT90S8535ってADC使わないときはARef-Vccつながなくても問題ないんだっけ?
>373
>> ATmega8等はリセット時にArefが内部のVrefと接続された状態です(外部基準電圧モード)。
>> これはコンデンサ接続しているだけで良い?プルアップもしたほうが良い?
外部基準電圧モード時に Arefピンは実測で 1.2V あり、AVcc(3.3V) なんぞより
よっぽど安定してたので、内部Vref(1.1V)から適当に抵抗介して繋がってるっぽい。
# あ、この状態で内部Vrefの電源落すとどうなるか試してないな。
まあ、AVCC基準で使うことにしているハードウエアでは Arefにコンデンサしか
繋げられないのだから、リセット時にそういう状態のハードウエアで
そうそう異常が起きることはないはずってことで、プルアップの必要はないんじゃないかな。
tiny26とか、それ以前の奴は373に同じ(w
データシート(ATmega8)に
>AREFピンとGND間にコンデンサを接続することにより、基準電圧はノイズ耐性をより高められます。
という程度の記述だから使用しないときはオープンでも良いのだろうか?
Arefピンって入力ピンでなくて電源ピンという見方をすればコンデンサだけでよいような気もする(AD未使用時)
chan氏のcomポートライターがUSB対応した模様。ただしAVR910類似のハードが必要。
AVR910に対する利点は対応デバイスの多さとデバッグ用COMポートスルーモード。
>>378 WinAVR同梱のavrdudeでもかけますか?
Chan氏といえば、知らぬ間に氏のページがMacのSafariでも読めるようになったので
個人的に激しくうれしい(BBSは相変わらず読めないけど)。
日常業務のメインがMacなので、ちょっと息抜きに見ることが出来るのって
とてもすてきなエレガンスだ、俺的に。
スレ違いスマソ
>>379 専用プログラムが必要。書き込むための仕組みが根本的に違う。
いってみればあれはchan氏のavrspのハードウェア部分(ただのバッファだが)を、
USBシリアル+AVRに置き換えた形。
avrspもコマンドラインで使えるので、makefileに組み込むのは容易だと思われ。
そうそう、昨日やっとmega88+AVR910+avrdudeのテストやってみた。
avrdude.confのavr910デバイスコードにmega8のコードを入れただけ。
avr910側はflash書き込み待機時間とページバッファの有無しか
認識しないのでこれでも問題なく読み書きできるようです。
ただしAVR910は上位・拡張ヒューズには対応しない。
384 :
774ワット発電中さん:2005/04/27(水) 16:19:44 ID:I8WbsTnm
あのー、AVRの40ピンシリーズ、8535と8515が
秋月の通販サイトから無くなっているようですが、
販売中止なでしょうかね?
製造中止
386 :
774ワット発電中さん:2005/04/27(水) 18:26:03 ID:RrTnVLEf
秋月の8535価格+200円でFLASH/SRAM/最高動作周波数2倍なmega16が手にはいるからねえ。
もういらねつーか在庫はけたんでしょう。
2313×18個で2700円ってのはお徳用かも。
ふたつで十分ですよ
digi-key ATMEGA88-20PI(DIP28)が再入荷。あと266個だ。
ついでにATtiny45(DIP8)を発見。242円。ちょっと高いなー。(現時点でWinAVRは未対応?)
>>384 それより、秋月でATMega8とかMega48を置いて(300円くらい)、かつ、AVRISP(4000円くらい)も売ってくれ。
391 :
774ワット発電中さん:2005/04/27(水) 21:34:58 ID:RrTnVLEf
>>390 直してみた。
AVR Memory Usage:
-----------------
Device: at90s2313
Program: 1586 bytes (77.4% Full)
(.text + .data + .bootloader)
Data: 2 bytes (1.6% Full)
(.data + .bss + .noinit)
(・∀・)直った!
392 :
774ワット発電中さん:2005/04/27(水) 21:35:20 ID:RrTnVLEf
>>390 というわけでAVR-Wikiにカキコよろしこ。
393 :
774ワット発電中さん:2005/04/27(水) 21:39:10 ID:W1luQCdS
>>389 mega8もmega48も28ピンじゃん。
40ピンも置いて欲しいぞ>秋月
Mega8系はシリアル使うと8ビットのポートがなくなるから今市なんだよなー。
2313を無理して使うか、40ピンを無駄に使うかの二者択一。
秋月avrからてを引くのか?
って感じがするんだが、いいかげん、新しいのはいらないとなぁ
396 :
774ワット発電中さん:2005/04/27(水) 23:44:18 ID:RrTnVLEf
>>394 そこで内蔵RC発振でつよ。
・・・と思ったが、調歩同期シリアル使うとそれができないという意味か・・・確かにそうだorz
397 :
774ワット発電中さん:2005/04/28(木) 01:38:16 ID:UfgPiuoj
>>396 やっぱり内臓RCでUARTってOSCCAL設定しても無謀ですか?
それ前提の工作を今やってるんですけど(汗
>>397 ATmega48 20台を内蔵RC発振にて通信で使用していたらしばらくしたら通信エラーを起こすやつが出てきた。
LEDを点滅するルーチンを組み込んで同時に起動かけてテストしてみた(すべて同じソフト)
1分もしないうちに点滅がずれてきた。
ちなみにドライヤーで暖めるとすぐに通信エラーが起こった。
すべてセラミック発振子をつけて外部発振にしてみた
通信エラーは全くなくなった。
LEDの点滅も問題なし。
ドライヤーでも大丈夫。
やはり内蔵RCは変動が大きいようです。
399 :
390:2005/04/28(木) 08:35:00 ID:KYdX8CQs
400 :
展殳シ十:2005/04/28(木) 08:37:40 ID:KYdX8CQs
>>397 ボーレートによるんじゃないですか?
昔の音響カプラみたいに300ボーとかでやればいいんじゃない?
(昔のパソコン通信は、画面の文字を目で追えたもんぢゃわい。)
>>400 基準クロックがずれるんなら、ボーレート変えたって同じじゃろうが!
402 :
774ワット発電中さん:2005/04/28(木) 11:27:58 ID:n1+8pPxM
8ビットパリ無しで、前後のスタート/ストップビットで、10ビット。
これがフレーミングエラーにならないためには大雑把に言って5%ズレると
アウト。
Tiny26の内蔵CR発振器の温度特性みると、0℃〜40℃でも2%ぐらいだから
まあまあ、いけるような気がするんだが。最初にお互いをぴったり合わせて
おくといいかもね。
そういえば、AVRのADCの推奨回路みると、10uHのコイルと0.1uFのコンデンサ入れろってかいてあるんだが、
この10uHのコンデンサって、周波数で言えばどのあたりを落としたいんだろ?MHz帯?
404 :
774ワット発電中さん:2005/04/28(木) 12:09:29 ID:UfgPiuoj
>>403 LCローパスフィルタとしてみればカットオフ160kHz?
>>402 通信は2台以上で行うものであるから、その複数台がすべてAVRだと考えると
±の誤差があると考えると±2.5%が最大許容範囲と考えたほうが良いと思います。
>>399 ちょっとみてみましたが、at90s4414のSRAM=352バイトっていう中途半端な値の意味がよくわかりません。
256バイトですよね?残りの96バイトはどっかからか引っ張ってこれるんでしょうか?
>>404 fcut=sqrt(1/C/L)/2π ですね。
ただ、Rを20Ωくらい入れないと、変な共振がでちゃうわけだが、まー配線抵抗とかるから、まぁいいのか
408 :
774ワット発電中さん:2005/04/28(木) 13:00:41 ID:UfgPiuoj
>>406 8534/4414/4434/2333/2343変ですね。
使い方見てもここにはSRAM容量が入ればいいように思えるけど、
なんなんでしょうね?実はバンクRAMでもあるのかとデータシート見てしまった(w
mega103の4000バイトは・・・これは本当にそうみたいね。
409 :
774ワット発電中さん:2005/04/28(木) 13:32:48 ID:UfgPiuoj
AT90S8534って・・・・あったっけ??
>>406 AT90S4414
$0000-$001F 32 バイト
$2020-$005F 64 バイト
$0060-$015F 256 バイト
を全部たしたものではないでしょうか?
411 :
410:2005/04/28(木) 15:28:49 ID:xQskLSg5
一部ミスった
$0000-$001F 32 バイト 汎用レジスタ
$0020-$005F 64 バイト I/Oレジスタ
$0060-$015F 256 バイト 内蔵RAM
でも avr-mem.sh であえて DATAMAX=352 と書いてあるのが不思議ですよね?
たとえば
at90s2323 は DATAMAX=${AVR128}
at90s2333 は DATAMAX=224
の様に同じようなメモリ構成でも定義が異なっているし
ケアレスミスの様には見えないし(複数あるので)
何なんでしょう?
413 :
774ワット発電中さん:2005/04/28(木) 17:28:54 ID:UfgPiuoj
>>411 AT90Sシリーズならみなその96バイトはあるのに、一部だけ96バイト足されているというのもわからん。
外部SRAMも関係なさそうだし。
明らかにATMega48とかは間違いなんだから、どこかにメールか投稿かすりゃいいんだろうけど、
どこにすればいいんですかね?
415 :
774ワット発電中さん:2005/04/28(木) 17:53:11 ID:w9/nLP8s
>>415 おーさんくす。wikiにも貼っといてください。
>>415 4414で変数領域をフルに使うプログラム書いてみて
シミュレータにかけて挙動みてみればいいんですかね?
どっからかメモリ調達したら神とよんでもいいなぁ>WinAVR
418 :
774ワット発電中さん:2005/04/28(木) 18:10:52 ID:w9/nLP8s
>>415 了解。ついでに96バイトの謎も質問しておきました。
関係ないけど
was going off
みたいな、簡単な単語の熟語って本当に難しいよね。
ちなみに go offをgooで調べると
go off 立去る; 逃げる; 消える; 中止になる; 使えなくなる; 〔英〕 (食物が)腐る; (質などが)落ちる;
(色が)さめる; 眠る; 意識を失う; 死ぬ; 発射される, 爆発する; 突然鳴り出す; 急に…し出す ((into)); 起る;
(事が)運ぶ ((well, badly)); 売れてなくなる; 発送される; 奪う, 盗む ((with)); …から外れる; 〔英話〕 …がきらいになる.
と、ロクな意味が出てこない(w
>>420 たしかに、変なのはatmelがデータシートを提供していないat90sシリーズに限られているね。
でもそれならRAMEND-$005Fすればいいのにね。SRAMが$0060から始まっているかどうかも
データシートがないと確認できないというスタンス??
>>422 まー4414なんて誰も使わないから、どーでもいいっちゃどうでもいい
digi-keyでも入手できないしな。
AVRシリーズ全部集めてたけど途中でコレクションする気が無くなった。
全部冶具や工作につかっちまった。
全部撮ってwikiに上げでもしたら良かったのに・・・
種類は少ないが、×スピード違い×パッケージ違いで相当な数になるからなぁ。
入手難も多くて途中で嫌になる(w
使ってやらんとかわいそうだぜ
429 :
774ワット発電中さん:2005/05/01(日) 14:06:24 ID:80eDm8EX
格安でAVR始めたいんですけどライター売ってませんか?
>>429 テンプレ(
>>4)参照。自作ライター関連情報が集まっているページがあります。
新しいデバイスに対応できないライターもありますので、AVR-WikiのFAQページも参照ください。
432 :
774ワット発電中さん:2005/05/01(日) 22:39:32 ID:krta9wEq
本当はDigi-keyからATMega8とATTiny26とATTiny13と、
純正書き込み器のAVRISPをまとめて買うのがお勧めなんですけどね。
>>432 まあ既製品って楽ですからね。ライター自作も楽しいがそれに費する時間を
工作に当てた方がよいという考え方もあるし。
434 :
774ワット発電中さん:2005/05/02(月) 10:47:17 ID:mHMKqQUt
435 :
774ワット発電中さん:2005/05/02(月) 12:50:44 ID:gqH9L61T
この頃のノートはパラレルなんかついてないからなぁ。
シリアルも無いんだけど、USB−シリアルが使える「場合もある」から。
USB−パラレルは、こういう場合はまったくダメポ。
実家のパソコン(FMV)、デスクトップだからレガシーポートあるだろうと
思っていたら、甘かった…○| ̄|_
あーあ、やることねぇ
437 :
sage:2005/05/02(月) 15:20:39 ID:FoI6MUu4
>>435 USB−パラレルってポート直接操作できないの?
パラレルポート使ってるFLASHマイコンライタって結構あるけど、
そういうの全部使えなくなっちゃうんだね。
>>437 >パラレルポート使ってるFLASHマイコンライタ
自分はシリアルポート派、と書いてみる。
シリアルのアダプタだとできそうだけど、大抵のアダプタは電圧幅が低すぎて書き込めなかったりするらしい。
USB-パラレルでポートを直接操作してる人いるのかな。
ドライバ書けば出来るけど、アプリケーションな方もそのドライバ経由するように直さないといけませんな。
Win98あたりはVxDでごまかせるか。
440 :
774ワット発電中さん:2005/05/02(月) 19:24:36 ID:f4QYZLRo
>>438 USB-シリアルで、API経由でやった例
http://elm-chan.org/bbs/?lang=ja&show=3835 似たような結果になるのではないかなあ。
自作系ではAVR910改か、最近出たchan氏のspi-bridgeか、Optimizeさんとこの
EZ-USBライターが現実解?どちらもライターにプログラミングが必要な点が難点。
USB-IOあたりを使えばハンダ付け+専用ライター作成でいけそうだけど、かなり遅いようです。
100コマンド/sec程度だとか・・・・AVRプログラミングに使ったら5バイト/sec程度。
>>439 トラップでエミュしてくれるほど気の利いたドライバなんてあるんだろうか?
仮にそうだとしても
>>440のような結果になる希ガス…
やっぱりパラレルンじゃ無理ぽ
やはりchan氏のが実用レベルだな。
話は変わるがatmelのjtagiceをusb-com変換で接続して
書き込みしてみたけど(mega16でためした)体感速度はレガシーcomと
ほとんど変わらなかった。
443 :
774ワット発電中さん:2005/05/02(月) 20:39:19 ID:XhOQ6BQC
誤爆すまそ。
>444
△末期のおにゃんこくらぶ
○末期のフィンガーファイブ
>>443 変わったコネクタ使っているね。機器側がUSB-Aコネクタか。
OLIMEX製かな。
買ったは良いが、コネクタがアレなので結局使ってない・・・○| ̄|_
>>448 Aコネクタ2つ用意してぶった切って結線。
>>448 そういうケーブルって売ってなかったっけ?
kamAVRって、初期設定ファイルってないんだよね?
ATMega128/8MHzがデフォルトみたいだけど。
まー使いたいCPUで空のプロジェクト作っておけばいいんだろうけどね。
あとAVRDudeを起動できないのも惜しい。
kamAVR
起動時に最大化になるのをパッチしたのと、
ついでにコンパイルにショートカットを追加したら使い勝手が良くなった。
あとはライタだけだな。
オープンソースの予定しているみたいなのでそれから弄るか。
(中身はDelphiか)
ATTiny45がDigiKeyから入手できるみたいなので使ってみたいんですが
C:\WinAVR\avr\include\avr\iotn13.h を コピーして iotn45.h
ってして、適当に新機能のIOを記述すればいいんですかね?
455 :
774ワット発電中さん:2005/05/06(金) 16:30:06 ID:uvid/Nae
>>454 IOの定義だけじゃなく、使える命令群(avr1-avr5グループ指定)などもいるから
それだけではだめじゃないかな。
iotn13.hをバックアップしておいて、書き換えたiotn13.hを使ってtiny13として使うってとこ?
>>455 命令群については -mmcu=avr2 の様に指定すればコンパイル可能。
でも io.h がらみの変更は必要ですよね。
ATtiny45はATtiny13と命令体系は同じですので avr-gccをパッチかけてコンパイルしなおせばよいだけですが
面倒ですね。
avr-gcc 4.0 では組み込まれるようですが、avr-gcc 3.4.3 ではもうアップする予定はないようですね。
なお avr-gcc 4.0 ではATtiny13/2313になって追加された命令もサポートされているようです。
(avr2-⇒avr6??)
459 :
774ワット発電中さん:2005/05/10(火) 00:22:39 ID:EVNoz+sO
すんません、ATTINY2313をChaNさんのところのライターでISPの書き込みしようとしたら書き込めず
外部につけてたRESETようのプルアップ22kをはずしたら書けるようになった…
つうわけでやっぱ30k?40k?
AVR-Wikiにあげた ATTiny25/45/85対応の WinAVRでファイルが不足していました。
ファイルを小さくするのに削りすぎてました。orz
今までダウンロードされた幾人かの皆様申し訳ありませんでした。
追加分をアップしましたのでよろしくお願いします。
アメリカからAVRISPが届いた(゚∀゚)!
初めてデジキー使ったけど、あっという間に届いたぜ。値段も安かったし、よかった。
さっそく明日からなんか作るぞー。
無目的に買ったのかっ(w
>>461 Digi-Keyで頼んだのなら、ついでにATMega8の25個大人買いとかしたんでしょ?
何買いましたか?
みんな!AVRはLEDを点滅させるためだけにあるんじゃねーぜ
そこから上を目指せ!
あっ
届かない・・・ (´・ω・`)
467 :
774ワット発電中さん:2005/05/14(土) 09:47:34 ID:WiJjtvCN
ライター作って満足してしまいましたが、何か?
ってことはないようにしたい
パラポートないんで専用書き込み機買うかなーと思ってた矢先、
PS/55noteが2000¥で売ってたので買って来てライタ専用にしちゃった。
トータルコスト2500¥。やっぱAVRは安上がり。
>>468 場所食うじゃん
俺も専用冶具PC買ったけど、一応W2KでAVR StudioやMPLAB動くように、
7000円くらいのSocket 370 700MHzクラスの中古マシン買ったよ
LPTポートとCOMポート×2がついてて、PCIスロット×2くらいある
省スペースクライアントのリース上がり品
ディスプレイは元々机にあるやつが2系統入力なのでそれ使う
ハードの値段しか書いてないようだが
O S も 買 っ た ん だ ろ う な
471 :
774ワット発電中さん:2005/05/14(土) 18:26:36 ID:WiJjtvCN
>>470 DOSならついてるだろ。DOS対応ライターソフトもあるし。
苺にmega168登場。
いつのまにかdigikeyでも入手可能になってたのね。
>>472 Mega168ってMega88とSRAM領域は一緒なんだよね。
倍だったら本当にいいのになぁ
474 :
開発:2005/05/15(日) 06:19:35 ID:u9rvEEOY
AVRってコピー出来るの
476 :
774ワット発電中さん:2005/05/16(月) 20:27:12 ID:x6vL43KY
477 :
774ワット発電中さん:2005/05/16(月) 21:23:29 ID:7ofYNf+r
>>474 うちのファミリーコピアでやってみたらちゃんとコピーできたよ。
Xeroxでも大丈夫だと思う。
479 :
774ワット発電中さん:2005/05/16(月) 22:30:23 ID:V/ylqpwS
MOSトランジスタについて、
電圧をかけて温度が上がっていくとき、
1 Tr内の電力損失で温度が上がる
2 温度が上がると電子のエネルギーが増える
3 荷電子帯の電子のいくつかが伝導体にあがる
4 電動電子が増えたことにより電流が増える
5 Trで消費される電力も増える
この繰り返しだと考えてしまっていいんでしょうか?
他に何か要因がからんでくるんでしょうか?
480 :
479:2005/05/16(月) 22:37:39 ID:V/ylqpwS
すいません書くとこ間違えましたm(_ _)m
般 波 羯 即 実 呪 多 三 般 倒 掛 般 無 無 明 法 眼 是 不 亦 色 厄 多 観 摩
若 羅 諦 説 不 是 是 藐 若 夢 礙 若 得 老 亦 無 耳 故 生 復 即 舎 時 自 訶
心 僧 羯 呪 虚 無 大 三 波 想 故 波 以 死 無 眼 鼻 空 不 如 是 利 照 在 般
経 羯 諦 曰 故 等 神 菩 羅 究 無 羅 無 盡 無 界 舌 中 滅 是 空 子 見 菩 若
諦 説 等 呪 提 蜜 竟 有 蜜 所 無 明 乃 身 無 不 舎 空 色 五 薩 波
波 般 呪 是 故 多 涅 恐 多 得 苦 盡 至 意 色 垢 利 即 不 蘊 行 羅
菩 羅 若 能 大 知 故 槃 怖 故 故 集 乃 無 無 無 不 子 是 異 皆 深 蜜
提 羯 波 除 明 般 得 三 遠 心 菩 滅 至 意 色 受 浄 是 色 空 空 般 多
薩 提 羅 一 呪 若 阿 世 離 無 提 道 無 識 聲 想 不 諸 受 空 度 若 心
婆 蜜 切 是 波 耨 諸 一 掛 薩 無 老 界 香 行 増 法 想 不 一 波 経
訶 多 苦 無 羅 多 佛 切 礙 陀 智 死 無 味 識 不 空 行 異 切 羅
呪 真 上 蜜 羅 依 顛 無 依 亦 亦 無 觸 無 減 相 識 色 苦 蜜
耳無し芳一の体に書かれたお経は…
般若心経である
ヘェー
納期は今日だ。
お経でも読んで落ち着いてかかろう。
>>482 ティムポや玉袋には、お経書き込んだのですよね?
取られなかったわけだし。
般 波 羯 即 実 呪 多 三 般 倒 掛 般 無 無 明 ・・・・・・
意味不明でさっぱり分からん。
>>481 どこを縦読みすればいいのですか?というのはおいといて、
ぎゃーてーぎゃーてー はらぎゃーてー
ぼーじーそわか はんにゃーしんぎょ
数十年前に卒園した幼稚園の教育ってのは、ずいぶん効果的だったようだ。
いまでも覚えているぞ。なぜあの頃にオームの法則を教えてくれなかったのか(w
はらそーぎゃーてー
が抜けてたな。どうでもいいが。
>ぎゃーてーぎゃーてー
そこって小さい子供でも覚えやすいんだよな。w
あとは「しゃーりーしー」とか。
俺は幼稚園の時には習わなかったが、先週末の親父が死んだときに坊さんが説教してくれたから読める。
>>481 すまんがIntelHexにしてくれんか?書き込んでLPM命令で読むから。
>>492 PageR/Wがある分だけUSBaspの方が有利だよね。
>>494 USBをシリアル変換せずに使うのが王道というかまともな使い方なんだろうね。
でもそれなら無理してAVR使わずにEZUSBなどのUSBマイコンがましだろう。既にあるし。
>>495 USB機能を持ってないCPUでUSBするというのがマイコン野郎の心をくすぐると・・・
>>496 まあライターを作ること自体が目的ならそれもありだが。
>>492 手持ちの部品で足りるから、この週末に作ってみるか・・・
虎の子のMega8のストックを吐き出すには値するものと見た
いまAVR系の冶具はSTK200ドングルしか持ってねーし
>>498 是非お願いします。
レポもよろしく・・・ワクワク
>>498 面白そうだね。IgorUSBのときはとりあえずUSBしました!だったんだけど、
今回は仕事しているわけで。
USB-IOの代わりだと思えば結構いい仕事してると言えるかも知れない。
クロックは12MHzでなきゃダメなんかな?
もうちょっと詳しい解説ある?
つっか、単にUSBIOとして使いたいんですが。
クロックについてはF_CPUを12MHzと定義しているところがありますね。
12MHz以上で1.5MHzの整数倍なら桶なハズ…
送受信ルーチン書き直しは必須だが。
秋月で24MHzのクリスタルオシレータが200円で売ってるから、手持ちの74AC74あたりで12MHzにするのが安くすむかなー
引き回しも拘らなくていいし。
オプティマイズさんのとこに、いつの間にかATMEGA168とTINY13Vが加わわってますね。
>507
それ IgorUSB (の解説)。
IgorUSB は USB → シリアルの変換だけでなく、
おまけでポートの読み書きも出来るようになってる。
>>508 IgorUSBとは違いますよ
Igorよりも我々のほうが良いと書いてある。
(ハードでなくてドライバが)
>508
おお、ほんとだ。
たしかにコア以外はあらかた C になってる。gcc 化されとる。
ただ USB以外の割り込み使ってないのは惜しい。
Igor が苦労してんのは UART と USB の割り込みの共存なんで。
511 :
498:2005/05/22(日) 22:44:12 ID:aDMGD5Gd
作ってみますた・・・
するっと動いた・・・
(原典通り12MHzの水晶を使ったので、当たり前と言えば当たり前だが・・・)
しかし私はaverdudeを全く使ったことがないので、
(STK200 + PonyProg or BASCOM内蔵ライタで安直道一直線だった)
これを理解するまでレポートできまへん _| ̄|○
>>507 こういうプログラムがアセンブラでガンガン組めたらなぁ・・○| ̄|_
その前にまずUSBのプロトコルをしらなすぎる。
('A`).。oO(安直にEZ-USBに流れそうだ・・そういやラオックスの100円
メモリースティックリーダにFX?が乗ってるんだけど誰か改造した?)
('A`).。oO(AVRでS/PDIFデコード出来るかなぁ?)
AVRでUSBってどの位速度出せるんだろう…バルクとかイソクロナスでデータガンガンはどう考えても無理か…
>>512 なにっ!?EZ-USBFXならほすぃ…詳細希望…
LSという時点でバルクもイソクロも不可能なのだが…
せめてFSでないと遊べないなぁ。
>>513 秋葉原のラオックスジャンク館?に一個100円でメモリースティックリーダーが
あって、ばらしてみると(鉄板みたいのがハンダ付けされてるけど)EZ−USBFXとかが
のってましたが・・繋いでみてすらいないんで書き込めるかは不明です・・
516 :
513:2005/05/25(水) 01:12:05 ID:yidoLKgt
>>514 自作ゲームパッドとかの組み込みには安上がりで良いかも
EZ-USBだと結構良い値段するし
>>515 thx
やっぱり秋葉か…買いに行くべきか…う〜む…
517 :
513:2005/05/25(水) 01:20:33 ID:yidoLKgt
連投スマソ
>>515 良かったら該当製品の型番教えてくれると嬉しい
地元にないか探してみたい…
518 :
774ワット発電中さん:2005/05/28(土) 18:16:13 ID:v+nEp/bz
USBaspがらみで12MHzの水晶を入手したいのだけど、
メール便で送ってくれそうな通販屋さんある?
やっとavrdudeのドキュメント読みますた('A`)
USBASPもろもろ
・速い! ターゲット90S2313に840バイト書き込みジャスト2秒、読み出し0.3秒
・同梱のピルド+パッチ済みWin32版avrdudeは4.4.0ベース
本家で公開されているWin32版バイナリは4.3.0なので、USBASP持ってなくてもこれ使うとイイ
・Mega8のPD0、PD1から10ピンISPコネクタに行っている配線(シリアル用?)は、
多くのターゲットがISPの4ピン・8ピンをGNDに落としてるので、配線しないでおいた
・ライタの電源をUSB側から供給するので、ターゲットに繋いだままUSB側を抜くと
ターゲットが動かなくなる('A`)
ターゲット側から電源を供給するバッファを入れて、RESETがLowに落ちないようにするとよさげ
・USBハブの先に繋いでも問題ないが、電力不足をPCに申告しないので注意
当初3度に2度くらい書き込みに失敗したので、?と思ったらハブがバスパワーだった(;´Д`)
・USBをやたら抜き差しすると、その直後は書き込みに失敗しWrite LED(赤)が
つきっぱなしになるが、eraseを実行すればリセットされ以後は安定するみたい
来週は、12MHzセラロックに差し替えて使えるかどうか試してみるつもりでふ
やっぱり安直なSTK200がいいので、その後はお蔵入りの予定('A`)
521 :
774ワット発電中さん:2005/05/29(日) 13:28:42 ID:kl9VwFwj
>>520 これってその都度PCからプログラムをUSB経由でダウンロードして動作するのかな?
秋月でSTK500を個購入したところ問題発生。
AVRstudioの最新ファームのバージョンupができない。
4.0は認識するけど4.1の最新バージョンはインスト出来てもSTK500を認識せず。
パソコンを変えたり一旦アンインストしたりしたけどダメ。
日本語マニュアルを丹念に見たら下記のコメント・・・・
-------------------------------------------------------------------------
(訳補)AT45D021が終了となったため、代替となる後継製品に置き換えされます。この切り替え時期の一部STK500でDATAFLASHが実装されていない場合があります
-------------------------------------------------------------------------
すかさず秋月に問い合わせしたところ
「当社のSTK500は全てAT40D021は載っていません」とのお返事。さらに
「ファームのバージョンupが出来ないことの報告は受けています」とのことでした。
これってここでは既出だったでしょうか?
ほかと比べて安いのに理由があっとは言え、ライターとして流用を考えていた自分としては非常に痛い。
>>523 >ほかと比べて安いのに理由があっとは言え、ライターとして流用を考えていた自分としては非常に痛い。
ライターってAVRのライターのことですよね?
AT45D021とは関係ありませんけど。
STK500/AVRISPの通信プロトコルがAVRStudio4.11から変更になっています。
STK500/AVRISPはファームウェア2.0以上を使用することになります。
ファームウェアのアップデートを行ってください。
逆に新ファームにするとAVRStudio4.10以前では認識できなくなります。
>>523 AVRStudioからではなく
AVRStudio4.11のインストールディレクトリのAVR Studio4\STK500\Upgrade.exeを直接起動して
ファームの更新できませんかね?
当方はDigiKeyで購入しましたがやはりAT45D021はついていませんでした。
ファームの更新は出来ました。
>>524 即レスTHX
いえいえ、そのSTK500のアップデートが出来ないんですわ。
だからAVRstudioをファームupしても通信できないんです
手動でやる方法も書かれてましたけど(起動時にプログラムボタンを押して〜ってところ)ダメですた。
それで本来そこの横にあるはずのAT45D021がなんか絡んでいるのかなとオモタしだいです
方法あったら教えて欲しいっす。
>>525 マジっすか!?
ちょいと試してみます!
返品は受け付けてくれると言われたのですが、やれるならやってみるっす。
ちなみに秋月でもこのファームの問題は結構報告が多いそうです。
AT45D021について問い合わせしたら即答されましたし・・
今試したけど、やっぱりダメポ
ダイアログは開けるものの、ステータスには Error:No programmer foun と表示されてピクリともしないです(悲
4.0はちゃんと認識するんでパソコン側の問題ではないような気もするけど
秋月いわく、「upの方法は無い」と断言されたのでやはりなのかどうか・・
誤解を招くといけないので補足すると
秋月側の回答では
「AT45D021が原因かどうかは断言できないが、それが一因の可能性がある」との回答でした。
対応は親切に応じて頂きました。
ファームウェアはSTK500の制御CPU(AT90S8535)に書き込むものですからAT45D021は全く関係ありません。
念のためSTK500と同時に購入した2台あるAVRISPの1台もアップデートしてみましたが更新できました。
AVRStudio4.11の[Tools]->[Program AVR]->[Connet]ではどういう症状になりますか?
AVRStudio4.0では認識するとのことですので
AVRStudio4.11のSTK500ディレクトリにあるSTK500.ebn(Firmware)を4.0のSTK500にコピーして
古いAVRStudioでアップデート出来るような気がしますが・・・
(古いのは保存しておくこと)
STK500.iniもコピーが必要かも
連投スマソ
Upgrade.exeについて
STK500の電源の時にPROGRAMボタンを押してfirmware-programmingモードにした後に
Upgrade.exeを起動しなければ認識しません。
>>ICjua9BXさま
仰られる通りの
>>533のやり方で無事に4.11へファームアップできました。
ここ2.3日あれこれ悩んでいたのが嘘みたいです
秋月社のほうへもキャンセル無しの連絡しておきました(汗
ありがとうございました!
>>534 ついでに秋月さんのとこにも顛末を送って、
今後のサポートに生かして欲しいとお願いして
STK500の最新ファーム更新について
AVR Wiki の AVRよくある質問(FAQ) に方法をまとめておきました
結局AT45D021の問題ではなく、オペミスだったということですか?
ただしATMEL側のドキュメントの不備に原因があるので、ミスというよりハマリですか。
秋月は問題を把握してるように見えて、何も把握してなかったということですね・・・
STK500については、秋月では、言うほど数を売ってないんでしょう、たぶん
つーか
AVRのラインナップを見る限り消極的な印象。
バッタものが流れてこなくなったら打ち止めじゃないのか?
40ピンがサイトから消えたがmegaを扱いそうにもないし。
megaを扱い出したら、PICをわざわざ使ってくれるユーザが減ってしまう
>>539 いやーPICでCCS-Cに5マンも6マンも投資したあとだと、
悔しくてAVRには転向出来ないだろう(w
あと、日本でのチップの入手のしやすさではPIC>>>AVRだからなー
あと本とか。
>>540 秋葉まで行けるんなら入手性はあまり変わらない気も…
>>540 digikeyがやっぱりお手軽。
日本の製品も_| ̄|○
秋月安くて(・∀・)イイ!!
高性能なものが手に入りにくいけど、
次第にまたバッタものとして次のが出てくると思われ。
AVRも出た頃より値段下がってるし、
AVRじゃない新しいマイコンでもまあいいし。
>>540 PICで初めてプログラムを始めました。CCS-C PCMを使用していますが、初心者にはその組み合わせ
とても使いやすいのですが、AVRされる方はPICダメダメと書き込み見ます。
Cを使用する限りチップの違いは、なくなるように思うのですが?
シビアなタイミング物とかは、どうかわかりませんが。
>>543 ん万円払う必要があるPICと、タダのAVRには、
誰にも文句の言えない差がある
あと、PICはミッドレンジのRAMが少な杉
コンパイラで吸収できない違いは、他にもいろいろある
PICに部品代しか払ってない………。
しかも田舎なので部品の入手が(汗
最近の事情は知らないが、秋月って在庫限りの物とかは別にして
売れてるICは普通の代理店から仕入れてた気がする。
価格とか品揃えについては代理店のコントロールがあるのかも。
547 :
546:2005/05/31(火) 08:04:29 ID:2vPfZuLz
誤解があるとまずいので補足すると、
例えば、秋葉原で売られている価格はスポット価格(時価)を反映するから
半導体メーカーとの価格交渉で有利になるように、わざと安い値段で
販売店に卸して価格破壊させることがある。
コントロールといっても、あくまで販売店側の供給のやり方の話で、
秋月とつるんで何かしてるという意味ではない。
548 :
546:2005/05/31(火) 08:06:19 ID:2vPfZuLz
慌てて書いたのでミス。恥の上塗りだなこりゃ。
×あくまで販売店側の供給のやり方の話で
○あくまで代理店側の供給のやり方の話で
549 :
774ワット発電中さん:2005/05/31(火) 08:10:23 ID:8FYjFmCE
>>543 そのccs-c pcm とやらは、
char buf[256]
とか出来ますか?
>>544 PCM $149 秋月ライタ 1万 ぐらいします。初心者入門でもこの価格で安心?して
始めることができることを思えば、安いと思っています。
>コンパイラで吸収できない違いは、他にもいろいろある
勉強不足でして時間があれば、いろいろ教えてください。
>>549 int const data[256]=
{
*, *,略
};
としてしか、書いたことがありません。
とんちんかんだったら、ゴメン。
Cのインプリメントの素直さで言えば、
H8など >> AVR > PIC
だな。avr-gccにも嫌らしい方言はあるし、PICは既にCではない(w
552 :
774ワット発電中さん:2005/05/31(火) 13:08:21 ID:uMFV0pgw
>>550 変数領域の配列を256バイト連続で取ったりできますか?
という意味だと思われ。
まあできないならできないなりの使い方があるんだからいいんじゃない?
256バイトの配列をとれないとできない用途の時だけ問題になること。
逆にavrgccだと定数領域配列を
>>550のようには簡潔に書けなかったりする。
宣言も参照もちょっと複雑だよな。gcc流と言われればそれまでだが。
>>543 AVRの方が…
・圧倒的に速い
・基本的にISP可能
・ADC、コンパレータ搭載機が多い
・有志の手によるかなりの数デバイスの日本語データシートがある
・全デバイスフラッシュROM内臓
間違っていたらスマソ
554 :
774ワット発電中さん:2005/05/31(火) 15:34:56 ID:uMFV0pgw
>>543 釣りかとも思うのですけど、なんかマターリした書き込みなので釣られてみます。
まあなんというか、先に書いたように目的さえ達せられるなら
PICでもAVRでもなんでもいいんですけど、それでも差はあると思います。
1.スピード
まあ一番言われるのはこれでしょう。C言語上で同じ操作をしても、
レジスタが複数あるAVRだと、レジスタをうまく駆使すれば
SRAM上データをレジスタに持ってくる頻度をかなり減らすことが
できます。最適化なしだとSRAMとWレジスタの演算ができるPICの方が
ステップ数少なく演算できそうですが、最適化によって逆転することが
多いと思われます。アセンブラだと32個のレジスタの存在はかなりの差になる。
多少命令数が多い(水増し命令もあるが)のも、命令数の節約に役立つ。
そしてステップあたりの実行速度が速い。PICの20MHz駆動と同等の
時間あたりステップ数を実現するAVRは、5MHzになります。
最速のAVR20MHz駆動に相当するPICは80MHzとなり、SX持ち出してもだめ、
PIC18なら勝てる(うろおぼえ)って感じかと。
もちろんスピードを要求しない用途には意味のないことだが。
2.使いやすい割り込みーまあこれはC使えば関係ないか
3.SRAMの使いやすさ(
>>552)
逆に、メモリ少量でいい場合にはアドレスが16bitであるのが逆にうっとおしいけど
4.FLASHをデータ領域に使う場合の効率
PICだと1ワード=1バイトですよね?AVRは1ワード=2バイトとして使える
>>554 >最速のAVR20MHz駆動に相当するPICは80MHzとなり、SX持ち出してもだめ、
SXは50MHzのクリスタルで50MIPSです(PICの200MHz相当)
また75MHz/100MHzのSXもあります
スピードだけならAVRはSXには勝てません
556 :
774ワット発電中さん:2005/05/31(火) 15:41:06 ID:uMFV0pgw
ついでに
dsPICなら30MIPSバージョンが手に入るので高速なPICとしても有効
まあこちらは16bitCPU扱いになるので8bitCPUのAVRと単純比較は出来ないが
ちなみに私はAVR野郎です
tiny2313-20をDIGI-KEYで購入。
内蔵RC発振周波数がマニュアルによるとデフォルト値が8MHzとありますが
ヒューズを読み出すとCKSEL3-0が0010となっていて4MHzなのは
仕様なのでしょうか?
>558
出荷時は4MHzが選択されているのが正しいようです。
さらに言うと、CLKDIV8ビットもプログラムされているので500kHz動作になってる。
560 :
774ワット発電中さん:2005/05/31(火) 18:10:12 ID:8AyrUX4d
561 :
774ワット発電中さん:2005/05/31(火) 18:48:14 ID:uMFV0pgw
>>560 釣られついでに。
>秋月でAVRみてきたけど。
秋月で見るなぁ(ToT) 過去レス参照
まあ正直、秋月で買える vs DigiKeyで大人買いだと安い というのは大きな違いとは思う。
秋月で1個220円だと2313になっちゃうからなあ。
比べる相手がコレしかないってのも・・・・orz
プログラムメモリ、EEPROM,SRAMは1/2、
I/Oは15本、1本足りない(w
タイマーは16bitx1,8bitx1
コンパレータは1つ(Vrefモジュールないよ)
USARTはあるけどSCIねーよ
CCP(PWM)モジュールはいちおうあるよ
内蔵オシレータねーよ
10bitA/Dコンバータねーよ
「国内で」この価格だと勝てないなあ。
@400円位にするとmega88あたりがエントリできるんだけど。
http://g211008082139.dhcp020.icnet.ne.jp/~hero/pdf/MEGA88.PDF >秋月で見る限り、AVRにPWM出力とか無いような感じで書かれてるけど
とりあえずあるけど・・・たいがいのは2つか3つ、mega88とかは6つ。
>16F648でだけど、大抵1ワード=14bitだよ。
でも実際にデータ記憶場所として使う場合、それに14bitのデータ記憶できる?
実際にはRETLW命令など1ワードあたり8bitのデータしか記憶させられないのでは?
PICにGCCがあれば、別にPICでも構わないんだが。
逆にPICは高級言語じゃないと、書く気になれん。
sdccのPICサポートは出来たんだっけ?
PWM出力が6つのもあるのか………。
>1ワードあたり8bitのデータしか記憶させられないのでは?
そのとおり、そのかわり220円のチップで4Kワード使える。
内蔵オシレーターが無いのがちょっと残念かな。
ただMCLRのピンをI/Oに使うとLED繋いで出力はできないので。
水晶外付けだとさらに2本消費する。(内蔵クロックでI/Oで使用可能)
>まあ正直、秋月で買える vs DigiKeyで大人買いだと安い というのは大きな違いとは思う。
DigiKeyは送料とかがねぇ(汗
秋月送料値下げしてるし……、そこまで買わないからな〜。
共立も見てきたけどAVRの数が少なかった………。
共立で売ってるPIC10F206T-I/OTの1個147円はゴミのように小さいです(笑
MEGA88のデータシートいただきます。
500円あれば、PICならこれかな〜。
http://akizukidenshi.com/catalog/items2.php?c=pics&s=name&p=1&r=0&page=2#I-00095 ついでに16F648の消費電流は3V32KHzで28μA・内蔵クロック4M3Vで785μA・外付け20MHz5Vで3.5mAです。
もっと流通して安くてメモリ多くなったら、AVRもやってみたいです。
568 :
いいかげんにしろ>をれ:2005/05/31(火) 19:33:43 ID:uMFV0pgw
>>564 個人的には本よりも日本語データシートが充実しているAVRの方がありがたい
出来れば英語データシートと格闘したくないのでPIC使うにしても選択技はかなり限られるし…
EZ-USBはかなり地獄だったよ… 。・゚・(ノД`)・゚・。
>>567 こりゃSHとかと勝負する気かw
>>567 dsPICはdigikeyかbuy.microchip.comで買えるつーか
6012積んだスターターボード買って評価版のCと
フリーのライブラリ使って音声処理とかで結構遊べた
けど30MHzだから凝った事は出来なかった
変な風にモーター回すのには向いていそうな印象
釣りでは無いデシ。皆さんの書き込みより私的にpicは
1.スピードが遅い。
2.ccscは、今頃のcでは無い?。
3.レジスタなど内部的に好きになれない。
ので、玄人筋は気に入らない。で正解?。
プログラムをアセンブラでは絶対書けないので、ccscの情報をネット、本で見てから本気?で遊びだしました。
先にネットなどでAVRの無料cのことを見ればAVRしたかもしれません。
元気が出れば、AVRしたいとは思うが頭がついてこない。こんがらがる予感。
H8使えばいいやん
妙にスレがのびてると思ったら…ゴルァ!
藻前ら、能書き垂れてる暇があったらPICにできない何かを作ってUP汁!
574 :
544:2005/06/01(水) 00:54:09 ID:yQHG+id0
>>564 >>569 確かに日本語の情報が断然少ないというのは、AVRの側が負けている
「誰にも文句の言えない差」だ・・・
HERO氏はネ申だが、万死に値する半角カタカナ厨だしw
俺は英語には自信があるんだけど、第二外国語がみごとに全くできない
ネットの情報でAVRを使いまくろうとするとドイツ語オンリーのページに行き着く
マジでいまドイツ語をアーベーセーから独習中だよ('A`)
アーベーセーデーですか。
頑張りますね〜。
そこに第一外国語がBASICの漏れが来ましたよ?
日本人がAVRの洋書を書いてるのに和書が無いのがふしぎっちゃ不思議
>>573 自分で作ったわけではないがAVR309: USB to UART Protocol Converterなんかは如何?
自作USBパッド/キーボードとかのマイコンには安上がりで良さそうだ
>>574 俺は日本語データシートさえあれば何とかなるので本が少ないのは気にしない
確かにHERO氏のデータシートは半角カナたくさんだし、重いしであまり好きではないが背に腹は代えられない…
PICの英語データシートを読む労力を考えればはるかに楽
>>578 >自分で作ったわけではないがAVR309: USB to UART Protocol Converterなんかは如何?
それIgorUSB
すでに知っている人の方が多いし
>>573 ChaN氏が出してるDSPもどきみたいなのもAVRじゃないと苦しいね。
え?DSP使え?ごもっとも
>>581 まあそれはUSBI/F内蔵PICと、PICの名を冠した別のMPUですから・・・
まあAVR以外の8bitCPUに出来てもいいけど、AVRファンとしては
どうしても贔屓な発言したくなると言うことで
そういえば、PIC系でもSXならソフトウェアUSB十分出来そうだけど、出てるのかな?
>>582 そういえば、HeroさんんとこのPDFって、文書内検索すると時々エラーでない?
何使ってPDF化してるんだろう?作成ソフトの問題ならカンパしてあげたい気分。
>581
USB内蔵PIC相手には USB内蔵AVR(AT43USB320等)があるから心配せんでもいい。
IgorUSB は手持ちの在庫ですぐ作れるとこに意味がある。
AVR での隠れたメリットの一つに
ポートの H で電流が取れることにあると思うのだが、どうだろ。
7seg-LED のダイナミックドライブで外付けトランジスタ半分省略できるとか、
スイッチトキャパシタ作っても電流とれるとか、
USBバス作ってもドライブに余裕があるとか、いろいろ。
AVR の欠点だと思うのは、ADC のバリエーションの無さ。
安い石で 10bit 15ksps (8bit 70ksps) というのはともかく、
高価なデバイスまで同じってのはちょっと辛い。
ADC は外付けするとピン数とバス幅食うので内蔵しておきたいんだけどな。
>>583 ま、企業同士の競争でAVRとPICにそれほど差は無いと思っておいた方がいいかと。
結局は社の方針というかいままで使ってきたメーカーに左右されるでしょうし。
ということで本の多いPICのほうが初心者を取り込めるという………。
だれかAVRの本だして〜!と叫んでみる(PIC派)
あとdsPIC30Fは16bitCPUって書いてるけど純粋にそうなのかは知らない(汗
>>585 PICも電流とれますよ〜。
たしか主流ので、流れ出しで20mA、流し込みで25mAだったとおもう。
AVRでいくつ取れるのか詳細希望。
>>585 ちょっと凝ったA/Dは、I2Cにぶら下げれ、ということでしょう
8ピンデバイスにすらI2Cマスターがあるというのも、AVRのアドバンテージ
はぁ、漏れはAVRで何を作ればいいのだろう.....
>>587 出力電流の定格でいうと、
PIC:±25mA
AVR:±40mA
となってる。PIC厨は何かと出力電流を自慢したがってるが、
実はAVRの方がエラいのだ(w
>>585 PICはじめ、いまどきの多くのマイクロコントローラはできるんじゃない?
>7seg-LED のダイナミックドライブで外付けトランジスタ半分省略できるとか、
これって、どういう状態?セグメント毎のポート出力はAVRに限らずトランジスタ
入れないで済むMPUが多いと思うし、コモン側はAVRでもトランジスタなしは厳しいよね?
シンク側は数十mAOKの特性を利用してコモンをシンクドライブにして、
4セグメントずつ点灯なんてことをやればトランジスタなしもいけそうだけど。
>>589 40mAも取り出せるのか!w
それだけ取り出せるのに知名度が無いのは悲しい………。
まぁ、LED以外にそれだけの電流を何に使うかが問題だけど。
>PIC厨は何かと出力電流を自慢したがってるが
多分Z80とかと比べて出力電流が取れるというのが広がって、PICにしかできないという誤解された話が広がったのかもしれませんね。
>>590 と思ったらmegaはソースでも60mA(特性上。定格上は超過) いけるんだな。
いっそ、次のスレッドはPIC & AVRマイコン総合スレで統合したら………議論になりそうかw
>591,590
Vcc=5Vで40mA 出せるという低インピーダンス出力は
Vccを下げた時に意味がでてくるのね。
Vcc=3V で PIC は 10mA、AVR は 25mA て具合なんで、
LED を直ドライブ可能かどうかの閾値にかかってくる。
やっぱりこういう話題だとスレがのびるなあ
やっぱり統合しましょう、PICの方もスレが延びないし
>597
それはイヤ。
こういう話題で伸びてもうれしくないし。
>>598 まぁ、確かにいつも争い合ってるのはちょっとねぇ。
AVRでググるとさ、PICを捨ててAVRに乗り換えて〜ってサイトばかりでなんか必死っぽいのが悲しい………。
>>581 PICに出来ない事って書かれたから、PICには難しいであろうソフトウェアでUSBと答えたわけだが…
ハードウェアで機能を実装して良いならそのような機能が載ったマイコンを使えばいいだけじゃん
というか、USBコントローラ内蔵PICとか、dsPICとかって秋葉あたりで簡単に手に入るん?
>>582 以前試したけどHERO氏のゴテゴテのPDFは正常に表示されなかった。
AR5でもダメなのでしょうがないのでAR7使っている
>>599 まあ、マイナーはどこでも
「 必 死 だ な 」
ってわけで
PICを捨ててAVRに乗り換えて〜なんて書くより、
AVRでこんなに凄いことができますよって載せた方がいいと思うんだけどねぇ。
で、PIC+LCDでラーメンタイマー完成。
PICスレに写真をアップしてみました、かなり手抜き………。
>>602 「こんなに凄いこと」ができない椰子だからそんなこと書いてるんだろう。
凄いことしてる椰子はPICを引き合いに出したりはしない、ように思う。
で、ラーメン大麻は8ピンPICと圧電素子で十分な希ガス。
と突っ込んでみる(w
>>604 >ラーメン大麻は8ピンPICと圧電素子で十分な希ガス
PIC板にも書いた理由+これなら自演乙とか言われないだろうと思ってやってみた。
LEDと圧電素子と8pinPICだけじゃプログラム無しで自演できるしなぁ。
やっぱり残り時間は判った方がいいしw
>凄いことしてる椰子はPICを引き合いに出したりはしない
PC初心者がメーカーPC買って「最新型だ!」って威張ってるような感じ?(違
606 :
774ワット発電中さん:2005/06/01(水) 19:21:34 ID:1OwXqnfT
>>604 まあ同意。
PICと比較して遊ぶのはあくまで遊びだよな?>俺を含む比較厨
607 :
774ワット発電中さん:2005/06/01(水) 19:23:17 ID:1OwXqnfT
確かに2chならともかくWebページ上でPICを捨てて云々なんてタイトルは
しゃれにはならない気がするな。
ページの主の方見ていたら今からでも遅くない
AVR(・∀・)イイ!!ってな感じの名称に変えよう。
>>560,561
おまいら、AVRやってて、
「秋月に無かったらITプラザに行ってみるっぺ」
とかって思わんのか?あと若松とか。
個人的にPIC以上のAVRの利点はISP使えばほぼ全て使えて、
PICだと割りこみとかアセンブラで使いにくいから('A`)
>>610 561,560ではないが・・・
正直、ITプラザの場所がわからん。
いや、雑然とモノが積まれた謎の店に遭遇したことはあるのだが。
ITプラザは4個単位だろ?若松は遠くなっちゃったし
613 :
774ワット発電中さん:2005/06/02(木) 00:38:30 ID:NOZzsK0i
>>610 >>561だが、秋月も若松も海の向こうだからシラネーヨ。
俺自身は地元にそういう店ないのであちこちの通販使っている。
単に秋月にないというだけでマイナー扱いされるってことはあるかもなーと
思っただけです。
それと、とりあえず@220円という制限下では負けてるなーと(w
最近は苺Linuxがmega88/168をそこそこの値段で扱いだしたのでいいな。
Digi-Key野郎になってからは秋葉ではあまりIC買わなくなったよ。遠いし。
>>612 >>613 mega168はITプラザで2個\1000で買えるぞ。
他は確か4個単位だと思うけど。
まあAVRはつぶしが利くのでパーツの肥やしにしておけば、
そのうち使うと思うけど。
デジキって、欲しいデバイスが見つかったことがない(w
>>582 おお、、これはイイね、、
遅いマシンでも、ホイールにスクロールがついて来る。
しおりの日本語が表示できないのが痛いが、、
>>614 ×Digi-Key野郎
◎Digi-Key癈人
619 :
774ワット発電中さん:2005/06/02(木) 01:17:49 ID:VhDEqleY
結局AVR最大の問題は入手性か。。。
秋月でmega168を120円、送料500円で買ったと考えてみる。
>>622 九十九ロボコンの隣りか、ラジオ会館の1F。
若松もラジオ会館の上にあったような・・
ファーストポイントでガラスケースのなかにマイコンの
書きこみ用のライターが置いてある。石自体を置いてないのは謎。
624 :
623:2005/06/02(木) 02:37:28 ID:hu5qgnmj
ファーストポイントはもちろんNECのマイコンね
AVRスレでもうしわけないが・・_| ̄|○
巡回コースっていうか、一応たまに新製品がないか見に行ってみるコースになってる。
626 :
774ワット発電中さん:2005/06/02(木) 12:36:54 ID:VhDEqleY
>>625 小さい基板何?
もしかしてラーメンタイマーごときにRTCモジュール奢ってるのか?
まあRTCモジュール買って死蔵している俺より100倍偉いけど○| ̄|_
>>621 秋月の送料いつのまにか値下げしてるんだね。
627 :
774ワット発電中さん:2005/06/02(木) 12:40:52 ID:VhDEqleY
と、RTCモジュール放置していたのを思い出した。
時計でも作ってみようかな。
629 :
774ワット発電中さん:2005/06/02(木) 18:00:23 ID:VhDEqleY
>>628 ラーメンタイマーごときにRTC、って考える前にまずは動いて作る、ナイスバカ!
ってところでしょうか。
もちろんほめ言葉。
630 :
774ワット発電中さん:2005/06/02(木) 18:17:54 ID:64rJ6wqd
PICvsAVR祭りが終わった後になって、
ようやくアクセス規制が解除されたよ…OTL
せっかくなんで書いておくと、漏れの場合、
PICはISP面倒くさ杉、AVRはデフォでISP、
って理由だけでPIC信者からAVR信者に転向した。
最近のPICはISPしやすくなってるのかなー?
632 :
611:2005/06/02(木) 21:54:41 ID:z7ynGLn6
>>622-3 な・・・いつの間にか店舗が増えてるし。
漏れが探しに行ったのはオプティマイズ製品を扱い始めた頃だったからなぁ・・・
もう一回探しに行ってみるか。
レス,トンクス
イットプラザは…ライブカメラがちょっと恥ずかしい(^^;ので行かなくなったけど…
>>632 漏れがITプラザ本店にはじめて逝ったときは、
千石電商の裏にある東芝の大きな建物の前付近、
って覚えて逝った。
分かりづらいってだけで、
全く場所が分かんないんじゃないんだろうけど、
念のため。
>>580 のChaN氏のDSPってAVRでFFTってヤツ?
チャンはロリオタ
PICにISPはありません。
ICSPです。
AVR厨は無知だからホント困るよ。
638 :
774ワット発電中さん:2005/06/03(金) 10:35:12 ID:CQUqan+7
>>638 IDにCQの文字が
CQ出版に入りなさい。
>>638 たしか、PICで真似している椰子もいたはず。機能的には全く及ばないが。
641 :
635:2005/06/03(金) 14:01:34 ID:/QiFAaHo
>>638 トンクス
おぉ凄い。これだけのことを8MHzでやっているのか…
mega+20MHzでやれば乗算機持っているし大幅に高速化出来そうだな
俺たちAVRフリークにとっちゃDigi-keyは
ほんま天国じゃて・・・・。
>>642 送料の2000円の比率を下げるため、どうしても1万円分くらいの買い物をしちゃうのがタマキズだけどな(w
1マソ円越えると消費税が加算されるよ。非転嫁ギリギリで買うとちょっと得した気分。
オプティマイズさんとかイチゴさんに相次いでmega88/168が入ったけど、
流れを読んでるんだろうか??? ならば、
「ちっこいのばかりじゃなくて、40pinも扱ってホスィ」。
…と言ってみるテスト。
>>644 明日Digi-Keyに100個単位注文
到着次第販売開始
と妄想してみるテスト
>>644 大型になると実装面積の都合上QFPの方が良いかも…
個人的にはピンの多いヤツは表面実装タイプを扱って欲しい…
>>644 いや、1度に出来る限り買いまくった方が結果的にはお得。
ATmega2560が2038円@Digi-Key
ちょいと使ってみようという勇者はいないのか?
649 :
774ワット発電中さん:2005/06/04(土) 15:05:58 ID:+PSqtJs5
>>648 どうやったらメモリが埋まるんだろう?と考えてしまうな。
mega8ですらがらがらなものしか作れないのに(w
USBN9604とかを使う場合だと、
mega8クラスが最低でも欲しいけど、
さすがにmega2560になると…
今までのAVRの資産を使いつつ大容量、
っていう用途もあるんだろうけど、
素直にH8とか、SHやARMとか使おうよ、って感じ。
一瞬、FPGAのコンフィグデータ用に使えるな、って思ったけど、
最近はコンフィグ用のフラッシュメモリも安くなってるからなあ…
651 :
648:2005/06/04(土) 16:58:43 ID:z1vqnRxq
調べてみたら、AVRアーキテクチャーは128Kを越えると急に効率悪くみたいだな。
プログラムにページングが入るとかスタックの互換性が無いとか(w
やっぱ、256KのAVRはイラネ。そのクラスでは素直にH8, SH, ARMでも使うんべ。
EPROM容量は入らないから、SRAM容量増やしてくれよん。
653 :
774ワット発電中さん:2005/06/04(土) 18:46:22 ID:+PSqtJs5
>>651 8bitですからねえ。
8bitパソコンのメモリアドレスが16bit越えた時の歴史を繰り返しているわけか。
それほど高速でなくてもいいデータ領域としてFLASHを使う場合、ってあたりですかね?
フォントデータを埋め込みビットマップ液晶をコントロールするとか。
やっぱりmega8-32あたりが限度かなと思ってしまう。
それよりUSB付きAVRとかFPGA付きAVRが手軽に入手できるようになって欲しい。
そっちの方が面白そう。USBでISPしたり、ISP経由でFPGA焼いたりできるんだろうか?
654 :
774ワット発電中さん:2005/06/04(土) 18:47:19 ID:+PSqtJs5
>>652 同意。
SRAM増やすと消費電流増えるのかな?
SRAMはチップサイズに響く
656 :
774ワット発電中さん:2005/06/04(土) 23:00:10 ID:u0vg37lO
AVRとH8ってどう違うの?
AVRでなくH8を使ったいい場合ってどういうときなんでしょうか・・
>>656 AVRには荷が重いとき
I/Oピンがたくさん必要なとき
DACが必要なとき
あとはその日の天気による。
>>657-658 なるほど。
もうよほど特殊なことしない限りAVRで何とかなりそうですね。
>>656 16bit演算を多用するとき
広いメモリ領域参照を繰り返すとき
もあるかな?H8はちと遅いのでそれでもAVRが速いケースがあってややこしいかも
AVRは入手性が悪いので、手が出ません。
H8は、いろんなところで入手出来るので、
ついついH8になります。
PIC--->H8--->SH--->PLD--->FPGAという感じ
>>661 ふつー、DigiKeyから大人買い。
DIPも多いからな。
>>661は名古屋・大阪・福岡のどれか在住とみた
通販、特に海外は、抵抗がある香具師はまだまだいる
>>661 通販なら普通に買えるじゃない。Digi-Keyだけでもない。国内通販もたくさんある。
福岡には取扱店があったような。大阪はmegaを店頭販売してるところがない?厳しいかな?
商売で大量に買う話なら忘れてくれ。
AVRのいいところもう一つ。
アセンブラが読む気になる・書く気になれること。
もう一つっていうか
そっちがメインかも
667 :
774ワット発電中さん:2005/06/05(日) 12:56:24 ID:gYdErYbM
AVRは
チップの安さ
多くの品種でDIPとチップの両方がある
無制限で無料のコンパイラがある
純正のISPライターが安価 SRAMが連続している
と言うメリットで うちの会社では多く使ってます。
H8みたいにデバッグモニタがあると もっと便利なんですけど JTAGICEがあるからなんとかなってます
mega8やmega32を使いたくなってきて、
AVR910のファームを互換ファームへ変えてみた。
まずは日本のファームをインストール。
ttp://www.t3.rim.or.jp/~temple/software.html インクルード文をちょっと修正してコンパイル完了。
予め作ってあった、LEDを点滅させるソフトを
90S2313搭載のターゲットボードに書き込んだ。
すると、書き込みは正常に完了するんだけど、
AVR910をターゲットに刺したまま電源を再投入すると、
ターゲットが起動しない(;・∀・)
AVR910をはずして電源を入れれば正常に起動するし、
ターゲットへの書き込み直後も正常に動作しているので、
互換ファームの電源投入時の動作に問題があるのかもしれない。
起動直後はターゲットへのリセット信号をアサートしっぱなしとか。
ソースを弄ってみようかな…
669 :
668:2005/06/05(日) 14:07:30 ID:nxyXBiaE
次に、ドイツのファームをインストール。
ttp://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html 4MHz、19200bpsで動作するようにソースを修正してavraでアセンブル。
前述のターゲットボードにAVR910をつなげて
avrdudeを起動したんだが…
avrdude: Device signature = 0xffffff
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
って言われてシモタ…
言われたとおり-Fを付けたらこのメッセージは出なくなったけど、
なんか書き込みの速度がぐんと落ちてシモタヨ(つД`)
…という訳で、どちらの互換ファームも激しく微妙な感じなんだけど、
もしAVR910で互換ファームを使ってる方がいましたら、
対策とかの情報をご教示お願いします。
671 :
668:2005/06/05(日) 15:15:51 ID:nxyXBiaE
>>668の原因が分かった。
案の定、
>>668に書いたとおりで、
互換ファームの電源投入時に、
ターゲットへのリセット信号をアサートしっぱなしなのが原因だった。
という訳で、
main()内の、
/* ハードウェアを初期化 */
LED_Off();
InitDDRB();
InitDDRD();
InitUART();
InitTMR0();
となっているところを、
/* ハードウェアを初期化 */
LED_Off();
/*InitDDRB();*/
ReleaseDDRB();
InitDDRD();
InitUART();
InitTMR0();
という風に修正したところ、
電源再投入でも問題なくターゲットが起動したYO!!ヽ(´ー`)ノ
InitDDRB()は、
書き込み開始時に呼ばれるSPI_Init()関数でも呼ばれてるので、
main()の初期化段階で削っても無問題だと思います。
avrgccはほかのAVR用Cに比べてコード効率がカナーリ悪い。
まぁ、只だから文句は言えないが。
673 :
668:2005/06/05(日) 23:34:28 ID:nxyXBiaE
>>670 情報dクス。
「must to connect a crystal」ってところが
太字になって強調されてるのが謎ですね。
今のところは今日改造したファームが動いてるので、
しばらくはこちらを使って逝きたいと思います。
674 :
668:2005/06/05(日) 23:52:19 ID:nxyXBiaE
しかし、AVR910の互換ファーム自体は結構知られてるみたいだけど、
最新のデバイス対策の情報はそこそこあるのに対して、
今回みたいな不具合についての情報は全然ネットに上がってないんだなあ(;´∀`)
それとも、これくらいの不具合はいちいちネットに情報を上げずとも、
個人個人で修正しちゃうのかな?
今回の修正だってたったの1行だし。
中華、AVR910とかのインテリジェントなプログラマって、
AVRの全ユーザ中どのくらいの割合で使われてるんだろー、ってオモタヨ。
やっぱしプリンタポートとかを使ったシンプルな香具師が普及してるんだろうか!?
それならファームの問題なんて発生しないしなー。
そもそも、AVRのプログラマを作るのにプログラム済みのAVRが必要なんて、
モロに鶏卵問題だしな(;・∀・)
漏れだって、最初のプログラムのときは
XilinxのFPGA用JTAGケーブル+chan氏のソフトだったしw
長々とチラシの裏でスマソ。
つっか、純正のAVRISPが3300円なんだから、普通、それを買うでしょ?
てか、なんで焼くだけでこんなに手間取るんだよ・・・
設定の多さもアダになるときがある
こういう点ではPICに相当負けてねえか?
などと、また火種を蒔いてみる
「PICを捨ててAVRに乗り換えて〜」なんてどのAVR関連のサイトにも書くのと、
知名度が少ない&本も無い&秋月でも種類が少ないから初心者はAVRを使わないと思われ。
「PICを捨ててAVRに乗り換えて〜」なんて書いたら、PICの上位チップで手が出しにくいものと思う人もいるだろうしね。
少し前のレスで、ライタは売ってるのにチップは売ってないというのも致命的………
などと、また火種を蒔いてみる
>>674 >それとも、これくらいの不具合はいちいちネットに情報を上げずとも、
>個人個人で修正しちゃうのかな?
>やっぱしプリンタポートとかを使ったシンプルな香具師が普及してるんだろうか!?
まぁアマチュアに関しては、そういうことです
680 :
774ワット発電中さん:2005/06/06(月) 08:47:48 ID:4Pp7NKg0
>>674 うーん、これってライターの電源(=ターゲットの電源)を再投入したとき
リセット掛からないってことですよね。これはこの場合仕様ってことでは?
書き込み後のリセットはかかるって時点で少なくとも俺はそう考えて
なんの疑問もなく動かしていた。
パワーオンリセット時のテストはISPはずして行っていたわ。
ターゲットとライター同時に立ち上がって、ライターにまともな動作を
期待する方が無理だと思っていたので。
しかし考えてみるとAVRのDDRB/PORTBのデフォルトは0(入力ポート、プルアップなし)
なので、初期化さえ適切なら(
>>671改造など)起動時切り離しの保証はできるわけで、
そのほうがいいですね。
681 :
774ワット発電中さん:2005/06/06(月) 08:52:17 ID:4Pp7NKg0
>>679 >まぁアマチュアに関しては、そういうことです
現実にはパラレル・シリアルポートを持つPCを全く持ち合わせない人は
まだそう多くはないと思うので、まだまだプリンタポート経由が多いでしょうね。
仕事なら出先でってケースが多いのでUSB経由のケースもあるでしょうが、
そういう人は製品として販売しているUSBライター使うだろうし。
今のところ、AVR910使おうという人は大部分趣味でやってるかもしれない。
秋月ライター所有者以外は、卵鶏問題もあるので、すでにライターがある人が手を出しているわけで。
>>676 手元の手製EZ-USB開発基板で一発で焼けましたが何か
>>676 ChaN氏のパラレル100円ライタと、AVRSPでATMEGA88に一発で書き込めましたが何か。
ところでみなさん外付けのSRAMってどこで買ってますか?
>>676 ChaN氏のシリアルライタと、AVRSPでATMEGA64に一発で書き込めましたが何か?
コネクタ抜かず、電源入れなおさず、切り替えスイッチひとつで走りますが何か?
>>684 ジャンクマザーから抜いた高速SRAM
16MHz/0waitだと、これでもけっこう厳しい。
688 :
668:2005/06/07(火) 14:20:39 ID:HL47S9kh
やっぱAVR910を使ってる人は少数派なのかな?
個人的な意見だけど、
あんまりパラレルポートって使いたくないんだよなあ。
ノートパソコンで使いづらいってのもあるし、
AVRじゃないけど、
ウチだとXilinxのパラレルJTAGケーブル+iMPACTの組み合わせだと
相性が悪くて誤動作しまくり、って前科もあるし('A`)
シリアルポート使う香具師でも、相性が恐いのと、
USB-シリアル変換経由だと使えなさそうだから、
あんま変な使い方してるのは避けたいし。
それなんで、個人的には、
シリアルポート>>>>(超えられない壁)>>>>パラレルポート
普通の使い方のシリアルポート>>>>(超えられない壁)>>>>変な使い方のシリアルポート
って基準があって、AVR910にしたんだよね。
>>680 >うーん、これってライターの電源(=ターゲットの電源)を再投入したとき
>リセット掛からないってことですよね。これはこの場合仕様ってことでは?
この逆で、電源投入時にリセットがかかりっぱなしになってた。
それを
>>671の修正によって、
電源投入時にライターがリセットをアサートしないようにした。
>>675 純正のAVRISPが3300円ってどこの店?
>>684 ハムフェア。
量り売り(1gで1円w)で買ってきた62256互換の香具師を使ってる。
>>688 >純正のAVRISPが3300円ってどこの店?
Digi-Key
国内だと一番安いと思われるCompass-Labで5,200円
(ここは送料は安い)
>>688 EZ-USB使ったヤツは無視ですか。そうですか
最適化のEZ-USBのAVR-ISP基板出てるね…。
高いけど(w
694 :
774ワット発電中さん:2005/06/07(火) 19:57:14 ID:a0qftGnP
>>693 あれは小さいピッチのICハンダ付けが目が悪い俺にはハードルで・・・なかなか手が出ない
制作依頼費まで含むと結構高い・・・
>>688 >この逆で、電源投入時にリセットがかかりっぱなしになってた。
ああすまん、
リセット掛かる=RESETがLo→Hiになってリセット動作を行うという意味で書きました。
ってパワーオンリセットはそんな動作関係ないな(^^;)ごめん。
とにかくRESET=Loのまんまで動かないという意味ですよね?
>>690 dクス。
megaシリーズはDigi-Keyで買うつもりだったのに、見逃してた。
お金に余裕があればマイコンといっしょに買っちゃうかも。
>>691 ハムフェアでは他にも結構掘り出し物があったりするので、
無線に興味がない人でも結構楽しめるよ。
マジおすすめ。
>>692 あ、完全に見落としてた…OTL
そういや、ウチの現在のFPGA用プログラマもEZ-USBだったよ(;´∀`)
他のプログラマと比べて、速度はどんなもんですか?
>>694 そんなに目が悪いの?
フラットパッケージのはんだ付け、って言っても、
DIPパッケージのはんだ付けに慣れてれば、
技量的には十分無問題だと思うけど…。
>とにかくRESET=Loのまんまで動かないという意味ですよね?
イエス。
>>695 他のプログラマは使った事が内のわからない…orz
まぁ使っていて待たされる感覚はほとんど無いけど
>>696 最近電子工作に目覚めた文系オサーン@このごろ近くが辛い だもんで・・・(^^;)
DIPは慣れているけど、それでも毎度自分の不器用さには腹が立つ(´・ω・`)ショボーン
まあ食わず嫌いなんで、
>>696が背中押したと言うことでそのうちチャレンジします。
>>698 そんなに目が悪いなら立体顕微鏡で………見えるのかな?
>>684 SRAM、最近は余り気味になってキタ。
486時代が終った直後ぐらいに15/12ns級を8個100円ぐらいで叩き売られたんだけど
その時に細いDIP品を買いだめしたってのもあるけれど、フラットでも62256/52256/55257とかザラザラと…。
それ以上に1M/4MのSOJな奴を持て余し中(--)
型番末尾が-15は150nsの場合が多い。
>>701 そだね。
ま、手持ちはデータシートで確認済みだから15ns/12ns品なのは間違いないが(^^)
もっともサイクルタイムは20ns程度なんだけどね…(--)
AVRstudioを4.0から4.11sp3に上げたらtiny26のハイボルテージ書き込みが
動作せんようになった。。。orz
ファームもアップデートしたし、密かにケーブルの結線も変わってるようなので
わざわざ前のをぶったぎって作り直したのだが。。。
704 :
703:2005/06/10(金) 01:45:46 ID:0tfuenQq
あ、STK500との組み合わせの話ね。
流れからわかるとおもうけど、念のため。
705 :
774ワット発電中さん:2005/06/12(日) 00:01:42 ID:MwJzU1um
こんばんわ、ADCについて教えて下さいませ。
Tiny26Lを使い実験しており、ADCの基準電圧を「内部2.56V」にしたいのです。
ADNUXレジスタの REFS1=1,REFS0=0 にすればOKですが、この時AVccへの電源供給は必要なのでしょうか?
という事なのです。
1.内部2.56VならばAVccは基準電圧として不要なのでAVcc未接続(開放)で良いのでは、
2.ADCを動作させる電源としてAVccは必要
実験すると、どちらでも動作するので困っています。
AVCCには必ず電源を接続しなければならない。
ADCを使う使わないに関わらず。
これからAVRいじろうとしてるのですが、I2Cデバイスを使う場合はUSIを使っ
てやるそうですが、制御のプログラムソースとか公開されているのでしょうか?
資料あるから勝手に嫁なんでしょうか。どっかにトライした例がないでしょうか。
ハマッたと言うのを見つけてちょっと引いてるとこです。
>>705 //g211008082139.dhcp020.icnet.ne.jp/~hero/pdf/TINY26.PDF
P3
AVCCはポートAとA/D変換器用供給電圧(電源)ピンです。例えA/D変換が使用されなくても、外部的にVCCへ接続さ
れるべきです。A/D変換が使用される場合、VCCから低域通過濾波器を通して接続されるべきです。A/D変換操作
の詳細については59頁をご覧ください。
>>710 えーと、
>>709紹介のページは、USIではなくハードウェアTWIを使ってのものです。
IICの概要を理解した上で、データシートにある用例を上手く使うしかないのでは
(TINY26和訳版データシートp44など)
あと、読んでないけどアプリケーションノートの310-312がそれみたいです。
C言語ソースファイル付き。
>>712 BASICかよ!
といいつつこれで基板のテストだけして、アセンブラに書き換え(つーか書きおろし)中の俺がいる
90S2313だからソフトウェアI2Cになるんで、フルスクラッチはめんどい
秋月のPIC用ソースをぱくってきて移植の方向で
715 :
774ワット発電中さん:2005/06/12(日) 23:41:07 ID:mCNwMWFD
>>706 >>708 レスありがと、AVccには10mHとパスコン経由で5Vを接続する事にします。
716 :
774ワット発電中さん:2005/06/15(水) 23:28:09 ID:Fdi6doTH
秋月がAVRを見限った訳をくわしく講義してたも
キットが収益源である秋月にとっては、キットを売るために石を売ってるにすぎない
PICライタのようなドル箱商品のない(作れない)AVRはうまみがない
また90SからMega/Tinyの移行期で商いがしにくい
(ATMELが90Sを定番のものまで容赦なくディスコンし、さらにSTK200やAVR910のような
ローコストライタを切り捨てクローズドにしてしまったので、そのあたりの展開もしづらい)
ということで秋月、ATMEL両方のこすっからい思惑の結果、と言えよう
ただ単に人気が無いからでわ?
PICのほうが昔からあるしなぁ。
本もいっぱいあるし。
秋月ってAVRのライターも出してるけど
最新の物にはほとんど対応してませんよねー
この辺りにやる気の無さをはっきり感じる
722 :
774ワット発電中さん:2005/06/16(木) 11:02:55 ID:oA7VdHdR
いんだよ、秋月にやる気がなくたって。
本もいらね。自分で考える。
PICなんか、何かやろうと思ったらもう誰かがやってる。ツマンね。
>>722 秋月はどうでもいいけど入門書はあった方がいいと思うよ。
STK500でATmega168のプロテクトがかけられん・・・Fuse設定は出来るのになぜだ
マイクロチップは熱心にサポートするがアトメルは何もしない。
マイクロチップが圧力をかけた。
などと妄想もできる。
あるとすれば、前者っぽいけど。
PICは癖のあるマイコンだし、
素直なプログラムを組みたけりゃAVRの方がいいのは事実だろうけど、
ぶっちゃけマイコンなんて「住めば都」なんだし、
なんだかんだ言ってPICで間に合ってる人がわざわざ他の同クラスのマイコンに移行する、
なんてケースはそんなに多くないんだろ。
・いままでPICを使ってた人たちが引き続き使いつづける
・大学や高専で先輩や先生からPICを教わる
・マイコン未経験者がとっかかりのいい資料少な杉のマイコンなんて使わない
…などなど、ソーシャルな面でAVRはPICに引けをとり杉だし、
これからもデフレスパイラルのごとく、
じわりじわりとAVRの日本での普及率は下がっていくのだと思われ。
まあ今まで散々言われ続けてきたことだけど。
PICよりAVRが先に少量生産者に普及してれば、
状況は変わってたかもしれんが…
あ、普及率は下がっていく、って書いたけど、
分かってる人はAVRを選ぶだろうし、
ちょうど今ぐらいの利用者数で落ち着くんだと思う。
まあ、「違いのわかる人のマイコン」ってことでw
>大学や高専で先輩や先生からPICを教わる
そういえば、トラ技に載ってたけど高校生向けのPICマイコンのコンテストがあったはず。
こうやってPIC利用者が増えるってわけだ。
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ) < ぽまえら、Mega8が共立(シリコン・デジット)で500円ですよ
(⊃ ⊂) \______________
| | |
(__)_)
クルッ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・ )彡< 通販には出てないけどな!
⊂ つ \____________
人 Y
し (_)
>>729 mega168が500円だから意味なし
731 :
774ワット発電中さん:2005/06/16(木) 22:36:38 ID:udZytii7
PIC偏重は日本だけ。アメリカでは適材適所でAVRは健在だすよ。
ライター、誰かネットでサイトやってくれ。 MLなんてクソのスクツだし。
過去をひきずった高齢者でなく、なおかつオタでないやつ。
>>731 電子工作やっている時点でオタだと思うが…w
733 :
774ワット発電中さん:2005/06/16(木) 23:40:50 ID:QN1pkkNG
734 :
774ワット発電中さん:2005/06/17(金) 00:32:02 ID:f0ohxRYP
ど こ の ア メ リ カ の 話 だ
_,,..,,,,_
./ ,' < ★|ヽーっ
l ⊃ || ⌒_つ
`'ー---‐'''''
atmelサイコー
しかしサンプルの貧弱さと不親切さは初心者泣かせだよな。
書き込みの楽さと安さ頑丈さでは素晴らしいのに。
アマチュアのAVR人口が多いのはアメリカよりヨーロッパな希ガス
作例などの情報を求めてウェブを数千里旅していると、
気がつけばヨーロッパのサイトにたどりついている罠
・・・そしてそこがドイツ語のみだったりしてorzる
そうか?
ローマ字読みで音読すると面白いんだけどなぁ。
作例などは他のいろいろなマイコンのアプリケーションノートからパクればいいと思うが。
>>731 AVRで有名な椰子から年寄りとロリオタ除いたら誰も残らないよ(w
回路図は世界共通言語です
前者は分からんでもないですが
後者はなんでそんな変更するの?
ってくらい意味不明ですなw
ITプラザに詰め合わせセット。
ATmega168、ATmega48、Tiny2313、Tiny13、Tiny13V x1で 1550円。
743 :
774ワット発電中さん:2005/06/17(金) 14:48:46 ID:TKwn5wwM
745 :
744:2005/06/18(土) 04:47:32 ID:crzZuU8a
>>736 確かにドイツ人は電子回路すきなの多そう。直接知らんがググッた限りでは。
世界大戦時にすぐれた兵器を設計した気質と共通してるのだろう。
フランス人やイタリア人は自作情報のホームページを立ち上げなんてこと
よろこんでやったりしないんだろうな。
その割にはST-eleは成功して、Siemens/Infineonはパッとしない。
>>738 >AVRで有名な椰子から年寄りとロリオタ除いたら誰も残らないよ(w
確かにw
なんであんなにHPが痛々しいんだろ
ま、美味しいとこだけ頂くんだけどなwww
>>748 あそこはまだまともな部類に入る
おまい不寛容杉
50、60代のエレクトロニクス爺さんが、彼を尊敬してやまないんだぞw
まあchan氏のライタがなかったら
俺はこのスレに居なかったことは確かなわけだが。
>>749 40代でロリヲタじゃなくてAVRのHP作っているけど
内容が痛々しいをれはどうしましょう?
>>752 とりあえず、HPのURLをココに晒してみるといいよ。
ロリヲタだって
いいじゃない
まともな成果を
あげてるなら
みつを
彼よりも知識としては遥かに劣ってるんでしょ?
ここにいる人って
そうだね
758 :
774ワット発電中さん:2005/06/20(月) 11:20:02 ID:FuCWw/fJ
>>744 んー。744は50代の新しいことが頭に入らない世代?
プログラムでいうならフローチャートじゃないと判らない。PADはダメと言っているようにしか見えない。
一般的なCADではMIL記号が未だに幅を利かせているんだし(IEC対応を大きく謳っているのはないね)
かといって、IECで描かれた回路図が一瞥して理解不能な程無茶な変形をしているとは思えないよ。
まあ、全くの回路図初心者にIECを教えてもMILを教えても、作業効率はかわらんだろうね。
744がMilで覚えているからこそ文句がたらたら出るんだと思う。
俺は、VHDLよりVerilog-HDLの方が判りやすいね。でも世の中にはVHDLの方が判りやすい人もいるんだ
。だから、あなたの感性だけで切ったら笑い物になります。
759 :
774ワット発電中さん:2005/06/20(月) 11:27:38 ID:FuCWw/fJ
>>760 おお、これはAVRの和書にカウントして良いだろうか?(^^;)
CPUの作り方の本の例もあるし、そのまんまで出版しないかな(w
俺はこういうの嫌いではない。
>>761 でもさ、こういう本だけしか売られてなかったら
AVR = オタク専用ワンチップマイコンって見られるかもしれないぞ。
CPUの創り方で、かなり引いてた人もいたしな。
・・・・・自分はむしろ好きな方だが>CPUの創り方
>>760 第3号いまだ手にはいるかな?第2号は現地で買った
第2号はHID USBデバイスをを作るときに超重宝した。
数少ない日本語でリポートディスクリプタを解説してある資料だしな
>すっげ〜AVRマイコン
見覚えあるw
いつぞやのコミケで見かけたような…去年末だったかな…
日本語データシートあれば十分なクチなんで見向きもしなかったが
>>762 電子工作やっている時点で十分オタだと思うが…
周りの目気にしていたら電子工作とか、プログラム書きとかやっていられないと思う
AVRは楽だね。
ハイパワーなデバイスは少ないけど、mega88系とか2313系とか
とても良い感じ。tiny24てのも出るらしいね。差動ADで20pin USI付き。
tiny13 tiny24 tiny2313 mega88 mega8535 mega128 あたりかな。使いやすいのは。
>>261 ほしいかも。もうないかな・・・
>>764 へぇー、tiny24/44/84なんてのが出るんだ。
20ピンじゃなくて14ピンTTLサイズですね。tiny26の足を減らした感じかな。
でも、DIPならともかくMLFではtiny26と比べてあまりスペースメリットないかも。
14〜20ピンのあたり(特にA/D付)はPICにかなり品揃えで負けてるので、
強化してもらいたいとこだ
・・・DIP出せよと
>>762 次に少女が犠牲になる事件起きたら、某評論家が「犯人はAVR萌え族」
なんてプロファイリングするかもw。
>>762 確かに表紙で損をしてしまってるきらいがあるな・・・
とはいえ、イラストを除いてしまったらまったくの教科書然として売れなくなってしまう悪寒。
イラストのない工学書は退屈なだけだよ。
工学書と言うより 変な主張(こだわり?)のある学生|院生の実験レポート
オチ(結論 or 応用発展につながるもの)無し
ちと 言い過ぎか
771 :
774ワット発電中さん:2005/06/22(水) 23:14:53 ID:yAkcfXjx
>>771 正弦波を出してそれをフィルタで均すってのは、要求する周波数が固定でなければ
要求されるフィルタの特性が変わるのでダメかも。
どの程度の精度の正弦波が必要で、どの程度の周波数範囲が必要かによると思う。
あまり奇麗な正弦波でなくていいなら、ラダー抵抗によるDACで正弦波を作って、
それをローパスフィルタで均すってのはどうでしょ?
>>772と同じだね。
もう一案出すなら、PWMで表現なんてどうでしょ?
8bitタイマのプリスケーラなし駆動で8bitPWMを動かせば50kHz周期で
いけるんで、数kHzくらいまではなんとかなる。
sinの計算方法はAVRスレかPICスレの過去スレに議論があったと思う。
>>773 × 正弦波を出してそれをフィルタで均すってのは
○ 矩形波を出してそれをフィルタで均すってのは
776 :
774ワット発電中さん:2005/06/23(木) 10:18:57 ID:eUqvHkxR
>>771 AVRだけでするなら、R-2RラダーのD/Aコンをつけて、SINデータを
順次出力する。SINをどのぐらい分割するかによるが、256ぐらいに
分割すれば、けっこう綺麗。ただし、分割する数を増やすと、1周期
出力するのに時間がかかるので、高い周波数は無理。256分割なら、
テーブルへのポインタのオーバーフローを無視すればよいので簡単。
LOOP:
LPM
OUT 〜
INC R30
RJMP LOOP
でよい。ただし、SINのテーブルのアドレスは $xx00〜$xxFF にしてね。
1ループ7クロックか? 256倍して、約1800クロックがSIN1周期になる。
12.8MHzなら7kHzぐらいか。これより周波数低くするなら、ループの中に
NOPでも入れろ。
テーブルにSIN2周期を入れれば(その代わり、キザミが荒くなるが)
倍の周波数(14kHz)まで出せる。
この方法だと、SIN1周期がぴったり繰り返すので、出力のジッタは
最小になる。しかし、1ループのクロック数は、7、8、9、、、としか
変化させられないので、周波数のステップが荒くなる。上の例だと
7kHz、6.25kHz、5.55kHz、、、となる。
これで不満足ならアキュムレータ式やな。DDSでやっているのと同じ。
ジッタが生じる代わりに周波数ステップは細かく設定できる。
ここまで、コンサルト料取るとしたら\2000ぐらいか。後は自分で
考えてね。
777 :
774ワット発電中さん:2005/06/23(木) 10:25:19 ID:eUqvHkxR
方形波を、スイッチトキャパシタフィルタでSINにする、というのも
あるわな。MAXIMのMAX291〜あたりか。これならカットオフ周波数が
プログラマブルやから、方形波の周波数を変えても追従させられる。
というか、SCFに加えるクロック周波数を1/50か1/100分周して、
SCFに入れてSINにすればよい。
高い周波数は刻みを荒くしてもいい
刻みを一定時間ごとにするって手もあるかな。
7kHz-256刻みだと179.2kHzでCD越えてるもんね。
こっちは8bitだけど。
例えば50kHz(256クロック)とか100kHz(128クロック)間隔で
以下のルーチンを回すとか。50kHzなら196Hz以上あたりでデータが
間引かれ始める。
add R2,R16
(R16:R17=0.76*出力周波数(Hz).0x8000で25kHz,1で0.76Hz)
adc R30,R17
LPM (R31はあらかじめセットしておく)
OUT PORTB,R0
RETI
外部からR16:R17を操作すれば(割り込み禁止要)周波数変更可能、
アキュムレータ式ってコレ?
>>776
う、ちょくりんになってしまた、すまん。名かのひと。
テーブルを256bytesより大きくとれるなら、もうちょっと工夫できそう。
mega8あたりを使って、4kb(0x1000)をテーブルにしちゃう。
1周期は0x2000サンプルにしちゃう。テーブルは0-180°の分だけ用意
0-90°にしたかったけどちょっとややこしくなるのでやめた。
SLOOP:
mov r28,r16
LOOP:
dec r28
brnz LOOP;ここまで3*(r28:r29)+3クロック
;ここから12クロック
;tableは0x1000から0x1000サンプルとする。
bst r29,4; 180°以上だとこのbitが立つ
andi r29,0x0F
ori r29,0x10
LPM
brtc UNDER180
neg r0
UNDER180:
out PORTB,r30
bld r29,4;bitを戻す
add r30,r17
rjmp SLOOP
1ステップ12〜777クロック,(4166Hz〜2Hz)×(r17)の周波数の音が出る.
周波数設定刻みはr16が小さいあたりでは25%刻みになってしまうが、
r17を大きくしてr16値を大きくしても良いようにすれば刻み幅は
小さくできる。
r17を大きくすると1周期のサンプル数が少なくなるが、元が8192
サンプルなので、r17=32でも1周期256sampleを確保できる。
このとき4166kHzはr16=120で実現できるので、1%刻み周波数設定可能。
より低い周波数なら、より多いサンプルで表現できる。
といっても8bitだけど。
UART受信割り込みで、受けた値をr16,r17にセットする。
音質を優先するならr17小さめ、
周波数分解能を優先するならr17大きめになるよう
r16/r17の値を選んで送るようにすればいい。
あちゃ、まちがった
all r29→r31
×add r30,r17
○add r30,r17
○adc r31,r1;r1にはあらかじめ0を入れておく
1ステップ最低13クロック、r17=1で3846Hz maxだな。
783 :
774ワット発電中さん:2005/06/23(木) 20:52:25 ID:Sqsw2TJ+
digi-keyでATMEGA16-16PIが売り切れなわけだが(16PCはあるんだが)
どっかで50個30000円くらいで売っているところ、他に無いですかね?海外でも可。
回路としては勿論Mega32-16PIでも動くんだけど、一応Mega16-16PIという指定なんで
トレンディな絵ですね。
監禁王子もこんなことリアルにしたか、ゲームでやったんでしょう。
>>778,
>>781 両方まぜてみる。
水晶発振子は16MHzってことにしとく。8cycle/0.5usec毎に出力。
FLL:FL:FH=65536で8*256=2048cycle周期の正弦波がでる。8kHz。
出力周波数=0.1220703125*(FLL:FL:FH)/8.192 Hz。
どの周波数でも設定幅は0.12Hz。ジッターでこの細かさには意味がないと思うけど。
FLLを廃してもいいけど、そうすると最低周波数と周波数設定刻みが
30Hzくらいになってしまうので低周波発振器ならいまいち?
.equ FLL=r19
.equ FL=r16
.equ FH=r17
.equ ZLL=r18
.equ zero_reg=r1
;r16:r17=freq.set data.
;r18=ZL/256
clr r18
clr ZL
mov zero_reg,ZL
ldi ZH,high(sign_table*2)
LOOP:
add ZLL,FL
adc ZL,FH
LPM
OUT PORTB,r0
rjmp LOOP
.org 0x700
sign_table:
;table data....
LOOP:
add ZLLL,FLL
add ZLL,FL
adc ZL,FH
LPM
OUT PORTB,r0
rjmp LOOP
だな
788 :
771:2005/06/24(金) 06:39:48 ID:fzWcc1gs
AVRの正弦波で質問したものです。
皆様の回答、本当にありがとうございます。
こんなに早くレスがつくなんて想像していませんでしたので、
大変に驚いています。
レス内容が濃いので、ゆっくり読んでみます。
とりあえず、
使用AVRは、あまいもののAT90S1200を使用予定で、
周波数は、30〜30kHzです。
歪率は、そんなにこだわっていません、
オシロでああ、正弦波って見える波形でいいのですが、
歪率5%くらいですか?
とにかくありがとうございました。
また、質問させてください。
>>788 1200だとLPM命令が無い(よな?)から大変だぞ
64バイトのEEPROMに1/4波形書いておいて、正順→逆順→負値正順→負値逆順。
出すデータを準備してタイマー割り込みで出力。
周波数によって適当に外付けフィルターを切り換えたほうがいいのかも。
力技って手もあるな。
ldi r16,data0
out PORTB,r16
rcall wait
を128個並べ、最後にrjmp top。
768バイトでなんとか1200にも収まる。
wait:
mov r0,r17
dec r0
brne -1
ret
wait値をどうやって与えるか・・・
792 :
774ワット発電中さん:2005/06/24(金) 10:44:01 ID:icb2GuqO
>>778 アキュムレータ式というのは
>>786 のこと。
ところで
>>788 「1200を使う」と。うーん。
>>791 最後のRJMPの時に余分に2クロック喰うから時間調整しないと。
(最後以外の127個に2クロックのウェイトを加える)
wait値の設定も問題ですね。キー入力にもう1個1200使おうか。
INT0にクロック入れて2線シリアル通信させる。
通信中は出力が乱れるけど。
どのように周波数は変化させるの?
ロータリエンコーダ? UP/DOWNキー?
ならば表示に7セグLEDか、LCDいるんじゃない?
周波数の変化のキザミは?
それとも30〜30kHzの間の、4種類とか5種類とかあらかじめ決められた
周波数でいいの?それなら表示器は要らないけど。
>>791 start:
ldi r16,data_n
rcall data_out
ldi r16,data_n
rcall data_out
:
ldi r16,data_n
rcall data_out2
rjmp start
data_out:
out PORTB,r16
in r18,PIND
subi r18,1
brnc -1
rjmp data_exit
data_out2:
out PORTB,r16
mov r0,r17
dec r0
brne -1
data_exit:
ret
これだと256個詰め込めるな。rjmpの調整もしてみた。
1データ11-779クロックだから64Hz〜4545Hzってとこか。
遊びでwait指定をポートD入力値ってことにしてみた。
プルアップ入力に設定すればdipswで設定可能。7bitなので
周波数下限が128Hzになってしまうが。
>>790と他の案を合体させるともう少しよさげだが、
もっと余裕のあるデバイスにした方がいい。
周波数可変するのはAVRのクロックを変えればいいんじゃないかなぁ。
>>794 そういうのも考えたんだけどね(w
tiny系のAVRで内部発振で使い、OSCCALを触るとか(w
796 :
774ワット発電中さん:2005/06/24(金) 23:07:43 ID:EpSL5fLa
うっほ、ここは年齢層が高そう。あのchanさんておいくつなお方なんでしゅか
パソコン通しん時代の神という伝説も。
機械工学板の過去スレにハンドルがAVRでオデキになるお方が見えるけど同じお方?
何スレざましょ?
苺のmega168売り切れにゅ
まぁオプティマイズで売ってるからいいけど
小口の供給元は多いにこしたことはないよね
801 :
774ワット発電中さん:2005/06/25(土) 13:51:15 ID:iJTkmBcF
InternetがなくFDEVICEあたりが主役だった頃は
ポカーンと見てるだけだったな。理解不能だった。
今でも大部分は理解不能だけど。
>-chan氏は団塊世代かな
何年か前にコミケで見かけたときに30代に見えたから
今でもまだ40にはなってかと思う
見かけと実年齢のギャップが大きい人なのかもしれないけど
それでもさすがに団塊世代はないかと
× 40にはなってかと思う
○ 40にはなっていないかと思う
>>800 あの絵は団塊のオサーンには描けない
うる星やつら世代すなわち40歳前後と見たが >ChaN氏
年齢バレ・スレとシンクロして来た
以前はプロファイルに1970年とあったから、35ではないかと。
確認しようとしたら既に伏せられてた(w
んで、なんでみんな肖像が猫なん?
電気やるやつって猫好き率高いな。俺もそうだけど。
808 :
774ワット発電中さん:2005/06/25(土) 20:36:46 ID:zNrGOZKC
809 :
774ワット発電中さん:2005/06/25(土) 21:12:14 ID:ddgLKhh8
>808
その人も有名人じゃん
しかし名前からしてその人もうる星やつら世代なのな
cd2wav32 数年前までかなり有名だったような
CDDBアクセス機能のUnicode対応が遅れたからねぇ…
812 :
774ワット発電中さん:2005/06/26(日) 02:29:11 ID:tj8gyo/0
みょうにこのスレが伸びてると思ったらキ○○タホムペの話か
ま、AVRが人気ない真の原因はそのへんだろう。健全なやつは退くって
813 :
774ワット発電中さん:2005/06/26(日) 02:54:29 ID:+WkHbPhz
健全な奴=中途半端でつかえねぇ回路ばかり作っている奴
814 :
774ワット発電中さん:2005/06/26(日) 03:20:39 ID:Vla9N3zs
おれ、萌え族とかアニメが全く肌に合わないから、こういうコミケ絡みのデバイス
をみると、凄く嫌悪感を覚えるんだよな。
PICでいいや。
>>814 むしろその手でもPICのほうが多いわけなんだが・・・
ヤンキーの高専生とかはもっぱらPICだわな
ガッコがPICしか教材に採用しね〜からw
>>815 あそこまで痛々しいヤツはそうそういない
PICが厨房よけの盾になってくれて助かるよ
>>817 ひょっとして「PICは暴走しない」って思ってる?
>>807 ネコより猫ミミ・キャラが好きだな。
はいぱーぽりす夏姫とか。
821 :
812:2005/06/26(日) 11:59:52 ID:tj8gyo/0
決してPICを依怙贔屓してるわけではないからな
マイコンとしての優劣はAVR>>>>>>PIcだが
日本のキモオタが癌だと言っとる。
ただ、工業高校や高専(もう時代の使命が終わって廃止されるが)が
指キタスに走らなかったのは賢明であったとは思う。
指来足すはIC界のヨサコイだ
822 :
771:2005/06/26(日) 12:14:28 ID:3W1HcdWQ
771です。
皆様の熱き回答に涙しているところです。
周波数の変化指示は、ロータリーエンコーダのSWを
3個使用予定で、
6×9×3=162
の周波数をつくる予定です。
表示は、ロータリーSWから出力をとり、
もう一個のあまったAT1200で
LED表示を作ろうかと思っています。
私はアセンブラしか使えないので、
>>791>>793さんの参考プログラムは、
非常に参考になりました。
>>790さんの1/4波形をEEPROMに
書き込むっていう意味が難しすぎて
わかりませんでした。
ぐぐってかんばって見ます。
ところでelm-chan氏のRS232Cライターは74HC125or126となってるが
極性逆で両方とも動くの? ソフトが自動判定?
ゲートの極性が逆なだけだから、
125→SW OFFで書き込み
126→SW ONで書き込み
こうなるだけ。
キモヲタだって
いいじゃない
まともな成果を
あげてるなら
みつを
>>824 サンクスコ
千石の商品リスト見てたらポジ・ネガと書いてあったんでデータ反転
と誤解した。
>>822 ロータリエンコーダ?ロータリースイッチ?どっちよ??
発音しながら音程を狂わせずに複数のエンコーダを読むのは難しいな。
もしやるなら、エンコーダとLCD表示を1つの1200で担当し、周波数変更が
なされたらクロックとデータの2線シリアルで発音側の1200に送る。
発音側はINT0ともう1ピンを使って受ける。INT0割り込みで指定bit受けたら
周波数を変更するための処理を行う。転送中は音が狂うのは勘弁。
>6×9×3=162
こういう使い方するならBCD出力のサムホイールスイッチでも使った方がいいかも。
ダイレクトに周波数を設定できるんで表示器が不要になる。周期への変換はサムホイール
スイッチ側の1200でやっちゃう。
7segLEDのダイナミックスキャンのような要領で8個のスイッチを7ピンで読める。
例えばこんな感じ。
http://www.hobby-elec.org/pic6_c.htm >
>>790さんの1/4波形をEEPROMに
1200のEEPROMは64bytesしかないの。これでやったら1周期約6度刻みで粗すぎ。
そこで、
>>790さんは0-90度分だけを用意して(4倍細かくなる)、
0-90度:0→63番目まで順に読み込み、順次出力
90-180度:63→0番目まで逆に読み、順次出力
180-270度:0-90度と同じだが、得られたデータを反転する(neg命令)
270-360度:90-180度と同じだが、得られたデータを反転する(neg命令)
てなかんじで考えたのでしょう。継ぎ目がややこしそうだが。
ロータリーエンコーダスイッチ っつーのもあるが
829 :
771:2005/06/26(日) 22:09:51 ID:3W1HcdWQ
>>827 すみません、ロータリースイッチです。
予算の関係でロータリースイッチになっちゃいます。
1/4波形をEEPROMにという内容は、
そこまで深い内容だったのですね。
深すぎて理解できません。
BCD出力のサムホイールスイッチを参考に、
入力回路を考えて見ます。
ありがとうございました。
>>829 ロータリースイッチですか。
そんなら頑張れば石1つでできるかな?
ワンチプと言おうぜ
>>829 ロータリースイッチで入力するのが6x9x3で配線でバイナリ化するとしても
3bit/4bit/2bit.結構ややこしいな。うまく整理して6x8x4とか最大を3bitに
抑えれば3bit×3で、デコーダーIC使わなくても6pinでなんとかなる。
ぬるぽ
がっ
プロテクトって一番最後にかけるんだね。生まれて初めて知りました
836 :
774ワット発電中さん:2005/06/29(水) 10:39:03 ID:5oM9mn6C
>>829 理解できません、って、サイン1周期のグラフを思い浮かべるだけで
その対照性を考えると簡単じゃん。
電話の呼び出し音をROMとDAコンバータで作ったことがある。
単純な正弦波だと音が単調で面白くなかったので、少し3次の高調波を混ぜたらそれらしい音になった
400Hzの正弦波を1秒発生2秒休止で作ったような気がする
PIC18シリーズで速度の壁が立ちはだかってしまったので、
AVRに移行しようと考えていますが、
入手性や言語環境、インストラクションセット、
日本語の情報、あるいは嗜好性とかは、除外して、
PICに対して、性能的に劣る部分を知りたいのですが、どっかに比較ないですか?
たとえば、ノイズ耐性が若干劣るとか、そんな類の情報です。
PIC18を40MHzで動かすよりは、AVRを8MHzで動かすほうがなんとなく安全だと思っているのですが、
踏ん切りがつかない状態です。誰か背中を押してください。
>>838 多分気のせいなんでずっとPIC使ってればいいです
あ、そうそうNえCの8ビッツマイコンなどお勧めっす
そんな人柱チックな事いわんでも・・・
いっそH8やSHに逃げるとか。
>>838 ある種のフラグは「1を書き込むとクリアされる」というトンデモフラグになっています。
(実は、ちゃんと使えば、とても便利な仕様なんですが)
お気をつけあれ。
>>838 >ノイズ耐性が若干劣るとか
もう、すでに企業のノウハウのレベルでは?
誰かを説得する必要でもあるん?
>>838 ノイズ放射のほうではAVR8MHzのほうがいいかも?
と思ったけど、PIC18の40MHzって、発振子は10MHzで内部4倍にして使うんだっけ?
となるとあまり変わりないような予感。実際はどうなんだろ。
アセンブラ命令見るとかなり便利になっているようだね
バンクがあるから用途によっては不便そうだけど
ファイルレジスタを直接比較条件ジャンプや演算対象にできるのは
場合によっては高速なのかも。
AVRは16bitアドレスが災いして、SRAM上のDATAを元に比較や演算を
行わせると結構手間がかかる。バンクがないことの裏返しなんだけど。
PICにいまだにバング概念があるのはこのような問題なのかな?
言語環境(C)を考慮に入れるとぐっとAVRよりになる予感。
>>844 PIC16から、PIC18に移行して思ったのは、16bitに拡張されたレジスタがあったりして、
処理によっては、割り込みなど、PIC16よりオーバーヘッドが出たりするので思ったよりおいしくないのです。
自分の用途では、乗算命令のみが主なメリットになってしまったとです。
あと、PIC18は、errataが多くまだ地雷が残っているのではないかとという不安もあります。
workaroundを見ても、noneとか4MHzで使えとか、PIC16,PIC12に較べると性質が悪いように思います。
バンク処理や、命令体系によっては、もともとCを使っているので、あまり意識しています。仕上がりの、ASMをチェックをして
変数の定義バンクを指定したりします。
かけ算に関してはAVRの方がかなりマシじゃないかなぁ。符号憑き命令あるし。
リアルタイムFFTができるくらいだから。
>>846 そうなんですよ、今ATMEGA48のデータシートを読んでいるのですが、
PIC18に較べてのスペック上のDisAdvantageが見当たらないのですよ。
とりあえず、書き込み環境は整えつつありますが、
PICで積み上げたレベルのノウハウの確立がどの程度の期間で出来るかが決め手になりますね。
確かに、PICで苦労したのは、なんだったんだろうという虚脱感はありますが、克服できていますから
いまさら改宗するつもりは無いわけですが、それもPIC16までだろうとの感触を持っています。
AVRよりPICの方が消費電力が少ない、
って話はたまに出るよね。
ノイズとかになると…そんな情報データシートに書いてあったっけ?
まあ、どんな種類のノイズかにもよるんだろうけど、
特別ノイズに弱いとかって話は聞かないなあ。
つかノイズとかがそんなに気になる使い方するの?
BASCOM-AVRは、PWMをサポートしているんでしょうか?
ヘルプをみても、サンプルファイルをみてもそれらしき
記述が見あたらないんですが。
>>849 命令語を見る限り、専用命令でのサポートはなさそうだね。
レジスタに値を入れて設定してやるしかなさそうです。
やっぱり。
ただ、どのレジスタを使用するのかはデータシートを
読んでて、だんだんわかって気の他のですが、
レジスタへの値の入力の仕方(フォーマット)が、
わからないんですよ。
>>851 多くのAVRを扱う言語は、レジスタ名と同じ名前の擬似変数への代入でレジスタに値を入力できます。
BASCOM-AVRも同様みたい。Helpに書いてあります。
>The registers can be used as normal byte variables.
>PORTB = 40 will place a value of 40 into port B.
対応していないレジスタについては、$3F=hogehogeって感じでアドレス指定でいけそうです。
>>852 どうも、ありがとう。
>多くのAVRを扱う言語は、レジスタ名と同じ名前の擬似変数への代入でレジスタに値を入力できます
これが、作法ということなんですね。
製品版を購入した後で、さてPWMってどうやるんだろうと思って、
命令語をみてたんですが、それらしいものが見あたらなくて、
えっ!まさか、できないの?と思って、ちょっと焦りました。
>>853 よく見返してみたらちゃんとあったよ。
CONFIG TIMER1の項を参照。こんな感じでいけるようだ。
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down
Pwm1a = 100
Pwm1b = 200
とあるサイトのリンクにて
★えるむ(Electronic Lives Manufactureing) マニア向け!
・・・どっちの?
>>855 そりゃあっちのほうだろw
メインの電子関係のコンテンツは、初級者(つーか中級者くらいか)にも
親切な構成になってるからなwww
>>854 ググったら、アメリカのAVRのフォーラムがあって、そこで、CONFIG TIMER1で設定できる
というのを見つけたのですが・・・。
'PWM_TEST
Dim Duty As Word
Config Portb = Output
Config Timer1 = Pwm , Prescale = 8 , Compare A = Set , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down ,
Enable Timer1
Start Timer1
Do
For Duty = 0 To 255 Step 1
Compare1a = Duty 'OCR1A PWM REGISTER SET VALUE
Waitms 500
Next Duty
Loop
TINY26LのPORTB1につなげたLEDの明るさが、0.5秒ごとに0〜100%まで、
変化するプログラムのはずなんですが、全然光らない。
というか、シミュレーションしてみても、TIMER1が0のままで
全然カウントしない!
どこが、おかしいのかわかりませんか?
>>858 tiny26用であることはBASCOM-AVRに伝えてます?
試用版はtiny26にするとcompile errorになるんですけど
(Tiny26のpwmはサポートしないのか、PWMパラメータしらね、OCR1Aしらねって言ってくる)
>>859 とりあえず、適当に値を入れました。
(マズイ)
>>860 最新バージョンの製品版です。
で、チップを確認すると2313になっていました・・・。スミマセン
tiny26に変更すると、確かにコンパイルエラーになります。
つまり、PWMはサポートしてないかもしれないですね。
メーカーにメールで問い合わせしました。
チップを2313に換えAVRstudio(初めて使った)の内蔵シミュレータで、
動かしてみるとTIMER1は動作しました。
実ブレッドボード上のチップもtiny26から2313に換え、チップに
プログラムをダウンロードしてみると、出力しっぱなしになりました。
PORTBの出力には、トランジスタの2sc1815をつなぎそれでランプを点灯させています。
テスターでPORTB3の出力電圧を計ると、ずっと1.2vで変化なし。
う〜ん、これってPWMしてるんだけど、dutyが変化してないって
ことかな〜。
う〜ん、どうすっかな〜と試行錯誤したら、できちゃいました。
レジスタに、直接値を入れました。
'PWM_TEST
Tccr1a = &B11000001
Tccr1b = &B00000010
Do
For Ocr1al = &B11111110 To &B00000001 Step -1
Waitms 50
Next Ocr1al
For Ocr1al = &B00000001 To &B11111110 Step 1
Waitms 50
Next Ocr1al
Loop
出力に繋いだランプが、ゆっくりと明るくなったり、暗くなったりするのを
繰り返していくのを確認しました。
しかし、CONFIG TIMER1の使い方がわからない。
↑
コピーするときに Config Portb = Outputが抜けました。
winavr + avrstudio + AVREZUSB で十分実用的な環境であることが確認できました。
PICでは、cc5xを使っている関係で、シンプルなC環境がほしかったので、
avrgccはどうかなと思っていましたが、余計なライブラリを使わなければ十分に
シンプルです。一応、ImageCraftとかCodeVisonも検討したのですが、便利なライブラリ
があるだけなので、わざわざ買わなくてもよさそうです。所詮マイコンですから、データシート
見ながらファンクションを使ったほうが安心ですね。
チョイ質問です。
AVRのタイマーですが、AT90S2313のCTC動作だと、プリスケーラ1/8での動作はデータシートだと
OCR1A=nのとき、[n-1][n-1][n-1][n-1][n-1][n-1][n-1][n-1][n][0][0][0][0][0][0][0][1][1][1][1][1][1][1][1]・・・・
ってことらしいのですが、mega8のデータシートでは、同等のWGM13-10=0100のとき、
TOP値はOCR1Aで、「タイマカウンタのタイミング」によるとOCR1A=n(TOP)のとき、
[n-1][n-1][n-1][n-1][n-1][n-1][n-1][n-1][n][n][n][n][n][n][n][n][0][0][0][0][0][0][0][0][1][1][1][1][1][1][1][1]・・・・
のようになるように読めるのですが、これは両者の仕様が異なると考えるべきなのでしょうか?
それとも解釈が間違ってる?
>865
その解釈であってるよ。
ドキュメント「AVR091」(90S2313からTiny2313への置き換え)
にもそのことが書いてある。
プリスケーラ入れてるとサイクル変わるから気をつけろよって。
>>866 ああそうなんだ。乗り換えドキュメント読めば書いてあったんですね、サンクス。
mega8のデータシート読んで、AT90S時代の自分の解釈が間違っていたのかと
ビクーリしてました。megaでの変更には今まで気づいていなかった・・・orz
868 :
774ワット発電中さん:2005/07/17(日) 12:09:17 ID:eRfH/azp
あげ
a
v
r
age
googleで
avrage 約 18,800 件
average 約 133,000,000 件
ネタ無しか…
ところで、MegaAVRが使えるDOS版アセンブラって何処かにないかなぁ…
tavrasmをDOSで作ろうと努力してみたけど…
TurboC++Ver4だとbool型の関係でWarning一杯でた…
avrasm 1.3 がcpu定義切ればでmegaにも何でも使えるはずだが…
875 :
774ワット発電中さん:2005/07/21(木) 12:56:12 ID:4BogF0ly
AVRってネタないのかなあ。
俺はAVR派でPIC使ったことないが、ラインナップの少なさに不安を覚える。
絶対AVRでないとだめなアプリも特になければ、
どちらかと言えばPICよりAVRのほうが向いたアプリもないように思う。
簡易DSPのような使い方ができればと思うが、A/D変換の遅さが致命的。
少ピン(18〜20ピン)でプログラムメモリ大盛りというレンジがないのが痛い
PICだとそのあたりは16F648A、16F819、16F88などよりどりみどりなんだが
>>876 なるほど確かにそれはないなあ。
名機?AT90S2313の後継がtinyシリーズになっちゃったのがなんとも。
mega8でも大きすぎと思う場面はあるもんなあ。
フラットパッケージ使えばいいわけではあるけど、趣味工作ではめんどい。
でも8pinAVRが8KFlash+512BytesSRAMなんか積んだりするようだから(tiny85)
そのうち何か出てこないですかねえ。
DSP代わりに使うにはADCのスペックがちょっと…。
12bit/100kspsは欲しいとこだなぁ。
>>878 つATtiny84
でも、DIP無いよ
>>879 代表的なのが10bit/15kbpsだっけ(^^;)
あとはIgorUSB的なものに期待か。まだ出来合いファームで
ライターしか作ってないけど
どの程度自由にプログラムできるんだろうか?
884 :
774ワット発電中さん:2005/07/21(木) 22:15:43 ID:91g0KOV+
あ、SOICはあるのね。
このごろのMegaとかTinyはdebugWireっていうのを積んでいるんだが、
ISPは別に用意しなきゃならん。Mega16以上はJTAGで書き込みもデバッグもできるんだが。
debugWireで書き込みまで出来たら凄いと思うんだけどねー
JTAG使うとI/Oピンが減る
>>885 是非ともブートローダを作ってうpしてくれ。
>>883 14ピンとはまた微妙な・・・
つーか普通に20ピンTinyのフラッシュ増量版を出しやがれと
>>889 tiny86がそれですか。tiny26+debugWIREって感じですか。
ん?temp sensor?ワンチップでファンコンができてしまうのか。
891 :
774ワット発電中さん:2005/07/22(金) 11:47:42 ID:peEMc19E
いつのまにか、RSオンライン
http://www.rswww.co.jp/ で AVRマイコンの取り扱いを始めていました。
ATMega8-16PIが820円。(Mega48とか88は無い)
まー翌日配達だから少々高いのは気にするなよな。
>>891 検索しても出てこないわけだが・・・
探してる最中に(国内で他に小口で扱う店が全くない)14ピンのPIC
(16F630/16F676)を売ってるのを見つけてしまったがw
それにしてもRSは、PIC・AVRとも微妙な品揃えと(物にもよるが)ムチャクチャな値つけだなw
試作や少量生産用というより、保守用部品の位置づけなんだろうか?
893 :
774ワット発電中さん:2005/07/22(金) 13:50:54 ID:WwIQbBoz
>>892 クイックサーチに atmega8-16pi と打ち込むと出てきますが?
RSが高いのはしょうがないと思って諦めてます。
(個人では使わないけど。会社で時々使ってます。)
atmega8-16piが820円っていうのは、安くはないけど、暴利でも無いと思います。
それよりもカーボン抵抗1本15円 っていうほうがずっと暴利。秋月や千石だと1本1円だし。
>>893 カテゴリーで探しても出てこなかったが、メーカー名検索で見つかった( ´∀`)
mega16/32/64とかmega162なんてのもあるねぇ
確かにmegaの上位のは高くも安くもない、実にコメントしにくい値段だw
mega8は共立でも最近まで800円だったし(いま500円)、悪くはないね
抵抗1本15円はまだまし
某○ツはカーボンは100本売りしかせず500円/袋、
バラは金被を30円/本で売ってるよ(#゚Д゚)
895 :
774ワット発電中さん:2005/07/22(金) 16:15:09 ID:fEZVYVQp
>>894 RS ONLINE plusトップへ
っていうところをクリックするですよ。
AVR code visionを別のPCに移そうかと思っているのですが
FDDじゃないとライセンスのエクスポートは危険でしょうか?
CD−Rなりでやろうかと思っているのですが
販売元によると、「移動をミスると二度と使えないよーん」という恐ろしい言葉を頂いてますので不安です。。
フルバックアップでもしておけば大丈夫かなとも思ってますが。。。
FDDドライブも最近は安くなっているので(4千円くらい)
安全をとってUSB/FDDドライブを買ったほうが良いのか迷っております。
CD-Rから移行の成功した方いたら教えてくらさい。。
やって失敗したら潔くAVR code visionを捨ててavr-gccに移行しる。
・・・orz
gccも良いと聞いていたのですけど
code visionも超簡単にHEXしてくれるんで良いんですよ。。
ソース→ファイル化→コンパイル→make
ファイル化って自動保存って事?
総合環境なら
Eclipse(+CDT) + WINAVR + GNUmake
で良いと思う
自分は統合環境的なのはあまり興味ないなあ。
使い慣れたエディタ+DOS窓でWinAVR/make、AVRStudioであまり問題なし。
gccでアセンブラリストは出ないんでしょうか?
ソースコードがコメント化されているようなやつです。
でるよ
>>903 mfileが生成するmakefileなら、拡張子LSSとLSTのファイル。
906 :
774ワット発電中さん:2005/07/26(火) 10:57:55 ID:ZfWiYfb/
WinavrのPNでも makeするときにソースを自動保存してからコンパイルしますよ
総合環境ならKamAVRってのもある。
(使った事ないけど)
908 :
774ワット発電中さん:2005/07/28(木) 12:19:14 ID:QO8KTkHb
減収だけならともかく赤字転落か・・・厳しいな
まぁここのところの製品企画は、AVRに限って言えば、(゚Д゚)ハァ?感が強かったが・・・
だがATMELはAVRだけじゃあるまい
自動車電装関連がGMの不振でダメになったか?
種類ばかり増やして止めちゃうの早すぎ
止めるなら基板もソフトも修正不要で使える物を用意してくれないと
911 :
774ワット発電中さん:2005/07/28(木) 15:13:44 ID:+2FjIOx2
やっぱ日本語書籍を出さないとだめなんかなー?
>やっぱ日本語書籍を出さないとだめなんかなー?
「バカの前に本がかくまで無力なものだとはこの瞬間まで思はなかった」
と言った人はいなかったかもしれないが、それでもバカの前には本なんて無力です。
バカに向かって「あんたバカ?」だの「データシート読め」だのなんて決して言わず、
バカの下らない質問にも笑顔で回路もソフトも無料で用意してあげて、この通りやればOKですよと
手取り足取りお世話してくれるこの上もなく親切な教祖様を祭り上げればいいのです。
唯一無二の問題点は教祖様のなり手がいないことだが
>やっぱ日本語書籍を出さないとだめなんかなー?
巷に溢れるPIC本みたいなのだったら止めてくれ。
裾野が広がるのはいいが、AVR厨ばかりになるのは目に見えてる(w
その前ににアプリケーションノートを全部日本語化してくれないかな。
914 :
774ワット発電中さん:2005/07/28(木) 19:31:32 ID:U93HQsCS
>>912 書籍に基板と、Tiny13とCDROM(WinAVR一式とAVRStudio)付けて売るですよ。
とにかく、「AVRという選択肢がある」という事をもっと広げるんですよ。
日本に対して本気で売る気はないと思う。
WEBのサポート言語が英語と中文だけっていうので汲み取れる。
>>915 まあ英語圏と中国語圏でかなりカバーできちゃうからねえ。
日本語圏市場なんて残念ながら一部でしょう。
>>913 1つずつ翻訳しない?とりあえず1つおながいします。
翻訳物の公開時ってATMELに断り入れなきゃいけないのかな?
heroさんとこはどうしているのだろう?
917 :
774ワット発電中さん:2005/07/29(金) 10:31:29 ID:4e5ZPlXg
>>913 >>916 ATMELから許可とってくれれば、翻訳くらいするけど。
(交渉事はまんどくせ〜なので頼む)
AT90S2313用のHEXをTiny2313で使いたいのですが、この場合は
やはり再コンパイルとか必要なんでしょうか?
また、そのままでも行けるならAT90S2313用は外部クロック4MHzに
なっているのですが、フューズビットを変更すれば内臓に
切りかえれるでしょうか?
>919
レスありがとうございます。
手元にあるHEXは単にタイマーを使ってI/O制御しているだけなので
たぶん動くかな?と踏んでいます。
こんなアプリケーションノート?もあるんですね。
ありがとうございます。Tiny発注して届いたらやってみたいと思います。
AVRにはPICのようなメーカーの直販みたいのはありますか?
探したけど、DigKeyあたりしか・・・
925 :
774ワット発電中さん:2005/08/01(月) 16:53:11 ID:cJiHUUB+
>>921 RSコンポーネンツで買えるよ。
ちょっと高いけど翌日配達だから気にするな。
便乗質問ですみません。。
ATMEGA168のTQFP版を手に入るところは国内では無さそうでしょうか?
DigKeyみたらV版はあるのですが普通の20MHz仕様が在庫切れだったのと
納期が「ひょっとしたら一ヶ月かも・・・」というDigkey様からの回答だったもんで。。
RSも168は扱ってないようですし。。
Vを無理やり20MHzで駆動するってことは可能なもんでしょうか?
それなりに精度が必要なタイミング回路です。
・・・と、いうか、DigKeyで試しに3個注文してみたので、可能だったら報告します!
927 :
774ワット発電中さん:2005/08/01(月) 18:54:30 ID:/uVNXNLn
>>926 ATMEGA168-20AI なら、CHIP1STOPに「在庫有り」で出ています。
納期は知らんけど。
>>927 ありがとー!
早速問い合わせしてみます。助かりました。。
今までPICを使っていたので比較はMicrochipだけに
なってしまって申し訳ないのですが、Microchipの直販だと
1リール(3300)注文しても3日程度で届きますし。
少量生産の場合は、大変助かっております。
あとSOICかTQFPを多用していますので中々納期がネックに
なりまして。DIPは開発時ぐらいしか使用しないです。
直販で無くても良いのですが、使いたいデバイス(形状)が
1000個ぐらいでもすぐ届くような入手性を求めております。
在庫ゼロでも、注文すればちゃんと入るよ。
で、その後は在庫が復活している(w
931 :
774ワット発電中さん:2005/08/02(火) 12:21:14 ID:Bo6u7Vzn
>>930 だれも注文しないから、在庫が0のママって事でスカイ?
アトメルの代理店って、千単位では扱ってくれないのか?
933 :
774ワット発電中さん:2005/08/02(火) 16:11:17 ID:Y0PcKu2l
935 :
928:2005/08/07(日) 20:47:53 ID:I7lls7GI
先日はありがとうございました。
ATMEGA168Vを20MHzで動作させてみたところ、問題なく動作しました。
精度もとりあえずμセックオーダーで出ているようなので一応は使えますね!
ちなみに、教えて頂いたCHIP1STOPで168の見積もりもらいましたが
やはりVしか在庫無かったようで
改めてデジキーで在庫ゼロ状態で5V用168を100個注文しましたけど、今日届きましたー
930さんが言うとおり注文すれば早めに入るのかも
初めてのAVR工作で5桁カウンタ動いたんで満足。
単純なカウントをバカみたいに見てます。上位側ゼロサプレス後から追加。
たまにパワーオン・リセットによる初期化失敗する。
マニュアルリセットすると正常動作になるけど。
確実にパワーオンリセットするにはリセットIC付けないとダメなんかなあ。
ちなみにAT90S4433+8MHzセラロックで動いてます。
937 :
774ワット発電中さん:2005/08/08(月) 04:42:44 ID:SsGjpHsB
BODENヒューズでのBOD許可でもダメなら、
リセットICでも多分ダメかも...
そうなると、原因はチョット複雑?
>>936 表示デバイスは何?
キャラクタLCDなら初期化の時間待ちが不足しているとか?
>>937 こんなのあったんですね。とりあえずデフォールト値を読んでみます。
電源投入はDCジャックをグサッと挿すことなんで安定するまでクセのある
過渡変動するのかもしれない。
>>938 LEDなんでその線はないです。
936=939です。設定値変えたら安定したみたいです。
ありがとうございました。
digi-keyでatmega8-16PIが売り切れ。
先月100個買っておいてよかった。
まーイザとなりゃRSがあるけどさ(w
つかさー、
マイコンを数十個とか100個とか買ってる香具師って、
いったいどんだけ使ってんの?
やっぱ企業や自営の方でねーの?
あーなるほどね。
>>942 25個まとめ買いは個人でもやったけどな(^^;;;;
糞転売厨かも
>>946 リーズナブルな価格なら転売歓迎だろ。糞なんて書くなよ。
転売しないで死蔵する奴のほうが・・・・ATMEL儲かるならそれもいいか。
共立ってmega系扱ってますか?
シリコンハウスはmega8だけ。
デジットはmega8535,163もある。
951 :
949:2005/08/15(月) 13:12:34 ID:A1p7oX/N
ヤバそうな臭いが…
つか、こんなの貰っても・・・・。
2313だとP店関連かな?
あれ系はH8かAVRが主流のようだし。
外国人だな
貰うだけ貰って「データシート見たけど俺では_」とか言っちゃえば良いのでは?
成功報酬だろ。
標本にされて売られても知らんぞ。
そしてなぜか957の標本にニューギニア政府の公認が……
逆オークションがあればなぁ
職業・組込み屋の出番か
>>952 IDと似た名前のメールアドレスの人から、AVRでのプログラム製作依頼が来たことがある・・・・
いろいろ事情があって結局断りましたけど。
昔は部品屋のオヤジなんかが、個人にこういう仕事の投げ方をやってたなぁ
もちろん契約書もなしにハシタ金で買いたたかれて、製品化権も著作権も全部とられちゃう
いまはヤフオクを媒介にしてるんだね〜
おまいらこんなのに手を出すほど、切羽詰まってないよねw
切羽詰まってないというより、あんな使えない物の現物支給はいらないw
あれ相当の金で内容次第では動きそうな自分が居る…
>>964 >内容次第では
あのページから読み取れる仕様は、
・RS−232cより漢字ROMコードを送信
・ATMELのAVRでコントロールするソフト
・Cでお願いします。TINY2313あたり、もしくわMega8でお願いします。
だけなんだが...
その他の仕様は、未定 or 未検討状態の発注元草案 だけ
かもしれんが、それでも?
書いてある内容だと、ディスプレイはシリアルで制御できる。
AVRのソフトを書いてもらってディスプレイに何か表示させたい。
ってだけで、何をしたいのか、さっぱり…
えーそういう意味なの?
あのディスプレイ1台やるからそのディスプレイ制御汁!ってことなのか…
まったく別物を作らされるのかと思ってたけど。
>>967 写ってるディスプレイ1台もらえるだけで金は無しで
あとからクレームきてタダ働きさせられるかもね。
便乗質問ですみませんけど、
そこそこ安いソフト屋のお勧めってどっかありませんかね・・・
さすがに個人の人に頼むにはとらぶった時が心配・・
秋月でmega扱いだしたね
28pinや64pinのAVRだったらイラネ
>>972 THX!!
・・・そうしてみまつ・・・orz
978 :
774ワット発電中さん:2005/08/25(木) 16:47:13 ID:P3zrxWe1
>>336 avrdude.exe -p m8 -c avrisp -U flash:w:hoge.hex:i -u -U hfuse:w:0xD9:m -U lfuse:w:0xE4:m
いつのまにか、-uをつけないと、ヒューズが書けなくなっている。(いつから?)
>>979 さんきゅー。
コマンドで使ったこと無かったから知らんかっとんてんちっとんしゃん
981 :
969:2005/08/27(土) 04:46:59 ID:YiZ78VHC
>>977 えーん、違います。通りすがりの教えてクンです。
人様にソフト開発頼むと高いのかな・・・と思いまして。
きょう秋月に行ってmegaの入荷状況見てきました。
128と64のQFP
DIPタイプは無し(?)なところみると、単にどっかの余剰在庫を引っ張ってきただけとか。。
値段は6??円〜最大850円ですたよ。
>>981 安くしたいなら自分でやったら良いじゃん。
入手先もわかってるようだし。
>>981 ただ作るだけならいいけど、どんな場合でも有害動作しないとか
不具合時責任とかがあればどうしても素人のバイトのような値段では
すまないでしょうね。