_____
/ /|
/ ( ゚∀゚) /.∠フ 個人でも手軽に使える
/ /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
/ __ o/.∠フ || 中心に語るスレッドです。
∠| ̄ ̄凵 ̄ ̄|∠フ || *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
.|| |_____|/||
Atmel AVR 8-Bit RISC
http://www.atmel.com/products/avr/
表面実装部品を変換基板に半田付けしたあと、イソプロピルアルコール(IPA,2-プロパノール) でICの足の間のヤニを取り除けって聞いたんだけどほんと?なぜかというとヤニ自体が 数MΩの抵抗を持っていてわずかに電流が漏れるだとさ。 ちなみに消毒用エチルアルコール(濃度80%)じゃだめなのかな?
夏休みの宿題大変だねー(棒
>>4 別に問題ないです。高いからもったいないだけ
IPAか。車の水抜き剤が代用できれば安いんだけどね
無水エタノールの方が良くね
ヤフオク使えるならIPA安く手に入るよ。 無水エタノールは強すぎて基板によっては白くなったりするかも
ヤフオクでIPA600円もするw 送料入れて1200円。近所の薬局で買うわw
あ、近所に置いてるならそつちの方がいいな うちの近くじゃIPAはなぜかおいてないし取り寄せてもくれなかったな
>>4 入力をテフロンで浮かせるようなアンプならともかく、
AVRでそんな事を心配する用途は少ないのでは?
ただし、私も配線終了後に洗浄してフラックスを除去しています。
不良ハンダ付け(半田ブリッジなど)の目視検査がやりやすいし、
見た目もキレイになるからです。
>>4 過去電子機器製造業に関わってたものですが、製造現場でも手修正でチップの
ハンダ付けでも、洗浄することってあまり有りません。
フラックスの焦げがついてハンダ付けの状態が見えないとか、
ハンダ付けした上に両面テープ貼って、何かを固定するとかがあれば
IPAとかで拭き取ることはあった。
>>14 実装後の基板洗浄なんて当たり前にされているからフロン問題になったり、
アルコール洗浄に変わって不良率上がったりした話題があちこちであるんですよ。
洗浄するもしないも各社各人それぞれ。メリットとデメリットの綱引きで決まる。
>>13 typedef int8_t PROGMEM prog_int8_t;
typedef uint16_t PROGMEM prog_uint16_t;
をmain.cのincludeの後に追加
つうかもし特にプログラム変更するつもりがなければzipにhexが
あるからそれ使えば?
>>9 >無水エタノールは強すぎて基板によっては白くなったりするかも
赤い基板についたヤニを消毒用アルコールと綿棒で擦ってたら白っぽくなった
擦りすぎたんかと思ったら、そういうことかw
無水→白くなる→水が入ってるから えぇ?
気になったんで読み返してみた 【成分】本品は15℃でエタノール76.9〜81.4vol%を含みます。 【保管および取扱い上の注意】 5.本品はニスを溶かすので、ニスの塗ってある建具や家具等には 本品が付着しないように注意してください。 だってよ。
22 :
4 :2012/08/30(木) 10:23:43.22 ID:iwAEydti
色んな薬局に電凸しまくって、やっとIPA取り寄せてもらえたよ。 でも2ヶ所とも純度が50%orz
ぶっちゃけフラックス除去ならジッポオイルで大丈夫だよ
水抜き剤 IPA99% これ使ってるが不都合はない。 1ッポン100円位
100%のやつはホムセン漁っても無かったんで99%で我慢しとる。 レンズの掃除じゃなきゃいいんじゃない、安いほうで? ちなみに、100円の詰替インクのカラ容器に入れて机の上においてると便利。
このまえ、プラモデルの流し込み用接着剤使ってたの見たぞ 100%溶剤のだと使えるっぽい
28 :
13 :2012/08/30(木) 16:04:14.65 ID:on6isRu+
>>16 解決しました。
ありがとうございました。
一度作って、その後、音データを差し替える予定です。
ミスって・・・・・ 部品シンボルの信号線にラベルつけたのを流用してるだけで わざわざ書いてる訳じゃありません 回路図エディタさわればわかります まぁ知らない人は使ってないピン何故わざわざ表示するの?って思うわなぁw
>>29 ISPコネクタとかなんかそういう感じで部品化してあるんだろう。
流用というより、規格上2ピンがVCCだから。敢えてNCにしてますよ、と。
>>30 >>31 ありがとう。じゃあAVRボード側は2ピンにVcc繋げればいいの?何も繋がってないから
意味ない気がするけど
純正ライターとかはそのピンでターゲットに電源が入っているか判断するのです。 ISPの6ピン配置は決まっているので、使わなくてもコネクタはあわせておかないと つながらないでしょ
まぁターゲットもライターも「俺仕様」にして、 他に流用する気がなければもちろん省いてもいいんですが・・・・
なるほど。一応Vccに繋いどくか
うげ、ISPの推奨ピン配置って2列×3なのか・・・。1列×6買っちゃた。 明日、買ってこようかな・・・って店に2列×3のピンヘッダ/ピンソケットあったっけな・・・。
悪いこといわないから始めは出来上がってるもの使え
Simplfiedは相性が酷くて動かないPC多いからねぇ
ちょっとまて。そのレベルだとマジで半完成品買った方がいいぞ。 共立ライターでいいじゃないか。
共立ライタより、純正 AVRISP mk2の方がいいと思うが。
ライターを作ること自体が目的なんでしょ?
うーん、予算があまりないんだ。でelmで自作できるって書いてあったから
その通りしたんだが・・・。とりあえず
>>37 の情報が正しいか教えてほしい
オス(ピンヘッダ)のほうが簡単に分離できるし、値段もメス(ピンソケット)より安い マイコン側は基板ごとにコネクタが必要だが、ライタ側は1つあればいい となれば、どっちにどっちを使うほうが有利かおのずと分かるはず
>>44 以前COMポートのでやってたよ
パラレルはXilinxの改造してたけど
VIOと衝突させてポート破壊
悩むのを楽しむ以外の理由で非純正ライタを使うのはお勧めしない。悩んでる時間で先に進んだほうが合理的でしょ。
AVRマイコンで純正ライタとか プラモデル作れなくて完成品買ってもらうおぼっちゃまみたいだなww
ライターを道具と考えれば買うことに何の疑問もないが?
初めてんときはよーわからんじゃん どっちでもいいんじゃね
ライター自作するにしても、純正を借りてでもいいから使える環境を整えておくべき 障害の切り分けが出来なくて泣いたり時間浪費したりするのは嫌でしょ?
>43 予算がないったって、知識量と比べて限度があるだろ。 LPT-Simplfiedにしろ長いの作っちゃって認識しないーとかやりそうだし。 LPTポート付いてるPCならCOMくらい付いてるんじゃないか? ストベリでCOMポートタイプのライター買う手もある。1000円くらい。 ChaNさんのCOMポートタイプそのまんまだよ。
自作ライタを紹介する人が悪いわけじゃないが・・・
自分も昔マイコンやろうかなと思ったときにPICライタ自作しようとしたけど動かずで挫折
結局マイコン自体はじめるのが何年も後になってしまったよ
製作したい欲求はわかるけど技量を見誤ると結構受けるダメージがでかい
今は純正ライタでも結構安いから無理せず買ってほしい
金がないなら自作するはずの時間分バイトすればお釣りがくるだろ
↓がいい解説(一部リンク切れがあるが)
http://jsdiy.web.fc2.com/avr_writer/ 口うるさいと思うかもしれんが同じ轍はマジで踏んで欲しくない
54 :
超ドュ級の初心者 :2012/08/31(金) 03:58:11.32 ID:W5yr2B6L
FETについてなのですが、 接合型とMOS型の違いがいまいちよく分かりません。 また、サーボモーターに使用するのならどちらが向いていますか?
>>54 モーター駆動に使うならMOS一択
接合型とMOS型は内部構造が全然違うし使い方も違う
特性曲線とか見てわからないならあまり気にするな
ぐぐりゃ分かる程度のことを何でもかんでもここで聞くのはどうかと そもそもAVRと直接関係ないぞ
トラ技を見てスマホI/Oを試したくなってきた…
AE-UM232Rでさくっと初書き込み成功したら usbasp作るのがいいよ
俺、数年おきにマイコン工作したり中断したりなんだけど、そのたびに開発環境がわけわからなくなって再構築してる。 ライターも、最初の1回目と2回目は自作して、色々とライターソフト比較したりしたけど、3回目の復活の時に面倒 になってAVRISPmk2買っちゃった。 正直、作りたいものを作り始める前に、ライター作りでウンウンうなっている時間があるんなら、純正ライター買った方が 時間も金も節約できるって事がわかった。
「初めてのAVR」を自作ライタから始めるのは チト負担が大きすぎるのでは? 自作したとか言ってる人も他人のハード、ソフトの完コピでしょ? そんなに自慢できる話じゃないと思うけど。
>>61 でだけど
ちょっと言い過ぎてしまった、スマン。
まぁ根本的な問題として<AVRで何かを作る>で
<AVRで作る>と<何かを作る>のどちらにウェイトをおくか、という事もある。
他人の経験を自慢話と解釈してしまう思考回路はなんとかした方がいいね
>>44 2列×3のピンソケットなんてない件。秋月になかった。
一番小さいのは2列×5だとさ。切る?w
65 :
超ドュ級の初心者 :2012/08/31(金) 10:26:37.96 ID:W5yr2B6L
>>55 ありがとうございます。
曲線は理解できないですけど、置いときますね。
>>56 すみません。確かに、よく考えたらAVR関係ないですよね…
普通、切るだろ。 なんで草生やしてるのかわからない。
自作ターゲットは1x6で作ってるけど、ライターとかは2x3でソケットにきちっと2x3のケーブルを挿せるのが いいとは思うな。ライターは繰り返し使うわけだし。おかげでsparkfunの変換基板がありがたいというわけ。 連投すまん。
どうでもいい話なんだけど、ジャンクのSCSI箱のID設定用BCDスイッチの延長ケーブルが 2x3のやつ(配列はストレートじゃなかったから弄った気がするが)がちょうどよかったので愛用。 ハーネス作るのも面倒な時はいいかもしれない。信頼性は0だがw
50円のものに送料かけて買うのバカバカしいから2×5かって切断するわ。
切断の方法はぐぐったらあった。
>>66-72 ありがとう
>>74 秋月だと2x7が30円じゃなかったっけ?
まぁ残りを使う予定があるなら一番長いの買ってカットがお得だが
自分は秋月の一番長い奴をまとめ買いして1列犠牲にしながら使って来て...
>>67 のやつ登場で飛びついたものの結局は在庫処分のため暫くは1列犠牲から離れられんw
ターゲット側は無理に高いBOXは使ってないなー 安い2列のを切って使うで十分 でもL型タイプ使って寝かせて実装して、逆差しは出来ないようにしてる
mega328が売れてるのは分かるんだけど、
いまだにDIPのmega8が売れてるのは何故なんだろうね?
http://toragi.cqpub.co.jp/tabid/620/Default.aspx xmegaが16ビットのカテゴリーに入ってるけど、周辺機能が強化されてるくらいで
コアは8ビットそのままだと思うんだがなぁw
メーカーが「16ビットマイコン相当の能力がありますよ」と
アピールするのはわかるけど、トラ技がこういうことするのはどうなんだろう・・・
xmegaD4やっすいなー
会社の8bitマイコンがルネなんだが、AVRに変えて欲しいわ。 基板設計とかAVRの方が圧倒的にやりやすいし。
三菱&日立のマイコンは過去の栄光があるからな〜 歳くった管理職はアトメル?なにそれ?ってなもんで プラットホーム切り替えるのは簡単じゃないよね。 大喧嘩してH8からAVRに切り替えてやったのが懐かしいw うちらくらいの数量じゃコストメリットもないしH8にこだわる理由がなかった。 年300個くらいですw
エルピーダ終わったし、ルネサスも終わるし、東芝はどうなるやら。 後5年もすれば日本からICメーカー無くなるのかな?
>77 XMEGAは他社が16bitMCU作ってるのに、乗り遅れて無理矢理 8/16bitと名乗ってる感じだよな。 LD,STが速くなってたりI/OのOUT,DIRにビット単位のセット、クリア、反転が追加されたり 細かいところは改良されているけどインパクト薄くて、これなら古くてもMEGAシリーズで良いかと
16bitマイコンの存在自体が業界でも?なところだしな 乗り遅れてるというか、方針としてバリエーション増やすつもりがないんじゃないかな? ソフト作成上違いがなく、安くて高性能ならxmega使うことにむしろ抵抗がないな 俺としてはSDカード使うために電源を3.3VにしてもこれならクロックMAXに出来るのが嬉しい
そろそろARMの安いのが手に入ってくるようになってるからなぁ… まだ暫くは自作系では普及できなそうだけれど。
85 :
774ワット発電中さん :2012/09/02(日) 18:03:28.63 ID:ejb3XlBT
インテルのcore i7とかでの自作なんかは無理なんですか?
結局PCにうにょうにょ毛とか触手とかが生えたようなものにしかならないんじゃね?
8086互換モードなら何とか・・・
>>83 試しに買ったやつにSD+FatFs+SRAM入りTFT入れたら
容量いっぱいになっちった
xmegaの場合そこそこのじゃないといもったいないとおもた
で、デジキーで44ピン128A4U買おうと思ったら
リードタイム11月www
ピン数・値段も手ごろ、考えることみんな同じなんだなw
うう、ATMEGA1284P−AUを変換基板に半田付けしたんだが、変換基板側に ピンアサイン付いてるの気づかずに違う方向につけてしまったorz 吸い取り線で半田取り除いたり、コテで温めながらペンチで引っ張ったりしたが 取れないorz これは買い直しかな・・・。
俺だったら変換基板をガスコンロの遠火で炙るね マイコンだけは確実に再利用できるだろう うまくやれば基板も でも素人にはお勧めできない
オーブントースターって何度くらいになるのかなぁ
あ、リフローというかクリームはんだか
浮いた隙間になんか滑り込ませながら外すとか見たけど なんだったかな
>>89 私が今までやったリワーク方法は
+ICの足を半田ゴテで加熱しながら、細いステンレスワイアーを
ICの内側から外側へくぐらせて、足を基板から浮かせる。
+低融点の半田(SMD21とか)で溶かして、
溶けている間に急いで取り除く。
ICやボードを再利用するなら、不用な基板で練習した方が良いかも。
ヒートガンがあればいいんだけど、なければ マイコンをピンセットでつまんでコンロで炙る 半田が溶ければいいんだから遠めにゆっくりな
基板捨てる気なら、フライパンで という手も。
鉄のフライパンに割り箸置いてその上にターゲットの基板を載せて フライパンをガスコンロで加熱して基板を遠赤外線で間接的に炙るほうが基板へのダメージは少ない でも素人にはお勧めできない
ピンアサインをなかったものとしてマジックで塗りつぶす
>>79 1機種当たり精々月数千個くらいかと。
会社全体で万いってれば良い方かもね。
価格は余り覚えてないけど100円くらいだったか。
8bitじゃないか16bitだ。
>>91 ガラエポが焦げるまで・・・300度は超えた。
>>89 サンハヤトのSMD−21で付け直しできね? 変換基板を5回MPU交換してるけど、ランドはまだ剥がれそうにない。
>>103 高いw
秋月で買い直したら送料込で1200円だから、買いなおすわ。
実は変換基板にも少しダメージ与えてる。配線がペロッと剥がれたw
>>95 の方法(前者)で良く外してたよ。
ごく薄くて、半田ごて程度では燃えたり溶けたりしないような
ものなら何でもいいんで、足の後ろから差し込んで1ピンずつ
持ち上げていけば取れる。
その手のなら足もそれなりに硬いから、漏れのように自他共に
認めるような不器用でも大丈夫
>>95 の方法、ピンの内側に通るステンレスワイヤーが見当たらない。
ゼムクリップでもダメだし・・・。なんか1200円以上の労力がかかりそう・・・。
俺が以前に使ったのは、カッターナイフの刃。 全部いっぺんにではなく、横の方から少しずつ刃を入れていったと思う。
avr toolchain 3.4.1 でtiny10の不具合に対応してるみたいね。知らなかった。
>>107 そうだった。カッターの歯は良かったね。
適度に弾力もあって扱いやすかった
もちろん、半田ごてで熱しながらね<カッターの刃
>>104 高いね。
Sparkfunの似たようなやつは2000円ぐらいであった。量とか質からいって安いのかはわからないが。
部材の買いなおしがキクならそのほうがいい。
>>80 ルネサスは、10年間の供給保証してくれるからメンテナンスや設備拡張のリピートが安心
会社が残っていればね
orz
117 :
774ワット発電中さん :2012/09/04(火) 20:15:40.13 ID:fFfbKQFc
パートやアルバイトの時給にしたって2時間分にもならないような ものに何時間もかけるなんていうのは無駄無駄。
118 :
774ワット発電中さん :2012/09/04(火) 21:19:20.81 ID:hHQTrUWp
米粒AVR ATtiny10 で赤外線リモコン受信機作れる?
余裕でできる
>>118 たぶん送受信入れてもだいぶ余るから
リモコン受信+PWM2ch程度ならスタックに気を使えばCだけで組める
すげーなAVRマイコン
122 :
774ワット発電中さん :2012/09/05(水) 09:12:55.53 ID:lqbCuwwz
>>119 >>120 ありがとう。挑戦してみるわ。作ってみたいのはフルカラーLED
に個別にIDを振って 赤外線リモコン送信機で自由にフルカラー
点滅出来るようなもん。
共立のABL-168をVM Player(Win7 32bit)内で開発をしたいのですが、
デバイスを仮想マシンに接続
→デバイスマネージャ→ほかのデバイス→BB-BL mega168
→ドライバの更新→"\USB_DIO\Driver\"
からサブフォルダも検索にチェックを入れ検索
を掛けたもののドライバが見つかりませんと出てきます。
ホスト側のWin7 64bitではドライバの読み込みが出来たのですが、
仮想マシンでは上手く出来ません。
どなたか教えていただけませんか?
//デジット PDF説明書 //
ttp://www.technobase.jp/eclib/DIGIT/AVR/abl168a.pdf
うーん。AVR、共立、デジットのPDFがどうこうって話ではなくて、 仮想マシンの仮想HWのconfigの問題じゃね? ホスト側の物理リソースであるUSBポートを 仮想マシンがアクセスできるようにするには、それなりの許可設定が必要だろう。 調べるべきはVMWareのドキュメントのほうだと思う 2chで質問するなら、VMWare関連スレで 「仮想マシン上の仮想USBポートとホストマシン上の物理USBポートを接続するためには?」 という感じの質問すべき。
>>124 ヒント有難うございます
VMwareのスレッドに聞いてみる事にします。
シリアルポートが問題の可能性があるので、
そちらの方でも調べてみます。
>>117 893みたいな所に登録すれば、いきなり2時間だけ働けるシステムがあるのか。
具体的に何所のサイトが詳しいか教えろください。
AtmelStudio6のエクステンションマネージャーでAVRToolchainの最新を落とそうとすると AtmelStudioが固まるんだけどどうすればいいのかわかりますか。
>>127 自己レス。固まったまま放置しておいたらできました。
趣味でCPUをイジルのは楽しい。 私が推測するに原因は二つ。 1.工数(コスト)が関係ない。 他人とっては下らない事でも時間を無視して納得ゆくまで追求できる。 2.作る物に対する責任が無い。 役員会に呼ばれてトラブルの言い訳をするなんて誰だってイヤだよね。
131 :
774ワット発電中さん :2012/09/06(木) 14:38:42.55 ID:XqVZr3Qt
>>130 AVRマイコンの事をCPUって呼んでるの?
何より自分しか使わないから、余計なポカヨケしたりせずに使えるし、 やってはいけないことをいちいちリストアップしたりせんで済むからな。 でもMPUだと思うよ。
>>131 ウン。
以前は中身の違いでMPUとかMCUとか言い分けたりしていたけど
面倒になって、今はぜーんぶまとめてCPU。
セントラルプロセシングユニットでも意味は通じるだろ?
何がセントラルで何がユニットか知らんけどサ。
CPUってのは、たくさんプロセッサがある中の、メインのやつの集合を指すんじゃないの?UNITなんだし。 そのなかで、小さいのがMPU その中で、メモリやらなんやらを内蔵するのがMCU?
大昔にインテルがCPU、モトローラがMPUと言っていたと人から聞いた。 (中身は気にせずに)
>>135 確かにそう言ってたような気がする
まあ、今となっては割とどうでも良い気がする
今設計してるのが古いリビジョンのエラッタに引っかかるんですが 流通在庫だと古いリビジョンのチップに当たる可能性ありますよね? マーキング見てもリビジョンわからないし、設計変えるしかないのかな?
プロなら自分で判断しろや
すいません趣味です ピンアサインがややこしくなるので変えたくなかったのですが・・・
趣味ならなおの事自分で決めればいい。
掲示板の存在を全否定ですねwww アドバイスすら出来ないならスルーしといてくれればいいのに・・・・・
>141 チップ名も出さない、エラッタ内容も出さない、どんな機能を実現したいかも不明 チップ名わかればマーキングの年&週コードでリビジョンわかるかもしれない エラッタ内容わかれば回避策見つかるかもしれない 実現したい機能がわかれば、別の方法があるかもしれない アドバイス欲しいなら、もっと情報書き込めば。
そのための知恵袋ですよ
AVRのRって何の略?
レンタル
ロマン
ロリ
149 :
774ワット発電中さん :2012/09/07(金) 08:29:43.17 ID:DXdAp/NF
AVRを趣味でいじくって何を創ってるの?作品紹介してくれよ。
でんしさいりうむ
>>145 Automatic Voltage Regulatorの略だってさ。
前に「ご隠居の会話」のお題で出てきた。
前スレでレポしてたcloneのJTAGICEが,AVR Studio5では使えんの件
Studio6で使えるようになったってさ。
Hi, KEE JTAGICE mkII users !
The newest firmware for the AVR Studio 6 is here ! Please go to the following page to download it:
ttp://keeelectronics.com/mkii.htm
154 :
104 :2012/09/07(金) 20:57:35.73 ID:9OgyI2aZ
放熱板とかの固定用と、他多目的じゃね?
>>154 特にシビアなことしないならなんもしなくていいよ
2つの裏ベタってどことも繋がってない
利用する場合表から入れたほうが楽だよ
ATmega32U4の内蔵UARTって、8MHzクロック発振で115200bpsに設定して誤差
3%にできるんだっけ?
×16倍クロックの場合、一番誤差が少ない分周比は1/4(UBBRの設定値:3)で、
その場合の通信速度は125000bps(+8.5%)で通信できると思えんのだが?
×8倍クロック(倍速ASYNC)ないし16MHzクロックで×16倍なら、一番誤差が
少ない分周比は1/9(UBBRの設定値:8)だけど、それでも通信速度は111111bps
(-3.5%)。
同クロックで動くUART内の送受信でループバックしている場合を除いて、通常は
たとえ送信側と受信側の周波数誤差0%でも、クロックの位相が一致している保証
などないわけで、誤差の計算もおかしいし、誤差3%だから通信できるとか思えて
しまうって...。
ttp://twitter.com/ssci/status/244055575107870720 > ATmega32U4を8MHzで動かしてるんだけど、115200bpsのUARTの受信がうまく
> いかない。文字化けする、取りこぼす。だれかー。TX→RXのループバック
> なら正常。電源の問題は排除済み。速度の誤差の問題?たかだか3%なん
> だけど。
8MHzにこだわる必要ないと思っている ATmega32U4はOSCCALで内蔵クロックの周波数(F_CPU)を4MHz-14MHz位の範囲で可変できる 一方、 BAUD = F_CPU / (16*(UBRRn+1)) ; だから F_CPU=(UBRRn+1)* 16 * BAUD と変形できる BAUD=115200とすると F_CPU=(UBRRn+1)* 16 * 115200 これにより BAUD=115200を実現するF_CPUとUBRRnの組合せが求められる具体的には、 UBRRn/F_CPU 0/1,843,200 1/3,686,400 2/5,529,600 3/7,372,800 4/9,216,000 5/11,059,200 6/12,902,400 7/14,745,600 8/16,588,800 9/18,432,000 10/20,275,200 11/22,118,400 8MHz近辺なら UBRRn/F_CPU 3/7,372,800 4/9,216,000 の組合せが使える OSCCALの設定は0.5%ぐらいの精度で行えるし 電圧や温度がかなり変化しても内蔵クロックの周波数が5%も変動するようなことはない(実体験)
ちょっとズレたレスだったな レス取り消します
3.5%をおおざっぱに3%と言ってるだけだろう。 その誤差が「たかだか」なのかどうかはこの人も今回の製作で学ぶわけですな。 誰もが通る道w
>>159 通信相手がちゃんとしたパソコンとかでボーレートに誤差がないなら
データ8bitストップビット1bitの条件なら
マイコン側は±5%までの誤差が許されるから
誤差3%で通信できると思うのはあり得ることだと思う
通信相手側も±5%までの誤差が許されるとか思って適当に作ってあるものだったら
相対的な誤差が最悪±10%になるから通信できなくなる可能性はある
スピードの誤差に波形歪みが加算されることも考慮しないとね。
そういえば昔ここで外付けクリスタルの発振モード設定が「省エネ」になっていたのが原因で 232cの通信がうまくいかなかったみたいな話題あったな
スタートビットを検出してサンプリングを開始するなら、 5%の誤差は10ビット目で50%になるのでは? 相手も5%誤差なら相対的な誤差は100%になる。
166氏が正解 倍速動作の場合は8サンプリングの4・5・6番目で判断するので、 「相対誤差約5%」でアウト。つまりお互いどんなにいい加減でも2%程度以内にしないと エラーの発生する可能性有りですね。 ちょうど自前ルーチンをxmega用に書き換えてるところなんだけど コイツのボーレートジェネレータはおもしろいなー 8MHzとかの切りのいいクロックからでも230.4kbpsとか高精度で生成できる もう18.432MHzなんてクリスタルは必要なくなるw 余ってるからmegaシリーズには使うんだけどね・・・・
168 :
774ワット発電中さん :2012/09/09(日) 17:30:04.84 ID:grpLrvMQ
トラ技9月号を読んで思うのだが、世の中の90%はPICユーザなのかね?
来月号も合わせて読めばどういう事か判る
常々思うが、トラ技は広告料かなんかの名目でマイクロチップから相当な金もらってるよな 偏り方がおかしい
マイコンは知らないけどMicrochip社の単体IFが 載ってるボード見たことない
>>170 日本マイクロチップは、アマチュア向け無料セミナーをずっとやってきたから原稿を書いてくれる層が厚い。
173 :
774ワット発電中さん :2012/09/09(日) 18:31:34.77 ID:grpLrvMQ
アマチュア相手に企画するのは、マイクロソフトのアカデミック版のように将来で大量に使ってもらう狙いなのかね?
トヨタが日産に勝ったのは自動車学校に売り込んだからって聞いたことあるな
>>173 そうかもしれないがR8Cとくらべると万単位の納期が遅すぎる。
今の販売規模で満足しきってるんじゃないのかな?
>>173 アマチュアしか相手にしてくれないからだよ。
PA0,1,2のみ0にしたいとき DDRA &= ~(1<<PA0)&~(1<<PA1)&~(1<<PA2); ならPA0を1、PA1,2は0にしたいときってどう記述すればいいかおしえて
178 :
774ワット発電中さん :2012/09/09(日) 23:40:36.09 ID:grpLrvMQ
DDRA &= (0<<2)&(0<<1)|(1<<0);
179 :
774ワット発電中さん :2012/09/10(月) 00:04:02.24 ID:rOdZ+tCq
DDRA &= (0<<2)&(0<<1); DDRA |= (1<<0);
>>178-179 全部間違ってる・・・
あといちいちageんなよカス
↓正解(4クロック)
uint8_t tmp = DDRA;
tmp &= ~((1<<2)|(1<<1));
tmp |= (1<<0);
DDRA = tmp;
書き忘れたけど ↓はDDRAがvolatileだから1クロック余計に掛かる DDRA &= ~((1<<2)|(1<<1)); DDRA |= (1<<0);
合ってる・間違ってるはともかく いろんな記述スタイルを見るのは楽しい
エレガントな記述を模索するの楽しいなw ← 変態? avrlibcの中身なんか見ると人それぞれなスタンダードスタイルがあって 感心したりする。 会社の新人さんが何度言ってもインデント無視なんだよなぁ・・・
>>183 インデント無視のコードなら、全部 gnu indent で修正して上書きしてしまえば?
185 :
774ワット発電中さん :2012/09/10(月) 12:54:13.41 ID:mgjAu3GC
179と181は同じだろ
>>185 見てるほうが恥ずかしいから黙っときな・・・・・
今回の>177のお題みて思ったけど AVRの弱さだったポートのビット単位のSET,CLR,反転をXMEAGで DIRSET,DIRCLR,DIRTGL と OUTSET,OUTCLR,OUTTGL のレジスタ追加で 扱いやすくしたけど、こういうのをMEGAシリーズにも反映してくれないもんかな
前にもそんな話があったけど、このクラスのマイコンでビット単位のSET,CLR,反転が 1命令で出来る方が少数派じゃないのかな? リードモディファイドライトに割り込み絡んでバグるのはわかるけど・・・・ 最近のMEGAは反転だけ1命令って言う中途半端な仕様だしどうなるのかねー
189 :
774ワット発電中さん :2012/09/11(火) 00:00:02.66 ID:v/OfPJgB
電源5Vの工作もまだあるから大丈夫だろw
>>189 一度しか使っていませんが個人的感想など。
チップの値段は安いけど、まだまだ開発環境が発展途上と言った感がありますね。
ライブラリの効率も悪いし、その道のプロでないとAVRを大きく超える処理性能は出にくいです。
逆アセを涼しい顔で読んで自前でペリフェラルドライバ組める人にはオススメなのは間違いないと思いました。
そして、AVRのアーキテクチャって素直でいいなと再認識しましたw
C用のアセンブラ関数(AVR用です)書きつつお邪魔しました。寝るべ
192 :
774ワット発電中さん :2012/09/11(火) 06:50:17.92 ID:L5yVBeBk
193 :
774ワット発電中さん :2012/09/11(火) 07:27:17.25 ID:L5yVBeBk
TEST
>>189 BASCOMがCortexに対応いてくれるのを祈るしかないのかな。
それともCを覚えるか
自分もBASCOMが楽なのでCは敬遠してるのですが、逃げててもしょうがないので
Cが使えるように書籍とかサイトを見てますが、まだ理解できてない。
196 :
774ワット発電中さん :2012/09/11(火) 10:44:42.47 ID:aXFmNu8d
>>195 C はやっぱ便利なストラクチャード・マクロ・アセンブラみたいな
もんじゃないですか。
組み込みやってる訳ですから、最低 C はやっとかないと完璧に
チューニングできないですよね。
68K のアドレスレジスタ(高機能インデクス・レジスタ)が、
ポインタなだけで、あとはアセンブラと一緒ですよね。
atmelstudio6 で tiny13a のデバッグで内蔵シミュレータ使ってますが sei 命令で SREG の I ビットがオンしない。 何か特別な操作が必要なのでしょうか?わかる人いますか。
>>193 アルディーノ(だっけ?)で良ければいくらでも
>>197 sei命令の後にnop1回実行したらONしない?
201 :
774ワット発電中さん :2012/09/11(火) 14:53:46.86 ID:IQry30co
教えていただけないでしょうか。 RESET端子にリセットICを付けてみたのですが、 BODをONにしとけば意味の無い事でしょうか?
リセットIC以上のリセット制御回路が入ってる 少ない部品で確実に動く事が最前提のマイコンをもっと信じろ
VCCラインの監視だけであればBODで十分です。 BODが使えない動作状態を使うのであればリセットICも意味がありますが、 普通は要らないですよ。
>>200 nop 入れてみたけど同じでした。実機では動くし、シミュレータも手動で I ビットオンすれば動くのですが気持ち悪いです。
>>204 試してみました。seiのところをstep intoで通過するとONしませんね。
1命令以上後にブレークポイント入れて通過させるとONします。
まぁシミュではよくある話ですなー
>>202 ,
>>203 付けてからふとBODが有る事を思い出したのでした。
やっぱりBODを有効にすれば良いことでしたか。
得しました。どうもありがとうございます。
207 :
774ワット発電中さん :2012/09/12(水) 00:10:16.21 ID:/qvPKAbb
シリアル通信でブレイク送信をしたい時、Txピンを一回普通の出力ピンにしてLowレベルにした後 また通信用のピンにして信号送ってるんですが、もっとスマートなやり方ってありますか?
ボーレート下げて00送信はどう?
209 :
774ワット発電中さん :2012/09/12(水) 00:21:39.86 ID:/qvPKAbb
PORT設定はLow出力に固定しておいてUARTのTXEN設定ビットをON/OFFしたほうが簡単ジャマイカ?
オーバーサンプリングしたくて応用記述AVR121を見ながらやってた 試してたのはATmega168で、ARef2.5Vを1kHで0.1Vp-pで発振 (VCC3.3でパルス入れてたからちょいずれ) 最終的には無事12bit相当になったんだけど 思考錯誤してる時、下を約0.8mVから拾ってて意外とリニアに反応 もちろんそうしたい訳じゃなかったんだけどおもしれえなw 未使用・未接続のチャンネル1つ使うけど
>>205 オンしました、これでしのぎます。ありがとうございました。
Chan氏のサイトどおりLPTのSimplfied作ってAtmega1284Pに書き込んなんだがavrspをCMDから起動すると「Device
>connection failed.」と出る。
>
http://www.mcu-tips.com/AVR/AVR-0022.html これみて書き込んだ。いくつか気になる点が。
>
>AVRSP.exeをインストールしたときに対応マイコンの中に1284Pがなかった気がする。
>batファイルを作成した際にavrspじゃ通らなかった。フルパスでいれた。
>
>ソフトに原因?ハードに原因?
おっと携帯から書き込んだから引用符が着いちまった。気にせず
おっと携帯から書き込んだから引用符が着いちまった。気にせず
ああ使い慣れないもので…。連投すまん。 あと、atmel studo6使ってるんだがwinavrを選択するとこがなかった。
もういい。諦めろ
218 :
207 :2012/09/12(水) 21:40:07.77 ID:/qvPKAbb
>>210 説明が下手で申し訳ないですが、今やってるのがほぼそのやり方です。
(一回一回PORTはLOWの命令を送ってますが)
その後タイマーで時間計ってまたTXENをいじるのがごちゃごちゃしてる感じで煩わしいと感じていたのです。
タイマーとか使わずに何とかならないものかなあ、と。
219 :
774ワット発電中さん :2012/09/12(水) 23:01:04.70 ID:YyYiykZ6
>>216 環境構築は親切なサイトいっぱいあるんだからここで聞くより見たほうが早い
それに数日前のログにもあったようにSimplfiedは動作しないPCも多い
ポートのドライブ能力によるものなのでダメなPCはどうしようもない
だからこそBufferedタイプが存在している
>>218 タイマーの使い方に慣れていないからではないだろうか?
sleep(ms)などのように関数化したものを用意しておけば以下の3行で終わる
UCSRB &= ~_BV(TXEN);
sleep(10); // 10ms wait
UCSRB |= _BV(TXEN);
ボーレートを下げるのもいいが送信完了をポーリングしなければならないし、
ウェイト系は一度作りこんでしまえば便利なのでトライすべし。
220 :
207 :2012/09/13(木) 00:03:39.35 ID:780QO3t/
>>219 あまりに勉強になるレスに感動した!ありがとうございます!
221 :
213 :2012/09/13(木) 17:10:19.86 ID:GjCGP5gm
ハードの問題かソフトの問題か原因を切り分けたい。あと、ぐぐったがAVR Studio4の 情報は多いがAtmelStudio6の情報は本当に少ない。助けて欲しい。 ソフトの不審な点としては 1.winAVRを組み込むダイアログがなかった。でもビルドをクリックしたら.hexファイルができた。 あれWinAVRってCコンパイラだよね? 2.avrspの使い方がよくわからない。batファイルして呼び出す?そうしたが、フルパス で表記しないと呼び出せない→インストール失敗? ハード 1.Chan氏のLPTを使ったSimpfiedを使っている。 2.配線ミス?こまめにテスターで測りながら作ったが…
LPTの問題じゃないの うちはtoolchainだけ入れてるけど コマンドラインに慣れたら快適だよ ライターは余った88Pとかで作ったusbasp
「Device connection failed.」が出たんなら ライタは動作してデバイスと通信しようとしたがデバイスからの応答が無かった。 この時点ではhex送信する段階まで行ってない。 つまり、ライタの配線ミスかPCがだめなのかのどちらか。 この程度で配線ミスは考えにくいからPCダメに一票
ついでにWinAVRはtoolchainに名を変えた
今更パラレルポートの書き込み環境作っても手間だから 素直にUSBライタ導入した方がいいんじゃないの 昔似たようなバッファ付きの回路でJTAG作ったけど 直ぐにFTDIのUSBのに変えた
>>221 AVR Studio5以降はtoolchainで自動的にgcc入る
SimpfiedはAVRを使ったライター作るために使うには便利だけど、常用にはやめたほうが
UEW電線って信号線ではお前ら何ミリの奴使ってる?
>>227 0.2mm…
もうちょっと細くても良いんだけど、これより細いと急に値段が上がってく気がするんだwww
0.2mm使ってる
0.3mmだったかな。もっと細いのほしいけど、一生かかっても使いきれないほどあるんだ…
UEWみたいな単線て、経年劣化するとポキっと折れたりが怖くない? 何かで固めたいんだけど
ほっとぼんどで留めてる。 線自体の折れは経験ないけど、半田不良な場合は付いてるように見えても、後からポロっと取れることある。
QFPんとき接続先との距離が短いと熱が回って取れちゃう イライラなんだが、やり方間違ってるのかな
長めの線でハンダ付け後折り畳んで収納する
>>234 なるほど
回路図も配置もなんも考えないで始めて
その場合わせのせいで苦労してた気がする…
>>227 0.14mm使ってる、0.3mmくらいのピッチも直視でハンダ付けするので
何mmかなぁ・・100均の時計バラして取り出して使ってる。
238 :
221 :2012/09/14(金) 15:11:18.41 ID:QZo5FCol
tool chainってことはatmelstudio6に同梱されてるって事?
ごめんよく見てなかった。
>>226 ありがとう。ぐぐっても全然そんな情報出てこなかったよ
>>237 時計の中のコイルをほどいてつかってることかw?
>>233 秋月で売ってる逆ピンセットで線を固定してハンダ付けしてるよ
H8用にFTDIっていうの?AE-UM232Rを持っていたのを思い出したw これAVRライタになるのねw
>>240 そう、時計の中のコイルをほどいて使ってる。ボビンに巻いてある状態
だしね。かなり長いし、どこでも簡単に手に入るからお気楽。
バイファイラのときは時計を2個買ってくればいい。
UEW線って電圧差どの位まで使えるんだろ。 +12V、24V、±15V? 線径で被覆厚さ(耐圧)も変わるのかな。
モーター、トランス使うからな 低くはなかろ
245 :
774ワット発電中さん :2012/09/14(金) 23:34:49.06 ID:joQDjcsG
> 電圧差
コイルとして使う分には良いけどICの足や部品の角にぶつかって傷が付いたり したら信用できないね。
どうせ素人工作に使うだけなんだから、「信用」なんて問題外だろ。
AVR初心者です。
AVRISP mkII でにファームを焼きたいのですができません。
アドバイスいただけないでしょうか('A`;)
AVR : ATTINY2313-20PU or ATINNY13A-PU
環境: Windows7 Pro 64bit
Atmel Studio 6.0.1843
AVRISP mkII はFirmware upgraderでupgrade済み
(バージョンの表示方法はわかりませんでした)
手順:
0.ISPをAVRに接続。Vcc/GNDは別系統でも供給。下記ページ参考。
http://i378.photobucket.com/albums/oo223/Pirostuf/Scematic/schematic.jpg 1.USB繋ぐ.
→AVRISP mkII のLEDは2つとも緑点灯.
→デバイスマネージャには、Jungo→AVRISP mkIIと表示されている(認識されている)
2.Atmel Studio6 => Tools => Device Programming =>
3.Tool で AVRISP MKII 選択
4.Device で ATtiny2313 or ATtiny13A
5.Apply ★ここで下記エラー
========ダイアログ===========
Timestamp: 2012-09-15 20:42:21.887
Severity: ERROR
ComponentId: 20000
StatusCode: 0
Failed to set-up tool (no context id returned).
========outputビュー ========
20:42:21: [ERROR] Null pointer, ModuleName: TCF (TCF command: Tool:setupTool failed.)
20:42:21: [ERROR] Failed to set-up tool (no context id returned).
あと、そもそもAVRとISP接続せずに、上記Applyした場合ってどうなるんでしょう?
AVRISP mkII<=>AVR 間が悪いのか PC<=>AVRISP mkII 間が悪いのか切り分けたいのですが・・・
249 :
774ワット発電中さん :2012/09/15(土) 21:46:33.88 ID:zeFs78Ku
AVRのVccとGNDは別に用意するんじゃなかったっけ。 AVRとISPを接続した時に、ランプが青ならOKだけど赤やだいだい色や点滅はNG。
250 :
248 :2012/09/15(土) 22:24:05.93 ID:HJ53iSxy
>>249 ありがとうございます。
Vcc/GNDは別に用意してます(そしてISPピンのVcc/GNDに接続しています)
また、ランプは両方青ですね〜
251 :
774ワット発電中さん :2012/09/15(土) 22:28:07.00 ID:sB2Lwe1J
>>248 ウチはこないだまで7の64ビットでAVRISPmkIIが使えてませんでしたが、LIBUSBが入ってないだけだったっぽい。
けど、デバイスマネージで出てるんならこの理由ではないのかねえ。
単純な結線間違いとか、つながってるように見えるはんだづけがつながってなかったり、
驚くべきことにAVRを上下逆に取り付けていたり、今まで書けなかった時のミスの理由は数え切れないですが。
252 :
227 :2012/09/15(土) 22:43:10.52 ID:vEsvxI8X
お前らありがとう 0.2mm買うわ
253 :
774ワット発電中さん :2012/09/15(土) 22:43:17.14 ID:zeFs78Ku
>>250 RESETを繋いでない時もうまくいかない。
Vccに10Kぐらいの抵抗つけて繋ぐのだったっけな?
254 :
248 :2012/09/15(土) 23:18:27.63 ID:HJ53iSxy
>>251 AtmelStudioのインストール時に最初にドライバインストールが開始されるので、
たぶん大丈夫だと思ってます。
あと、テスタで、AVRの各PINと、AVRISP mkII側の各Pin
が道通してる・・・ところまでは確認済みです。
>>253 RESETもつなげてますね。。
10Kの抵抗は、下記の@、A、Bどこに配置してもだめでした。。
外部Vcc─@─┐
mkIIVcc─A─┴─B─AVR Vcc
再度の質問になってしまうのですが、
PCとAVRISP mkIIだけUSB接続を行い、
AVRとAVRISP mkIIを接続せずに、
>>248 の手順のApplyした場合ってみなさんどうなるんでしょう?
私とおなじエラーが出るのでしょうか?
それがわかれば、AVR<=>AVRISP mkIIの接続の問題なのか否か
判別できるのかなぁなんて。。
255 :
774ワット発電中さん :2012/09/15(土) 23:37:14.68 ID:zeFs78Ku
applyボタンだけではエラーは出ない。デバイスシグニチャーや電圧をチェックするとエラーが出る。
256 :
774ワット発電中さん :2012/09/15(土) 23:42:45.24 ID:jdyjFzg0
257 :
774ワット発電中さん :2012/09/15(土) 23:52:01.35 ID:zeFs78Ku
裏返しになってるのだね。
258 :
248 :2012/09/16(日) 00:01:49.55 ID:lIJ2dMpl
>>255 , 257
確認ありがとうございます!
なるほど、、私の環境だとAVRにISPつなげなくても、
>>248 と同じエラーが出ます。
ということは、AVRISP mkII <=> PC 間で問題ありな可能性が出てきました。
PC側の問題の可能性が出てきているので
別のPC(Vista 32bit)でも試してみます。
>>256 サイト参照いたしました。
やはりPinの接続は大丈夫なようです。。
私が上で挙げたサイトは、AVR側(メス側?)のPin構成
教えていただいたサイトは、AVRISP mkII側(オス側)のPin構成
となっているようです。
259 :
774ワット発電中さん :2012/09/16(日) 00:18:42.46 ID:/1vEMKEg
メスはISP側じゃね?
260 :
248 :2012/09/16(日) 00:48:48.08 ID:lIJ2dMpl
261 :
774ワット発電中さん :2012/09/16(日) 02:49:28.28 ID:IOhMy3L7
>>248 改めてググって見たけれどwin764bitでは普通にドライバインストールしただけではだめで、
デバイスマネージャからレガシイデバイスを云々の手続きが必要とかいう記述がいくつか出てきたよ。
263 :
248 :2012/09/16(日) 10:09:17.63 ID:lIJ2dMpl
>>261 ありがとうございますー
頂いたページを参考に手動でドライバ指定でインストールしましたが、
やはり駄目でしたorz
でも下記でいけました!
>>262 ありがとうございます!
まさにavrstudio5を先に入れてました(+共存させてました)
・一旦Atmel系の全てをアンインストールし、
・c:\windows\system32\windrvr6.sysも手動削除し、
・C:\Users\アカウント名\AppData\Local\Atmel も手動削除し、
・改めてatmel studio 6 をインストール
でいけましたー
みなさん、ありがとうございました!
http://akizukidenshi.com/catalog/g/gK-01977/ これ使って
http://www.geocities.co.jp/arduino_diecimila/avr-writer/index.html この書き込みケーブル作ろうとしたんだが問題が・・・。
atmega1284Pがない。同じ系列の644で他は↑の通りにしたんだがフューズのリードでこんなエラーが
avrdude.exe: BitBang OK
avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
avrdude.exe: drain OK
ft245r: bitclk 4800 -> ft baud 2400
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9705
avrdude.exe: Expected signature for ATMEGA644 is 1E 96 09
Double check chip, or use -F to override this check.
avrdude.exe done. Thank you.
無理なのかな?
すまん英語読めばよかった。−F付ければいいのね。だが別の問題が…待ってね
>>260 いいなあ
うちのデジカメこんなに接写できねえ
プログラムの書込み中とか、プログラムが走っていない時、I/Oピンの状態はどうなってるの?
日本語訳版でいいからデータシート読もうよ
>>268 書いていそうなところはだいたい目を通してみたけれど、
少なくとも自分が理解できる形では書かれてなかった
オンボード書き込み中に入力として他の回路につながってるポートが 出力状態になったらどうなるよ?
「システム制御とリセット」の項目読みなされ
書き込み中はMOSIやMISO、リセット信号がターゲットボードから 自動で切り離されると気楽だよね。 どこかでそんなライタを見たような。
>>272 バススイッチとかスリーステートなんかでいいんじゃね
ワンチップの意味が薄れていくなw
切り離し回路はライター側にないと意味がない。
>275 切り離し制御信号はライター側で出力して、切り離し回路自体はターゲットボードにってのならわかるけど。 ターゲットボード側に特殊なことせずに、切り離し回路をライター側で持てるの?
ライタ側がAVRマイコンなら100Ωの抵抗を直列に入れとけば シリアルプログラム時はライタ側の駆動能力が勝つよ
香港のネットシッョプからの商品がまだ届かないんだけど? いつもなら二週間くらいで届くのに?
279 :
774ワット発電中さん :2012/09/17(月) 19:48:03.15 ID:0CCRNc5y
>>278 >香港のネットシッョプ
wwwwwww
切り離しの制御信号って、RESETの信号使うのかな
281 :
ララア :2012/09/17(月) 20:15:12.03 ID:SGlyez1N
>>277 オンボード側のドライバがAVR直結なら白い方(オンボード)が勝つわ。
100Ωを入れるのは、気休めのフラットケーブルとのインピーダンス整合
して信号が暴れないようを期待するのと、ライタのISP端子とボード出力
/電源ピンとの短絡等による過電流を制限してポートを保護するため。
>>280 もともと10ピンのISPコネクタには切替用の信号がある。6ピンのコネクタ
にはない。
ISPの10ピンはアサインが違うだけで6ピンと内容は同じで切り替え信号などない STK500のマニュアル読んで見れ
>277 駆動能力の問題もそうだろうけど、周辺回路の誤動作防止対策に切り離せると嬉しんだが。 >272,275 そもそもライター側のみの対策で出来るんだろうか?
284 :
774ワット発電中さん :2012/09/17(月) 21:22:07.69 ID:Wbv0rCrl
ISPの場合、たとえばMOSIピンならばそれはプログラミングのシリアル入力になるんだが、 そこが外部への出力ポートであったならどうしようもない。 MISOやSCKについても外部との衝突は避ける設計がなされていなければ問題を起こす可能性がある。 だからChaN氏のサイトにもあるような設計上のテクニックがある。 逆に言えばそういう設計がなされていればライタに切り替え信号なんぞ必要ない。 ISPピンが応用側でどうしても必要であり、書き込み時に切り離さなければならないなら リセット信号に連動して外部との接続を切り離すようなバッファを入れるなりすればいい。
俺はISPのピンにあえてLEDに割り当てたりするw
>>283 私が見たライタ側での書き込み中の自動切り離し回路は、
MCUがハンダ付けされている基板は不可能
ICソケットなら可能
って当然すぎるものだった。
期待させてしまったならゴメン。
追加説明を。 ROMエミュレータを使った事がある人なら すぐに回路が頭に浮かぶと思う。 まぁ、リセットやI/Oをライタを意識せずに 好き勝手に設計できるメリットはあると思った。
288 :
774ワット発電中さん :2012/09/17(月) 22:32:26.34 ID:nBIYF4ED
皆さんはAVRを何につかうの? 使ってみたいけど、活用法方がわからなくて…
趣味の工作に活用なんて言葉は意味を成さない 作ることそのものが目的なのだから
290 :
774ワット発電中さん :2012/09/17(月) 23:18:47.13 ID:0CCRNc5y
んーなこたぁない。 賽の河原じゃあるまいし。
まずはライターを作り そのライターを使って2台目のライターを作るのが定石
>>291 3Dプリンターとかそんな感じみたいね。
ちょっと興味が湧いてきた。
ワンコインマイコンでどこまでいけるか バスを叩く行為に全力を注いでる
294 :
774ワット発電中さん :2012/09/18(火) 00:28:32.24 ID:+6uo+I+/
>>291 火の大きさを自動調節とか?
タバコを取り出したらさっと点火してくれるとか?
あんまり用ないな。
割り込みがよくわからない
bascomのエディタフォントが毎回元に戻る うちだけ?
>>295 普通のプログラミングでいうとマルチスレッドとかイベントハンドラ式の制御に似てる感じかね
ボタンが押されるかどうかずっと見張ってなくてもOSとかに依頼しとけば押されたときに通知してくれる
割り込みって誰が思いついたか知らんけど偉大な発明だな。 ハードウェアとして実現させるまでは大変だっただろうね。
300 :
774ワット発電中さん :2012/09/18(火) 09:01:06.84 ID:+6uo+I+/
ハードウエアとしては、次のように実装されてる。 割り込みポート監視と信号検出 専用スタックへのレジスタ退避 インストラクションポインタ(IP)の退避 IPの固定アドレスへの変更 あとは割り込み処理内で復帰命令がだされるとスタックからレジスタを取り戻し、IPを回復するだけ。 一連の処理の中で、ポート監視はハードウェア実装がいるけど、他はマイクロプログラミングで済む。 ポートの監視もソフトウエア的に済ますこともできるよ。
301 :
774ワット発電中さん :2012/09/18(火) 09:07:05.50 ID:+6uo+I+/
たぶん、だけど、汎用機に時分割処理(TSS)が出てきた頃じゃなかろうか。 あと、昔のマイコンはフリーズ解除のためにリセットボタンがついてた。 これは究極の割り込みで、そこから応用範囲を広げようという発想は当然あっただろうね。
専用スタックへのレジスタ退避とかドコのマイコンの話してるの? AVRスレだよココ
「温故知新」の意味は分かる?
温故するだけのやつも多いけどな
>>302 SRAM無しAVRは専用スタック退避だけど?
90S1200余ってるんだよな…使えない訳では無いが
TINY2313安いし〜Cで書いた方が楽だし〜
306 :
281 :2012/09/18(火) 12:26:43.98 ID:h+GILoG8
>>282 > ISPの10ピンはアサインが違うだけで6ピンと内容は同じで切り替え信号などない
はい、ダウト!
パラレル(LPT)ポート接続の、ATMEL純正のSTK200ライタのマニュアル嫁!
STK200 Starter Kit User Guide
ttp://www.atmel.com/Images/doc1107.pdf 10.1 ISP Lead Layout (35/41ページ)
ちゃんとアナログマルチプレクサICを使ったターゲット側のISP切替回路
例も載っている。
10.4 Using an Analog Multiplexer IC (36/41ページ)
>>305 300がそれを答えることに期待したんだがw
温故もいいが古い情報をさも今時のような書き方してたんでな。
横レスで悪いが306の情報も現行品では公式に除外されてるって意味では同じだね。
割込みって面白いよね 74165の入力ラッチは非同期割込みと言えるし好きなとき見に行ける 今はタクトスイッチ押す時、俺がプログラムカウンタとクロックに同期し nsecで反応すればコンピュータは楽出来ると思って練習してる 結構難しいね、運動神経悪いほうじゃないんだけど
>>306 やっぱ公式でもRESETでアナログマルチプレクサの切り替えは想定してたんだな
外人のサイトでも同じ回路何度か見たわ
310 :
281 :2012/09/18(火) 14:03:21.79 ID:h+GILoG8
>>309 結線図の「/RESET」は誤植で、マルチプレクサは、下の英文説明にある
とおり「/LED」信号で切り替える。
「/RESET」でも大抵は動くとは思うが、「/RESET」で切り替えると「/RESET」
が'L'→'H'のタイミングでのISP端子のセットアップ時間が保証できないのと、
「/RESET」で切り替えると、オンボードのリセット信号でも、AVRのISP端子
のポートはユーザ回路から切り離されてしまう。
Ver.2.0.7.5.002にバージョンアップ
312 :
774ワット発電中さん :2012/09/18(火) 20:32:28.35 ID:3lDzABIP
> はい、ダウト! クイズ番組見過ぎのダウとの誤用w
NYダウ
>クイズ番組見過ぎ さすが団塊言語
315 :
774ワット発電中さん :2012/09/19(水) 01:03:31.57 ID:bFYLLSo5
もうなんでそう対決姿勢かな
316 :
774ワット発電中さん :2012/09/19(水) 03:34:19.00 ID:SKBWXvEF
AVRの内蔵のEEPROMに書き込みすぎて死んだって人っている? 積極的に使うべきかどうか悩んでます 1日100回書き換えるとしたら、10万回/100 ≒ 2.7年 まあいいか・・・
全ブロック書き換えるわけじゃないんだろ?
318 :
774ワット発電中さん :2012/09/19(水) 08:54:19.58 ID:bFYLLSo5
>>316 どうやったら1日100回書き換えを3年間毎日できるの?
2.7年もしたら、何をどう作ったのかも忘れてると思う・・・
書き込みサイズや、書き込み時間がどの程度まで許されるのか分からないけど リードアフタライト・チェックをしっかりやって、 エラーが発生したら書き込み領域をズラしていくとか工夫すれば 結構いけるのでは?
ダメになったら新しいの買えばいいんじゃね? 高いもんでもないし。
いや、人にあげるものなので、 すぐ壊れたら嫌だなーと思って やっぱり使わない方向で考えて見ます・・・
>>318 ?
普通に電子ボリュームとかで(時間間隔おかないような、その都度位置を書き込みする)糞プログラムつくればそうなるんじゃね。
100万回クリアできないチップに当たる確率なんてほとんどゼロ 寿命が来る前に装置が消えてる
寿命が来る前に装置が消えてる 装置が来る前に寿命が消えてる 寿命が消えてる装置が前に来る
さっと見てきたけどaspx使ってる人少ないんだね
SDカードでなんとかなりました SD壊れたら交換してくれということで
どうせ差し換えるなら予備のAVRチップの方がいいような
交換作業そのものはSDカードの方が遙かに楽なような
331 :
774ワット発電中さん :2012/09/20(木) 23:20:57.80 ID:3TJ6/Vq7
交換する頃には読み書きできる容量のSDカードが売ってないような。
ATMELの16Mビットフラッシュ買ったった デジキーで200円 SPI最大66MHzとかすげえんだけど ちょっとの設定保存するにはアクセスめんどくさい かといってマルチメディア系入れるとなると微妙な容量 SDみたいに外してコピーってワケにもいかず… マスストレージ実装しれって? もうiPod touch買ってくる
AVRド素人ですが、質問よろしいでしょうか? avrispmkiiとatmega168/328マイコンボードキット(小文字表記スマソ)購入しましたが、 AVRを勉強する上で、何か、根本的に間違っているでしょうか? Arduinoスレへ行けというのはナシで・・・。
質問自体が間違ってる気がするよw やりたいこと/覚えたいことを書いた上で、買う前に聞くのが一番答えやすい 買ってから大丈夫ですか?と聞かれても答えようがないと思う。
>>334 別によろしいんじゃないでしょうか?w
input ポート1本にタクトSWをつなぎ
output ポート1本にLEDをつないで、
タクトSWを押したらLEDがつくようなプログラムをかいて、試してみればよいのれすww
これができれば、後は、ひたすら、プログラムソースをふくらませていけばよいwww
>>335 失礼しました。
最終的には、アマチュア無線でいう、メモリーキーヤを作ってみたいとは
思っているのですが、「Hallo world」的に、最初のうちは、LEDチカチカ、
ちょっと慣れたらサーボモータの制御、A/D変換とか、まぁ、一般の電子工作で
誰でも通るようなプロセスを経て、やがてはUSBによる制御など、まぁ、ここでは
書ききれないくらいのことをやってみたいと考えているのですが、いかがでしょう?
>>336 返信ありがとうございます。
最初のうちは336さんがおっしゃっているようなことはやってみたいと思っております。
当方、C言語くらいしかできないので、アセンブラはインラインアセンブラと並行しながら
やってみたいです。
ん、?アセンブラは独立して勉強したほうがいいでしょうか?
何かわけのわからんことを書いていたら、すみません・・・。
338 :
774ワット発電中さん :2012/09/21(金) 19:44:07.45 ID:G3VSyrhI
>>337 せっかくAVRを選択したのならアセンブラじゃなくCでいいと思うよ。
アセンブラはめげちゃうし無駄な苦労だからね。
AVRでひととおりしたら、次はmbedをやって比較したらいいよ。
それとxbeeもやるといいよ。これからの常識になるから。
>>338 返信ありがとうございます。
C言語なら、私も少しはできるので、338さんのおっしゃるとおり、C言語で
やってみます!
mbed、xbee、初耳でした。
ググって見てやっと判りました。
AVR一通りやりましたら、mbed、xbeeに挑戦したいと思います。
アドバイス、ありがとうございました!
ArduinoでなくAVR選ぶ人にとってはmbedは好みが別れるだろうね。
>>333 データフラッシュ?
45DB型番のデータフラッシュ8pinSOP版なら、32Mbit品を選ばなかった理由って価格の問題だけ??
64Mbit品以上はTSOP版だけになるから敬遠ってのは理解できるけど。
342 :
774ワット発電中さん :2012/09/21(金) 21:28:31.04 ID:nCOWqTVK
>>339 ハイテンションエクスクラメーション池沼
>>341 逆だったんだ
そんなにいらない・価格の差もない・8Mビット買っててそっちメインだった
デジキーって送料絡みあるじゃん
メモリマップ見て64K/256単位のほうがmegaクラスだと扱いやすいかなって
データシートのそこしか見てなくて買ったのは25DF。3.3Vくらい平気だろと…
IC一個だし適当に落として使うけど、そういう事やるとキリがない
いつのまに4種類も電源作ってんだwww
高効率LV系はあぶねえ
オペアンプでさえ動作電圧と絶対定格の差がほとんどなかったりする
工作でも2.7Vベースにシフトする時代なのかな
>>337 335です。
書いてあるとおりのことなら買った物で大体問題ないかと。
キーヤーだとボタン入力のチャタリング除去なども勉強しておくといいと思います。
例など解説がネットに幾らでもありますので参考に。
USBはVenderIDなどで少し面倒なので、FT232などのUSB-RS232Cが良く
使われています。
ある程度基礎が出来ていれば、組み合わせで色々と作れるので頑張ってください。
省電力でオススメのAVRマイコンはありますか? あと、WinAVRの入門としてオススメの書籍、サイトがあれば教えてください
新しい物程良い たとえば2313より後発の4313の方が省電力 AVRの本は買ったことない (それぐらい判りやすいという意味)
347 :
774ワット発電中さん :2012/09/23(日) 06:36:21.56 ID:k1vMY0hi
試しながら学ぶAVR入門
>>346 90S2313 のことか、tiny2313 のことなのか?
tiny2313A もあるよ。
349 :
774ワット発電中さん :2012/09/23(日) 09:06:48.85 ID:k1vMY0hi
90S2313が安いので買い込んだらAtmelStudio6のチップ選択に90S2313がない。 諦めるしかないの?
Studio4あたりを使おう
>>346 >>347 ありがとうございます
『試しながら・・・』は持っているのですが、少し私には難しくて。。。
AVRwikiやPIC本のわかりやすいのを参考に頑張ってみます
352 :
774ワット発電中さん :2012/09/23(日) 20:14:20.76 ID:k1vMY0hi
>>350 Studio4にもAT90S2313はなかったTT
試しながら・・・ はVC2005だもんな 2010とか最低でも2008とかじゃないとなぁ
354 :
774ワット発電中さん :2012/09/23(日) 21:38:46.39 ID:k1vMY0hi
どこが違うん?
>>354 .NETFrameworkのクラスライブラリ
本買うのはいいけど、 本と同じもの作るのでなければ参考にすらならないことも多い。
どなたか教えてください。 プログラムをブート領域に作成するようtextセクションの開始アドレスを1800h にしているのですが、定数データをROMの先頭に配置しようとしても出力されません。 makefileを見るとtextセクションがスタートセクション指定されているために 消えているのでしょうか? プログラムコードは大きくないので全てブート領域におき、応用領域を低更新頻度で 大容量のEEP-ROMとして使いたいのです。 バイナリを外部リンクする方法は知っているのですが、デフォルトデータを ソースコード上で記述しておきたいのですが方法はあるのでしょうか? gccのリンカオプションとmakefileの書式勉強しなきゃなのですか・・・?
リンカスクリプト弄ればいいんじゃない?
>>357 pragmaでsection指定してリンカスクリプトいじるんじゃないの
了解です。 リンカスクリプト勉強します。
リンカスクリプトおれも勉強したい
363 :
357 :2012/09/24(月) 22:16:37.73 ID:p7tupao9
解決しました AVRStudioのメモリーセッティングでセクション追加していたのですが、 あれって順番関係あるんですねw さらに独自セクションのアドレスを0x00にすると自動生成のmakefileから 抹殺される始末・・・・ 既存makefile使う設定にして中身書き換えました。おもしろかった♪
AES/DESエンジンが無いからXmegaD4選んだのにDMA機能まで削除されてたでござるOrz fatfsのDMA版使いたかったな・・・・
>>364 最近xmegaで遊ぶ事多くて、そのAESがどうのとか見かけるんだけど
ついてるとよくないの?
輸出規制対象の機能だから業務で大量購入だと手続きが鬱陶しいらしいんですよ。 まぁ、よほどの大口でなけりゃ関係ないんでしょ? degikeyとかチップワンとか普通に100個とかリールとか買えちゃうし 一応、あとあとの面倒は回避したいのでDシリーズ選んでみたw
なるほどさんくすです XmegaってATmegaの高速版って言われてるけど そうでもない気がしてきたよ 差動・ゲインアンプも予想以上に素直だった、オペアンプ減らして 中出ししてもいいかもってくらい ただ分解能関係なくノイズにはシビアやね パッケージのこともあるんだろうけど、IOピンの波形も意外と来てる 初めてATmega使ったときPWM波形に感動したよ 自身クロックの半分でもこんなキレイに出すのかwww クロックアウトも鼻水出た ゲートの作りがいいんだろうね
高速版っつっても最大クロック上がった+いくつかの命令ちょっぴり高速化だけだし 用途によりけりだけどmegaシリーズの2倍程度の速度でしょね。 でもそれ以外に比べても例えば↓ ATmega328P ATXmega32D4 ROM 32KB 32KB+4KB RAM 2KB 4KB I/O 23 34 値段 \268 \251 mega328PにはDIPパッケージがあること以外のメリットが無いw
なんか、この一週間ほどボケたりツッコんだり、お題を出したりする気になれない。 どうしてだろ? 秋が来たからな。 サヨナラ、暑い夏! サヨナラ、ご隠居さん! (著者による特別注釈:飽き)
アセンブラつかいっているの?
タイムクリチカルなドライバはアセンブラで書くのが日常な私ですがなにか?
2313に入っちゃう程度のプロジェクト(センサー見てモーター加減速制御してパトライト点ける)だったんで最初からアセンブラで書いた。 ゼッパチや6809やH8で育った奴なら本業の片手間。
ごめん、8080育ちなもんで。
おれはZ80
スーパーエッチです
全部アセンブラで書くかどうかはともかく C言語でもインラインアセンブラとか アセンブラ関数の合体とか覚えとくと便利っちゃ便利。
今、前任者のアセンブラソース改造中 PIC16Fだからつらいよ〜! 読めるけど睡魔が襲ってくるww AVRのアセンブラなら鼻歌もんなんだけどなあ
アセンブラ関数は便利だー
avr-gccの関数内で指定したレジスタだけでコードを生成させる 指定子ってないですかね? スタックへの退避をなるべく避けたいのに、無駄にr18〜r23あたりを 使われて、いちいちアセンブラで書き直すケースがあるので。 割り込みとかで多少効率悪くていいからr24だけしか使わないで 欲しい時とかありますよね? もちろんXYZインデックスレジスタが必要な場面ならエラーで。 これがあるとアセンブラ記述量がぐっと減るんですが。
>380 register int ex_val asm ("r21"); int test(){ register int in_val asm ("r22"); ... } てなコードで test() 内では r21 を避けようと努力してくれて、 in_val を r22 に貼りつけてくれるが、残念ながら > もちろんXYZインデックスレジスタが必要な場面ならエラーで。 XYZ必要になるような事態には容赦なく push される。 俺も割込み向けに push 回避で __attribute__((naked)) 付けて 関数の中身の行の半分くらいを __asm で埋めたりしてるけど、 「アセンブラ記述量」は減るけど読みやすさは向上してない気しないでもない。
効率悪くてもレジスタ制限するって意味がわからんなー 余計なpush&pop減らして効率上げるならわかるけど 実行速度落としてまで回避するのは本末転倒でしょ? それに、そこまでしないと間に合わないんならより上位のコア 使いなさいよってのが風潮だししょうがないやね 万人の好みに合わせられるコンパイラなんてできないよ 贅沢言い出したら拡張メモリエリアのIOポートをコンパイラが自動で 仮想ポートに割り当ててlds&stsじゃなくてin&out使えやとか言い出す人まで出るぞ 多重割り込み使わない前提ならZ80の裏レジスタは便利だったのぉ
>>382 理由は人それぞれだと思うよ
俺は内蔵ペリフェラルに対しての時、「割込み」って概念が気持ち悪い
んで明示して4MHzSPIでSDリード1.2MB/秒同時通信なんちゃってDMAwww
ルネ系みたいにシステムバスと周辺バスが独立してるものは
割込み積極的に使う、そういう意図だし
複雑すぎて抜け道考えてるとあっという間に一日終わるけどwww
もどきレジスタのミッドレンジPICとか、またいでCALLすると戻らないという性質を利用すると
再帰呼び出し・スタックみたいに使えてアセンブラで書いたのにCに見えるw
色々やるのはおもろい
そんなことはともかくWinAVRはいいコード吐き出すな
とてもフリーとは思えない
384 :
381 :2012/09/29(土) 11:44:23.80 ID:kwzdE1Gx
>382 普通にARMも使ってるしARMでも同じことしてるけども。 むしろ久しくAVR使ってないのでAVRがintでやってくれるかどうか自信ないぜ。uint8_t だろうな。 push使わないことによって損するケースはともかく、 avr-gcc はレジスタリネーミングは下手なんで push 使わなくても 同じ手間で出来ることはけっこう多い。
385 :
382 :2012/09/29(土) 12:32:59.12 ID:8Lad1+Lf
おはようござんす
無駄な変換するな〜ってのは確かによくあるよね。
だからアセンブラで書く場面が結構あるわけでw
C言語で書くと暗黙の仕様で絶対保存されたり、極力使用されないレジスタもあるし
しょうがね〜な〜って苦笑いするすることもありまくるね。
「未使用レジスタありまくりじゃんよ!」とかよく思う。
>>383 ってことで、avr-gccはそこそこいいコード吐き出す部類だと思うけど、慣れてしまうと満足できないよ〜
って例でしたww
avrstudio 4.18 あれー?? while(TCNTH0 < 30); ってまずL側をよんでからじゃないとだめなのかぁ うまくループしてくれないからおっかしいなと悩んでた
16bitレジスタに書くときはHIバイトから、読むときはLOバイトから。
というかTCNTH0て何だ? 16bitタイマーならTCNT1H,TCNT1Lだし、8bitタイマーならTCNT0だし。 Cで書いてるならH/L気にせずTCNT1で読む方がいいと思う。
389 :
382 :2012/09/30(日) 17:20:22.83 ID:GNH1Db+M
そこを効率よく上位バイトだけで終わらそうとしてハマったんじゃないか わかってやれよw
tiny43Uってどんなもんなんでしょう?
ああ、最高だ。
最新版のAVR Studio6インストールしたら、ISP認識しなくなった...orz MkU及び、Dragonが使えない。 ファームウェア更新だけは、認識する。 仕方ないので、Linuxマシンに環境構築している。
Uってなんの意味なん? USBエンジンがついてるのかと期待してしまった。
394 :
774ワット発電中さん :2012/09/30(日) 21:12:39.79 ID:HpkbdEm7
>>394 ありがとうございます。
内容通りに、指定ファイルを消したらISPが認識するようになりました。
この程度なら秋月の適当なmegaで足りるから teensyとやらは必要ないけど 回路図あるんなら自作すれば
>>396 MIDI が付いてたのって、X68000 とか一部MSXくらいじゃない?
ゲームポートとMIDIポートは違うぞ
Amazon で 498円で売ってるぞ、USB/MIDI I/F。
404 :
774ワット発電中さん :2012/10/01(月) 19:00:36.06 ID:2d5kw+8G
うろ覚えだが、サウンドブラスターにつなげるMIDIケーブルがあったが ゲームポートにつないでいた。これもうろ覚えだが、ゲームポートと MIDIの両方を使えるようにするアダプターもあったと思う。
>>404 ゲームポートからおまけでMIDIの信号も出てる
ただし本来のMIDIとは規格が違うので、アダプターでそのへん合わせてるんだろう
サウンドブラスターから出ているMIDI OUTと書かれたケーブルが、 MIDI信号が出てくる所なのか、音源のMIDI OUTに繋ぐのかが判らない
407 :
396 :2012/10/01(月) 23:54:20.92 ID:WZQsXH+R
ダヴィンチはFLIPかArduinoどっちかのブートローダが入ってるんじゃなかったっけ。 ISPでHex書き込めるけど。
ダヴィンチはArduinoのブートローダーじゃね
>>410 あーFLIPではブートローダ無理か
ライター要るかも
ブートローダーは書き込み方法が変わるだけで、どれでも問題はないよね。 ただ、Arduinoのブートローダーはおすすめできないので、 da vinciのAtmelブートローダーのほうを買えばいいじゃないかな。 FLIPでHexをプログラムすれば、そのままで動く可能性が高いと思う。 だめだったら、Teensy買えばいい。
AVR Studio調子が悪い。 一時ファイル消しても、ISP認識しないどころか、IDE起動時に ハングアップする始末。 仕方ないので、Linux+avr-gcc4.7.2を構築した。 avrdudeとMakefileの書き方、覚えないと。
414 :
396 :2012/10/02(火) 22:41:24.23 ID:/6Oys+O7
415 :
774ワット発電中さん :2012/10/03(水) 09:40:23.73 ID:pXaN5Oqy
416 :
774ワット発電中さん :2012/10/03(水) 15:29:59.45 ID:HkyFIYnX
AVRを使ってArduinoを作ってますが、PICを使っての同等品(IDEやライブラリが揃っている)のマイコンボードはあるのでしょうか? PICスレでは怖くて訊けないので。
>>416 PIC32にでよければMICROCHIP純正があったと思いましたよ。
ってかPICスレで聞くかArduinoスレの方が情報が集まりやすいと思いますが・・・
>>414 FLIPは、FLIP+Hexになったような。どうだっけ。
普通にFLIPで書き込むと、次からブートローダは起動しなくなるけど、ジャンパをショートすると再度FLIPが起動するようになったはず。
ISPがあるなら、確実にISPで焼く方がいいような。ブートローダは消えるけど。
6ピンのISP端子をつけるランドもあるし。
俺はFLIP版のダヴィンチにArduinoのブートローダを焼いた。
ダビンチとかフリプってなんだ アルデューノも未だよくわかならいwww
AVR Studio6.0 SP1って、割込処理にバグあるね。 Linux環境で、avr-gcc(4.7.2)+avr-libc(1.8.0)環境で、同じソースで、 動作が異なる。 前者は、正常に動作しないし。 後者は、正常に動作する。 マイコンは、ATTiny44Aでの話だけど、こんなこともあるのですね。
チップによって書き込めるプログラムのサイズに上限があるわけですが 自分が(Cやアセンブラで)書いてるプログラムのサイズがいくつくらいになるか 正確に調べるにはどうしたらいいでしょうか? それに応じたプログラム領域を持つチップを選びたいと思っています。
少なくともアセンブラならわかるだろ。
>>422 とりあえず、機械語に互換性がある石の中で一番大きい奴でプロジェクト作ってみたら?
>>421 makefileが違うのかな?
AVR Studioがコンパイルをしているわけでなくgcc+avrlibcってのは同じだから
バージョン違いってのもあるかも
426 :
774ワット発電中さん :2012/10/04(木) 11:38:26.94 ID:U+LmYwlh
Allocated to delivery staff キターー待ってましたーーー
>>423 HEXファイルのサイズ=AVRのフラッシュメモリを占有するサイズ
という認識でよろしいですか?
さすがにHEXフォーマットくらいググれ あまりにも基本過ぎる それにアセンブルやコンパイル時にバイナリサイズは出る 画面に出てくる文字は落書きじゃないんだよ
そういや、コンパイル結果表示ウインドに、 コードサイズは表示されているわけだけど、 開発対象のCHIPを、指定してコンパイルしているわけだから、 「コードがFLUSHにはいりきらないよん」 ぐらい、教えてくれてもいいのに とは思うw
>429 リンカがwarning出してるはずだけど出てない?
英文のメッセージは読まないっていうのがこの手の連中の デフォルトじゃないの?
コンパイラがいろいろ吐き出すメッセージは、コンパイラの中の人による 「俺こんながんばっちゃってすごいだろ?」っていう演出だと思っています
>>432 それは正しい。
「俺ここまで小さくしたんだぜ!誉めてくれや!!」と
ドヤ顔でサイズが表示されるんで見る様に。
人間がマクロ的に読むと、頭いいなあと人工知能みたいに思える変更も、 実際にはミクロ的な置き換えの集積に過ぎないんだけどな
いや、ビルドしたらコードサイズの横にパーセント表示が出るだろ? 100パーセント超えてたら書き込めないことくらい分かるじゃんか
436 :
774ワット発電中さん :2012/10/05(金) 13:20:09.80 ID:SVj8XifT
個人的にはAVR使いでPICは嫌いだけども、MPLABならグラフでRAMとFlashの使用容量が出るねぇ AVRはコンパイルログ読んでください
437 :
774ワット発電中さん :2012/10/05(金) 15:14:23.25 ID:VioZjkk4
seiの直後に置いた命令は割り込みより先に実行される でいいんだよね?
438 :
774ワット発電中さん :2012/10/05(金) 15:24:33.35 ID:VioZjkk4
しかしseiの前の命令をseiの直後にもってくるとうまくいかないのだ この規則は解釈間違い、ガセじゃないだろうか
>>436 グラフ表示は、ROM/RAMを外付けできないマイコンばかり作ってるメーカーならではの機能と思ふ。
それしかし、外付けのSDカードから読み込んで、RAM上で実行するようなソフトをビルドさせたら、どんな表示になるんだろうね。
>>439 PICはハーバードアーキテクチャー DATAエリアのRAM上では
コードは走らない。
441 :
774ワット発電中さん :2012/10/05(金) 15:39:54.45 ID:VioZjkk4
半分ガセだった 説明が面倒だが、 個別の割り込み許可フラグをクリアするためのoutをseiの後に置くと その禁止したはずの割り込み要求フラグが立った割り込みは 実行されてしまうようだ
AVRもハーバードアーキテクチャだろ。
ハーバード大学はすごいな
441はプリフェッチを勉強しような
445 :
774ワット発電中さん :2012/10/05(金) 16:20:02.31 ID:VioZjkk4
そういうタイミングのデータってどっかにないかな アプリケーションノート探しても見つからなかった
だから「プリフェッチ」でググれよ。 AVRがどーたら以前のCPU根幹の話なんだからいくらでもヒットする。 それに、全体割り込み許可後に個別割り込み禁止するんなら 実行タイミングはどうだろうと1回は割り込み発生する可能性があるのはむしろ当たり前な動作だろ? sei実行時点で割り込みのフラグは立ってるけど、フェッチしてしまった命令はとりあえずやっちゃいますってのは この世界では常識なんだよ。
>445 例えばmega168マニュアル(Rev.8161C-AVR-05/09)70ページの 12.1 Pin Change Interrupt Timingの12−1図を見れば、 割り込み要因、割り込みマスクフラグ、割り込み要求フラグとクロックの時間関係が分かるヨ。 (パイプライン処理は別にして)
ごめん、おしえて PCINT割り込みについて 1 GIFRでINTF0を1 このときPCMSKは未設定(初期値0のまま) →すべてのでPCINTピン割り込み起こる 2 GIFRでINTF0を1 PCMSKでPCINT3のみを設定 →PCINT3ピンのみで割り込み起こる 1ですべてのPCINTピンで割り込み起こるのは正常ですか? PCMSKで1に設定したピンのみ割り込み起こると思ってたんだが。
GIFRってなんのレジスタかわかってる? なんか間違ってない?
>>448 GIFRってtinyだっけ?
しばらく使ってないから曖昧だが...
それってフラグレジスタじゃなかった?
PCMSKは1で許可で正解だけど
かぶったw しかし、記述以外に何も設定してないなら割り込みは起きないはずだが 色々と勘違いしてそうだね
更に言うとINT0,INT1とPCINTxもまるっきり違うしね
私も448は少しだけ混乱していると思う。 ところでINT0ソフトウェア割り込みをやりたい場合に、 INTF0=0の状態でINTF0=1を書き込めばINT0割り込みが起こる? (もちろんINT0ハードウェア割り込みが可能な状態で) マニュアルにはエコーリセット(INTF0=1の時にINTF0=1を書き込むと INTF0=0に変わる)しか書いてないけど。
もしそんな動作するならエラータに出るんじゃないか? 割り込み要求フラグは状態に関わらずとりあえず1を書いて消しとくなんて けっこうやることだし 必要無いけどおまじない的にそういうコード書く人多いからね
1書き込んでのクリアーは、割り込み禁止で ループでフラグチェックとかする時の為だね まぁそれ以外でクリアーしたい時もあるけど
>>453 フラグはクリアーしか出来ないけど
ポートを出力にして、PORTxに発生条件出してやれば割り込み発生するはずだけど...
ピンに何が繋がってるかが問題だね
457 :
448 :2012/10/06(土) 01:10:08.24 ID:5RR4Rczf
ごめん GIFR→GIMSK
458 :
448 :2012/10/06(土) 01:12:06.01 ID:5RR4Rczf
ははは、、、 GIMSKでPCIE1を1 このときPCMSKは未設定(初期値0のまま) →すべてのでPCINTピン割り込み起こる
そうなると448で書き込んだ「PCINT3」がおかしくないかい? 0郡?1郡? 質問でこれだけレジスタ間違えまくってるんならソースも間違いだらけじゃないかな・・・
tiny461 系のPCMSK1, 2 の初期値は1だよ 和訳データシートは間違っています
arduinoでヒューズビットとかクロックの細かい設定やスリープモードとかって できるの?
インラインアセンブラで書けばいいと思うよ
>454 そうか、残念だな。 (INT0に限らず全ての割り込みで)割り込み要求フラグを操作してソフトウェア割り込み起こせるなら、 私の中のAVR好感度はさらにアップしたのに。
普通に呼び出せばよくないか? 最後に割り込み許可=1する以外は普通の関数と同じだよ
それと、単に呼び出すと割り込み禁止にならないから cli rcall vector と呼べばいい
了解しました。ベストの方法だと思う。 タイマ0を利用したタスクディスパッチャとユーザー強制(ソフトウエア)ディスパッチャとを別々に作ったんだけど、 全く同じ処理内容なので共用したいという課題が解決できます。
>465-467 いや、それでいいんならいいんだけど... 割込み要求フラグを立ててソフト割込みにするってのは 割込み要求フラグをソフトで立てたあと、 他の優先順位の高い割込みが終わった後に自動で起動してもらうためのものだから。 そのまま呼ぶんじゃ意味半減やがな。
>>468 組込みっていっても今はプラットフォーム思考が強いからじゃね
ハンドラ持ってきて書くとそう見えちゃうよね
CPU・システムバスの支配下にあるものにプログラムから
ハード持ちのフラグにベタ書きベクタ飛ばしとか怖い、「CPUボード」じゃないし
適当にトリガ要因作ってひっかけるハード依存か、グローバルで見てメインの支配下にしてる
(あんま出くわさないけどXBee試した時はやりまくたったwwAPI全実装ざまあwww)
タイマ割り込みでやっている処理を、ユーザープログラムの中から指示して 強制的にやらせたいという私の単純な用途では、目的にかなうのかなと考えています。 貴重な御意見どうも、でした。(467)
>>470 割り込み関数の中身をゴッソり別の関数にして、
割り込み関数内からでもユーザープログラムからでも呼べるようにすりゃ良い。
そんな無理したって結局はプリフェッチだのタイミングだの掌握しきれないでしょ?
例え出来たとしても、それは他のCPUに応用出来る技術には至らないよ。
こういう時は無理を押し通すんじゃなくて、スマートな別の手法を編み出す事を考えるようにすべき。
MS-DOSでプログラミングしてた頃、タイマー割り込みで割り込み内の処理が重すぎて、
処理の途中でもう一回割り込みが掛かっちゃうと変数の値とかで不都合が起きるから、
関数入り口で処理中フラグが立ってたら何もせず終了、
立ってなければ立てて処理開始…みたいなプログラムを良く組んだなぁ。
割り込み部分は一瞬で抜けさせるのは基本だな
フラグとかセマフォーとかそんな感じか。
luaとかrubyとか使えませんか?
Rubyは組み込み向けの軽量版でも数MByteのメモリが必要なんで問題外 luaは簡易な組み込み機器でもときどき入ってるけど、無理だろうなー
追記 スクリプトを走らせるんじゃなくて、スクリプトっぽい言語で開発したいだけなあらBASCOM-AVRがあるよ
ついつい2313で箱庭してしまいます。 大きいの使わなきゃあ・・。
>>466 467です。
御指摘の方法をトライしてみたらうまくいきました。
さらにリストを眺めているうちに、タイマ0比較A一致割り込み処理の先頭に
cli命令を移動すれば<rcall vector14>で完全に共用できる事に気がつきました。
vector14:
cli
---
reti
話を中断して、しかも古い話ですみません。
>>475 >>477 ありがとうございます
普段はwinavrなのですが、mrubyやluaも使ってみたいな〜と思っていたので・・・
組み込みの中でも限られた環境になるんですね
ちなみに今日たまたま見つけたのですが、programmable xbeeは8bitマイコン 32kflashでpython
で開発するみたいです(バイナリにしてから書き込むとかでしょうか)
最適化するとおかしくなるなー。変数全部にvolatile付けたのに他のところで削られてる
>>481 PICの人間で悪いんだが、変数はいくつだ?
>481 念のためだが、 アクセスのない変数が生き残るかどうかはvolatileで制御できないからな。
質問です。 まず、今やりたいことと現状の説明をします。 やりたいことはAVRで電圧をAD変換したデータをPCに送ってvisual basicで表示させる つまりPCオシロを作りたいと思っています。 今は、USART(非同期)でUSBシリアル変換モジュールを介して、データをPCに取り込むところまで成功しています。 ただ内部発振器1MHzでボーレート2400に設定がとても速度が遅いため、20MHzのクリスタルを使って ボーレートを19200まで上げたのですが、データ表示速度があまり速くなりません。 USBシリアル変換モジュールは300kbps〜460kbpsなので、プログラムがおかしいと思い試行錯誤したのですが原因が分かりません。 根本的に何か私が勘違いしているのかもしれないので、何かわかる方がいましたらアドバイスを頂けると助かります。 ↓AVRのメイン関数 int main(void){ DDRD = 0xFC; PORTD = 0x00; UCSR0A = 0b00000000; UCSR0B = 0b10011000; UCSR0C = 0b00000110; UBRR0 = 64; ←ボーレート19200時のレジスタの値 sei(); x = 50; while(1){ while(!(UCSR0A & 0b00100000)); UDR0 = x; } return 0; }
どのくらい遅いのでしょうか? VB側の表示速度の問題はないのでしょうか?
とりあえずターミナルソフトで見るとか、 オシロであたるとかしてみたら?
>目で追えるほど遅いです。 19200bpsに設定してるんだったらダミーデータでも流して本当にそのビットレート出るか試せばいいじゃん 例えばAVRからは延々データ垂れ流してターミナルソフトで受けるとか
皆様アドバイスありがとうございます。 visual basicで受ける前にターミナルでどこまで速度が出るのか見てみます。 また質問するかもしれませんがその時は宜しくお願いします。
データをasciiで送ると遅いよ バイナリで送ると早いけどVBのシリアルは標準でバイナリ受信が出来なかった筈
ターミナルで確認したところかなり高速に8bitデータを受信できているようです。
約1秒間で2000文字送られてきているので、2000*(スタートビット+データ+ストップビット)=20000bitで
19200bpsの設定とおり受信できているようです。
どうやらvisual basicのデータ受信イベント処理の部分に問題があるということが分かりました。
visual basicのところを調べてみます。ありがとうございました。
>>491 上のメインプログラムではデータをバイナリで送れていないのでしょうか?
また、visual basicの話になってしまうのですが、
serialport.readbyteという命令を使っているので、たぶんバイナリデータとして受信できていると思います。(間違っていたらすみません)
ダミーで正弦波とか三角波とか送り出してみれば、 データを撮り損ねてるところで波形が崩れるからやってミイ
>>492 伝送制御文字の何だったかが入るとアウトだったような気がする
>>492 最近のVBはバイナリ受けれるのね 古い記憶でごめん
昔VBでバイナリ受信で苦労して、asciiにして送ってたもんで・・・
RS232Cに流したいデータの値域が00h〜FFhの時に
>>494 の件があったので、
1)転送データをHEX表現に変換←文字数は2倍
2)連続する同一文字は圧縮(繰り返し数をHEX文字以外の文字コードで表現)
ってやったなぁ。
30h31h32h・・みたいなバイナリを "333・・・”"012・・・”みたいなHEX表現にして、
連続している"33333"を"J3"に置き換える感じ。Jが5個Kが6個みたいな。
XON/XOFF制御なんてのが必要なほどハードがしょぼかった頃の昔話ですなー
>>495 なんてVB4時代でしょ どんだけー
参考にしている図書は何かあるの?無闇矢鱈に目盲滅法つくってるの?
>>498 普通、無闇矢鱈に目盲滅法にプログラムは作らないだろ?
どんな人間だって少しは考えると思うぞ。
馬鹿の考え休むに似たりで、下手な鉄砲数撃ちゃあたる式で 人力Brute Force Attackでとりあえず手を動かすw 無い知恵絞ったって無いモノは無い。先達はあらま欲しけれ。 って人もいるよ。俺なんだけれど。書いては消し、消しては書いて・・・賽の河原
何を言いたいのか良く分からないが「とりあえず石積みガンバッテくれ」と これが欲しい、あらまあれも欲しいの欲深い先達の俺からエールを送っておく。
AVR Studioのver4の最終版を入れようと思ってるんだけどC言語は別途入れる必要ある? 必要があるとしたら何を入れたらいいかな?
>>502 WinAVRで良いんじゃないかな…
AVR Studio4だと、WinAVRを先にインストールするかどうかで影響あるのかどうか何時も悩むけど。
むしろStudioの方が不要なんだが
だからWinAVRはもう開発終了だってば
ATMEGAってなんて読むの? アットメガ?
エーティーメガって呼んでる
>>506 もしかしてATMELに掛けてる?
と今更気が付いたwww
そうなら「アトメガ」でも良いんじゃないか?良いんじゃないか?
ATMEGA=アトメガは発音しやすいけど ATTINYをアトタイニーってなんか呼びづらいw
>
>>508 WinAVR最新版の日付け見たら変だと思わないか?
このスレでも何度も語られてるから調べてみ
ネタに付き合おうw μPC ← なんて呼んでる?
Knightの K みたいなもの>AT
>>511 調べてみた。
AVR Studioのバージョンが4から5にアップしたときにCコンパイラもAVR Studioに内包するようになったのね。
ってことは今更AVR Studio 4をインストールするんじゃ無くて6をインストールしろよ、って話になるの?
前にも話題になってたが、6は重いんだよな AVR Toolchain最新入れといてStudio4って組み合わせでも動くから そのへんは好みだろう。 ただ4では今後出るデバイスのシミュレーションをサポートできない
4+WinAVRの最新版じゃだめ? 今さらコマンドラインはどうよ、って感じだし・・・
AVR STUDIO4.19はWinAVRじゃなくてTOOLCHAINだよ。 4.18以前ならTOOLCHAINじゃなくてWinAVRになる
AVR Studio5を使ってるんだけど6は5よりも重い? 4より5が重いってのは分かるが
Core2Duoの2GHzなノートで別に気にならないけどねぇ<AVR Studio6 ただ、エディタは別の使い慣れたのを使ってるけども
>>517 今さらコマンドライン、って一番頼りになるじゃないか
下手糞なGUIだけ用意されてもログも満足に取れない代物になるだけだよ
コマンドラインツールとして作ればGUIラッパーからも使えるし、
開発ツールの基本だろ
Eclipse + AVR Toolchainで開発してるから AVRStudio はいらないなあ。 ところで、Windows8でAVRISP2を使えるようになったけど、インストール法を 知りたい人はいるだろうか?
>>517 WinAVRがToolchainに名前を変えて更新されてるんだから古いWinAVRにこだわる必要は無い。
>>520 大きなプロジェクトファイルになると起動がめっちゃ遅いしバッガの起動も遅くて
日常的に使ってると非常にストレス。
気にならない人はどうでもいい。だから「好み」であり、「俺には」重い。
>>522 デバッガを使わないor使えないor買えないなら確かにStudioは要らん。
AVR Stuidoは確かに出来が良いとは言えないのかもしれないが、別に使いにくいわけでもない。
統合環境としてどこまで使うかによって価値が変わると思う。
私がアトメル製のもので使っているのはMCUだけで どこかの誰かが作ったマクロアセンブラとエディタと 自作のISP方式ではないライタとデバッガでプログラムを作っているから 既製の開発支援装置のソフトやハードに起因する訳の分からないトラブルで悩むことは無いし 断り無くバージョンアップされて聞いてないよぅと困ることもないし 自分で対応できない開発支援装置のバグもないし 古いMCUのサポートを続けつつ新しいMCUへの対応も簡単だけれども 問題が全く無いというわけでもない 以上AVRユーザーの中にはこんな人もいるという一例でありんす
きもい
誤爆 524のことじゃないのでスマン
自分はStudio6を自分好みにカスタマイズして使ってるよ ちなみに書き込みはワンクリックで出きるように メニューバークリック→WHS→Ver4付属のツールを実行ってな感じにしてる まぁ確かに重いが、いらない機能を削れば許容範囲かな...
Visual Studio に慣れてる人にはあれ以上使いやすい環境もないだろうなあ。
529 :
774ワット発電中さん :2012/10/16(火) 19:11:58.90 ID:bpYB9lTz
Visual Studio 使わない場合は、コマンドプロンプトでコマンド入力するの?
コマンドラインツールならスクリプト書いてランチャーに登録してボタン一発だよ いちいちStudioとか立ち上げたりしない
531 :
774ワット発電中さん :2012/10/16(火) 19:51:27.00 ID:bpYB9lTz
コンパイルまではできるとして、マイコンに書き込むコマンドがあるの?
>>518 うわっ、それ知らなかった(;^ω^)
そういう情報ってどこで得るの?
ちなみにすでにAVR Studio 4.19インストールしちゃったんだけど
GNU Toolchainをインストールする際はいったんAVR Studio 4.19をアンインストールしてからの方がいい?
>>521 >>523 > WinAVRがToolchainに名前を変えて更新されてるんだから古いWinAVRにこだわる必要は無い。
もしかしてAVR Studioから使う限りにおいては、WinAVRでもToolchainでもその存在を気にしたり
コマンドラインでコンパイルしたりする必要は全く無かったりする点は同じだったりする?
ぐぐれば判る質問には答えないので さいならー
答えないならスルーしとけばいいのに・・・ と思ったのは私だけかなw 参考にしたいページや本がWinAVR使ってるので、WinAVRでスタートしたいと思ってた私には、 518さんの情報は凄くありがたい。 今から4.18落としてこようっと。 532さんも似たような状況かな?w
このスレって英語読まない率高いのかな・・・・・ WinAVRやATMELのサイトに普通に書いてあるんだが・・・・
データシート読む必要があるから英語は読むでしょ
537 :
774ワット発電中さん :2012/10/16(火) 22:11:43.21 ID:bpYB9lTz
金が無い。 COMポートのないPCとの通信をUSBシリアル変換モジュールを使わずに通信する手段はないだろうか。
538 :
774ワット発電中さん :2012/10/16(火) 22:32:05.74 ID:4h1BLJyV
マイクとヘッドホンの端子で音響カプラ
モニター画面を点滅させてセンサーで拾う トラ技だったかな、 PICか何かとCRTで実際やってたと思う
V-USB使うとか?
>>531 いまだに4.18だが、stk500.exeってのが入っててそれで書き込める
うちも6にしようかな、米粒とかも使いたいし
渡されたプロジェクト名でXMLからデバイス名拾って そのstk500.exeを呼び出すスクリプトを作り Studio6のメニューに貼り付ければ 4みたくワンクリック書き込みok *.elf書き込み、*.hex書き込みボタンと2つ作れば便利かも
おっと読み直したら流れが違ったようだ
>>537 マジレスするなら、その程度の金もないなら、他の趣味を選んだ方がいいよ。
546 :
774ワット発電中さん :2012/10/17(水) 08:43:01.07 ID:mUWCVZYQ
電子工作より金かかんない趣味って オナヌーくらいかねw
プリンタポートでもIDEでも 何ならPS2でも工夫次第だろ
うーん、という事は電子工作と一人Hを組み合わせれば最強の趣味になるんだ。 mega328制御の各種センサー付きフルオートマティック電動ホール装置とか。
アクチュエータに何つかうんだよw サーボはねぇだろw 若松の上のロボット部品フロアに、 電流で発熱して、縮む人口筋肉があったなww あれをTENGAに巻いてAVRで制御するかwww
わろた
学習リモコンみたいに 自分の手の動きを記録して再現させるのもいいな 自分のツボを一番良く知ってるのは自分自身だからな
携帯とかに使う振動モーターでうぃ〜んうぃ〜ん
アクチュエーターの他にセンサーも要る
トラ技ジュニア 2012年11・12月号 音声合成マシンで 彼女GETだぜ!
include <Arduino.h> ってすれば・・・
WinAVRとAVR Toolchainって同居可能ですか? AVR Stuido 4.1.9で使う予定です。 WinAVRtoAVR Toolchainの両方を入れてAvrStudio上からプロジェクトを作ってみたのですが Configuration OptionsのCustom Optionを確認してみたところ”Use AVR Toolchain"にチェックが 入っていました。 チェックを入れたままだとAVR Toolchainに含まれるGCCコンパイラを使い、 チェックを外すとWinAVRのGCCコンパイラを使うのでしょうか?
コンパイル実行してみればすぐ分かるんじゃないの? なぜ実行できる環境があるのにさきに聞くんだろう? 出力メッセージ読めないのかな? 英語読みたくない人多すぎるよ
558の言ってることは間違ってないけど、嫌味な言い方するね・・・
じゃあ嫌味にならないお手本でも書けよ
おれも
>>558 に完全同意だし
こういう質問するやつは死んだ方がいいと思ってる
こわw
流石に「死んだ方がいい」は言い過ぎ。 せめて「AVRを使う資格も権利も無い」程度にしとけって思ったw
市ねとは言わないが、この世界に向いてないね。 さっさと足を洗って別の道を目指した方が幸せになれるとは思う。
wikiがほとんど死んでるから初心者にはちょっとハードルが高くなってるのかもしれないね。
AVRStudio+WinAVRってのは、それまでAVRStudioにGNUツールが含まれていなかったから
WinAVRに含まれるGNUコンパイラ・リンカとAVRlibcが必要だっただけ。
4.19からはTool chainで含まれるようになったので不要になったと言う方が正しい。
>>557 について俺が思うのはなぜ中途半端に古いコンパイラ&ライブラリを同居
させたいのかと言う事だ。
ビルド結果のバイナリが変わるのが困る?=仕事リリースしている?
それならプロとして質問がお粗末過ぎるし、ビルドそのものができなくなったなら
ライブラリのリリースノートを読めば済むことだ。俺の知っている限りそんなに
大きな仕様変更はここ最近なかったはずだが・・・・
AVRStudioが提供しているのは統合環境であってコンパイラではないと言うことを
理解していない人が多いような気がする。
そんなにムッとする質問でも聞き方でもない気がするけど… チェックが入ってるって見て確認の上で聞いてるんだし ちょっと上の話題もきつい感じ AVRスレどうしたの 電電マイコン系ではゆるい雰囲気だったのにねー
すぐイラッときて文句言う奴は余裕がないからだろ。 俺なんか「金持ちケンカせず」で、たいていの事は許しちゃうぞぉ。
(続き) 最近、怒った事と言えば 「アトメルのボケが! さっさとAVRStudioの日本語バージョン出したらんかい。 英語読めんやないけ、いてこましたるぞ、こらぁ!」 ぐらいのささやかなもんだった。 みんなもワシを見習ってな。 (途中からどういうわけか関西弁になってしまった)
嫌味とか頭ごなしに否定とかじゃなくてもうちょっと指南するような回答もできるだろ そもそもの考え方のヒントを与えるとかさ こんな雰囲気だと人増えないぞ とはいえ同じような質問が多いからwikiのほうに集約して誘導するようにした方がよさげだな あと質問スレも兼ねるならテンプレやルール的なものもあったほうがいいかもね
みなさんは解説本を借りたり買ったりしないのですか?
ATMega32U4のUSARTで負論理の信号を受信することは可能だと思いますか。 他のAVRはわからないですが、これのUSARTは負論理を扱う設定がないです。 扱っているシリアルの設定はasyncronous, 1200bps 1-stop, non-parity, 8bit dataです。 インバーターを入れるか、ソフトウェアで処理するのが筋だと思うんですが、USARTの9th bit, parity error, frame errorなどを駆使して元データを復元できないかと。
そこまで低速なら適当なピン変化付きのポートに突っ込んで 反転させて違うポートからUSARTに突っ込めばいいんでね
>>570 初めてさわったZ80の時にはweb環境も無かったので本見ましたね。
今はwebで必要かつ十分な情報は得られると思うのですが、
本と違って自分で情報を掘り起こさないといけないのが初心者には
つらいところだと思います。
検索力が問われますね。
>>571 論理反転ってことは
アイドル状態 → ブレーク状態
スタートビット → アイドル状態
に変わるからキャラクタ検出が無理ですね。
uart部分で論理反転設定できるものを私は見たことが無いw
普通、CPUとCPUの間にはインバータ2個が間に入るけど、1個しか無い場合の受信は? という質問ではなかろうか。 572のアイデアにちょっと感心した。 外部入力のエッジ割り込みで反転処理してシリアル入力へ出力すればプログラムもノータッチになる、という事ね。 ん?レベル割り込みの方が良いのかな? 応答速度とボーレィトの問題もあるし、詳細は要検討だな。
日本でAVRが流行らないのは老害が先輩風吹かせて威張り散らしているってのもある気がする PICは歴史は古いけど日本でのユーザー年齢層はAVRより若い印象を受ける ここらへんの違いは不思議なもんだが文化ってやつなのかね?
>>575 多分、そういう問題じゃないと思うよ…(苦笑
出来の悪いマイコンほどかわいいってやつだな
逆に、無理矢理PIC使わされた覚えがあるから、PICは嫌い。
どっちでも似たようなものなのに、PICの本ばっかりやたらと出てるから
書籍はH8の方が充実しているような
コンパイラがGCCって1点でAVRを選ぶ
変なクセがないと聞いたのでAVRではじめてそのままw アマチュアでやりたいこと優先なので使えりゃなんでもいいです。
ニーチャン →生まれて初めて接したCPUがたまたまPICで、PICしか知らない→PICユーザーになる オッチャン →過去に接した多くのCPUと比較して選択する→AVRユーザーになる いわば桜少年が道程を捧げた悪女に夢中になるようなもんだな。
PIC使わされてて、あまりにウザいアーキテクチャにぶちきれて 他探したらAVRというぬるま湯を見つけた。
アセンブラで書かないといけない縛りがあったらそうだろうな
AVRより20年も古いアーキテクチャのMCUと比べて悦に入る…読んでて恥ずかしいよ。 AVRが優れていると思うなら、後ろを振り返る必要は無いだろ。
必要は無いかもしれけど振り返るのが悪いわけでもなかんべ? ここはそういうスレなんだし、なんか最近スルー耐性のない人がわいてるなぁ・・・・ PICから移行できないやつのヒガミとか言いだす人もいそうだから そういうの書かない方がいいよ。
後ろを振り返ってるんじゃないw 後ろから来たんだよ。
停滞しているAVRじゃ振り返ることしか出来ないのさ
>>589 ?
停滞しちゃってるのは一部ユーザーだけであ?
AVR自体はファミリ展開増えてるしAVR Studioだってバージョン上がってる。
あのArduinoだってATMELのCoretex-M3の奴用意しちゃってる訳でww
色々と選べるんだから バンク切り替えとwレジスタのアーキテクチャを今からわざわざ使うこともあるまいに
> AVRより20年も古いアーキテクチャのMCU これをいまだに業界標準のように扱う奴が多すぎるってのが問題なのでわ? 8051って例外もあるが、さすがにPICはねーだろって思う
8086なんて34年前だけど未だにアーキテクチャーが継承されている
594 :
774ワット発電中さん :2012/10/20(土) 01:05:55.05 ID:TMx72pIr
過去の慣性力? それとも 偉大な構想力?
> AVRより20年も古いアーキテクチャのMCU 「年寄りの厚化粧」って知ってる? 惚れている君には美人に見えているようだけど、冷静に観察してごらん。 シワだらけだって分かるよね? > 8086なんて34年前だけど未だにアーキテクチャーが継承されている 全てのCPUは42年前の4004のアーキテクチャが「継承」されている。 PICファンの君も仲間というわけで、メデタシ、メデタシ。
>全てのCPUは42年前の4004のアーキテクチャが「継承」されている。 4004を分かって言ってる?
女子高生だけどなるほどさっぱりわかんねえ
>595 その表現で言えば、それらのレスって 30歳の女性(AVR TINY,MEGA,XMEGA)が50歳の女性(PIC16)と比べて私のほうが 綺麗って言ってるようなもんだろ、そんな話を聞かされたいのか? だいたい比べる相手がなんで、そこなんだよ。同年代(PIC24,dsPIC,MSP)や もっと若い娘(ARM,PIC32)と比べろよ。
>>598 なんでもっと若い子にAVR32が入ってないんですか。
一番若いじゃないですかww
ATtiny2313を逆刺し、つまりGNDとVDDを入れ替えて電源ON 焦げ臭い匂いに気が付きすぐにOFFしたが、ブレッドボードに焦げ痕が 100円がゴミになったぜくそーと血涙を流したが、壊れてないんだなこれが なんでこんなに丈夫なの
電源逆だと そこそこの内部抵抗を持つI/Oポートの沢山の保護ダイオードが総動員されるから壊れないという俺の仮説
>>600 俺もやったことあるわ。
焦げ臭くて逆差しに気がついたけど壊れてなかったという落ちwwww
プログラムも逆から動いているという俺の理論
>599 ああ忘れてたw しょうがないよな、だってこのスレで"AVR32"が出たのお前のレスが最初だぜ
パラレル・ライタのデバッグ中に、実験用電源からカチャカチャと不思議な音が聞こえたので ん、なんだべ?と思ったら電源の過電流保護回路がオン、オフしていた。 電源(Vcc)が入っていないmega168の多くのI/Oポートに 外部から電圧が加わってしまったのが原因で、 mega168過電流→保護回路オン→mega168電流断→mega168復帰→保護回路オフ→mega168過電流→ の無限ループになっていた。 すぐに、常にVccが加わるようにプログラムを変更したが、 もちろんmega168は壊れていなかった。
606 :
774ワット発電中さん :2012/10/20(土) 18:28:47.29 ID:zBm9eVqH
> もちろん
>605 その電源は市販?自作? 過電流保護が働いたあと、何にもしないうちに勝手に復帰したら過電流保護的にいかんだろう。
どうやっても解決できなかったから助けてほしい ATMega328にAVR-CDC(232C)を書き込んでみて、 USB接続とドライバインストール、仮想COMポートの構築まではできたのに、 ターミナルで接続できない。 ハイパーターミナルでは「COMxを開くことができません。ポートの設定を確認してください」 と出るけど、特に間違った設定にしてもいない。 COMポート番号も他の機器と競合しないように色々変えてみたけど、症状は変わらない。 回路はサイトにあるものとほぼ同等(違うのはクリスタルの周波数、20MHzに変更)だし、 当然F_CPUの値も20MHzに変えてビルドしてる。 環境はWindows XP (SP3) 開発環境はちょい古めだけどAVRStudio 4.18 WinAVR 20090313版 何か思い当たることあったら教えてほしい…… お願いします
>>608 本当にミスなく回路作れてる?
他にシリアルポート使う機器がればそれで試したらどう?
ソフトを変える手もあるよ。
>>609 回路にミスはない。というより仮想COMポートとしてはちゃんと認識してる。
>他にシリアルポート使う機器がれば
とあるけど、Rx,Tx線には何も繋いでない。
ただポートをターミナルで開く分にはなくてもいいはずと思ったからなんだけど、絶対必要だったりする?
ソフトはHypoTerminalも使ってみたけどやはり接続できない。
ハイパーターミナルなんて シリアルケーブルが未接続の状態でもエラーなんか出ないぞ USB-シリアル 変換器が変
>>611 USB-シリアル変換器の役割を果たしてるのがATMega328なんです……
だから何が変か心当たりないかなぁ、と……
>607 電源はMETRONIXの532Cで容量は35V-2A。 大昔に秋葉原のラジオデパートのB1のジャンク屋で(今は無い)確か2、3千円で買った。 制御回路はシンプルだけど、それ故に何でも自分で修理できてしまうし、 使いやすいので他のデジタル設定の実験用電源よりも愛用している。
614 :
600 :2012/10/20(土) 19:28:12.82 ID:wLPWz9zS
よしっ、これから冬場はAVRで暖房だ
>>608 LinuxをUSBからでもCDからでもいいんで起動してみる
その作成物を差す
Linux端末で「dmesg」+改行と打つ
usb 4-2.2: new low speed USB device number 20 using ohci_hcd
usb 4-2.2: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
usb 4-2.2: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
usb 4-2.2: New USB device found, idVendor=16c0, idProduct=05e1
usb 4-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-2.2: Product: USB-232
usb 4-2.2: Manufacturer: www.recursion.jp
cdc_acm 4-2.2:1.0: ttyACM0: USB ACM device
成果物の問題なければ、こんなメッセージが出てくるし
ダメならXP側の問題じゃねーか?
ちなみにこれはcdc232.2011-06-24をATtiny2313に焼いて繋いでみた結果
ポート番号が大きすぎるとか、
>>608 クリスタルの周波数が重要だったはずじゃ?12M
一応認識はされているようだから、GET_DESCRIPTOR(DEVICE)はうまくいったの かなぁ? USBVIEWではちゃんと見えてるのかな?
デバイスが認識してる状態なら周波数は関係ない あとはAVRCDCってハブ経由だと使えないから外してみるとか
619 :
612 :2012/10/20(土) 22:44:47.26 ID:6bLC2kSg
皆様ありがとうございます
>>614 やってみましたところ、似たようなものは表示されました。
自分には意味までは理解しかねますが……
usb 4-1: >new low-speed USB device number 2 using uhci_hcd
usb 4-1: >config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
usb 4-1: >config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
usb 4-1: >New USB device found, idVendor=16c0, idProduct=05e1
usb 4-1: >New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-1: >Product: USB-232
usb 4-1: >Manufacturer: www.recursion.jp
cdc_acm 4-1:1.0: >ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
usb 4-1: >USB disconnect, device number 2
usb 4-1: >new low-speed USB device number 3 using uhci_hcd
usb 4-1: >config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
usb 4-1: >config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
usb 4-1: >New USB device found, idVendor=16c0, idProduct=05e1
usb 4-1: >New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-1: >Product: USB-232
usb 4-1: >Manufacturer: www.recursion.jp
cdc_acm 4-1:1.0: >ttyACM0: USB ACM device
>>617 すみません、自分には良くわからないです。
どのようにすれば良いでしょうか?
>>618 ノートPCですが、ハブは経由していません。
また、Webサイトに「稀に他のドライバと競合する事が〜」と書かれていたので、
他のPCでも認識するか試してみましたが、同様に認識はするものの、ポートは開けないという結果になりました。
こちらもハブは経由していません。
>usb 4-1: >config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt >usb 4-1: >config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt デバイス側でエンドポイントの設定か動作のどっちかが間違ってないかい
>>620 デバイス側、という事は今回はマイコン側ですよね。
すみません、書き込んでいるプログラムについてはさっぱり理解できていません。
とりあえずそのままビルドして書き込んでみたのですが、そうなると何か設定が必要なところがあるのでしょうね……
ありがとうございます。少し確認してみます。
亀だが、結構前にブレッドボード上で1列ズレた状態でAVRを差してしまったが、 これまた壊れずに現役なう。まあ、電源が貧弱なレギュレーターってのもあるのかもしれないが
>ほぼ同等 クロック変えただけならMakefileしかいじるとこ無いと思うんだが 付属のhexは動いたのかな?そこから確認し直し 繋ぐ対象が無いならRXとTXを繋いどけばループバックテストになるからそれで RXに何も繋がないのはアウト 最低でもVCCにプルアップしておくこと
>>621 SPECIFICATION
=============
AVR-CDC with USART (ATmega8/48/88/168)
そのファームmega328に対応してないんじゃないの?
一応認識されるところまではいってるんだから、その上での問題でしょ。
>>626 V-USBってどんな処理やってるか知ってる?
168と328の違いでメモリサイズだけじゃなかったっけ?
v-usbでUSBのD+,D-に使用するPD0,PD2をPB0,PB1に変更することは可能でしょうか? 外部の割り込みを使うため、INT0必須でPB0,PB1への変更は無理だったりしますか? 参考にできるWEBページなどあれば、ぜひ知りたく・・・
>>627 それ以前に、USBのデバイス認識を理解できてる?
>>631 V-USBのクロックはずれていくのを補正しながら通信している。
一部のパケットが通っても、他のパケットが通るとは限らない。
>>632 何が言いたいんだ?
>>619 見ればパケット通るとかそういう段階はパスしてるでしょ
それより上位の問題だよ
>>633 V-USBはUSBの信号をソフトで作っている。
しかもタイミング的には(遅れたり進んだりを繰り返して)かなり際どい。
最初のパケットが通ったとしても、実際の通信でシリアル転送に伴う割り込み復帰のタイミングが他の実証済のAVRと異なったりすれば、
信号生成のタイミングが狂う可能性もあると言っている。
>>634 なんか、V-USB以前にAVR使ったことなさそうな内容だな
そんなことないから心配すんなよw
>>635 上位の問題としては
同期が云々よりも
>>612 がアホなことしてる可能性の方が高い
612帰ってこないし、迷宮入りかもなw
割り込みが発生するタイミングが遅延することはあるけど それをハンドラ側で吸収して同期して動かしてんだから 万が一、通信にエラーが出てタイムアウトしてんなら ホスト側のPCが切断するなり異常を通知するだろ それとCOMが開けないってのは別の次元の話
>>638 確かに俺の指摘したケースでエラーが帰らずに死ぬ可能性は低そうだ。
>>627 は取り消します。
>>634 そもそもUSB自体がある程度の遅れや進みを許容する規格じゃ無かったっけ?
>>632 一部のパケット??
やっぱりUSBのデータ伝送がどう動いているのか知らないでしょ?
知ってる、知ってないのどっちか知らないけど、第3者から見てると面倒な人たちだなという印象しかない・・・
Aを知ってるか?、Bを知らないだろ? というザックリした質問は不遜だと思うし、 もっと上手な議論の方法があるだろうとも思うけど、 プライドやアイデンティティの問題でシチ面倒くさい事になるんだろうな。 どちらさんもガンバッテ下さい。
ID:AmPcGtWG は典型的なクズだったな
>629 V-USBのソースに詳細なコメントが書いてある 質問した内容の答えもそこに書いてある
流れと関係ないんだが、 V-USBてさ、割り込みで最大50usぐらいブロックするよね。以前PS/2からUSBの変換器作ってみよう としたことがあるんだが、PS/2の信号を取りこぼしてしまってうまくいかなかったよ。
2313を買いすぎて困ってる人以外は、普通にハードで生魚した方が 楽だし安くないか?
2313余ってるけど、な、生魚は・・・
当方には90S1200が10個程度、90S2313と90S8535が2、30個残っている。 先日、ライタ制御プログラムの機能をバージョンアップで強化した時に さすがにもういいだろと90S1200を切り捨ててしまった。 90S2313と90S8535の新規採用は無いけど、過去に製作した機器のサポート(故障交換とか)があるので、 残念ながらライタ側はやめたくてもやめられない。 (単に2313と書けばtiny2313のことかな。tiny2313は現役です)
651 :
774ワット発電中さん :2012/10/25(木) 10:44:37.64 ID:ZRH3QoXF
>>650 >90S2313
おれも安いので購入した後にStudio4/5/6では対応してないことが判明してしょんぼり。
コンパイル、書き込みはどうしたらいいのだ?
gcc でプログラム書けて、USB IF を内蔵していて、そこそこ IO のあるマイコンを探していて ATMega*U* にたどり着いたのだけど、他に同じようなのってある? 非AVR含めて。
>>652 DIPじなくて良くて、gccってならARM系かな…
>>651 Studio4+WinAVRで平気だけど…>90S2313
バージョンによる?
若しくは書き込みツール連動やシミュレータ動かないと駄目って事?
>>653 DIP であれば最高なんだけどね…。 AVR も USB IF 内蔵のやつは DIP ないしなあ。
FT232 載せるなら結局 DIP だけでは済まない。
>655 GCC, DIP, USBの組だと現状 PIC32 一択かも。
あの値段でこんなにいらねぇってくらい2桁余計なメモリと処理能力あるからな
>>656 ありがとう。スレ違いっぽくなって申し訳ない。
いつの間に PIC は MIPS になったんだ(浦島太郎)。
ATmegaU とは違って、初期状態でブートローダは入ってない感じなのかな。
659 :
774ワット発電中さん :2012/10/26(金) 06:38:04.95 ID:JXqf35bB
やはりDIPを購入して自作が主な使い方ですか。 評価ボードを買ってソフトを組む。なんてのは少数?
基板制作という手も・・・
MIPS32M4KコアでDIPというCPUが秋月で200円前後で買えるんだから、 遊びたいアマチュアにとっては大いに結構な事だよね。
PIC32がARMだったら良かったのにねぇ〜
DIPでもいい事例がほとんどないからAVR・ARMで困ってないが、 DIPのがいい事例にあうと泣きたくなることはあるねい。対埃性とかで。 たまにしか使わないレベルで使うにはMIPSアーキとMIPS用gccは ちょっとコードの信頼性に不安がな…。常用してれば自然とerrataを 避ける書き方も身につくだろうけど。
>>663 PICのエラッタはよくある話だがgccがmipsの間違ったコードを吐くとは思えないな。
地味にいろんなところで使われてるから。
>664 vr3000向けlinuxでの遅延分岐スロット+割込みエラタで苦労した面々見てるもんで…
USB接続タイプのISPライターAVR ISP mkIIを所有しています。 2台目のライターとしてシリアルポート接続のISPライターを自作してみようかと思いいろいろ調べてみたのですが どの自作のライターもHEXの書き込みにコマンドラインプログラムや専用プログラムを用意して対応しているようです。 AVRISP mkIIがそうしているようにAVR Studio 4から直接HEXファイルを書き込んだりヒューズビットをいじることができる シリアルポート接続のISPライターを自作したいのですがそういうのは無理と言うことでしょうか? もしAVR Studio 4から直接HEXファイルを書き込んだりヒューズビットをいじったりすることが出来る シリアルポート接続のISPライターを自作されている方をご存じでしたら教えてください。
「AVRISP」「互換」で調べれば引っかかりまくりますが、 「シリアルポート接続」っていうのがネックですかね? 無いこた無いですが・・・・ USBじゃだめなんでしょうか? 外部コマンドとしてAVR Studioから外部ライタアプリを起動するのはお気に召しませんか?
>>667 そうでしたか、シリアルポート接続だとAVR Studio 4.19からの直接書き込みは難しいんですね…
> USBじゃだめなんでしょうか?
USB接続のライターなら既に製品を持ってるんで、今度はシリアル接続のライターでも
作ってみようかなと単純に思ってみただけです。
でも使い勝手の統一(AVR Studioからの直接書き込み)を優先したいので
USB接続のライターが簡単に自作できるならそれでもいいかなと思います。
669 :
774ワット発電中さん :2012/10/27(土) 17:17:29.31 ID:SADfLXys
ATtiny10で、3個のLED「フルカラーLED」の点滅してみたいのですがどのようにすれば 実現出来ますか?ご教授お願い致します。
>>669 ちょうど、まったく同じことやってたわ。ハロウィンで使おうと思ってたんだがパーティに間に合わなかった。
Cではうまく動かなかったので、自分は始めてアセンブリ言語で書いている。
最新のツールチェインだとC言語でいけるのかもしれないが、よく分からない。
672 :
774ワット発電中さん :2012/10/28(日) 04:07:58.53 ID:4EfbAUON
今日マイコンを始めたのですが、行き詰っているので質問させて下さい。 atmega88v-10pu/AVRISP mkII/AtmelStudio6を使っています。 とりあえず一番はじめにLEDをピカピカさせるコードを作ってみました。 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD = DDRD | 0b11111100; while(1) { PORTD = 0b00000001; _delay_ms(1000); PORTD = 0b00000010; _delay_ms(1000); } } これで、マイコンに書き込んだのですが、 PD0につないだLEDは1秒刻みで光るのに対し、 PD1につないだLEDは全く光りません。 電圧を測ってみると、PD1は常にLOW(0V)でした。 何度見ても回路のつなぎ方が間違ってるとは思えません。 一番単純に、LEDと抵抗をつなげてるだけなので。。。 回路が間違ってたとしても、そもそもPD1の電圧が変わらないのがおかしいと思います。 何か他に設定すべきことがあるのでしょうか? 教えていただけると幸いです。
>>672 DDRDの初期値はゼロなので、
DDRD = DDRD | 0b11111100;
が実行されたらPD0, PD1は入力(0だから)になってしまうよ。
入力になってるピンに対応するPORTDのビットを変化させても、
プルアップがON(1)/OFF(0)されるだけ。
なので、
DDRD |= 0b00000011;
に置き換えると正しく動くと思う。
それから、
PORTD |= 0b00000001;
PORTD &= ~0b00000001;
と書いたほうが便利だよ。
ただ、PD0とPD1で挙動が違った原因は知らない。
674 :
774ワット発電中さん :2012/10/28(日) 04:54:18.59 ID:4EfbAUON
>>673 ありがとうございます。
DDRD |= 0b00000011;
に変えたら、PD0のLEDの光が明るくチカチカするようになりました。
さっきまではうっすらチカチカしていたのですが・・・。
しかし、PD1のLEDは依然として光りません。
LEDが壊れているわけではなさそうです。なぜなら、
PD0とPD1のLEDを入れ替えてみても、PD0が光り、PD1は光りません。
AtmelStudioのマイコンの設定がおかしいからでしょうか?
AtmelStudioのマイコン一覧にAtmega88vがなかったので、
今はAtmega88を選んでいます。(88p、88a、88paはあるのに88vがない)
それのせいだったりしますでしょうか?
Dポート全部出力に設定して 他のポートを試してみりゃいいじゃん。 ブレッドボードかなんかだろうけど 接触不良も疑うべし
PD1は3番ピンだけど、それは間違いないかい そんなもん間違えるわけないだろって場所に間違いは潜んでいたりする
>>547 測定器だのなんだのでやりはじめると何だかんだで結構金はかかる。
>>673 プルアップ入力でもAVRならLEDぐらいは光るからやっぱ配線間違いの可能性が高いな。
ポート逝ってるんじゃ。
679 :
774ワット発電中さん :2012/10/28(日) 12:04:43.02 ID:4EfbAUON
>>675 ぬわあ。。。ありがとうございます!
ブレッドボードでやっていたのですが、
どうやらブレッドボードの接触不良が原因のようです。
ブレッドボードを介さずにマイコンの足から
直接LED、抵抗、グラウンドつなげてみたら光りました。
他のブレッドボード使ってやってみると、
PD0〜PD7も全部無事光るのを確認できました。
>>676-678 ありがとうございました。
ブレッドボードの接触不良が原因でした。
初歩的な躓き方ですみませんでした。
っテスター
テスターは398円のでもいいから一台持つべきだな。
針のテスターはまさに針の部分が高級品だけど、 デジタルは全て安物で構成しても使えるしな 数さえ出るなら100均でも並べられる
辺に多機能で液晶画面の大きい中華製を買って、電池の消費が激しくて後悔してたりしますw シンプルな奴を買えば良かったーーー
実際、テスターでいちばん使う機能は導通チェックのブザーだよなあ
ダイオードモードの順方向電圧降下測定だろ。
乾電池の電圧測定だな
>>522 遅レスだけど、方法教えてくれませんか?
テスターを買い換えたくなってきたw
テスター2台+オシロ とかで測ってると GNDポイントが山盛りになるんだけど みんなどうしてる?
クリップ付き線材(10p程度)の片方を3pほど被覆をはがしておき、 測定ポイントに近いGNDピンをクリップして、 皮を剥いた部分をプローブなどで並べて挟んでいく。
ゴメン 誤 プローブなどで 正 プローブの鰐口クリップなどで
アナログじゃないんだからタコ足配線でいいだろ 一箇所ICクリップかジャンパーでGND引き出してそこにタコ足してるわ
漏れは安定化電源のマイナス端子をたこ足ポイントにしてるけど 本当は基板の中から取ったほうが電位差がなくていいんだよね?
高速アナログな要素が絡む時はあれだけど パタパタ見るだけならいいんでね? ロジアナほしいなあ〜
ロジアナつってもピンキリだけど AVRで使う範囲ならAVRで作れるだろ
AVRで作ったロジアナじゃAVRの上限域で見れないだろ 最近は中古が安いからオクで適当なの落とすのがいいよ。筐体はデカイがw
テクトロのオシロを手放したのは、まさにデカさのせい・・・ 個人で使うなら、液晶タイプの奥行きが短いタイプが欲しい
液晶部分がPCにあっても問題ないしな 高速処理してる部分は外に出して、表示とかUIとか関係ない部分はPCでいい USB2でも十分でしょう
あ、これみんな評価が一つ星なんで微妙かもですね…
基板設計するのが一番スマートじゃない?
>>702 基盤設計して、プリント基板屋さんに発注するという事ですか?
電子工作始めて2週間の僕には少しハードルが高いかもです。。。
単音とかでいいならマイコン1つとアンプで出来そうだけど 綺麗な音で鳴らすなら専用IC一択だろうし、使い方もほぼ決まってしまう
LPC1114のPWM出力だと何音ぐらいいくかな 100円弱だし結構よさそうに思える DAC付きのマイコンでやった方がいいけど
>>704 一応綺麗な音(楽器の音とか)で複数音同時出しを想定してます。
情報後だしですみません。
なので16チャンネルあるmidiがいいかなぁと思ってます。
単音なら普通に圧電スピーカーレベルでいいのですが、
実際やってみると味気なくてちょっと欲を出してしまってます。
8bit8KHzPCM1秒で8KBだし 8bitCPUで敢えて挑むのでなければROMがいっぱいないと大変だぞ
矩形波ほど美しい音はない
>>700 電源や大きさが重要でなければ、
ハードオフでSC-55なんかの音源買っちゃうのはどうかね。
atmega8を使って、v-usbのCommunity Projectsの例を試してるんだが、 HIDKeysとSNES/NES Gamepadは動かせたが、C64 KeyboardがどうしてもPCで認識されない。 添付のhexファイルそのままでも、新たにmakeしなおしてもダメ・・・
以下はAVR Toolchain 3.4.1をインストールしてmakeを実行したときに遭遇したエラーです。
コンパイルしたソースはAVRminiProgと呼ばれるAVRライター用のソースコードです。
http://www.simonqian.com/en/AVRminiProg/index.html AVRminiProg RC2 (2008-03-10) をダウンロードし、AVRminiProg\default\に移動して
makeコマンドを実行しました。
エラーメッセージを読むとどれも「constにしないとダメだよ」と言っているようです。
ソースコードにはまったく手を入れておらず、AVR Toolchainも最新版の3.4.1を入れてあります。
それでもこのようなエラーが出たのはなぜでしょうか?
解決方法がございましたらご教授ください。
************************以下コンパイル時に発生したエラーログ**************
C:\temp\AVRminiProg\default>make
指定されたパスが見つかりません。
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -DF_CPU=12000000UL
-Os -fsigned-char -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
In file included from ../main.c:15:0:
../usbdrv/usbdrv.h:429:6: error: variable 'usbDescriptorDevice' must be const in
order to be put into read-only section by means of '__attribute__((progmem))'
../usbdrv/usbdrv.h:435:6: error: variable 'usbDescriptorConfiguration' must be c
onst in order to be put into read-only section by means of '__attribute__((progm
em))'
../usbdrv/usbdrv.h:441:6: error: variable 'usbDescriptorHidReport' must be const
in order to be put into read-only section by means of '__attribute__((progmem))
'
../usbdrv/usbdrv.h:447:6: error: variable 'usbDescriptorString0' must be const i
n order to be put into read-only section by means of '__attribute__((progmem))'
../usbdrv/usbdrv.h:453:5: error: variable 'usbDescriptorStringVendor' must be co
nst in order to be put into read-only section by means of '__attribute__((progme
m))'
../usbdrv/usbdrv.h:459:5: error: variable 'usbDescriptorStringDevice' must be co
nst in order to be put into read-only section by means of '__attribute__((progme
m))'
../usbdrv/usbdrv.h:465:5: error: variable 'usbDescriptorStringSerialNumber' must
be const in order to be put into read-only section by means of '__attribute__((
progmem))'
../main.c:39:14: error: variable 'usbDescriptorConfiguration' must be const in o
rder to be put into read-only section by means of '__attribute__((progmem))'
make: *** [main.o] エラー 1
そういうのは作成時期に合わせて昔のWinAVRでビルドするとうまくいくよ 最新のだとavr-libcから違うから修正が沢山いる
パスの設定したの?
progmemの仕様が変わった部分のエラーが出てるわけで パスとか関係ないからw
そういや最新のavr gccでは遂に named address space をサポートしたんだな。 pgm_read_word_near() とか使わないでフラッシュデータ読めるようになった。
>>712 そうでしたか・・・
ソースの作成時期に合わせてコンパイラのインストール&アンインストールを繰り返すのは結構難儀ですね・・・
アセンブラならまだしも、C言語で過去の資産を引き継げないのは意外でした
must be const だから、const 付ければいいだけでは? Atmel studio 6 にした時に、AVR USB 使ってた project で同じエラーに遭遇した希ガス
PCでもgcc2.95縛りのが最近まであったりしたからな Cで機種依存のことやってバージョン違ったら動かない なんて当たり前
v-usbのプロジェクトのC64 Keyboardを作ってみたくて試してるんですが、 USBを挿してもPCに認識されません。 切った貼ったしていると、下記の処理が要因なのですが、アドバイスいただけないでしょうか。 for (row=0;row<NUMROWS;++row) { /* Scan all rows */ DDRD&=~0b00111000; /* all 3 are input */ PORTD|=0b00111000; /* pull-up enable */ if (row<6) { data=pgm_read_byte(&modmask[row]); DDRB=data; PORTB=~data; ★ } else { // 3 extra rows are on PORTD DDRB=0; PORTB=0xFF; data=pgm_read_byte(&extrows[row-6]); DDRD|=data; PORTD&=~data; } ★部を例えば PORTB = data & 0x0f; のような処理にかえるとPC上で認識されます。
VUSBで使ってるPORTDを適当にいじってるからダメなんだよ DDRD&=~0b00111000; /* all 3 are input */ PORTD|=0b00111000; /* pull-up enable */ 例えばこういう所は割り込み禁止しないとダメだよ DDRD&=~0b00111000; は、 in r24 PORTD andi r24, ~0b00111000 out PORTD r24 に展開されて、andiの箇所とかで割り込みが発生したら 古い値がPORTDに入ってしまう これ作った人はあんま判ってないから 自分で考えた方がいいよ
PORTDじゃなくDDRDね まあ判るよね
アドバイスありがとうございます。 PORTB=~data; の行の変更でPC上で認識されるのですが、 PORTDの割り込み禁止がPORTBの処理に影響を与えているということでしょうか。 それとも、PORTBに関しても割り込み禁止にしないといけないのでしょうか?
720の言いたい事は、 ----- たとえば clr r16 mov r17,r16 で最初の clr r16 を実行した直後に割り込みがかかった時、 その割り込みルーチンでr16を使用し、r16を保存していなければ inc r16 reti 割り込みから戻った時、r16の値は1に変わっており、 従ってr17の値も期待される0ではなくて1になってしまう。 cli clr r16 mov r17,r16 sei とするのが一つの解決方法。 だから、その辺を検討、調査してみれば。 ----- と俺は推測した。横から長々と小さな親切大きなお世話で悪かったね。
レジスタは保存されるのが普通じゃね? ペリフェラルの設定(DDRD)を、割り込みルーチンの中で変更してるのに、割り込み禁止にせずに触ってるのが問題なんじゃね?
割り込みルーチン内では明示的に許可しないと(mega8の場合は)割り込みは発生しないし、 逆に意図せずseiなんかやっちまったらえらいことになる。
724が言うように、割り込みルーチンでレジスタが保存されDDRDを操作しているなら out DDRD,r16 out PortD,r17 で out DDRD,r16 を実行した後で割り込みがかかると、 実際に出力されるかどうかは割り込みルーチンのDDRD設定次第。 いくら何でも作者がそんな初歩的なミスはしないだろうから、 タイミング的に同時には実行しないようになっているとか? 詳細はソースを見ないと分からん。 (>725 多重割り込みをやれと言ってる訳ではありまっしぇん)
719です。 説明不足でした。725さんが予想?しているように、Atmega8を使ったサンプルになります。 v-usbのページにあるCommunity Projectsとして紹介されているので、 それほどおかしなことはしていないと思いたいです・・・
ちょっと前にAVR Studio 4から直接書き込める自作のライターを探しているとレスしたものです。
ネットを散策していたら次の自作ライターを探し当てました。
http://www.geocities.jp/kuman2600/programmer.html シリアルポート接続タイプの自作ライターでAVR Studioからも書き込めるそうです。
この手の自作のライターはメジャーなチップには一通り対応していると考えていいでしょうか?
たとえばATtiny2313/261/461/861、ATmega8/88/168等です。
話は変わりますがATtiny261/461/861はそれぞれフラッシュ・RAMのサイズが違うだけでピン配置は 互換性があるファミリーです。基本的に数字が大きくなるほどメモリサイズが上がっていきます。 461用にコンパイルしたHEXファイルは、そのまま861にも書き込むことはできるでしょうか? メモリサイズだけを考えた場合は特に問題が無いように思えるのですが。
コンパイルする時間なんて、たいした時間じゃないし、さくっとコンパイルした方が良いのでは?
>>728 あまりに古すぎて無理
>>729 ブートローダー領域とか使ってないなら可能だが、違いをはっきり把握
できないのならターゲットにあわせてコンパイルしなおすべし。
そんなことで動きませんとか書き込んだとしても「コンパイルしなおせ」で終わる。
動くかどうか試すのは自由ですよ。
732 :
774ワット発電中さん :2012/11/01(木) 21:56:38.70 ID:HF+cmkTV
初心者ですが失礼します。 マイコンを始めようと思い、STK500を購入したのですが Atmel studioと接続が出来てないみたいで困ってます。OSはVistaでUSB変換コネクタを使い 繋いでます。よければ知恵を貸していただけませんでしょうか。
割り当てられてるCOMポートは?
> あまりに古すぎて無理
orz・・・
AVR Studioから書き込めるCOMポート接続の自作ライター。
結構ナイスなコンセプトだと思ってたんですが無理でしたか・・・
COMポートとISPピンヘッダを直結ないしはバッファをかまして直結した自作ライターの方が
つくりが簡素な分、新規のチップへの対応とかで問題が生じにくいんでしょうかね?
ただAVR Studio以外にライティングソフトを用意しなければならないのが面倒で・・・
>>731 > ブートローダー領域とか使ってないなら可能だが
ATtiny261/461/861シリーズはブートローダーは実装していません。
ということは261用のHEXファイルは461や861で、461用のHEXファイルは861でそのまま
動く可能性が高いってことですかね。
おもしろそうなんでちょっと試してみますノシ
735 :
774ワット発電中さん :2012/11/01(木) 22:12:59.02 ID:HF+cmkTV
>>733 変換コネクタのドライバをインストールしたところポートは4となっていました。
しかし、Atmel studioでは3と4の二つが表示されています。
ファームウェアアップデートが必要とのログが出たので、アップデートの操作を
行ってみたのですが、一向に反応がないのが現状です。
まぁ、自己プログラムとかしてないんなら大丈夫かな・・・・ GCCなら261だからってスタックポインタの上位バイト設定してないなんて手抜きしてないだろうし。
>>735 ファームウェアアップデートが必要と出たのならSTK500のファームウェアバージョン取得
が出来ているということで通信はしてる。
アップデートキャンセルしてとりあえずライター画面からハードウェアインフォメーション
読めない?
738 :
774ワット発電中さん :2012/11/01(木) 22:34:50.53 ID:tBGM3iMb
AVRマイコンを初めて勉強してるんだけど、 Arduinoってマイコンと一緒じゃん!? って思ってArduinoみたら 普通に基盤にマイコンが乗っててワロタwww
739 :
774ワット発電中さん :2012/11/01(木) 22:44:30.60 ID:HF+cmkTV
>>735 すみません。仕事上の急な呼び出しで出て行かなきゃいけなく...
明日になってしまうと思いますが戻り次第ご報告させていただきたいと思います。
v-usbのC64 keyboardでハマったので、別のサンプルプロジェクトを色々動かすべく、 ブレッドボードを注文してしまった。 atmega8なんて安いし、周辺回路も少ないのでユニバーサル基板で良かったかもしれないけど、ついついw
それが途中で止まるから質問してなさるんだよ
>>742-743 あーw STK500ってUSBなくてRS232Cのみなんだな。
じゃ、
>>732 は、USB/RS232Cのドライバ設定してねぇ、とかCOM番号が違う、とか、そんなあたりだろ。
RS232Cポート持ったPCでやればたぶん,OK
RS232ポート持ったPCが無いから聞いてんじゃねえの?
>>737 が言ってるがアップデートのダイアログが出るってことは
その時点では通信できてるってことだ。ログ読んでやれよw
質問主がいつ帰ってくるかわからんけど
>>740 が正解じゃね?
最近、このスレを見始めた私でも、USB変換使ってる時点で RS232Cが使えない環境だということは想像が付いたw
749 :
774ワット発電中さん :2012/11/02(金) 19:42:30.67 ID:8tCa8BMp
732です。やっと戻れました。 ご提示いただいたURLを参考に先ほどマニュアルアップデートしてみたところ 無事アップデートできました。 試しに簡単なプログラムも入れてみたところ動作させることもできました。 アドバイスありがとうございました。
なんという良Q&A オメオメ
今旬な自作の書き込み器といったらどんなものがありますか? 使ってるPCにはCOMポートもUSBポートもあるのでどちらの方式にも対応できます。
752 :
774ワット発電中さん :2012/11/03(土) 20:48:36.79 ID:+60bKzUC
今日AVRとAtmelStudio6を使い始めたのですが、 いわゆる普通のVisualStudioのprintfみたいなデバッグ方法って可能なのでしょうか? アナログ入力から取った値をとりあえず簡単に数値として確認したいのですが・・・
そのためには、7セグLEDかLCDモジュールをつけてやるしかないのですw 書き込み機とchipの種類によってはブレークポイントをしかけて変数値を覗く事もできなくはないですが、 まぁ、期待スンナwww
>>752 いわゆる「デバッグモニター」ですね
AVR DRAGONっていう安いデバッガ買うのが手っ取り早いです
そうでなければCOM出力使ってPCのターミナルに表示するようなルーチンを
AVRのプログラムに組み込むなどのテクニックが必要です。
昔はデバッガが100万単位の値段だったので苦労してそのようなプログラムを仕込みましたが
今は数千円で買えてしまいます。
どちらを選ぶかはお好みで
デバッグモニタを自作すればMCUの中身を理解できると思うけど プロなら「そんな暇があるなら売り上げ増やす事を考えろ」と言いたくなるかも。 アマチュアなら何でもありの世界なので「お好みでご自由にどうぞ」だな。
ゴミ
328P以上のチップが必要ですしOSにリソース食いまくられますが、 OS上で組み込みプログラムを動かすスキルがあればそれでも可 Arduino で液晶使うスクラッチでもありですね。 デバッグプログラムをデバッグするという卵鶏を楽しむのが趣味ですからw STK500買っちゃった人には悪いけどそんな金出すならDragon買ったほうが ICE環境揃っちゃうわけだしコスパいいと思うんですが・・・・
俺がネットで見つけたデバッグモニタのMCU側のプログラムサイズは120Wもあって しかも機能が低くてこれでデバッグするのは大変そう。 アトメルがdebugWIREのプロトコルを公開してくれれば自作派も喜ぶと思うけど。
760 :
751 :2012/11/04(日) 13:39:13.16 ID:dPJhUPLc
あのぅ・・・ なにかお勧めの自作書き込み器無いでしょうか・・・?
762 :
774ワット発電中さん :2012/11/04(日) 16:12:23.06 ID:85+Bq76F
最新のAtmel Studio 6.0/AVRISPmk2を入れたんだけど、上手くフラッシュメモリ に書き込めない。書込途中でストップしてしまう。 AVR Studio 4 から書き込めるAtmel Studio 6.0で作ったHexファイルは書き込める んだけど、、、なにか良い対処方法ありますか?
763 :
751 :2012/11/04(日) 16:26:49.80 ID:dPJhUPLc
どのレベルのライターが作りたいんだろう?
>>761 のようにFTDIのモジュール買うくらいなら
素直にAVRASPの完成品買えばいいと思う
766 :
751 :2012/11/04(日) 18:18:53.52 ID:dPJhUPLc
>>764 ヒューズビットの書き込みは.cfgファイルにまとめて専用ソフトで書き込む必要があるんですね。
ちなみにこのライターが今旬な理由はどのあたりにあるんでしょうか?
769 :
751 :2012/11/04(日) 22:34:13.44 ID:dPJhUPLc
>>768 USBaspの利点って何でしょうか?
より多くのAVRに対応しているとかですか?
単純な回路なら、vusbtinyとかもあり? tiny45/85と抵抗・ツェナダイオード・ピンヘッダだけで、 お手軽に作れる。
文字通りUSBが使えるってだけ 必要ないなら作らなくていい
無線で何か作れよ
なにも調べないで秋月でstk500買って幾星霜w 最近はDragonばっかだなー・・・机狭いから。 あ、Dragonは壊れやすいから、バッファかませないとダメだよ。 あと、電源強化かね。
USBaspの利点は安いって点だろ 完成品でも300円かからないw
USBaspがAVR Stuidoから使えれば文句無かったんですけどね
>>773 Dragon自体安いし、機能豊富だからね〜。
欠点としては、高電圧使うときのピン配置がめんどくさいこと。
これが、簡単に出来れば最強なのにな〜。
666
ホビーとしてライターを作るのが目的ならば止めないけど、 そうでないならDragonなんて機能考えりゃ安いもんだよね。 完全なデバッガが7000円だもんな。
AVRISP mkIIにもデバッガー機能ってありませんでしたっけ?
AVRISP mkIIは単なる書き込み器でデバッグ機能は無いよ
あ、そうなんですか・・・ ところでソフトウェアデバッグとハードウェアデバッグって実用上の違いはありますか?
>>ソフトウェアデバッグとハードウェアデバッグ 意味わかんない・・・・ インサーキットデバッグとシミュレーションって意味なんだろうか?
文字通りに解釈すれば ソフトウェアデバッグ → ソフトウエアをデバッグする ハードウェアデバッグ → ハードウエアをデバッグする ところでデバッグの話だけど、 ある異常な症状の原因が2つ以上重なっている時 のデバッグは難しいよね。 Aをaに、Bをbに変更しなければいけない場合で Aをaに変更する →正しく動作しない あーこれが原因じゃなかったんだと思ってaをAに戻す。 次にBをbに変更する →正しく動作しない。 何で?と頭をかきむしる。
俺はバグで悩むのが趣味なわけじゃないから そういうときはデバッガでトレースする
>>784 単体テストぐらいしろよ
デバッグが困難なのは再現性が得られない問題
客先で不具合が出てるのに、テスト環境では全く発生しない
この場合色々と面倒なことになる
786の例で言えば、 1日に2、3回使う特殊な測定器を作って大学の研究室に納品した後の 「1週間に1回くらい、電源を入れても正常に起動しない時がある」クレーム。 持って帰ってきてテストしてもOKで、客先に持ち込むと症状が発生する。 オシロとか持ち込んで、測定器の電源スィッチを入れたり切ったりしてチェックしていたら、 隣の建屋の実験室で動かしている数十KW位のモータがオンするタイミングと 測定器の電源を入れるタイミングがたまたま一致すると症状が発生することが判明。 リセット回路を強化して解決した。 深夜の暇つぶし<トラブルシリーズ>のネタは「少しづつ壊れていくIC」とかあったんだけど、 しょせんルール違反だと思うのでこれで終わりにします。 AVRには何の関係も無い話ですまんかった。
788 :
774ワット発電中さん :2012/11/06(火) 02:54:28.68 ID:9PFsfFso
全角英数
たまに出る不具合が一番厄介だよね 再現しようとしても出ない ハード不具合なのかソフト不具合なのか 頭の中で色々考えて、解決案が出てくるなら精神的に楽だけど、全く出てこない場合なんて寝られない しきい値疑ったり、バッファオーバフロー疑ったり、半田クラック疑ったり、断線疑ったり 疑り深くなって人間関係もコミュ障だよ
横レスですが・・・ まだBODを内蔵していない90S2313の頃、 電源OFF時のブラウンアウトでプログラムカウンタが吹っ飛び、 EEP-ROM書込みルーチンが実行されて内容がランダムに書き換わることがあった。 ルーチンの前後を無限ループバリアで囲んでもダメだった。 データシートにはたった1行↓ 「アプリケーションノートにしたがってブラウンアウトを監視してね」 今思えば当たり前なんだが、リセットICが必要なワンチップはワンチップじゃねー! ってぶち切れた思い出ですw
792 :
774ワット発電中さん :2012/11/06(火) 21:48:45.05 ID:9Vj4+iuB
>>754 返信遅れてすみません。
ありがとうございます。
シリアル通信ってやつですね。
Arduinoで少しやったことがあるので、
そっちの方法を検討してみたいと思います。
素朴な疑問なのですが、 例えば矩形波のデータを作ったとして、それをmp3にしてiPhoneで再生、 iPhoneのイヤホンジャックと赤外線LEDを繋げて 赤外線リモコンみたいなのを作ることって可能でしょうか?
>>793 1.イヤホンジャックではLEDは点灯しないので、なんらかの増幅装置と電源が必要
2.赤外線リモコンは、一般的には38KHz程度の搬送波を使用しているから、
おそらく可聴域以外をカットしているであろう、mp3フォーマットやiPhoneなどでは
再生しても波形がつぶれてしまう
という2点でしんどいと思います。
つか、AVRスレなんだからAVRで作れば?
電波時計合わせるアプリも40KHzがきついもんで13.3KHz出して3次高調波を利用してるもんな。 矩形波の38KHZは理論上無限大の高調波含んでるから、出来るにしてもかなりの工夫がいるかも。 スレチに反応してスマヌ
555入れとけばいいだろ
>>798 555なら電池と抵抗、コンデンサーが面倒じゃないか。
tiny10なら電池だけだぞ
>>797 オーディオ帯域の19KHzの左右チャンネルで半波ごとに片方づつLEDをオンすれば、
離れた所から見れば点灯周波数は38KHzになるってことか。
疑問1 何故、左右チャンネルで逆相にする必要があるんだろ?
疑問2 片方のチャンネルに2個、合計4個のLEDを点灯させないのはドライブ能力の関係なのかな?
オーディオ出力を赤外線リモコン信号の出力に使う発想力に感心した。
そうだな tiny10入れとけばいいだろ
>>800 グランドと音声の間にLEDを付けても電圧足りなくて点灯しないが、
LとR間にLEDを2個逆向けに結線すると同時点灯は出来ないがLEDへの電圧は倍にできる。
故に、片チャンネル毎にLEDを二個付けて+-両方で点灯は出来ない。
>>802 そうか、LEDのVfの問題なのか、納得しました。
アホな疑問にあきれずに説明してくれてどうもアリガト。
アイディアとしては秀逸だな>ヘッドフォン端子に赤外線LED2個&19KHz半波
左右で位相を90度ずらすといいよ。
>>804 単に出来損ないのアイポ買って、
赤外線が付いてないから、罰ゲームやってるだけだろ。
いくらマゾでも、もう少し、建設的なことに脳ミソを使って欲しいわ。
>>805 BTL接続だから位相をずらしちゃだめだろ
ヘッドフォン端子BTLなんか?
AT90USBKEY2にFLIPでhexを書き込んだ後にPCに挿して初期化しようとHWBとRST押してもLED D1緑 D5赤になるだけで FLIPでUSB OPENできないんですが、これ以外にリセット方法ってありましたっけ・・・?
>>810 「パソコン側のコントロールソフトは異なりますが、純正の AVRISP mkIIと
同様のものと言えるでしょう。」
って書いてあるでしょ。
専用ソフトじゃないと使えないってことです。
>>810 追加情報ですけど、AVR Studioから直接書き込もうとするなら、
AVR Studioからのコマンドを受信して決められた動作をしなければならない。
したがって何らかのマイコンが必須となる。
じゃあそのマイコンにはどうやって書き込むの?
これを「卵鶏問題」といいます。
何かライターもってるんですか?
>>812 >>813 orz・・・
AVR StudioやATMEL Studio 6は使えないんですね('A` )・・・
サイトをよく見直してみました。
avrdudeを使え、と書いてありましたねλ...
avrdudeだとヒューズビットを書き込むときに16進数に計算しなければならないのがやや面倒です。
その点AVR Studioはチェックボックスにチェックするだけで自動的にヒューズビットを計算してくれたので楽でした。
> 何かライターもってるんですか?
AVRISP mkII持ってます。
同じものを2台買うのはどうかと思ったので違うライターを
作ってみようかと思った次第です。
余談ですがこのUSBasp。
今後出るであろう新シリーズのAVRにもそのまま対応すると思ってよろしいですか?
それとも新シリーズが出るたびにファームの書き換え等の作業が発生しますか?
ファームのアップデートはあると思ったほうがいいでしょうね。 いまだにPDI(最新デバイスの書き込みインターフェース)にも 十分対応しきれていないようですし。
左右で位相がズレたくらいで破綻しちゃうのはBTLとは言わないね(^^;; それは何かが間違ってる
一種の差動なんだから位相が180度差になってなければ電圧が2倍にならない だろ。
ATtiny2313のTIMER0使って高速PWM動作させるようにしたんだけど、 高速PWMモード時ってTIMSKの下位すべてにビット立ててseiしても、 タイマ0関係の割り込み起きないん?
>>817 たぶんだけど、そもそも通常のヘッドフォン出力でBTLがあり得ないと思う
もし、BTLなんだったら、GND共通の3ピンのヘッドフォンは使えないはず
>>819 元々BTLになっていると意味じゃなくて、グランドを浮かせてLとRの間に負荷を
つないで左右に180度差で同じ信号を出力すれば、モノラルのBTLとして働くとい
う意味。
左右で別電源にした本当のBTLだったら動かないな そんなプレーヤーがあったら欲しいけど
>>818 割り込み起こらなきゃ非難轟々だよ
WGMの設定は?
CSは?
OCR0Aの値は?
どの割り込みをおこしたいの?
あちゃー!xmegaのBOD電圧設定MAXにしたら動かなくなってもうた 可変電源無理やりつっこまなきゃ・・・・
圧電ブザー鳴らす時の周波数って、どんくらいにしてる? 1kHzくらいでいいかと思ったら、意外と高いのねん。
4kぐらいから鳴ったと思うよ
3kHzくらいが聞きやすいんじゃないかな、昔別なマイコンでそれ前後で使ってたけど。 ロータリーエンコーダーのクリック音とかは低めにしないと、うざいw
小さい圧電ブザーは1kHzだと音が小さい
だったら、おまえらPIC32でも使っちゃえば?
あっちで相手にされないからって・・・ PIC32て、MIPSをPICって名前で売ってるだけじゃねーか なんでgccなのに制限付けて売ろうとしてんだこの会社
>831 >PIC32て、MIPSをPICって名前で売ってるだけじゃねーか AtmelのSAMの立場はw
>>832 ?
それを言うならAVR32の方。
SAMはSmart ARM-based Microcontrollersの略で、AVRとは全く別のシリーズだよ?
できるんじゃないでしょうか?
9.6MHzで動かしたら、高速PWMで37.5KHzが作れるな
内蔵9.6MHzを8bitカウンタで数えりゃ37.94KHzできますがな 赤外線のキャリア周波数はシビアじゃないから余裕
はい
こんなことも判断できなくて、どうやって作ろうとしてるのかが問題だな。
親切な人が作製事例を教えてくれるの待ってたりしてw
AVRISPmk2よりDoragon買った方がいい状況って、デバッグが必要か否かぐらいですか? どっち買うか迷ってまして・・・
両方買っちゃおう!
デバッグがいらないって自分でプログラムしないってこと? デバッグが必要なほどのプログラムをする気がないのかな?
>>843 自分でプログラムするつもりですが、ボタン押したらLEDチカチカさせる程度の予定なのでdoragonが必要かどうか迷ってるところでして。
>>844 自己点滅型LEDで十分なような気が・・・
マイコン同士のSPI通信のプログラムについて質問いいですか? ちょっと長文になるかも・・・
847 :
774ワット発電中さん :2012/11/13(火) 10:07:41.04 ID:x+iXJ/ox
>>846 俺もそれに悩んでいるのでどんどんよろしく頼む。
まずやろうとしてるSPI通信の実験内容を説明します。 スイッチを押すと、送信側マイコンから1byteデータを次々に送り、それを受信側マイコンで受信して その内容を次々とUSARTを使ってPCに送りターミナルに表示させるというものです。 マイコンはATmega88Pで、プログラムはC言語で書いています。
送信プログラム #include <avr/io.h> #define CS_H PORTB = PORTB | (1<<PB2)//SSピンをH #define CS_LPORTB = PORTB & ~(1<<PB2)//SSピンをL void spi_tx_data(unsigned char data);//1byteデータ送信関数 void sdc_tx_cmd0(void); //SDカード用コマンド0送信関数 int main(void){ DDRB= 0b11101111; //MISOだけ入力 DDRC= 0b00000000;//SW入力ポート PORTB= 0b00000000;//初期値0、PU抵抗無効 PORTC= 0b11111111;//PU抵抗有効 SPCR= 0b01011111;//SPI有効、MSB先行、マスター設定、動作種別3 SPSR= 0b00000000; unsigned char sw_in = 0;//SW用変数 unsigned char i = 0;//forループ用変数 while(1){ sw_in = ~PINC & 0b00000001;//PC0のタクトスイッチの状態を取り込み if (sw_in){//押されていたら処理開始 CS_L; for (i=0;i<10;i++){ spi_tx_data(0xFF);//10回0xFFを送る } sdc_tx_cmd0();//コマンド0を送る CS_H; } } return 0; } void spi_tx_data(unsigned char data){ SPDR = data;//SPDRにデータセット while(!(SPSR & 0b10000000)); //転送完了まで待機 } void sdc_tx_cmd0(void){ spi_tx_data(0x40); spi_tx_data(0x00); spi_tx_data(0x00); spi_tx_data(0x00); spi_tx_data(0x00); spi_tx_data(0x95); }
インデントがめちゃくちゃになってしまって申し訳ありません・・・。 書き忘れましたが、SPI通信の速度はクリスタルの20MHzを128分周しているので、約156kHzです。 次受信プログラムです。 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void){ DDRB= 0b11010011;//SS、MOSI、SCKだけ入力 DDRD = 0b11111100;//RXD、TXDポート PORTB= 0b00000000;//初期値0、PU抵抗無効 PORTD= 0b00000000;//初期値0、PU抵抗無効 SPCR= 0b11001100;//転送完了割り込み許可、SPI有効、MSB先行、動作種別3 UCSR0A = 0b00000010;//倍速許可 UCSR0B= 0b00011000;//USART送信受信有効 UCSR0C= 0b00000110;//8bit、パリティ無し、ストップ1bit、フロー制御無し UBRR0 = 259;//9600bps sei(); while(1){ } return 0; } ISR (SPI_STC_vect){ while(!(UCSR0A & (1<<UDRE0)));//送信準備完了まで待機 UDR0 = SPDR;//SPIデータレジスタのデータを送信 }
回路はATmega88PのSSピン、MOSI、MISO、SCK同士を接続していて、SCK、MISO、MOSIを4.7kΩ抵抗でプルアップしています。 そして現状なのですが、タクトスイッチを押してもteratermには何も表示されません・・・。 USARTの実験は既にやり尽くしていて送受信は成功しており、および、シリアルポートの設定は正しいです。
やったことないからよく分からんが while(!(SPSR & 0b10000000)); //転送完了まで待機 while(!(UCSR0A & (1<<UDRE0)));//送信準備完了まで待機 この行はこれで合ってる?
>>852 フラグが立つまで待機するという意味では合ってると思います。
>>853 フラグ内容が合ってるかって意味では?
CPUのデータシートでは両方ともに↓だったから聞いてみた
while(!(SPSR & (1<<SPIF))){}
>>854 SPSRのビット7がSPIFなので
while(!(SPSR & 0b10000000))とwhile(!(SPSR & (1<<SPIF)))は同じ意味です。
>>848 まず最初に、LEDとかでSPIやUSART出してるつもりの信号が
本当に出てるかとか、ハンドラが起動してるかとか、は確認したの?
コケてる場所が判らんのに、いきなりteratermにぶちこんでも先に進めない
横着はいけない
USARTについてだが、
UDR0にバイナリ値を直接ぶちこんだらteratermでコケるから
USARTに渡す前に16進文字に変換して送った方がいい
転送量が倍になるのを嫌うなら適当な文字でもいい
SPIについてだが、
スレーブ側がマイコンの場合は、
転送完了からハンドラ呼び出しまで遅延するから
マスター側はデータを送った後にその分ウェイトを取ること
そのコードだとUSARTボーレートが低くて、
さらにUSARTの送信完了待ちでかなり遅れることになるから、
その間にSPIのデータを取りこぼすことになる
割り込みハンドラの使い方だが、
基本的にハンドラの中でポーリングはやらない方がいい
SPIからデータを受信したら、ハンドラではバッファに入れてすぐに抜ける
USARTはメインルーチンや割り込みハンドラのどっちでもいいが
別々に処理する
USART側の速度がSPIより速いなら別にいいんだけど
>>856 USARTとPCの通信は既に実験済です。ボーレート115200まではteratermで受けられることを確認しました。
SPIについてなのですが、ご説明頂いたことから考えると
マイコン同士の通信には向いていないということでしょうか?
AVRのSPI通信の原理的にスレーブ側は受信するタイミングを自らで決められないですよね?
受信した合図(フラグ)が立った時にすぐさまデータレジスタのデータを取り出さないと、次のデータが送られてきて
前のデータが消えてしまうと思うので。
つまり、スレーブ側がデータレジスタからデータを取り出せるだけの時間間隔をおいてからマスターはデータを転送しなければならないですよね?
以前、割り込みの関数内長い処理をしてドツボにはまりました・・・。
それ以来割り込みを使わないように心がけていたのですが、SPI通信では上述したように
データの受信する時刻が不明で、すぐにデータを取り出さないと次に送られてくるデータで前のデータが消えてしまうと
のことでしかたなく割り込みを使いました。
なるほど。。。割り込み処理の中でwhileは使わないほうがいいという指摘勉強になりました。
指摘してもらった内容を参考にしてもう一度プログラムを見直してみます。ありがとうございます。
俺、秋月キットのオシロしか持ってないけど、それで出てくる信号が正しいか確認したよ。 送信データも、オシロで確認しやすいようにコードが01010101とかになる奴にしてたと思う。
>>857 受信データを一時的に貯めておく「リングバッファ」或いは「FIFOバッファ」を
ググりなされ。
シリアル通信やり慣れた人なら必ず知ってるテクニックです。
>SPIについてなのですが、ご説明頂いたことから考えると >マイコン同士の通信には向いていないということでしょうか? んなこたーない。というか、誰もそんな話をしていないと思うが・・・ teratermなんかの受信アプリも含めて、PC側は「裏で」やるべきことをちゃんとやってるだけ。 他の人も書いているけど、割り込み処理中ではリングバッファに書き込んで、メインルーチンで リングバッファをポーリングして、何か書かれていたら、書かれている件数まとめてUSARTで送出 みたいなロジックにした方が良いと思う。 ところで、ふと気づいたんだけど。 >回路はATmega88PのSSピン、MOSI、MISO、SCK同士を接続していて MISO-MOSI MOSI-MISO と接続しているよね?まさか、MISO同士、MOSI同士で接続してるって事はないよね?
MISOはマスターインプット、スレーブアウトプットの略だから MISOはMISO同士つなげていいのでは?
>>859 今リングバッファとFIFOバッファ調べてきました。
リングバッファは比較的簡単にプログラムできそうだったので試そうと思ったのですが、FIFOバッファって難しそうですね。
いや僕が素人だから難しく感じるだけですね。勉強になりました。
>>860 ですよね。。。よく考えてみたらおかしいことに気づきました。
実は最初にMISO-MOSI、MOSI-MISOと接続していたのですが、データシートのP104に
MISO-MISO、MOSI-MOSIと接続が書かれていたので変えました。
ちょっと混乱しているのですが、マスターだとMISOは入力でMOSIは出力で
スレーブだとMISOは出力でMOSIが入力になると考えたので、MISO同士MOSI同士を接続しています。
もしかして重大な勘違いでしょうか・・・?
たぶん関係ないと思うけど、 >DDRB= 0b11101111; //MISOだけ入力 この時点でSS=0になるよね
>>864 指摘ありがとうございます。
SSピンもアイドル時はHighだからプルアップしないとダメですね。
リングバッファ懐かしいなぁ MIDI受信でお世話になったわ
>>865 こうゆう状況で状態でリングバッファとかFIFOに手を出さないほうがいいよ。
デバッグ手法として、
(A) 一番大切なのは、まずSPIの出力波形をオシロやロジアナを使って目で確認すること。
これができないと難しくなる。一応そこは大丈夫と仮定しての話。
(B) 実験的にディレイを入れる
void xdelay(void){
volatile unsigned long i;
for(i=0;i<50000;i++); /* 数百ミリ秒のディレイ */
}
このディレイ関数を送信側のspi_tx_data()の最後に加える。
void spi_tx_data(unsigned char data){
SPDR = data;//SPDRにデータセット
while(!(SPSR & 0b10000000)); //転送完了まで待機
xdelay();
}
(C) ボタンを押した時、一度に送るデータは1バイトに限定する。
これで問題の切り分けがし易くなる。
うまく行けば2バイトに増やしてみる。
(D) USART送信は固定データに変える
ISR (SPI_STC_vect){
while(!(UCSR0A & (1<<UDRE0)));//送信準備完了まで待機
//UDR0 = SPDR;//SPIデータレジスタのデータを送信
UDR0 ='A';
}
これで、
ボタンを押したらteratermに文字Aが表示されるまで試行錯誤を続ける。
通信速度は今のままでもいいけど、
SPIは1MHZくらいまで,USARTは38400bpsくらいまで高速化したほうが時間管理はしやすい。
要は送信側で1バイト送って次の1バイト送る間隔を長くすれば良い。
それからデバッグ後でいいけど、"ハンドシェイク"という手法も検索すると参考になるよ。
>>867 追記、
上手くデバッグ終了したら、ディレイ関数をはずしてリングでもFIFOでも好きに追加すればよいと思う。
>>857 SPIをウェイトなしで動かすには相応の実装が必要になる
今回の場合は、128分周×8bit分で
1バイトの転送に1024クロックの猶予があるから
それまでに次のSPI転送完了に備えられればいい
ハンドラでUSARTの完了待ちをしなければ問題ない
870 :
774ワット発電中さん :2012/11/14(水) 02:09:28.48 ID:nKGI58WT
int main(void) { // OUTPUT DDRD = 0b00000001; PORTD = 0b00000001; // INPUT DDRB = 0b11111110; PORTB = 0b00000001; while(1) { if(PINB & 0x00000001 == 0){ PORTD = 0b00000001; }else{ PORTD = 0b00000000; } } } PINB0には、スイッチをはさんでGNDをつないでおります。 スイッチを押すとPIND0のLEDが光るものを作りたいのですが、 上のプログラムでは期待通りに動いてくれません。 何か変なところがあるのでしょうか・・・
871 :
774ワット発電中さん :2012/11/14(水) 02:11:37.08 ID:nKGI58WT
PINB & 0x00000001 は PINB & 0b00000001 の間違いです。移し間違えました。
>>870 一目見て気になるのは(PINB & 0b00000001 == 0)
&演算子は==より優先順位が低いから(PINB & 0)と解釈されて
PINBを空読みした後、else節だけ実行するコードを吐く
コンパイラは警告を出すと思うのだが
if(PINB == 0 && 0b00000001 == 0) これでいいんじゃね?
なんでやねん違うわ &と&&見間違えた失礼しました 反省して体育座りしてます &&&&&&&&&&&&&&&&&&&&&&
ハード的でもいいからチャタリング対策もしとけよ〜
876 :
774ワット発電中さん :2012/11/14(水) 09:13:55.32 ID:nKGI58WT
>>872 ありがとうございます。
PINB&0b00000001を括弧でくくって優先順位を上げたら
ちゃんと動作するようになりました!
1時間以上はまっていたので助かりました・・・
>>875 ありがとうございます。
最終的にはチャタリング対策もします。
ハマった時は、散歩するといいよw
>>867 Aについてですが、オシロやロジアナは高くて手が出せなかったので回路基板設計したのですが
まだその回路基板が納品されてない状況です・・・。
SPI通信についてですが、spi_tx_data()の転送完了後にウェイトを入れてみたら上手く転送することができました。
ありがとうございます。
ハンドシェイクについて調べました。
受信側がデータを受け取れているということを想定して、データをウェイトを入れて送信していくのではなく
1つ1つのデータが確実に遅れているか確認を取りながら通信するというものとなっていました。
これはプログラムも出来ると思うので挑戦してみたいと思います。勉強になりました。
贅沢を言えばきりがないので3万円程度の安物(PDS5022など)でいいから、 オシロを買われるよう勧めます。 なにしろオシロを使うと電気が目に見える!!
リングバッファ懐かしくも何ともねー アンドゥ/リドゥのバッファ PCアプリでよく実装する
どうでもいいレスですまんかった SPIのことは自分も参考になって助かる
流れ切って悪いけど、みんな0b00000001とか書いてるの? 16進で0x01とか#defineとかでマクロ定義しないで?
つい最近、俺がリングバッファでウマーと感じた時。 1.256バイトのリングバッファのポインタの下位バイトだけを+1すると 自動的にバッファの末尾と先頭がくっつく。(FFの次は00なので) 2.UARTから受信したらバッファに格納する速度 < バッファされたら取り出してSPIへ送信する速度 の大小関係が成立するので、バッファビジィを気にしなくてもよい。
885 :
774ワット発電中さん :2012/11/14(水) 15:17:28.26 ID:mBsx8q9v
>>885 defineはケアレスミスからのバグを防ぐのに有効
0x、0bはケースバイケース
オシロ買う前にDragonじゃねーの?
>>884 128バイトならポインタインクリメント後に0x7FとANDすればいいって気づいてた?
16バイトなら0x0FとAND
まぁ大昔からあるテクニックなので何をいまさらとか言われそうだけど、
若い子はこういう定番知らずに条件分岐にして冗長なコード作るんだよね。
自分は if(bit_is_clear(PIN(SW1_PORT),SW1_PIN)) sbi(LED1_PORT,LED1_PIN) みたいに書くが... まぁ趣味なら好きなように書けばいいんじゃないかな
おっとアンカー忘れた & 0b,0xの話だったのか
890 :
774ワット発電中さん :2012/11/14(水) 16:16:36.66 ID:mBsx8q9v
>>886 #defineで定義するなら自分定義のヘッダーファイルを作っている人もいるかも。
bit_is_clearとかがAtmel Sudio6では使えなくなってる件
自身の電源電圧を調べることってできますか? 電池の残りをチェックするためです
電源電圧を分圧してADCの入力につなげて リファレンス電圧で測る
ATMEGA8とATMEGA88って違いは何? ピンの数も一緒だしメモリのサイズが違うくらい?
>>893 "分圧"というキーワードで探して簡単に見つかりました
抵抗だけで簡単にできるものなんですね
ありがとうございました
>>891 Atmel Sudioは関係ねぇ
GNUに文句言え
>>887 その手のコードはCPUの高速化と、可読性とやらのせいで廃れてきてる
俺より年上の40のおっさんが知らなかったときは愕然とした
ん?リングバッファ的なサイクリック変数なんて規模がでかくなっても 普通に使うテクニックじゃねえか? 可読性が落ちるような変なわざでもないし 論理演算使いこなせないバカが増えてるだけじゃない? 知っておいて損な事でもないしこういうところで話題に出すことはいいことだ もちろん必須なテクニックってわけでもないし知らないおっさんがいても不思議じゃないだろうがw
バッファサイズが2^nに固定されるだろうが
なんか問題ある?
>>897 ありがとう。
あまり違いは無いみたいなのね。
逆に2^nにしとかないとストレージの容量詐欺みたいで気が引けるでしょ 512 + 256 + 128 + 64 + 32 + 8 = 1000みたいなせこい数え方もあるけど
905 :
774ワット発電中さん :2012/11/15(木) 03:21:09.22 ID:gl1r8Vey
今日AVRマイコンを買いました。 書き込みに成功してちゃんと動いてはいる状態なのですが、 書き込み用の6本の線がついてるUSBを抜くと、 AVRが動いてくれなくなります。 これって普通に電池から供給する電力のほかにも 常にUSBからも電力を供給しないと 動かないものなんでしょうか?
リセットピンがどこにもつながっていないオカン
わからん これは迷宮入りだなw
>>905 電池とUSBからの電源切り替えにSWやショーピン、ジャンパー操作が必要な基板もあるよ。
何を買ったのか示さないと分からない。
その前にアタマと手を使えと
>>905 AVRISP mkIIだろ。
USB抜いたなら基盤に繋がってるISPケーブルも抜けば動く。
動かない理由は知らん。
>>905 mk2は電源を供給しないとリセットがlowになるから、mk2の電源を切るなら少なくともリセットは抜かないと動かないよ。
マイコン初心者スレとかあるといいかもぬ
>>914 うんほしいな。ハードやC言語からみでつまづくのもだいたい同じ
感じだし。
916 :
774ワット発電中さん :2012/11/16(金) 01:33:20.07 ID:fEj9QDN/
うぅ、必要な情報を出さずにすみません。
AVRISP mkIIでした。
>>912 さんのいうように、ISPのケーブルを全部ブレッドボードから抜いたら
動くようになりました。ありがとうございます。
具体的な原因は
>>913 さんの、mk2のリセットの線のようですね。
ひとつ勉強になりました。
次質問するときはちゃんと情報を出すようにします。
とりあえず、ありがとうございました。
Arduino上がりのマイコン初心者です。 いろいろググってArduinoISPってスケッチを入れる事でArduinoをAVRライターに出来るってのは知ったんですが、 Leonardを買ったのでライターのAVRが抜けない事に気付いた。 素直にdoragonとか買った方が無難ですかね?
オンチップデバッグしたいならドラゴン買ってもいいだろうけど 邪魔だし、ライターしか必要ないならレオナルドをライターにして usbaspやhidaspxでも作ればいいと思うよ
tiny1634ってUART*2,TWI*2ある!!ADCもあるし SPIとUSIはないみたいだけど、200円切ってるし、なかなか良いね
SPI(USI)はUSARTの機能に含まれてるよ
Doragon買いに行ったけど売ってなかったので、結局安かったAVRISP買ってきた。
それでいいと思うよ。ok
CMOS(かCCD)カメラを扱いやすいAVR(できれば8bit)ってありますか?
925 :
774ワット発電中さん :2012/11/16(金) 17:34:12.01 ID:KsbMHZjP
カメラって動画だろ? 8bitってカラー液晶ディスプレイ(10インチ)に文字表示させるもの無理。
AVR32
まぁ8bitじゃないAVRってAVR32しかないわな・・・・
>>920 16kのtinyて何考えてるんだろ
どうせなら掛け算のあるmegaの20ピン以下シリーズにすりゃいいのに
しかもなんで12MHzなの
あぅ・・・UART使いたいのに18.432MHzクリスタル使えない・・・
って、16MHzのデバイスでも18.432で発振させて1/2で使ってるんだけどねw
932 :
774ワット発電中さん :2012/11/17(土) 12:39:19.98 ID:nMlHT2PA
質問ですがこちらのサイトの「4. 周波数を表示する」の Timer1を外部パルスの立下りでカウントし始めて立ち上げりで止めるように するにはどのようなプログラムにするのでしょうか? 先輩方教えてください。
933 :
774ワット発電中さん :2012/11/17(土) 12:40:28.27 ID:nMlHT2PA
解説サイトみてわからんと言われてもアドバイスのしようが・・・
LOW期間を計りたいってことなのかな Timer1の捕獲割り込みでICES1を切り替えればできるよ
>>932 avr.jpで配布されてるお前が使ってるAVRのデータシートのタイマカウンタnのセクションを穴が開くまで読め。
937 :
774ワット発電中さん :2012/11/17(土) 13:42:12.99 ID:nMlHT2PA
みなさまありがとうございます。 割り込みでエッジを切り替えればいいんですね。 深く考えすぎてました。
ドラゴンとターゲットをつなぐのに ピンヘッダソケットとリボンケーブルでISPケーブル作ったんだが 40cmくらいのはフツーに使えて 10cmくらいのがコケるw 短いとコケるん? 導通とかは問題ない。 インピーダンスとか輻射とかアナログな要素あんのかなー。
フラットケーブルのようなものだと隣り合う線間には1cmあたり1pF程度の静電容量がある。 クロックとかのエッジで動作する信号線の受け側に小容量のコンデンサを入れてやれば10cmの線でも動くかも。 それより、そういう信号線の送り側に22〜100Ω程度の抵抗を直列に入れる方が良いとは思うが。 要はリンギングを抑えるんだ。
デジタル回路も所詮はアナログだからね。
いや、アナログ要素が無いこたないが40cmが10cmになったとかでは関係ないだろ 938は別の要因があるべ
と、自分も思いますw が、10cmにすると全然通信できず。 半田不良もないし、断線もない・・ 不思議w 手抜きして、リセットを釣ってなかったんですが それをやってもダメ。 とりあえず、ダンピング抵抗でも入れてみます。
隣とレアショートしてるとか、ピン配置ミスとか、まぁ99%はそういうケアレスミスだろう。
少しだけショートしてることをレアショートと呼ぶけど、 あれは本当はトランスのコイル内部のショートの layer shortのことなんだよな なんとなく、レア(rare)なイメージがあるけど
「原因はレアケースという不具合」を思い出した
10cmのは中で断線してるけど 角度によってはそこが接触、とかかもね
直流では導通してるように見えて、高周波だと全然ダメとかね。
単純に10cmのケーブルが不良とは考えないのか
ケーブルが不良w
>>947 逆につながっていないのに長いおかげで隣の線の信号が出てるとか
951 :
938 :2012/11/18(日) 12:21:53.47 ID:Glm+8nJP
よーくみたら、ピンの配線1列と2列逆になってましたw
テスターでチェックしてた時は、逆さに持ってチェックしてた模様ですw
シュリンクチューブをすぐ被せてたのでわかりませんでした・・。
画像は修正後のものであります。
現在問題なく動いております。
http://uploda.cc/img/img50a851bd82e1f.JPG もともと短いのを作ろうと思ったのはデバッグしてて
なんかコケるので、長いケーブルのせいかなあと。
お騒がせしましたwwww
>>951 あるある。
しかもなかなか気が付けないから厄介www
質問者の言う 「確認した」 「大丈夫」 「問題無い」 はアテにならない、は真実だな。
中継コネクタ作るときにやったな 形が合うからそのまま付けたら裏返しだった
956 :
774ワット発電中さん :2012/11/18(日) 16:58:29.16 ID:yvqJbrV9
>>954 だからこそ、やったことを具体的に説明させることが大事。
できれば、回路図と鮮明な写真も添えて。
なのに、横着したがるやつが多いし、説明を求めると、わかるひとだけ答えろとか、知らないなら黙ってろとか言い出したりするし、
どうにもね。
また同じことやらかすだろうなw まともに反省してないようだしwwww
人前であんだけ恥ずかしいことやったら 次からは2ちゃんに書き込む前に確認するようになるだろ
こっちだって暇潰しができて良いじゃん 最悪なのは解決報告しない奴、自分のアドバイスや予想が有効だったかが判らずもやもやする
「40pでは動作するけど10pでは動作しない」 という症状で、 「要はリンギングを抑えるんだ。」 「直流では導通してるように見えて、高周波だと全然ダメとかね。 「長いおかげで隣の信号が出てる」 などと考える連中もいい勉強になったんじゃないか。
>>961 「ケーブルが不良」も忘れちゃいけないよ
え、なんで? はは〜んさては「ケーブルが不良」って書いたのあなたですね〜 リボンケーブルの不良ってどういう状況なんですかね〜 しろうとすぎますね〜
>>965 フラットケーブルやリボンケーブルの内部断線や圧着不良、接触不良は、
もっとも発生しやすいトラブルの一つだと思うぞ。
質問者の発言を無視して一般論で答えればそうかもしれないね。
そもそも、付けたり外したりする回数が多いと予想されるケーブルに リボンケーブルを使うのは信頼性の点で問題があると思う。 メーカーはコストの関係でリボンケーブルを採用するかもしれないが、 自作ならもっと手間と金を掛けてもいいんじゃないか。
他にどんなのあるの?
確かに知りたいよね
私は圧着コネクタにバラ線かシールド付き多対ケーブルを組み合わせている。 バラ線は軽く編むとまとまる。 ハウジングの他にピンを買わないといけない。 専用圧着工具を使えばピンの圧着が確実で作業が早い。 ピン数によってはハウジングカバーがある。
手間と金を掛けるにも限度ってものがですね・・・・ スレチネタだが頑張って埋まるまで続けてちょーだい
今までの話を無にするようで悪いがデバッガの6ピンごときは フラットの圧接で十分すぎる。 ストレインリリーフちゃんと使っておけば何の問題もない。 むしろハウジングケースの無い6ピン圧着のほうが挿抜耐久性低いんだがな。
航空電子のごついリング付きのやつとか、誰か勧めると期待してたのに…
拘るのも自由だし、拘らないのも自由ですよ(^O^) 他の人に押し付けのような事を書かなければいいんじゃないかと。
978 :
774ワット発電中さん :2012/11/21(水) 13:09:29.07 ID:sX4+UwQv
>>979 ルネサスやザイリンクスのみたいに、これだけで数千円とるよりは
マルツのほうが良心的ジャマイカ
982 :
774ワット発電中さん :
2012/11/21(水) 15:25:49.77 ID:RaQR0nuo *******************************************************
*******************************************************
*******************************************************
*******************************************************
*******************************************************
アイドル技術者 唯
http://sky.geocities.jp/xjapan33334343443/index.html 唯様が復活 ICのミグ戦闘機の回路図など
ソビエトの冷戦時代の回路図を解説
基本的なことを解説
宣伝
休憩時間にはリフレッシュに快適な読書を・・・。
*******************************************************
*******************************************************
*******************************************************
*******************************************************
*******************************************************