_____
/ /|
/ ( ゚∀゚) /.∠フ 個人でも手軽に使える
/ /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
/ __ o/.∠フ || 中心に語るスレッドです。
∠| ̄ ̄凵 ̄ ̄|∠フ || *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
.|| |_____|/||
Atmel AVR 8-Bit RISC
http://www.atmel.com/products/avr/
1200って今や下手にCMOSロジックIC買うより安いなw
何かと便利そうだからストックしとくか。
乙!!!
スレ立て乙です!
ところでAVRのATmega64とかATmega128を使い始めたいと思っているんですが、
他にどなたか使っている方はいませんか?秋月で安く売っているのですが、
秋月のAVRのライタは全部DIPしか対応して無くて、表面実装タイ
プ(PLCCだったかな?)のマイコンのROMにプログラムを書き込みたい場合ッて
どうやるのか困っているところです。おそらく、
インサーキットでプログラムを書き込むと思うんですが、ツールが見つから
なくて…。秋月に行って直接、店員に聞
けばいい話かもしれませんが、なにせ家から遠いもので…orz
>>1 乙です。 (゚∀゚)ノ
>>8 自分はELM氏のHPを参考にして、パラレルライタ作りますたよ。
(
>>5 のリンクからどうぞ)
リンク先の表見ればわかりますが、64も128もOKみたいですよ。
自分で試したいのはやまやまですが、ATmega64 TQFP→DIP
変換自作ボードでボンディングワイヤみたいにピンからジャンパ
飛ばしてたら、47番ピンが根元からもげちゃった… |lil|li orz il|lil|
>1
おつかれです
>10
ピンが折れたとき、パッケージを削って内部に残ったピンを露出させて、
ジャンパ線を半田付けしたことがありますよ。
13 :
774ワット発電中さん:2006/05/22(月) 01:50:38 ID:OEzf5ekK
14 :
12:2006/05/22(月) 22:18:49 ID:WPqBZCCD
>>13 板違いでスマソなんだけど、それもさわってみたいんだよね〜。
コアは組み込みマイコンシェア世界No1らしいし。
(民生品の話だけど)
ところで、そこのMEGA128ボードのほぼデッドコピー(チョイ大きい)をP板で作ったヨ。
理由は数が欲しかったこと、128ではなく64が欲しかったこと。(生板が売ってない)
初回のみISPでブートローダー組み込んで、以後は232C直でサクッと書き換えできて快適ナリ。
15 :
774ワット発電中さん:2006/05/23(火) 01:05:19 ID:AqbdTtMS
>>14 あ、その手があるか。
ところで128とか64の単品入手ルートってある?
あれば、ちょっと試してみたいかも。
8が秋月で売ってるって言ってんじゃん。
17 :
774ワット発電中さん:2006/05/23(火) 02:57:57 ID:AqbdTtMS
18 :
774ワット発電中さん:2006/05/23(火) 09:31:46 ID:J+xdbqrt
最近は MEGA48〜168をストロベリーで入手して使ってます。
DIPタイプなのでユニバーサル基板に6ピン立てて、
>>12と同じくISPシリアルライタで。
ISPでヒューズの書き換えができないAVRなんてもう無いんじゃ?
20 :
774ワット発電中さん:2006/05/23(火) 17:55:01 ID:sVYHuqOi
ATmega128にAVRStudioからJTAGICE mkIIでのISPをためしたのですが、
ISP接続に成功したためしがないのですが、ISPで書き込めるマイコンってJTAGをサポートするマイコンすべてではないのかな?
AVRStudioのリストでは選択できるんだけど。
うちも最初うまくISPできなかったけど
リボンケーブルもう一度さしなおしたら
ISPできるようになった
>20
JTAGICEmkIIでISPするってJTAGモードでの書き込みではなくISPモードで書き込むってことですよね。
JTAGインターフェースにつないだのではなくてISPインターフェースの方にピン変換して接続してますよね?
23 :
20:2006/05/24(水) 02:00:46 ID:YcX5AFvr
>23
しょうもないことですが
JTAGICEmkIIでのISPフルサポートはAVRStudio4.12以降ですがバージョンはあってますよね?
25 :
774ワット発電中さん:2006/05/24(水) 04:43:37 ID:ql6Xnxr1
RESETとISPを無効にしてしまったぁぁぁ!………orz
パラレル来田無いなら捨てればよし
27 :
8:2006/05/24(水) 11:19:31 ID:q5bSVUo9
>>9,
>>10,
>>12 みなさんアドバイスありがとうございました。リンクや教えてもらったサイトを
参考にさせて頂きました。あと、リンクを見るのを怠っていてごめんなさいです(汗)
ELM氏のサイトを参考にライタを自作してみたいなと思うようになりました。今後
も何かとお世話になると思いますが、宜しくお願いします。
>>26 表面実装基板なんかだと捨てればいいと言うのは辛そう
>>25 ライターソフト側でISPを無効にするヒューズbitをブロックする
(オプションをつけたときだけ警告付で書き込める)
なんてなっているといいな。
ヒューズを書き込むバッチファイルを用意するというのもいいかも。
avrsp.bat m88 XTAL 8MHz BOD4.3 とか。
中身は IFとsetの連続。
29 :
20:2006/05/24(水) 15:34:05 ID:YcX5AFvr
>>24 4.12sp2ですね、ファームも4.12sp2についてきたのにupgradeしてあります。
SPIENビットはISPからは変更できないはずだと思った。
でもRSTDISBLを書いちゃったら致命的だなー。
パラレルライタ自作してくる……orz
tiny26なんかはRESETは無効にしたくなるよなー
IOがちょうど8本8本になるんだよな
>>32 ハゲ胴
パッケージにピンホール作って,RSTDISBLやっちゃたら,
その穴にクリップを伸ばしたものを入れればRESET入るように
してくれねーかなー
BOTだっけBODだっけ
あれを有効にした上でRESET信号で電源電圧を上げ下げしたら書き込めたりするんかね
8ピンのはポチッと戻る専用の作ったよ。
光線銃っぽいサウンドを生成するのに、
8KHzの正弦波(矩形波かも)とホワイトノイズを合成して、
それを時間とともに減衰させると出来るらしいんだが、
tiny45(1MHz駆動)あたりを使って生成できないだろうか?
世の中には機械式オルゴールの音を再現してるすごいのもあるけど。
パラレルライタ作ってきたけど認識しない……。
初めてAVR使ってみたけど、まさか捨てる羽目になるとは思わなかった。
mega48と168がゴミ箱いき決定……orz
>>37 作ったパラレルライタが正常かどうかはどうやって判断した?
経験的に考えるとパラレルライタがちゃんと作れてないに100カノッサなんだが...
STK200ライタを作っていたというオチでは
そうだよね
パラレルポート用のライタ作ったからパラレルライタと思っている人って案外多そう・・・
>>42 >一番上のを作ってみたけど、
これは確かにパラレルプログラミングのように、普通のシリアルプログラミングで
書き換えられないヒューズを書き換えられるけど、回路図でわかるようにtiny15など
パラレルプログラミングするにはピン数が少ないデバイス用。
高電圧シリアルプログラミングのライターです。その機能がないmega168には使えません。
http://elm-chan.org/works/avrx/avrxp.png こっちだ。ピン対応はデータシート読んで。
あとライタが認識しなかったからmega48と168捨てるとか行動順がよくわからんことはヤメレ
AVRは強い子だからVccに12V入れちゃったとかやらない限り壊れないよ
ISPでISP不能になることがないAT90S2313 万歳\(^_^)/
機能が少ないのもたまにはいいもんだ(w
90S2313は周辺機能がシンプルでいいよな。
入門向きだ。
>>46 AT90S2313は{もうすぐ|すでに}ディスコンでしょ。
ATtiny2313で置換え可。入門向きという意味ではATtiny26が
入手性などから、お勧めなんだが。
USIで TWIと同じレベルの通信をしたいんだけど
なかなか上手くいかない。( ゚Д゚)マンドクセー
USIについて質問です。
USICRの設定でクロック源としてTimer0 Overflowを選択できますが、これって
1ビット送る毎にTOV0ビットをクリアしないといけないのでしょうか?(TOV0の立ち上がりエッジでクロック)
それとも、TOV0は関係なくとにかくオーバーフロー毎にクロックしてくれるのでしょうか?
前者ならorz
>>47 AT90S2313は
タイマ仕様が旧規格で、mega使おうとしたら混乱するところは初心者にはよろしくないかも
と、初心者が言ってみる
秋月90S2313やすいなぁ。たたき売り?
叩き卸し
53 :
47:2006/05/26(金) 17:52:14 ID:uFCuGVcn
>>50 いや、、お勧めはtiny26と書いたつもりなんだが・・・
>>53 いえいえ、そのつもりで書きましたが書き方悪かったです。すまんです。
秋月のAT90S1200の安さはなんなんだろうね。
まるでロジックIC並みだし………買わないけどさ。
無謀にも知識のないままAVR始めたものです。
AD変換したいんですけど、
計測電圧が0〜11Vくらいあるんです。
で12vをAREF(AD変換基準電圧)にぶっこむと
さすがにマズイんですよね?(MAX5?)
ざっと見た感じ特に耐圧が書いてなかったのですが。
計測電圧を半分にしないといかんのか・・・
どうやるのが一番楽なんだろ。
58 :
774ワット発電中さん:2006/05/27(土) 00:04:39 ID:4hws88sD
テステス
今日、なぜかjtagince-mkIIのdebug-wireがavr-studioから使えなかった。
色々不要なソフト消してから、AVRstudioを再インストしたら直った。なんだったんだろう。
それと、昨日のIDがAVRだったんだよね・・・
▼以下証拠
998名前: 優しい名無しさん投稿日: 2006/05/26(金) 18:28:44 ID:8a6l8AVR
1000鳥合戦。 Σ('∀`;)
61 :
774ワット発電中さん:2006/05/27(土) 00:25:24 ID:hkimRefu
LED点灯制御の為、Tiny11を買おうと思っています。
Tiny26の2本のIOピンをTiny11につなぎ、Tiny11の4本のIOピンにLEDをつなぐ
Tiny11には、2ビットの信号で4つのLEDを点滅させるという簡単なプログラムを書込んでおきます。
書込み自体はSTK500があるので問題なしなのだが、
GCCでプログラム・コンパイル・書込みできるのだろうか?
Tiny11にRAMが無いのが気になるのです。
RAMが無いとGCC上で何が問題になるのでしょうか?
大量に必要になるので買ってからダメだと判ると悲しいもので、よろしくお願いいたします。
>>56 耐圧5.5くらいだから、壊れたんじゃ・・・。
普通は、A/Dは基準電圧というものがあって
それ以下の電圧を測定できます。
基準電圧は、Vcc(マイコンの動作電圧)とAREF(外部からの比較電圧)と内部生成基準の
3種類からAVRは選べます。
普通、Vccより大きな電圧を測る場合には、
抵抗2本で分圧して、最大入力がVccに最も近いように調整します。
AVRの電圧最小検知の値は、(Vcc/1024) [V]です。
>>61 tiny11はWinAVRで素直にコンパイルできなかった気がする。
SRAMがないとCっぽく書くアセンブラなだけになるんだっけか。
以下、WinAVRのio.hより抜粋
/* avr1: the following only supported for assembler programs */
#elif defined (__AVR_ATtiny28__)
# include <avr/iotn28.h>
#elif defined (__AVR_AT90S1200__)
# include <avr/io1200.h>
#elif defined (__AVR_ATtiny15__)
# include <avr/iotn15.h>
#elif defined (__AVR_ATtiny12__)
# include <avr/iotn12.h>
#elif defined (__AVR_ATtiny11__)
買う前にプログラム書いてコンパイルしてみればいい
買ってからじゃないとやる気が出ないべ
66 :
774ワット発電中さん:2006/05/27(土) 01:13:07 ID:hkimRefu
>63,64,65さんありがと
コンパイルならば買わなくてもOKという事に気づいていませんでした。
早速、簡単なプログラムをコンパイルしてみた
'attiny11' Supported for assmbler onry
"MCU not supported by the C compiiler"
でした、残念。
>>57 >>62 サンクス。
あれ、こんな簡単に電圧下げられるのか。
電流変わったら下がる電圧まで変わっちまうと思ったけど、
抵抗あるから電流が変わんないのか・・・
あれ?よくわかんなくなってきた。
基礎から勉強しないと・・・
ちなみに、まだ12vぶっこんでないんでしっかり動いてます。
>RAMが無いとGCC上で何が問題になるのでしょうか?
自動変数を作る為のメモリがないので困るのでは?
レジスタで足りなかったらエラー出すようにすれば理論上は問題ないのか・・・
>>67 分圧抵抗よりも測定したいノードのインピーダンスが十分低くないとだめだけどね。
オームの法則くらいは分かるな?
これが問題ならバッファを入れてやればいい。ボルテージフォロア。
>>67 マイコンポートはインピーダンスが高いので、ポートの入力電流は
非常に小さく、ちょうどオシロスコープのプローブを当てている程度。
そう考えれば回路を考えやすくなるんじゃないでしょうか。(細かい話は割愛で)
ADCのために接続するその分圧用の抵抗二つに流れる電流は、
ポートのことを考えずで0.1mAも流れれば十分じゃないでしょうか。
識者の方、間違いあれば指摘願います。
>>61,66
74LS138のような動きならアセンブラでsbisやcpで作ってみるとか。
デンシ研の連結イルミはTiny11を使って1シリアル入力で5LED出力しているよ。
なるほど、ADにいく電流が十分低ければ、(抵抗に行く奴より)
電圧の変動は殆ど起きないってことか。
試して見ます。
>>61 TINY13なら、WinAVRが使えるよ。
高い?
>>71 とりあえずオームの法則や分圧分流を勉強した方がいいと思う。
mega168でLEDチカチカしたらPORTDの0だけが明るくて1〜7が薄暗い……、なんだこりゃ。
>>67 こう考えたらよろし。
内部抵抗 << (分圧抵抗1+分圧抵抗2)なら、単なる分圧でいける。
アナログ入力の内部抵抗はデータシート上tiny26で100MΩのようなので、
分圧に与える影響という意味では無視可能。
ただし分圧抵抗高くしすぎると流す電流少なすぎて外来ノイズに弱くなると思うけど。
電圧源
|
内部抵抗
|
|
----------測定場所
|
|
分圧抵抗1
|
|
_ト------>ADC
|
|
分圧抵抗2
|
|
GND
76 :
774ワット発電中さん:2006/05/27(土) 09:13:05 ID:JkYAgGYZ
教えてください。
USBのデバイス機能を内蔵したAVRってラインナップされてる?
ソフトでやるのはダメよん。
ある
78 :
774ワット発電中さん:2006/05/27(土) 10:36:34 ID:hkimRefu
>73さん
>TINY13なら、WinAVRが使えるよ。 高い?
ですよね〜、
Tiny11なら一個44円なので目をつけたのです。
Tiny13は88円で400個ぐらい必要なのでコストにちょっとこだわったわけです。
>70さん
>デンシ研の連結イルミはTiny11を使って1シリアル入力で5LED出力しているよ
まさにコイツをやりたいのです。
>73さん
>でも、この規模ならアセンブラでやれば?
AVRではCしかやったことがないもので、ちょっと億劫になりました。
でもよく考えると、
AVRは趣味でC言語で遊び
仕事は8086をMASMでたたいて走らせています。
何かでかい方をアセンブラでって、変ですね。
Tiny400個x4LED=1600個の点滅かぁ。ダイナミック式が有利そう。個別制御なら
100円の1200を使って3入力8出力か4入力12出力にした方がいいのでは。
1200ならD0-D5で100mA,B0-B7.D6で100mA流せるし
>>76 AT90USBでググれ。
評価ボードがあるみたいね。
>>49 from AVRStudio4.12 SP2(build472) help
>Known issues
>Below is a list of currently known issues for AVR Studio 4. (Last updated 01/2005)
>Simulator
> TWI, USI and analog peripheral simulation is not yet implemented.
>All instructions, interrupts and other peripherals are supported.
>>80 まちがえた(USI)
自己レスなんだけど、AVRStudioでシミュレートできないことも質問したつもりでいたorz
>内部抵抗 << (分圧抵抗1+分圧抵抗2)なら、単なる分圧でいける。
ええ、つまり前に書きましたが、
>なるほど、ADにいく電流が十分低ければ、(抵抗に行く奴より)
分圧用の抵抗値にくらべてADにいく抵抗が高ければ(電流が少なければ)
電圧の変動が無視できる程度だろうってことですよね。
時に前スレみてるとディスコンの情報がいくつかありますけど、
どこで調べればいいんすか?
それとも商社経由?
>>83 10k前後の抵抗で分圧してみては?多分問題ないんじゃ。
高抵抗だとマイコン側と意識するけど
分圧抵抗が小さい分は、電流が沢山流れるだけだからね。
消費電流が増えることと、極端に小さいと抵抗が発熱する。
ためしに10kを2個で1/2に分圧したものを入れてみるがよろし。
85 :
75:2006/05/27(土) 18:17:54 ID:lJ4WKL+m
>>83 いや、言いたかったのはそっちじゃなくて、
測定相手の内部抵抗が高ければ、
(内部抵抗と(分圧抵抗1+分圧抵抗2)が近い)
分圧抵抗をつなぐだけで(AVRのADCと関係なく)電圧変わるよ、ってこと。
旧純正AVRISP(シリアルポート)を購入したのですが、
>>↑86 続き
ATmega8535に非対応なのでしょうか?
tiny2313にADCついていればなぁ〜
tiny26にUSARTがついていればなぁ〜
つ[ATmega128]
>>89 mega48でいいじゃん。ちょっとでかいけど。
tiny26のUSIでUART、またはtiny2313のANACOMPでADC?(w
>測定相手の内部抵抗が高ければ、
ああなるほど。
直列じゃなくて、
計測器とAD変換チップ並列でつけちゃえば
解決するのかしら?
93 :
774ワット発電中さん:2006/05/27(土) 22:46:51 ID:+EGan7lG
USARTのエラー処理について質問させてください
ATmega32でUSARTを使おうと思いデータシートを読んだのですが、
エラー(FE,DOR,PE)では、割り込みを発生させないと書いてありま
した。これは、
「受信完了割り込みルーチン内で、UCSRAを確認するだけでは不十分で
メインループ内でのポーリングでの確認も必要」
という解釈で合っているでしょうか?
英語が苦手で自分の解釈が正しいのか自信がありません。解答を
お持ちの方が居られれば、ご教示くだされば幸いです
>>79 私もこのスレで出てきたAT90S1200の
・秋月で100円
・ロジックICより安い
で74HC595の3入力12出力バージョンを考えてました。
2個で24ビット出力。ただし桁上がり出力を考えると
半端な出力ビット数になるのが悩みどころか…
何かいい方法は無いかと考え中。
ダイナミック駆動じゃだめなのか?
せっかくの高性能なマイコンなんだから、デコード、ラッチ&ドライバじゃ
もったいないし作るのも手間かからね?
表示データをシリアルで受けて、数10個のLEDをダイナミック駆動するようにしたら?
1200でプログラマブルカウンタ作れないかな…
デジタルパルスを入出力するだけならA/Dなどの周辺機能は必要ないし。
>>94 74HC595はシフトレジスタだよね。入力はクロックとデータ、出力は12bitでQ12を次の
データ入力につなげば1ピン余る。リセットは1200のresetそのまま使えばいいと思う。
目的が分からないけどLED1600個だと月266個も作らないとクリスマスに間に合わない。
フリー基板なら大作だなぁ。
ロジックICの代わりにされる1200………なんか悲しいモノがw
512Wordで出来るのって、ありそうで少ないしなぁ。
>>93 エラーフラグは単にそのデータの受信完了時の状態を示しているだけで、それ自体が割り込み要因になることは無いという意味でしょ。割り込みは受信完了でかかるのだから、データを読み出すときにエラーフラグをチェックしてそのデータの扱いを決めればよろし。
100 :
774ワット発電中さん:2006/05/28(日) 09:27:13 ID:+PO/meh+
>>95 >>97 アドバイス有難うございます。
私の場合、
>>61 さんのLEDとは違い、リレー(12V)出力が
目的なので、ラッチ付きシリ-パラ変換を想定していました。
>>100 1線で通信ですか… スゴ、、、。
これも検討させて頂きます。URL感謝ですっ!!
103 :
97:2006/05/29(月) 01:16:44 ID:/FnlkR00
リレー制御さんはLED制御さんと違うのね、人違いスイマセン。
12VADさんは10k程度の抵抗をつないだら測定したい電圧が下がる
出力なのか変動しない出力なのか分かったのかな?
104 :
100:2006/05/29(月) 09:37:40 ID:Z2KfSO7F
>>102 調歩同期で受信するだけですので1本で充分なんです。
IDで区別して8台まで1線で繋げます。(ソフトの仕様として
そうなっているだけですので、ソフトを変えれば何台でも繋げます)
あまり高速にはON/OFFできません(1台につき1ms〜1.5ms)が、
リレーのON/OFFでしたら問題ないでしょう。内部発振(約1MHz)
の代わりに外部にセラロックなどをつければ、CPUクロックに比例
して早い通信ができます。
AVR-Libcのサンプルプログラム(largedemo.c)を読んでたんだが、USARTの受信で
c = UDR;
if (bit_is_clear(UCSRA, FE))
{
(以下略)
と書いてあるけど、UDRを読んでしまったらUCSRAのフラグはクリアされてしまう
(もしくは次のバッファのフラグになる)からまずいと思うんだが。
106 :
774ワット発電中さん:2006/05/29(月) 12:14:44 ID:UEjjoeMh
78です。
LED制御の方です。ただいまアセンブラと格闘中です。
>100さん、
参考になるURLありがとう。
入手のしやすさと単価の安さから、ロッジクICよりTinyの方が手っ取り早いとおもったのです。
108 :
774ワット発電中さん:2006/05/29(月) 19:14:20 ID:zX4NXdll
ピン変化割り込みって、パワーダウンからも復帰するんだな。
今日初めて知った。ちょっと凄いかも。
INT0,1,2って何の為に残ってるん?
>>105 それってまずいんじゃね?
>the UCSRA must be read before the receive buffer (UDR)
mega/tinyの比較一致出力について質問します。
たとえばtiny2313のOC0Aにおいて、
DDRB|=_BV(PB2); /* OC0A */
OCR0A=128;
TCCR0A=_BV(COM0A1)|_BV(COM0A0);
TCCR0B=1;
とした場合、比較一致毎にOC0Aピン出力がトグル動作するわけですが、
このときのOC0Aピン初期値はPORTBのbit2に依存するのでしょうか、
それともトグル動作モードに入るときに何らかの初期値が設定されるのでしょうか?
比較一致出力部の回路図見るとPORTB値が初期値にはならないように見えますが、
そうだとすると初期値は0とみなしてよいのでしょうか??
>>111 まちがい、OCR0Aは01、WGM02=1が条件だった・・・
TCNT0=0;
PORTB=0xFF;
DDRB|=_BV(PB2); /* OC0A */
OCR0A=128;
TCCR0A=_BV(COM0A0)|_BV(WGM01)|_BV(WGM00);
TCCR0B=_BV(WGM02)|1;
でよろしく。
>>112 tiny2313についてhiroさんのデータシートを読んでみました。
位相標準PWMモードは1回遊んだことしか無いのですが、
TCNT0=0 にして、OCR0A=0xFFにしてみて、それで出力してみるといいかも。
多分、ずっとLかずっとH。
そこで、OCR0Aの値を1づつ減らしてみよう。
すると、ピン出力にパルス波形が出るはず。
つまり、OCR0AとTCNT0の比較結果でトグルしてる。
あと、PORTの出力は、DDRBだけではなくて、PORTBも初期値を与えるべき。
OCR0Aの値を、外部からの通信で書き換えたり、サーミスタの電圧やボリューム抵抗の電圧で
フィードバックしてやると、モータの回転数やヒータの出力を調整できるというわけですね。
確かめずに書いてるんで、
確認してみてください。多分、見るべきところは正しいはず。
>>113 このケースはWGM02、WGM01、WGM00=111で、
TOP=OCR0Aの高速PWMのつもりだったのですが。
COM0A1,COM0A0=01なので、高速PWM動作では比較一致でOC1Aはトグル動作とあります。
つまり先のプログラムでは128+1カウント毎に比較一致がかかり、TCNT0のリセットと
OC0Aピンのトグル動作が起こると考えたのですが、ここまで間違いありますか?
もし間違いがないとして、
>>112のプログラムでOC0Aピンは
最初にHiを出すのかLowを出すのかということが疑問なんです。
DigiKeyで目が644、DIP40の仕様をみてると、
フラッシュが他のはリプログラマブルフラッシュなのに、
これは単なるFLASHと書いてある。
あと、AD変換も無しと書いてある。
しかし仕様書見るとその他のフラッシュと変わらないようだし、
AD変換も差動入力が未保証ではあるが通常のは使えるみたい。
これのフラッシュって何か特殊だったりするんですかね?
今tiny26lを使ってるんですが微妙にプログラム領域足りなかったり、
ピン割り込みのピンが足りないんで買おうかと思ってるんですけど。
さすがに64kは使いませんが多いのはいいことだと思って。(送料高い)
>>115 Mega48くらいでいいんじゃないの?
Mega48だったら、国内でもあちこちで入手できるでそ^
>>115 digikeyの能書きはあんまり気にするな。
digikey内での注文番号違いで同じ物がいくつかあったりと
そこら辺は結構適当だ。
関係無いが、そーいえばこの間買ったMega162-16AIが
RoHSの関係で後2年で廃止とdigikeyからメールがきてたな…
次は16AUにしよう…
>>115 秋月のATmega128(128KB)をDIP型に自分で加工……とかじゃダメなの?
苺だと1個1000円で定形外で送ってもらうこともできるみたいだし。
ATmega48もいいけど、液晶表示とか色々したら容量足りなくなることがあるからなぁ。
ATmega88か168くらいはほしい。
119 :
774ワット発電中さん:2006/06/01(木) 07:36:04 ID:mAyjiBVZ
>>114 データシートを見る限り、TCNT=0は最大値=0xFFまで増加する。
OCR0Aを128にしたならば、TCNT0が 0からインクリメントされて128に達したときに出力がL->Hになる。
128を超えて255に達したときに、H->Lになる。(256/2)=OCR0Aに設定すれば、DUTY=50%のパルス波形が
とれるんじゃないかな?
L->H H->Lの向きは、反転モード、非反転モードの設定で入れ替え可能。
>>119 そうなんですか?自信なくなってきた
データシートを読むと、
>高速PWM動作
>TOPはWGM02〜0=011時に$FF、WGM02〜0=111時にOCR0Aとして定義されます。
>(訳補:WGM02〜0=111の場合については、)高速PWM動作での(デューティ比50%)周波数の
>波形出力は比較一致毎に論理反転するOC0A設定(COM0A1〜0=01)により達成できます。
>生成された波形はOCR0Aが0($00)に設定されるときにfOC0x=fclk_I/O/2の最大周波数でしょう
わけあって比較一致Aだけで任意の周波数の50%デューティ矩形波を出したいのです。
で、(OCR0A+1)*2カウント周期の矩形波(高速PWMの1/2周期)が出るのを期待しているのですが。
お城とかないので最初にHi/Loどちらがでるのか確かめられないもので。
他のピンにつないでプログラム内からそのピンを読ませて表示させればわかることに気がついた。
あとでやってみる。
つ[74HC74で1/2に分周]
>>120 >最初にHi/Loどちらがでるのか
の前はどっちになってるかで分からないか?
>>111 人に聞く前に実験してみようとは思わないのかね。
これだから最近の初心者は…(w
>>121 それでいいなら普通に2倍周期のPWMにします(^^;)
>>122 機構の回路図見る限りではPORTxラッチの値の反転ではなさそうなので。
>>123 そうします。
125 :
774ワット発電中さん:2006/06/01(木) 18:12:39 ID:jk5u2UEd
>>120 AVRのPWM出力ポートに、LEDと1kΩの抵抗つけて、Vccとつなげば
Lを出力したときにLEDが点灯するようになる。
これで、PWM出力をさせてみたら?duty比が小さくなれば、明るさが下がる。
実験結果レポートよろろ。
>>124 なんでPWMにこだわるかな?
整理するけど、任意の周波数の50%デューティ波形を、任意の初期レベルで
出せたら良いんだね。
HIROデータシートより
> OC0xの初期設定はポート ピンに対するポート方向レジスタを出力に
> 設定する前に行われるべきです。OC0x値を設定する一番簡単
> な方法は標準動作で強制変更(FOC0x)ストローブ ビットを使用する
> ことです。波形生成動作種別間を変更する時でも、OC0x(内部)
> レジスタはその値を保ちます。
つまり、初期出力をLowにしたいなら、OC0Aを外部に出力してい
ない状態(DDRB:2=0)で
・出力選択を「比較一致でOC0Aピン Lowレベル出力」にする
・「OC0A強制変更」を実行する
・出力選択を「比較一致でOC0Aピン トグルレベル出力」にする
・DDRBを出力方向に切り替える
・PWM動作ではなく、比較一致タイマ/カウンタ クリア(CTC)動作を選択
これで良いかな?
>>120 LEDでlow-activeな点灯をさせれば良いことは、上で書いたけど
指摘のとおり、TCCR0Aでトグル動作するみたいだね。知らなかった。
COM0A1=0 COM0A0=1 WGM02=1にしたとき、
OCR0Aの値が小さいほど、高周波を出して〜
大きいほど、低周波のパルスを出せるとおもう。LEDで明るさ確認してみてください。
ちょっと自分も温調の関係でパルス作りたかったので、いい機会でした。
>>126 なるほど、その方法なら比較一致機能の強制初期化できますね。ありがとうございました。
でもみなさんがおっしゃるように実用的ではない・・・
素直にOCR0A=2*OCR0Bとして高速PWMします。
資料的価値が無いな・・
AVR wiki の AVR-LibC ページが ServerError でみれないんですけど
だれか詳しい人、直せませんか?
秋月の100円・90S1200でロジックICをマネしてみるサイトとかあったら面白そうだ
>>128 俺には126の方法のドコが実用的でないのかわからないな。
極めて普通の方法だと思うんだが・・・・オシエテエロイヒト
>>117 サンクス
>Mega48くらいでいいんじゃないの?
644も860円と安いんで。と思ったら送料2000円+手数料1000円か・・・
微妙にメモリが小さいんでしよね。大丈夫だと思いますが。
>DIP型に自分で加工……とかじゃダメなの?
ハンダ付け下手くそなんで。
振動多い環境を想定してるんで。ボンドで固めとけば大丈夫だと思いますけど。
安い変換ソケットあればいいんですが。
さすがに安い変換基盤は無いな、サンハヤトの基板が750円くらい。
高い送料と手数料をかけて買うか、
ストロベリー・リナックスでATmega128を1000円+送料120円+振り込み料で買ってサンハヤトの基板にハンダ付けか……。
そこまで心配ならDigikeyかな、ちなみにATmega48は300円。
137 :
134:2006/06/02(金) 01:06:28 ID:W36GV4+Z
>>135 300円で売ってるとは!
お気に入りに登録させていただきます。
>>135 スライスすると0.5mmと0.8mmで2枚分使えるのかな。
>>138 たしか共立で同じようなのが同じ値段で売ってたような、ただし赤と黒しかなかった。
USB-MINI Type変換基板まで売ってるのはありがたいな、しかもコネクタ付き。
USB-AVRライタ作って取り付けたい。
ダイセンの変換基板はサンハヤトより圧倒的に安く品質もいいが、
扱ってる店が少ない。共立が扱ってるがなぜか一部のみ。
あそこの圧着済みワイヤは、実際に買ってみるとわかるが線が太ましくて勝手がよくない。
いっぽう共立で売ってる圧着済みワイヤ(7色パックもあり)はQIコネクター用で
抜け止めも逆挿し防止もなく信頼性が乏しい。しかし試作やアマチュアの工作には便利。おすすめ。
>>132 >>126ではなくトグルをどうにか使おうとすることと思われ.
>>126 PWMにこだわるのはOCR0Aの随時変更が簡単だからでは?CTCではこのへんややこしい.
>>142 みんな安いところ知ってるんだな〜。
登録させていただきました。
パワーメッシュユニバーサル基板すごすぎ……。
149 :
774ワット発電中さん:2006/06/02(金) 19:11:44 ID:gpKR93Lp
>61でTiny11で1ピンシリアルLED5個制御でお尋ねした者です。
続けてなんですけど、
PWMの無いAVRで1個のLEDを「明るい・暗い・消灯」の3段階点灯させたいのです。
例えば、ソースで点灯させるとして
PB1→100Ω ↓
PB2→200Ω → LED→GND
でPB1=H・PB2=L→明るい、PB1=L・PB2=H→暗い
これはダメですよね、L側に半端な電圧が入ってしまうから。
何か方法がありそうだとは思うのですが。
自分の想像ではPB1・PB2それぞれのピンにダイオードを接続し
逆流を防ぐしか無いかなと思いますが、
もっと部品数が少なくて、スマートなやり方はありませんでしょうか?
アセンブラ側でH・Lをメインループで回す疑似PWMもいまいち情けない気がします。
>>149 >アセンブラ側でH・Lをメインループで回す疑似PWMもいまいち情けない気がします。
可能ならこれが一番じゃね?
抵抗1本でも部品少ない方がカコイイし、何よりもピン無駄遣いする方がカコワルイ。
151 :
774ワット発電中さん:2006/06/02(金) 19:42:00 ID:LH2x8FX8
タイマー割込でPWMを、まさに今プログラムしてます。
60usの割込で255段階で15.3msとなり約60Hzで、人間の目にはつながって見えます。
なかなか良い感じ。
PB1→100Ω ↓
PB2→200Ω → LED→GND
PB2をIN,OUTに切り替えるのはどう?INだと、HiZになるから。
PB1=H PB2=in -- 100Ω
PB1=in PB2=H -- 200Ω
>>149 150氏に同意
90S2313で3色LEDをソフトウェアPWMで玉虫色に光らせたよ。
オレは各色16段階にしたけど、2段階なら結構簡単じゃね?
でも、H・Lをメインループで回すってのは確かにスマートじゃないな。
タイマ使ってエレガントに作るべし!
>>152 それはもっと悪い。
PB2に中途半端な電圧がかかり(LEDのVf)、PINB2につながったバッファの消費電力が増す可能性あり。
155 :
774ワット発電中さん:2006/06/02(金) 23:45:04 ID:gpKR93Lp
150〜154さんへ
レスありがと。
メインループは1ピンシリアル受信を割込み(T0)とタイマで実行しなければならないので
疑似PWMと言われても、どうやって?というのが本当のところです。
確かに1個のLEDに2ピンも使うのはカッコ悪いけど、アナログ屋の知恵ではこんな発想しか浮びません。
>152さんへ
AVRのピンは出力でも入力でも、GNDかVcc以外はダメと聞いたもので。
>154さんのおっしゃる通りかなと思います。
ソフトウェアPWMが「情けない」とか「どうやって?」って言うくらいだからこれで十分だろ
読んでたのか、スマン!
俺も、これが最善だと思うのだが
今の流れは、これ以外での方法
を模索しているのだと思っている。
重ねてスマン
>>159 さすがにこれ以外となるときついよな。
入力の電圧の問題というなら、ADC搭載のAVRでいいならADCの入力PinとADCの入力設定を使う手もあるような無いような。(まだADC使ったこと無い)
>>134 >>135 >>136 サンクス
やっぱりハンダ付けの自信無いなす。刺すだけのソケットなら・・・
前にも書きましたが振動の多い環境でもあるんで。(とれないと思うけど)
まあ一言で言えば下手くそなんです。
でも300円くらいなら練習で失敗しても惜しくないかも。
168は丁度良いかなと思ってたんですが、ピン割り込みが2個しかないから却下。(3個欲しい)
と思ったらPCINTとか使えばいけるっぽい・・・
気づくのが遅かった・・・
で、644買ってしまいました。
オーバースペックなんですが、もうディスコンって話だし。
3つで十分だったんですが手数料惜しさに6個買ってまいました。
自慢する訳じゃありませんが今は後悔してます。
せいぜいバブリーなコード書いて無駄にメモリを使うか。
まぁでもよく考えれば変換ソケット買いまくって
失敗しまくってもまだDigiKeyの方が高いなぁ。
技術も身に付くし。
>>160 >>154 問題はmega88などデジタル入力禁止機構を持つAVRなら回避可能。
だけど、PWMの方が美しいかなあ。たとえソフトウェアでも。
88ってそんな便利機能が付いてたのか
ハイインピーダンスハァハァ
今度使ってみよ
可能な限り外付け部品を減らす。
これが俺のジャスティス。
>>154 あーそうか。
じゃ、あれだ、ADコンバータの機能を有するピン(Atmega8だとPortCとか)
で PC1 = H , PC0 = ADin にするっていうのはどうだ?
(PC1をデジタル出力のH, PC0をアナログ入力のADinにするという、ピン毎の設定ってできたよね?)
>>163 追加
>>154 問題は微妙な消費電力増大が問題なんで、LED点灯なんてやってるならあまり問題なさそうだな。
DIDR0レジスタがないmega8のADCでも問題ないんだから。
tiny45のパワーダウンモードで消費電流がえらく多いんだけど、
使ったことある方いますか?他のチップでもいいので。
アナコン、ADC、BOD切った?
>>BOD切ってないっす。mega8535で50uAは行けたから、100を超えるのは信じがたい。
PRRレジスタでADとタイマー1は切ってます(0は使ってる)。
アナコンは独立ユニットとしてはtiny25に無かった気がする。
ポート設定まずいのかな。むふー。
tiny45のデータによると、アナコンONで50uA食うと書かれている。
177 :
774ワット発電中さん:2006/06/04(日) 23:15:35 ID:9eQYOZ8N
微妙にスレ違いなんですが、
秋月でSC1602って液晶パネル買ってtinny26で動かそうしても
ピクリとも反応しない。
気になったのは電源入れても何も反応が無いこと。
入れた瞬間くらい液晶が一瞬表示されたりしそうなもんですけどこんなもん?
てゆーかバックライトもつかないような。
ぶっ壊したか?
↑バックライトはついてないの買ったんだった・・・
>>178 信号線全部切って電源だけつないでみれ。
1行目だけ黒くなってたら動いてる。
何も表示されなかったら壊れてるかコントラストの調整ができてないとか配線ミスとか
ええ、反応ないんで、その辺りやってみたんですよ。
コントラストの調整の仕方がよくわからんので、
Vo(contrast adj)ってのに4.5と0V両方入れてみたんですが変わらず。
電源は4.5Vではちょっと低い?
もしかして電源逆刺しとか気づかぬうちにやってしまったのか・・・
逆刺しは即死なんだろか。
あと気になったのは抵抗が3つ入ってたこと。
バックライト用と思ってたけど、よく考えたらバックライト無しだし・・・
俺はコントラスト調整は可変抵抗で分圧して入れてた
電圧は4.7〜5.3Vらしいからもしかしたら上げると動くかも
逆差ししてもたぶん壊れなかったはず
秋月の抵抗はバックライトなしのにも入ってるけど、使わないよ。
うちはSC2004のバックライト付きをtiny26で動かしてるよ。
抵抗3つはバックライト用だね。
もし、初期化でしくじっているのなら、付録のデータシートをよーく読んでください。
HD44780とコマンドはコンパチですが、タイミングは違っています。
コントラストは半固定抵抗で分圧して入れてやると、便利かも。
まわしながら液晶の濃さが変わるのが見えますので、その時点でホッとできます。
AVRで初めて液晶で表示させてきた〜。
で、コントラストだけど面倒ならGNDに直接でもいいかと。
電源はちゃんと5Vくらいにしましょう。
LCDのコントラストについては面倒でもVR分圧電圧を与えることをお勧めします。
周囲の明るさなどの変化にも対応できますし。
とにかくデータシートをよく読みましょう。
○×互換といってもあちこち違う場所があるケースが多いみたい。
AVRって結構速いから、操作関数と周波数によってはタイミング規格外になることもあるかと。
今回のケースでは関係ないけど、秋月SC2004なんかは電源ピン逆だし。
LCDの電源ピンは統一してほしいっす。
>>187 同意、ついでにコントラストの電圧が無茶苦茶GNDよりなのを何とかしてほしい。
1M+100KΩのVRとかになるし。
>>188 大きけりゃいいと思って極端に値大きくしてねーか、オマエ
いつも10kΩのVRつかってた
ゆうべ秋月で売ってたMAX779でDC/DC初めて作ったが、
こいつも分圧抵抗がおもくそ低めに寄ってるうえにシビアなので苦労しますた
>188
LCDモジュのバイアスネットワークがどうなってるか考えてみれ
>>180 電源+コントラスト最低、最大試しましたが、
やっぱり、少しも反応無いっす。
>>183 >>184 あの抵抗はサービスだったのか・・・
バックライト無し品買ったの忘れてた。
>>185 >>186 そういえば、参考にした回路とは電源だけ逆でしたなぁ。
取り敢えずタイミング見直して、
それでも駄目だったら秋月に文句言う!ゴネる!!
ってあそこで交換って出来るのか?
休日までイジる暇ないけど・・・
自分としては、電源入れても液晶にまったく変化が起きないんで、
壊れてるんジャマイカと疑ってるんですけど。
レスどもでした。
>それでも駄目だったら秋月に文句言う!ゴネる!!
こうやって困った客が増えるのでした………
なんで動かないかもわからないのにゴネられる秋月いとあはれ
>>194 諦めな、お前さんには無理だったんだよ。
諦めるのが嫌なら何で動かないか原因を突き止めてみな。
それが出来なきゃお前さんはその程度だったってことさ。
>>194 DTMFのキットとか、液晶付で動くキットを組み立てて、
動いたら、その液晶ととっかえて見る。
>>194 このスレで聞いているということはAVRでやってるんだよな?
まずはプログラム晒したら?あぷろだとしてはAVR-Wikiの
勝手に練習(非公式)と掲示板を活用しましょう。
200 :
774ワット発電中さん:2006/06/06(火) 12:13:54 ID:OEMEFUrO
デジットで購入の液晶に電源を一瞬逆接続した。AVRは助かったが
液晶は終わった。
>>200 . : .. + .. .
.. :.. __ ..
. + |: |
|: |
.(二二X二二O 無茶しやがって………
|: | ..:+ ..
∧∧ |: |
/⌒ヽ),_|; |,_,,
_,_,,_,〜(,, );;;;:;:;;;;:::ヽ,、
" "" """""""",, ""/;
"" ,,, """ ""/:;;
"" ,,""""" /;;;::;;
えーと誤解してるかもしれないけど
逆刺しした覚えはないです。
ただ参考にしたサイトと逆ピンだったので心配にはなりましたが。
>諦めるのが嫌なら何で動かないか原因を突き止めてみな。
いやだから、調べたら電源接続のみ信号接続無しで液晶上段が黒くなると書いて
あるのにそうならんので壊れてるんじゃないかと。
とゆーか上にかいてあるのにわからんとですか?
>このスレで聞いているということはAVRでやってるんだよな?
取り敢えずプログラム云々言う前に液晶がそもそも、
電源を入れた際にするであろう反応すら起こさないので・・・
ttp://akizukidenshi.com/catalog/faq.php?kind=P&code=00038 取り敢えずもう一個買ってそれでも駄目だったらお願いします。
>>204 壊しといて秋月にねじ込むつもりだったんだな
クズ!!
while (flag == 0)
{
sleep_mode();
}
以下処理・・・
とかやって、複数割り込みでタイマ割り込みだけスリープ解除して以下の処理
(タイマ間隔内には他の割り込み処理をしても十分終わる)
をしようと思ったらたまーに処理落ち
別に処理落ちしてもいいからそこに置いたんだが、原因がわからないと不安なので一日悩んだ末、
割り込みのタイミングによってはwhileの判定後スリープまでの間にタイマ割り込みがかかるのに気が付いた漏れは駄目人間ですorz
っつーか、どうしても判らなかったんで、タイマ割り込みのルーチンでスタックに積まれたPCを液晶に表示させてたら気が付いた。
と無理やり話の流れに乗ってみる。
207 :
774ワット発電中さん:2006/06/07(水) 10:47:27 ID:Wmgz4kjC
>>204 LCDの同等品が何社か発売されているが電源ピンの番号はそれぞれ異なる。
秋月で買ったんなら一緒に付いてきたデータシートに書いてあるピン接続が正しい。
最初は5Vとコントラスト調整VRだけつないで、濃さが可変できたら「生きている」と見なして良いと思う。
>>207 >>194 >電源+コントラスト最低、最大試しましたが、
>やっぱり、少しも反応無いっす。
やっぱり、壊れた、壊した、コネクタ半田付け不良、のうち、どれかじゃないと。
念のため、回路図じゃなくて、どのピンに5V入れて、どのピンに0V入れているかの
写真をupキボン。
今更、電源の位置関係に自信がもてないってか
何もかも解ってやってたわけじゃないのね。
>>204 >ただ参考にしたサイトと逆ピンだったので心配にはなりましたが。
これがクリティカルな気がする。
自分は秋月で1602Bを買ったけど、コントラストがシビアなのと、
立下りラッチなのにはまりました。立上りでラッチと思って3日間ずっと悩んでた。
>>211 ラッチ立ち下げ直後に次のデータをセットしたら動かなかったって感じ?
はまるかも知れないから覚えておこ。
>>211 一緒に付いて来た資料のタイミング図
見たのか?
そこは嵌る所じゃ無いような...
214 :
211:2006/06/07(水) 23:55:38 ID:P2Q4ANoP
うん、タイミング図みた、納得もした。
でもなぜが立上りで組んでたorz
あれだ、俺あほなもんで…(´・ω・`)
>>211 どうでもいいが、「立下り」っていうのは、もっといい日本語はないんですかね?
rise up と fall down だよね。
>秋月で買ったんなら一緒に付いてきたデータシートに書いてあるピン接続が正しい。
接続しました。
参考にしたサイトと電源ピンだけ逆だった事、
さらにデータシートに○○とピン互換ですがメーカーの番号の振り方が逆です。
とか分かり難い日本語書いてあるんで不安にはなりましたが・・・
でもGND側は基盤見れ見当つきますしねぇ。
ちなみにGNDは左下でしたね。上の図の奴と同じ。
まぁやるとしたらソケット逆に刺して壊すってとこですかね。
何回か抜き刺ししましたから100%逆に刺してないとは言えませんな。
それで電源が逆になる訳じゃありませんが。
もっとも最初に電源入れる前にVccとGndくらいはチェックしましたけど。
ゴネないでもう一個買いますがな。
219 :
774ワット発電中さん:2006/06/08(木) 10:37:08 ID:qmOU+0+8
この手のLCDで間違えやすいパターンは、
1つは、電源+ と GNDのピン番号がメーカー毎に違う
それと、基板のへりに近い方が偶数番号、内側が奇数番号なのだが、
これは表示面側からピンヘッダーを取り付けた場合。
表示面でない側からピンヘッダーを取り付けてリボンケーブルの
コネクタを取り付けるとケーブルから見れば奇数と偶数が逆になり、
2,1,4,3,6,5...の順になる。
基板上の1と14の数字を基準にしてケーブルとセットで導通確認
しながら配線しないと痛い目に遭う。
>>219 Eagle のピンヘッダーライブラリーそのままつかったら
↑と同じになった しかたがないので 左右逆の延長ケーブルで対処した
>>218 そのページNEWってなってるけどすごい前のだし、
D0-3をGNDに落としてるだけならまぁいいんだけど、
わざわざ「それをしないと誤動作する恐れがある」などと大嘘を書いちゃって、
そのまま放置してるのは、やっぱりイクナイとおも
222 :
774ワット発電中さん:2006/06/08(木) 15:00:44 ID:DUBG4c59
AVR ISPで書き込みできたのにAVR ISP2で書き込みできなくて悩んでます
書き込みやヒューズビット読み込みなどしようとすると、回路がショートして
います という小窓と、ISP周波数を落とせ という小窓が開きます。
回路がショートの原因は、SCKを100kでプルダウンしていたからだと判り、
抵抗を切り離すことで出なくなったのですが、周波数を51Hzまで落としても
小窓が開いてデバイスにアクセスできません。
ちなみにAVR ISPではSCKをプルダウンしていても読み書きができました。
AVRStudioのバージョンは4.12.472 Service Pack 2
ターゲットボードはVcc3.3V、クロック10MHzです。
なにかヒントをお持ちの方、ご教授お願いいたします。ペコリ
貴田電子のボード類、のきなみ値上げで魅力がなくなった(´・ω・`)ショボン
以前の値段なら秋月PIC系に対して競争力があったのに・・・
>>217 >ゴネないでもう一個買いますがな。
最後に、LCDモジュールのVCC−GND間にちゃんと電源が来てるか
確認して味噌。
225 :
211:2006/06/08(木) 23:41:20 ID:owsF8P+i
>>215 確「立」するのは「下がる」とき、
確「立」するのは「上がる」とき、
の意味じゃないですかね?
そうなると私の立下りラッチという表現はおかしいですがw
立つ、座るの意味をすると、立上りは二重の意味になってしまうと
思ったのものですから。
えー
信号波形が「立つ」+0から1に「上がる」=立ち上がり
信号波形が「立つ」+1から0に「下がる」=立ち下がり
じゃないん
>>225 単に立ち上がりの反意語を無理矢理つくったということだと思う>立ち下がり
確立云々は関係ないか
少なくともgoo辞書にはないね。
rise up , fall down なら
昇り立ちと、落ち下がりか。まぁ確かに頭痛が痛く、馬から落馬なような気もsるけど、
立つ の反意語でいいのが無いんだよね。 「座り落ち」とか。
これは、これで専用スレ(「立ち上がり、立下りスレ」が必要だと思う人、挙手。
>>225 「立ち上がる」っていう日本語はちゃんとあるから。
「立つ」 と 「立ち上がる」っていうのは、どこが違うかというと、、、
うーん。、なんとなく、立ち上がるっていうのは現在進行形っぽい?
立つ=HighLevel
立ち上がる=RiseEdge ちがうか
>>234 あのコテハンのカキコって、「後の面倒見る宣言」ととっていいのか?
Tiny13で、ブルーのLEDをPWM点灯させ、明るさをいろいろと変えて
みたいのですけど、全然やり方がわかりません。
どのレジスタにどんな値を書けばいいのでしょうか?
はじめは、じわじわと明るくなっていくようにしたいのですが、
出力ピンは PB0(OC0A、5番ピン)でよろしいのでしょうか?
誰か教えてもらえませんか?よろしくお願いします。
>>237 データシートでPWMについて調べてみた?
ここまであからさまな教えてクンも昨今珍しいな
ココにたどり着くまでにいろんなサイトあったろうに
>238
すみませんです。データシート見たのですが、いまいち理解できなかったです。
>239
はい、ocr?bとか、tcr???とか、、、なんかもうさっぱりでして。。
>>241 まずはPWM出力のあるピンにLEDを繋いで
只単にON/OFFするだけのものを作ってみてくれ。
たたき台が無いとどこから教えて良いのかわからん。
>>241 ハードと言語の構造がわからないのかな?
アセンブラ使ってる?C使ってる?
OCRなんたらとかのレジスタ名は人間がわかりやすいようにつけているだけで、
実体はメモリ上にハード的に展開されている。そのアドレスに数字を書き込む
と、CPUがそれに応じて動く。
アドレスだとわかりにくいし、ソースの可搬性が落ちるので、名前つけて名前で
アクセスできるようにしているんだよ。
それから、LEDチカチカとPWMのサンプルコードを探して、自分でいじってみればいい。
>>241 読んでるデータシートはhero日本語版ですか?
まずレジスタ云々の前に、PWMの仕組みの方を理解しろ。
とりあえずはわかりやすい8bit高速PWM動作を。
このモードだと、TCNT0は単に0〜255を繰り返す普通のタイマカウントをする。
これはWGM00,WGM01,WGM02で設定できる。これに関する部分を読んでください。
tinyシリーズでは、TCNT0==OCR0AからTCNT0>OCR0Aになる瞬間に
「比較一致」ってイベントのが起こる。
PWMでは、この比較一致時と、タイマがゼロに戻るとき(オーバーフロー)に
比較一致出力ピンに何らかの動作を起こすように設定することができる。
これはCOM0A0/COM0A1ビットで設定。
比較一致時Low、オーバーフロー時(タイマが0に戻るとき)にHighにするように
すればわかりやすくていいでしょう。そのままLEDの点灯・消灯に対応できるように
LEDはソースカレントで点灯ということにしましょう。(ピン→制限抵抗→LED→GND)
DDRレジスタで比較一致ピンOC0A(ピン配列図を参照)を出力にするのもお忘れ無く。
これだけではまだTimer0が動いていない。CS02/CS01/CS00ビットを設定して
タイマを適当な速度で動かしましょう。
それぞれのビットがレジスタのどこにあるかは、データシートに検索かければわかる。
そして点灯の明るさを設定するには・・・もうわかりますね。
俺もLEDぴこぴこ→PWMで照度変化の順でやり始めたんだけど
翻訳版データシートだけ見てもどういうコード書いたらいいか分かんなかったし
Webで見つかるサンプルプログラムが、読んでも意図の分からない部分が多くてなー
kumanさんのやつなんだけどさ
>>245 データシートだけでは辛いのはその通りかもな。
俺も手を出し始めた頃はどこ読んでいいかわからんかったよ。
>Webで見つかるサンプルプログラムが、読んでも意図の分からない部分が多くて
>>245はどういうところでつまづいたの?
俺は馬鹿だから素直にコピーしてわかる部分だけ書き換えて遊んでいた。
そのうち、「あ、こういうことか」とわかるだろうと。
よく覚えてないけど
PWM波形を出すのには必要ない割り込み許可ビットが設定してあって
周期を速くして他の処理とあわせて動かしたら処理が追いつかなくなったらしくて
思ってる動作をどうしてもしてくれないとかあったかな
おまじない的なもので、それ立ててないとPWMが出ないのかと思いこんでたから(なくしてもちゃんとPWM出たのよね)
何が原因か分かるまで半日かかった気がする
>>248 ああなるほど、確かにあるな。
>PWMの実験(ATtiny26L)
解説にも空割り込みが必要だと書かれているけど、
スリープとか使っている訳じゃないから不要だな。
kumanさんはここも覗いているみたいだからここみて直してくれるでしょう。
250 :
774ワット発電中さん:2006/06/12(月) 12:14:44 ID:RAoLG8R+
確かに「日本語データシート」呼んでもPWMの解説は判らない
「高速PWM」とか「位相基準PWM」とかあって丁寧に解説しているつもりだが、肝心の何が違うの?、どう違うの?、どういう時に威力を発揮するの?が無い。
結局、出力ピンにオシロをつなぎ手当り次第レジスタ設定法で追い込んだ。
初心者には特にTOP・MAXの違いや、固定値なのか変数なのか判らずに悩んだ
ところで 237>>さん
アセンブラなの、Cなの
AVRって口に出して言うのがはずかしい。
途中までAVなんだもん。
>>252 それじゃオーディオヴィジュアル関連なんて恥ずかしくて大変だろうな。
254 :
774ワット発電中さん:2006/06/12(月) 20:12:28 ID:V/33Q7Kj
249>> ○| ̄|_ あのころデータシートだけが頼りで悪戦苦闘の、勉強を
始めて間無しでした(言訳)。 整理しました。k
>>253 いや、それはなんか「オーディオ」って言うから大丈夫。
256 :
774ワット発電中さん:2006/06/12(月) 21:33:10 ID:TWhyIu2f
みなさんありがとうございます。codevisionAVRです。なにせ始めたばかりでして、
読んでいるデータシートは「hero日本語版」です。
>>257 すばやい。やっぱり見ているんだね。
いつもながら見やすいサイト提供に感謝。
259 :
774ワット発電中さん:2006/06/12(月) 23:16:33 ID:TWhyIu2f
>257
すごい!親切なページですね!なんとなく理解できるような気がしてきました。
よ〜〜〜〜く読んでみます。
(まだまだCにはなれていないので、がんばります)
260 :
774ワット発電中さん:2006/06/13(火) 00:00:30 ID:DBVz1GQN
うわーー俺って馬鹿?
難しい(;;)
無限ループしてますよ
>>260 あと、話題の発端以外はsageがいいな。
AVR、基板のアートワーク引きづらい。
つーか、何で電源ピンがクロスするのかと小一時(ry
>>264 DIPの場合、上下逆さまにしても、逆電源投入だけは避けられるから。
>>265 ノイズ対策しなくてもいい場合用に、レジスタ設定によって
AVccとVcc、AGNDとGNDを内部で接続できる機能があるといいな。
ArefをVccに接続できるような感じで。
AVCCとAGNDをI/Oにできる設定があるといいな。
>>268 うっかりレジスタ設定変えたら、大電流が流れてアボーンってか?
>>269 うっかりDDRxを出力にしちゃった時と同じことじゃないかな。
271 :
774ワット発電中さん:2006/06/14(水) 23:15:53 ID:ztkDkyt6
tiny2313ってローパワーモードにするのはどうやるの?
INT0で起動させたいのだが。。。
>>271 tiny2313に「ローパワーモード」って存在しません
えーと、パワーダウン動作か何かだよな?
とにかく、データシートの「電力管理とスリープ動作」を嫁。
読んだ上で、自分なりの理解を書いて、どこがわからないのかを質問しに来てください。
何度読んでも「全部わからない」というなら、やめた方がいい。
読むのめんどくせというなら・・・・来るな。
>>271 データシートだけできつければ
>>251もある。とにかくがんがれ。
"AVR スリープ"でググってもそれなりに参考になるのが出てくる。
274 :
774ワット発電中さん:2006/06/15(木) 16:23:09 ID:+E3/2y8R
>272 >273
ありがとうございます
その本買います。
「スリープ動作」ですね。ぐぐってみます。
275 :
774ワット発電中さん:2006/06/17(土) 23:57:41 ID:V9Xkuo4i
アマゾンから本が届きました。読んで出直します。
激安のBluetoothアダプターを買った。
ベースバンドコントローラーのチップ資料も探し当てた。
AVRにくっつけたいんだけど、オレオレが出来る半田付けは
0.5mmまでたった。_| ̄|○
オレオレだけに、なんとか騙せない?
You,基板ごと乗せちゃいなyo。
ICの形状がLCCで、足のPADが殆どないし、
HCI_TxD、HCI_RxDの端子の所に、ピタッとチップコンデンサー
付いてるし・・・キツー---
明日、またガンバってみるです。
280 :
774ワット発電中さん:2006/06/24(土) 10:35:48 ID:X/Jr5++j
AVR Wikiの雑談がLibCに続いてServer Errorになった。助けて!
wiki対応完です。
282 :
774ワット発電中さん:2006/06/25(日) 20:44:01 ID:aYH2eIlA
ATmega128のMISOとMOSIを繋ぐ場所のにピン名にだまされた〜!(泣
284 :
774ワット発電中さん:2006/06/25(日) 21:15:14 ID:aYH2eIlA
mega128はMISOやMOSIではなく、PDIとPDOで書き込むらしい。
詳しくはデータシートのシリアルプログラミングで。
まだ試し書き込みはしてないけど、てっきりmega168と同じようなピン名でいけるとばっかり思ってた。
回路図書いてるときに気づいてよかったけど………。
おいらは78kマイコンで TXDとRXDのシルクに騙されたことがある。
ポートのTXDなのかライタのTXDなのか、ものすごく紛らわしくて
逆さに基板おこしちゃったorz
スレ違いごめんね。
286 :
774ワット発電中さん:2006/06/27(火) 00:33:12 ID:FqUjH5r3
AVRスタジオ4のエディタって、自分好みのものに入替えできないのかな?
プロジェクト開くと自動的にソースが開いてしまい閉じられない。
いろいろ操作したが、できそうでできない。
既出のようなきもするが、教えて下さいよろしく。
>286
AVRStudioのエディタは入れ替えは出来ないと思います。
でも別のエディタを同時に起動して編集してもAVRStudioにフォーカスが移った時に変更されたのは認識してくれます。
AVStudioでソースを閉じるのはファイル名を表示しているタブの右クリックで[Close Document]すればよいのでは?
意味がちがっていたらスマソ
kumanさんとこのUSBaspの回路図の
LowSpeed認識用の1.5k抵抗ってあの位置で合っとるん
289 :
774ワット発電中さん:2006/06/27(火) 07:02:43 ID:mxZF5+Ck
>288
オリジナルのとおり。FT232BMデータシートの回路とは少し違うけど。
あ、変換チップ使う奴じゃなくて
mega8ワンチップの奴
-D側のプルアップ抵抗がオリジナルの回路だとバス直列の68オームの抵抗よりAVR側に付いてるっぽいんだけど
kumanさんとことの回路だとUSB側に付いてる
これは単に間違いなのか、他のページに書いてあったノートパソコンで認識しない問題を回避するための工夫なのか
ちょっと判断付かんかったんで書いてみた
291 :
774ワット発電中さん:2006/06/27(火) 12:11:13 ID:mtXdX35d
292 :
774ワット発電中さん:2006/06/27(火) 12:26:28 ID:FqUjH5r3
>287さん、レスありがと
>でも別のエディタを同時に起動して編集してもAVRStudioにフォーカスが移った時に変更されたのは認識してくれます。
こいつがウザかったのです
>AVStudioでソースを閉じるのはファイル名を表示しているタブの右クリックで[Close Document]すればよいのでは?
できました、ありがとう。
結局、別のエディタ(MIFES)で編集し、スタジオ側のエディタは閉じておく事で解決しました。
293 :
774ワット発電中さん:2006/06/27(火) 12:33:36 ID:1c5o98fI
USBasp作って差し込んだら認識はするけどAVRを認識しない……。
おまけに外付けHDDを認識しなくなった………。
295 :
774ワット発電中さん:2006/06/27(火) 13:33:43 ID:mtXdX35d
>294さん いろいろな情報をありがとう。
68Ωはチップによっては推奨が27Ωだったり、82Ωでも動いたり。
条件が良ければ省いても良いとの記述もあり、1.5kに比べて小さいので
どちらでもいいのかもしれません。不勉強でええかげんですが。
296 :
774ワット発電中さん:2006/07/08(土) 19:19:59 ID:xmvEiZsn
WinAVR(avr-gcc)+AVR Studioで大き目のプロジェクトをbuildすると、
-gで付与されるデバッグ情報が、コードと明らかに関係のないソースと結び付けられてしまうのだけれど
なんででしょう、ご存知の方いらっしゃいますか?
AVRStudioでソースコードデバッグすると関係ないファイルがぴろぴろ開いて非常に不便...
R8Cに変えたら?
ルネサススレが無いからってこっち来ない
秋月でVFD売ってるね。これおもしろそー
面白そうだったけど、でかすぎ。
シリアルだけで制御できるからなんかのディスプレイにはいいね>VFD
問題は内蔵フォントに明朝しかないのが痛い
>>301 買ってきた。漢字ROMは普通のROMっぽいから、ゴシックでも焼いてつけかえようと思う。
でかい割りに安くてよさげげだなあ。
しかし電源が5V0.3A/24V1.5Aかぁ・・・
車載向けに12〜28.8Vくらいを許容してくれたらなあ・・・
DC/DCへの要求がでかくなるとか、いろいろあるんだろうなあ。
5Vは7805ですますとして、
通販可能なところで12〜15Vから24Vを得られる
DC-DCコンバータ安く売ってるところってある?
つ[車載用インバータ+秋月の付属の電源]
>>304 え〜
美しくないと思ってしまう俺はぜいたくもんですか?
車載100Vインバータは既に持っているから確かにすぐできるんだけど・・・・
って、AVRの話じゃないなごめん・・・
変換効率がもったいない&大きくて邪魔になるって気持ちは判るけどね。
最近の車載インバーターは安いよな。
でも過負荷保護付きと書いてる30Wのヤツに2時間で充電完了する充電器をつないだとたん煙吹いたときはビビった………。
みんな秋月のVFDとAVRで何をつくるんだろ?
車の後ろに貼り付けて、『こっちくんな!』 とか 『逃げろ!』 とか表示させるのかな?
>>307 交通安全メッセージでも流したいなと。
とりあえず、「指示器使えよ」「譲り合おうぜ」「車洗ったか」「歯磨けよ」「また来週〜(^^)v」とか
それくらいならノリタケ伊勢の奴ならディスプレイ単体でできる
というのはなしね(w
>305 電源作るのめんどいから、ヤフオクに出ている双葉電子製VFD買おうかな?
>>309 これってAC100V電源みたいだが。それなら秋月と一緒じゃん(電源付きセットあり)
AVRISPmkUを注文したんだけど
これでAT90S2313の書き込みって出来ないかな?
mkUでの対応はしてないから望み薄って事は分かっているけど
できればATtiny2313を買うことなく設計がしたい。
>>311 2313ってとっくにディスコンだけど今でも多く広まってるよねー、
お手ごろ感もあるし。気持ち分かるわ〜、廃棄で2313一杯もらったし。
って雑談ですまん。
>311
AVRStudioのインストールディレクトリの中の/Partdescriptionfiles/の中にAT90S2313.xmlがありますので編集してください。
何らかのxmlエディタで[ICE_SETTINGS]にElement [AVRISPmkII]を追加すればAVRISPmkIIで認識できます。
普通のテキストエディタなら AT90S2313.xmlの一番最後の
</STK500_2></ICE_SETTINGS></AVRPART>
を
</STK500_2><AVRISPmkII/></ICE_SETTINGS></AVRPART>
に変更してください。
AVRStudioから書き込んで動作確認をしてみました。(OK)
またコマンドライン版のSTK500.EXEでも使用可能です。
stk500 -cUSB ...
の様にします。'USB'は大文字でないといけないようです。
314 :
311:2006/07/14(金) 15:29:45 ID:CoWCHIEF
>>313 ありがとうございます。
これで90S2313をゴミの山にしなくてすみます。
ということは他のディスコンになった90Sシリーズも
同様の手順で認識できるということか…。
>>310 なる。外見もケースにはいってていいじゃん、。と言ってたら誰かが落札しやがった。
秋葉原マルツのいつもの場所のAVRの在庫を見たら箱ごと無い。
PICも。マイコンやめたんかよ。
と思ってたら店頭の別棚に移動してた。
Atmega48が\315でした。
mega644を使って、車の車速パルスやら、拾おうと思って、
int0の立ち上がり割り込みのテストをしていて、
スイッチ押した回数を表示するプログラム作ったんだけど、
挙動が不思議。
int0のピン(PD2)を入力にすると、微妙な回数の割り込みが入る
(一秒に100回程度)
で、ピンの電圧測ってみたら1Vくらい電圧があった。(何も接続しないで)
ネットで調べてみてもみんな入力設定にしてるみたいだけど、
出力にすると正常に動きます。
なんででしょう? マイコンはド素人です。
それと普通にピンのlow highを調べる時も、出力にしようが、
入力にしようが動くみたいだし・・・
SIGNAL(SIG_INTERRUPT0)
{
pushCount++;
cbi(EIFR,INT0); // INT0割り込み要求フラグOFF
}
int main ()
{
DDRA=0xFF; // PORTA 全ピン出力モード
DDRB=0xFF; // PORTB 全ピン出力モード
DDRD=0xFF; // PORTC 全ピン出力モード
DDRD=0xFF; // PORTD 全ピン出力モード
PORTA=0x00;
PORTB=0x00;
PORTC=0x00;
PORTD=0x00;
#if 0 // 入力設定にするとなぜか微妙な回数の割り込みが・・・
cbi(DDRD,PD2); // INT0入力設定
#endif
sbi(EIMSK,INT0); // INT0割り込み許可
sbi(EIFR,INT0); // INT0割り込み要求フラグON
sbi(EICRA,ISC00);// 立ち上がりエッジ検出
sbi(EICRA,ISC01);
sei();
while (1) {
wait(200);
printLCD("push count %d", pushCount);
}
}
tabが消えてる・・・
もしかして内部プルアップ抵抗のせいかな・・・
319 :
774ワット発電中さん:2006/07/23(日) 22:53:25 ID:1Uk0Zvqo
>>317 出力設定で入力の処理ができるのは調べていませんが、
機械的スイッチで入力を受けるなら、2つのことが大切です。
1つ目は、ポートを入力にして、プルアップ(内蔵でよいでしょう)すること。
プルアップしないとインピーダンスが高いので人体の静電気を拾ってスイッチングレベルを
上下します(雑音を拾うことになります)。
2つ目は、機械的スイッチのチャタリングを避けるルーチンが必要です。
チャタリングについてはWEBを調べてみてください。わからなければ、再度書き込んでください。
>>317 うむ。よくあることだね。
DDR=0,PORT=0だと入力のHi-Zになる。ピンに何も繋いでいないと言うことなので
このピンは正真正銘不定となって非常に不安定です。
つまり0にもなるし1にもなる。
プルアップで1に固定するかプルダウンで0に固定してパルスが来たときのみ引っかかるのが吉。
ちなみに、車速パルスや操舵角などの情報をどうやって取得するか紹介してあるサイトが
あったら教えてPLZ!
しかも既に回答済みだったorz
>>318 行頭のtabは
"&nbsp; &nbsp; &nbsp; &nbsp; "
などに置換すると良いのかも。(&は半角で)
>>319 >>320 ありがとう。
未接続のピンにテスターをあてると1Vでピタリ安定してるし、
割り込みの回数も測ったかのように毎回一緒なんで、別の原因を疑ってました。
プルアップはデフォルトOFFなのか・・・
チャタリングは今使ってるスイッチでは起きないみたいですね。
本番のパルスでは(ノイズ)対策取る予定ですが。
>車速パルスや操舵角
ちなみにバイクなんです・・・
整備マニュアル見ればアクセル開度の電圧や、
エンジンパルスをどこから取ればいいか、
一目瞭然でした。
12Vのパルスと、0.6Vのパルスが出ていて、
高い方を下げて取得するか、低い方を上げて使うか悩んでます。(高い方が楽?)
そもそもこのパルスをちゃんとカウント出来るかわかりませんが、
成功したら報告します。
>あったら教えてPLZ
ttp://www.geocities.jp/mkmac_8008/index.html こんなの見つけました。
>>323 >割り込みの回数も測ったかのように毎回一緒なんで、別の原因を疑ってました。
身の回りで一番ありふれた電磁波の周波数じゃね?
50Hzか60Hzかは住んでいるところで違うけど。
>プルアップはデフォルトOFFなのか・・・
はい。データシートにちゃんと書いてあります。
志村!チャタリング!!チャタリング!!
データシートはしっかり読まないとね。
もしデフォでプルアップONになってたら、さすがに使いにくい。
>>323 >12Vのパルスと、0.6Vのパルスが出ていて、
>高い方を下げて取得するか、低い方を上げて使うか悩んでます。(高い方が楽?)
測定対象から貰うパワーが大きいほど外部ノイズからの影響を小さくできるような気がする。
なので12Vが良いかも。
もしくは測定器インターフェースの入力インピーダンスを小さくして
伝わるパワーを大きくするとかも効果ある気がする。
車のノイズって物凄いらしいですね
空中放電&爆発してますからね
>>323 Low=0.6Vってのが気になるな。
たぶんGNDをとる場所により電位が異なっている関係で
完全に零にならないのだろうと思うのだが、
これで
ttp://www.geocities.jp/mkmac_8008/index.html を使うと、
AVR入力ポートの電位は1.2V程度まで上昇しそうである。
Vcc5Vならこれでも大丈夫だとは思うがちょっとノイズ乗っただけで心配。
直列に入るダイオードがないような回路でどうだろ?
これなら0.6V分Lowの浮きが改善。
(保護制限抵抗直列+GND/Vccともダイオードクランプ+内蔵プルアップ)
331 :
774ワット発電中さん:2006/07/24(月) 11:38:20 ID:VZHNPNWu
今までPICを使っていたんですが、訳あってAVR(ATmega168)を始めました。
アセンブラについての基本的な質問なんですが、アセンブラ命令のIN/OUT命
令とLDS/STS命令の使い分けについてお聞きしたい事があります。
********************************************************************
I/O レジスタの入出力 → IN/OUT命令
SRAM内のデータの入出力 → LDS/STS命令
********************************************************************
だろうなと思うんですが、"Extended I/O レジスタ"の入出力に関して
謎があります。
ATmega168のマニュアルを読むと、P19に次のように書いてあります。
"For the Extended I/O space from 0x60 - -0xFF in SRAM, only th ST
/STS/STD and LD/LDS/LDD instructions can be used."
この文から察すると、アドレス0x60 - 0xFFにあるExtendedI/Oレジスタ
はLDS/STS命令しか使えない事になっています。しかし、マニュアルのサン
プルコードでは、Extended I/O レジスタに対してもIN/OUT 命令を普通に
使ってるのが謎です。
結論としては「I/O関連のレジスタは全てIN/OUT命令が使える」と考えて
宜しいのでしょうか?
>>331 いや、拡張領域についてはやはりLD/ST/LDS/STS系の命令を使うしかなかったはず。
AVRINST.pdfを見ればわかるが、そもそもIN/OUT命令はIOアドレス部分に6bitしか
割り当てていません。そのためどうしても64バイトの領域しか指定できません。
それが0x20〜0x5F(IOアドレスで0x00〜0x3F)しか指定できない理由。
それ以上の指定となると16bit指定のLD/ST/LDS/STS系となる。
マニュアルのサンプルコードってどれのこと?
>>331 あ、みつけた。mega48/88/168のデータシート内、
UART初期化サンプルコードだな。
このコードには注釈があるよ。 4.About Code Examples を見ろ、と。
速やかなレスありがとうございます。今、ATMELのATmega168の
マニュアル(PDF形式)を見てるんですが、I/Oレジスタの説明の合間
に簡単なサンプルコードが書いてあります。例えば、P181にはUSART
のサンプルコードとして次のように書いてあります。
***********************************************************
USART_Receive:
;Wait for data to be received
sbis UCSRnA, RXCn
rjmp USART_Receive
;Get and return received data from buffer
in r16, UDRn
ret
************************************************************
ATmega168の場合、USARTは1chしかないので、UDRnはUDR0だと思われ
ます。そこでUDR0 のアドレスを見ると,"0xC6"(マニュアルP338)と書
かれており、Extended I/O の領域にあると思うんですが…。
IN/OUT命令のオペコードで,6bit分しか割り当ててないとすると、
確かに0x20〜0x5Fにアクセスするのは原理的に不可能ですよね。
もう少し詳しくマニュアルを読んでみます。
>>333 レスを書いている間に行き違いになりました…(^^;)
>4.About Code Examples を見ろ
なるほど…そういうことだったのか。ありがとうございます。謎が
完全に解決しました。注釈には全然、注意が行ってなかったです。
1バイト受信のプログラムはmega168だと
getc:
lds temp,UCSR0A
sbrs temp,RXC0
rjmp getc
lds data,UDR0
ret
のようになります。
PORT出力はout命令でいいがramやCLKPRあたりのI/Oを
mega8やTiny26のプログラムからコピーするとI/Oアドレスが違うからダメ。
間違ってoutやinで書いてもアセンブラ異常にならなかったと思う。
ATMELのサンプルプログラムはtiny2313とかmega8535世代のを使い回ししている
ちなみに 336>>はトリプルライターのパクリです。
連投ゴメン
>>336 ATmega168版のUSARTのプログラムありがとうございます。参考に
なります。lds/sts命令を使うべきところを、in/out命令にしても
アセンブラエラーにならないのは注意が必要ですね。うっかりすると
やってしまいそう・・・
>>336 AVR Studioは範囲外アドレスはエラーを返すよ。
in r1 , $5F
↓
●D:\x\x.asm(2): error: Operand 2 out of range: 0x5f
D:\x\x.asm(3): No EEPROM data, deleting D:\x\x.eep
Assembly failed, 1 errors, 0 warnings
341 :
336:2006/07/24(月) 18:34:50 ID:4I09LcXG
すみません、エラーになりました。
逆にmega88のプログラムをmega8で使おうとして
sts UDR0,data の UDR0をUDRに変更しただけだとエラーにならない。
in/out命令を使うべきところを、lds/sts命令にしても
の間違いでした。
>>341 lds/stsは0-0xFFFFの範囲をサポートするので、
まず普通のAVRでは
全てのレジスタ・IOレジスタ・SRAMメモリをカバーしてしまいます。
汎用レジスタも操作できるよ。
343 :
341:2006/07/24(月) 22:39:11 ID:oBjUkSXs
なるほど、
out TCNT0, tempの代りに
sts TCNT0+$20,tempも使える,ということですね。
普通はUDRなどのI/Oアドレスが60H以上か確認して
outとstsを区別した方が分かりやすいけど。
>>344 俺はK&R styleが見やすさと行数のバランスがいいかなと思ってる。
if (condition) {
SomeAction();
} else {
SomeOtherAction();
}
if()の中身が異様に長い場合とかはカッコの対応がわかりにくくなるので
そこだけAllmanにしたりする。たとえばこんな感じ。(Wikipediaの例から)
if (!JS_DefineProperty(cx, o, "data", STRING_TO_JSVAL(
JS_NewStringCopyN(cx, data, res)), NULL, NULL,
JSPROP_ENUMERATE))
{
QUEUE_EXCEPTION("Internal error!");
goto err;
}
PQfreemem(data);
CP/Mの時代からCを使っているけど(ジジイです)
昔はエディタの性能も低かったしディスク容量にも制限があったため自然とK&R styleになってました。
途中でpascalも使うようになってから begin/endの様にカットの対応が分かりやすいAllman styleに変更しました。
Allman式に換えた頃は違和感がありましたが現在はこちらの方が見やすく感じています。
Wikipediaによると Linux Kernelは K&Rで、Visual Studio 2005は Allmanですか・・・
回りの人を見ると K&Rが多いようです
346.です
誤:カットの対応
正:カッコの対応
わたしもです
言い忘れましたが私の場合 CP/M で Pascal -> BDS C の順でした
Pascal はギプスのようなものだと思います
うぉ・・・AVRやっている人って意外とジジイも多い?
CP/M、BDS-C・・・懐かしい
>Pascal はギプスのようなものだと思います
面白い表現ですね
ああ、骨折用ギプスというより
大リーグボール養成ギプスです
>>346 PIP A:=B:*.FOR
とか
WM HOGE.C
とか
そうだねぇ
一時期Pascalやってたのはいい経験になってるような希ガス
Pascalを経由しなかったら、いまごろ俺はCで無軌道なプログラミングしてると思う
意外とpascal経験者が多いのに正直びっくり
>354 のリンク先はやりすぎだと思うけど・・・
pascalと言うと未だにUCSD p-systemをイメージするんだがw
後継のModula-2って結局流行らなかったね
ボーランドがTarbo-Mudula2を出さなかったからかな
>>357 おー、そーいえば、DelphiとかC++Builderの売却先は決まったのか?
>>357 Modula3とか地味〜に改良されてる…
Turbo-Modula2自体は存在してるんじゃなかったかな?
CP/M80版をFTPサイトで見たような…
でもModula2は中間コードとか開発環境とかの正式版が存在していて
カッチリしていた所が避けられた悪寒。
Cの方が小回りきくし。
おまいら何の話を・・・・
スレ間違えたかと思ったぜ。
AVRのクロスコンパイラって何言語くらいあるだろ?
えーと
アセンブラ
BASIC
C(++)
PASCAL
FORTH
こんなもん?
modula-nか、懐かしい。pascal系の後継言語は宣言がコテコテしてて嫌い。
表現対象をコンパクトに記述する意識が希薄。begin-endは嫌。{}がいい。
Adaもコテコテしてたな。その雰囲気をVHDLが受け継いでる。
verilogがスッキリしてて好き。画面1枚に出る中でどの程度記述されてるか
はデバッグ効率に影響する。
>画面1枚に出る中でどの程度記述されてるかはデバッグ効率に影響する。
そうですよね・・・Cでも同じですね
昔はDOS画面でせいぜい20〜25行程度しかなかったのでCで書くとき行間を詰められるK&R styleになっていたな。
現在は画面がでかくなって以前の倍くらいの行数が見れるからミスの分かりやすい書き方が大切だと思ってる。
>>362 といいたいが、今でもエディタを上下2分割したり、他のデバッグ情報
見ながら書いたりすると結局20行くらいになることも。
>363
24インチで1920x1200(WUXGA)なので画面が広いです。
本当は30インチ2560x1600(WQXGA)がほしいのですが。
AVRスレにあってこのブルジョアめ!
>365
老眼で字を大きくしないと見えないのでやむなく・・・ --;)
368 :
774ワット発電中さん:2006/07/27(木) 06:45:36 ID:XBQCFAnS
>367
このPASCAL、コードが大きくてTiny2313では
"Hallo world"とLCDに書けなかったように思います。
いい知恵があれば教えてください。
お試し版は2kバイトまでだったでしょうか。
コードが大きいのがイヤならWinAVRなどで組み直そうよと……。
mikroBASICは簡単でいいけどLCDとかのは色々と楽に出来る分コードが多いからね。
>>368 WinAVRなら90S2313でLCD+UART+SDCの実験プログラムなら入る。
>>368 というかサンプルをコンパイルできないんだけど・・・(^^;)
2kBを越えているからじゃなくて、ライブラリ関数がみつからんといってくる。
usesで何かユニット名を指定しなきゃいかんの?
tiny2313.ptuにLcd4を追加指定しても知らんというし・・・放り投げてしまった。
373 :
369:2006/07/28(金) 00:55:42 ID:1SYlVIDA
そんなにダメダメだったのかぁ。
PIC用もかなりバージョンが上がらないとメチャメチャだったからな。
一応インストールしてみた。
examples\AT90S2313\button_on_lcd4をコンパイルしてみたら、
やっぱり 'lcd4' not found がでた。
いろいろ試行錯誤してみた結果
defs\AT90S2313def.apas内のuses節でlcd4の前にlcd_constsを追加したら
コンパイルできた。
でも、その後lcd_constsはずしてもエラーでなくなったし、ROM USE 96% …
よくわからん。
>>373 ライブラリのヘルプにも、この関数使うにはどのunit指定してくれとは書いていないのだよな。
C言語で依存ヘッダファイルの記載がないライブラリ関数マニュアルを配っているようなものだ。
どこかには書いてあるかもしれないが、関数リファレンスに記載がない時点で呆れてしまった俺。
おそらくAVRデバイス依存ファイル任せなのだろう。ライブラリのunit指定はここにあるみたい。
tiny2313ではLCD使わないと決めてかかっているのか?
頭いたい事態に・・・・
せっかくフリーで制限の無いWinAVRがあるんだからそっちを使いなよw
mikroシリーズは高級言語のフリーソフトが無いPIC用と思ってる。
>>375 まあそうだが、
あれば使ってみようと考えるのが元PASCAL教信者で言語ヲタの性。
てすと
縁起でもないトリップ見つけるんじゃねーよorz
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOGS 1234567890
>>380 [ ゚д゚]y-一~~~~ ソートカンリョウシマシタ
ノ[ ヘ ヘ
0123456789 ABCDEEEFGHHIJKLMNOOOOPQRRSSTTUUVWXYZ
>>380 Mr. Jock, TV Quiz Ph.D, bags few lynx.
Quick wafting zephyrs vex bold Jim.
とがなくてしす
の話をしようぜ
これは意味が分からんな・・・・・
いま やっと分かった
俺 頭わるいな
>>385 ___ クルッ… / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ || ̄ ̄|| <⌒ヽ )) < この時代から縦読みがあったんだなぁ
| ||__|| < 丿 \___________
| ̄ ̄\三⊂/ ̄ ̄ ̄/
| | ( ./ /
何をいまさら
そんなことも知らなかったのか・・・
>>389 で、並べ替えるときTYPEWRITERを直線上に並べて、
販売でデモするときだけ高速に打てるようにしたらしい。
そこに
>タイプバーが絡むので打ちにくい配列にしたのでしたら、
>「ER」や「TR」や「TH」といったDigraph(2重子音)が近くに
>配列されるはずもありません「ED」なんかもよく続けて打鍵しますよね。
って書いてあるけどさ、キーが隣同士に配置されてるからって、
タイプバーも隣同士だと思い込んでるのもどうかと思うよ。
>396
ググり合戦はもういいっつう話。
昔からタイプライタ使ってりゃハンマがどんなふうに動いてて
どうすりゃジャムるのか感覚で分かる。
タイプライターの1キー1キーにスイッチつけて
PICで読み取ってパソコンのキーボードに改造した人思い出した
上の方でmega644の外部入力割り込みについて聞いたもんです。
プルアップ抵抗ONで無事解決しますた。
ピンを出力にしても入力取れるんすね・・・
そして新たな? 問題が・・・
一秒毎に表示を更新する為に、
タイマ割り込みによる1秒計測をしてるんですけど、
タイマのクロックが32.768khzらしい。
8bitタイマの分周率を1024にして、オーバーフロー割り込みに。
そうすると32768/1024/256=0.125で、1秒に8回割り込みが起きそうなもんですが、
実際は4回弱(3.9?)
これはなぜなんでしょうか?
>>400 割り込み先の処理が0.125秒で終わらなかったって事はない?
>>400 >32768/1024/256=0.125
で、予想される割り込み周期は0.125<Hz>、つまり8秒に1回だ。
毎秒8回じゃない。
おそらくその水晶が発振子として機能していないんじゃないか?
3.9Hzなら、発振周波数を逆算するとほぼ1MHzになる。
1MHz内蔵発振で動いている予感。
>割り込み先の処理が0.125秒で終わらなかったって事はない?
カウンタ上げてるだけなんで。
そういえばPINの状態読み込むのって遅延があるんかな?
今計算してて、オイラも書いた事が間違ってることに気が付いた。
>1MHz内蔵発振で動いている予感。
そうですな。
どうやら一秒に4000回弱、割り込みがかかってる感じなんで、
内蔵発振は誤差デカイらしいし・・・
きっとタイマの設定が駄目駄目だったのかと。
って、もしかして本体も1Mhzで動いてんのか?
調べてみよ。
>どうやら一秒に4000回弱、割り込みがかかってる感じなんで、
自己レス。
分周ゼロにした場合です。
>>403-404 誤差無く1MHzでもプリスケールなしでは割り込みは毎秒3906.25回だお。
>もしかして本体も1Mhzで動いてんのか?
おそらくTOSC1/2間につけてる32768Hz水晶が有効じゃないなら
タイマ源は内蔵クロック。となると本体が1MHzで動いていると言うことでしょう。
初期設定部プログラムを晒してみては?
>初期設定部プログラムを晒してみては?
設定はナッシングですw
データシート適当に流し読みて8MHzっぽいと勝手に妄想して、
デフォルトのままですた。
(ゼロだと分周無しなんで)
今マニュアルをひたすら読んで1MHzな事を発見。
プルアップ抵抗の設定といい、
データシートはちゃんとよみましょう。 ほんとうに(ry
一度全部印刷して読み直してみましょう
>>406 おい・・・・・・・・・
>ゼロだと分周無しなんで
何がゼロなのかさっぱりわかりません。
今後日本語でおながいします。
長いんですよねぇ。230ページ。
印刷は考えましたけど、プリンタもってないし・・・
会社のプリンタ私用で使うのもアレだし。
遅ればせながらレスくれた方ありがとうございました。
>何がゼロなのかさっぱりわかりません。
クロック分周設定のレジスタが。(CLKPS)
この手のレジスタのデフォルトはゼロだと妄想してますた。
>>410 ああそっちかあ。
実は俺も最初はまちがえたよん。
レジスタ一覧とその初期値ぐらい印刷したらどうね
日本語のやつでいいから
>>403 デフォルトは1MHzの内臓RC発振だよ。
ちゃんとヒューズレジスタ設定しないと。
つかHEROさんのところで日本語訳PDFとってきた?
「しおり」もしっかりしているし、リンクもちゃんとしてるから、必要なところ探すの簡単だよ。
>>406 というかタイマに1MHzが入っているってことなのだから、
タイマ信号源の選択に関する初期設定(要するにタイマの設定)を晒して、と
いっているのだけど・・・
>>375 AVRには関係ないがSDCC使えばPICのコードを生成できる
>デフォルトは1MHzの内臓RC発振だよ。
昨日やっと気が付きました。
ISPライタしか持ってないんですけど。
>タイマ信号源の選択に関する初期設定(要するにタイマの設定)を晒して
これについてはどこが間違ってるか分かったのですが、敢えて晒すなら、
TCCR0A = 0;
TCCR0B = (1<<CS02)|(0<<CS01)|(1<<CS00);// 1024分周
sbi(TIMSK0,TOIE0);// タイマ/カウンタ0オーバーフロー割り込み許可
こんな感じです。
デフォルトは32.768MHzになると勘違いしていた。
設定ミスでも内蔵の8MHzになると思った。 どっちにもならないんでおかしい・・・
なんで?って思っただけなので、
原因も分かったし、1秒計測と、液晶駆動用の2KHz信号を作るという目的は達しました。
現在は内蔵の8MHzを元にタイマーを制御しています。
要するに32768Hzってのは内蔵発振のつもりだったわけね。
この値見て、勝手に、
外付け時計水晶つけていて、これを発信源にしたい
のかと思っていたわ。
疲れた
419 :
774ワット発電中さん:2006/08/01(火) 08:18:27 ID:/XJ8lCgA
最近の書き込みって、脳内妄想がヒドイ質問ばかりですね……
データシートすら目を通さないなんて。
>>418 外部発信のつもりなんじゃね?
どう転んだら内蔵発振のデフォルトが32768Hzになるのかと・・・・・
8MHzを256分周してOSCCALいじったらなんとかなるが、デフォルトってことはあるめー
どっちにしても情報を小出しにしかしない人の相手は疲れるよ。適当にしたら?
AVRは知らなくてもいいが、質問の仕方は知ってて欲しい。
お前らしつこいな
>要するに32768Hzってのは内蔵発振のつもりだったわけね。
そーゆーことです。
マニュアルを適当に流し読みして、
(When the asynchronous operation is selected,
the 32.768khz oschilator for timer/counter is always running. ...)
8MHzと32.768Hzで発信機が2つあると思ってたんす。
なんでタイマ割り込みの間隔もどっちかに準じた値になるべと。
途中で日本語マニュアルを見つけたおかげもあり、理解しましたが、
恥ずかしい間違いだったこともあり、そこを明確にしてませんで、混乱させますた。
以後、マニュアルよく読みまつ。
ゲームとか家電とかも読まない人なんですよね・・・
今のゲームは読まなくても分かって貰えるように
工夫はされてますが。
最後の2行を考えもせずに書いたことによりおまいさんはとことんこのスレでは忌まれる存在になるよ
>>423 あのさ・・・コンシューマ商品のマニュアルと、データシートを混同するなよ。
データシートは一種の仕様書だ。
およそ使用上生じるあらゆる事柄が網羅的かつ詳しく書いてある。
見ないでわかるなんて事は「ありえない」と考えとけ。
俺も、その辺の家電やゲームのマニュアルは読まないけど、それは家電や
ゲームが何をするためのものか、あらかじめ大体わかっているからだ。
ワンチップマイコンや、昔の何に使うかわからなかった時代のパソコンは、
使い手が自分で使い道を決めるものだ。だから、使い方の解説なんて
書いていない。どこを押したらどういう反応が起きるかがひたすら書かれて
いると思えばよい。そして、書かれてない事はおきない。
それを見ながら想像力を働かせて、あれができる、これに使えると考える
のが設計者の仕事であり、それが楽しみじゃまいか。
単にオレは適当な駄目人間だと言いたかっただけなんすけどね。
そしてゲーム業界はその適当な人(マニュアル読まない人)
にも普通にゲーム出来るように努力してるから大変だと言いたかった
だけなんすけどね。
ああ、AVRもそれくらい親切に作れやと
言ってるように見えたと。
軽率ですた。
自分ゲームの開発やってるんですけど、
マニュアル作ってる人が、メールとかで来る苦情に対して、
「マニュアル読めボケぇ」
言ってる姿を見るので、オレと同じだなぁと。
>>426 自分の考えが違っていたなら新しいものを取り入れればいい。
そして新しい世界で遊びましょう。
>>423は俺も一瞬ムカッと来たが、理解した。
確かにAVRのマニュアル作ってる人がみたら悲しみますな。
申し訳ない。
ウネム・・・
読み返してみると、オレはマニュアル読まない奴にも
ちゃんと対応して仕事してるぜともとれなくないですが、
そういう意味じゃないんで、誤解しないで下さい。
よく考えて書かんと・・・
そろそろ日記帳はやめて
新しいネタをふってくれ。
MEGA48でプログラム書いてたら、コード領域が足りなくなってきた・・・
Cで書いてるのをアセンブラにするか、88か168に差し替えるべきか悩む。
アセンブラだとどれくらい縮むもんなんだろ。
つーか、AVRの取扱店ちっとも増えないな。このまましぼんで入手しづらくなるとちと悲しい
むしろmega8で
>434
何故にmega8???
mega88とmega8は価格も大差ないし、mega48との互換性はmega88の方が高い
手持ちであまってるならともかく・・・
他意しか無い
>>432 思い切ってmega168に変えよう!
アセンブラで縮むとも限らないし、余計なトラブルを回避するためにも。
mega8は48との互換性がなぁ。
むしろ、なんでmega48/88/168はmega8と互換性が無いのかと問いたい(w
>>438 上位互換ぢゃないの?
なんか違ったっけ?初期設定とか。
mega8よりコードサイズが大きくなる予感…
つか、コンパイルオプション確認したか?
秋葉原に行ったときについでにAVRも買えると良いんだけど、扱ってるのって
秋月と若松とマルツぐらい?
秋月はあまりやる気が見られない品揃えだったけど、他はどうなんでしょ?
>439
>上位互換ぢゃないの?
コードレベルでは互換性があるが、I/Oのマップが異なっています
ITプラザはすごいところでした
ちょっと あれは真似ができません
以上
>>441 -Osで最適化してる。
てか、そろそろソースが1000行に到達しそうだから致し方ないんだが。
かなり機能詰め込んでるからピン数も限界に達してて厳しい・・・
使ってない機能って外部割込みとタイマ2とWDTとSPIとアナログ比較にデバッグWireくらいかな。外部クロックだし。
とりあえずmega88注文しとこう。
447 :
774ワット発電中さん:2006/08/04(金) 17:17:20 ID:GyC7RtPn
サイズ最適化のための工夫はしてる?
>>447 いやまあせっかくあるんだし組み込めば便利なんで残したいんだよなぁ。ちなみに今組み込んだのを大雑把に言うと、
・7segLEDのダイナミックドライブ4桁
・↑と一緒にキースキャン4桁
・LEDと同じバスでLCDドライブ
・PWMでサウンド出力
・UART通信
・TWIで別のAVRと通信
・バッテリー駆動用電圧低下検出ADC
・タイマ割り込み
こんな感じ?mega48だと全部の機能を同時に使うのはかなり厳しいような。当たり前だが。
>>448 もともと6809とかZ80のアセンブラはやったことがあるから、それとAVR-Wikiとかの情報を参考にして、
・一度しか呼ばれないサブルーチンはstaticかインラインで書く
・条件分岐はなるべく0判定で行う
・caseは使わずif文を並べる
・else if は処理速度は上がるがelseでジャンプが入るからアルゴリズム的に問題ないなら使わない
・無用なlibは使わない。機能を限定したもので足りるなら自分でサブルーチンを書く
とかやって、正直Cでは(個人的には)そろそろ限界。おかげでソースはアセンブラ並みに読みづらい。素直に88使います。
>>449 そこまでいくならATmega128に変えてGLCD表示も組み込んだら?w
>>449 やることやってるな。引っ越し時ですかねえ。
>>449 最終リンク時に不要関数削除する方向で是非。
>>449 あと、グローバル/static変数極力減らしてる?
>>449 あと、通信相手が1つならTWIやめてSPIにすると軽くなるかも。
>>449 IRQはattach方式にして各機能のInitial関数を呼び出さない限りcallされないようにすると
割り込みルーチンも削減できる。
>>449 >・PWMでサウンド出力
サウンドデータ次第ではこれがメモリ食いそうだなあ。
データ形式もしくはデータ生成ルーチンを吟味する余地はある?
データはEEPROMに書いてしまうという手もある。
最初の256バイトだけを使って、アクセスルーチンを自作するとかなりサイズ縮まる。
>・バッテリー駆動用電圧低下検出ADC
よくわからないけどBODじゃだめなんだね。
これアナログコンパレータに移せない?
>・LEDと同じバスでLCDドライブ
これいいな。LED点灯時はE信号を与えなければLCDには無関係、LCD操作するときはLEDのドライバトランジスタを切るって感じ?
mega88届きますた。これで好きなだけ作りこめる…
といっても1/1000秒単位でのリアルタイム処理なんで処理時間考慮しないといけないんだが。
mega168にしなかったのも処理時間の問題であまり大きなコードにできないから。
>>456 サウンドっちゅーてもBEEP音とかエラー音なんで特にデータは持ってないです。
EEPROMは設定保存に数バイト使ってるだけなんで(チェックサム含む)いざとなったら利用するかも。
staticなDATAはLCDの表示データぐらいしかないから、読み出しルーチンのサイズ考えるとあまり効率よくないんで今のとこ放置。
電圧低下検出って言うのは、電池駆動なんで1本当たり1V切ったら電池交換の警告出すために使ってます。
電圧決め打ちだからコンパレータでもいいんだが、分圧比がうまく取れないんで。
LCDのドライブはそんな感じです。
ダイナミックドライブを5桁(LEDは4桁、1桁はLEDがOFFのダミー)にして、そのタイミングでLCDにデータ転送。
1/1000s単位のドライブで一度に1文字しか送ってないんで、書き換えに0.16sかかるけど。
メモリに空きができたけど今度はピン数がきつい。
外付け部品を極力減らす方針なんで、7segLEDにBCDじゃなく7本使ってるのがいかんのだが。これで3本余計に使ってる。
でもその副作用で、片面基板だがダイナミックドライブ用のパターンが楽に引ける。
一桁おきに表示パターンを変えることでジャンパーなしにドライブできる。ピン数に余裕があるならおすすめ
MMCかSDカードの仕様書を探してるけど見つからない。
リンク切れが多い・・・
まぁAVRで使ってる人が結構いるようなので、
それを参考にすれば大丈夫だとは思うんですけど、
知ってる人いたら教えてくらはい。
AVRトリプルライターを作ってみたんだけどATmega168は読み書き正常にできるのにATmega128が認識しない………orz
シリアルポート+74HC126のライターでは認識できるのに……
>>460 データシートでISPピンの位置を確認しろ。
と思ったら他のライターでは桶なのか。すまん。
mega8でつくるUSB-ISPは
mega128に対応したつもりだけど未確認なんだっけか
>>460 書き込み側のソフトは何を使っているの?
それと認識しないって、どういう状態?ヒューズビットとかは読める?
>>464 使用ソフトはAVRSP、-Rのチップ認識が全くできなくてもちろんヒューズも読めない。
ディレイはデフォルトの-D3。
74HC126のISPだと認識も読み書きもできる。
mega168は正常に読み書きできるんだけどね。
私のトリプルではAVRSP -pb1 -r -d1でATmega128と認識します。
AVR-ISPではISPが921kHzになっているので230kHzに変更すると認識する。
どっかの配線がはずれたとかじゃないかな。
467 :
774ワット発電中さん:2006/08/11(金) 22:07:41 ID:z0Q55AtO
いまディレイいじったりCOM1と秋月の変換アダプタでやってみたけど、やっぱり認識しない。
mega168は認識するのに。(ジャンパの部分も試したけど変化なし)
で、相変わらず74HC126のヤツだと普通にmega128を認識する……、接続ケーブルも同じのを使ってて電源電圧は5V。
原因が判らないや……、もう少し試してみるけど。
私のMega128も5Vです。COOKモードは短絡。PB1,PE1,PE0はISP専用で使っています。
74HC126で使えているならムキにならなくてもいいような気もするけど。
普段AVR-ISPで使っているので気付かなかったけどavrspだとLEDが点灯しないよこれ。
469 :
774ワット発電中さん:2006/08/11(金) 22:50:19 ID:gF4dNUx8
MEGA168
へんな代理店からいままで1つ¥2200で1000個単位で
購入してた なんか話きくと秋葉ではもっと安いらしい
どこ行ったら安価で買えますか
Digikey
1000個ロットなら、一次店でも扱ってくれるだろうに。
自分の会社のほうが、口座開設できない変な会社ジャマイカ?
473 :
774ワット発電中さん:2006/08/12(土) 00:35:19 ID:5yUfKVHb
みんなさんきゅ
うちの会社価格に疑い持たないみたい
仕切りみると
すんげーねだん なんの変哲もない
18U水晶が2000円とかでへーき
>結構見つかるよ・・・
サンクス。
英語 orz...
しかもこんだけ長いと気力が・・・
FAT使わなければそんなに難しくはないみたい。
夏休み中に遊んでみるつもりだったけど、仕事が一杯。
そういえば、自分もRS232Cの簡易ライタ使ってるけど、
ノートのRS232Cだとどーやっても焼けなかった。
>>473 なんだか裏で資金流用されていそうな………。
>>474 AVRトリプルライタかUSBaspをノート用に作って挑戦して失敗しましょう!(ぉぃ
内部校正付きRC発振の周波数ってロットで大きく違うのですかね?
TINY26L(秋月)で今度買ったもの、ソフトUART通信が化ける
データシートで見てもそんなに大きくずれない様なこと書いてあるんですが
どうなんでしょ?(以前に購入したロットは出来ていた)
>>476 内部RC発振でのUARTはお勧めしない。
そもそも精度が悪いし、温特も悪いし。
昨日動いていたのが、今日は動かないっていうのがアリガチ。
非同期通信の場合必ずスタートビットで同期をとるはずなんで、
クロックの誤差を複数のバイト入出力に亘って累積することは無い。
各ビットの出力期間に対し十分に追随できるスピードでサンプリングを
行うことが出来れば、多少のクロックの誤差は許容出来る仕様だと思う。
それで、文字化けの原因なんだが、スタートビットの検出にしくじってない
だろうか。非同期通信の場合仕様としてストップビットの出力から次の
スタートビット出力までの期間の時間を0にする事を許す。
つまり、出力装置が1バイト分のデータを出力した後ストップビットを出力、
その直後スタートビットが出力されるんで、ソフトUSARTだとストップビットを
検出して、次のスタートビット検出に備えるまでの、時間的余裕はストップ
ビット出力期間の1ビット分しかない。(ストップビット1ビットの場合)
なんで、8ビット目のデータをサンプリングしたら、Rxdを見てHighだったら
すぐに抜けるとか、少しでも時間を稼いで見たらどうだろうか。
と思った事を書いたがエラソーな文章でスマソ。見当違いっだったらゆるしてね。
内蔵RCの温度変化は10℃で0.08%ぐらい。
許容できる誤差は8bitパリティ無しなら10/9.5=5%なので片側2.5%。
wait数をうまく選んだらなんとかならないかな。
一方、8MHz/115200bps=69.5クロックになるので1クロックの誤差が1.5%。
ボーレートが高いとソフトの問題の方が大きくなるよ。
処理時間については478さんの言うとおりだと思う。
仕事だと477さんの言うことも正論ですネ。
2,3のホームページに書いてあるように頭にボーレート調整用のデータを送って温度変化に追従する手もある。
482 :
476:2006/08/14(月) 08:43:23 ID:om9YwR6s
>内部RC発振でのUARTはお勧めしない
承知の上ですが、デバッグ用のモニターなので
少々化けても問題ないんです。と言うより化けますがデータは読める程度
ただこの化け具合が同じ条件でロットによって明らかに違う(再現性あり)
この辺同条件かであれば校正によって1%程度とデータシートに書いて有るのですが
ひょっとして、不良ロットか?・・・と
デフォルトでは±3%のズレだから、エラーが出てもおかしくはない。
基準クロックを使った校正作業は必要ですね。
校正によってだものな
でも自前で校正なんてしないし
水晶くらい使いなよ。
ボーレートを下げる方向ではダメなの?
っていうか、今どのぐらい?
>>482 データシートは穴が開くぐらい読むんだよ。
実行時校正法を使えば1%出せる。(自分で校正レジスタいじる)
出荷時は5V25℃で3%以内に校正されてる。電圧依存があるので、もし3.3Vで使えば
その時点で大きくずれる。
デバッグ用と割り切るなら、デバッグ時だけセラロック積めばいいじゃない。
あるいはクロック同期式のUSI使えばクロック気にしなくていい。
>>486 基準クロックがずれるんだからボーレート下げたって関係ないよ。
ボーレートって下げても波形大きくならんの?
>ボーレートって下げても波形大きくならんの?
うーん、そういう問題ではなくて
クロックの精度の問題なので例えば3%の誤差のあるクロックは何分周しても3%の誤差がある
ああそうか累積誤差の問題ってボーレート下げても解決せんのんか
ちゃんと考えたことなかった、機会をありがとう
491 :
482:2006/08/14(月) 18:02:10 ID:om9YwR6s
内蔵RCが怪しいことぐらいは言われなくても・・・
その他のことも
聞きたいことはロットによって周波数が大きく違うものなのかどうか
(10%位違っても 化けながらでも数値ぐらいは読める)
要は購入ロットによっては正常に動いたり、動かなかったり
じゃ困ると言うことです。(通信以外にも)
データシートで±3%を保証してるならロットが違っても3%以内に収まるだろきっと
ていうかここにアトメルの中の人が居るわけじゃないだろうから、聞く場所を変えたほうがいいんでは
自分はたいした数じゃないけど内蔵RCでUARTの受信ミスは無かった。
仕事ならバラツキの最悪値で設計しないと世間を騒がすことになるかも。
趣味ならtyp値や実験結果でダメならあきらめる。
グレーゾーン設計はPICの簡易ライターを連想してしまうなぁ。
>>489 なるほど。
でも、ボーレート下げて、x4サンプリングとかはダメなの?
>491
mega48だったけど50個くらい同一ロットのものを仕入れて内蔵RCで通信テストしたことがある
電源ONで通信エラーを起こすのが1割くらいあった、またそのまま通電してて30分位でさらに1割位不良が出た。
結局セラロックを追加して問題なくなった。
>494
>でも、ボーレート下げて、x4サンプリングとかはダメなの?
ソフトサンプリングする方式だと補正する方法はありますね・・・
(ハードUSARTを使用するなら意味がないですけど)
モデムみたいにATコマンドでビットレート合わせとフォーマット識別すれば桶。
V25bisなんかはやらないわけだ
>>494 ハードウェアUARTではx16またはx8サンプリングやってます。
ただしこれはサンプリング位置自体は固定なので、
クロックずれエラーを回避する効果は全くないですが。
OSCCALを少しずつ変えながらあるデータを受信し続け、
受信可能範囲を求めてその中央を採るって感じでやれば
そこそこいけるかなあ。
>>497 モデム−端末間のシリアル通信の話なので、
モデムの変調方式とは関係ない話では?
発呼手順だよ
502 :
491:2006/08/15(火) 08:41:48 ID:/QvIwk8/
>495
同一ロットでもそうなんですか
校正済みと言うことで有る程度は信用できるかと思っていたんですが
通信以外にもウォッチドグのリセットタイミングなどもマージン大きくしとかないと
問題ありでした。
>>491 前提として、校正値を得てOSCCALに入れるのはやっているんですよね?
周波数によっては普通にパワーオンリセットするだけで設定されるけど。
>503
既出だけどtiny26の場合は出荷状態で±3%以内だからそのままでは通信にはきついっす。
個別に再補正するなら別だけど
>>504 なるほど。あの補正値はその程度なのか。
内蔵OSCに幻想抱きすぎなんだって
どうせRingOSCだろ、つまるところRC発振回路だ。
内蔵OSCなんてLEDチカチカか簡単なコードを動かすときしか使わないな。
>>506 値段よりIOを増やしたいとかそういう目的かも>内蔵OSCにこだわる人
もちろんそうよ
セラロック使うとIOが2本もつぶれるし
1本で済むアンプ内蔵の発信器は高いし
RESETつぶして1本確保は何かと面倒になるのであれだし
いっそ水晶とはいわんが、セラロック内蔵AVRとかできんもんかな。
CMOSプロセスで作れるシリコン振動子ってのが流行り始めるかも?っていう事らしいので
そのうちそういうの内蔵するのが当たり前になるかも知らんね
USB-シリアル変換ICのCP2103やFT232RLはオシレータ内蔵してるよね。
USB通信に使うくらいだから、そこそこ精度もあると思うし。
>>512 なかなか詳しいね。
でも当分先だろうな。
どなたか教えてください。
AVR-ISP ライタを作って書き込みテストしているところです。
ATtiny26LとATmega8535には書き込みが出来ましたが、
AT90S8535には書き込みができません。
(avrspを実行すると Device connection failed. と言われる)
書き込みできないのはヒューズビットが原因で、
ヒューズビットを書き換えるには+12Vを使ったライタ?を
作らなければいけないということでしょうか?
>516
AT90S8535は内蔵の発振器を持っていないと思うのでXTALかセラロックが接続されていないといけないと思うけど
つないでる?
つないでませんでした……
セラロックを接続してやってみたところ、
> avrsp.exe -r
Locked device or Synchronization failed.
というメッセージに変わりました。
一歩前進したかもです。どうもありがとうございます
内臓OSCであっても、OSCCALレジスタに入れる値を校正して入れてやれば、かなり満足に動きますが・・。
水晶なんて贅沢っすよ。
それが分かってない証拠。
VDD特性、温度特性。
>>520 電圧は定電圧電源でナントカして、
温度センサー付けて温度特性補正しちゃおうぜ(w
その手があったな。
恒温槽に入れる手もあるな。
>>521 温度センサー付けるIOピンももったいないな。
プルアップしてスイッチつなげたIOなんかをうまく使う?
スイッチに並列に100kΩくらいつけ、オープン時の電圧をADCで受ければ
おおざっぱな温度はわかる、と試しもしないで言ってみる(w
まてまて、動的にコード補正できんのか?
でなければ外部環境の方を制御するしかないな。
>>524 OSCCALレジスタ自身、起動してからプログラムからかきかえるものだし、
タイミング重要な処理の真っ最中以外なら書き換えできるんじゃないのか?
そうか。なら通信してないときにキャリすりゃ、できないこともないんか。
通信のスタートビットを使って補正するやり方?がアトメルのサイトのアプリケーションノートにあるぞ
それで1%までは補正できるとかなんとか
英語だからいつか読もうと思ったままちゃんと読んでないんだ
おまえら、そこまでして外部クロックつけたくないのかw
529 :
774ワット発電中さん:2006/08/20(日) 01:31:09 ID:0zVB9CE6
8pinだからな、電源以外はIOにしたいんだ。
ttp://www.optrex.com/SiteImages/PartList/SPEC/5005cne.pdf AVRで上の液晶を制御しようかと思ってるんだけど、
このPDFの2.4項、5ページの初期化の部分。
液晶の駆動電圧を一度プラスにして、それからマイナスに
もっていってるように見えるんだけど、なんでですかね?
0vでしばらく待ってから、いきなりマイナスだと何がマズイのか理由がわかりまへん。
(自分で交流化しろってこと?)
あとはこの液晶にはないけど、68モードと86モードがある液晶がありますけど、
86系のCPUだと86モードの方が都合いいって事なんだろうけど、
今ひとつどこら辺が都合がいいのかわらん。
>>530 きれいに立ち上がるまでは液晶駆動とVccがショート状態に
なってるとかいった感じの回路の都合があるんじゃないのかな?
>530
5ページの下の部分を読むと、交流化信号が不安定な間とリセット中はVEEを印加すると
LCDに直流がかかって壊れる、みたいなことが書いてありますね。
Vcc−VEE間の電圧がそのまま(またはその何割かが)パネルに印加されてしまうんじゃないでしょうか。
で、VEEをVccと同電位にしろと。
>>530 86/68ってのは、バスに直結したい場合の都合。
AVRだと外部バス有りのタイプ(Mega128/162/8515とか)で外部バスモードを使う場合、
タイミングが合うのならば86系バスの奴に直結できる。外部WAIT信号無いけど。
68系バスの奴に繋げるには、ちょっとゲートICが必要。
IOポートでCPUバスをエミュして繋げるなら、どっちでも良い。
>>530 電源周りの参考回路を見ると普通の動きじゃない?
電源の投入・切断順序とDelayを間違えなければこのスペック通りになりそう。
>>531 532
そう考えるとしっかり意味ありそうですねー。
秋月で売ってる定番の液晶は、これに比べれば扱い楽な奴が多いんですな。
(デカイのが売ってなくて不満)
ハード素人なんで、これに合わせた初期化やリセットの回路を私が組むと、
とんでもなく変な回路になりそうで、躊躇します。
大きい液晶を探していて3000円だったので使ってみようかと思いましたが、
4000円の奴にするか・・・
こっちはこっちで、水平と垂直のクロックに合わせて信号出すタイプでまた、
扱い辛そうではあるんですが、(容量と処理能力不足)
3000円の5005みたいに、初期化や複雑なコマンドで悩むことは無さそう。
>>533 マイコンの入出力ポート前程で考えてますた。 なるほど。
ありがとうございました。
>T6963Cを使ったLM24014互換系の奴は大抵そういう電源シーケンスだが、
>+5VからNJM2360辺りでVEEの負電源組んどけば大丈夫だから、気にスンナ。
お!?
っと思ったら手元のLCDは1番違いのLM24013だったww
7414を使った自励形のチャージポンプ回路でVeeはかなり遅れて入るんだけど
Veeを含めて電源の投入シーケンスは気にもしなかったよw
DigiKeyから、Atmega88PIはObsolete Part - Due to Lead Free/RoHS initiative.なので
ATMEGA88-20PUがSubstitutesだってさ。
生産終了になるわけじゃないよね?
>>539 ヒト任せにしておいたら、該非判定を
ATMEGA88-20PI で取ってきやがったんだよw
普通、せめてATMEGA88* にしないか?
おかげでATMEGA88Vすら使えないw
>>534 535 538
また情報が。 どもです。
これを見ると5V電源を液晶の回路内で昇圧してくれる奴もあるようですな。
素直に新しい奴買うのもありだけど高い・・・
ちなみに上の5005って液晶は古いせいか情報探すのに苦労しました。
(特に制御コマンド)
>Veeを含めて電源の投入シーケンスは気にもしなかったよw
結構適当でも動きそうな気もしますけどねぇ。
一番困るのは一度+にしてから、信号送信と同時にマイナスに
下げろってことですね。
単に遅らせるだけなら楽なんですけど。
取り敢えず同じ店にあったGMFなんたらって奴を使ってみます。
320x240とデカイんでAVR単体での制御は難しそうですが。
取り敢えず今は秋月にあった小さい奴122x32で我慢してます。
これは扱いが楽だ。
まぁ、VeeがVss(GND)基準と考えるからシーケンスが複雑に見えるのであって、
Vcc基準と考えれば非常に単純。
543 :
774ワット発電中さん:2006/08/22(火) 09:54:07 ID:Zt9vBEX4
>>541 データシートの回路図で供給すれば(コントラスト調整のための回路)
単に最初の信号(初期化など)を送ってからVeeを繋げばいいだけだから
(それまではVeeは浮かせておく=Vccとなる)単純じゃない?
すみません、tiny26Lについてです。
内蔵RC発振器の1MHz以外の補正値を読み出して適用したいのですが
工場出荷時の補正値はどこに書き込まれているのでしょうか。
Flashメモリの最初の方に書かれてるのかと思っていたのですが、間違っていたようで
読み出し方が分からずにいます。
どなたか教えていただけませんか。
>>545 ChaN さんの COM-ISP ライタなら
avrsp.exe -rf を実行して出てくる最後の
Cal: 166 167 159 159
が補正値。動作時に読む方法は
付属のtips.txtに書いてありました。
アトメル製AVR-ISPの場合はAdvancedタブのOscillator calibration byteにあります。
Select frequencyから8MHzなどを選びRead Cal.Byte釦ををクリック。
2MHz,4MHz,8MHz...のようにいちいち選択しないと全部見れないです。
>>545 読み出しにはプログラマ(ライター)が要ります。
ヒューズビットのように読み出せます。
ですからプログラムから読み出して設定することはできないんです。
ライターであらかじめ読み出しておいて、それをプログラム内に
埋め込んでおく必要があります。
たとえばldi r16,補正値/out OSCCAL,r16 のように。
これはAVRチップ毎にプログラムを変更しなければならないので
ちょっと面倒です。
>>546さんが紹介しているavrspには、この補正値をFLASHの最後の4バイトに
書き込ませるという便利な機能があります。これを使えば、プログラム側は
AVR毎にプログラムを書き換える必要なく、FLASHの固定番地を読み出しこれを
OSCCALに書き込むプログラムとするだけでよくなります。
補正値用に2ワード+FLASH読み出し+OSCCAL書き込み(4ワード)でOK。
ヒューズ設定の周波数に関係なく1MHzのOSCAAL値が自動的に設定されるとは。
手持ちのTiny26のOSCCALを調べたら
1MHz:172
2MHz:175
4MHz:163
8MHz:167 だった。
今まで何も考えずに8MHzにしていたので172/167=1.0299
無調整のままだと3%も誤差が増えるのね。意外でした。
1行目のOSCAALはOSCCALの間違いですぅ。
>>546-548 ありがとうございます。
avrspで書き込み時に-cオプションを指定して、補正値をFlashメモリに書き出して
無事、実行時に読み出すことができました。
552 :
774ワット発電中さん:2006/08/23(水) 21:12:38 ID:5xnLnO+3
勉強になるな
OSCCALの件、Mega88なら校正バイトが1つなので
細工しなくても8MHz内蔵RCの精度があると思ったら
Factory Calibrationが8MHz 3V 25℃で±10%になっている。
この程度しか精度が無いんでしょうか。
質問なんですが、
GCCを使って書いてるんだけど、
とあるテーブルがRAMに配置されてしまう。
まぁ当然といえば当然なんですけど。
どうせReadOnlyなんで、ROMに配置したい。
んで、どーすればええんでしょう?
uint8_t dataTbl[4096] __attrubute__((section(".text")));
とかやるとROMにいくっぽいけど、
読むとゴミってる・・・
>>554 PROGMEM unsigned char
とかで宣言して
pgm_read_byte
じゃだめか?
一般的なCだと const unsigned char で宣言すると固定(ROM化)されるよ。
固定の定数は
#include <avr/pgmspace.h>
const unsigned char PROGMEM data[256]={0,1,2,,,255}; か
unsigned char __attribute__ ((progmem)) data[256]={0,1,2,,,255}; で定数を設定して
PORTB = pgm_read_byte(&data[i]); みたいな感じで使う。
AVR-WikiのFLASH上定数がためになるよ。
http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi?page=Getting+Started+Notes Wikiのメニューにないのが残念。
あれ、いつの間にかAVR-WikiのメニューにGetting Started Notesが追加されている。
編集してくれた人、ありがとう。
>>555 >>556 >>557 どもっす。
pgm_read_byteを試したら、動きますた。
しかしワーニングが。
PROGMEMにしたらワーニングも出なくなりめでたし。
ROM領域読む時は普通の命令じゃ駄目なんすね。
アセンブラレベルで命令が違うか何かしらの細工がいるってことか・・・
後でコード見てみるか・・・
constは試しましたけど、AVRのばやい、RAM領域におかれちゃいましたね。
constデータをmain()の中に書いていませんか。
グローバル変数にしないとダメよん。
>>560 winavrではだめみたいですよ。
avrgcc3.4.6でやってみましたが、以下のようになります。
const unsigned char x = 12;
int main(void)
{
PORTD=pgm_read_byte(&x);
}
このコードをコンパイルすると、以下のコードになります。
1.FLASHの0x0074から1ワード(2バイト)をSRAMの0x0060にブロックコピー
2.SRAM bss領域クリア(この場合はないので1バイトもクリアせずループ抜ける)
3.STACK初期化
4.pgm_read_byte()にアドレス0x0060を渡し、返される値をPORTDに出力
xにはSRAM領域のアドレスが設定されています。
FLASHの0x0060はコード領域で、データ(12)はありません(FLASH上の0x0074にある)
よってこのコードは意図通りの動作をしません。
unsigned char PROGMEM x = 12;や、
prog_char x = 12;に変えると、以下のようになります。
1.FLASHからSRAMへのコピーはしない(コピールーチンはある)
2.SRAM bss領域クリア(上と同様、何もしない)
3.STACK初期化
4.pgm_read_byte()にアドレス0x0026を渡し、返される値をPORTDに出力
この場合、FLASHの0x0026にはちゃんと定数データがあります。
00000026 <__ctors_end>:
26: 0c 00 .word 0x000c ; ????
const unsigned char PROGMEM x[4096]={0,1,2,3,,,4095}; と書けば
1.2.は実行されないのでRAMは使われず
4.でFLASH直接になっていると思うんだけど。
>>561さんの下の書き方で目的達成、意味が違うのかな
>>562 PROGMEMついているならOKです。
>>559さんが試して失敗したconstってのは
>>556のPROGMEMがないconst宣言定数のことだと思います。
関数の中に書くときはstatic付けないとダメですね。
内蔵RC発振だとクロックが止まる可能性はゼロなんでしょうか。
水晶だと絶縁劣化やハンダ不良による発振停止がありうると思うんですが。
それを言うなら内部回路が壊れて発振が止まることだってあろう。
発生確率で言うなら低いだろうけど。
>>565 そんなに心配ならクリスタルオシレータを使えばいい。
多分下手なクリスタルよりも止まらない(ちゃんと起動する)気がするw
発振が途中で止まることはまずないだろ
ソレよりも起動時にちゃんと発振するかどうかのほうが重要な気がする
信頼性重視で確実に発振させたいなら、
>>567のいうとおりちょっとコストをかけてOSCモジュールをつけるべき
オシレータは便利だけど電源電圧5Vがほとんど
3.3Vとか3Vで動かそうと思ったとき使えない
>>571 おーさんくす。
で、11.776MHz ってなんの周波数なんですかね?
何かに都合のいい周波数になるのかな?
>>572 確かに何に多く使われてるのか気になる。
AVRに使うなら11.776MHzだと割り込みで1秒に100回や1000回のときピッタリにできるし安いからまとめ買いして使ってる。
シリアルは、計算してないな〜
>>100個くらい買っておけば、一生使えるだろう。
この考えでどれだけのパーツが・・・・
>>574 ググったら携帯関係がひっかかったけど用語ワカラン。
>>575 カタカタ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(・∀・ )< ついでだし これも買っとこ。 大人買い、大人買い。
_| ̄ ̄||_)_\_______________________
/旦|――||// /|
| ̄ ̄ ̄ ̄ ̄| ̄| . |
|_____|三|/ そしてまたゴミが増える・・・・
>>577 ×ついでだし
○5000円以上だと送料無料だし
>>576 あんまりヘンな周波数だと
在庫がなくなったときに困るからなぁ、
やっぱ8MHzとか、普通のw周波数の方がいいかも
3.6864MHzの倍数とかならシリアル通信のボーレートジェネレータによく使うんだが
11.776MHzって何だろうw
保守
超亀レスだが。
11.776だとわからんかったので、適当に3逓倍(35.328)でぐぐったらそれっぽいのがあった。
どうやらISDNやADSLで使われているものらしいな。
それならしばらくは入手に困ることもなさそうだし、なんか他のもの買うときにいくつか買っておくかな。
ただ、シールドを考慮しないと電話側にノイズが廻りそうではある。
まあ、そんな電話線の近くで使うこともないんだが。
USI使って、I2Cをまともに実装したコードを誰か紹介してくれませんか。
ATMELの参考コードは、読み辛すぎる。
というかプログラマ毎に書き方が微妙に違ってて、めんどいっすー。
秋月でAT90S1200が\100と安いんですが、これって内部発振に切り替えるのに
パラレルプログラミングモードが必要という位で他に不都合はないのでしょうか?
この値段なら74シリーズの変わりに使うのも抵抗なく使えそう。
外部クロックで使うにしてもちょっと前に出た 5個\100のオシレータ(11.766MHz)が
スピードもぴったり。ISPなど気にせず焼いたらソケット無しでハンダ付けみたいに
1200はRAMが無いのでスタックは3段まで。アセンブラになってしまう。
フラッシュは512命令だけ。
150円の2313がC言語&1024命令,10MHzなので納得できていれば
いいんじゃないでしょうか。
6命令でループしても0.5uSかかるのでゲートICとしては遅めだけど
使える場面も結構あると思う。
× 6命令でループ
○ 6クロックでループ @12MHz に訂正
587 :
584:2006/09/14(木) 01:25:38 ID:L9Pe74GW
お勧めはUSBasp。今はRS-CR方式で簡単に作れる。AVR-WikiのSandBoxにあるよ。
ゼロプレッシャだとDUALライターかな。1200は古いAVR910で書き込むことになるけど
変換ソケット無しでTiny26やMega88にも書ける。
PICやAVRはライターを自分で作るからこそ楽しいと思える。
>>588 ATMELの純正品が安いから、作る気になれんw
1万超えるもんを安い言うな
そんな金あるんならデバイス30個買え
ワンダーキットからUSBライタが出ている模様…つか、買ってしまった¥3800。
基板上完成品・ライタソフト付き・ジャンパー1コ噛ませばターゲットに電源供給(5V)可能。
楽だ罠。
AVR-ISPやSTK-500はファームダウンロード式だから買った方がいいとか
これはChaN氏のを基板化したものとか理解して買っているならいいと思う。
工作好きだからマイコンやっているんじゃないの?
高い安いというよりもライターも作れない奴がまともな製品を作れるとは思えん。
AVR本にでてくるライター買って動かないから商社に苦情を言う人って・・・
>>591さん
ワンダーキットのUSBライターは専用のソフトを使うんでしょうか。
興味津々なのにwebにのっていない。教えてほしいですぅ
>>592 料理が好きだから、農業や漁業・畜産業が好きであるべきだとか
そこからやらなくちゃいけないということもあるまい。
>>591 kwsk!
そのAVRライタ、以前に共立スレで「開発中」と、ちらっとだけ話題にはなってましたが、
まだワンダーキットのサイトやシリコンハウスのブログには情報が上がっていませんね
初心者は何がいいのか分からないからとりあえずライターを買う。
仕事だと雑用多いし納期は無いからライターを買う。
むしろ売ってるライターの情報が少ないから標準にみえるELMのライターを
作ちゃうみたいな
>>590 AVRISP2って5000円弱でしょ?DigiKeyで。
Compass-labでも6,000円。
>>594 デジットで普通に完成品が売ってるよ。
俺も欲しかったけど買わなかった。
ライタは共立ロゴ入りの専用。
でも結構使いやすかった、後輩に買わせたw
599 :
591:2006/09/15(金) 01:00:41 ID:SIInOXiL
>>共立のAVRライタ
新発売だったのか〜(^^ゞ 漏れが買ったのが9/8、今付属のCD-R眺めたらタイムスタンプが9/7のファイルが合ったよ。
デジットでパラレル版のライタを眺めていたら、背後から店員さんがしきりにこのUSB版をオススメしまくっていた。
パラレル版が、確か1800円か2800円だったのでちょっと悩んだが、オススメなら良いものだろうとこちらをチョイス。
実は漏れが9/8にAVRデビューしたので、詳細は今勉強中でして良くワカラン。スンマソ。
ソフトは専用ライタソフトっぽいAVRWRT.exe1本で、ハードは本体、USBケーブル、ISPケーブル、ターゲット用の
6ピンコネクタ付き。このライタ1コで、何も追加不要でAVRのメモリの読み書き出来ます。
漏れは、今のところ大麻オーバーフロー割り込み使ってLED点滅をAVRStudio+AVR-GCCを使ってチカチカ点滅しか
遊べていません(><) こんな漏れでよろしければ御質問承ります。
600 :
774ワット発電中さん:2006/09/15(金) 13:04:02 ID:7B90sIW4
久しぶりにレスがついたので上げ
USBaspは2台作ったけど動かなかったな。
USBで認識したりID変更はできるのにデバイスを認識してくれないから捨てた……。
mega8のUSBaspをAVRSPXでつかうにはavrsp.iniになんだったか書かんとだめよ
俺そこで引っかかった事あるから言ってみる
602 :
774ワット発電中さん:2006/09/15(金) 13:47:07 ID:2ONrFI9r
どうしてうまくいかなかったのかな?
mega8で2つ、mega48で1つ作ったけれど、問題なく動いています。
RS-CR方式での実験も成功しました。
ハブかましてるとかじゃないかな?
PICKit2は純正品のくせにハブ介在すると動作しないよ
(WindowsでUSBデバイスは認識するが書き込みソフトからは見えない、同じ現象だね)
604 :
774ワット発電中さん:2006/09/15(金) 14:03:59 ID:7B90sIW4
ハブは入れなかったな、2台のパソコンに直刺しで認識だけでAVRを認識しない。
mega8と48の両方作って同じ症状。
今度また作り直してみるか。
デジットのライタ、通販で売ってくれればいいのにな。
>>604 ゼロクロス検知用にフォトカプラを共立で注文したら、
品切れで入荷待ち、ついでに通販でUSBのAVRライタを
注文できないか問い合わせしているところ。
返事は・・・まだ来ない。
俺のうんこ臭いし
最近切れ痔のときがあるから
食えねーだろうな
>604
ハブ入れてもちゃんと認識するし動作もしますよ usbasp
USBで認識してAVRを認識しない時はISP用の配線が疑わしいですね
たまに書き込み用のリセットジャンパをショートしたままにしておく時があります。
この時の現象はUSBでusbaspを認識するがAVRを認識しない状態となります。
切れ痔のウンコって食うのに支障あんの?
AVR Dragonってどうよ?
ISPにJTAG、デバッグWireもついて6000円
ケースに入ってないのが気になるが。
>>609 デバッガだけ見ればよいかもしれないけど、
stk500は周辺回路も電源もついてて、拡張性が高いから便利。
jtag2と組み合わせれば最強か。
1MHzの動作で、タイマー0を1/1024分周でTOV0で(256ms)回しつつ
タイマー1を1/1分周で高速PWM動作(10bit)モードで動かしました。
高速PWMにおいて、OCR0Aを変化させながらLEDの明るさを波打たせるようにしたところ
どうもタイマー0の干渉と思われる変なパチっと明るくなる動作がOCR0A=TOPの付近で
発生しています。
タイマー0を止めたら直りました。とりあえず計時にタイマー0を使わずタイマー1のみで
全て対応することで乗り越えてますが、なぜか予測の付く方は居られますか?
612 :
605:2006/09/17(日) 00:32:59 ID:jRalyRuQ
デジットオリジナルのAVRのUSBライター
共立エレショップの通販でOKのメール返事
が来た。
ただ、頼むときは在庫確認した方がいいよ。
613 :
774ワット発電中さん:2006/09/17(日) 00:57:29 ID:EQlxKXnp
>>612 報告ありがとう!
試しに買ってみようかな。
まだ生産数が多くないとか、不具合があるかもしれないから、
ワンダーキットのラインアップに入れず、通販メニューにも入れてないのかな
それとも設計企画がワンダーではなくて完全にデジットなのか?
デジットオリジナルのキットは他にもいろいろあるんだけど、
なぜか通販では冷遇されていて、存在を予め知ってる香具師が、
マンドクセー手順を踏まないと、買えない・・・
>>611 OCR0AはOCR1Aの誤記だよね?
タイマー1の分周が1/1と言うことで一周期1024クロックしかないから、
タイマー0かその他の割り込み処理をしてる間にOCR1Aの更新タイミング
を失って、1サイクル点灯のままになってるんかないかな?
タイマー1のクロックを1/8にして再現するか試してみ。
616 :
774ワット発電中さん:2006/09/17(日) 19:18:39 ID:BdJgNfgC
AVRデビューした俺も仲間に入れてください><
ライターはストロベリーリナックスのEZUSBに抵抗三本で、
ソフトもネットにあるもので書き込みできちゃいました。
こんなに安く簡単にライタができちゃうなら、最初から
こっちやってりゃよかったよ。
AVR-Doper はどう?
高電圧シリアル部分を削除すればmega8と74HC126で作れるし。
ただ動作が少し遅いかも(書き込み?ベリファイ?)
ただ7/18のアーカイブのavrdoper.infが間違ってて少しはまった。
解決してから9/12に更新が・・・。
618 :
591:2006/09/18(月) 06:35:15 ID:1mWgesdc
スマヌ教えてくんろ。
AVR遊びで、燃費計をやってみようと思いとある方のページを参考にしているのですが、
つ
ttp://nabe3.no-ip.org/automobile/nenpikei/wiring.htm この回路とこの作者が作ったソースではPCとのやりとりに、MISO/MOSIを用いている。
ここのソースを見ると、UART操作してあるのだけどUARTの操作だけでは、当たり前だがTxDとRxDで
データをやりとりするようになってしまう。UARTデータやりとりをMISO/MOSIへ切替える方法って有るのでしょうか?
>>618 ちょろっと見てみたけど、なかなか面白いことやってるな。
どうやら、ISP書き込みとUART通信を回路の変更(ジャンパスイッチなど)なしに行う設計だな。
基本的にISP用の配線をしてあって、シリアルで接続してそのまま書き込める。
プログラム実行時は、MOSIをRxDに、TxDをMISOにそれぞれソフトウェアでコピーしてる。
メインループの
LOOP:
SBIC PINB,PB5
CBI PORTB,PB4
SBIS PINB,PB5
SBI PORTB,PB4
SBIC PIND,PD1
CBI PORTB,PB6
SBIS PIND,PD1
SBI PORTB,PB6
RJMP LOOP
がその部分かな。
十分なクロックがあって、割り込みなどの処理が軽ければUARTの出力も誤差範囲に収まる、と。
>>619 それだと、内蔵のノイズフィルタが効かないんじゃまいか?
(それともAT90ST2313の世代ってフィルタ自身が入ってないんだっけっか?)
622 :
591:2006/09/18(月) 14:18:23 ID:1mWgesdc
>>619-621 ありがd。全ての謎が解けました。
@受信
SBIC PINB,PB5
CBI PORTB,PB4
SBIS PINB,PB5
SBI PORTB,PB4
MOSIのビットをPB4へコピー。んでもって回路図見るとPB4とRxDが繋がっているわ。
@送信
SBIC PIND,PD1
CBI PORTB,PB6
SBIS PIND,PD1
SBI PORTB,PB6
TxDのビットをMISOへコピー。
な〜るほどね。
for(;;){
if (bit_is_set(PINB,PB5)) sbi(PORTB,PB4); else cbi(PORTB,PB4);
if (bit_is_set(PIND,PD1)) sbi(PORTB,PB6); else cbi(PORTB,PB6);
}
624 :
774ワット発電中さん:2006/09/18(月) 20:50:22 ID:kHRG8KKX
デジットオリジナルのAVRUSBライターの書き込みソフトの画面が気になる
625 :
591:2006/09/18(月) 21:37:38 ID:1mWgesdc
良さそうなうpろだを紹介してくれれば画面キャプチャうpしますが。
627 :
591:2006/09/18(月) 23:22:50 ID:1mWgesdc
>>627 これは随分と使いやすそうですねw
しかも共立マークいりとは。
mega128や168には対応していますか?
629 :
591:2006/09/19(火) 00:09:26 ID:PZqUsPLk
ドロップダウンリストによると
AT90S1200/2313/4434/4433/8515/8535
tiny12/26/45/2313
mega48/8/88/8535/163/168
に対応している模様。つか、漏れの弄るプログラムが悪いのかどうにも不安定。
20回に1回の確率でライタ本体とソフトをさいきどうせにゃならんorz
MEGA644とシリアルのISPのライタを使っていて
内蔵発信からセラロックに変更。
ヒューズビットの設定を何を勘違いしたか、
11110000とやってしまって、書き込み不能に・・・
外部クロック(1111_0000)と外部クリスタル設定(1111_1111)を間違った訳なんですが・・・
さらに外部クロック設定した時は起動時間に11を指定するなともある。
7: 1/8分周
6: システムクロック外部出力
5: 起動時間選択
4: ↑
3: クロック種別選択
2: ↑
1: ↑
0: ↑
試しに、もう一個のMEGA644のタイマとPORTでクロックを生成。
書き込み出来なくなったMEGA644に送ってみたが、認識しなかった。
これはもう、パラレルライタじゃないと再起不能?
>>629 mega128には対応してないのが痛いですね。
不安定&再起動しないといけないという理由で通販でも売ってないのかな?
>>630 この際、パラレルライタ作りましょう。
自分のライタは適当な周波数の安いクリスタルオシレータに1kΩつけてAVRのクロック入力に入れっぱなしにしてる。
>この際、パラレルライタ作りましょう。
800円を諦めるか、今後も考えてライタ作るか悩むとこです。
もう一個の方は上手く設定出来て動いてるので。
そもそもセラロック(クリスタル)の仕組みがよく分かってないです。
電源(VccとGND)与えれば、lo-hi-lo-hiみたいな信号が
出るもんだとばっかり思ってたんですけど。
テスターでセラロックの足の周波数測ってみても、
訳の分からん数字が出るばかり。
セラロックを理解していなさそうな予感……。
せめてオシロでみないと
オシロで見ても盛大にノイズの乗った数mVppの正弦波的なものが見えるだけだと思うぞ
>>632 > そもそもセラロック(クリスタル)の仕組みがよく分かってないです。
> 電源(VccとGND)与えれば、lo-hi-lo-hiみたいな信号が
> 出るもんだとばっかり思ってたんですけど。
全然違う。セラロック自体は只の共振器(普通キャパシタも入れているけど)
なので、発振回路の中に組み込むと、特定の周波数で共振する代物。
クリスタルも一緒。(セラロックって商標な。セラミック共振器が一般名)
で、AVRの場合この発振回路がチップに内蔵されているので、共振器をつな
ぐだけでクロックを作ってくれるというありがたい機能がついているわけ。
>635
1Vppぐらいのわりとキレイな正弦波が見れるよ
637 :
774ワット発電中さん:2006/09/19(火) 11:58:51 ID:16aOdiBX
USBaspでmega48と168の読み書き成功
mega128にも対応してるっぽいので試してみるとエラーが……
avrspx: error: programm enable: target doesn't answer. 1
Device connection failed.
シリアルのHC126だと読み書きできるのに……orz
ISP用の信号線をZIFソケットに直接繋いで焼きたいのですけど
6端子だけAVRに繋げば良いのでしょうか?
具体的に言うと
AT90S2313 の
1 RESET
10 GND
17 MOSI
18 MISO
19 SCK
20 VCC
残りの空きピンはフロート状態でOK?
検索してみるとクロックが必要みたいな感じなのですが
>>638 そだよ。共振子つけるか外部クロックがないとダメ。前にこれで嵌ってた人がいたね。
新規だったらATtiny2313にしたら?こっちなら内蔵RC発振付きだし、他にもいろいろ
使いやすくなってるから。
>>637 どこにつないでいる?
mega128の場合、MISO/MOSI/SCKではだめだよ。
データシートを読もう。
641 :
638:2006/09/19(火) 15:02:11 ID:0AkrVhpV
>639
ありがとうございます、セラコンの10MHzあたりを付けてやってみます。
ISPライタの製作例はいっぱいあるのですが、ZIFソケットでの作例が
少なくて悩んでました。
90S2313は安さにひかれたもんで
>>640 データシートのシリアルプログラミングの部分読んでる。
で、シリアルのHC126では正常に読み書きできるけど、USBaspではダメだった。
-d10とかにしても同じ表示、ケーブルは同じのを使ってる。
>>642 >シリアルのHC126では正常に読み書きできるけど
ということはちゃんとPDIとPDOピンを使っているのですね。失礼、
>>637にも書いてあった。
うーん、なんでだろ?
630です。
レスども。
少しは調べて、セラロックやクリスタルについて詳しくなりますた。
でも地味なものだけに、情報を見つけるのに苦労します。
言葉の区別としては、
水晶発振子:水晶だけ。2端子。
水晶発振器:水晶に発振回路を組み込んだもの。4端子(+,−,OSC出力,OSC制御/NC)が多い。
かな
Tiny45だと1Vppぐらいの正弦波だけどAT90Sは電源電圧近くまで振るよ。
>>647 だね、ヒューズを水晶ではなく外部クロックに設定すればOK
>>646 > 水晶発振子:水晶だけ。2端子。
最近は、あまり「発振子」と言う言葉は使わないみたい。もともと(crystal) resonator
のことだから、「共振子」もしくは「振動子」が好まれて使われているよ。
あと、3端子の共振子とかもあって、一見しただけだと発振器と見分けがつかない
やつもある。
> Tiny45だと1Vppぐらいの正弦波だけどAT90Sは電源電圧近くまで振るよ。
TinyはダメみたいだけどATmega168なんかを見ると、LowPower osc. modeと
Full swing modeが選択できるよ。Full Swing modeにすると電源電圧までR2Rで
振ることになっている。
たしか、AT90Sxxの頃はXTAL2の出力から外部のチップにクロック供給できた
ように記憶しているけどデータシートを見るかぎり、この機能はmegaのFull Swing
modeじゃないと使えなくなっているみたい。
>637,642
>avrspx: error: programm enable: target doesn't answer. 1
>Device connection failed.
このエラーは一番最初のEnterProgrammingモードで起こっています。
このルーチンまではmega128とmega48/168ではソフト的には同じです。(avrspxもusbaspも)
現在手元にあるmega64では問題は見つかりませんでしたがmega128の手持ちがないので確認できません。
USBaspのファームのバージョンを教えていただけませんか?
>>650 ライタ側とPC側も両方とも
AVR-Wikiからダウンロードしたavrspx_b10_10を使っています。
>>651 USBasp側の ispEnterProgrammingMode(void) でうまく認識できない状況のようですね。
mega128特有の問題ではないと思うのですが原因が不明です。
mega128が入手できたら確認してみたいと思います。申し訳ありません m(_ _)m
また、どなたかusbaspのmega128での情報がありましたらお知らせください。
ATmega128をavrspx -pu -d1 -rf すると
Low_ 11100100
High 10-11001
Ext_ ------11 になりました(内蔵8MHz,BOD2.7Vの設定です)。
トリプルで動かなかった人だと思うけど,トリプルでもUSBaspでもATmega128は書けるので
ISP回路に余分なものを付けてないとか
HC126シリアルでヒューズを調べてみるとかヒントが欲しいところです。
半田付け不良に1票
655 :
774ワット発電中さん:2006/09/20(水) 12:41:37 ID:hZSf4nAu
>>653 ISP回路は直接ピンヘッダにハンダづけしています。
周辺回路無しでとりあえず認識だけできるように接続。
ヒューズはHC126で書き換えて以下のとおり。
Low: 01100000
High:01-11001
Ext: ------11
クリスタルオシレータで16MHzを入れています。
トリプルライタでもmega48と168は読み書きできて128は出来ないといった状態です。
試しにHC126で
>>653さんの書いたヒューズを書き込んでもUSBaspでも同じエラーでした。
656 :
774ワット発電中さん:2006/09/20(水) 12:42:49 ID:hZSf4nAu
訂正
×:ヒューズはHC126で書き換えて以下のとおり
○:ヒューズはHC126で読み込んで以下のとおり
>>655 リセットピンはどうしてますか?
(何かISP以外に接続されてる?)
>>657 RESETピンは10KΩでプルアップしてます、
PENピンも10KΩでプルアップしてみましたが同じ結果でHC126で認識できてUSBaspではエラー表示。
ほかのピンは繋いでるといっても認識ができたときのために液晶接続用のピンヘッダに繋いで液晶未接続で試しています。
659 :
653:2006/09/20(水) 18:24:59 ID:1zihT8Zc
16MHzのOSCがあったので繋いでみたけど変化なし。
ヒューズ設定の内蔵デバックやJTAG許可を変えてもMega128を認識する。
ヒューズはあまり関係なかったかも・・・
自分もResetは10kでプルアップです。PENは開放のままにして実験しました。
諦めてHC126を使えるデスクトップで書き換えるかな
本当はノーパソでやりたかったけどシリアルポート死んでる……orz
HC126で書き込んだプログラムがUSBaspをつないだ状態でRUNしていれば
クロックは働いている訳だし電源に問題もないと思います。
ISP直結だけだと出力能力の違いや入力レベルの違いも関係なさそうだし
Enter方法に違いが有るようにも思えないので不思議ですね。
662 :
646:2006/09/20(水) 22:29:38 ID:2HIprV0B
>>649 20年前の本でも水晶振動子の方が多かったです、すみません。
水晶は曲がる素子なので振動子はしっくりする表現ですね。
今回初めてマイコンを弄るので、何が何やらな状態で分かっている人にはおかしな文かもしれませんが誰か返答願います。
AVRを使ってみようと思い90S1200と90S2313、セラロックの4MHzを手に入れて
ChaN氏の簡易ライターで書き込もうとしたところ
Device connection failed.
と表示されます。色々と原因がありそうなのですが何がおかしいのでしょうか?
VCCはUSBの3.3Vを取っています。
セラロックは真ん中をGNDに、両端を7と8番ピンに取り付けています。
配線に関してはテスターで調べる分には正常に見えます。
ノイズに関しては10センチも伸ばしてないので大丈夫だと思います。
>>663 セラロックは4番5番ピンだよ
あと、USBバスパワーは5Vだと思う
3.3Vだったら信号線のほうをつないでない?
何十回確認しても駄目だと思って
>>664見ておかしいなーって
もう一度データシート見たらTimy26Lって書いてあったああああああああああああああああorz
ありがとうございました。
何か詰まったらまたきます。
>>663 ライターのソフトは何?
90S1200にavrspだと古すぎるのかパラレルライタじゃないと読み書きできないような。
AVR Progだったら認識できたけど。
追記でAVR Progで使ったライタはトリプルライターを使用
668 :
663:2006/09/25(月) 12:34:05 ID:ra8KLuwo
今度は90s1200のデータシート見ながらやりましたが、デバイスの認識してくれませんでした…
Device connection failed.と出ます。
今学校なので出来ませんが、家に帰ってから今度はVCCに単三電池3本でやってみようと思います。
>>666 LPTポート制御 ISPアダプタのオリジナルアダプタの簡易版でavrspで書き込もうとしています。
AVR Progだとオリジナルアダプタは使えないと思われます。
とりあえず現在の配線の内容は
パラレルポートから抵抗入れてMISO,MOSI,SCK,RESET,GNDを繋ぎ
セラロックの両端をXTAL1と2に繋ぎ真ん中をGNDに繋ぐ
VCCにUSBの+端子を繋いで電源にする
これ以外には何も繋いでいません。
>>663 ChaN氏の簡易ライターにも何種類かあるけど、どれ?
電源がUSBからってことだけど、USBは5Vなんだが・・・・
USBシリアルICか何かが供給する3.3Vか?つーことはシリアルライタ?
簡易シリアルライタ(125/126を使う奴)は、USBシリアルだと素直には動かないよ。
使っているUSBシリアルアダプタと、avrspに与えているパラメータをここに
書いてみてください。
>>668 ってああLPTポート制御の方かぁ。
ノートPCだとうまくいかない例が報告されている。
USB-パラレルアダプタ経由ではおそらく動かない。
抵抗経由で繋いでいるのはMISO/MOSI/SCK/RESETだけだよな?GNDまで抵抗経由にしてないよな?
抵抗値はChaN氏推奨通りですか?高すぎるとプルアップがあるRESETがうまくいかない可能性アリ。
USBから電源与えているようですが、USBのGNDとLPTポートのGNDが同レベルという保証はありますか?
たぶんないと思うので、そのやりかたはどうだろう?電池でも使って電源与えてみてください。
追加
電源パスコンはついていますか?
90S1200は内蔵発振モード品ではないですか?もしそうならセラロックは無効。デフォルト値では書き込めない可能性あり。-d optionでディレイかければいい。
LPTポート制御はH電圧が低いパソコンが多いので、電池2本にするか
ダイオードをかましてVCC電圧を下げたらどうでしょう。
単3電池3本だと5V超えるやつがある。
>>670-672 レスを貰ってから弄って
-d100オプションをつける(これ以降ずっと)
パスコンとして10pFを入れる(これ以降ずっと)
何度もハンダこて当ててるから壊れたかなとセラロックを変えてみる(変わらないから取り合えず戻す)
USBにダイオード入れる(2個までやって駄目っぽいから外して次へ)
電池2本、3本の両方を電源として使ってみる
パソコンはデスクトップのやつです。
こっちに入ってたPSXPadが怪しいと思って昨日アンインストールしてます。(それまでプレステパッド認識して使えてたのでパソコンの問題ではないと思います)
LPTポートのときは-pl<n>オプションがいるよ。
Win2000,XPだとgiveio.sysも必要になる。
パスコンに10pFは小さすぎるので0.01uF(103)や0.1uF(104)がいいと思う。
>>667 トリプルライターならS1200はどれでも書けるよ。
SPIブリッジなのでavrspのときは-pb<n>オプションがいるけど。
>>674 エラーメッセージが
No ISP Adapter云々に変わりましたがやっぱし接続されません…
AT90USBKEYを買ってみました。
さて、なにしてあそぼうかなー
678 :
774ワット発電中さん:2006/09/26(火) 07:25:16 ID:RmdT0Oyn
これってUSBaspのぱくりじゃないよな?
書き込みソフトがGUIってところが頑張ってるな。
写真に水晶が見あたらないけどひょっとして内蔵クロック?
基板裏にUSB系のチップがあるのかもしれないけど。
megaが苺の方が安いけどAVRもちゃんと追加してくれたのか。
ファームもPC側ソフトも全部自力開発だったら、デジット侮りがたしだが。
デジットオリジナルのキットでは初の快挙だ。
もともと共立三店の中でも最も強力にAVRを推していたし、AVRフリークの店員がいるのは知ってるが。
682 :
663:2006/09/26(火) 18:28:13 ID:R/X/IN4F
何をどう弄っても解決しないので
とりあえずCOMポート制御ISPアダプタを作ってみる事にしました。
コレで駄目ならISPアダプタから先(電源かセラロックか配線)
コレで上手くいったら手前(抵抗か配線)
と言うことで今作ってます
プログラムROMの書き換え回数をオーバーしたらしく
書き込みエラーが増えて,とうとう書き込めなってしまった...
と同時にROMの読み出しもできなくなったのですが
これって普通の現象(?)ですか?
684 :
674:2006/09/26(火) 20:32:55 ID:meG3v/ZV
LPTポート制御 ISPアダプタは使ったことなかったので抵抗4本で作ってみた。
結果は5Vでも4V(ニッケル水素電池x3本)でもS1200,S2313を
Win2000のノートパソコンで認識しました。
>>エラーメッセージがNo ISP Adapter云々に変わりました
D-SUB 25pinの9〜12間さえジャンパーしていれば AVRにつながなくても
AVRSP adapter was found.になるので、つなぎ忘れだと思う。
685 :
663:2006/09/26(火) 23:02:13 ID:R/X/IN4F
動いた!動いたよ!!!
と言うわけでISPアダプタより手前がおかしいらしい。
取り合えず確認なのですが入力するコマンドは
avrsp.exe -r -pl1 -d100
で良いのですよね? avrppって言うのがあるからパラレルポートはこちらかなと思ったのですがこっちでも動かない…
686 :
663:2006/09/26(火) 23:19:16 ID:R/X/IN4F
>>684 9-12のジャンパって何のことだろうと思って再度回路図を良くみたら左のほうに戻ってるのがありました。
繋いだら今までのがなんだったのだろうと思うくらい簡単に認識しました。
とりあえず両方とも使えるようになりました。ありがとうございます。
また何か詰まったら聞きに来るかもしれませんが、よろしくお願いします。
(((何でこんなミスに気が付かなかったんだろorz
687 :
684:2006/09/27(水) 00:35:56 ID:a1RxJ8Fb
>>663 動いてよかったですね。
D-SUB 9-12のジャンパーは自分も最初は配線してなくて認識しなかった。
自分は8MHzのセラロックつけているのでavrsp -r -pl1 -d1でも動きました。
>>683 詳しくは分からないけど、書き込み回数が多すぎて,
フラッシュがメモリとして機能しなくなった(=壊れた?)の
なら、読み込みもできなくなる、もしくは読み込めたとし
ても内容は保証されないんじゃないかな?(たぶん)
何回くらいで,その現象が起こったんですか?単純に書き込み回数を
知りたいんですけど。自分は誤って壊した事はあるけど、書き込み
回数で使えなくなった事がないので・・・
>>687 9-12ジャンパーってのは、複数あるLPTライターを判別するためのジャンパーです。
avrspが対応しているだけで4−5種類あったと思う。
>>688 データシートだと10,000回(tiny26)とかだよね。一日100回消去と書込み繰り返すと3ヶ月かぁ。
1日100回ってどんな使い方だろう……。
1日100回書き込むことがあっても数日でやることなくなりそうだし。
692 :
683:2006/09/27(水) 14:02:07 ID:dkiBhXMw
>>688 DIPタイプの ATmega8535 で大体500回くらいは書き換えました。
多く見ても1000回は越えないはず。
(いや、もちろん書き込み回数を越えたのではなく
自分で知らないうちに壊した可能性もあるわけですが…
まあもう1個買ってきますorz
ダメになる少し前は
・書き込み後の Verify に失敗しやすい
・デバイスの認識に失敗しやすい
といった状況でした。
(ISP-COM で書き込んでるのですが)
avrsp.exe -r は次第に失敗することが多くなってきて、
(失敗すると Device not connected とか Unknown Device (xx-xx-xx) と表示される)
何回か実行してようやく通常どおり表示されました。
今はもう何回やっても Device not connected ですorz
693 :
774ワット発電中さん:2006/09/27(水) 14:47:50 ID:I0EdxlO8
久しぶりに Digi-Key を覗いたら、tiny2313がmega48よりも単価が高い。
25個の値段ですが。
DIPでは、大きさ以外に2313は取り得がないようです。
以前はtiny2313が163円くらい、mega48が200円くらい
だったと思うのですが。高くなっているのですね。
単に壊れただけだろ。フラッシュの寿命とは直接は関係ないと思うぞ。
現在mega644を使っていて、
PORT不足からmega64を使ってみようと思ったのですが、
上に書いてあるように、
シリアルプログラム使う場合MISOとMOSIじゃないんですね。
後は気になったのがpen端子。
使い道がよくわからんのですけど、lowにしておかないと、
シリアルプログラミング出来ないってことですかね?
イマイチこの端子の存在意義がわからないのですが、
誤書き込みを防止する為?
mega128使ってるけど
PENはオープンにして使ってる
ISPのリセット端子も普通にリセットピンにつなげて書き込みできてるよ
普通にプルアップなりプルダウンなりしようよ
内部でプルアップされてなかったっけ!?
699 :
774ワット発電中さん:2006/09/29(金) 18:37:53 ID:phEXbyqY
>>698 RESETも30K〜60Kで内部プルアップされてて外付けでもプルアップしてるのに、
なぜPENには10KΩを外付けしないのかについて(略
700 :
774ワット発電中さん:2006/09/29(金) 18:42:52 ID:phEXbyqY
>>695 RESET未接続でPENにISPのRESETを接続してもなぜか読み書きできる。
何のためにあるんだろうね。
>>699 RESETに外付けプルアップしてる誰が書いてる?
それと俺は内部でプルアップしてるよねって書いただけだが
702 :
774ワット発電中さん:2006/09/29(金) 20:59:16 ID:phEXbyqY
>>701 RESETに10Kのプルアップしてないの?
PENの話してるのに、論点をずらす奴だな、おまえは!
∧_∧
( ,,・∀・) そんなに怒るなよ、茶でも飲んで落ち着こうよ
( つ旦0
と__)__)
695です。
penは謎ですな。
取り敢えず色々試し見ます。
外付けSRAM付けようと思ったら、
ポートが足りなくてMEGA64にしたんですけど、
MEGA64ってSRAMインターフェースあるんすね。
74xx573使っていい感じにするらしいんだけど、
ハードはよくわかってないんで、
素直に適当なポートに直結しようかと思ってます。
でもSRAMアクセス中に割り込みが発生して、
割り込み中にもSRAMアクセスされたら・・・
そうすると内蔵のインターフェースがいいのか・・・
(割り込み禁止でもいいと思うけど)
日本語訳が謎な時はきっと原文を読めば
AVRってツンデレだったのか…
ATmega8の成分解析結果 :
ATmega8はすべてやましさで出来ています。
成分解析 on WEB
ATMEGA644の解析結果
ATMEGA644の99%はカルシウムで出来ています
ATMEGA644の1%は果物で出来ています
カルシウムか・・・
>ベステクさんのMega128ボードのマニュアルに回路図あるよ(74LV573+62256)
遅レスですが見ました、74HC573のデータシートも見て理解出来ますた。
\4500か・・・ 基盤の裏をワイヤーアホみたいに飛ばすくらいなら、
考えても・・・ イヤイヤ高いなぁ。 プリント基板だけ売って欲しい。
英語ドキュメントは、こちらが読み違えすることあるんで。
(低い語学力のせいで)
変な日本語で嵌った時は両方見るようにします。
ATMEGA128の成分解析結果 :
ATMEGA128の81%はツンデレで出来ています。
ATMEGA128の14%は明太子で出来ています。
ATMEGA128の3%は花崗岩で出来ています。
ATMEGA128の2%はやさしさで出来ています。
8割ツンデレか
CQ出版の雑誌添付おまけにがっかりして
デジットのAVRライター買ってこれから始めようと思うんだけど
他に必要なのは7セグLEDと
ほかどんなのですか?
とりあえず、PCの電源投入連動動作をデジタル回路として作りたいので
フォトモス二個一パッケージとかって考えて居るんだけど
この程度なら普通のボタン操作でいいじゃんと理性がじゃまをする
複数の周辺機器を順次電源投入するような装置?
今、パッと思ったけどそんな感じです
これもパーツだけで組めるのだけど
EEスイッチで蛍光灯つける所に7セグLEDで24時間タイマー表示と入り切り時間設定5パターンくらい設定とか
もやりたいなとかボヤーとしたものは有るんだけど
CQ出版雑誌の添付基盤企画のいい加減さに嫌気さしたってのがあります
周辺機器を順次電源投入しないといけないことってあったっけ?
6連OAタップでBIOSの設定でAC電源が通電したらパソコンが勝手に起動するようにしてる。
たくさんのハードディスクのスピンアップ時の負荷を分散するやつとか・・・
こんど作ってみたいな。
HDDを一度に起動すると家のブレーカーが落ちる。
たくさんつなげるシステムならBIOSで起動タイミングずらせるのがあたりまえなわけだが
秋月でATTINY2313 120円だよ〜ん
マイコンとは思えない値段だな〜
>>722 明日36個買うのがいたら自分です^^
下手なICより安いしもうロジックだけなら全部マイコンで作った方が安くつくな
26Lも値下げしてくれよ・・・
729 :
774ワット発電中さん:2006/10/05(木) 19:44:49 ID:EJXSXobf
よし!CPUの創りかたの実験基板を安いATtiny2313で代用して創ってみよう!
あれ?
マイコンで作るCPU!
好評発売中
マイコンはCPU+I/Oじゃなかったっけ?
あれ?
>>727 何故に36個?・・・18個×2?
18個以上なら19個でも20個でも @\110 だけど
>>727 店頭に在庫があったか報告してね。
あったら、買いに行こうかな・・・
>734
USB-RS232チップを使用し、汎用SPIブリッジの製作 >735 を見て作った方が良くない?
電源もUSBから取れるから、これ一個で電源+書き込み+printfデバッグ可能。
737 :
774ワット発電中さん:2006/10/06(金) 19:49:48 ID:xjZ9+QEZ
ライタは次の3つがお勧め。とにかくやすい、ほとんど\1000まで。
ChaNさんのCOMポート制御ISPアダプタ。COMポートがあるとき。
ChaNさんの汎用ISPブリッジ。avrに書ける条件があればベスト。
USBasp。USBだけなら、もっとも安価。工夫すればゼロからでも作れる。
ども、レスありがとござんす!
バカだな俺
ChaNさんのサイトは何度か利用しているのですが、同一人物とは気づきませんでした。
作るとしても100円ライターならパーツボックスの中ので何とかなるかなと思っていたのと、
ChaNさんの回路図は作るのは面白いのだけど、
他の安く出来る選択肢が無ければと思っていたのです。
で、現在はAVR書籍買って読むのが先だなと方針修正中
739 :
774ワット発電中さん:2006/10/07(土) 01:27:44 ID:aeNrRq71
いまは、USBaspとデジットのUSB版ライタがオススメ。
ほかのだと電源やら相性とかがあるから。
>現在はAVR書籍買って読むのが先だなと方針修正中
AVR書籍は古いチップばかりだったり全部アセンブラだったりでオススメできない。
基礎部分ならこっちのページとか
http://www.apony.com/index.shtml あと日本語データシートを全部印刷して何度も読み返すとか。
WinAVR落としてAVR-Wikiを読むとかGoogleで使用例を調べるとか。
個人的にはチップはmega48や2313などがオススメ。
書籍も古い情報のばかりなのか
悩みどころですね
とりあえず、AVR関連ウェブ一通り見てきます
743 :
774ワット発電中さん:2006/10/07(土) 14:34:46 ID:solUzRtx
秋月店頭にてATTINY2313PC-20AUを確認。全数確保しますた。
↑2313-20PUね
店頭在庫を全部買い占めたのかよ('A`)
マイコンでLCDを制御しようと思うのですが、
よく売られている16×2のキャラクターディスプレイ上で日本語の表示は可能なのでしょうか?
そもそもプログラミングの段階でちゃんと日本語のEUC,JISを認識するのでしょうか?
釣り?
>>747 いえ、そんなつもりはまったくないわけで。
>>749 つまりこれはキャラクターディスプレイでは全角日本語表示は不可能というわけですか・・・OLZ。
白黒ディスプレイに日本語表示させたいんですが、なんとかならんですかね?
秋月のドットマトリックスLEDとかを使うのはどうか
グラフィックLCDなんてものも売っていたな
フォントを自分で用意しなければならないような気もするが
フォントを自分で用意ってずいぶん手間がかかりそうですね。
マイコン使う人たちはあまり日本語をLCDに表示することってないんですかねえ
なんかマイコンやLCDに幻想を抱いてるな。
文字コード云々はマイコンにとっては単なるbitの並びでしかない。
プログラムで好きなようにコード変換しれ。
LCDに漢字表示したくばビットマップ表示可能なLCDにイメージとして表示させるのが近道だろな。
漢字ROMを持ったモジュールはあるけど入手性、価格の面でアマチュアには一般的ではないよ。
>>752 つ「漢字キャラクターディスプレイ(漢字ROM内蔵)」
>>753 ただ漢字を表示するだけじゃだめなんですよ。最終的には青空文庫にあるような
テキストファイルを表示させて読みたいなあと考えてます。
>>754 検索してみたのですが、あまりヒットしないっす。
目的や用途も書かない質問者にみんな親切だなw
サイズや電力で全く選択肢が変わるだろ。
>>755 すみません、用途や目的を書かなかったおかげで、それはちょっと
>>757 ごもっともです
目的は先ほども述べたようにテキストファイルを液晶に表示して寝転がってよむことです。
したがって電源も単4電池4本くらいで30時間くらいもつようにしたいです。
おかあちゃんの読んでもらったほうがいい
>>758 それだと2行ほどのLCDモジュールじゃ実用性には程遠いだろな。
すまんが、あらゆることを勘案して、ノートPCやPDAではだめで、わざわざ作る意義がわからん。
持ち歩きで使用するわけではなさそうなので、電源もAC電源で良さそうだし。
それとも、
・(文化祭などでの)発表ネタ?
・障害者用途?(大きい文字で出したいとか、行送り操作をボタン1つで行いたいとか)
あと、データ供給はどう考えてるの?PCならなんでもないことだけど
AVRにSDカードとか繋ぐこと考えてる?
あとこの手の自作機器で乾電池で30時間とかは相当ハードル高いぞ。
どう頑張っても専用設計のPDAとかには勝てそうにないよ。
ノートパソコンは消費電力、大きさからしてダメです。本を読むように寝転がってよめないです。
AC電源もケーブルがじゃまになります。
PDAなんですが、手元にザウルスSL-C700があるんですが、電力消費がいかにも激しいわけで。
専用設計のPDAで思いついたんですが、古いPDAは白黒でOSもコマンドラインでいかにも低消費電力
と聞いたことがあります。たしかにそれを使えば良い話ですな。
アドバイスをくれた方々ありがとうございました。
そういう用途に使える液晶ってほとんど手に入らないと思う。
松下のΣBook か SonyのLIBRIe や 適当なPDAあたりの安売りを狙うとか
CASIOの電子辞書の上位機種なら「コンテンツプラス」のテキストビューワ
で青空文庫読めたはず。
763 :
774ワット発電中さん:2006/10/07(土) 17:29:17 ID:aeNrRq71
こういった部品は産業用であって個人用じゃ無いしな
>>756 とりあえず手っ取り早いのとしては、LCDじゃないけど、
ノリタケ伊勢電子のVFDでも買え。
>>761 って消費電力かぁ。高精細のはたいがいバックライトで電気食い。
PC-286NoteFの中古でも転がっていないかな(w
大学帰りに2313買って来ました。90s1200の上にあるんだけど値札(部品名も)外されてました。
>>743対策だと思われますが、ケースの中には10個程度しか置いてありませんでした。
「大量に欲しいのですが」と言ったら「何レールくらい必要ですか?」返されたので在庫はまだあるが、大量購入お断り的状態の模様
寝転がって読むんなら、バックパネルはずして光を透過させちゃえよ。
オイラが見たときも数個しか無かったよ。とりあえず、2個確保。
>>766 「何レールくらい必要ですか?」と聞いてくるくらいなんだから、大量購入スタンバイ桶なんだよね。
まあ確かに大量といわれればレールで買うんだろうとは思うよな
レール買いといっても、多くても50個単位だろ?
たいした量じゃないじゃん
まあ秋月からAVRを数万個とか買う奴もそうそういないだろう
772 :
774ワット発電中さん:2006/10/08(日) 04:05:22 ID:prLnZZg9
いたらいたで面白いな
秋月も大喜びだな
「何レールくらい必要ですか?」 というのは文字通りの意味で、別に在庫があるとは限らない件
775 :
774ワット発電中さん:2006/10/08(日) 08:40:56 ID:99JJwZHx
商社にルート持たない弱小がそんな大量に買えるもんかw
どうせヤホオク転売厨だろ
776 :
774ワット発電中さん:2006/10/08(日) 11:42:30 ID:prLnZZg9
ヤフオクに出しても出品手数料やらで赤字のような気がする
YAに出したら
落札後の送料などの手数料考えるから
出品者は赤字で出さなければいけないぞ
買い占めたバカは単なる嫌がらせで、普段から周りに避けられているいやなヤツだと
FBI犯罪心理学担当の俺が無償でプロファイリング
50個くらいなら普通に使い切れるだろ
デジットに行ってAVRのリファレンスブック立ち読みしてきました!
ついでにAVRライタも見てきました。
そのときに、70KやNECのH6C(だったかな?)の開発ボード付き書籍を見つけたのですが
なんかもー、半端なトラ技の添付を買い求めるよりもきちんとまとまっているこういうのがいいですねと
グラリと傾いてしまいましたよ!
AVRでもこういった開発ボード添付書籍あればいいのに
確かに月刊誌の付録物は記事が中途半端でいかんね。
ChaNさんのCOMポート制御ISPアダプタを作ってtiny2313を接続し>avrsp -r
してみたのですがDevice connection failed.がでます。何か足らないものがあるのでしょうか?
アダプタのスイッチをONにしてテスターを当ててみたところ、tiny2313の20番、74HC126の1,4,10,13,14番は5V出てました。
avrsp.iniは
-pc1
-d3
-w
です。ISPと2313の接続は間違っていないと思います。
俺もそこでハマった
avrsp.iniの
-pc1を-pv1に変えるんじゃなかったかな?
783 :
781:2006/10/08(日) 23:02:38 ID:/HdIb8H4
>>782 ありがとうございました。ハマりから抜けられました。
785 :
774ワット発電中さん:2006/10/09(月) 01:42:49 ID:zg7rwo0w
>>781 -pc1の時はgiveio.sysが必要です。
秋月でtiny45扱ってくんないかな
giveioが必要だったら怒られるだろ。
PICから移ってAVRお勉強中。
テストボード作って、LCD表示ルーチン作ってたら
ストローブEの幅が450ns必要と。
秋月の安かったオシレータ11.776MHzだと1サイクル85ns
EのON,OFFの間に RJMP PC+1を3回も入れた
速すぎだAVR。
$+1じゃなくてPC+1にたどり着くまでを2時間
チラシの裏 ごめん
聞いてくれ!
念願のパラレルボード(キャッチフレーズはPCI増設タイプ)を手に入れたぞ!
これで、俺の10マンパワーにAthlon64@4200Mhzの20マンパワーを掛け合わせ
最後にパラレルボード(キャッチフレーズはPCI増設タイプ)を積み重ねることで
100万超人パワーに大体近づいたことになる。
あとは、中央図書館に延滞貸し出し中のAVRリファレンスブックが帰ってくるのを待つだけだ
>>788 お、本当だ
でも1個340円で-10PIならオプティマイズの方が安いな
792 :
774ワット発電中さん:2006/10/09(月) 18:32:12 ID:CVAF2r85
>>791 送料が定形外郵便でOKなところがポイント
>>789 俺もPICから移ったけどPICが遅すぎるだけだよw
>>789 AVRなら、WinAVRなGCCでやったほうが楽。
>793
最初はせっかくだからアセンブラでやってみたい。
昔6809使ってたから結構いい感じ
ただ いっぱいあるレジスタを使うのは無理だな
インデックスレジスタを除いて 自分で管理できるのは
4つくらいが限界かな(^^;
>>794 お疲れ。
アセンブラでやってもAVRの良さはわかる。
普通にアセンブラできるからね。
>昔6809
お仲間ですね。その後Z80/8080さわって目眩がした記憶が。
> いっぱいあるレジスタを使うのは無理
アセンブラなら頻用する変数をどんどんレジスタに割り当てると足りないくらいになる。
LD/ST命令が許せなくなります(w
>>795 どの命令がどのレジスタを使えるのか覚えるのが嫌。
.def hoge = r10
AVRはマシな方だと思うけど。
PICとかx86とかと比べると。
PowerPCとかMipsとかは完全に制限が無いな。
整数演算に少数レジスタとかは使えないけど。
C言語とごちゃまぜで使うときは、
このレジスタは壊しちゃ駄目とか色々あるから、
結局自分で退避したりして使わなきゃいけないけど。
PICもあのC言語前程で書けば、変態度は大分下がるんじゃないか?
バンク切り替えとかも自動でやってくれんのかね。
バンクの壁はめまいがするね
800 :
774ワット発電中さん:2006/10/11(水) 15:13:52 ID:g3rNbyic
プログラムエリアやメモリのアドレスも途切れ途切れだったり変態アセンブラだったからAVRに乗り換えたんだよな〜。
801 :
789:2006/10/11(水) 18:08:11 ID:fqQ5AZEI
PICのアセンブラ自体は嫌いではなかったよ。
キャリーフラグとか減算とかはとまどうけど、パズルを組み立てるみたいで
楽しい面も。実用性は??だけど、趣味の世界なら許せる。
802 :
774ワット発電中さん:2006/10/11(水) 19:56:51 ID:g3rNbyic
>>802 その人はAVRに慣れてるってか、デジタルアッテネータに
当時のPICより高速なCPUが必要だったからAVR使ってたんだと思。
>目的は先ほども述べたようにテキストファイルを液晶に表示して寝転がってよむ
今更だけど、320x240液晶を制御して遊んでいて、消費電力は20maらしい。
これくらい解像度があるとテキストもそれなりには、表示出来ると思うけど、
これでもそれなりに電池は速くなくなりそう。
話は変わって0.5vの波形、11vと更には5vの波形の立ち上がり回数をAVRでカウントしたい。
5vは直結して、INT割り込み(立ち上がり)ですんなりいくんだけど、
11vと0.5の波形はどうしようと考えた。11vは分圧、0.5vは・・・トランジスタで増幅してとか思ったんだけど、
よく考えたら、11v入力の場合でも、11vをトランジスタの入力側に、出力側の電源は5vに。
これなら、出力側に繋げたAVRに対しては5Vしか流れない事になります?
要は11vを5vに減衰させるの用途にトランジスタは使えるのでしょうか?
もっと簡単に書くと0〜11vの波形を0〜5vの波形にトランジスタ一個で変換、
出来ますかって事なんですが・・・(欲しいのは一秒間に何回波形が立ち上がるか)
AVRと言うよりトランジスタネタかもしれませんが、よろしくおねがいしまふ。
>>804 その信号源は電流はどれくらい取れるの?
・11vをTrで5Vにレベル変換可能か
→可能。Tr1コと抵抗数本でok。ただし信号源インピーダンスが非常に高い場合は工夫の必要。
信号レベルが11v固定で変動しないならお前が書いているように、抵抗分圧でも可能。
また直列に抵抗を入れてそのままAVRの入力ピンに入れても、多分AVRの入力保護Diで
クランプされるからそれでもok。不安ならクランプDiを外につける。
・0.5vを・・・
→手っ取り早くやるならボルテージコンパレータ使えば?
Trでも1石で可能ではあるが。
・0.5vを・・・
ソフトでカウントするならAVR内蔵のコンパレータが使えるはず。
信号源のインピーダンスが高い場合は、FETを使うのはどう?
トランジスタと比べると、ゲートに流れる電流は、圧倒的に
少ないと思うけど。
>>807 FETって、2SC1815あたりでプリドライブしないと、ワンチップマイコンからの直接ドライブは厳しいってことないですか?
電圧制御というより電荷制御よね
ゲート容量の小さいFETを低速でスイッチするならプリドライブは要らん
でも抵抗は入れてあげて
>>810 >ゲート容量の小さいFETを低速でスイッチするならプ
千石あたりで買えるやつで、何かオススメはありますか?
じゃあ2SK30にしとく
OFFも入るんじゃ?
>>804 その電圧源に抵抗経由でデジタルトランジスタのベースに繋いでやればOK.
エミッタ接地、コレクタは入力ピンにつないでAVR内部プルアップとか。
これで問題なのは電圧源の電圧ではなく、ベースに流れる電流になる。
と思ったけど0.5Vの方はバイアスがいるからちょっとややこしい。
0.5Vについてはアナログコンパレータを使うという手もある。
信号がスパッと切れていなければ、シュミットトリガなどで波形整形がいります。
(アナログコンパレータじゃなくてもそうだけど)
>>814 ・・・という内容を805に書いてあるではないか。
804でございます。
色々レスくれた皆様ども。
取り敢えずトランジスタでいけそうですね。
0.5vの方は言われた通りバイアスがいるかもしれませんが。
コンパレータはいちいち結果を監視しないといけないから、
使えないかと思ってましたが、INT割り込み同様立ち上がり割り込み
みたいな事が出来るんすね。
取り敢えずトランジスタでやってみて、いけてなかったら、
コンパレータとかFET試してみます。
インピーダンス高い場合ってのをよく理解してないんですが、
信号の電流が低い(流れにくい?)場合って意味であってます?
(一応調べたんですが無知ですんません)
#最近SRAMやら液晶やら無計画に付けてたら、
#ワイヤーだらけの超汚い基盤になってもーた。
#綺麗に作るには計画的にやるしかないんかねー。
>インピーダンス高い場合
例えば100kΩの抵抗をGNDとつないだら消えちゃうような信号だと
何かで増幅しないと難しいかもしれない。
測定したいものがICかトランジスタの出力なら問題ない。
>0.5vを・・・
ベース電圧(約0.6V)より低いのでトランジスタでは無理。
0Vと0.5Vのデジタル的な信号か中間電圧もあるのかで答えは変わるかな
>>817 全部意味不明。
言わんとしていることは分からんでもないが、素人には混乱させるだけじゃねーか?
SRAMやら液晶やら付けられる素人とはこれいかに
>>816 >インピーダンス高い場合
結果としてはだいたいあっています。
その結論に達したと言うことは中身も了解済みですね。
>>816 ところで11Vと0.5Vってなんだろう・・・・
もしかして車関連で、0.5VがO2センサーならいろいろ工夫が要るかも。
0.5Vは普通にOPアンプ使うのも手。
増幅だけでなく、いろいろ出来るし。
でも、外付けコンパレータが一番無難かな。
素人でございます。
一応意味はわかりますた。多分・・・
SRAMや液晶は適当にネット調べてつけました。
320x240液晶は正直重いですね。 表示内容にもよりますが、
一秒に数回しか描画を更新出来ませんですた。
実は車関連です。
なぜか、前輪が0.5v、後輪は5v、エンジン回転数は11vパルスなんです・・・
で、コイルの出力のまんまと思いきや、センサー側でどーやら整形&増幅してる?
みたいなので、大丈夫だと思います。駄目ならまた考えます。
液晶は波形読み取れない時、ADC連続読みで波形表示してみようと思って買ったんですけど、
そもそもセンサーの電流が小さいとちゃんと表示されない可能性がありますわな。
そんな時にオペアンプと。
こちらもネット見て適当に使ってみたんですが、思い通りに動かなかったり・・・
>前輪が0.5v、後輪は5v、エンジン回転数は11vパルス
テスターで測った結果? 資料か何かに書いてあるの?
回路図は無いんですよね。
パルス幅とか周波数が分かると答えやすくなるかも。
>センサー側でどーやら整形&増幅してる?
”測定端子”だと短絡されても誤動作しないように10kぐらいの抵抗が
かましてあるかもしれない。
やっぱりコンパレータかオペアンプが要りそう。
しかし何で質問者って最初に用途とか書かないんだろうね。
>>825 アトメルジャパンかな?検索すると住所はあるんだけど。
>823
>エンジン回転数は11vパルス
エンジン回転数じゃ無くて、イグニションパルスだったりしませんか。
イグニションパルスならば、4気筒ならエンジン回転数の4倍か2倍かのパルス数になりませんか。
イグニションパルスが途中で不具合有ると、ECU(車載コンピュータ)を誤動作させてもしかすると
走行中にエンジン停止してハンドル操作が重くなって緊急回避が困難になるかも。
ttp://www.asahi-net.or.jp/~tw8i-ysd/CAR/MAKE/mater.htm を参考にすると
コンパレータ(LM339)を使って、9〜8v位を仕切り値にするのが良さそう。
電子回路の設計の腕が良ければ、直接AVRに入力出来るようにするのが良いですが、
ノイズと過電圧の危険を犯して信頼性を落とすのはどうかと思われます。
>前輪が0.5v、後輪は5v、
まあ時速120Km位までのタイヤ1回転あたり何パルス出力されるかだと思われます。
車速センサからの信号は、ABSブレーキ回路にも使っている?なので不具合有ると
ABSが動作しなかったり、ブレーキ動作不良になるかも。<事故時の保険金支払いの
査定に影響するかな。
ttp://www.fnf.jp/koji/speeder/speeder.html を参考にすると
0〜5vみたいなんですが?前輪センサ壊れてませんか?
AVRマイコンとの接続は、3.3〜10kΩの抵抗を介して接続が良さそう。
時速40km/hで、25.6Hz位の周波数になり、
上記のページだと、停止時にはハイ(5v)、ロー(0v)のいずれかの状態になり、
信号ショートで、エンジン警告灯点灯、オートマ「D」ランプ点滅、車速パルス異常の車載
コンピュータへの記録が起きたようです。
もう作った人いたのね。。。
6桁タコメーター&スピードメーター for AVR
ttp://www.red.oit-net.jp/y-mori/hard/avrts.html 回路図とか参考になるかも。
>825
秋月でTiny2313が安く出てきたのも、そのせいなのかな?
数さばけたところで、順次 Mega8やMega168 とかも 出てきたりするんだろうか
このスレの住人には業界関係者もいるだろ。
もしアトメルジャパンが拠点閉鎖になったらさすがに情報入るべ。
少なくとも俺の所にはそういう話は来てないぞ。
でも代理店は供給が途絶えないかぎり、顧客にそんなことわざわざ言わんか(;´Д`)
日本現法が連絡事務所に格下げになったとか、そういう話じゃないの?
>>825
最近ようやくPIC→AVRに移行完了したのに orz
詳細ご存知の方、教えてください
834 :
774ワット発電中さん:2006/10/15(日) 13:22:44 ID:LPBTks+w
別にAVRが入手できなくなることは無いだろうから気にしない
Micronみたいだな
>>824 実際測りました。(大事な事いい忘れましたけどバイクです)
上にも指摘がありますけど、情報小出しになってまいました。
テスターですけど・・・
タイヤを少し回すと、0vと5vを入ったり来たりします。
タイヤの角度によって5vで止まったり0vで止まったりするんで、
コイルの出力のまんまってことはないようです。
エンジンの方の波形は不明なんで、グラフィック液晶で波形表示して
みようかなと。(それ以前に細工しないと出ないかもしれませんが)
>>828 829 830
色々有用な情報ありがとうございます。
なんかそのものが乗ってますね。
あれから、ハードとソフト作ってます。
ハードは終わって、ソフト書いていて、
明るいうちに終わると思ったら、夜までかかりそうなんで、
試すのは明日の朝か、来週の土日になってまいそうです。
目的はマルチメータ+ロガーですね。
速度やアクセル開度など色々な情報を、
SDカードに記録してWindowsでグラフ化して見れたら面白いかなと。
その手のものはもう作っている人も居るからそういうのを参考にしたりすればいいんじゃないかな。
OBDからは取れないのかな?
やりたい事やらしゃいいがな
840 :
824:2006/10/15(日) 17:01:46 ID:xTtx+1T6
>836
返事どうも。0.5Vが難しそうですね。
AVRや回路についてはこのスレでいいけどバイクのセンサはバイク屋さんや
車関係の掲示版の方が良い情報もらえるかも。
841 :
774ワット発電中さん:2006/10/15(日) 22:51:18 ID:LPBTks+w
やりたい事があるうちはしあわせ
やりたいプロジェクトが大杉て、どれから手を付けたらよいのやら。
一つひとつ潰していくしかないかなぁ。
843 :
774ワット発電中さん:2006/10/16(月) 20:56:05 ID:YYcBWpvl
あ痛たたたwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwww
846 :
yasu:2006/10/21(土) 17:42:58 ID:Up+uIGTe
表面実装ATMega88で、なぜかISPENAがディセーブルになってしまう(^^;
パラレル書き込みしたくてもI/Oポートいろいろ配線されてるし・・。
なんでだ〜AVRStudioの操作手順がおかしいんか〜!
>操作手順がおかしいんか〜!
それしか有りません。落ち着いて。
AVR-ISPをお使いなら
選んでいるAVRが間違っているとめちゃくちゃなヒューズ値になります。
ProgramタブのDeviceがあっているか確認してください。
AdvancedタブでSignature BytesをReadしてみて
Signature matchesなら正解、
WARINIGならデバイスが間違っているか認識されていません。
ttp://radio.s56.xrea.com/radio/src/radio1084.jpg 先週、トランジスタについて、
車速やエンジン回転取得の為に質問したものですが、
テストで付けてみたところ、普通にとれました。
上はカウント数のテキスト表示とADC連続読みをグラフ化したところ。
非常に綺麗な波形でノイズゼロでした。
ローパスフィルタ?無しでさえ問題無さそう。
ただ、想像以上にパルスの数が多い。(タイヤ一回転で発生するパルスが多い)
前輪、後輪、エンジンと全部ひとつのマイコンで制御すると、
速度が200kmとか上がって(公道じゃないです)割り込み増えまくった時、
液晶の表示で既に処理がキツキツなので、どうしたもんか・・・
マルチCPUにするか、高速CPUにするか、なんとか頑張るか(クロックUP&ソフト改良?)
ソフトが悪いんじゃね?
どうしてもだめなら分周して入力してやれば?点火時期を制御するわけじゃないんだから
一回一回の信号のタイミングが重要なわけではないよね。
851 :
774ワット発電中さん:2006/10/22(日) 19:31:24 ID:ndk5gaXh
>>849 ある程度速度が上がってタイミングが詰まってきたら
分周するか周波数カウンタみたい単位時間のカウント取りにすればいいんじゃね?
いや、現状で特に問題が起きてる訳じゃないんですが、
液晶が320x240のクロックを発生させて、
それに合わせてデータを送信するタイプなんで、
Hsync割り込み以外(次のラインに移動する間)しかCPUが空いてない。
そこにパルス割り込みセンサー3個分、200km時は一秒毎、合計2000回くらいがプラス。
残った時間で液晶のダブルバッファの次のフレームを描画しなくてはいけない。
そうするとフレーム更新の時間がどんどん遅くなるなぁと。
(次のフレームバッファがなかなか完成しないので前のバッファを表示し続ける状態)
>どうしてもだめなら分周して入力してやれば?
分周器の存在はさっき調べて知ったのですが、
可変(0〜)のパルスでも問題ないんでしょか? 手に入り易いお勧めあります?
カウンタは事前に調べて知っていましたが、
これ使うなら、慣れたマイコンもう一個使って、
液晶表示用と、カウンタ用、マルチCPUってことでええかなと。
普通は液晶コントローラ使うのが普通だそうですけど。
853 :
774ワット発電中さん:2006/10/22(日) 19:56:19 ID:7ylqSgjM
なんでもマイコンにやらせないでロジックICでカウントしたら?
74HC74を並べてカウントさせてレジスタで保持してリセットをかけるとか。
>>853 ロジックICを並べる必要に迫られたら、CPLDとかFPGAをやってみるチャンスですよw
>>852 分周はパルス幅が毎回ばらばらでも今回の用途では問題ないよ。
>853で書かれているように74HC74が74シリーズではもっともスタンダードなF/Fだけど、
他にも1/10にしたり、いろいろ種類があるから74シリーズ規格表でも眺めて好きなの使え。
参考回路は、74シリーズICで作るデジタル時計なんかが工作ネタとしてありがちだからググッてみては。
>なんでもマイコンにやらせないでロジックICでカウントしたら?
ソフトはプロですが、ハードはとてつもなく素人なので、
初めて使うロジックICの挙動に悪戦苦闘するより、
マイコンで作った方が速いし確実かなと。
なにより100〜600円と値段が安いんで、
値段もトータルでは大きく変わらないようですし。
ぶっちゃけ、ロジックICの代わりですな。
>>856 ロジックIC使えん奴が、ぶっちゃけ、ロジックICの代わりって・・・
書いてて恥ずかしくないかw
858 :
774ワット発電中さん:2006/10/22(日) 21:51:07 ID:7ylqSgjM
マイコンで作った方が速いし確実と思ってるなんて………
別に恥ずかしくはないだろう
自分の不得意分野を無理に思考に混ぜると効率が極端に悪くなるのが事実だし
不得意を得意に変えてこそ、と言いたくはあるけど
ひとまず置いといて、とか言い訳付けて逃げたくなる気持ちは痛いほど分かる
ソフト屋さんだったらマイコン使ったほうがものができるのは速いし、
不得意なハードを使うよりは確実にできるよね。
>852
>マルチCPU
液晶表示専用+前後輪カウンタ専用+エンジンタコ演算操作で
低速パルス時は周期測定で、高速パルス時は周波数測定みたいに切り替えして
液晶表示の更新を優先にすると、格好良いかも。
ADC連続読み表示と、タコバーグラフ表示に、アナログメータ表示が出来ると凄いかも。
>>851 が書いた様に、AVR内部のカウンタにカウントさせて、0.1秒間隔で
カウント値を読み取る(差分を読み取る)とかした方が処理軽くなると思うけど。
んんんん
864 :
774ワット発電中さん:2006/10/22(日) 23:56:47 ID:zsfe71P2
アマチュアが作って楽しむのなら、表示専用に1つを当て、もう一つで
計測すればいいと思う。
20数年前、ロジックで簡単な周波数カウンタを作ったが、ずいぶん大がかりに
なってしまった。スピードが合えばマイコンは便利なものです。
普通にレシプロカル方式でいいんじゃないかなぁ。
ある適当な測定時間内に入ったパルス数とそのパルスの間の時間で
算出すれば速度にかかわらず一定の分解能で計れる。
ハードをわかろうともしない奴には、何を言っても無駄。
867 :
774ワット発電中さん:2006/10/23(月) 03:33:36 ID:ypC9W+qe
同意
>>849 大体どれくらいのパルスが来てるの?
標準的な車速信号なら1回転4〜5パルスくらいだと思うが。
ABS用センサーなんかだと40pulse/rotくらいだと聞いた。
考えられるのはガイシュツなのが多いけど、
1.バッファを兼ねて分周用カウンタICを挟む。
2.表示用マイコンを独立させ、ビットマップ作成とLCD制御を任せる。カウント側はカウントと表示文字データ作成だけにする
3.プログラムの見直し。カウンタモードを使えば大丈夫じゃなかろうか?
タイヤ1回転1.8mくらいとして、1回転40pulseでも200km/h(56m/s)で1200pulse/sec強程度。
8bitカウンタ+オーバーフロー割り込み使えばオーバーフロー頻度は4.8回/secになる。
同期信号の間にオーバーフロー割り込みフラグの有無とパルスカウント数を読み出して
やれば処理可能じゃないかな?
チェック頻度が100msec未満ならオーバーフローチェックも要らない。
TCNT0(TCNT2)を読み出し、前回読み出し値と照合し、カウント数を算出し、
どっかに積算していって表示間隔と共に積算値をコピーしてそれを速度に
ゆっくり換算すればいいかと。
パルス数が多ければ走行時間の分解能が水平走査時間になってもそこそこ正確。
LCDへ表示データを送るのが大変そうなら、データ送信を割り込み処理にして、
具体的に200km/h時のパルス数がどれくらいと見込まれて、
LCD処理の概要(何usecの間に何usecの空き時間があるのか)を晒せば
もう少し詰められると思うけど。
>>868 あ、チョン切れた(w
LCDへ表示データを送るのが大変そうなら、データ送信を割り込み処理にして、
パルス処理の方をメイン処理にしてしまう手もある。
C言語的に書くなら
タイマ割り込みルーチン(オーバーフローや比較一致を利用) {
表示データをLCDに送る
次の割り込みタイミングを決定
}
main()
{
初期設定
while(1)
[
while(一定時間経過) {
TCNT0をチェック、オーバーフローを考慮した総カウント数を把握する
}
総カウント数と経過時間から速度を計算
速度を表示データに変換しLCD表示データを更新
}
}
こんなのでどうでしょ?割り込みルーチンでの退避レジスタ数が最小限ですむように
表示ルーチンを工夫すればなんとかなりそうな気がします。
>>853 つーか同等品がAVRの内部にあるがな・・・・(´・ω・`)
>マイコンで作った方が速いし確実と思ってるなんて
既にフォローがありますが、そういうことです。「悪戦苦闘するより」って書いてますよね。
色々アイディア、情報ごっつあんです。
>他にも1/10にしたり、いろいろ種類があるから74シリーズ規格表でも眺めて好きなの使え。
調べました。えらいいっぱい種類ありますな。マイコン無しでも頑張れば殆どの物出来そう。
>>861 865
指摘の通り例えば0.2秒毎にデータ取得するセンサーを順に切り替えれば、
割り込み回数は激減しますね。 読み込み時間を減らすのも然り。 なるほど。
>ADC連続読み表示と、タコバーグラフ表示に、アナログメータ表示が出来ると凄いかも。
そのつもりで、敢えてデカイ液晶を使ってみました。 アクセル開度やスリップ率表示とか・・・
(運転中見てたら事故るんで)ログをSDカードかなんかに保存してみたいと思ってます。
なので、出来ればデータは全部取っておきたいと思い始めますた。
パルスは1回転で20回。1回転ほぼ2mです。
250km弱出ます。パルスセンサーは前輪、後輪、エンジン回転数の3つ。
パルスのカウントにタイマ/カウンタ使えるとは知りませんですた。
タイヤパルスをタイマ/カウンタクロック源にすれば出来るかな。
>インプットキャプチャですよね?
これは知らないので調べてみます。
さすがに256回で1割り込みだと制度低すぎですけど10回とか適当な数にすればありですね。
現在の空き時間は・・・ 1.0sec / 30frame / 240 = 0.0001388 が1ライン表示にかかる秒数。
138usecの内、8割近く!?が液晶に食われるんで、(現在のフレームバッファを液晶に転送)
余りは30usec強ですね。これでも現状は問題ないんですけど、
割り込みが増えるとこの30usecの間に次々と処理が入っていくことになるんで、
次のフレームバッファを作るのがキツくなりそうだなと。(0.3秒毎が、0.5とか増えて行く)
仮に液晶画面の表示を派手にしたり、SDカードに逐次保存とかやったりしたら尚更。
>>868 これに近い感じでやろうとしてました。
液晶側がデータ要求を計測器に発行したら、計測器側がデータを送ってくれるみたいな。
なんにせよ一個で済めばそれに越した事はないんですが、試行錯誤してみます。
>>873 まー今時のマイコンは安いし、こだわりがそれほどないなら2個で楽するのもいいと思うよ。
マイコン間の通信をUARTにすればそれぞれPCにつないで動作検証ができる。
あと、発想を換えてパルス間隔を計測してそれを速度に変換する手もある。
20cmで1パルス、max250km/hなら、パルス間隔は2.8msec程度。
それなら、たとえば8MHzAVRで1/8分周したTimer1などを使って分解能1us、
一周65msecの時計を作り計測すれば、11km/h〜250km/hまで充分な精度で速度測れる。
この場合はTCNT1の取得精度確保のためにインプットキャプチャの出番。
>>874 と思ったが速度センサ2つあるのか・・・・
インプットキャプチャは一部を除いて1つだな・・・・・
片方は別の方法で取得するしかないかも。
>>875 そんなに精度要らないなら、割り込みを使って、自前でインプットキャプチャすれば?
INT0で割り込んだ先で、タイマーTCNT0の値をどっかの変数に隔離すれば、インプットキャプチャになるよね。
>>876 うんまあ、別の方法ってのはそういうことだけど。
>>877 メンゴw
H8とかだと、インプットキャプチャの時に、差分も同時に格納してくれるという話を聞いた。
それが本当なら便利だよね。(割り込みルーチンすら書かずにすませられる?)
879 :
774ワット発電中さん:2006/10/24(火) 13:10:50 ID:p9JMrr6p
無理してAVR使わなくてもいいんじゃね?
881 :
774ワット発電中さん:2006/10/24(火) 17:21:35 ID:ogY7G6kj
らめぇ
882 :
774ワット発電中さん:2006/10/24(火) 17:23:15 ID:1VXzTMuK
ほげほげ
883 :
774ワット発電中さん:2006/10/24(火) 20:46:08 ID:bojFNoGi
まぁ、ICPでのパルス幅測定はエンジン回転数センサに、
T1/T2/T3でのカウント数測定はタイヤの距離センサに、
と使いわけしたりと暇つぶしにはなる。
Mega128の場合なら、だけど。
何かに酔ってたり固執してたり執着してるとこういうことをする
センサー1個につきAVR1個使用して、
集計用のAVRからI2Cで3つのAVRをたたく。
ダメ?
それAVR+PLDの方がカッコイイと思う。
F-V変換してADCじゃだめっすか?
普通はわざわざV-F変換をしてでも周波数という取り扱いやすい情報にする場合が多い罠
jh
>>886 WinAVRでI2Cのスレーブの記述って、ライブラリにありましたっけ?
使ってる奴がMega128/64なら…
250km/hにして69.4m/secで、2mで1回転20pだから700p/sec程度。
250msec程度の間隔で読めば十分だろ。安全を見込んで100msecで読むにしても、
8bitのTimer/Counter2で十分だからパルスをT2/T3に入力して
Timer/Counter2と3をタイヤ側センサに当てる。
エンジン回転数センサにはTimer/Counter1を使って、ICPの実験をするもよし
T1からパルスを入れて単位時間当たりの回転数を読むもよし。
残ってるTimer/Counter0をタイマー割り込みに使って
液晶とカウンタの読み出しタイミングに使えば…
>>891 何でもありのフォーマットだと大変だが、
ある程度フォーマットを決めちゃえば、
ライブラリなど無くても普通に書けると思うが、如何?
実際、mega88で書いたことあるし。
あと、I2Cと書いたがTWIでもほぼ同じ。
AVR同士だと特に気にする必要は無いと思ふ。
tiny26には何故I2Cが付いていませんか?
>>893 あぁそうか。TWIのハードウェアだけマネして、プロトコルとかは自分で考えてもいいわけかw
商品化しなきゃ、特許の問題も大丈夫だろうw
>>889 多チャンネル周波数入力が容易になるかなと思って。
>>874 パルス間隔の方が楽そうだな。
1回転20パルスのパルスがどれくらい精度良く等間隔かどうかが問題になりそうだけど、
何回か測って平均とっても良いし。
1つはインプットキャプチャでやって、他は外部割り込みでいいかな。
他の割り込みとの競合で時間が不正確になるのが問題なら、
他の割り込みの処理内のあちこちに、外部割り込みフラグが立ったらTCNT1値を
取得保存して、"保存しますたフラグ"を立てておく処理をばらまけばある程度遅延は
抑えられるかも知れない。疑似インプットキャプチャ。
問題がなさそうなら多重割り込み許可でも良いし。
割り込み回数のほうがプログラムは楽じゃね?大して注意することも無い。
ただ、高速では精度がいいが、低速になると誤差(%)が大きくなる。入力パルスが0〜700Hzだし。
これはハード的(回転数センサ)な問題だから、カウントする単位時間を延ばすしか方法が無い。
仮に0.1秒で割り込み回数をカウントすると、速度全域で±2Km/h程度の誤差。
同じ理由で、パルスを分周するのは実はお勧めできないと気づいた。
パルス間隔だと、タイマの精度が必要。割り込みの競合による遅延に注意。0Hz近くのタイマオーバーフロー対策。平均化処理。
低速では精度がいいが、高速だと誤差が大きくなる。
最高速(250Km/h・700Hz)で誤差1%に収めるには、割り込みルーチンが50clockとすると競合を考えてシステムクロックが7MHz以上。(すべて割り込みで処理した場合)
1%といっても250Km/hだと2.5Km/hなわけで、精度を上げるのは結構厳しい。
この場合は分周するのが有効な希ガス。計測可能な最低速度が上がってしまうが。
結論:インプットキャプチャは便利だ
>>899 よく考えると
138usec毎にその8割が液晶表示に食われて、どうやらこの間は割り込み禁止に
せざるを得ない感じですよね。それだと確かに割り込みのタイミングは厳しそうです。
信号を割り込みのINT0に入れて、
INT0割り込み
もし Timer1がオーバーフローしていたら、 TT=0xFFFF
そうでなければ、TT=Timer1の値
Timer1をリセットする。
割り込み終わり
っていうのはどーだろ。
自前インプットキャプチャだが、オーバーフローしたらFFFFになるのがミソ。
またまた色々レスありがとうございます。
仕事がそれなりに忙しく、趣味は空いた時間に細々とやってます。
なんで、進行はノロいです。まぁ休みがあるだけマシか。
>無理してAVR使わなくてもいいんじゃね?
一番始めに書いた通りそれも選択肢の一つではあります。
interface付録SH2なんかだと速そうです。3.3vなのと、
対応するSRAMがdigikeyくらいでしか見れない。 後はARMとか。
パルスとパルスの間の時間から、速度を割り出すのはイイですね。
加減速の変化に対して、かなり敏感な速度計が出来そうです。スリップ検出とかによさそう。
変わりに止まってる時は特殊処理がいりますね・・・ って、上にも同じ指摘があるか。
取り合えず楽なのでInt割り込みカウントから速度割り出し。
>自前インプットキャプチャだが、
で、上記方法でスリップし易いリアタイヤ用にはパルス間隔も見てみるとか。
これでそれなりの制度は出ると思いますが、他のセンサー割り込み中だと若干遅れますね。
割り込み処理はカウンタをメモリに保存するだけですが、復帰とかにも時間かかるだろうし?
今はデカイ液晶と基板をどーやって収めるかにも悩み中。
取り合えず小さいテキスト液晶でテストしてから本番用をコンパクツに作り直すか・・・
>>899 見方を変えるんだ!
低速時に有利な測定法
高速時に有利な測定法
手元にはマイコン・・・
ヒステリシスつけて測定法を変化させればイイ!
>>901 パルス計測対象が3系統あるからタイマリセットはできないと思われ。
前回Timer1値を保存しておいて、次回パルス時にそれとの差分を取る方式になるでしょう。
一周を越える値の判定が必要なら、パルス毎にオーパーフロー回数を管理する
変数を用意してオーバーフロー割り込みでこれをカウントアップしていけばいい。
INT割り込み側ではこれ+TOV1Fフラグで周回数を判断できる。判断後はこのカウンタはクリア。
パルスがこないときのタイムアップ処理はオーバーフロー割り込みで可能。
>>899 両者併用なら問題なし。
パルスがくるたびにその時の時刻記録し、パルス数カウント変数をINC。
パルス回数カウント開始時の最終パルス時刻を記録しておく。
表示間隔に応じて定期的に、パルス回数とその時点の最終パルス時刻、開始時のパルス時刻から速度算出。
パルス回数が0なら速度0として扱う。
Timer1の周期を表示間隔より長くすればオーバーフロー問題はなくなるし、
その場合の誤差は表示間隔とTimer1分解能で決まる。
例えば表示間隔200msec、AVRを8MHz駆動ならば、64分周で分解能8us/200ms=0.04%が得られます。
200msecで25000カウントなので16bitタイマで対応可能。200msec間に1-2パルスあればOKなので、
1m/s(3.6km/h)までは対応可能。
タイムクリティカルな処理が138usec毎に来るようなので、高速側の限界は0.1m/138usec=2600km/h。
>>904 欠点は、速度への変換時に変数による割り算が出てしまうこと。メモリも処理時間も多少圧迫。
>>904 >タイムクリティカルな処理が138usec毎に来るようなので
ということならタイマ分解能8usは意味なさそう。
100usecくらい割り込み禁止期間があるようなので、タイマ分解能は256分周、32usecで充分かと。
それでもサンプリング間隔200msecで分解能は0.03%保てる。
1024分周でもいいかも。
>>902 ちなみに、LCDモジュールは何を使われてますか?
(´-`).。oO(TINY26Lはアセンブラかな…)
>LCDモジュールは何を使われてますか?
LM32004です。
>タイムクリティカルな処理が138usec毎に来るようなので、
今思ったのですが、ドット打ってる間は確かに割り込み禁止にしてるんですが、
このドット打つ間隔ってかなり適当でも動いちゃうんですよね。
なんで、16ドット書き込んでは割り込み禁止を解除して、禁止期間にオーダーのあった割り込みを実行。
すぐに割り込み禁止にとかすれば、精度を上げることは可能ですね。
重くなるけど。
つか、人間の目には1秒間に5回以上更新された情報は読み取れない。
200msに1回更新して、後の空き時間でタイマー使って計測したら?
データ取るのだって、そんなに頻繁にとる必要ないでしょ?
>>909 これってデータ送信は同期シリアルみたいなのでdot間の厳密なタイミングは要らないのですよね。
それなら割り込み許可にしてしまっても問題ないのでは?
あと、USI持ったAVRが利用可能なら転送はかなり楽になるかも。
SPI機構でもどうにかなるかな?
>>910 あわてるな。このLCDはVRAM搭載ではない。LEDのダイナミックドライブと同じく自分で表示しないとちらつくぞ。
アセンブラでもCでも良いのですが、AVR始める時に初歩の初歩としてオススメなサイトってありませんかね?
Wikiとかそこらへんのサイトとか見てみたけど、サンプルになりそうな簡単な回路とソースを公開しているところが極端に少なくて…
(室内飛行機作っているサイトの、AVR超入門の最初の3回目みたいな)
何がやりたいのか、とかじゃなくて「とりあえず最低限コレだけは覚えてるべき」ものを学べるサイトを探しています。
>>913 あなた自身はそれ必要ないレベルなんですよね。
なければWiki上に作りませんか?
>>915 最近そのリンク集は更新されてない件
デッドリンクもだいぶ増えて残念
ここ1年だと でんし研,AVR & BASCOM-AVR,MorosanSoft(blog)以外に新しいサイトはあるかな?
90s2313-10PCって3.3vじゃ動かない?-4PCのほうは2.7vから大丈夫なんだけど。
というのも、シリアルプログラミング電圧が-10PCでも2.7vからOKと書いてあるので大丈夫かなと思ったのです
電圧-周波数依存特性グラフを見るんだ
>>913 ワンチンプマイコンで、最初に作るべきなのは「音付、LED付、時間はVRで3段階切り替えのラーメンタイマー」だと思う。
これで、スイッチのポート入出力、タイマー、ADコンバーターの全てを含むだろ。(ADがついていればだが。)
あと、LEDに流す5〜10mAをどのポートから出すのか。AVRは幸いどのポートも大電流出せるが、H8だと選ばなきゃならんとか、
AVRでもスピーカーから音を出すとなると、やっぱトランジスタくらいは外付けしたいよね。とか。いろいろな要素がある。
習字で言うところの 永 の字みたいなもんだ。
>>920 そのようなグラフがみつかりませんorz
>>921 3段階切り替えならVR+ADCじゃなくて2ポート使ったdipswが入門向けのような気もするが・・
ADCは第二段階で、ADCらしい面白い奴でやりたいところ。
>>918 趣味ならAT90S2313-10PCは3Vでも大丈夫。
>>923 このグラフは15MHzまで書いてあるんだね、10MHz品なのに
>>923 >>926 ありがとうございました。
そっか。-4PCとは限定してないから大丈夫なのか。
やっぱり3.3v使えないと不便だよね。ほかのマイコンとかと接続するのに。
でもセンサー類とか液晶とか5v多いからAVRを実際に使うときは5vのが多いのかな。
よの中みんなトレラントになーれ!
>>925 AVRGCCに付属のtiny projectなんか結構いいよ。
2段構成で、簡単なのと結構高度なのを紹介している。
落差がでかいので間が欲しいところだが。
(´-`).。oO(初TINY26L, 初アセンブラ…全然うごかねぇ…)
930 :
774ワット発電中さん:2006/10/28(土) 22:05:32 ID:Z6TQdTDe
下手糞
(´-`).。oO(CではLEDピコピコできた…)
>>929 LEDピコピコくらいならここかWiki掲示板に晒せ
>>932 (´-`).。oO(動かないからLEDピコピコまで後退したんです…)
お前ら念話すんな
>>933 正直フルアセンブラはキツい。
#PICの頃は全然平気だったんだけど年食った。
そんな場合はCの出力をアセンブラにして必要なところだけアセンブラで書き換え。
マジお奨め。
(´-`).。oO(アセンブラがきついというより…)
(´-`).。oO(デバッグ出力用ソフトウェアUARTが動くまでがきつい…)
>>936 Tiny26やめてtiny2313にしては?
って、ADCがないのがネックなのかな?
mega48でもいいし。
アセンブラを崇拝してる香具師多いなw
939 :
774ワット発電中さん:2006/10/29(日) 11:18:34 ID:cTEvFI+F
アセンブラは確かに無駄がないけどCと比べると組みやすさがな〜
いまだにmegaシリーズしか使ったことない自分が言うのも(汗
アセンブラもうまく組めば悪くはないんだけど、
結局読みやすくしようとすればマクロとサブルーチンの嵐になって、
特にサブルーチン多用になると「こんなんじゃあCでもいいかな?」になってくる。
それでもアセンブラからC(GCC)にするとコードサイズは1.5〜2倍にふくれあがるが。
で、1Kワードくらいまでならアセンブラでがんがるのも悪くないと思う。
アセンブラだと行数が長くなるのが、いやだから
マルチステートメントを多用してる。
LDI R16,15 RCALL usWAIT
みたいな
ところで レジスタの名前は皆 定義してる?
やっぱ A=R16 B=R17 か W=R16(笑)
TEMPとかにしてる
>>942 アセンブラはしばらくご無沙汰ですけど、たいがい定義しまくっているな。
X,Y,Zレジスタに加えて2バイト演算ができるr24,r25にWL,WHを定義し、
r0,r1にwinavrのまねで__zero_reg__、__tmp_reg__を割り当ててた。
さらにr0-r15のコピー用にr16,r17をA,Bに割り当て。
そのほかについてはプログラム依存の変数名を割り当てていた。
変更頻度が高く即値演算を煩雑に行うのはr18以降、そうでないのはr15以前。
一時期は悪のりしてr0-r15のレジスタに即値演算できるようなマクロも作ったけど、
コードサイズ増えて最適化のじゃまになるだけだったのでやめた。
>>937 (´-`).。oO(ご想像の通りADCが使いたいんです…)
(´-`).。oO(過去に動かしたmega64/128ボードあるし、最悪乗り換えます…)
>>945 (´-`)つアナログコンパレータ利用簡易ADC
おまえら念話すんあ
(´-`).。oO(ツンデレだなぁ…)
(´-`).。oO(mega48、マルツで売ってるんだ…)
(´-`).。oO(価格差を考えると、いっそmega88・・・・)
(´-`).。oO(mega48は送料を考えるなら苺…)
おまえら念話すにゃ
(´-`).。oO(チップ間で念話プロトコル通信できるAVRホスィ)
(´-`).。oO(念話プロトコルのビットレートが気になる。)
開始条件:(´-`).。oO(
SLA+W:
>>954 データ:気にするな
終了条件:)
(´-`).。oO(みんな、いい人たちだな…)
(´-`).。oO(やっと初TINY26L, 初アセンブラでやりたいことできた…)
(´-`).。oO(次のスレタイ【念話】AVRマイコン総合スレ Part7【プロトコル】でどう?)
(´-`).。oO(次のスレタイ【念話】AVRマイコン総合スレ Part7【受信】でどう?)
>>943 ひょっとしてr17をtempとかにしてない?Atmel謹製のApplication noteにでてるアセンブラコードって
大概r17をtempに定義して使ってるんだよね。最初のころは、こういうApplication noteを真似するから
自然と、スタイルが似てしまう。
>>959 943じゃないけど、
俺はr24-r25をtempにすることが多いな。最初に出会ったサンプルがそれだったので。
でもってr16→r23の8バイトにはよく使う変数を割り当ててた。
r24以降はインデックスレジスタの使用状況に応じて使っていた。
961 :
943:2006/10/31(火) 10:51:22 ID:2CBy12ZH
最初に参考にしたのがこのサイトだったのでTEMPです。
アセンブラの時だけ90S1200で勉強して、普段はWinAVRでmega系使ってる
962 :
943:2006/10/31(火) 11:07:56 ID:2CBy12ZH
>>962 お!またリアル知り合いのサイトが出てる!
みんなアセンブラでスイスイ書けるんだなぁ…WinAVRないとだめだ。
90s2313+VS1011+SDCでMP3鳴らしてみたり。
え、FAT?もうすぐmega8に切り替えるところです。orz
(´-`).。oO(おいらもTINY→MEGAにもどろ…アセンブラ面倒だし…)
tiny2313にはUARTついてなかった毛か
失礼しました
968 :
774ワット発電中さん:2006/11/01(水) 12:23:24 ID:BJ5acOaS
はい、STK500だけで書き込めます。
アトメル純正品ならAVRISP-mk2とかDRAGONもありますが
AVRISPはご自分で作る基板にISP(書き込み)コネクタが必要になりますです。
自作ライターなら抵抗4本だけとか色々とあります。
日本のAVR-Wikiもよろしくです。
>>968 STK500でいいけど、純正の好みならAVRISPの方が手軽。
STK500はジャンパーのセッティングやらなにやら、結構面倒くさい。
>>969-970 レス、ありがとうございます。
Macな人なんで、巡り巡ってあのサイトに辿り着いたんですが、
日本のAVR-Wikiサイトも見てみます。
STK500をチョイスしたのは、MacでのAVRの使用に触れているサイトでは、
STK500を使った上で説明されている事が多くて、無難かなと思いました。
でも、UNIXの知識がいるようで、
とりあえずWindowsでやって、おいおいMacでもできるようにしようかと思ってるので、
AVRISP等も調べてみる事にします。
マックユーザーだけど面倒だからAVRは中古のWinノートな俺
MacだけだとSTK500のファームウェアのアップグレードができないので
>とりあえずWindowsでやって
が正解です。
AVR-ISPもSTK500も使うソフトは同じです。Macだとavrdudeになると思います。
AVRWRT、バージョンアップしてるね。書き込みデバイスが増えてる。
気づかなかったよ・・・(´・ω・`)
いずれにしてもWin機の方がなにかと
開発には向いてるだろ。
マックだけで済ますより1台くらい工作向けにwin機を
用意したほうが結局早くて楽だぞ。
書き込みはwikiの雑談に貼ってあるavrspx-unix版が使えるんじゃないか
mac版が無いことが問題なんじゃw
> 何かと周りにMacOSが多い環境にいるので,avrspxをMacOS上でコンパイルしてみました.
> ただし,USBaspしか使えません…….FreeBSDとかでも問題なく使えてます.
> 身内用のサイトですが,置いておくのでよろしければどうぞ.
>
>
http://www.binzume.net/w/library/robo/avr01 >
> libusbが必用です.Macは良く分からなかったので,自分でmakeした方がいいかも…
って書いてあるからてっきりMacで使える物かと