1 :
:
03/12/22 20:23 ID:5/1otreV
4 :
名無しさん@お腹いっぱい。 :03/12/22 21:42 ID:R+bFxGAI
PICがすべての市場を支配し、H8やAVRなどが淘汰されるという噂を聞いたのですが本当ですか?
>>1
せっかくの専用板なんだから、H8くらいは分離してもいいような…
7 :
名無しさん@お腹いっぱい。 :03/12/22 22:33 ID:ypbLgASL
そうだよね H8はレベルが高いような気がする 使ったこと無いけど H8はじめるなら何から買えばいいの? 秋月のキットにしても何種類かあるみたいだし
8 :
名無しさん@お腹いっぱい。 :03/12/22 23:35 ID:RhDVSOcK
まずは京都マイコンのパートナーを購入。
9 :
名無しさん@お腹いっぱい。 :03/12/23 00:56 ID:OTg9kHtB
AVRって1命令が2バイトなんだよね。 だから、PICとプログラムメモリサイズが同じだと思って使うと 実際は半分程度のプログラムしか作れない。 ちょっとショック。 そんなところがいまいちメジャーにならない原因なのかも。
AVR = Automatic Voltage Regurator
ワード≠バイト
>>9 PICもAVRもワード表記でのメモリ量は書かれているが。
だいたいなんで1命令1バイトと考えたの?
でも1命令2ワードがあるのはショックだったな(sts/lds) >AVR
>>6 H8スレはすでに機械・工学の板にあるよね。
14 :
9 :03/12/23 12:57 ID:8CxUj2Tu
>>12 秋月の広告だとAVRは「ROM8kバイト」みたいに書いてあるよ。
それをぱっと見て勘違いしてしまいました。
>>14 PICはワード単位表記だねえ。
今、秋月の通販サイトをみてみると・・・ありゃ、「◆FLASH:2Kプログラムメモリー」
なんじゃこりゃー。これみたら2kワードと勘違いするのも無理無いなあ。
2kバイトなのか2kワードなのかはっきり書けよゴルァ>秋月
データシートは・・ありゃ勘違いだった。オリジナルはバイト表記のみ、
hero翻訳版はバイトワード併記でした。
16 :
9 :03/12/23 22:21 ID:8CxUj2Tu
AVRはATmegaのような大容量タイプに移行してるし、 PICの一人勝ちという感じだな。
17 :
ちびこ :03/12/23 22:24 ID:kmwGkrrD
18 :
17 :03/12/23 22:30 ID:kmwGkrrD
↑"P2P"は、「通信圏内に他のcybikoがあれば、それが通信を中継して、通信圏を拡大できる」 ってな意味合い。 PC版ソフトウェアcybikoっつうのを介して、インターネット/LAN接続も可能みたい。 大学キャンパスとかカフェとか、人が密集してる所じゃないと使えないヨカーン
19 :
初心者 :03/12/23 22:41 ID:sb+r3C46
PICとAVRって、どっちがどんなのに適してるの? ほとんど考えなくてもOKかな。 それなら安い方を買おうと思ってるんだけど。
>>19 PICが有利な点
お手本、情報、キット類が多い、現在メジャーである
AVRが有利な点
アセンブラがわかりやすい、速い、C言語がつかいやすい
バンク切り替えなどのややこしい概念がない
その他ごちゃごちゃとした優劣あるらしいけど、これは目的によって違うかなあ
>>17 電波法にひかかるとか?
どこらへんの帯域を通信に使っているかが問題なんだろうけど。
出力はそんなに大きくなさそうだし。
>>9 インストラクションが全然違うのに「半分程度のプログラムしか
作れない」というのが?だが。
同じ機能のプログラム書いて比較してみたんだろうか?
もしかして釣り?
>>20 ありがとうございます。今もリンク先とかも見てるんですけど・・・
やっぱり、AVRかな?って感じです。
勉強でどうにかなっちゃうので。問題はそこから先なんですよね〜。
まあ、なんとかなるだろう、と。
よーし、パパ、AVRライター作っちゃうぞ!必要部品を(・∀・)メモメモと・・・
24 :
9 :03/12/23 23:30 ID:8CxUj2Tu
>>22 TCP/IP LeanというPICで動く非商用プロトコルスタックを
AVRで動かそうと思ったんだけど、
プログラムが入り切らなくていろいろ機能を削ってやっと入った、
ということで釣りではないです。
25 :
9 :03/12/23 23:31 ID:8CxUj2Tu
非商用→非商用フリー でした。
>>6 Tinyクラスなら似たようなものだし、一緒でもいいと思う。
H8SとかH8SXが出てくる様なら別になってほしいが。
H8は=ロボットという感じが非常に強いなぁ。 PICやAVRでも使ってる所はあるんですかね。>主にロボコン 企業(AIBO他)や、学術研究(WABOT他)では専用のICを別に作るとか用意してやってると思う。
28 :
名無しさん@お腹いっぱい。 :03/12/24 00:22 ID:Iyl9Gci4
実際は少々非力な気もするけどね>H8 確かに便利で高速なマイコンではあるが。
29 :
名無しさん@お腹いっぱい。 :03/12/24 00:28 ID:yk+hQdcF
SHクラスになるとWINDOWS、LINUXなどのOSも乗る。 もちろん、EEPROM、フラッシュROMに載せる訳だが。 MSのお墨付きだし、評価ボードもMSお墨付きででてるから、開発環境には事欠かん。
30 :
29 :03/12/24 00:31 ID:yk+hQdcF
OSをフラッシュメモリなんかのストレージに入れといて、こいつを挿して起動ってのもある。
31 :
熱暴走 ◆2SA784NN.A :03/12/24 00:37 ID:2LmI2/NY
キターーーー(゚∀゚)ーーーー!!! と、はしゃいでみる。(w 内心マジ。
>>31 その写真をジー(・・)・・と見てみると・・・
まず、下のOSC1と書いてある上の銀色のは発振子。(水晶かな)
茶色のは、ラインに直列に入ってるからスピードアップコンデンサ(カップリングコンデンサ。波形のなまり取り)
JPピン挿すとこはどう使うか分からん。
この評価基板をユニバーサルの上に乗っけて(supply基板として使う感じ)、ユニバーサルに回路組んでお試しだな。
OSC1はさすがに高速だから、回りはベタグランドで覆って、コプレーナライン形成してあって、なるべく半島がないように(ベタグランドに突起を設けるとアンテナになってノイズ拾う)してある。
>>33 訂正
C1,C2,C3,C4全部Vcc,GND間に入ってる。パスコンだ。失礼。
>>35 も訂正。スマン。
C3,C4はOSC1と共に発振回路(コルピッツ)形成してるかもしれん。
すまんかった。
37 :
名無しさん@お腹いっぱい。 :03/12/24 01:06 ID:tu94XbMG
北のミサイルは今後CQ出版謹製の基板で制御される悪寒
38 :
◆/Kitty/aso :03/12/24 01:23 ID:2EBV4hDS
をひをひ PICをワンチップマイコンと一緒にくくるなよ。 >1
>>31 情報遅っ
トラ技が発売されてどのくらい経ちますか?
>>33-34 C1は電源のパスコンで、ムラタの3端子コンデンサっぽい。
C3は内部降圧電源用のパスコン
C4は内部プルアップ抵抗との組み合わせでリセットタイミングを作ってるんでしょ。
C2はアナログ系電源用のパスコン(3端子コンデンサ)
・・・3端子コンデンサつかってもあまり意味はない気がするけど、ムラタの宣伝用?
JP2とJP3は違う周波数のクロックを使いたいときにOSC1を切り離すっぽい。
JP1はサブクロック用の32.768kHzを接続するときにカットすると思われ。
32.768kHzが載ってないので、入力側をGNDに落としてあるだけっぽい。
JP4はNMIをなにかしているようですが、なんなんだろ?
ROMモニタでブレークできるようになってるだけかも。
>>27 >学術研究(WABOT他)
学術学術って、やっぱ学術厨か。
あいかわらず、知ったかやってるんだねぇ。
最近見た早稲田のロボは、RealTime系Linux駆動だよ。
つまり既存の組込もしくは汎用CPU。
>>24 4kワードで足りなかったのか・・・移植元のPICはなんだったの?
AVRって普通の命令はPICより少ない命令数で可能ですが、間接参照を多く使用する
場合はオフセット付き相対インデックスを上手く使わないと、アドレスが16bitなのが
効いてプログラムが長くなる傾向があるので注意です。
0x100未満と以上で変数をわけて、バンク切り替えのようなイメージでXH/YH/ZHを
固定して使ったら結構減るかも知れない。
それでもlpm命令関係で結構使うんだよなあ。SRAMが余っていればこれもSRAMに
コピーしてから使うと少しましかもしれない。
43 :
24 :03/12/24 08:20 ID:tDMaOjRq
>>42 元はPIC16F877だったのを、AT90S8515で動かそうとしました。
言語はC言語(gcc)。
44 :
名無しさん@お腹いっぱい。 :03/12/24 12:33 ID:bfZergg0
せっかく電子板が出来ているのに、PICもAVRもH8も一緒にしなくてもいいんじゃないの? 全部分科を希望。
人が増えてきてごちゃごちゃしてきた時点で分ければイイと思う。 今の過疎状態で分けても 話題ない->人来ない->話題でても人いない->諦めて他いく->話題ない るーぷに陥る。
47 :
名無しさん@お腹いっぱい。 :03/12/24 14:07 ID:OII1u/+5
すみません。スレを立ち上げる方法は、どのようにしたらよいのですか? 探したけど わからなかったんです。
>>47 IEで見て、緑のページ(スレ一覧ではなく)の一番下。
50 :
名無しさん@測定器マンセー :03/12/24 19:07 ID:OII1u/+5
>>41 CPUも専用ICだろ!と言い訳してみる。
つーかFPGA・CPLDでもCPU作れるじゃん。
そりゃ演算能力じゃ現役の汎用CPUには負けるだろうけど。
>44 機械・工学板のほうを使い切ったら随時移動、ぐらいのペースでいいんでないの?
54 :
名無しさん@お腹いっぱい。 :03/12/25 01:36 ID:e7Mv4nDg
55 :
名無しさん@お腹いっぱい。 :03/12/25 01:45 ID:UDcrsj0L
日立とサンハヤトと村田から部品をもらって、基板代だけで +330円ってところかな。
>>54 小売りという前提なら、比較対象は秋月のH8/3664のFP版(\1,600-だっけ?)じゃないかな。
秋月のはサブクリスタルとレギュレータとRS-232Cレベルコンバータも載ってるけどね。
(チップも違うけど)
>>55 26ピンのコネクタが付いてるあたりから想像すると3センチ×4センチ
位の片面基板で、しかも数を作るわけだから生の基板代なんて
100円以下でしょ。それもサンハヤトの提供なんじゃないの?
だから、実質、組み立て検査費用と製本費用だけなんじゃない?
日立とサンハヤトと村田の広告料の代わり只ゲットってことか?
58 :
名無しさん@お腹いっぱい。 :03/12/25 03:58 ID:5/v/6iUP
>>55 サンハヤトだって
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
59 :
名無しさん@お腹いっぱい。 :03/12/25 03:59 ID:5/v/6iUP
>>56 サンハヤトだって!こいつも知ったかか
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
60 :
名無しさん@お腹いっぱい。 :03/12/25 03:59 ID:5/v/6iUP
>>57 サンハヤト、サンハヤト、サンハヤト、
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
61 :
名無しさん@お腹いっぱい。 :03/12/25 04:05 ID:5/v/6iUP
>>55-7 ぷっ日立っ
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
伊東にいくならサンハトヤ
ID:5/v/6iUP かわいそうな子
ID:5/v/6iUP < 2chブラウザによるあぼーん推奨
66 :
名無しさん@お腹いっぱい。 :03/12/25 15:30 ID:UDcrsj0L
基板の型番が MB-H8 とシルク印刷してあるけど、 H8なので-H8はわかるけど、MBって何の意味かな? MainBoardか? BはボードのBだろうな。 教えてくれー>トラ技編集部の諸君! わかった、モナーボードの略だ、きっとそうだ。
>>54 >よく見たら付録なの??てっきり特別定価980円で買えるのかと思ったよ
付属って書いてあるから、980円で買えるだろ。
よし オレは付録だけ盗む
,ィ⊃ , -- 、
,r─-、 ,. ' / ,/ }
>>69 署 { ヽ / ∠ 、___/ | ち
ヽ. V-─- 、 , ',_ヽ / ,
ま ヽ ヾ、 ',ニ、 ヽ_/ rュ、 ゙、 / ょ
\ l トこ,! {`-'} Y
で ヽj 'ー'' ⊆) '⌒` ! っ
, 、 l ヘ‐--‐ケ }
来 ヽ ヽ. _ .ヽ. ゙<‐y′ / と
} >'´.-!、 ゝ、_ ~ ___,ノ
い | −! \` ー一'´丿 \
サンハヤトが基板をが提供するのだろう、ということは、本誌記事もそういった レベルの読者が対象だということ。 4月号だから、お得意のフレッシャーズ特集で、ロボコン目指す学生とか、 向学心のある学生・新入社員が対象の記事だろうね。 「はじめてのマイコン」とかそんなんじゃないのかな。
初めてのエッチ8
ぜひ、書き上げてください サルでもわかるH8きぼん(w
75 :
名無しさん@お腹いっぱい。 :03/12/26 04:15 ID:NkNIKu3E
| 俺の立てたスレなんだ!!! | 続けるんだ!!! | 名スレにするんだ!!! | きっとみんなついて来てくれる!!! \___________ ____ ∨ カタカタ____ ___ ∧_∧ ||\ .\ |◎ | (.#`Д´ ) || | ̄ ̄| |:[].| ∧_∧ . ┌( つ/ ̄l| / ̄ ̄/ ..| =| ∧_∧ ( TДT) |└ ヽ |二二二」二二二二二二二二」 ( TДT) ( つつ  ̄]||__) | || | || (つ つ / / / ./ ̄\ / || / || と_)_) (___)__) ◎ ◎ .[___|| .[___|| ∧
PICを使い始めたばかりの初心者なんだけど、 PICのPCLATHめんどくせー。 AVRに乗り換えた方が幸せなのかな。 ちなみに、作ったものは秋月の32x16LEDを使ったスクロール電光表示。
H8/3694Fってどこで売ってるの? いくらするの?
秋月の基板はひでぇからなぁ。あそこまで質を落とさないとあの値段には ならないだろうと思うけど。
>>78 秋月のH8/3664って、ちょこちょこって組むだけで書き込みも出来るもんね〜
PICとかはライター組むのが面倒。完成品は高いし。
H8もライター大変だよね。
>>79 たいした物じゃないんだからあの品質で必要十分だよ。
製品に組み込んだことがあるけどトラブルは一度もない。
>>80 H8のライターってあーた、232Cつなげるだけやん。
秋月のDIPなH8/3664なんてケーブルありゃ後はソフト。
日立謹製のモニタデバッガ組み込めばオンボードデバッグ
もできますが。
>>78 うほっ!いいタイニー…
値段的には4000円前後なんかなぁ?
期待sage
84 :
名無しさん@お腹いっぱい。 :03/12/26 19:18 ID:dGXm6nC9
H8/322(HD6433228)と書いてある謎LSIを何個か持ってるんだけど 検索しても資料を探せない… 初期のH8だと思うんですが、どっかに資料ないですか?
>>82 むかーしの12V必要だったころの話じゃないの?
最近は書き込みプログラムまで焼き付けになったからなあ、
長生きはするもんじゃよ。ごほごほ。
>>84 なつかしい名前だ。初めて触ったH8が325だよ。
多分紙の資料しか無いと思うので、ルネサスに問い合わせてみれば?
窓なしEPROMなのであんまし遊べないと思うが。
>>85 ルネサスのWEBには名前すら無かったでつ。
6809や68000の資料も置いてないから当然か。
内部ROM無効にして外付けROMで遊べないかと…
気長に古本屋巡りでもします。
>>55-57 日立ぃっ?ぶっ
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
↑ この手の煽りは、2chブラウザ等のIDあぼーん等で消し去り無視対象にすることをお勧めします。 煽り耐性の高い板を目指しましょう。(w
↑お前は煽り耐性低そうだな
素で質問。
>>87 とかは日立→ルネサスなんだろうけど
>>58-60 のネタは何ですか?
トラ技ネタが嫌CQ出版房の召還呪文なのは知ってますが。
91 :
名無しさん@お腹いっぱい。 :03/12/26 22:15 ID:T/DVAIY8
>>90 サンハヤトのような有名メーカーのものをわざわざオマケで付ける
はずはないだろ、と言いたかったのでは?
92 :
名無しさん@お腹いっぱい。 :03/12/26 22:17 ID:n1DartLE
日立ぃっ?ぶっ ∧_∧ ミ ギャーッハッハッハッ! o/⌒(. ;´∀`)つ と_)__つノ ☆ バンバン
93 :
名無しさん@お腹いっぱい。 :03/12/26 22:18 ID:n1DartLE
H8は日立ぃ?M16は三菱ぃ? ∧_∧ ミ ギャーッハッハッハッ! o/⌒(. ;´∀`)つ と_)__つノ ☆ バンバン
>>90 基板と言えばサンハヤトしか知らない奴が書いたと思って喜んで突っ込んだんだろ。
でもってそれがあやしくなったから
>>87 では引っ込めて留値サスで突っ込んでいる。哀れ。
95 :
名無しさん@お腹いっぱい。 :03/12/26 22:20 ID:n1DartLE
普段業界にとんと縁のない生活を送ってるのに、 知ったかでボロを出したみたいねー、釣師たん
96 :
名無しさん@お腹いっぱい。 :03/12/26 22:22 ID:THJzIYAO
H8は日立ぃ?M16は三菱ぃ? ∧_∧ ミ ギャーッハッハッハッ! o/⌒(. ;´∀`)つ と_)__つノ ☆ バンバン 見苦しいよ、きみ
97 :
名無しさん@お腹いっぱい。 :03/12/26 22:25 ID:VEDLt6Ha
∧_∧ ミ ギャーッハッハッハッ! o/⌒(. ;´∀`)つ と_)__つノ ☆ バンバン 苦しい言い訳、ワラタYO!
∧_∧ ミ ギャーッハッハッハッ! o/⌒(. ;´∀`)つ と_)__つノ ☆ バンバン 日立のH8を買えるスレはここですか?
うざい煽りは2chブラウザ等のIDあぼーんしましょう。(w
へたな言い訳カコワルイヨ
102 :
名無しさん@お腹いっぱい。 :03/12/26 22:29 ID:p+/Uso/6
∧_∧ ミ ギャーッハッハッハッ! o/⌒(. ;´∀`)つ と_)__つノ ☆ バンバン えっちはちぃー、えっちはちは、ひたちぃー
あのさー、煽る程度ならまだかわいげもあるがスレッドまで立てるのは流石に 非常識だろ。
あのさ〜、削除議論板で、他人の名前騙って告訴だ訴訟だ言いまくって、 挙句に証拠となるスレ勝手に削除するような基地外の方が、 何百倍も有害だろ。キミはその類と同類じゃ
105 :
名無しさん@お腹いっぱい。 :03/12/26 22:57 ID:8De6G7tz
煽り喧嘩は2ちゃんの華!
すぐ切れる
>>103 は、カルシウムが足りないみたいだねぇ〜。
牛乳のんだら、どうよ?
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
えっちはちぃー、えっちはちは、ひたちぃー
>>105 他のスレに誤爆までしてるし。
何か辛いことがあったんだと思うけど、2chなんか見てないで
お前さんが本当にやるべきことを考えたほうがいいんじゃないの?
煽り喧嘩は2ちゃんの華!
すぐ切れる
>>103 は、カルシウムが足りないみたいだねぇ〜。
牛乳のんだら、どうよ?
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
えっちはちぃー、えっちはちは、ひたちぃー
煽り喧嘩は2ちゃんの華!
すぐ切れる
>>103 は、カルシウムが足りないみたいだねぇ〜。
牛乳のんだら、どうよ?
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
えっちはちぃー、えっちはちは、ひたちぃー
>>106 ありゃりゃ、きみの研究室orフリータ先は、
年始年末返上で働いてるの?
奴隷学生or下級労働者はきりきり働け〜(w
正月も盆も休まず働けぇ〜(w
>>109 年休取ったんで今日から連休〜
前に買ってたH8見たら全部日立マークが入ってたよ(;´Д`)
秋月で今売ってるのもまだ日立マークが入ってる?
日立はディスコンしないと言ってたけど、 ルネサステクノロジもそうなのかな?
>6 君の言いたかったことがつくづく分かった H8も召還呪文だったんだ
ルネサステクノロジって日立と三菱の共同出資で作った会社みたいだね おれにとっちゃどっちでも同じだけど 日立のHDDがいまだにIBMブランドで売られてたりするしね
114 :
名無しさん@お腹いっぱい。 :03/12/27 03:18 ID:YN14R7qx
>>112 な〜るほど、自分のミスを責められると全部「召還呪文」(ぷ で、
都合の悪い事は全部自治厨のせいかよ。
つくづくおめでてぇなぁ
無意味な煽りはマターリ無視でお願いします。 無駄にスレが伸びるのは勘弁です。 建設的な発言にだけレスしましょう。
116 :
名無しさん@お腹いっぱい。 :03/12/27 08:55 ID:GmpoeHP0
SH8はどこであつかうの?
煽り喧嘩は2ちゃんの華!
すぐ切れる
>>103 は、カルシウムが足りないみたいだねぇ〜。
牛乳のんだら、どうよ?
∧_∧ ミ ギャーッハッハッハッ!
o/⌒(. ;´∀`)つ
と_)__つノ ☆ バンバン
えっちはちぃー、えっちはちは、ひたちぃー
118 :
80 :03/12/27 10:11 ID:SMrGvRNh
>>85 え?今のAKI-H8/3048とかの秋月ライターって違うの?
って今WebでみてみたらAKI-H8/3069(5V書き込み)ってあるなぁ。これ?
(秋月の広告には未だにH8/3048F(日立))ってかいてあるが)
H8/3048ONEは、3048Fとソフト、ハード共にマイナーな相違があるから注意して。 ハードなら例えば、5Vで使うなら、1番ピンは浮かすとか、書き込むときはMD2をグラウンドに 落とすとか、VPPだったところはVCCにつなぎなおすとかあるよ。 詳しくはレ寝さすのhpにある。
121 :
(・∀・)ニヤニヤ &rlo;ヤニヤニ(・∀・)&lro; :03/12/28 04:02 ID:lc9u+GDS
PSOCの話題も、ここでいいでつか?
いいんじゃない?PSoCは漏れもお気に入り。 PSoC使い始めてからPICライターが埃かぶってる。
PSOCってサイプレスのアレですか? 評価ボードがいくら、とか、簡単な作成事例とか、どっかのWebにありませんかね?
サイプレスのアレっす。欧米じゃ結構アマチュアが楽しくやってる みたいだけど、日本じゃまだ流行ってないから、国内のwebにも あんまりないかも。 Cypressからディベロップメントキットを買うと400ドル位だっけ? 漏れはそんなの買う気になれなかったからライター自作したけど なかなか面白いよ。 事例集はCypressサイトのアプリケーションノートにたくさんあるから 眺めてみては? DIPだから扱いは楽(評価ボードいらない(笑)) 発振機やパワーONリセットもも内蔵してるから、PICみたいな 発振子やCRも不要で、書き込んだら電源だけつなげば動くし。
>>124 たしかソフトは只でDLかのうだしライターも回路公開でなかったかな?
ソフトは無料だね。ライターはどうだったかな? 漏れが探したときは見つからなくて、アプリケーションノートを 探していったらISPのやり方のドキュメントが出てきたから、 それを眺めて作ってみた。 手順は難しくはないんだけど、ちょっと面倒くさかった。 (あの暗号のようなビット列・・(^^;)
PSoCのアプリケーションノート、他のマイコンにも簡単に転用 できるじゃん...。自作のヒントとして結構おいしいかも(w
アナログも扱えるFPGAのようなもの?
>>128 今の今までただのマイコンだと思ってたけど、それだったら凄いな。
ま、サイプレス自体はFPGAも作ってる会社だからそれもありだね
確かに。
まだあまりにも情報が少なすぎてわれわれヘタレには ちょっと手が出せない。ものすごく面白そうだとは 思うんだけど。思うんだけど・・・
131 :
名無しさん@お腹いっぱい。 :03/12/29 04:35 ID:LNXLLJe3
ピアノがならないんですー PSOCで。他のは大体動いたよー
132 :
名無しさん@お腹いっぱい。 :03/12/29 04:35 ID:LNXLLJe3
中にスイッチドキャパシタを使ったオペアンプが8個と、 増幅専用のオペアンプが4個の計12個入って、 あとカウンタ/タイマ/シリアルポートとかいろんなのに コンフィグレーションできる汎用デジタルブロックが8個 入っている。 これを組み合わせてやるとA/DでもD/Aでもパルス ジェネレータにも化けるし、アナログ演算やらフィルタ なんかも組めるから、 入力=>増幅=>フィルタ=>A/D=>(CPU)=>シリアル なんていうのもそっくり入っちゃう。
ピアノはかなり頑張ってるよね。あの程度のプロセッサで 10音同時っていうのができるとは思わなかった。 乗算機内蔵してるからっていうのは大きいと思うけど。
PSoC、こりゃ面白そうだわい、と思って データシートやらソフトをダウンロード。 で、PSoC Designer v. 4.0 を落とす際、アーカイブの サイズが「7KB」と表示されてて、「はぁ?なんでそんな小さい んだ?」と思ってクリック。 55.4MBあるやないか…_| ̄|○
ところで、PSoCの入手ってどうしてます? 正規代理店って個人の相手してなさそうなんですけど…。 サイプレスのオンラインショップはキットやポッドはあるけどチップはない?
昔Z80使ってた俺。 PICにしようか、Atmelにしようか、はたまたトラ技付録のH8にしようか と迷っていたが、PSoCいいかもしれないと思い始めた。 機械語のニーモニックがなんとも懐かしく。。。
>>137 趣味なら少しずつ触って気に入ったのを使えば良いさ。
漏れは、Z80から入ったからAVRが綺麗ですっきりしていて好きだね。
連投すまん・・うまくリンクできないみたいだ。 トップから、日本語ページ行って検索かければいい。
雑誌で取り上げられたら若松あたりは扱うんじゃない? 商社なら入手は簡単だし。
例えば、ゲインプログラマブルなオペアンプが内蔵されているということですか? この手の石は経験ないので、データシートうまく読めない
>>139 おぉ、サンクス。
まぁ送料はしゃーない罠。海外だし。
お金できたら遊んでみるYO!
ん、ちょっとまった。 手数料1,000円、運送料2,000円って…(´・ω・`)
>>143 そうですね。Morphy液晶変換基板ってなコアな部品を扱った若松だし。
若松のほうがいいかもねー。誰か若松にツテある?
149 :
名無しさん@お腹いっぱい。 :03/12/29 19:42 ID:ZCPFednN
>>148 基本原理は昔、サンプル&ホールド回路っていってたやつだね。
150 :
名無しさん@お腹いっぱい。 :03/12/29 20:57 ID:u4lQa1kn
入手性が悪いのは致命的 それを補って余りある魅力も感じられない
151 :
名無しさん@お腹いっぱい。 :03/12/29 20:58 ID:u4lQa1kn
あと、1台のPCに複数の開発環境を入れるのは気が進まない それを補って余りある魅力も感じられない
>>149 確かにね。オペアンプと絡むことと、複数のコンデンサを
連携動作させられるというのがミソだよね
どうでもいい事書き込んじまったようだ。スマソ
>>153 意見として書く分には問題ないと思うよ。
ただ書き方によっては、煽りと取られるから注意が必要かと。
趣味でいじる人には入手性の悪さは致命的ですね。 本職ならルートがまた違うと思うけど。
156 :
名無しさん@お腹いっぱい。 :03/12/30 15:14 ID:kJ77Ps1G
3064のキット買ったけど 連続して使えるI/OポートがP50〜P55しかなのか・・・・・ そんないっぺんに使わない(LCDがぎりぎり?)けど、すこし存した気分 3052の方がいいのか?
>156 どこのキット?
AVRですが、電源に使ってたコネクタが接触不良気味だったんで 通電したままズコズコやってたら動かなくなりました。 調べて見るとメモリロックされてて解除出来なくなってました。 壊れてしまった?
>>158 壊れてないかもしれんが意味合いは同じだね。(w
諦めなされ。
せっかくAVRで遊ぼうと思ってたのに… 何個か余聞に買っておくべきだった(´・ω・`)
>157 秋月の、 値段考えればしょうがないかも
>>161 =156?
秋月のだったら3064じゃなくて3664だろ。
3064ってたしか3067から何かを省いた石で(うろ覚え)、
ポートはかなり沢山あったはず。
3064のボードを出しているのはイエローソフト、というかビーリバーエレクトロニクス。
>161 秋月だったら3664かな Tinyとは言えI/Oは20数本出ていた思うが 大電流ポートの話をしているの? >P50-55 他のポートでも4桁LCDは駆動できたぞ
3664の大電流ポートはP8だったかも
>>161 キットを嘆く前に、己の説明能力を嘆く方が先じゃないのか?
何がしたいんよ?
166 :
161 :03/12/31 01:09 ID:wCPgq8kp
ごめんなさいでした
>166 気にするな ただ、書き込みボタン押す前に一度読み返そうな 誤字脱字は減るぞ
168 :
161 :03/12/31 16:17 ID:wCPgq8kp
恥かきついでに報告 LEDが点灯した、嬉しかった 次はLCDに挑戦
いや、君のことなんてどうでもいいから その程度のレベルだから訳のわからん事を書くんだ 邪魔だからROMるだけにしときな
なら読み飛ばせよ
>>168 そうか、良かったな
LEDが思い通りに点滅出来るようになると他にも色々応用できるぞ
172 :
↑ :04/01/01 09:43 ID:vk3WC2sQ
たとえば?
>>168 LEDからLCDは飛躍が大きいな
まずはLEDを与えたデータ通りいろんなパターンで点滅させたり
いろいろ練習した方がいい予感。
何を使うときも最初はLED点滅くらいから始まるからな。 デバッグ中も途中でLEDのON/OFF入れて動きを見たり もするし、ロジアナでLEDの端子つまんでおいて、 処理時間がどのくらいか実測したりもするし。
そうさな。次はタイマー割り込みを使って 周期的にLEDを点滅させるなんていいかも。 その次は PWM 使ってLEDの明るさを変えてみるとか。 で、ポートの連続が云々はどうでもよくなったんだべか? 意味がちとわからなかったのだが。
>>175 LCDが目的なら連続4bitあれば問題ないと思うがなあ
data4bit+LE+CMDbit
>>176 あぁ、本人不在でどうこういうのもアレだが。
別にそんなんだったら、ちとI/O叩くのが面倒だけど、別に
不連続でも問題なかろう。タイミング的には data がバラバラ
であってもいいから。
3664Nじゃない3664なら、ポート5、ポート8はフルに8ビット使えるはずだけど。 秋月のって3664Nだっけ?
>>178 NもFも両方あるぞなもし。
本人の説明がないことには、こっちもアドバイスできない訳なのだが。
>>177 Cでプログラム書くんだったら、LEDのポートを構造体化しちゃえば、ポートアドレスがバラバラでもあんまり気にしなくなるんだけど。
まあ、タイミングは問題になるでしょうが・・・
>>177 まあ面倒なだけでラッチする前にデータビット揃えていればビットが連続かどうかは
どうでもいいですね。ただビット分解処理を内部でさせる必要がある(C言語上は
すっきりしてもアセンブラでは・・・)
速度は要求されないし、多分LCDライブラリで出てくる場所は1ヶ所になるので
コードサイズにも影響せず、で結局無問題かな?
>>180 >>181 まぁコードの書き方はなんとでもなる罠。
後は配線とポート設定に気をつけて、ということでFA。
183 :
161 :04/01/02 14:09 ID:vbTl8gSH
元旦の間にレスもらったみたいでありがとうございます ボードは3664のFみたいです 慣れていない半田付けが汚いので今は付け直している所です もうすこしLEDで勉強することにします
184 :
名無しさん@お腹いっぱい。 :04/01/03 19:26 ID:YwX0SOBX
PICのアセンブルを学びたいのですがどんな本が良いでしょうか? おすすめの本があったら教えていただけないでしょうか?
185 :
名無しさん@お腹いっぱい。 :04/01/03 19:29 ID:gZeMWl2T
よくわかりませんので、曙ここに置いておきますね _,,..=-‐''"~`ヽ、 ,,.:r='"~^`'''ー--+-‐'ー‐:、_,__,.,.,.,.,.,r--‐――‐--t''ヽ、、 ,f" / : : : : : : : : : : : : : : : : : : l ``''t..,_ _,.,.,.,.,.,_,r′ j : : : : : : : : : : : : : : : : : : :.j i、 `ヽ、 f´ .:: : ,f′ f : : : : : : : : : : : : : : : : : : :,レ'゙t `=、_ ,.=、 ! :: : j l : : : : : : : : : : : : : : : : : : :! `:-、 _ /ヽ、.,__,.,-、‐' ,ノ ゙t_ i′ ! : : : : : : : : : : : : : : : : :r'" `~´ `''ー-ノ、 ,.r‐:、, ,>'´ `ー:ニ! ,ノ : : : : : : : : : : : : : : : : :.) `ヽ ,/ l : : . i : : : : : : : : : : : : : : : : :.く `''" i : : : : : : . t: : : : : : : : : : : : : : : : : :ノ t -=:、__ : : .! : :|``''`ゝ、: : : : : : : : ハ, ゙t. `ヽ、 _,,..,.;:ノ`ー:、___,.ゝ+-、 ノ /`'=:、_ : : :ノ ノ、 _,,,,,,_ ,r::、、 ゙i, ゙レ''" ゙レ''" ゝ,-‐''"^´  ̄t:/ ゙ー=''"´ ``ー=-iー='゙i、 _」. ヽ、 ,/ ゞ、 ゙i,,、=-ノ j `^´ ヽ、 \ ,.ィ'" `ヽ、,!`'ー'、 _,,..,.=-‐=''"~ ̄``ヽ,ィ'"t. `ー''"´ `゙`ー-‐'''''''"~´ ヽ、 ヽ, ヽ_ノ
>>186 その管理人さんの著作は、原出典がトラ技掲載記事だった記事が数作にまたがって
重複してる掲載されている場合があるから、ネットで買わず本屋で確認して買わな
いとマズイ。
GOOGLE等でPICで検索掛ければ幾らでも引っかかると思うがな。 質問の仕方も厨臭いし、本買ったところでモノにはならんだろうな。
189 :
名無しさん@お腹いっぱい。 :04/01/04 03:59 ID:uOeegxEn
190 :
184 :04/01/04 13:36 ID:oKDe0qZ2
>>188 もちろんamazonやGoogleで調べましたよ。
ただ種類が多いのでどんなのが良いかをお聞きしたいのですが。
言って解らん奴は見ても解らん
193 :
名無しさん@お腹いっぱい。 :04/01/04 14:35 ID:Oe0GqDrc
>>193 I/Oを一定タイミングで高速応答させる事が出来るかどうかであって
CPUの機能がどうこうと言う問題でも無いよ。
>>196 >ただ種類が多いのでどんなのが良いかをお聞きしたいのですが。
お前様がどんなものを希望しているのか今の時点ではまったく分からん。
英語が普通に読める? 他のアセンブラの経験がある?
ロジックICの経験は? 何か目的の製作物がある?
みんな良いやつだなー。>190のレベルに合わせて紹介しようとしているのね。
201 :
184 :04/01/04 20:14 ID:oKDe0qZ2
みなさんレスどうも有り難うございます。 取りあえず↑の本を購入してみる事にします。
202 :
名無しさん@お腹いっぱい。 :04/01/04 20:38 ID:PS64HgY0
>>194 PICブロック崩し作ってみた。ボールの動きが
ホロホロホロとぎこちなく滑らかには動かなかった。
>>202 ボールの大きさが最小単位だからね。
それにしても約5時間で作ってしまったとは。
204 :
202 :04/01/05 00:30 ID:gQItLGhE
2年前の話であります。でも5時間あれば作れるシンプルさではある。
205 :
名無しさん@お腹いっぱい。 :04/01/05 21:16 ID:JBR774rz
すみません。教えて下さい。H8/3048をC言語でプログラムしているのですが、 どうしたらいいのか わからずに困っています。 というのは、浮動小数点のことです。 あるBCD3桁による数字を、100で割って、printfで表示させたところ 小数点以下が.99999とかになってしまうのです。この結果を、ある値と比較して OK/NGを出したいのですが、もとになる数値が.99999とかの端数が出てしまっては 困るのですが。 unsigned int BCD; float value; float ref; ref = 123.45; BCD = 12345; // ←実際には、外部からの設定入力 value = (float)BCD; value /= 100; if(value < ref){ OK } else { NG } と、こんな感じです。この場合、NGになってくれないと困るのですが OKになってしまうんです。 すれ違いかとも思いましたが、ここで質問させて頂きました。 皆さんはどのように解決していますか? 宜しくご享受ください。 → 10出割る → ・期待するのは 1234.5 ・ところが内部では 1234.499999 比較のときに
>>205 unsigned int iref;
iref = (unsigned int)(ref*100+0.5);
ってのはNG?
207 :
名無しさん@お腹いっぱい。 :04/01/05 22:00 ID:JMQYg/R8
intの整数化の処理忘れたけど、小数点以下切捨てなら、 int BCDdamy=(int)BCD; if (BCD-BCDdamy)<0.5 {例えばBCBが123.4999のときの処理(例えばBCD=BCDdamy+0.5} elseif (BCD-BCDdamy)=>0.5 {例えばBCDが123.5111の時の処理(例えばBCD=BCDdamy)} intが四捨五入なら、if、elseifで正と負で・・・、でどう?
208 :
名無しさん@お腹いっぱい。 :04/01/05 22:13 ID:JBR774rz
>>206 ,207
早速ありがとうございました。
なるほど、float*100倍→intして、比較するということですね。
なるほど、なるほど。なんかうまくできそうです。
ありがとうございます。さっそくやってみます。
209 :
名無しさん@お腹いっぱい。 :04/01/06 02:19 ID:1BE6N46B
オープンドレインなのでプルアップ抵抗が必要とありますが オープンドレインってどういう意味なのでしょうか?
>>209 FETの出力端子が処理されていない状態のこと。
オープンドレインじゃないやつは内部で出力端子の処理が行われている。
→トーテムポール出力(参照)
211 :
名無しさん@お腹いっぱい。 :04/01/06 05:26 ID:JW/AG20f
>>206 ,207
ありがとうございました。
おかげで、なんとかできました。
floatで計算して、0.5を足してから、(long int)したら
誤差は無くなりました。バッチリ動いています。
感謝、感謝です。ありがとうございました。
212 :
名無しさん@お腹いっぱい。 :04/01/06 05:44 ID:JW/AG20f
>>209 ICの内部にある出力用のFETの出力端子である「ドレイン」端子が、
オープン、つまり解放でほったらかしにしてあること。
そのような内部構造になっているピンを、オープンドレイン端子という。
通常ポート(Push-Pull出力とかトーテムポール出力とか言う)では、
ソフトの出力命令を受けて、0でVSS(0V)、1でVCC(5V)になるが、
オープンドレイン端子のポートは、0でVSS(0V)にはできるが、1のときには
5Vを出力することができない。だったら、なぜこんなのがあるかというと、
1)異なる電圧を出力したい時 2)他のオープンドレイン端子とつないで
ワイヤードORにしたい時 などのためにある。
しかし多くの場合は、他のポートと同様に、1の時に5Vを出したいので
そのために、5V電源との間に抵抗をつけてやる。そうすると、0はFETで行い、
1は抵抗が5V近くに吊り上げてくれるというわけ。プルアップ抵抗ね。
初心者はこの抵抗を忘れて「あれー? 出力が出ーせん」と焦るが、
先輩から「たーけだなぁ、抵抗つけんで出力が出るわけねーじゃん」と
一蹴される。
213 :
名無しさん@お腹いっぱい。 :04/01/06 05:47 ID:JW/AG20f
どーらい眠たいで、今日は帰るわね。お先にごぶれい。
>>195 AVRでこれまねようとすると、IOポートを直接シフトできないのが響いてやや差が縮まるね。
PIC:rrf portb,fでデータをシフトして、1つのピンから信号をとりだせば1サイクル単位で操作できる。
20MHzで400nsec。SXの50MHzなら160nsec
AVR:lsr レジスタ/out ポート,レジスタ と2サイクル必要。8MHzで250nsec
215 :
214 :04/01/06 14:17 ID:0V+Uq6HN
>>214 訂正。
20MHzで200nsec。SXの50MHzなら80nsec
AVR:lsr レジスタ/out ポート,レジスタ と2サイクル必要。8MHzで250nsec
megaもちださんと負けてるじゃん・・・
>>216 PICが20MHzでAVRが8MHzで比較してる根拠が不明なんだが。
1200は12MHz、2313は10MHz。
残りの旧AT90Sシリーズは全部廃品種w
秋月で扱ってるTiny26Lは低電圧タイプなんでノーマルなら16MHzで動くよ。
…って不毛な反論だ。
I/Oポートが直接シフト出来るのは魅力だな。
>216 SXって 1cpiだから、50MHzなら 20nsにならんか?
>>218 え、そうだったの?(使ったことない)
そういえばsxtetrix(カラー版)は・・・
220 :
名無しさん@お腹いっぱい。 :04/01/06 21:20 ID:Dp3q8m4a
すみませーん、教えて下さい。 PIC12F629のデータシート(英語版)で、52ページのConfigration Bitの説明のページで bit13と12に「BG1,0」というのがありますが、これはいったい何でしょう? 少し読むと、BandGap Calibration Bitだということがわかりますが、 バンドギャップといえば、一般に電圧を一定にする素子(半導体)の ことですが、これらのbitは、その基準電圧調整bitのようです。 しかーし、 1) この値は、PIC内蔵機能の何に影響を及ぼすのか、わからないんです。 ADのVrefか?? 2) 工場出荷時に調整してあるから、書き込む前に一旦読んで、 同じ値を書け、みたいなことも書いてあります。 が、どうやって読めばよいのでしょう? 私の持っている書き込みソフト(Robin Abbott君のPIC Programmer Ver4.95)では、12F629にセットすると、Configration Fuse設定の 窓に、このBG0,1のチェックBOXが現れ、そこがすでにチェック されているのです。このチェックは すでにこれらのbitを読んだ 結果を表示しているのでしょうか? 3) あと、電気的特性の表に盛んに登場する「TBD」という値?は、 to be determineの略であり、「未定だよ、そのうちね」という 理解で正しいでしょうか? うーん、よくわからない。 宜しくお願いします。
221 :
名無しさん@お腹いっぱい。 :04/01/06 21:49 ID:Dp3q8m4a
自己レスです。 1) BODとPORにに影響するらしいです。私の見ていたデータシートには 無かったが、最新版にはこっそりと説明が追加されていた。 2) やはり読んでから書け とのことでした。 マイクロチップ純正のライターには、この値を保存できる機能が あるよーん、と書いてありました。 3) 正解のようです。 どうもお騒がせしました。
223 :
名無しさん@お腹いっぱい。 :04/01/06 23:53 ID:Dp3q8m4a
電子工作の実験室で紹介されていた浮動小数点数演算の 純正ライブラリーを使ってみたのですが 10進数から浮動小数に簡単に変換できる電卓ソフト みたいなのってありませんか? 整数ならなんとかなるのですが、小数とかになると もうお手上げです。ご存知でしたら紹介していただけないで しょうか。
225 :
名無しさん@お腹いっぱい。 :04/01/07 00:16 ID:PXnhGCaP
PIC16f84.hでプログラムを入力する際に 数値の場合では 16進数は数値の最後にスモールh 2進数の場合には最後にスモールb をつければエラーなくいくのですが 10進数の場合には最後にスモールdを つけてもエラーがでてしまうのですが どうすればエラーなくできるのでしょうか?
なんででしょうねぇ D'255' って書き方にしてもエラーになりますか?
dってHexの14でしょ。 h'f0' b'11110000' って書き方は知ってますか? d'240'はどうだろ。
228 :
227 :04/01/07 00:34 ID:mNeVnZxj
229 :
名無しさん@お腹いっぱい。 :04/01/07 01:01 ID:PXnhGCaP
>>226 >>227 私が使ってるアセンブラは
b'0000'や
h'22'の書き方ではエラーがでるんですが
0000b
22h
だとうまくいくんです。
だからd'240'としてもエラーが出てしまうのですが。
231 :
229 :04/01/07 01:13 ID:PXnhGCaP
>>230 それも試したのですがだめでした。
10進数で書けないってことはないですよね?
>>231 PICならMPLAB使ったら
使いやすいよ
233 :
229 :04/01/07 03:29 ID:PXnhGCaP
皆さんありがとうございました。 立て続けに質問して申し訳ないですが portaのra0ビットをクリア(0)したいときって どういう風にしてプログラムしたらよいのですか? portaの全ビットをクリアするなら clrf portaならエラーなくいくのですが clrf porta,0にすれば当然エラーがでてしまいます。 どうすればうまくいくのでしょうか?
234 :
名無しさん@お腹いっぱい。 :04/01/07 03:34 ID:pnMIi732
b'1111110'でANDを取りますね。 逆にセットしたいときは、b'00000001'でORします。
235 :
229 :04/01/07 04:13 ID:PXnhGCaP
BCF命令使えよ
BCFは入力ポートを読み返すから 今ひとつ安心して使えない。 まあBCFでひっくり返るほどの条件だとどうやっても安心は出来ないんだけどね。
>>237 16F819とかでも、その問題は相変わらずなんだっけ?
18Fシリーズだと、バッファが入っているとか何とかだっけか?
16C84の昔からクセある石だったからなー
PICはノイズに強いって聞いたけど。 自動車分野で使われてるんじゃなかったっけ?
241 :
名無しさん@お腹いっぱい。 :04/01/08 20:42 ID:AoBpxx4J
picは自動車分野でも使われてるよ。 医療分野でも使われている。 欠点ばかり挙げていて何も作れない技術者はワンサカいるわけだ。 PICという素材をどういう風に活かすかが、技術者の腕の見せ所。 うまく作れば、安くて高信頼性のものが作れる。
242 :
名無しさん@お腹いっぱい。 :04/01/08 20:48 ID:iqs9QzCh
初歩的な質問ですいませんが、秋月のPICライター(ver3)で PIC16F877Aのデータをリードしたのですが全て0で読みだせないのです。 (もちろんジャンパーピンも間違えて刺したりしていません。) 16f84aは正しく読みだせてるのでライターの不良では無いと思うのですが。 前にどこかで16F877と16F877aは殆ど別物と聞いたのですが本当でしょうか?
今日買ってきた16F84なぜか即行で壊れた・・・
>>242 別モノじゃないけど、IO関係のイニシャライズを真面目にやらないとポートが
ちゃんと動かない、、、っていうのはある。
ATMELのAVRStudio4.08を使っているのですが、内蔵アセンブラは 連続する複数行にわたる.DBによるバイト列は表記できないのでしょうか? 具体的には MSG: .DB "foo",0x0D,0x0A .DB "hogehoge",0x0D,0x0A で、"foo[CR][LF]hogehoge[CR][LF]"を期待するのですが、 データ数が偶数であるアセンブラの制限で "foo[CR][LF][NUL]hogehoge[CR][LF]" と、0x00が挿入されてしまいます。 MSG: .DB "foo",0x0D,0x0A,"hogehoge",0x0D,0x0A と書けば問題ないのですが可読性がよろしくないので できれば改行位置で行を分けたいのです。ソースの 改行を無効にして次の行を結合させる表記方法はないですか?
>>246 自己レス。解決した。
MSG:
.DB "foo",0x0D,0x0A ,
.DB "hogehoge",0x0D,0x0A
でいいみたいだ(行末を "," で終える)
>>247 解決してなかった・・・・
しょうがないから0は無視して文字終端コードがctrl-Dなputstrをでっちあげまつ・・・
その環境は使ったこと無いんだけど、 DB "foo",0x0D,0x0A,\ "hogehoge",0x0D,0x0A と、バックスラッシュで行を繋げることは出来んのか?
>>249 そうそう、それで出来るかと思って、\(/)はすぐやったんだけど、だめでした。
しょうがないし特殊仕様のputstr作るのも気持ち悪いので
MSG:
.DB "foo",0x0D,0x0A , "hogehoge",0x0D,0x0A
;"foo",0x0D,0x0A ,
;"hogehoge",0x0D,0x0A
として、修正時は下のコメントを修正してバランスを取り、上にカットペーストして"\n;"を削除することにしました。
SXマイコン用のアセンブラSASMが見つからないんですが ubicomのサイトからも消されたのでしょうか。
252 :
名無しさん@お腹いっぱい。 :04/01/12 16:00 ID:szrIcs2d
257 :
名無しさん@お腹いっぱい。 :04/01/13 22:45 ID:LIqnCbQD
258 :
255 :04/01/14 00:04 ID:+gkg4pyH
>>257 なるほど、ありがとう。なんとなくそんな感じですね。
ところで、Parallax タイプのPICマクロアセンブラを pa 以外で何方か知りませんか?
260 :
255 :04/01/14 00:41 ID:+gkg4pyH
>>259 変換ですか、それはちょっと…
(試しにpar2picをDOS窓から実行してみたら Runtime error 200 ですと)
しかし、Microchip に乗り換えるしかないのか。ちと辛いが。
ParallaxのPICアセンブラって、スキップでハマるんだよな。。。
263 :
初心者 :04/01/14 18:38 ID:spboy28O
はじめまして、皆様に教えていただきたいのですが PICの出力ピンで直接ドライブできるリレーって有るんでしょうか? 目的はプラレールというオモチャのサウンドボードにタクトSWがついていて このSWを押すことで音が出ます。 このSWを「秋月の赤外線リモコンユニット」でリモコンしたいのです。 既に秋月のは購入し完成していて、LEDをON・OFFさせて遊んでいます。 リレー接点の電圧・電流は小さくてもOKです。 ネット検索したのですけど、見つからず いちいちTrを咬ませるのも面倒だし IOピンで直接、リレーをドライブできたら楽なんですけど。
リレーにしたいなら、フォトMOSリレーで探したほうがいいかも。
タクトスイッチのコモン側がGNDレベルならトランジスタ(オープンコレクタ)だけでも 良いんじゃない? せめてフォトカプラあたりでも
266 :
名無しさん@お腹いっぱい。 :04/01/14 19:57 ID:s0suPMYZ
>>263 >>いちいちTrを咬ませるのも面倒だし ドライバーを邪魔くさがっていたら、マイクロコントローラーなんて使えません LED点灯が関の山になってしまうよ!
フォトMOSリレー、Trアレイ・・・世の中便利な物が沢山転がってるわけだが。
268 :
名無しさん@お腹いっぱい。 :04/01/14 20:02 ID:IdKSR/z9
フォトMOSリレー便利だよね。 ちと高いのが難点。
>>263 リレーがカチカチ鳴って五月蝿いかと。
アナログSWというのもあります。
リレーより安上がり。
>>270 アナログスイッチじゃ電流流せないよ。
>>271 たしかにタクトSWと同じぐらいに電流流せないよな。
273 :
名無しさん@お腹いっぱい。 :04/01/15 02:06 ID:JSvgwlUd
松下のリレーで、50mWというものがあります。5Vなら10mAね。 これなら確実に動かせます。また、OMRONのG6Kは20mA@5Vで いっぱいいっぱいで動かせます。 もし、リモコンのマトリクスSWをon/offしようとしているのなら、 4051/2/3だったか?のアナログSWでできます。ただし接点信号の 振幅は4051/2/3の電源電圧以内でなければなりません。 赤外線リモコンならたぶん3Vでしょうから、PICが5V電源なら 範囲内になります。
>>273 > 松下のリレーで、50mWというものがあります。5Vなら10mAね。
リレーやモータなどのインダクタ負荷だと、一瞬だが通常の10倍を越えるような突入
電流が流れるから、やめといたほうがいい。
> 4051/2/3だったか?のアナログSWでできます。ただし接点信号の
> 振幅は4051/2/3の電源電圧以内でなければなりません。
4051/4052/4053は全てアナログマルチプレクサだから、スイッチマトリクスのON/OFFに使うには
ムダが多過ぎる。それと、4051/4052/4053はロジック動作部とは別に、独立した
アナログスイッチ部の負電源ピンを持っているので、0V以下に振れる入力信号を切り
替えることが可能。
単独のアナログスイッチは、4016とその改良品の4066が定番で4素子入りだが、こち
らは、電源がVdd-Vssしかない。それと、例えばTC4066B(東芝製)で5V動作、
周囲温度25℃時に、内部ON抵抗が最大で950Ωあるので、スイッチマトリクスの入力側
プルアップ抵抗が最低でも2.2kΩ、できれば10kΩ以上でなければ使えない。
まぁアナログスイッチには極力電流を流すなってこった。
>>274 モータはそうだけど、リレーは突入は流れないだろう。
逆に、off時の高圧で壊れるからダイオードが必要になる程度の話
276 :
初心者 :04/01/15 12:14 ID:eljeawB0
皆様、早速のレスありがとう。 九州の田舎なもんで周りに情報源がありません、助かります。 >264.267.270 「フォトMOSリレー」「Trアレイ」「アナログSW」を早速検索してみます。 >265 最初に考えたんですけど、 SW側の配線がすべてフロートされているので無理でした。 >266 おっしゃる通りなんですけど 秋月のリモコン受信基盤の空きスペースを利用したかったのです 部品が増えると、スペースが足りなくなりそうで
>>276 SW両極がフローティングしていても、もしリモコン受信機の電源がそのオモチャと
独立させてもいいのなら、問題なしじゃなかろうか
スイッチが複数あれば問題だけど
フォトMOSリレーなら無問題?
278 :
初心者 :04/01/15 13:20 ID:eljeawB0
>>277 すみません説明不足で
制御したいSWは10個有り
それぞれのSWは2回路1接点で足が4本あります。
それぞれの足の配線を追いかけてもGNDとは無関係でした。
ところで
フォトMOSリレーを検索したら「共立」のHPにありましたが
アナログSWはどこで通販しているのでしょうか?
田舎者につき、よろしく
フォトMOSリレーって、回路を見ると1回路2接点のような気がしたんですけど
2回路2接点には対応していないですよね。
>>278 アナログスイッチといえば、ふつ-4066
4000シリーズの4066よりも74HC4066の方がON抵抗が低かったですよね。 Typ値で4066は5Vで290Ω、74HC4066 は4.5V で170Ωくらいだったか? 74AC4066ってのは無かったですよね。 機械式リレーの100mW とかの消費電力が低いタイプはON時吸引力が弱い ので外部からの振動接点がチャタリングする物も有りますから、衝撃が 多い所での使用には注意が必要です。 1W出力のスピーカの横の基板に載せてたらSPの音でチャタッタ事あり。 ホトMosリレーはドライブ側の赤外線発光ダイオード(Vf=1.2V程度)に 実力値で3mAも流せばONに成る(5mA以上は流すべきでしょうが)ので 電池駆動のセットには非常に有り難いリレーでなのすが、原理的に反応速 度がバイポーラTR受光のフォトカプラ-の様に早く出来ないのが欠点です。 フォトMosリレーONメカニズムは、 ・赤外D発光⇒内部太陽電池発電⇒Mosゲート電圧上昇⇒ON。 遅いとはいっても機械式リレーとの比較でなら全く問題は無いですが、トラ イアックの様に50/60Hzの位相角による電力制御には使えないようですね。 あとフォトMosの出力が直接機器外部に出るときは、静電気の直撃には余り 強くは有りませんので注意が必要です(そりゃ機械リレーは強い罠)。
281 :
名無しさん@お腹いっぱい。 :04/01/15 15:39 ID:+HY2uI+a
>>274 リレーやモータなどのインダクタ負荷だと、一瞬だが通常の10倍を越えるような突入
電流が流れるから、やめといたほうがいい。
これってホントですか? インダクターは、切りにくいけど
突入は電磁誘導の関係で、ゆっくりと電流が上昇しません?
>>281 切る時に流れる。
まーアマチュア工作レベルだったら、ダイオードをリレーにパラに上向きに
つけときゃだいたいOK.
>>281 DCリレーは突入なし切れるときの誘導は高速応答が不必要な場合はダイオードをパラっておくと吸収できる
モーターは定格によって挙動が大きく変わる
起動時は電源電圧を巻線抵抗値で割った値の電流が流れるので高出力型の場合はほとんどショート状態
切る時の誘導は高出力型なほどL成分が少ないので誘導も少ない
>>281 小さなDCモーターに電流計つけて軸をロックすると電流計振り切れる。
始動時は動いてないからこれと同等じゃないかな。
>>284 あれ・・・リレーの話か。いってきます・・・
リレーはレジスタンス大きいから大丈夫っぽい
>>284 モーターはそうだね。
起動時に最大電流が流れロック時が最大トルクだったっけ。
リレーのコイルは・・・忘れた。(w
つーかリレーは動作中ずっと軸ロックしているモーター状態だな。 だからコイルにレジスタンスがないとやばいのだろうけど・・・
>>287 コイルに流れる電流に関しては、定格通りでそ。
どんな特性か、使い方かはメーカーの資料を見れば親切に解説してくれてるよ。
漏れはオムロンか松下の物しか使ったこと無いが。
289 :
初心者 :04/01/16 12:57 ID:3Vkutr/s
>>270 アナログSWをどうしても見つけられません。
売っているサイトを教えて下さい。
よろしくお願いします。
292 :
名無しさん@お腹いっぱい。 :04/01/16 14:14 ID:b+6QVwKq
74hc4066はマイナスも使えないし電源に拘束されるから、 74HC4316 ただし、モトローラしかつくっていなかった。もう手に入らないと思われ。 もっと広い電圧レンジが欲しければスタンダードな4066Bが一番良い。 オン抵抗はそれなりにあるので、設計技量でカバー。 オーディオでつかうなら、クロストークに注意。50dBくらいあるから 左右独立でやったほうがいいね。オン抵抗は、パッケージで殆ど同じだから、 チップのばらつきによるオン抵抗のキャンセルは、もったいない使い方だが、 帰還にアナログスイッチをオンした状態で挿入すれば、かなりいい特性がでる。 あと、ビデオスイッチくらいはこれでできる。でも、こんなの使わなくても、 ダイオードスイッチでもできるんだけどね。たとえば監視カメラスイッチャとか 画像にうるさい人はADでも使った方がいい。
>>278 >>263 をもう少し調べてみなさい。たぶんスイッチマトリクス構造になっているのでしょう
こんな感じの4x3 だろうと思う。
| | |
---SW1---SW2---SW3
| | |
---SW4---SW5---SW6
| | |
で、プルアップがプルダウン抵抗のついてる方が入力だ。
プルアップならLスキャン、出力をHかopenにして、Lにしたラインをアクテブにして検索する方法。
原理がわかれば、picの速度があれば、スキャンにあわせて出力しても間に合う可能性高し
それがダメなら、スキャン方向を調べてトランジスタでスイッチングする方法がある。
例えば L スキャンなら2SC系のトランジスタを使って
スイッチの下に、エミッタをスキャン側にコレクタを入力側につないでベースを抵抗10KΩでPICに接続する。
PICからベースをHにしておけばエミッタがLになってもコレクタはHのままでスイッチの邪魔はしない
PICからLを出してもエミッタがHならコレクタはH
エミッタがLになればコレクタもLになる。
ON抵抗はチャネル電圧でダイナミックに変化するんだが。。。 キャンセルしたいならT型かL型にしてHi-Zで受けるのがいいと思われ
AVRでどつぼにはまった。。。 avrgccのインラインアセンブラで2つのunsigned intをつなげて 1つの32bitデータとして左シフトするものを作っていた。 asm volatile ( "mov %B1,%A1" "\n\t" "rol %B1" "\n\t" "rol %A1" "\n\t" "rol %B0" "\n\t" "rol %A0" "\n\t" : "=r" (AH) , "=r" (AL) : "0" (AH) , "1" (AL) ); ところがこれが吐くリストファイルが asm volatile ( 670: 33 0f addr19, r19 672: 22 1f adc r18, r18 674: ff 1f adc r31, r31 676: ee 1f adc r30, r30 678: 91 50 subi r25, 0x01 ; 1 67a: a9 f7 brne .-22 ; 0x666 "lsl %B1" "\n\t" "rol %A1" "\n\t" "rol %B0" "\n\t" "rol %A0" "\n\t" : "=r" (AH) , "=r" (AL) : "0" (AH) , "1" (AL) ); な、なにこれ(^^;)....小一時間悩みました。 add r19,r19とrol r19の動作を考えてやっと納得。 AVRINST.pdfにも書いてあるじゃないの・・馬鹿でした。
>>295 AVRをCで使ったことないんだけど、
subi r25, 0x01
ってどこから来てるんだろ?
>>296 これは全体をくくっているfor() loopの一部だと思われます。
asmで生成しているのは676: ee 1f adc r30, r30 までと思う。
>>297 なるほどね、つかキャリーを含んだシフトって何に使うんだろと思ってたけどadcと同じなんだね。
PICみたいに少ない命令で使い回すのがいいのか、AVRみたいに重複させるのがいいのかはわからんなw
>>298 まあいろんな考え方があるんでしょうね。
私はadcと同じものでも素直にrolの方がわかりやすいと思ったりするんですが。
ror命令がなければどっちでもいいんですけど、rorがあるなら水増しでもrolも欲しくなる
rol/lslはadc/add命令のエリアスだったのか...。 ほかにも clr/cbr/sbrとか。ブランチ系なんか、2個の命令に18個の エリアスがあったり...(w AVRの命令数って意外に少ないのかも知れず。
>>300 だねえ。たくさんある条件分岐、実は全部brbcとbrbsだし、BRSHなんてもろBRCCだし
ステータスレジスタビットセット・クリアもBLCR/BSETの水増しだし。
clrはeorとかほかにもありそう
まあわかりやすいからよしとしたい
302 :
299 :04/01/17 08:54 ID:Iolb63YL
>>301 いや、でもbr**系とse*/cl*系は素直にbrbs/brbc/bclr/bsetのほうがいいなと思う。
adiw Reg,1/sbiw Reg,1にincw/decwなんて割り当てたら笑ってしまうだろうなあ
301=302でした。
>>295 んなコード書いてたらはまる罠。そのまま出てきたらもっと怖い…
製品に実装する場合はコストや実装面積でいろいろ考えることあるんだけど。 治具に使うとか、実装面積をシビアに問わない電子工作あたりだとH8の方が picよりよっぽど便利でないかい? picのスペック見たときは感動して使い出したんだけどあくまでもPICであって CPUの代わりさせようとちょっと欲張ったらたちまちピンが足りなくなったっちゃ。
>>304 ご心配なく、趣味工作野郎のお遊びです(w
ところで、どのへんがおかしいですか?
>>306 インラインアセンブラに突入するときは、フラグ不定と思って書いたほうが良いのでは
というのが漏れの考え方。GCCの吐いたコードで、少なくともGCCはフラグリセットで
突入するってのは見えるけど、帳尻合わせのコード吐かれて、かえって遅くなること
も考えられるし。この辺は処理系によって変わるんで、はじめからlslあたりの、フラグ
の影響を受けないコードを書いた方がいいかと。
(addrで吐かれたから、フラグの影響を受けないけど、書いたコードそのままのrolで
吐かれたら、ヒジョーに怖い)
上のほうで出てきたCypressのPSoCだけども、なんとなくサイトを 見に行ったら、賞金3万ドルでデザインコンテストをやってるね。 前回は「参加する」と言えばデバイスと開発ツールを無償でくれた という話だから今回もそうかも。 興味ある人は日本サイプレスまで問い合わせてみては?
>>307 あ、しまった。デバッグのつもりで一部書き換えているものをあげてしまいました。
もともと及び最終的にはlsl/rolでやってます。
__asm__ __volatile__ (
"lsl %A3" "\n\t"
"rol %B3" "\n\t"
"rol %A2" "\n\t"
"rol %B2" "\n\t"
"rol %A1" "\n\t"
"rol %B1" "\n\t"
"rol %0" "\n\t"
: "=r"(BH) , "=r" (B) , "=r" (AH) , "=r" (AL)
: "0" (BH) , "1" (B) , "2" (AH) , "3" (AL)
); //(M-AH-AL)<<1;
>>309 了解です。えっと、
>>295 の出力は、テスト版のですか?もともとのですか?
テスト版であのコード吐くなら、フラグリセットで突入ですけど、もともとのなら
>>295 のソースでどう吐かれるかワカラン…ま、どっちにしろ、フラグに気を
つければ良いんですけどね。
>>310 .lstファイルからは以下のようになっていました。
4b8: 22 0f add r18, r18
4ba: 33 1f adc r19, r19
4bc: ee 1f adc r30, r30
4be: ff 1f adc r31, r31
4c0: 66 1f adc r22, r22
4c2: 77 1f adc r23, r23
4c4: 99 1f adc r25, r25
313 :
名無しさん@お腹いっぱい。 :04/01/18 13:47 ID:zaYdLxgv
16F84Aで16X16ドットマトリクスを表示させたいのですが、 今の知識ではピン数の都合で6×6を表示するのが限界です。 表示する方法は無いのでしょうか?
>>313 外部にロジックIC付ける。
詳細ははぐーぐる先生へどうぞ。
あ、外部って、16F84Aにってことね。
>>313 6x8じゃなくて6x6なのが疑問だが。
素直にもっとピン数の多いPIC使えば?
317 :
313 :04/01/18 14:19 ID:zaYdLxgv
>>316 >6x8じゃなくて6x6なのが疑問だが。
正方形にしたいもので・・・
>素直にもっとピン数の多いPIC使えば?
取りあえず手元にあって使い慣れているのを使おうと思いまして・・・
なにぶん田舎なもので部品の入手も大変なんです。
>>317 >なにぶん田舎なもので部品の入手も大変なんです。
ならば、なおさらだよ。
ロジックIC1個買うのに送料千円も払えない。
LEDがどんな仕様なのか知らないけど、単品のLED組み合わせるのなら
ちらつくかもしれんが74HC138を2個で8x32でやってみたら?
田舎で部品の入手も大変なら、これからのことも 考えて、PLCCのCPLDを何個かとソケットをまとめ 買いしておくと便利だと思うよ。 (ダウンロードケーブル用の部品もいっしょにね) CPLDの中身ならいくらでも変更きくから、いろいろな 回路を手軽に実験できるし。
320 :
313 :04/01/18 14:54 ID:zaYdLxgv
使用するLEDは16×16の2色が5枚というF84Aでは無謀なものです。(1枚から始める予定) 16F877なんてどうでしょう? ポート数が増えただけで命令はF84Aと同じように使えるんでしょうか?
>>319 は、とりあえず何でもいいからCPLD付けとけっていう、殿汁のニョガン。
PIC1個を買うのに、ひぃひぃ言ってるような
>>313 では、CPLDやソケットを
まとめ買いしておくなんて無理ぽ。
但し、他人から受け取った予約金でやるなら3年寝かせておくことも可。
323 :
313 :04/01/18 15:45 ID:zaYdLxgv
CPLD・・・ 便利な物があるもんですね。 難しそうですがそのうちやってみます。 田舎の救世主になるヨカン
>>320 >>320 普通のマトリクス点灯は知っているという前提で書きます。
6x6が限界と言っていると言うことは、自由になるポートが12コあると言うことでしょうか?
外部にロジックICを追加するともっと増やせます。
トランジスタをスイッチする側は、(LEDの+側に2SAを使うなら)
1つだけLoになればよいわけですから、nバンクを制御するには
以下のような方法があります。
*普通にマイコンのポートを使う。バンク数だけポートがいる
*3to8/4to16デコーダーICを使う。4to16デコーダーに4bitで例えば7を
入力すればIC7番目のポートだけがLoになる。ポート4本で16バンクOK
*シリアルパラレル変換ICを使う。バンク切り替えなら0→1→2→3→・・・→n
となればいいので、ICに0を入力してその後1を入れると、1をいれるたびに
0(Lo)が出力されるポートが移動していく。164なら2線で制御可
164を1個で8バンク。直列につなげることで(8×個数)バンクOK
ただしあまり多くなると明るく点灯できなかったりちらついたりする
ので限度がある
一方、バンク内の個々のLEDを制御するには、
*普通にマイコンのポートを使う。1バンク内LED数だけポートがいる
*シリアルパラレル変換ICを使う。直列につなげることで(8×個数)個OK
こっちは他のバンクにデータが移るのを防ぐためラッチ付きがいいかな?
使用ポート数は3本
*ラッチを使う。373など。マイコンポート8本を8本のLEDと373の入力につなげ、
373の出力を8本のLEDと次の373の入力とつなげ・・とやると、
(373の数+1)×8本制御できる。使用ポート数は9本いる
16x16x2色なら、
16bitのシフトレジスタ(595を2個)×2色ぶん作り、
(ポート3×2だが、ラッチとクロックを共用して4本)
16bankを4to16デコーダーでつくり(ポート3本)
これでポート7本。
素子数をふやすならシフトレジスタをさらに直列につなげて
伸ばしていけば同じポート数で処理時間の許す限りOK
325 :
313 :04/01/18 16:07 ID:zaYdLxgv
>>318 >ちらつくかもしれんが74HC138を2個で8x32でやってみたら?
それだと8×16になりませんか?
16F877+74HC154+NOTでできそうです。ありがとうおざいました。
>>325 74138を2個、74238を2個で、これを+側−側にいれて、
LEDを1個ずつ制御するなんて手もあったりする(w
>>322 PIC1個買うのに苦労する環境だと、手元に74シリーズを
ズラッと揃えてでもいない限り、ちょっとした実験にすら
不自由するんだって。
若松で、44ピンのPLCCソケットが一個70円。
CPLDは若松はちと高いけど、それでもXC9536なら600円。
XC9572なら800円。これでI/Oが34ピンとれるからな。
74HC00、02、04、08、14、32、245、あたりを数個ずつ持っとけば何とかならない? 手元に常時在庫置いてあるロジックってこれくらいなんだけど。 あとは必要に応じて買ってくる感じで。
>>328 漏れもそんな感じなんだけど、HC04はあるけどHCU04とかVHC04が必要になって困ったりする。
以前、LSシリーズを3Vで動かしてみたりもしたな。
後でHCに換えたけど。
I/O増やしたいなら、ラッチやデコーダ系がないときついんじゃね? 今回程度だって、すでに138やら154なんかが出てきてるっしょ? 10種類5個づつでも50個だしね。 そうやって74シリーズを揃えていくのも楽しいんだけども、 通販で注文してから一週間・・なんていう身だとその間に どうも気がそがれやすいんよね。 CPLDなりFPGAを一個持っておけばその場ですぐ実験 にとりかかれるんで、単に何にでも化けるロジックICだという 程度の感覚で持っておいていいと思う。
16x16のマトリックスなら、74HC595x4という手もある。 ポート3bitあればOKなので、12Fでもいけるかも。。。
333 :
322 :04/01/18 18:53 ID:UvldYxIu
>>327 800円のCPLD使う位なら、H8/Tinyや40PinのPICまたはATMELを使った方が
いいと思われ。
>>328 普通は、業者から大人(レール)買いでしょ。DIP品なら、14Pまたは16Pだと、
レールあたり25個、20ピンだとレールあたり25個だったか?SOPだと、レールあたり
50個とか。いくら近くても秋葉原に何度も出向いて買うより、長い目で
見れば、時間と費用の節約になる。業者から買うとTTLやCMOSもだいたい
半額くらいが相場だから。
贅沢言えばきりがないが、74, 86, 138, 138, 164, 166, 240(or 540),
244(or 541), 373(or 573), 374(or 574)あたりもホスイ。
74シリーズをそれだけ何個もそろえるなら、 CPLDのほうが安上がりじゃん。
74HC04 1個の代わりのCPLDを使えと?
7404代わりにGAL使ったりもしたな。どうせ結局実験なら PICともども使いまわすんじゃねぇの?
なんだかけんか腰みたいになってしまったけども、 別に74シリーズを否定はしないよ。 漏れの手元でも 00 02 04 05 06 07 08 10 11 12 14 20 27 28 30 32 38 86 123 125 126 138 139 169 161 162 163 174 240 241 244 245 273 373 374 540 541 程度ならまだ転がってる ただ、74シリーズで何でも対応できるようにしようとすると 結構いろいろな種類がほしくなってくるし、ちょっと気の利いた ことをやろうとすると結構複雑な回路になりやすくてね。 74XXシリーズにはあるのにXXシリーズにはない!なんて いうものもあるし。 だったらCPLDをいくつか「汎用ロジックIC」として持って おくのがいいんじゃね?ってこと。そんなに馬鹿高いもので もないし。毛嫌いする理由もないんでは?
339 :
322 :04/01/18 20:36 ID:UvldYxIu
>>334 >>336 このスレで話題に出なってるような、机上の設計検証で済むような回路をわざ
わざバラック組みして実験するってムダなことやったことないな。あと、万が一
部品が壊れた時に交換が楽なので試作品のDIPのTTLも丸ピンソケットを使って実装
するけど、あとで部品を外して使い廻しとかセコイこともしないなぁ。
>>337 全部ハードでやろうとするから部品点数が増える。面倒なことはソフト任せに
して、必要最低限の外部ロジックを使えば回路は最小規模にできる。
CPLDじゃトランジスタアレイのような電流駆動能力はないし、かといって満足な性能
のCPUを組み込むこともできんしな。
何かって言うとCPLDって言ってる香具師は、まずCPLD使うことありきって気が
するな。インターネットでCPLD使った工作を公開してるヤシで、有効にCPLDを使ってる
のを見た記憶がない。
CPLD房にとっては、所有してることで自分が何でも作れそうなお札にはなる
かもしれんが、CPLDは汎用ロジックの代わりにはなりえんな。
>>322 ここで殿の話を聞くことになるとはな・・・
俺も、せっかくならソフトでやった方がいいと思うですよはい
CPLDは速度の必要な所で使えばええんでは
まぁ、強烈なCPLDアレルギーの持ち主だということは 良くわかりました(笑
ザイリンクスのXC95電気食いすぎ。(アルテラのは使ったこと無いからわからん) 俺は、PICで済むならPIC使うようにしてる。
漏れも昔は74ファミリの代わりにPLDやCPLDなんて・・と 思っていた。でも、電気食おうがどうしようがとにかく手元に あって、しかも74ファミリで手元にないようなものでもその場で あつらえて放り込める、5V/3.3V混在の時のレベル変換にも なるっていうことで利用する場面が増えたな。 PIC命!な世界では何でもとにかくPIC一発!の方がウケ がいいみたいだけども、ハード側でやらせると性能稼ぎやす かったり、簡単なハードウェアのサポートがあるだけでソフト がずいぶん簡単になったりするしね。
AVR+αでテレビゲーム作ろうとしているんだけど、64μ秒で割り込ませて1ラインの処理をして 垂直期間中にサウンドや全体の処理をすればいいのかな。 90S1200だと高難度な気がしてきた。
>>344 PICでテレビゲームのテトリスとかできるんだから(精度は別として)AVRなら、もっと条件が
良くなると思われ。修行だな(w
>>344 同じような物を2313でいま作っていますけど、VRAM、スタック以外の変数を
全て32個のレジスタでやりくりするのは可能だったので、キャラクタ数種表示
ルーチン+簡単なゲームだけならどうにか1200でも詰め込めると思う。
でも無理しないで2313使った方がいいと思うよ。10MHzでも3-5MHz程度の
ドット周波数は出せるし。
サウンドは外部付加装置がないなら、走査線毎に処理する方がいいと思う。
音を出す→割り込みの外からRegAに周期を入れる
音を消す→割り込みの外からRegAをクリア
割り込み内にて走査線処理毎に
RegA==0なら何もしない
RegA!=0ならdec regBして、RegB==0で音声ポートを反転し、mov RegB,RegAする
>>346 1200だとRAM無しなんでR0-15をVRAMにして、EEPROMに8x8で8キャラ分のDATAの予定。
他に手持ちは4414しかないけど、これにRAMとかROM付けたら反則だよねw
CPLDもいいんですが、趣味工作の初心者の場合ケーブル代がネック。
キット品を買うとしたら6000円、完成品なら1万円でしょ。
74シリーズの主だったところを10個ずつ揃えられたりする値段。
74シリーズならブレッドボードも使える。
数個の汎用ロジックICで試行錯誤する段階ではロジックICで、
複雑化してきたり、膨大な数の石がいる、配線がスパゲティ、
適切な石がない、サイズをもっと小さくしたいという話になってきたら
CPLDの存在が大きくなってくる、ということでいいのではないでしょうか。
http://elm-chan.org/works/sdisp/report.html こんなのに手を出すなら74系がいいなんて誰も言いませんし
趣味じゃなく仕事ならいきなりCPLDのようなものからというのも
必要だと思いますが。
微妙だなぁ、TTLが(今やHCシリーズが主流だと思うけど)五箇を越えたら CPLDの方が良いかなと思えるようになってきた。
ま、誰しも慣れたもののほうが使いやすいわけで・・・・
Xilinxのダウンロードケーブルって、AVRにも書き込めるのか。 原理試作なんかでちょこっと使うにはいいけど XC95108だけで1Wも食う ようでは製品にならないぽ。CoolRunnerなんか良さそうだけど、、、
>>352 PICにも書けるので1本3役だな。作っておいて損はないと思う。
>>353 というか本来単なるJTAGケーブルなんでしょ?あれ
74HCシリーズの一覧が載ってるところはありませんか? ググル先生は教えてくれなくて・・・
>>344 ,346
面白そうなネタだなぁ。
回路はPICのを流用するとして、プログラムは
レジスタをシフト→portに出力
を1走査線分書き並べるだけでいいのかな?
何か注意すべきところがあったら教えて。
>>354 うん。でも、PICは双方向I/OなのでJTAGケーブルなら何でもいいとは
限らないかもしれない。
PICで、1つのピンのみをつかいシリアルで数値を送りたいときってどうやればいいですか? 仮に、ABCD EFGH という0-7bitのデータが fアドレス内にあったとします。 A-Hは当然0か1かの値です。 これを PortA0で順番に送りたいとします。 BCF、BSFだと値がわかってるときしか駄目ですよね? 仮に1011 0010 だったならどうすればいいですか?
>>358 シリアル通信すればいいと思う。
スタートビットつけて順番にビット送信してストップビット送出。
時間は適当に計る
>>359 ええと、
シリアル通信がしたいのではなくて、
データを1bitずつ垂れ流し(直列=シリアルっていみで使いました)にしたいんです。
スタートビットとかつけちゃいけないので。
>>356 表示イメージを吐き出し始めるタイミング(ブランキングタイム?)がやっかいだ。。
表示走査線はすべて同じタイミングで表示が開始するようにしなければずれたり
ぶるぶる震えたりします。条件分岐がある場合注意。
sync−表示開始間については、waitルーチンでタイミングを作るのが一番簡単かな。
TCNT1をみて適当な値になるまでループするとしてみたら、表示がガクガクブルブル。
割り込みはメイン側で実行中の命令次第でタイミングが1-2サイクルずれるので、
判定ループが3cycleだと、ループサイクルとTCNT値次第でSync-表示間隔が変動する。
割り込みの先頭、syncの直前で1サイクル単位までタイミングをそろえたwaitを掛けると
変動しなくなるので便利かも。ijmp使えば可能。
今月中に作りたかったんだけど、もう時間切れだなあ・・・今月末入院予定(;_;)
よーしMPLABの新バージョンを入れてデバックしちゃうぞ、ターゲットは16F876 前のプロジェクトファイルが使えないので、新しく作って開始 何故か途中でリセット、ひたすら悩む 〜たっぷり2時間は経過〜 コンフィグレーションビットでウォッチドックダイマーをOFFにするのを忘れていた 自分の馬鹿さ加減にめまいがする_| ̄|○
364 :
355 :04/01/19 19:20 ID:Dxj1pUnw
>>361 まさにこんなのです。ありがとうございました。
>>361 あ、たぶんわかりました。ありがとうございます。
BTFSS f,7 ;もし7bit目が1ならば、次をスキップ
BCF Port0 ;Port0に0を出力
BTFSC f,7 ;もし7bit目が0ならば、次をスキップ
BSF Port0 ;Port0に1を出力
もし、7bit目が1ならば
BSF Port0 のみが成立
もし、7bit目が0ならば
BCF Port0 のみが成立
>>365 えーと、ビット幅がbit=1とbit=0で異なってくる思いますが、それでOKですか?
Bit=1の場合、4サイクル目でON。
bit=0の場合、2サイクル目でON
ループにせずに速度稼ごうとこれを8つ並べたりする場合には多少影響するかも。
1010...の場合1の幅が2サイクル、0の幅が6サイクルになります。
ループにするなら6サイクル:10サイクルかな
少し調整するなら BTFSC f,7 GOTO XX NOP BCF PortA,0 GOTO YY XX: BSF PortA,0 GOTO YY YY: こんな感じ?
>>362 メインルーチンをsleepにすれば割り込みのタイミングが保証されるから
表示ルーチンは簡単そうだけど、
V-blank中も同期信号は出さなくちゃいけないから、ゲームの処理を入れるのが大変だね。
やっぱり一筋縄ではいかなそうだなぁ。
rlf F,W rlf F,W xorwf PortA,W andlw 1 btfss STATUS,Z xorwf PortA,F 力技ならこうだな
タイマーを2個使うってのはどうかな。 同期信号の少し前でスリープにするルーチンを呼び出しておくの。 その上で表示ルーチンを呼び出す。
>>371 割り込みでsleepにするとなると、割り込みルーチン内で停止して
多重割り込みをかけさせると言うことでしょうか?
でもTMR0とTMR1の協調は難しそうなので、16bitタイマを使う2つの割り込みを使うかなあ。
TCCR1B.CTC=1,OCR1A=水平周期で動かしておき、
オーバーフロー割り込みだけを有効にして、
OVF割り込み(TCNT1=0)でTCCR1B.CTC=0,OCR1A=(水平同期タイミング-α)にして
seiで多重割り込み許可,コンペア割り込み許可にしてSLEEP
コンペア割り込みで本処理を行う。最後にTCCR1B.CTC=1、OCR1A=水平周期、
コンペア割り込みは禁止にして振り出しに戻る・・・?
373 :
362 :04/01/20 08:59 ID:gRF5QgN9
せっかく作ったからここに晒してみる .def B_SREG=r2 .def B_ZL=r3 .def B_ZL=r4 COMPA: in B_SREG,SREG ; mov B_ZL,ZL ; pushでもいい mov B_ZH,ZH in ZL,TCNT1L ;; 最速4+2+4=10clockでここにくる clr ZH subi ZL,low(-(COMPA_ADJ-10)) ;COMPA_ADJより前やCOMPA_SYNCLOより後ろに sbci ZH,high(-(COMPA_ADJ-10)) ;ジャンプしないように調整する ijmp ;; jump tp (COMPA_ADJ-10+TCNT1L) COMPA_ADJ: nop ; nop ; nop ; COMPA_SYNCLO: cbi PSYNC,PIN_SYNC ; SYNC-Lo.TCNTに対するタイミングは一定になる
_| ̄|○ IOポートに74HC14かまして反転させていたことを 忘れていた。
>>373 ソースを見てやっと解ったよ。thx
このやり方だとタイマ0の方でも使えるのがいいね。
今作ってる電子オルゴールに使わせてもらいます。
タイマ1はPWM出力にしているので。
>>373 .def B_ZL=r4 <= これ、B_ZHな・・・
T_LP1 DECFSZ TimeCount,F
とかありますが、この F ってなんですか?
http://www.hobby-elec.org/pic3_5.htm#decfsz ここで命令を見ると、
T_LP1 DECFSZ TimeCount,0
とか
T_LP1 DECFSZ TimeCount,1
になりそうな気がするんですが・・
Includeするファイルの中ものぞきましたが
F EQU ○○
って表記は無かったです。
>>377 わかりやすいように
COMFf, d
のdの部分の数値についてW=0、F=1が既に割り当てられている。
アセンブラがもってる置き換えなのでEQU定義がないのだと思う。
アセンブラによってはないかもしれない。
とてもよくわかりました。 ありがとうございました。
連続質問で申し訳ないんですが 例えばPICで PortA0 IN PortA1 OUT PortA2 IN PortA3 OUT PortA4 IN PortA5 OUT PortA6 IN PortA7 OUT 等としてつかっても良いのでしょうか? もしよいならば、仮に MOVLW FFh MOVWF PortA とした場合は、どうなりますか? 0 1 2 3 4 5 6 7 Port 不変 1 不変 1 不変 1 不変 1 値 となりますか?それとも 0 1 2 3 4 5 6 7 Port 1 1 1 1 1 1 1 1 値 こうなっちゃいますか? #ICE買って自分で実験しようかと思ったけど、価格見たらちょっと高いです。
>>380 データシート嫁って!
ポートの内部回路の図があるから。
382 :
380 :04/01/21 15:02 ID:aWSN/UOo
すいません。聞きたかったのは ・同ポート内で、ピンごとに入出力の機能を割り当ててよいのか? ・割り当ててよい時には、出力したい値によって入力が影響を受けるかどうか です。 同様に、アナログ入力として特定ピンを使用したときに、同ポートのピンは 影響を受けるのかどうかも教えていただけるとありがたいです。 TRISA、B、とかAD変換とかのポート/ピンモード制御レジスタの値が変わらなければ 入出力は影響を受けないんでしょうか?
>>381 読んだんですが理解できなかったんです・・すいません。
>382 >・同ポート内で、ピンごとに入出力の機能を割り当ててよいのか? OKです。 >・割り当ててよい時には、出力したい値によって入力が影響を受けるかどうか 入力にしたビットポートは、入力される信号が読めます。 出力にしたビットポートは、出力したビットデータでは無く出力ピンの状況が読まれます。 (極端にすれば、あるポートのビットをGNDに接続しておいて、出力モードに指定し、”1”を出力しても、入力値は”0”) >AD変換とかのモード制御レジスタ 単にデジタル入出力か、アナログ入力かの切替で、 出力ポートのセットされたビット値は、他の入力されるビット値には影響が無いです。 ただしデフォルトの設定をいじって色々機能を使うと(PWMとか)、入出力設定(TRIS Aとか)は無視されるし A/Dポートは、最初はアナログ入力モードなので、デジタル入出力のつもりでアクセスしてもデータ値は滅茶苦茶。
385 :
382 :04/01/21 19:02 ID:aWSN/UOo
>>384 回答ありがとうございます。
わからなかったことがずばり解説してあって(>>極端に〜略)すっきりしました。
AD変換のほうも助かりました。
386 :
名無しさん@お腹いっぱい。 :04/01/21 20:39 ID:74+1eoq+
今まで何個もPICを壊してしまって原因がわからなかったのですが、電源装置の電圧 を見てみると5.7Vでした。これが原因でしょうか? 電源を入れるとポートに接続したLEDが一瞬つきます。 でそのPICはなぜかCPがかかります。
>>386 >LEDが一瞬つきます
電流制限抵抗?
388 :
386 :04/01/21 21:00 ID:74+1eoq+
>386 原因は他にあり。 電池4本6Vなどでも問題なし
391 :
386 :04/01/21 21:09 ID:74+1eoq+
>386 CPって何でしょう? 回路図見ますた、 パスコン書いてないけど ICの電源ピン一番近くに104積層セラミック と 基板の電源入力部分に、100uFの電解コン入れてますか。 リセット(MCLR)端子は、最低でもCRで組んでちゃんとパワーONリセットしましょう。 ハード設定のブラウンアウトリセット(BOR)の設定は、ちゃんとチェックして使ってますか。 プログラム上で、未使用のピンは出力に設定してますか。 安定化電源も、10cmも配線引っぱり出せば先端ではノイズばりばり無安定化電源(w
393 :
名無しさん@お腹いっぱい。 :04/01/22 21:40 ID:ngGcEjYL
>>392 CP=コードプロテクト
というか、PIC刺さなくてもこの警告でるよん。
要するにPICが死んでるってこと。
>>392 漏れがAVRを何個も氏なせたときには容量の大きなバスコンが原因だった。
本当はリセット回路をケチったせいなんだが、電源切ってもパスコンの電気で動いていて
ヒューズビットにメチャメチャな値が書き込まれて消去出来なくなる現象。
ライタには立ち上がりと立下りの早い電源を用意するか、スイッチで入り切りすべきだな。
>>394 動作中にクリスタルを触っても似た現象に見舞われますのでご注意。(w
>>394 つーことは、死んだと思ったAVRもヒューズビット書き込みで復活する可能性もある?
>>396 氏んだAVRは捨てないで持ってるけど、パラレルライター無いから検証してない。
ライター作るにしろ買うにしろ、新しくAVR買ってきたほうが安いからな。
399 :
386 :04/01/22 23:06 ID:j+j60MX0
>>398 ぴったりの事例です。でも一度書き込めるのでちょと違うと思います。
電源ノイズで動かなかったのを電源スイッチ連打したりして壊してしまったんだと思います。
コンデンサー追加して試してみますね。
>>397 レスサンクス。確かに買ってきた方が安いからね。秋月280円だし
でもtiny26Lみたいなのも使ってみたいのでパラレルライタ作ろうかな。
401 :
名無しさん@お腹いっぱい。 :04/01/23 16:25 ID:9bSVcFO3
PICが死ぬの悲しいよね〜
昔、紫外線消去型が死ぬと 財布が叫んでた
特にROMライタに誤接したときは、・・・・誰にも文句が言えない!
>>399 1、ちゃんと発振してるかなぁ? (オシロで見てょ!)
2、電池で動かしてみたら? (電源ノイズが無視できる)
3、HEXファイルで書き込んでいますか? (Binで書き込むと 変な領域に悪さをしたり)
402 :
386 :04/01/23 23:08 ID:6lVQW4Dc
別のスイッチング電源に替えてコンデンサ追加したら動作しました。 前のPICはやっぱり壊れてましたが・・・ MCLRのパワーONリセットってあまり見かけませんけど電源ON70msタイマ を使っていても必要でしょうか?
>>402 おめでと〜。
MCLRのパワーONリセット使うとライターによってはPICのプログラムが
読み出せないとかの不具合出るから気をつけてね。
>402 オンボード書き込み(私はしないので)するなら、パワーONリセットは注意が必要かも 知れません。データブック通りのCR時定数で、きっちりMCLRすると電源立ちあがり不良は 今まで皆無です。 スイッチング電源使用時は、VCCをLCフィルタでカップリングするとA/D変換が非常に 安定します。
>>400 >でもtiny26Lみたいなのも使ってみたいのでパラレルライタ作ろうかな。
tiny26のクロックはパラレルじゃなくても切り替えられますよ。
パラレルライタ無くてもtiny26Lを使う分には無問題。
Atmelが公開してる自作ライタと改造ファームウェアで使ってます
>>400 リセットピンをI/Oとして使わないのなら、ISPで全部できますよ。
でも、秋月のAVRライタだけは絶対に買ってはだめです。何もできないので…(w
407 :
406 :04/01/24 13:14 ID:poDiSA1l
訂正。やっぱりパラレルライタが無いと、はまったとき困るかも。 ・クロックの設定を間違えた(w ・クロックをどれに設定したか忘れた(忘れるな! ・リセットをI/Oに設定しちゃった(アホか!
408 :
名無しさん@お腹いっぱい。 :04/01/24 16:17 ID:vhyBnBxw
秋月のPICプログラマーキットに付いていたasmファイルはMPLABでそのまま アセンブル出来ないのでしょうか? なんかエラーがいっぱいでます。
>>408 秋月のキットのアセンブラは、同梱されていた、パララッチだっけか。あれじゃなきゃだめ。
>407 それ、良くやるかも(汗。。。パラレルライタ作っておこう。
PAで書いてる人もけっこういるよね。 PAの拡張命令はマクロで書けばけっこう互換できるんじゃないかなぁ。
・Finalistの応募作品はPICkitで作成していただきますので、 ご購入していただくことになります。サンプル価格36ドルです。
>40040b.pdf 民生装置というか、ブリスターパックのノウハウと逝った方がいいかも。 まともな民生装置ではあのような回路は使われないと思う。 あ、でもDiscManのリモコンが抵抗分割だったような。。。
>>418 ブリスターパックっておもちゃって意味か?
抵抗+A/Dはワイヤードリモコンとかだと配線が減って良いかもしれん。
漏れも何かに応用してみよう。
420 :
774ワット発電中さん :04/01/27 10:08 ID:xttlqdcT
>>418 民生品はこの方法結構使っているよ。
ビデオとか、コンポとか。
メーカ名や採用されている機種は言えないけどね。
産業系は、コストよりも信頼性が重視されるから40040bのようなことはしないが(W
こんど出るAVR、24MIPSか。
>>421 とりあえず8535クラスからのようですね。
423 :
774ワット発電中さん :04/01/30 08:28 ID:irYOIzzn
H8 の相補PWMで3相モータ動かしているかたいます? デッドタイム分を超える出力にしようとすると論理反転してしまいます。 バッファ動作があるのに結局、割り込みで転送しないとダメなの?
卒論ウザイ
425 :
774ワット発電中さん :04/01/30 13:02 ID:JtDpio+v
>>423 相補PWMってよく分からないけど、
H8-モータコントローラもしくはモータドライバ-3相モータ
てな感じで繋いでるの?
H8とモータコントローラもしくはモータドライバ間はシリアル?D/Aconv?
シリアルだと、bitごとの送信間隔はCLOCKの8bit?(非同期?)、16bit?(同期?)開けないと不正bitがでるよ。
D/Aなら複号化のデッドタイムはかなりダイジョブだと思うんだけど。って、これで駄目ならスマソ・・・。
>>425 3048なんかのITUじゃないかと。
漏れはそのモードで動かしたことがないのでよくわからんが、
妙な制限があったような気がする。
データシートとアプリケーションノートを読めばなにか書いてあると思うが。
427 :
774ワット発電中さん :04/01/30 17:47 ID:L29TiwCJ
俺も,普通のPWMしか出したこと無いなぁ・・・
プログラマについてお聞きしたいです。いずれはPICに挑戦してみようと思っ
ているのですが、その前に27C1024互換ROMに書き込む用が出てきたので、どう
せならユニバーサルプログラマで手ごろなのがあれば買おうと思って調べてみ
ました。
すると、GRIDというところのChipMaxというプログラマがよさそうな感じだっ
たのですが、これをお使いの方いらっしゃいます? どんな感じでしょう。
http://www.grid.co.jp/prod/chipmax.htm 18Cシリーズへの対応が無いのが残念ですが、PICのプログラマは選択肢がいろ
いろあるので、必要があれば後で専用品を作るなり買うなりするのでいいと思っ
ています。
429 :
774ワット発電中さん :04/01/30 20:23 ID:JtDpio+v
>>428 プログラマっていうのか・・・。
リンク先のPrtScreenはエディタだと思うけど、
俺はnotePad.txtで書いて拡張子を.asmに変換して、MICROCHIPのMPLABのコンパイラMPASMにファイル指定すれば指定すればアセンブルされる。
それをMPLABのライタドライバで焼きこんでるけど。
MICROCHIP社のはPICメーカだから変な制限とかなくて安心。
MICROCHIP社から出てるのはライタの形してるインサーキットエミュレータ(デバッグできる)とか、
MPLABによってはスティミュラスな(画面上で一行ごとに命令実行シミュレート)シミュレータがあるけど、
チップ自体安いし、DIPタイプなら頻繁にICソケットから抜き差しできてカキコ繰り返せるし、あんま必要性を感じないけど。
↑notePadていうかメモ帳.txtね。
431 :
774ワット発電中さん :04/01/31 00:27 ID:PEgfqTkd
>>428 GRIDのTOPMAXと、コントロールソフトが同じなのですが ChipMaxは18シリーズの
現時点では対応デバイス表を見る限り書込みは出来ないようですね
しかし コントロールソフトは、随時更新されていて(無料アップデート)最新の
ディバイスにも対応してくれます。GRIDに直接確認取った方が良いと思います。
自分はTopMaxですが、大変使い勝手の良いプログラマ(コントロールソフト)です。
432 :
423 :04/01/31 00:29 ID:HL91d72F
>425,426 レスさんくす まさにモータドライバ作ってるんですが、SHに比べて制約多いみたいです。
433 :
774ワット発電中さん :04/01/31 01:12 ID:0hDxqoDy
PICで使ってないIOピンはどう処理するのがベストですか? 設定を入力にするのか、出力にするのかとか GNDに繋いだ方が良いのかとか… 16F84Aなのに出力1 入力1しか使ってないぽ…
>>433 開発元の日本語サイトにも詳しく書いてるよ。
>>431 なるほど、あまり悪評は聞かないのでよいかなと思っていましたが、
なかなかよさそうなので、ChipMaxを買ってみようと思います。
# TopMaxはとても手が出ない。
アップデートに期待ができるのもうれしいですね。
値段も安い方ですし、アダプタも安いです。
437 :
774ワット発電中さん :04/01/31 13:04 ID:0hDxqoDy
出力設定にして何も接続せずLOW出力が良さそうですね。 ありがとうございまいた。
>>437 抵抗噛ませてPULLUPの方がよくね?
PULLDOWNだと強いノイズでPIN値がふらつくって書いてあるし。
万が一、入力側にセットされてFET入力解放で静電気アボーンにならないように・・・。
普通FET入出力両用Pinは抵抗噛ませてPULLUP、PULLDOWNするでしょ。
電源ONやリセット直後はたいていのデバイスで 入出力ピンは入力、ないしハイインピーダンス状態に なるしで、初期化が終わるまでフラフラしてしまうんで ラッチアップおこしそうでちょっと怖いから、抵抗で プルアップ/ダウンしておくのは手堅いだろうね。 ただ、数が多くなってくるとなんだか周囲が抵抗だらけに なってしまうから、アマチュア的には出力ピン設定にして おくっていうだけでもいいと思う。 見栄え良くするなら、1608サイズのチップ抵抗を使うと ちょうど蛇の目のピッチに乗せられるからいいかもしれない。
440 :
774ワット発電中さん :04/01/31 14:16 ID:a205edYO
開放でも、出力をLに設定する事でGNDに落ちていますので、 入力のFETにもGNDがつながると思いますが、どう?
>入力のFETにもGNDがつながる
おいおい。MOSにしろJにしろFETのGとSDは・・・。Z∞
>>439 の謂うように電源入のときのふらつきでのラッチアップの可能性があるから入出力問わず、PINの電圧はホールドしといた方が良いんじゃ・・・。
趣味の電子工作ならLow出力が一番楽だろうね。 製品だったら、設計者の考え方によってケースバイケースってとこだろうか。
趣味だからこそ、変な心配しないで(プログラムミス位で壊れないように)作った方が… と思うのは漏れだけか?製品ならコスト考えないといかんけど。 #なんせ、地元では16F84Aが\700だもんな。秋月で16F648Aと12F675をそこそこ #買ってて、手持ちがあるから良いけど。6エリアで、パーツがマトモに買えるトコ #ないんかいな〜
すみません教えて下さいです PIC16F819を使おうと思って秋月ライター(ver4)を入手したんですが、 819が選択肢に無い・マニュアルの対応リストにも無いというコトは、 やっぱり書きこめないって事なのでしょうか…? 対応してないのなら新たに別のライター購入も考えているのですが、 819に書けるお勧めのライターありましたら、教えて頂けないでしょうか?
445 :
444 :04/01/31 21:27 ID:/5d8BMeK
ごめんなさい秋月HPに詳細載ってました 吊ってきます
>>444 秋月逝ってVerUP。PIC16F819でライトした事ないけど、ちゃんと対応リストに
入ってるし、ライタにも選択肢でる。
447 :
446 :04/01/31 21:32 ID:vM1irms4
自己完結しちゃったみたいだけど、一応… ライタの改造せにゃいかんっすよ〜
448 :
774ワット発電中さん :04/01/31 21:41 ID:PEgfqTkd
>>439 大量のプルは、集合抵抗を利用すると吉でつ 価格も安いし スッキリ出来るでつ
449 :
774ワット発電中さん :04/01/31 22:35 ID:PEgfqTkd
鉛筆でいいんでない?
>>449 それは型番からすると
RMLS8-473Jと思うからロームだね。
この型番はロームは廃品種だな。いま集合抵抗作っているところは、
ベックマン、進工業とかかな。
IC化が進んで現われた集合抵抗も、今やチップ部品時代は、あまり用途もないのかな。 過渡期のパーツだったんだね。 過渡期といえば一時はやったワイヤーラップもあまり見なくなったな。
集合抵抗も表面実装タイプがあって、そっちならいっぱい使ってまつ。 じぶんとこの場合、直列終端抵抗とプルアップ/プルダウンに大量に使用中。
>>452 ユニバーサル基板使うなら、片方コモンの集合抵抗はそれなりに有用だと思う。
チップ抵抗より省スペースになりそうだし。
>>453 表面実装の集合抵抗もあるんですか。調べてみる。
結局表面実装タイプがあたりまえになったおかげで集合抵抗 使っても期待するほど効果が無いことって結構あるんよね。 個別抵抗で置きやすい場所に置いた方がパターンも通しやすかったり するし、部品の共通化という点でも個別抵抗にしておいたほうが 便利だったりで。 空きピン処理ならいいかぁって感じで47Kの表面実装の集合抵抗を 1リール(5000個)個人で買って持ってるけど、出番が無いなぁ。
456 :
774ワット発電中さん :04/02/01 16:52 ID:EVYOSsfx
チビ抵抗を付けるとき ピンセットとこての格闘で 最悪 こて先に張付いて”あれ? 何処に行った?”探す事があるのは自分だけかな? 表面実装系部品は基盤に穴を空けなくて良いから 自作基盤(テスト用、ジグ用)ではついつい使ってしまう〜 でも・・・たまに 裏表を間違えてエッチング・・・ むかつく〜
>>454 KOAにラインナップがあるよ。>SMDタイプの抵抗アレイ
ただ、工作レベルで数個とか入手可能かどうかは不明ですが。
チップ工作をするときの治具をつくろうとおもってるのだが、これ結構需要ありそうだな。 要するに超小型の万力でチップを固定するというアイデアなんだけど。 L型金具 飾りネジで締め付ける +----II-- | ↓ | □ 部品 --+ ======== ←基板 ーーーーーーーーーーー かまぼこ板 ーーーーーーーーーーー
毎回締め付けるのが面倒臭い・・・・っていうか、 チップ部品って軽いから、ちょっとした重石になりさえ すればいいと思う。飾りネジじゃなくて、ただのちょっと した棒(精密ドライバー程度で可)がスタンドに付いてる だけ・・みたいなーー
表面実装部品の半田付けはICの場合には、 1.パターンにフラックスを塗る 2.部品を載せる 3.位置合わせする 4.半田こての先に半田をのせる 5.左手の人差し指で部品を押さえたまま、角のピンを右手で仮半田付け 6.基板を180度まわす 7.左手の人差し指で部品を押さえたまま、反対側の角のピンを仮半田付け 8.フラックスをピンに塗る 9.残りのピンを半田付け 10.最初の仮付けしたピンを再度半田付けしなおし ICが小さい場合にはピンセットで押さえてる。 0.5ミリピッチのQFP208でもこの方法でいける。 CRなんかの場合は、 1.パターンにフラックスを塗る 2.部品を載せる 3.半田こての先に半田をのせる 4.ピンセットで位置合わせする 5.片方の端子を仮半田付け 6.フラックスを塗る 7.仮半田付けしたのが融けないように息を吹きかけながら、反対側を半田付け 8.半田付けしたのが融けないように息を吹きかけながら、仮半田した部分を半田付けしなおし とやってる。 フラックスだらけになるので、ヤニクリーンが必須だけど。
半田盛りすぎでカコワルクなることはないですか。 リフローのようにカコヨク仕上げたい。
チップ部品は意識して半田を使わないようにしないとモッコリになっちゃねぇ。 フラックスとか使えば良いのだろうけど汚くなっちゃうし。
465 :
462 :04/02/01 21:20 ID:5gVQLcH1
>>463 半田盛りすぎのときは、
CRのときはさらに半田を盛って半田山盛りにしてコテにすくいとる。
ICの場合は素直に半田吸い取り線で吸い取ってる。
きれいにならなかったら、フラックス塗ってから半田ごてで融かしてごまかす。
>>462 .465
こて先に少量盛るくらいなら、はじめからICパターンの1ピンだけに
少量盛っておいて、そこを溶かしているところに”ズルッ”とICを滑らせて
位置合わせたほうが高速だと思いますよ。馴れが必要ですが。
チップのCRも同様で、全部、パターンの片側だけ盛っておいて、
溶かしてズルッ、溶かしてズルッと持っていくと作業が早くなります。
これだと、位置決め後にコテ放してフッと息を吹けば、もうズレません。
あと、綺麗に付けたいのなら、最初にパターン全部に半田をのせて、
吸い取り”線”で丹念に綺麗にしておいてから貼るとイイです。(半田メッキ状態にする)
(吸い取り機ではダメ。どうしても塊が残る上、熱過ぎてパターン剥がす場合有り)
リフローのように綺麗にやるには、フラックスとフラックス洗浄スプレーは
必須かと思いますが…なくても上手い人はいるんだろうなあ…。
>>466 サンクスコ。こんど試してみます。
>>461 本当だね、ばら売りしてるんだ。
スゲー高いなぁ、原価聞いたら怒るだろうなぁ皆。
0.8mmピッチも市販してるのか。ちとびっくり。
原価つか、ほとんどバラす手間賃みたいなもんじゃないかな。 リールを10個やら100個単位でプチプチ切る作業なんて、 考えただけでも辛気臭いし
チップICをつける時は、最初にピンの対角を半田で固定したら 端から3ピン位に半田を盛って、そこに半田を少しずつ補充 しながらコテで半田の塊をピンに沿ってずらしていくと奇麗に つくよ。
その技は、ワット高めの先太めのコテだと楽なんだよな。 半田塊を溶かしつつ、同時に隣のピンを、半田が移るくらいに暖めるって作業を、 滑るように次々に進めなきゃなきゃならないから。馴れると快感だけど。
漏れの半田ごて何Wだとうと思って改めて眺めたら 定格70Wだって。 これで0.5mmピッチのQFPを付けたり、足に電線 はんだ付けしたりしてる。
製造ラインのおばちゃんのスーパーテクニックを見せられると 自分が情けなくなります。
やっぱりそればっかり続けると違うんかなぁ… マジ神です。おばちゃん
うちの会社はおばちゃんが作業するような製造ライン無いから (相手が大量投入の市場ではない)見たこと無いんですが、 手作業でチップ部品くっつけたりとかするんですか?
>>477 普通のコテで208pinQFPを30秒以内で貼りやがる。しかもムラなしムダなしツヤツヤ。
あれ見た時は、井の中の蛙という言葉を思い知らされた。
>>477 リフローに入れるより速いね。
すばらしいとしかいいようがない。
まさに神。
>>479 日本が技術立国になった下地として、元来の器用さ、職人芸の世界があったと聞きますが
いまだ健在ということですね。
身体性をまったく無視した理論とは対照的で、なんかいい話だな。
>>479 ゴメン
>>477 はちょっと特殊で、既に載ってた石を剥がした後、
全部きれいにして、新しい石をあてがって、そこからヨーイドンの場合の話ね。
終わった後のチェック時間も含めないでの話。
そんでも少なくともそれの時はミス無しだったんだよね…(;´Д`)オバチャンスゴスギ
もう今から7年くらい前の話です。
>>480 日本人って器用貧乏なんだなぁと実感するよん。
使えない社員は切っておばちゃんを採用すべきだな。
>>477 え?それふつーでしょ?
0.5mmピッチのTCPだって手半田してたよ、あたし。
仕事でやってりゃ上手くて当たり前。 どっかのマザボメーカーのムービーではメモリソケットを3個いっしょにさっくり入れてたし 農業やってる漏れの叔父さんは5g単位でミカンとかの重さが判る。
グッドのW数変更ボタン付きのコテは便利だよ。 慣れれば吸取り線なしでSSOPもオケー。
487 :
774ワット発電中さん :04/02/03 17:07 ID:WiZsVcWC
グッドの温調付きこては 温度を高く設定して上昇するのは早いが 低く設定しなおした時、その温度になるのに 暇が掛かるよね はんだ吸引機は、十分加熱しておかないと、吸引管の中ではんだが固まるし
吸い取り機って、グッドとハッコーどっちがいいんだろう? ハッコーのハンディタイプ使ってるんだけど、吸引には満足なんだが セラミックフィルタがすぐヤニだらけになるのが不満。 グッドな人の使い心地はどうですか?
そういや、吸い取り機って噴出す機能はないんですかね。 内層に落ちてるスルーホールなんかを抜くときには噴出しで とにかく開通させて、あとを吸い取り線なんかで・・っていう ほうがいいんじゃないかと思ったり、局所ブローみたいに 使えるとチップ部品はずすときも便利そうな気がするんだけども。
おぉ・・・サンクス。 ふーむぅ結構するんですね。普通のやつに水槽用のエアーポンプ でもつけてやろうかしらん・・と思ってしまった(^^;
>>492 客先にあるので偶に使いますが、経験から言うと基板の予備加熱、
熱収縮チューブの収縮には便利です。
でも、チップ部品は熱風で吹き飛んでしまう可能性があるので要注意です。
494 :
774ワット発電中さん :04/02/04 16:46 ID:oKDe0qZ2
最近PICを始めたものです。 質問があるのですが、初めに作った自作の評価ボードがあまりに貧弱なので、 新たに評価ボードを作ったのですが、動作しませんでした。 もちろん配線チェックをしたのでPICが死んだのかも。と思い 新たにPICを3個購入しました。 しかしブランクの筈なのに全て0でブランクではありませんでした。 これは初期不良でしょうか? ちなみに今まで使っていたPICは書き込み、読み込みも正常ですが、 プログラムを書き込み動作させると手を近付けたりするとポートに繋いだLEDが付いたり消えたりします。
495 :
774ワット発電中さん :04/02/04 16:53 ID:PHH1IWkd
>>494 >手を近付けたりするとポートに繋いだLEDが付いたり消えたりします。
あきPINのプルアップ、プルダウン処理してないでしょ。
FETだから入力になってると、インピーダンス∞で、静電気だけで入力リクエストとみなされるよ。
しかも、静電気でPORTが破壊される可能性がある。
ノイズ電力に対して、充分大きく電力採る為に抵抗入れてプルアップが良いと思うけど。
PORTが入力側になったとき、ソフトでやりにくいなら抵抗入れてプルダウンでもいいし。
497 :
494 :04/02/04 17:12 ID:oKDe0qZ2
前に作った評価ボードが破損したので、 今ブレッドボードを使って試しているのですが、 やはりうまく行きません。しばらく試していると今度は全くLEDが点灯しなくってしまいました。 ライター不良でしょうか? 今まではうまくいっていたのですが…
デバイスがソケットになっているなら試しに交換してみたら? 同じような動きをするなら外の回路が悪い。
>>497 いや、一回でも正常動作してればライター不良ということはない。
しかも、動作が変わるなんてことは、ソフトが原因じゃない。
あいてる端子のPULLUP,PULLDOWNの確認、半田不良の確認はしたのかな?
CLOCKラインの回し方はどうだろう。長距離引いてない?CLOCKラインはPICのモロ近くに設けた方がいい。
あと、電源ラインにパスコンは入ってる?それはPICの足元近くに入れてる?
リセットPINはサンプルどおり処理してある?(電源入った後、リセットになるようにCR組立て)
>>494 てか、使ってるライターと、接続してる回路を先に書けよ。
オマイしか知らないんだから・・・
501 :
774ワット発電中さん :04/02/04 19:27 ID:agmZSPqQ
静電気とかそういうことじゃなくてごく単純な見落としなだけだと思うけど リセット周りかな?LED光らすぐらいならパスコンなくてもMCLRのプルアップに 抵抗かまさなくて、いいかげんいいかげんのブレッドボードでも動いてたけどなぁ。 16F84ね。
PICって、リセット回路いらないって書いてあるけど、 俺のやった感じではリセット回路入れないと動かないことあるね。
503 :
774ワット発電中さん :04/02/04 19:48 ID:oKDe0qZ2
レス有り難うございます。
>>500 秋月のPICライターのバージョン3です。
>>501 初めに作った評価ボードはパスコンもリセット回路も
付けて無かったのですが正常に動作してました。
あとライターの動作が不安定なのが気掛かりです。
>>502 なるほどやっぱりリセット回路は入れたほうが良いですね
504 :
774ワット発電中さん :04/02/04 19:56 ID:PHH1IWkd
>>503 回路ちゃんと組んであればリセットしなくてもいいんだよ。
回路ってのは
V+
|ーー|
10K △1S1588
|ーー|
|
ーーーーーーMCLR
|
C0.1μ
|
GND
これでいい。
電源立ち上がり時は、電源安定した直後のリセット再発行が原則なんだよ。
だから、Cで積分して、リセット遅延してる。
すまん。こっちの方がいい。
>>504 だと電源OFF時、Cの急速放電時にDiにもろ5V掛かる。
V+
|ーー|
10KΩ △1S1588
|ーー|
|
ー100ΩーーーーMCLR
|
C0.1μ
|
GND
単体で稼動させるときはリセット回路も検討しなきゃいけないかも知れ無いが、 トラブルの原因を突き止めるだけなら、、電源投入後手動でリセットかけりゃいいやん
507 :
sage :04/02/04 21:51 ID:wdEQtg/w
発振モードとウォッチドッグタイマーの設定は大丈夫か? 冗談のような話だが、漏れは一度それで痛い目にあっているから。
509 :
774ワット発電中さん :04/02/04 22:05 ID:oKDe0qZ2
はい、その点は確認したつもりです。
510 :
774ワット発電中さん :04/02/04 22:48 ID:OeEcFbV/
AVRシリーズって多重割り込みは基本的には御法度なんですよね? タイマ0割り込みの間隔をできるだけ正確にしたいんだけど、 他の割り込み処理中だと待たされちゃうんで、うまくないんです。 強制的に割り込み許可ビットをいじることはできるみたいだけど、 タイマ0だけ優先して割り込ませたりってできないんですかね?
AVRシリーズって多重割り込みは基本的には御法度なのかよ つかえねーなぁ
512 :
774ワット発電中さん :04/02/04 23:55 ID:agmZSPqQ
PICのリセット回路の話でてるけど、パワーアップリセットじゃダメなの?
>>512 ダメとは言えないと思うけど、
リセット回路外付けの方が確実だね。
>>510 多重割り込みとか再帰割り込みとか普通に使えますが何か?
...う、釣られたかも(w
>>494 FLASH系PIC、出荷時は全部0hで埋まってるみたいだから
新品=ブランク=FFFFhという図式は成り立たないみたい
チップ消去とかしたらFFFFhになるはず
ならなきゃライタ不良かチップ不良だろう
>>510 スタックなどの動作さえ把握できるなら多重割り込みは構わないと思う。
この場合は割り込み先頭で他の割り込みはマスクして、timer0だけ許可してsei、
割り込み終了時cliして他の割り込みを許可しておわり、かな?
ややこしそう。。。
一番いいのはtimer0以外の割り込みを使わない方法はないか検討してみること
517 :
初心者1号 :04/02/05 21:15 ID:ZSWkFDNF
マイコンの仕組みと、アセンブラを覚えようと思って、 AVRの開発キットと、Atmega128というICを買いました。 このICのUSARTをつかって、PCのハイパーターミナルと通信を行いたいです。 Baud Rateなど、通信方法を設定する方法がわからないので教えて下さい。 ざっと仕様書を読んでみたところ、通信方法を設定するには、 ・拡張I/Oレジスタへアクセスしなければならない ・それを行なう手段として、よく使われるOUT/IN/SBI/CBIコマンドが使えない。 LD/LDS/LDDやST/STS/STD命令の使用によってのみアクセス可能・・・ とわかりました。 でも今の私には、それ以上のことを理解ができずにいます。 具体的にいうと、UCSR0C,UBRR0HというI/Oレジスタを、 読み書きしたいのですが、どのようにすれば良いのでしょう? 教えて君で済みません・・・。
>>517 gccならこうだけどアセンブラだよねぇ。
outp((1<<TXCIE) | (1<<TXEN) | (1<<RXCIE)|(1<<RXEN), UCSRB);
outp(25, UBRR);
sei();
>>517 単純に、in命令の替わりにlds、out命令の替わりにsts命令を使えばいいんじゃないの?
gccならinb()/outb()関数を使えばいいのかな?(アドレスによってin/outとlds/stsを使い分けるみたい)
520 :
774ワット発電中さん :04/02/05 22:58 ID:b93Nxq2p
>>494 秋月のPICライターキットとPIC16F84を使ってるものですが、
ブランクデバイスをリードすると、すべて3Fと読み出されるはずです。
ちなみに、ライターにPICをセットせずにリードすると、
すべて00で読み出されます。
ライター異常かPIC異常かは、ライターソフトで「PCバッファのクリア」
を行い、すべての書き込みデータを3Fにしてください。
そして、すべて3Fになっていることを確認したら、
それをPICに書き込み、そのままリードしてみてください。
もし、可能なら、複数個の新品のPICで試してみてください。
すべてのPICで00と読み出されるときはPICライターを疑った方がいいです。
ちなみに、ライターが不調の時はPIC自体を破壊することがあるので、
高価なPICは使わない方がいいですよ。
他人の不良ライター(5Vレギュ不良)で877を3匹殺されたことがあります…
521 :
774ワット発電中さん :04/02/05 23:29 ID:e1ggHmsl
>>520 877を3匹 殺害ですか
犯人のライターは、
死刑?
更生施設に入院?
522 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/05 23:32 ID:7konG+yv
PICマイコンはPIC16C773、PIC16F873を良く使ってるけど...
MCLR端子は+5Vに接続して使っていないけど、いつもちゃんとリセットかかるよ...
ライターで焼くとき、PIC16F873はEEPROM関係のオプションを有効にしてると消費電力が大きくなり
78L005とかでは立ち上げられなくなる。
http://www.microchip.co.jp/PSG2001.pdf 新しいC773、F873はRS485インターフェースが付いたのか....
知らんかったなァ....そろそろなくなってきたし新しいの買うかァ....
523 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/05 23:33 ID:7konG+yv
MCLR端子は+5Vに接続して使っていないけど、 ⇒MCLR端子は+5Vに接続していて外部リセット回路は使っていないけど、
>>517 トラ技増刊のAVR入門を買ってはどうかな。WEBだけでも事足りるかもしれないけど。
それからデバイスは最初は一般に普及してる2313がいいと思うよ。
これなら工作例が多いし、安いから壊しても痛くない。
>>523 だからその+5Vが問題なんじゃ?
データシートの仕様内に収まってりゃ問題ないが・・・。
526 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/05 23:47 ID:7konG+yv
527 :
774ワット発電中さん :04/02/05 23:54 ID:e1ggHmsl
貧弱な電源の時にスカタンをするそうな 電圧のの立ち上がりが悪い奴(立ち上がり時にノイズがバカほど出るとかも・・) シッカリした乾電池なら、MCLRに直接+5v入れても、起動するようです。
528 :
525 :04/02/06 00:04 ID:CW8k2jyM
>>526 立ち上がりの事言ってるんだが・・・
で、何でキレてんの?
>>517 初心者が何故、こんな化け物(64PinQFP)を相手にするのか、しかもDual USART、何か特殊な事情でも?
データシートの24ページの、項目I/O Memoryの中に
For the Extended I/O space from $60 - $FF in SRAM,
only the ST/STS/STD and LD/LDS/LDD instructions can be used.
と書いて有るが、これで情報不足なのか
>>529 たぶん、会社でやらされてるんじゃ無いか?
531 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/06 00:20 ID:mJvJXhOv
532 :
515 :04/02/06 00:20 ID:VwxcSTtX
>>520 最近18Fxxx系/16F62xA/16F81x/16F87/16F88あたりの新しいシリーズしか
いじってないけど、プログラムメモリは全領域0000hが読まれるよ>新品
>>515 で書いたとおり、チップ消去すれば 3fffh(16F系)/ffffh(18F系)
になるみたい
EEデータ領域は、ffh だった>(16F*/18F* ともに)
コンフィグの領域は、16F*の場合は3fffhだったが
18F*の場合はデバイスによって若干違いがあるみたいだ
データシート通りみたいだが>18F*のコンフィグ
16F87x/16F84なんかの古い(古いというべきではないかもしれんが)
やつはどうだったか覚えてないな、最近使い回しばっかで買ってないから
533 :
529 :04/02/06 00:24 ID:ejf7CfUl
読み直したら
>LD/LDS/LDDやST/STS/STD命令の使用によってのみアクセス可能・・・
と書いてあるな、すまそ
それなら間接アドレッシングモード等が解らんのかな
>>530 そんな無茶な会社あるの?
>>533 それはないと思うが。
アクセス相手はIOポートでアドレス定数だから使う命令はlds/stsで、
間接アドレッシング無関係だと思われ。間接アドレッシングでもできるだろうけど。
>>517 まず、in/out/lds/sts命令の意味は理解していますね。理解していないとUARTどころじゃないので。
でもって、
in reg,Addr = レジスタr←アドレスがAddrのI/Oポートのデータ
lds reg,Addr=レジスタr←アドレスがAddr(2バイト)のI/Oポートのデータ
というわけで、両者は全く同じことをします。
違うのはAddrに指定できる数値で、in命令は0x20-0x5F(movも合わせれば0x00-0x5F)、
ldsは0x0000-0xFFFF。lds命令の方が少し遅いという違いもあります。
単純に、UCSR0Cポートが0x60以降にあるなら(0x95だね)
in register,UCSR0Cが使えないのでlds register,UCSR0Cを使うと言うだけ。
out命令とsts命令の関係も同じように考えてください。
536 :
初心者1号 :04/02/06 02:00 ID:p/IHiRpk
短い時間で、たくさんのレスがついていてビックリしました。
皆様ありがとうございます。
なんとなく、535さんの回答でわかった気がします。
うまく動作するか確認してみますね。
>>518 ,519
マイコンの仕組みを理解したいので、あえてアセンブラで挑戦しています。
内緒の話ですが、実はCも詳しくありません(笑)
>>524 開発キットと一緒に買いました。これしか本はないようですね。
>>529 ,530,531
大は小を兼ねると言うか、使わない機能は放っておけば良いと思って、
一番多機能のICを選びました。
仕様書や記述文法が、独特な言い回しで記述されているので、理解するのに苦労してます。
基本的に人の作ったプログラムを、見よう見まねでコツコツやっています。
マネできなくなると、今回のようにこけてしまいます・・・(苦笑)。
仕事はRF屋なので、やらされているわけじゃありません。
うまく技術をハーモナイズしたいなという願望はあります。
やらされるには、相当無茶なレベルなのですね?
挫折しないよう頑張ります・・・。
>>533 ,534
間接アドレッシングモード???っていうやり方でもできるのですね・・・。
わからないことが増えました(笑)
>>536 おお、分かってもらえて幸いです。
大は小を兼ねるというのもわからないでもないですが、最初はあれこれ見るところが
少ないものの方がわかりやすくていいですよ。
UART2ポートはやっぱり最初はハードル高いと思う。
ちなみに何故ハイパーターミナルとの通信で2ポート使うの?
念のため、
AVRのUARTは全二重ですので、1ポートで送信受信両方同時にOK牧場(wです。
538 :
774ワット発電中さん :04/02/06 14:43 ID:vl8CZkel
>>532 ご指摘ありがとうございます。実験してみた結果、
おっしゃるとおり00が読み出されました。
私の記憶違いだったようです。
>>494 手をかざすと動作したりしなかったり…というのは、
もしかしてブレットボードを使っていませんか?
その場合、接触不良が考えられます。
また発振子の配線が長すぎるってことはありませんか?
私も入門したてのころ、減衰とか過渡現象とか全く知らず、
50cm以上もあるリード線を切らずに巻いたままセラロックの接続に使い
失敗したことがあるのを今朝電車の中で思い出しました…
539 :
538 :04/02/06 14:47 ID:vl8CZkel
後半の494へのコメント既出でした。すいません…
540 :
774ワット発電中さん :04/02/06 19:26 ID:Pw1avdlw
外付けのEEPROMはPICの内臓プルアップをしておけばSDA、SCLにプルアップは 必要ないんですか?
541 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/06 21:56 ID:mJvJXhOv
>>540 PIC側を出力にしてれば問題ないっしょ。内部プルアップなんて関係なし。
EEPROM側は始めは入力なんで、コマンド発行して、READのタイミングで
PICのポートを入力に切り替えてACK確認して…で良いんじゃない?
>>541 シリアルEEPROMなんて、どんなPICでも使えるっしょ。プログラムでタイミング
計ってクロックとデータ送ってやれば問題なし。
543 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/06 22:53 ID:mJvJXhOv
>>542 勿論、ポートでビット操作してローテーション命令等使ってシリアル伝送サブルーチン作れば
PICに限らずどんなマイコンでも簡単に作れる。
ただ、PICにはもとから便利なSCIが備わっているものがあるのでそれを利用したほうがらくちん
ということ...
544 :
初心者1号 :04/02/07 00:12 ID:E9HdDh8m
>>537 とりあえずハイパーターミナルでPCと接続できました。
PCから受信したものを、そのまま投げ返しています。
でもなんでか、動いたり動かなかったりなんですよねえ・・・。
通信の設定は、パリティーなし、データ8ビット、ストップビット1.
ボーレートは色々やってみました。いまは38.4kbpsにしています。
シミューレーションを走らすと、きちんとレジスタへ設定できているように見えます。
マイコンの基準発信機は、内蔵発信機を8MHzに設定。
この発信機の安定性が悪いのかなあ・・・・?
UART2本の石を使っている理由は・・・
特にありません(笑)
大は小を兼ねるということで・・・。
おいおい使い道を考えたいと思います。
>>544 AVRの内蔵発信機は温度計が作れそうなくらい変動しますよw
>>544 AVRの内蔵オシレータは、電源電圧には敏感ですね。VCOが作れそう(w
温度には鈍感なので、レギュレータつかってるなら動作温度範囲で±1%以内
に入るようです。シリアル通信のタイミングには十分ではないかと。。。
肝心なことを言い忘れ(w クロックを1MHz以外にセットするときは、 ライタで読み出した校正値でOSCCALを再設定する 必要があるみたいです。多分これじゃないかなー
548 :
545 :04/02/07 03:04 ID:wKVum7hn
>>546 (・∀・)ギャー
うろ覚えで大嘘書いてしまった。
アトメル社まで謝りに逸ってきます。
549 :
774ワット発電中さん :04/02/07 04:05 ID:v7grTMUZ
内蔵発振なら、5VのPICの方が優秀でつね。 12F675とか16F819とか。
550 :
774ワット発電中さん :04/02/07 05:16 ID:SkovuG/s
>>544 内蔵発振でRS232も動くけど、38400は高速過ぎてだめよ。
9600くらいまで落とせば、エラーも消えると思うが。どう?
551 :
774ワット発電中さん :04/02/07 06:33 ID:EkBl3gwp
うちのatmega16は内部オシレーター8MHz動作で 38400bpsでもエラー無く通信できるよー。 電源回りを強化してみてはどうか?
>>544 UBRRL,UBRRH,UDR0,UDR1,UCSR0A,UCSR1A,UCSR0B,UCSR1Bの設定を晒そう。
RS232C接続回路はどのピンからどんな回路を経由してます?コネクタへの配線込みで晒しましょう
>>546 実は電源が定電圧化されていない(電池など)とか
553 :
初心者1号 :04/02/07 08:36 ID:E9HdDh8m
開発環境は、STK500+501 & AVR Studio4です。
電源周りをみてみたところ、そんなに不安定ではありませんでした。
てなわけで、オシレーターは大丈夫なのかな・・・。
そんな気がしてきました。
やはり犯人は私のプログラムか?一番怪しいし・・・ (笑)
いちおう休み明けに会社のカウンタで周波数を計ってみます。
XTAL2端子をみればいいですよね?
>>547 校正値でOSCCALを再設定するっていうのは、
AVR StuioでFUSEビットを変更するばいいんですよね??
555 :
774ワット発電中さん :04/02/07 11:23 ID:QZgg/zRM
>>553 ほう、カウンタが出てきたか・・・。
カウンタは大変便利で、クロック計る以外にもいろいろ使える。
バスでの信号を調べたりするのにも・・・。
まあ、ロジックステートアナライザ(通常路地穴)があればいいけど、
持ってないとき、カウンタが役に立つ。
一定のデータをバスでやり取りするテスト用ファイル(簡単なのでいい)を仕込んでおいて、
バスのpinにカウンタぶら下げれば、pinごとに正しいバイナリーコードの0と1の数(バスデータ)が出ているか分かる。
>>553 クロック周波数くらいLEDピコピコプログラム作ってその結果から検証しましょう。
>>553 >>544 で動いたり動かなかったりと言うことは、プログラム自体には
問題なく、微妙にずれていると言うことになりますねえ。
OSCCALはデータシートを読んでください。単なるレジスタで、ヒューズビットで
書き込むものじゃないです。AVR自身のプログラムで書き込めます。
書き込む値はデータシートにあるようにヒューズビットに設定済みのデータを
読み出して使うか、実測して補正値を書き込むことになるのでしょうか。
>>557 △単なるレジスタで→○単なるI/Oレジスタで
559 :
774ワット発電中さん :04/02/07 21:01 ID:QZgg/zRM
>>544 ハイパーターミナルでモニタできたなら、次は、
ハイパーターミナルのテキストのキャプチャ機能使って.txtに取り込んで、
或いは、テキストの送信でCode送ったりしてみれば。
>>553 とりあえずはSTK500のクリスタルソケットに8Mセラミック発振子刺せばいいんでは?
誤差0.5%でRS232Cには充分な精度得られる。
他の問題が片づいてから内蔵発振には挑戦しよう。
>>560 もとい。STK500って3.68MHz以下のクロックしか供給できないのか。
562 :
初心者1号 :04/02/07 23:54 ID:E9HdDh8m
たくさんのレスありがとうございます。
今日は所用で触れなかったのですが、
皆さんのアドバイスを参考にやってみます!
>>559 上手くいったら、次はそれに挑戦してみます!
マイコンで遊ぶのって面白いですね〜。
563 :
510 :04/02/07 23:59 ID:HvAgcvpg
510 っす。
>>516 >スタックなどの動作さえ把握できるなら多重割り込みは構わないと思う。
>この場合は割り込み先頭で他の割り込みはマスクして、timer0だけ許可してsei、
>割り込み終了時cliして他の割り込みを許可しておわり、かな?
これやると、timer0以外を禁止している間に他の割り込みが発生すると
無視れちゃうことになりませんか?UART受信割込みを取り損ねたり...
>>554 スマソ。40ピン以上の場合、XTAL2はXTAL2だった...。内蔵クロックは出てないけど。
>>563 優先付き多重割り込みというのはそういうもの。優先順位の高い割り込みの処理中
はそれ以下の割り込みが来ても保留。終了時はマスクを元に戻すのを忘れずにね。
PICはこういった多重割り込みの優先処理を自動でやってくれるんだよね。
>>563 >timer0以外を禁止している間に他の割り込みが発生すると無視れちゃうことになりませんか
通常の割り込みルーンそのものが割り込みかかった時点で自動的に割り込み禁止しているん
ですから同じことです。割り込み禁止中の割り込み事象発生は割り込みフラグに記憶されて
います。(TIFRなど)割り込み禁止を解除された時点で割り込みがかかります。
>>516 の例では他の割り込みを許可して(でもcliかけたので割り込みはかからない
RETI命令で割り込みルーチンを抜けて自動的に割り込み許可になったときにかかる。
複数の割り込みを使うこと自体、動作を細かく把握してないとだめ
後回しにされた割り込みはそれで問題ないのか、処理は間に合うのか
割り込み優先順位はあくまで同時にかかったときの優先順位であって、たとえば
コンパレータ割り込みかかってから後にINT0割り込みがかかってもコンパレータ
割り込み終わるまで待たされます
このへんをいじるならPICのような割り込みもいいかもしれませんね。
1つの割り込みルーチンで処理するので簡単になる。
>>564 >PICはこういった多重割り込みの優先処理を自動でやってくれるんだよね
自動的とはどういう状態です?おしえて
566 :
774ワット発電中さん :04/02/08 11:30 ID:tnsqzK4u
>>565 >割り込み優先順位はあくまで同時にかかったときの優先順位であって、たとえば
コンパレータ割り込みかかってから後にINT0割り込みがかかってもコンパレータ
割り込み終わるまで待たされます
違うんじゃない。
最初の割り込みかかった時、次のアドレス(戻りアドレス)と、その時点の割り込み参照フラグをスタックに退避。
で、割り込みルーチンに入る。で、優先順位が高い割り込みが割り込んできたら、
最初の割り込みルーチンを中断し、その割り込みルーチン処理の次のアドレス(戻りアドレス)と、その時点での割り込み参照フラグをスタック退避。
で、優先順位の高い処理に移行する。
もし、割り込み中、割り込み優先順位が低い割り込みがかかったら、更に割り込み参照フラグをスタックに退避。
スタックは、後入れ先出し(LIFO)だから、最後に入れたのから処理されていき、サブルーチン処理としての動作を満足している。
そして、CPUはステートマシン(ノイマン型)であるから(ニューロン型ではない)、同時に割り込み信号が来る事はない(外部・内部問わず)。
>>566 565じゃないけど、ちゃんと嫁。
割り込みが入ったら、割り込み禁止フラグが立つから、優先順位
が高い割り込みがあとから入ろうがそっちには入らない。
禁止フラグを解除すれば、高い方に遷移する。
そうじゃないと、多重割り込みさせたくない場合に対処できないダロ。
普通のCPUなら、ここらへんの動作はSHだろうがx86だろうが同じ。
優先度はCPUによるけどね。
割り込み入力でレベル管理ができるものの場合、割り込みが入ったときに、
割り込みレベルレジスタのようなものに現在の割り込みレベルが格納
されて、それより高い優先度の割り込みが発生したときには、
>>566 の言うように高い優先度の割り込み処理に移る。
68000なんかでも7レベルの割り込み管理してるしね。(レベル7が
NMIだったっけ?)
ただ、ここではそういう機能のないCPUを使っているときに自前で
多重割り込み処理ができるようにしようっていう話だろうけど。
なるほどね!PICはMICROCHIP社のPICワンチップマイコンじゃなくて、 ProgramableIntrruptController=割り込みコントローラの方ね。 内部割込みでも外部割込みでも、ベクタ番号は同じだね。 たとえば、キーボード割り込みが内部割込みでINT09hだったとする。 PICの外部割込みはどうか。 PICの立ち上がり時、すなはち、リセット時、BIOSがPICの初期化に入りPICのICW2レジスタに割り込みベース番号を設定する。 マスタはICW2の8bitの上位5bitを00001に、スレーブを01110に設定する。 で、C-MOSセットアップでキーボードの割り込みはIRQ01(下位3bitを001)に設定されているから(この場合PICのIRQ01pinの配線もKBD)、 PICがCPUのINTpinにアサート、CPUがPICに対してINTA(応答)、次にPICが上位5bit00001と下位3bit001を加えて00001001(割り込みベクタ番号09h)を送る。 すなはち、外部でも内部でも結局割り込みベクタ番号は同じ。(ところで例外はINT00〜07。INT02がマスクできない割り込みNMI。外部からNMI仕掛けるときはNMIpinをREQEST。割り込みで最高位のシステムマネージメント割り込みSMIpinてのもある) で、CPUは戻り番地と現在割り込みフラグをスタックに退避、ベクタ番号9番を元に割り込み処理ルーチンのアドレスが書かれているテーブル(IDT)のアドレスを参照するために計算する。 割り込み処理ルーチンの物理アドレスは####:####hで2WORD(4BYTE)データであり、IDTは0000:0000h番地から始まってるから、 09h*4=24hすなはち0000:0024hから書かれている2WORDデータを参照して、そのデータのアドレスすなはち割り込み処理ルーチンアドレスにジャンプもしくはCALLする。 戻るときは、スタックから割り込みフラグを元に戻して、戻り番地に飛ぶ→元の次のアドレスに行く。 従って注意しなきゃいけないのは、割り込み中、CPU内レジスタが書き換えられる可能性が十分あるので、割り込み処理ルーチンの初めに各レジスタの退避コードを書いておかなければならない。 そして、処理ルーチンの最後にそのコードを元のレジスタに戻さなければならない、BIOSで書かれるべきこと、CPUは勝手にやってはくれない。 てことで、x86のノーマルモードでの割り込み処理はこうなってる。 おそらく実際はベクタ番号の値をIDTRレジスタ64bitの下位16bitに入れて、上位48bitは0が入っているから結局、下位のベクタ番号*4としてIDTの参照アドレスになるけれど、 プロテクトモード、仮想x86モードでは上位48bitに、IDTテーブル参照ベクタ番号に更にベクタコントロールして参照ベクタテーブルアドレスを変えたりする制御情報等が入ってる。 当然、参照テーブルは物理アドレス0000:0000で始まるテーブルではなくなる。これは、OSによって設定できる。例えば、リアルタイムOSのタスク優先順位での処理なんかがそう。 この場合飛ばし先の処理ルーチンもBIOSでなくOSが書いてること。
>>570 リアルモードとプロテクトモードがごちゃ混ぜになってるなぁ。
リアルモードの時はINTAサイクルで受け取ったベクタ番号を
4倍して、そこに書かれたCS:IPの値のところに飛ぶ。
スタックにはフラグとCS:IPが積まれてるだけなんで、
使うレジスタはPUSHしてから使って、最後にPOPしてIRET
プロテクトモードのときはやりかたいろいろになってくるけど、
IDTの中でタスクゲートを指してタスクスイッチングさせるなら、
レジスタのTSSへの退避は自動的に行われるよ。
>プロテクトモードのときはやりかたいろいろになってくるけど、 IDTの中でタスクゲートを指してタスクスイッチングさせるなら、 レジスタのTSSへの退避は自動的に行われるよ。 いや、RISCといえどもCPUに、フラグとCS:IP以外をスタック退避なんて、そんなことする機能はないよ。 割り込み処理ルーチンで行わなければならない。(OSが書かれてるメモリアドレスでの処理)
ちなみにKBDの割り込み処理手順(リアルモード)を確認してみた。 C:\>debug -d 0000:0024 0027//処理ルーチン先アドレス参照ベクタテーブル(IDT)アドレス。 0000:0020 65 00 5D D0 すなはち、KBD割り込みの処理はエンディアンして、D05D:0065から書かれてるってこと。この領域はメインメモリ領域でOSが記述してそうだけど、それだとC-MOSセットアップでキーボード使えなくなるから、おそらくこの領域はNV-RAMもしくはSUPERI/Oチップ。 -u D05D:0065 D05D:0065 1E PUSH DS D05D:0066 50 PUSH AX D05D:0067 53 PUSH BX D05D:0068 51 PUSH CX D05D:0069 31C0 XOR AX,AX D05D:006B 8ED8 MOV DS,AX D05D:006D 3E DS: D05D:006E 8B1E1C04 MOV BX,[041C] D05D:0072 9C PUSHF D05D:0073 9A2607B60A CALL 0AB6:0726 CPUのレジスタをスタックに一斉退避してる(PUSH)。で、FarCALLで0AB6:0726へサブルーチン呼び。 -u 0AB6:0726 0729 0AB6:0726 EB01 JMP 0729//ただNEARCALL :0729へのジャンプ 以下続く↓
575 :
つづき :04/02/08 16:39 ID:tnsqzK4u
-u 0AB6:0729 0AB6:0729 55 PUSH BP 0AB6:072A 50 PUSH AX 0AB6:072B 53 PUSH BX 0AB6:072C 51 PUSH CX 0AB6:072D 52 PUSH DX 0AB6:072E 56 PUSH SI 0AB6:072F 57 PUSH DI 0AB6:0730 1E PUSH DS 0AB6:0731 06 PUSH ES 0AB6:0732 FC CLD 0AB6:0733 BB4000 MOV BX,0040 0AB6:0736 8EDB MOV DS,BX 0AB6:0738 2E CS: 0AB6:0739 8B2E8212 MOV BP,[1282] 0AB6:073D B0AD MOV AL,AD 0AB6:073F E8E007 CALL 0F22 ここでも一斉退避。 -u 0AB6:0F22 0AB6:0F22 9C PUSHF 0AB6:0F23 FA CLI 0AB6:0F24 F7C50006 TEST BP,0600 0AB6:0F28 7412 JZ 0F3C 0AB6:0F2A 3CAE CMP AL,AE 0AB6:0F2C 7519 JNZ 0F47 0AB6:0F2E 50 PUSH AX 0AB6:0F2F E461 IN AL,61 0AB6:0F31 8AE0 MOV AH,AL 0AB6:0F33 0C80 OR AL,80 0AB6:0F33 0C80 OR AL,80 0AB6:0F35 E661 OUT 61,AL 0AB6:0F37 86E0 XCHG AH,AL 0AB6:0F39 E661 OUT 61,AL 0AB6:0F3B 58 POP AX 0AB6:0F3C F7C56000 TEST BP,0060 0AB6:0F40 7405 JZ 0F47 0AB6:0F42 E8CA00 CALL 100F -u 0AB6:100F 0AB6:100F 50 PUSH AX 0AB6:1010 51 PUSH CX 0AB6:1011 B9E303 MOV CX,03E3 0AB6:1014 E461 IN AL,61 0AB6:1016 2410 AND AL,10 0AB6:1018 3AC4 CMP AL,AH 0AB6:101A 74F8 JZ 1014 0AB6:101C 8AE0 MOV AH,AL 0AB6:101E E464 IN AL,64 ここでやっとIN AL,64が出てきた。I/Oアドレス64hはATキーボードのステータスレジスタでその値を読み込んでる。 結局BIOSが割り込みルーチンの処理するんじゃなくNV-RAMもしくはSUPERI/Oチップがやってる。
576 :
774ワット発電中さん :04/02/08 16:51 ID:nz421ahi
>>573 386プロテクトモードをなめてはいけない
TSSを用意して置けばCPUが全部そこへレジスタを全部退避してくれる
例えば只のジャンプ命令も
JMP xxxx:yyyyyyyy で
xxxxが普通のディスクリプタだとCSとEIPへの代入が起こるだけだが
xxxxがTSSだと現在の全レジスタ値を現在のTSSへ退避して、
xxxxが指すTSSに保存されている値を全レジスタへ復帰する
>いや、RISCといえどもCPUに、フラグとCS:IP以外をスタック退避なんて、そんなことする機能はないよ。
>>576 も言ってるけど、x86のプロテクトモードはすごい。
(すごすぎて遅いという話もある(笑))
x86のプロテクトモードだと、その機構が備わってるんだわ。
あんなややこしいこと、良くやってるなとは思う。
使うかどうかはOSの設計者次第だから、使わなくても
かまわないんだけどね。
x86のタスクゲートを使ったタスクスイッチングは
1.タスク切り替えの正当性を特権レベルを見て判定
2.新しいTSSディスクリプタの検証
3.現行タスクのCPUレジスタ(EAX、ECX,EDX,EBX,ESP,
EBP,ESI,EDI,ES,CS,SS,DS,FS,GS,EFLAGS、EIP)をTSSに
コピー
4.新しいタスクのTSSディスクリプタのセレクタを
ロード
5.新しいタスクのTSSディスクリプタから各レジスタの
内容を取り出してリストア
6.新しいタスクの実行
と、これをCPUが勝手にやる。
あと、ソフトウェア割り込みとハードウェア割り込みも68000あたり
でも別扱いになっていて、ソフトのTRAP命令ではハードウェア
割り込みと同じところには飛ばない。
>>574 で拾ってきているのは、リアルモード用のコードだから、
TSSは使ってないよ。
578 :
つづき :04/02/08 17:00 ID:tnsqzK4u
>>576 ヘェ〜(・∀・)⊃⌒ヘェヘェヘェ〜
ピコピコ。
でも、CISCと言えどもCPUにそんなステート処理組んであるとはとても信じられないけど・・・。
あ、あと、
>>573 のRISCはCISCへテイセーね。
579 :
774ワット発電中さん :04/02/08 17:10 ID:xnapDql+
日本橋の共立とかマルツで売ってたPIC学習キットで 12F675とか819に書き込めますか? IC-Progで書き込む際に、JDMを選ぶので他のJDMと同じ問題を抱えてるのかな…
>>578 だからみんなx86セグメントは嫌いなんだよ。
意味不明なほど高機能。なんかやるにもセットアップが大変。
だからなるべくそういう機能は使わないようにしているから、INTELも
その手の機能は高速化してない。
ちなみに最近のPCはSMM使ってI/O処理している部分があるから
IN AL, とかで安心しているとハードの作りが分かったことにならない。
一回動いてしまうと「おぉ!すげぇ」って感動するんだけども、
理解するまでが大変だし、いじらなくなるとすぐ忘れるし(俺だけか・・)
>>578 っつぁんは
ftp://download.intel.co.jp/design/pentium4/manuals/25366813.pdf これの
Chapter6 TASK MANAGEMENT
を読むといいかも。これのベースは80286だもんねぇ。あの時代に
よくまぁ、こんなややこしいものを・・というその「馬力」には関心
するわ。
>ちなみに最近のPCはSMM使ってI/O処理している部分があるから
DOS窓も仮想86モードで動いてるもんね。
(おかげで、GDTをいじって自前で勝手にプロテクト
モードに入ろうとすると怒られる(笑))
GDTじゃなくてGDTRでした・・手が滑った
583 :
774ワット発電中さん :04/02/08 17:49 ID:tnsqzK4u
>>576-577 てことは何、コントロールレジスタ0(CR0)の0bit目に1たってプロテクトモードかかってて、INT命令や外部割込み来た時のCPU内部動作は、
INTをデコードした結果、ステートレジスタに次の処理に対応するbitに0/1コードを順次生成。
マイクロカウンタ
↓
1.プログラムカウンタ+1する。
2.プログラムカウンタの出ゲートOPEN→IP(オフセットアドレス)の入ゲートOPEN(INTのオペランドをデータレジスタに吸い込み(ベクタ値))
3.CSの出ゲートOPEN→スタックの入ゲートOPEN(セグメントアドレス退避)
4.IPの出ゲートOPEN→スタックの入ゲートOPEN(オフセットアドレス退避)
5.割り込みフラグ出ゲートOPEN→スタックの入ゲートOPEN
6.いっぱいあるレジスタの出ゲートOPEN→スタックの入ゲートOPEN(レジスタの数だけ)
?.データレジスタの出ゲートOPEN→IDTRレジスタの入ゲートOPEN(ベクタ値をIDTRに移す)
?+1.IDTRの出ゲートOPEN→CS:IPの入りゲートOPEN(割り込み処理ルーチンの先頭アドレス設置し、そのアドレスのデータをデータレジスタに吸い込み)
で割り込み処理、てな感じか・・・。
いっぱいあるレジスタだけで、10個くらいあるからCPUの内部clockで20clock位(外部クロックで5clock)要るじゃん。(wオソ・・・
>>583 訂正。ゴメソ。
外部割り込みん時は、CPUがINTA(応答信号)をPICに対して出したと同時にベクタ番号をPICから吸い込むから、動作が違うね。
INT命令は特権命令です。 なんかよくわからんことが書いてあるが(出ゲートとか)、clock単位で 処理を数えられるほどCPUの事を分かってないようにみえる。
>>585 ゴメソ。CPU内はバスだから、出ゲート、入りゲートってより、双方向トライステートバッファの入出のどちらをONするかだね。
CPU内のclock単位ってのは、外部clockを元に更に細かく分けて、4倍くらい高速にしてる。
CPU内パイプライン制御にしろ、順次制御にしろカウンターベース制御でしょ?
もちろん、CPUのロジック各段階でもマイクロプログラムでも、ワイヤードロジックでもCPU内レジスタートランスファー処理は同じだろうし・・・。
パイプライン段数や、キャッシュヒット・ミス時のレイテンシが効いて くるはずだが、単語すら出てこない。 x86はしらんが、どこぞのCPUはトラップするとパイプの全吐きだしまで やっていた。そのような制御もあるかのかないのか? この辺を無視した場合、数Clock単位での処理遅延見積もりなんてできな いだろ。 しかしいいかげんスレ違いだ。
>>586 誤字、てか書き間違えた。
>CPUのロジック各段階でも
>CPUのロジックを書く段階でも
590 :
569 :04/02/08 20:32 ID:WDQGAHZa
つまらんネタで脱線させてスマソ。。。
591 :
585 :04/02/08 21:15 ID:EEQyfeal
592 :
774ワット発電中さん :04/02/09 00:37 ID:WO95fNZM
tssって問題頻発で実際のOSでは採用されてないんでない?
593 :
774ワット発電中さん :04/02/09 00:45 ID:pcwahvKH
PIC16F88を通販で買える店があれば教えてください。
>>593 調べたけど、日本では無理そうです。つか、なんの機能を使いたいの?全部使いたい
ならしゃ〜ないけど…
595 :
774ワット発電中さん :04/02/09 01:12 ID:pcwahvKH
つーか、これから 18Pinはこれ1本にしていこうと思ってね。 UART+ADってけっこういいので。
596 :
98 :04/02/09 02:01 ID:rR0v7CMl
>593 RSは調べた?
597 :
774ワット発電中さん :04/02/09 02:22 ID:pcwahvKH
調べました。ないようです。 秋月なし、IPIもなしです。 まだ新しすぎるのでしょうか。
598 :
774ワット発電中さん :04/02/09 04:56 ID:aeok+XCA
>>592 今はOSも各種CPUに移植されるのが普通になってきているんで、
あのx86独特のややこしいシステムはあまり好まれないんだろうね。
4レベルの特権管理だって、普通はユーザモード/スーパーバイザモード
みたいな2レベルで十分だから、そこまで使わないで済んでしまうし。
ただ、一部のFA向けのOS(あえて名は伏す)ではちゃんと(?)
使われていたよ。
iRMXあたりでも使っていなかったっけ?ちょっと失念したけど。
>>600 ひょっとして16ビットタイマーのあるなしかな?
602 :
774ワット発電中さん :04/02/09 10:21 ID:jMa7yo6A
>>600 低消費電力になったのもそうなんだけど、
大きな違いは9thビットのUARTをサポートした所。これは大きい。
16F819は同期シリアルのみ。だから、ハードでRS232Cを簡単に構築可能。
他にADコンバータチャンネルが5ビットから7ビットへ拡張されている。
まだちがいがあるが、今後は、これに移行されるだろうね。
2Vから動くわけだし。
603 :
774ワット発電中さん :04/02/09 10:33 ID:jMa7yo6A
microchipは、品種をいたずらに増やすよりも、MIPSの改善をしてもらいたいよ。 sxマイコンも手に入りにくくなったわけだし。 2MIPSくらいだろ、PICって。 せめて20mips以上欲しい。
604 :
774ワット発電中さん :04/02/09 11:03 ID:jMa7yo6A
取り合えず、機能比較でまとめてみました。 容量での比較は、そんなに頻度に発生しないので、各データシートを参照してください。 14ビットハイエンド(多ポート、フルファンクション) 16F873Aか16F877A 14ビットミッドレンジ(18ピンデバイス) 16F88(但しまだライタの対応や入手性で難がある) 16F819(現況で手に入るがRB3問題もあり、USARTもないので、今後は16F88へ移行される) 16F628A 〜16F648A(USARTがないのと、はADコンバータがないのと、内部オシレータが 4MHzか37KHzの2種類しかないので、内蔵31.25KHzから8MHzまでの8種類(多分PLL?)を 選択できる16F88に移行されるものと思われる。) 16F84A(外付け発振のみの対応、消費電力が大きい、その他色々について古いデバイス) 14ビットローレンジ(8ピンデバイス) 12F675(現状での最強デバイス、4CHのADCやコンパレータがある。リセット回路と 発振器も内蔵しているので、極端な話電源ピン(要パスコン)に電源を入れるだけで 動く。低消費電力であり、スリープ時は0.99ピコアンペアになるので、ボタン電池での 動作に最適)12F629(12F675のADコンバータ無しバージョンであるが、価格が10円しか 変わらないので12F675が包括するとおもわれる) 12ビットレンジ 12C509(12F675が出てきた以上、量産以外では使用されないであろう。価格も12F675と 同じなのに、一度書いたら再度プログラムを書けない) 16C54(一度しか焼けないし、命令も貧弱であるが、価格が相当安いので場合によっては まだ存在価値はある)
605 :
774ワット発電中さん :04/02/09 11:18 ID:jMa7yo6A
あと、H8とかは内部構造がダイナミックな構造になっていると思われるので、 最低クロックが決まっていて、それ以下の周波数で動かすと動かなくなるけど、 PICの場合、DCからのクロック入力が保証されているので、面白い使い方ができる。
606 :
774ワット発電中さん :04/02/09 11:50 ID:QFCdRkHK
16F628A 〜16F648AってUSARTついてますよ。 ところでUSARTってなんて読むの?UARTは?
607 :
774ワット発電中さん :04/02/09 12:02 ID:jMa7yo6A
>>606 おお、失礼。いつも使っているのにシリアルがないとかいていた。訂正。
ちなみに
UART ユアートって発音してる
Universal Asynchronous Receiver/Transmitter
USART ユザートって発音してる
UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER
>PICの場合、DCからのクロック入力が保証されているので、面白い使い方ができる。 へぇ! デバッグに便利そうだね。
609 :
774ワット発電中さん :04/02/11 00:40 ID:t3wSWw/S
INCF PORTB BTFSC STATUS,C としてるのですが、何周ループしてもSTATUS,Cが1になりません。 何がおかしいのでしょうか?
PICで下記のような変わった表示方法の時計を作ろうと思っています。 時表示用に12個のLED 分表示用に12個のLED を使います。 時表示は下記のような光りかたをさせます。 00:00(+-6分)なら0のところのLEDのみ 00:12(+-6分)なら0のところのLED80%,1のところのLED20%の光量 00:24(+-6分)なら0のところのLED60%,1のところのLED40%の光量 00:36(+-6分)なら0のところのLED40%,1のところのLED60%の光量 00:48(+-6分)なら0のところのLED20%,1のところのLED80%の光量 01:00(+-6分)なら1のところのLEDのみ 分表示も同様の光り方をさせます。 つまり、12進カウンターではなく、12個のLEDで60進の光り方を させアナログ的にボワーっと光が移ってゆくようにします。 (同時点灯は時、分それぞれ2個まで) 付帯条件としては、上記の光量制御(ソフトウエアPWM)および、切り替えタイミングの制御は全部ソフト でやりたいこと。(外付けハードで決めうちにしない) 多種類の色違いのLEDを使用するため、24個のLEDの100%時の光量についてもすべて独立調整の 必要がありこれもソフトで行いたい(テーブルで管理)こと、 また、別の目的で7つのLEDを光らせます。 これは飾りなので、7ビット分独立制御の必要があります。 これはすべて同じLEDですので、独立の光量制御は必要なく、またプログラマブルである必要も無く、 半固定抵抗で十分です。 結局、合計のLED数は31個です PICは初めてなのですが、このような目的で、一番外付け回路が少なくてすみそうで かつ入手性の良いPICのうちもっとも廉価なものを教えてください。
>>611 とりあえず、自分で検討して、それに対して意見を求めた方がいいと思う。
どうせプログラムを作るには色々調べないといけない訳だし、
その前にpicの種類を調べると言うのが加わるだけでは?
>>612 参考になりました。
まずは回路考えてみて、プログラムのアイデアを考えてみて、それで回りくどい
ことや実現不可能なことをしてないか叩いてもらうようにしてみます。
案ずるより・・・という奴ですね。
>>611 予算が許せばフルカラーLEDを使って七色に光らせながらグルグル回したらきれいだろうな。
漏れも作りたくなってきたw
漏れが考えたのは、74HC595使うってのかな。出力3本で足りるから、結構ラク。 テーブルはデータEEPROMにデューティ比焼いておいて、それを参照して…かな?
616 :
774ワット発電中さん :04/02/11 10:18 ID:MPhsClnl
>>611 面白そうだな。
ソフト作りやすさは置いといて、一番外付け回路が少ないのは16F84Aだな。
LED 31個は、4グループ×8bitのマトリックスにしてPICに直接つないじゃいましょう(直接って言っても抵抗は忘れずに)。
1pin20mAmax、合計100mAmax駆動可能だよ。
16F84に32.768kHzの水晶で動かしましょう。
PWMが60Hzぐらいとしたら、32k/4/60≒100命令ぐらい使える。ソフト入りきらないかな。だめだったら16F873で水晶二つだな。
どっちもフラッシュROMだからデバッグが楽だし。入手しやすいよ。
>>616 16F84Aは駆動能力低いので、LEDをたくさんつなぐとすぐ破綻する。
グループピンに8個分集中するから、LED1個当たり 20/8/4 で 0.625max。
これ以上はグループ駆動にTrが必要だ。
まぁ普通はそうすると思うけど。
あえて全直結するならATtiny26(40mA/pin、合計200mA)
の方がずっとマシかも。
618 :
774ワット発電中さん :04/02/11 11:35 ID:Q/TndzQw
7セグメントLED用ドライバICを通常のLEDの数字表示用に使うってのは梨? アノードコモン、カソードコモンあるから気をつけて。
AVRを使っているのですが、IOポートが足りないため 一つピンでLEDの点灯とスイッチ入力を切り替えながら使おうと思っています。 この場合スイッチは 電源-プルアップ抵抗-スイッチ-IOピン と繋げば良いのでしょうか.
620 :
774ワット発電中さん :04/02/11 13:42 ID:Q/TndzQw
スイッチてのはDemultiplexer?
すいません接続しようとしてるのは機械的スイッチです。 この抵抗はプルアップなんて言いませんね。間違ってました
622 :
774ワット発電中さん :04/02/11 15:40 ID:nXeGaVLK
間違って書き込みボタンを押してしまった スレ汚しスマソ VCC | > > これがpullup抵抗 > | PORT---------------他の回路 | > > 出力時のポート保護のための抵抗 > | | SW | GND
624 :
774ワット発電中さん :04/02/11 17:37 ID:Yl7j4tP9
すみません スレ違いかもしれませんが・・・ CPLD(XC9572)なんですが、JTAGを使わずに プログラマで書き込みしようと 思っていますが、うまく消えません(消えないら書き込みもできません) プログラマは 当該ICには対応しているものなのですが・・・ PLCCアダプターもプログラマ純正のものです。 良きアドバイスをお願いいたします。 PICのポート数増大計画が暗礁に乗り上げてしまいました(笑・・
625 :
774ワット発電中さん :04/02/11 18:53 ID:fLScrYuv
PLCCアダプタは接触不良になりやすい。接点を良く見るべし。
627 :
774ワット発電中さん :04/02/11 19:05 ID:Yl7j4tP9
>>626 ありがとうございます
PLCCアダプターの簡単ソケット部だけ 日本橋に行って買って交換しました
無事直りました
お騒がせしました。
>627 行動素早いな。w 日本橋まで8分かよ
629 :
774ワット発電中さん :04/02/11 21:28 ID:GgKhXYnQ
>>625 ちょっとまえに、c2c、16F877でプログラム作った。
cだけだったけど、機能が限られてて、かなり癖がある。
けど、バグらしきものには遭遇しなかった。
本業じゃなくて、趣味でちょっと作るには、価格も安いし十分だと思うよ。
あと、日本語である必要なんて無いから、英語版で十分。
630 :
619 :04/02/11 23:58 ID:r9alJwSC
>>623 解説どうも。保護抵抗はプルアップより小さければいいんですよね。
631 :
774ワット発電中さん :04/02/12 00:02 ID:CnqxXDZP
632 :
774ワット発電中さん :04/02/13 20:37 ID:HLRYaAuk
picとAVRどっちがいいんでしょうね? 一見するとAVRのほうがよさそうだけど、PICのほうがずっと多く使われていると思います。 なにかPICのほうがAVRと比較して大きなメリットがあるのでしょうか??
>>632 自分の知ってる範囲では、
PICの利点
・情報が多い
・取り扱っている店が多く、入手性がいい。種類も多い。
・消費電流が小さい
・ノイズに強い
PICの欠点
・アセンブラがややこしい
・アーキテクチャがごちゃごちゃしてる
・Cコンパイラは有料。
AVRの利点
・アセンブラ命令がわかりやすい。
・制限のないCコンパイラ(gcc)が無料で使える
AVRの欠点
・メモリ効率が悪い(1命令=2バイト)
・消費電流がPICに比べ大きい
・情報が少ない
でも、最後は好みの問題。
マイコンの勉強ならPIC 少しでも高性能な物を苦労してでも作りたければAVR
PICのほうが多少メジャーだと思います。 16F84など、1Kワードまでしか使えないCコンパイラなら 無料で使えるものがあります。 アセンブラであんまり困りませんけどね。 マクロとリンカ使えばそんな感じに思えたかな。
>>634 マイコンの勉強ならAVRだ。
あんな、CMP命令もPUSH/POPも、テーブル引き命令も無いマイコンで
勉強しないでsくれ
AVRは上位マイコンのアーキテクチャをそのまま小さくした感じ。 PICは最初から小さいマイコンに特化した作り。 アトメルは小さいマイコンに力入れてないね。 マイクロチップはPIC命って感じ。
通販でしか物買えない立場で言わせてもらうと 秋月がAVRにおざなりなのが痛い。 最新AVRだと16MHzでPICの64MHz相当になるから、使い分けることが出来るんだけど 売ってるのはディスコンぎみのが大半だよな。
うむ、確かに。PICで入門すると変な癖がついちゃって普通のマイコンが 使えなくなる罠(w AVRは、最新チップを個人で手に入れるにはDigiKeyしか無いのが痛い。 売る気あるのか?
もうZ80で入門する人はいないのか。
単体のZ80は手に入らないからね。 あと、CPU単体では動かせないし、ROMライターも作らねばならないしで、 ウケがよくない。ワンチップですぐ動かせるようなものでないと見向きも されないし、買っていってもオブジェにされるだけだったりする。
年寄りの俺としては、Z80あたりが、CPUの便利さ不便さがちょうど良いバランスで
入門にはいいと思うけど。単なる回顧主義かな・・・。
>>642 さんのおっしゃる事も良くわかります。
でも、思うのですが、すぐに動いちゃうってのも、結構曲者だと思いますよ。
秋葉でKitを買ってきて、サンプル入れてお仕舞い。
悪いことに、組み込みCPUをナメちゃうんですよ。あー、簡単だ、って。
で、スキルシートに平気で書いてくる。CPU:H8 制御システムとか、ね。
動かせないで死蔵されたほうが、良い場合もあったりするのです。
趣味のマイコンいじりってPIC,AVR,H8以外に選択肢が無いような… ぶっちゃけPICとAVRは同じような物(全然ちがうけど)だから どっちかで入門して後は階段昇ってけばいいと思うけどなぁ。
645 :
774ワット発電中さん :04/02/14 19:38 ID:P4cvRTvo
Z80互換CPUのキットを技術評論社から買ってはんだづけしたことがあります。 一応、それが僕の「まいこん」入門なんだけど、すぐ挫折しました。 とりあえずPIC。簡単に組めるし、PCと秋月のキットがあれば楽チン。
647 :
645 :04/02/14 20:02 ID:P4cvRTvo
648 :
645 :04/02/14 20:15 ID:P4cvRTvo
>>643 私もZ80を使っていました。裏レジスターをつかって、RAMなしの
回路&プログラムを作ったこともあります。
このLSIは高いですが、ザイログから商社経由で販売されています。
でも、やっぱりZ80だと外付けのペリフェラルが肥大する事と、ROMもRAMも
用意しないとならないし、ROMライターも必要なので、結果としてコスト高の
割には大したことができないかなと思います。
ハードの壁をある程度越えてくれるC言語は、一度習得すると、PICであろうが
H8であろうが、AVRであろうが、難しさはあまりないです。現にこの3つは良く使ってます。
ヘッダーファイルの作成や初期設定方法、ポートマップとスタック動作、
ペリフェラルの動きを理解するかが肝かなと思います。
メモリーギリギリで開発するという事は最近殆ど無いので、尚更Cによる開発は
開発時間を短縮させるにも貢献しています。
この機会なので、挑戦したらどうでしょう。
>>646 手軽なら秋月のH8/3664。
ライターが要らない。
(基板に232Cコネクタつけときゃよろし)
650 :
646 :04/02/14 23:56 ID:CTX3k3k9
ちなみに3月10日の虎儀にH8が付くぞ
652 :
774ワット発電中さん :04/02/15 03:52 ID:C/22byEW
秋月のPicライターを壊してしまいました(たぶんDC逆接続)←アーーーマヌケ・゚・(ノД`)・゚・ 手元にある8,18ピン用に作ったシリアル接続PICライターを使ってなんとかPIC16C57を新規で焼き直したいのですが… 18ピンから28ピンに、なんとかつなぎたいのです 率直に言いますと どのピンをどーつないだらいいですか? 識者の方々よろしくお願いします_| ̄|○ヘコヘコ つーか、PIC使い始めてまだ7日あたりでこれでは先が思いやられるのですが(w 逆接続で壊れたであろう他のIC類は交換しますた
653 :
652 :04/02/15 03:54 ID:C/22byEW
追記 IC-Prog使ってます、16F84はきちんと焼ける状態です
PINICのhttp画面が開けなくなったよ・・・ pingは桶ーなのに。 nmapでポートスキャンかけてみたけど、TCPポートは開いてないっぽい。 Macから設定したのがまずかったのか、おかしなデータが書き込まれた模様。 (あるんですよね。Macのブラウザって、WEB通販のフォームとかでも化けて読めないものになってたりとか で注文が通ってないとか。)
655 :
774ワット発電中さん :04/02/15 05:08 ID:ZJTFiVkg
656 :
774ワット発電中さん :04/02/15 06:17 ID:ZJTFiVkg
電源くらいまともなのを用意しと(ry
>>654 PICNIC>config
***** Configuration *****
MAC Addr. :00-02-CB-01-10-76
[I]P Addr. :0.0.0.0
[N]etMask :0.0.0.0
[G]ateWay :0.0.0.0
[H]ttpPort #0
[L]CD Port #0
[P]arallelPort #0
[S]erialPort #0
こんなんなってました。こりゃつながらん罠。罠発見。
こんなに無茶苦茶な設定になってても、DHCPサービスが動いてるから、一応PINGはかえすんよね。
しかしIEはポート0に対応してないみたいでネット越しでは救済不能。
出荷リセットをハードウエアスイッチでかけられるようにファーム改造できるか調べてみよう。
659 :
652 :04/02/15 12:01 ID:C/22byEW
>>655 ぬおぉぉぉ〜そうなんですかー?!_| ̄|●il||li
仕方ないのでしばらくは8,18ピン工作に励みます・゚・(ノД`)・゚・
なるべくお金を掛けずに修理したいのですが1500円ならまぁ…いいかVerUPだし
いつか秋月に逝った時に買うです
>>657 すみません、そうなんです ついつい手元にあったコネクターを挿したのが事の発端
IBMのThinkpad用を挿していました。。。。。次回からは逆接防止ダイオードをはさむか
最近WindownsをアップデートしてCCSのコンパイル結果が おかしくなった人居ませんかー?
661 :
657 :04/02/15 12:51 ID:VstIvEzr
>>659 ACアダプタの間違い、僕も一度あります。
中国製のスピーカが、いきなり「ボン!」と2回。以降だんまり。
過電圧 + ±逆、で電解コンデンサ爆死...
# 同じ失敗はしたくないので、ついキツくなった次第す。
あきつきのPICNICはACアダプタ使用前提なのにダイオードブリッジに定電圧回路を内蔵してる。 最初はずいぶん無駄なことをしていると思ったけど、なかなか巧い仕様だと思うようになった。
たまに整流してないで、交流が出てるACアダプタもあるし。 保護回路入れるより整流回路入れて極性無視で使えるほうが賢いな。
ちょっとスレ違いながら電源ネタもうひとつ。 今PIC入門で定番のLEDチカチカ、で遊んでます。 たまたま手元に転がってた用途不明の(接続機器が何か忘れた)中国製ACアダプタ の話です。 OUTPUT:12VDC 200mA て書いてありました。 教科書はDC12V印加しる、だったので(78L05レギュレータ使用)、±を確認して 繋いでみました。 回路は正常動作しましたが、なにげに入力とグランドにテスター当てて見たら、 実測16.05V... 定格を見直すと、INPUT:120VAC 60Hz 6W です(アメリカ向け?) ちなみにこちら関西です。
>>664 200mA流れる負荷に繋いだ時の電圧が12Vになる。そういう意味。
>>664 200mA取ったときに12Vになるって意味だよね。
ACアダプタみたいに小さなドランスだと内部抵抗がでかいから
電流取ると電圧がガコンと下がる。
>>665 ,666
フォローありがとうございます
やっぱり基礎知識〜
逝ってきまつ
668 :
652 :04/02/15 15:23 ID:C/22byEW
漏れもチカチカ作ってます(W なんか面白い光り方ないかなぁと模索中 3色LEDの混色なんてのもやってみたい で・・・ASMってのは、まさに機械語なんだな(ボソ
機械語って言うのはバイナリーの数字そのものだよ。 DECのPDPでやってた頃は、777で無限ループ作って、ブレークポイントの代わりにしたりしたな。
俺はASMでしか組む気がしない。 Cぐらいは知ってるけど、目的の関数探したり仕様調べたり性能を評価したりしてるとぐったりで前に進めないからだが。
671 :
774ワット発電中さん&rlo;(`ゝ_,´ )&lro; :04/02/15 16:46 ID:+2lMmh3v
>>609 【PIC16F873データシート】
http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf INCF命令の実行結果はZフラグにしか反映されません。
Cフラグは変化しません。
【例】
list p=16f873
include "P16F873.INC"
org 0x00
Reset_Vector
clrf PCLATH
clrf STATUS
goto Start
org 0x2A
Start
clrf PORTB ;Clear PORTB
bsf STATUS,RP0 ;Change Bank1
clrf TRISB ;PORTB all outputs
movlw 0x80
movwf OPTION_REG
bcf STATUS,RP0 ;Change Bank0
Main
incf PORTB,F ; ここをPORTBが再び0になるまでぐるぐる回る
btfss STATUS,Z
goto Main
nop ; PORTB=0x00 状態でここに来る。
end
672 :
665 :04/02/15 17:18 ID:foIGn+/v
実は漏れも朝からチカチカ作ってたりw マスクのクリアランスをきちんと取ってなかったから、後からの修正が大変だった罠。 さて、今度は音鳴らしてみよ。
673 :
774ワット発電中さん :04/02/15 19:23 ID:C4kTGlYa
PCIのオススメ入門書ってありますか?
675 :
673 :04/02/15 20:35 ID:C4kTGlYa
「 P C I 」だったのか・・・・
677 :
652 :04/02/15 23:42 ID:C/22byEW
>>678 バブルのころショーウインドウ用の飾り物でこういうの流行ったね。
振り子が振れて残像でハート型が見えるやつとか。
モーターの回転数と同期を取るのが難しそうだな
>>677 リア厨の時にキットを見かけたのだが。
電光くんとかいう奴。
>>677 elmの中の人は、ふつーのDCブラシレスファンのフィンにLEDを仕込んでた(;´Д`)
683 :
774ワット発電中さん :04/02/16 15:31 ID:CzEmdr9j
20年ほど前の初歩のラジオに、棒にLEDを並べて、 LEDの光るタイミングで手を大きく振ると残像が…という 製作記事が載っていたのを思い出した。 当時は小学生だったので、金銭的にパーツがそろえられなかったが、 回路の動作を一生懸命勉強したっけなぁ。 今でこそ、PIC1個だけど、その製作記事では74シリーズのお化け だったと思う。 みんな、マイコンもいいけど、ディスクリートで作れるかぁ?
684 :
774ワット発電中さん :04/02/16 15:44 ID:4mjedZRy
EP-ROMで作って遊んだことはある。
>>683 つくれません…お金掛かりすぎます(w
でも、部品ストックには4000〜4511とかあれこれそろってたりする
4017で流れるLEDとか4015でサイコロとかあれこれ作っていた頃が懐かしい
686 :
774ワット発電中さん :04/02/16 17:02 ID:bVVDJfcw
>>677 素人です すみません
回転体の一箇所で原点を検出すれば良いんじゃないのかなと思い
ステッピングモータをCPLDで回しながら 原点をPICに割り込み
回してみたら ステッピングモーターの回転が遅く文字には見えなかったよ(はずかし〜
何か自分に言い聞かせて注視すると文字に見えたが 友人に笑われた(残念・・・
687 :
774ワット発電中さん :04/02/16 17:06 ID:bVVDJfcw
↑
>>686 ステッピングモーターは、軸を固定し
筐体に基盤を載せて(電池も含む)回転 (バランスが悪く低速回転なのに机の上を走っていたょ)
689 :
774ワット発電中さん :04/02/16 19:19 ID:+4x7/ULd
ニーモニック。。。わけわかんねぇ (´・ω・`)
690 :
774ワット発電中さん :04/02/16 21:28 ID:ID0870B/
mnemonic(ニーモニック)とopcode(オペコード)って同じ意味なの?
691 :
774ワット発電中さん :04/02/16 21:35 ID:/gYfBTVz
オペコードつうのはバイナリだよ。16進数表記でもいいけど。 ニモニックつうのは、アルファベットだよ。
>>690 ちゃうよ。たとえばPICだと…
MOVWF PORT0
っつ〜コードがあったとする。
「MOVWF」がニモニック、「PORT0」がオペランド。で、吐かれるコード「0x0085」がオペコード。
693 :
774ワット発電中さん :04/02/16 21:52 ID:dMJdcebC
RB1につないだLEDを一回だけつけるには どんなふうに書くの?
ATmega162のI/Oレジスタ定義ファイルって無いの? mega162.inc とかなんとかいうやつ。 ATMELのサイトでも見つからないんだけど... 自分で書けってか?
>>693 1回というのは?ワンショットという意味?
696 :
693 :04/02/16 21:59 ID:dMJdcebC
>>695 そうでつ
一発ぽかりと点けるにはどーしたらいいんでしょうか
まずは基本からやりたいので エヘヘ
>>696 言語は?アセンブラ?
www.picfun.com なんかは見た?
こりゃすごいページですね ありがとうございます!
>>696 テキトーにコピペ(先頭のラベルは空白の代用)
HOGE ORG 0
FUGA1
HOGE1 BSF STATUS,RP0
HOGE2 CLRF TRISB
HOGE3 BCF STATUS,RP0
HOGE4 CLRF PORTB
HOGE5 MOVLW FFH
HOGE6 MOVWF PORTB
FUGA
(この先、適当なループ処理)
GOTO FUGA1
んな感じすかぁ?この辺も定番みたいだけど。
わざわざありがとうございます さっきのページも見つつ勉強します _| ̄|○ペコペコ
701 :
774ワット発電中さん :04/02/16 23:18 ID:F93VbE0v
やっぱPIC難しい。
PIC専門のスレがあってもいいね(w
>>701 具体的に言うと、どこら辺が難しいのだろう。
オペコードは違うだろう・・・。 オペコードとオペランドで調べてみよ。
705 :
774ワット発電中さん :04/02/17 00:27 ID:d992bB32
>>703 人の書いたコードを読む気にならないトコ
706 :
703 :04/02/17 00:37 ID:l9j99MC6
.・゚・(ノД`)・゚・. 足し算からわかんねーや _| ̄|○人間やめてくるよ(w
PIC,AVR,H8全てに言えるけどアセンブラはそれなりに敷居が高いよ。 Z80でもいいから他のを何か一つでもマスターしてれば随分違うけど。 それでもCPUによって全然違うけどね。 で、どうすりゃいいかって話しだが 人の書いたコードを読むしかない。
709 :
699 :04/02/17 01:08 ID:MaP26MMN
さっき書いたの大外れですた(汗。 追試に手間取って、先程動いて安堵、です。 MAIN HOGE1 BSF STATUS,RP0 HOGE2 CLRF TRISB HOGE3 BCF STATUS,RP0 HOGE4 MOVLW H'FF' HOGE5 MOVWF PORTB HOGE6 CALL LOOP HOGE8 MOVLW H'00' HOGE9 MOVWF PORTB HOGE10 CALL LOOP HOGE11 GOTO MAIN (以下時間調整のループ処理) # スレ汚し失礼
>アセンブラはそれなりに敷居が高いよ。 そうかぁ?俺にとってはVC++MFCの方が遥かに敷居が高いけどなぁ。 アセンブラは何十個も命令がないから、慣れてくれば使いやすいよ。 直にCPUのレジスタとやり取りできるから、動作に対して安心感もある。 レジスタと少ない命令との間のやり繰りテクの問題だと思うけどなぁ。
711 :
703 :04/02/17 01:27 ID:ahLybjIC
いやPICも簡単なのは書けなくはないよ。 ただほかのと比べて難しいと思うだけ。 人のプログラムまじによみにくい・・・
>>710 電子工作しかやってないやつが、初めてプログラム(アセンブラ)に取り組むのは敷居が高いって意味。
コンパイラVSアセンブラってつもりはまったくない。
>>711 確かにコメントが全くなかったら、他人のプログラムは何やってるのかさっぱり分からないかも知れない・・・。
714 :
711 :04/02/17 01:34 ID:ahLybjIC
すまぬおれは703ではない。 705です
そもそものレジスタやらフラグが理解でけん 本買ってきます これくらいBASICみたいなもんだろ〜と思っていざやってみると 挫折 あああぁ〜
漏れは趣味の電子工作からプログラマ→SEになった口だが 最初にやったのは、むしろアセンブラだからとっつきやすかったと思っている。 (いまはオブジェクト指向だなんだってやってるわけだが、最初はバリバリ制御だった) 高級言語になればなるほど概念が抽象的で、電子工作の延長では考えにくくなる。 (頭を使う場所がぜんぜん違うというか) 抽象概念ではなく、実体のあるなモノとしてでないと考えられないというタイプの人には、 アセンブラの方がわかりやすい。
>>716 そうだね。例えばCのポインタを難しいという人が言うけど、
マイコンから入った人はポインタは概念でなく
メモリとアドレスという実体として考えられるから難しくはないね。
オブジェクト指向スクリプト言語のRubyのコミュニティには、 昔アセンブラばしばし、なんて香具師が以外と多い模様
くそう、遂に±間違えちゃったよぉ(泣 PICは大丈夫だった(別の基板で正常動作した)が、レギュレータが逝ってしまった(みたい) 次は入力にダイオード噛まさないと(ワンダーキットはそうなってた)
720 :
774ワット発電中さん :04/02/17 11:30 ID:zumi+ddN
>MOVWF PORT0っつ〜コードがあったとする。 >「MOVWF」がニモニック、「PORT0」がオペランド。 そーゆーバランスの悪い表現はヤメレ。バカだと思われるぞ。 オペランドというからには 開いてはオペレーターだろが。 ニモニックってのは英語なんだから意味くらい調べてね。 PORT0だってニモニックだ。 そいからC言語のポインタはアセンブラ的には間接アドレッシングにすぎず 抽象化が難しいからマイコンアガリは構造体で憤死する。 ルビーについては公の場で話題にすると荒れる。 ルビーマンセィな奴ってバカ。
>>720 突っ込みをするなら正しく指摘しよう。720な書き方だと720も馬鹿だと思われるのでやめようね。
オペランドは、演算処理対象(被演算子ともいう)のことを指して、port0も演算対象(mov命令の演算対象だな)なので、
オペランドで間違いではない。ちなみにオペレータは演算子といい、アセンブラよりも高級言語でお目にかかる方が多かろ。
port0+30h という書き方があるとすると、port0と30hはオペランドで+がオペレータ。
オペコードは操作命令自体のことを言う。16進表記のマシンコードの事ではない。
MOVWFがオペコード、port0がオペランドとなる。
ニモニック(mnemonic)は記憶術という意味で、人間が覚えやすいようにするもの。
たとえば、(例がマイナーな6502で、すまんが)
A9というコードがあるとする。このコードはアキュムレータAに、このコードに連なる1バイトの値を代入(即値代入)する命令で
記憶しやすいようにLoaD accumlatorA #→LDA #というニーモニックであらわされる。
んでもって、構造体はフレーム化されたIndexed indirect修飾(ポインタ)だったりするので68系にはそんなに難しくなかったりするようだ。
>>720 アセンブラは演算子(演算命令ではない)が無いから、オペレータは存在しない。
命令=ニモニック、命令の対象=オペランド。アセンブラの世界ではこういう定義。
つか、PICのインストラクションセットサマリーにも書いてある。
>そいからC言語のポインタはアセンブラ的には間接アドレッシングにすぎず
>抽象化が難しいからマイコンアガリは構造体で憤死する。
禿同。漏れもちとはまった。Z80とか、8086リアルモードのFARポインタはまだ
良かったけど…ま、もうアドレス直叩きとかしないから関係ないけどね〜
>>721 オペコード=operation code=実行コード。バイナリだよ。
>port0+30h という書き方があるとすると、port0と30hはオペランドで+がオペレータ。
厳密にいうと、+はプリプロセッサに与える演算にすぎない。オペレータとは言わない。
EQU擬似命令はプリプロセッサで展開されるから、実際には、MOVWF PORT0+0x30は
MOVWF 0x35(16F84の場合)でアセンブラに渡されて、0x00B5というオペコードが
生成される(ちなみにラベルは相対アドレスで振られてリンカで決定)
Z80のザイログだと、「LD HL,0000H」なんてコードだと、「LD HL」までがニモニック、
「0000H」がオペランド、で、「21 00 00」がオペコード。
たとえば1981年のZilogの Data BookでZ80のところは Nmemonic 欄は LD r、(IX+d) Opcode 欄は 11 011 101 01 r 101 <--dーー> という書き方だね。 >マイコンアガリは構造体で憤死する 実はIntelのアセンブラ(ASM86など)だとSTRUC〜ENDSTRUCで 構造体が使えるんだよね。試したことはないけど、MASMでもでき るんじゃないかな? リアルタイムOSなんか書いている時には便利だった。
マイクロチップのロゴって、モスバーガーに似てるよね。。。 PICアセンブラでは構造体なんて無縁だけど、masmではフルサポートで 普通に使われていたけどなぁ。たとえば、 mov bp, offset struc1 ; ptr = &struc1; mov al, [bp].member1 ; reg1 = ptr->member1; てな感じで。
726 :
774ワット発電中さん :04/02/17 15:36 ID:9GDRYlBw
721の >ニモニック(mnemonic)は記憶術という意味で、人間が覚えやすいようにするもの。 これは正しい。 その他の部分、他の奴のカキコはみな当人たちの思い入れ。
おい、オマイラさん。CPUの基礎からやり直した方が良さそうなのがいっぱいですね。
>>721 の
MOVWF port0で
>MOVWFがオペコード、port0がオペランドとなる。
が正解だよ。あるいは、例えばオペコードに、その次の第一アドレスも含むこともあるけれど。
MOVWF port0だと、最初にやるのは命令フェッチサイクル
CPUがMOVWF(オペコード)のデータレジスタへの取り込みだろ、そしてこれをインストラクションレジスタに流し込む。
で、命令デコードして、stege処理に移してフェッチサイクルの最後のstageでプログラムカウンタを+1する。
その値をアドレスレジスタに流し込む。そして次の実行サイクルでアドレスすなはちport0(オペランド)をデータレジスタに取り込む。
でこれをレジスタトランスファレベルの処理に移す。
今の例は、あくまでMOVWF、port0ともにxxhの場合の8bit命令取り込みとした場合の例だけど・・・。
16bit取り込みなら、フェッチサイクルでMOVWF port0を一気にインストラクションレジスタまで取り込み、命令デコーダにはMOVWFだけ掛けて、port0は、MOVWFの命令デコード結果の各stage制御によりレジスタトランスファ処理し、CPU内バスに載せWレジスタまで移動させる。
_| ̄|〜...○ さっぱり何書いてあるかわからん みんなどーやって理解してるんだ?! ・゚・(ノД`)・゚・
>>728 何が分かりません?
とりあえず、分からないコードをアップローダで揚げて、どの部分が分からないかを・・・。
>>723 だから、”高級言語で見られる”と書いたじゃろ?
みんな親切でつね つД`)グスグス もう少し粘ってあれこれ探してみたいと思います
734 :
732 :04/02/17 16:58 ID:UZAIrLH9
736 :
774ワット発電中さん :04/02/17 18:01 ID:AtXt2PnB
PICのアセンブラだが、純正のMPASMをとりあえず使うことを勧めておく 秋月のライタ買うと、dos用のPAとかいうのがついてるけど アレに慣れると、あとあと苦労するので……
>>710 PICの場合、幸いにも統合環境でシミュレータがついてくるので、
1ステップずつ進めればフラグの様子とかがよくわかります。
というわけで、実機が無くても、小さなサンプルプログラムをシミュレータの上で
動かしてみましょう
>そもそものレジスタやらフラグが理解でけん て、書いてた人がいるけど、レジスタはCPU内で後で使うデータを溜めておく物だよ。 また、レジスタには直にPINにでてる物もある。PORTA,PORTB(各8bit)がそれで、値を入れて、PA0〜PA7,PB0〜PB7の各8bitに出力出すこともできるし、 PIN入力を見て、レジスタ値を取り込むこともできる。入出力はどう切り替えるか。PORTA、Bはこうなってる。 双方向トライステートバッファ | ___|\___ | |/ | | | | /|_|  ̄ ̄\| | バッファの脇からでてるのがステート入力で導通か断線を決める。従って、バッファ1個に対して出力を0/1/Hiインピダンス(断線)の3状態選べるからTriStateバッファと呼ばれる。 で、ステート入力を操るのにどうしたら良いか。これ用にレジスタがあるんだよ。 詳しくはPIC買ってレジスタマップ見て欲しいけど、アドレス85h(TRISAレジスタ),86h(TRISBレジスタ)てのがある。 この1bitづつがPORTのステート入力に対応してる。0を立てれば出力に、1を立てれば入力になる。 この様に、制御用のレジスタもある。制御用のレジスタで特に使うのがSTATUSレジスタ(03h,83h。各8bit) ここに各種フラグが入ってる。この内、Cフラグ(0bit目),Zフラグ(2bit目)は条件ジャンプ命令で使う。(これよりよく使うのがビット検査条件ジャンプ命令、どのレジスタのbitでも使える) Zは計算結果が0の時1が立ち、キャリーは、ビットシフト命令ってのがあって例えばレジスタを左シフトすると 「 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| □←□□□□□□□□←| C 7 0 となって7bit目がCフラグにスライドする。 後、レジスタマップ表見て分かるけど、アドレス00h〜7Fh(PAGE0)、アドレス80h〜FFh(PAGE1)はページ切り替えしないとお互いのレジスタにアクセスできない。 これは、STATUSレジスタのbit5のページ切り替えフラグを0にするとPAGE0に1にするとPAGE1のレジスタにアクセスできる。 だから、ステータスレジスタはPAGE0(03h),PAGE1(83h)に計2つある。PAGE1にいる時、PAGE0のレジスタにアクセスしたいなら83hの5bit目を0にするっていう要にね。 こんな感じで、要所を含めてレジスタとフラグの役割を書いてみたよ。
トラ技でPIC入門連載してまつ。 1、2月号はPICの仕様だとかMPLABの設定とかだから今本屋にある3月号 から読んでもOKかと。
741 :
739 :04/02/17 19:01 ID:UZAIrLH9
>>739 に追補で書いておくけど、
STATUSレジスタのアドレス03hと83hの内容は全く同じだよ。
おそらく、CPUの内部構成で03hのイメージを83hに出してるのだろうね。
あと、とてもよく使うと書いたビット検査命令(BTFSS:レジスタのビットが1なら1命令スキップ、BTFSC:ビットが0なら1命令スキップ)についてだけど、
これは条件が合った時1命令しか飛ばないからプログラムにちょいとコツがいる。
例えば、PORTAを入力にセットして0bit目を見るとする。
BTFSS 05h,0//05hはPORTAアドレス。0bit目が1なら1命令スキップ
・・・・・・・//0bit目が0の時の処理
・・・・・・・//↓以下0bit目が1の時の処理
・
・
というように0の時の処理が一行しか与えられない。どうしたら良いか。
BTFSS 05h,0//05hはPORTAアドレス。0bit目が1なら1命令スキップ
GOTO ZERONOTOKINOSYORI//0bit目が0の時の処理へ飛ぶ
・・・・・・・//↓以下0bit目が1の時の処理
・
・
ZERONOTOKINOSYORI//0の時の実際の処理ルーチンのラベル
・
・
・
というようにGOTOでラベル飛ばしだけ行ってやる。
同様のテクは割り込みでも使う。割り込みの時はプログラムメモリ(今まで書いたワークメモリ・レジスタ領域とは別の領域だよ。プログラムが書いてあるメモリ。自分が書いたプログラムは、この5行目05hから書かれてる)の4行目04hに飛ぶ。
で、この次は5行目のプログラムの初めにスライドしてしまうから、4行目に処理ルーチンのラベルへのGOTO命令を書いておけばいい。
で、処理ルーチンの最後にRETFIEとやると、自動的に割り込みが掛かった時の次の行に戻ってきてくれる。
実は、割り込みかかった時にCPUが次のアドレスをスタックメモリに退避しておいてくれているんだよ。
この部分はCPUが自動的にやってくれる。しかし、他のレジスタ類は何もやってくれない。
当然、割り込み中に本プログラムのレジスタ値を書き換えられてしまう可能性もある。
だから、割り込み処理ルーチンの最初に、今まで使ったレジスタを書き換えられないようにワークメモリ(PAGE0の0Ch〜4Fh。人間が自由に使える領域)に退避するコードを書き、
ルーチンの最後にそれらを元の場所に戻すコードを書く、そしてRETFIEする。そうすれば、本プログラムに戻った時に何事もなかったように処理を再開できる。
CPUの中の人の作業を体験できるシミュレータとか無いかな
743 :
774ワット発電中さん :04/02/17 19:42 ID:xXCSAroV
なぁ、H8とAVRの比較ってどんな感じなんだい?
H8がやまとなでしこ、AVRがカウガール という感じ
>>742 http://www.ics.kagoshima-u.ac.jp/edu/expII1/ これのマイクロプログラムのところを74シリーズのディスクリートで作って、ステート信号(ここではマイクロ操作とある)を各所のGATE(FF,ラッチでいい,PCはカウンタだけど)、MUX(マルチプレクサ)に飛ばしてみなよ。
それがマイクロプログラムの一行が1STAGEのステート操作となる。
1ステージ(マイクロカウンタのm行目とする)実行中に次のステージ(m+1行目)を行い始めて、m行目のステート信号でm+1行目のステート信号をレジデュアル制御してやればパイプライン制御になるぞ。
仮想メモリ、キャッシュの予測機構、ハッシュ機構やスーパースカラーなんかには遠いけど・・・(現x86)
>>742 >>738 が書いてるけど、PICの統合開発環境MPLABに
PICのエミュレータがついてるから、それを動かしてみるっていう手もあるね。
ステップ実行とかできるよ。
>>743 ベンチマークを取るとクロックあたりの性能は同じくらいだったと思う。
AVRは大規模なものは手に入れにくいので、20,28pinのDIPを小規模な工作に使い、
プログラムサイズが8K以上くらいだとH8の出番かな。
H8はマイコンボードだから物理的にも小さな工作には向かないね。
へえコンテストなんかあるんだ
750 :
774ワット発電中さん :04/02/18 00:37 ID:b7CMizSv
>747 TQFPとDIPでは県下にならないのでは? 性能面で割り込み処理のオーバーヘッドとかはどんな按配でしょか?
住み分けはされてるね。 割り込みの話はパス。H8は使ってないから。 でも両方ともベクタ式だし悪くないんじゃない? あでもH8は20サイクルくらいの命令が有るな
AVRでもmegaシリーズなら掛け算がある。 割り算はH8にしかない。でも符号付で24クロックは遅すぎ
_| ̄|○四則の演算すらだめぽ 消防からやりなおしだね
>>754 これ知ってるかい?
例えば足し算する時、CPUは同時に2つの値をALU(演算回路)に入れられない。(順番にしか操作できない)
じゃぁ、どうするか
B__ __A
| |
| |アキュームレータ
| □←ーーーー
| | |
| ̄ ̄ ̄\/ ̄ ̄ ̄|_|結果
| A L U |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
となっている、まずCPUはAをアキュームレータに溜めて、次にアキュームレータはALUにAを送出し続ける。
その間にCPUはBをALUに入れる。結果はまた、アキュームレータに返ってくる。(次の計算に備えるため)
アキュームレータはPICではWレジスタだ。従って、足し算ならAをまずWに入れとく。そしてWとどこかのレジスタの中身Bを計算させる。
ADDWF Bのあるレジスタアドレス,W
もしくは定数とAを計算させるなら
ADDLW 定数
結果はWに入っている。(Aは消えている)
756 :
追補 :04/02/18 17:15 ID:CpX4OVfJ
>例えば足し算する時、CPUは同時に2つの値をALU(演算回路)に入れられない。(順番にしか操作できない) というのにはちゃんと理由がある。 CPU内も基板上と同じようにバスになったる。 たとえば _____ | PORTAレジスタ|Aが入ってる|ーー|  ̄ ̄ ̄ ̄ ̄ ̄ | ______ | PORTBレジスタ|Bが入ってる|ーー|  ̄ ̄ ̄ ̄ ̄ ̄ | |ー| | □アキュームレータ | | | ̄ ̄ ̄ ̄| | ALU |  ̄ ̄ ̄ ̄ ̄ この図を見ただけで、AとBは同時にCPUが移動できないってわかるだろう。 移動させてるのは何か、ADD命令が命令デコードされて、その結果であるステート信号により、それぞれの部位のゲートを開いたり閉じたりしてデータを移動させてる。 これをレジスタトランスファという。CPU内での実際の処理はこんなんばっか(レジスタトランスファ)だよ、てか皆これしかない。 すべての命令について、ほんとにレジスタトランスファかどうか確認してみるとおもしろい。
757 :
+-/* :04/02/18 18:17 ID:ww3z8ZGj
_| ̄|○! なんとなくわかり始めたかも を〜 なんとなく快感(w ありがdございます
758 :
774ワット発電中さん :04/02/19 19:33 ID:GeWIWxNv
systemout でぐぐると詳しいページが出たぞな
759 :
age :04/02/19 22:59 ID:xQ0RYJB0
AVR Studio4をつかって、アセンブラでプログラムを始めたんですけど、 ビルドしてエラーがでたときに、どこの行が悪いかの表示がされないんですよね・・・。 エラー数だけは表示されるんだが・・・。 なんでだろう?激しくデバッグしにくい。。。
>>759 アセンブルリストを見るのが普通。
ラベルミスってるとどの行かは出なかった記憶があるけど。
761 :
age :04/02/20 00:05 ID:mUGS5eKE
どこかのHPで、「Project Outputウィンドウのエラー行をダブルクリックすることで、 エラー行へ自動的にジャンプする事が出来ます」と書かれているのをみたんです。 私の環境はできないので、どうしてかなあと・・・。
762 :
774ワット発電中さん :04/02/20 17:07 ID:bmPxHYzN
はじめてのPICマイコン 買ってキター(´∀`)ーー! とりあえず読む 光るサンプルが少ないカモ(w
766 :
774ワット発電中さん :04/02/21 01:07 ID:9UK4lxa1
初心者です。 PICの12C509AをつかってLEDを流すようにしたいのですが、ネットでサンプルがないか探したのですが、なかなかありません。 いいサイトやいい案がありましたらお願いします。
767 :
774ワット発電中さん :04/02/21 01:19 ID:NdNkdqQt
LED流すくらいだと、逆に簡単すぎて サンプルも無いと思われ。 パターン出力→待つ→パターン出力→待つ→ の繰り返しでは だめなの?
Microchipのデータシートを読めないなら、作例や教科書の多いPIC16F84A あたりが適当かと。
>>766 12C509Aはプログラムミスしたらゴミになるから初心者むけじゃないと思うが。
771 :
766 :04/02/21 02:00 ID:9UK4lxa1
>>769 16f84aも考えていたのですが、大きさの問題で509を選びました。
>>767 いろいろなパターンを出したいです。基本がわかるようになったら、ランダムに光らせたり、早さもランダムにしたいと考えています。
>>769 ミスをした場合はお金がかかりますが509にしました。省スペースにおさめたいので、発振器が内蔵されてるからこちらがいいと思いました。
772 :
774ワット発電中さん :04/02/21 02:06 ID:oEf0D9th
今時フラッシュ使わないなんて信じられな〜ぃ
>>771 別に1種類のPICしか使っちゃいけないってわけじゃないし。
16F84AでPICマスタして、希望のソフトを開発してから12C509Aに移植するのが早道だと思う。
どうしても12C509Aしか触りたくないんだったら、エミュでしっかりテストするんだね。
775 :
774ワット発電中さん :04/02/21 02:37 ID:oEf0D9th
人間絶対ポカやります。 3個くらいでとりあえず動いたら凄いラベルだよ。 漏れなんかROMのライフ一杯やっちゃうもんね。
>775 一瞬見て、>ROMのライフ って PICライタのライフ と考えてビックリ〜した。(w
>>775 漏れは100回とか脅されるのでH8が恐くて焼けないw
トラ技のは1000回って書いてあるからやっとH8入門できるyo
まぁ、いいんじゃない? 世の中にはリッチメンも居るという事で。
18ピンの丸穴ソケットがへたって来た(妙に抜けやすい) 気がする ので、日本橋に逝ってきました。 ゼロプレッシャソケットを検討しに。 値段表をみてがっかり。税抜き1800円也。。。 ダメだこりゃ。
>>779 丸ピンソケットの上に平ピンを刺せば平ピンが甘くなってきた時に捨てればいいのは?
781 :
774ワット発電中さん :04/02/21 11:36 ID:xiUxOLLy
内容:
>>777 H8/Tinyのデバッガー(E10T,E7)だと、ステップ実行のたびに FLASHを書き
換えているよ。
書き換え可能な実力値はかなり大きいけど、保持能力の保証ができない、
ということらしい。ということで「デバッグに使ったチップは出荷するな」
とも書かれている。
PICライター買う(or作る)としたらどれがいいでしょうか?
秋月の本体,VerUp,ケーブルで1万近くなるんで
USB接続&電源不要のこっちの方が
http://www.binarylab.jp/kit.html 良さそう。
ただこのキット以外販売中止なので会社の未来が不安
BBSの書き込み見ると対応は良さそうです
他にWindowsで使えて16F84A,648A,12F675が焼ける
(出来れば16F88も) いいライタありませんか?
784 :
779 :04/02/21 12:09 ID:z2Y9rYpz
>>780 どもっす
筐体サイズは...何とか収まりそうだ
786 :
774ワット発電中さん :04/02/21 13:23 ID:ZTzZtzDZ
>782 秋月で台湾製のライタ買え。純正とコンパチだ。
787 :
774ワット発電中さん :04/02/21 13:42 ID:fGLR/3Ab
>>786 純正のライタあまりメリットないんだよなー
中の亀の子基板も高いし。
シリアル接続では、秋月のが最強と思われ。
ところで、そのID、ある意味 神 だな。
788 :
774ワット発電中さん :04/02/21 17:12 ID:XNKkdFUJ
BSF STATUS,RP0 MOVLW B'00000000' MOVWF TRISB BCF INTCON,T0IE BCF INTCON,GIE MOVLW B'00000' MOVWF TRISA MOVLW B'00100000';プリスケーラ2 MOVWF OPTION_REG BCF STATUS,RP0 BCF PORTA,4 変数初期化 MOVLW D'251' MOVWF COUNT_T CLRF TMR0 BSF PORTA,4;ゲートを開ける BEGIN DECFSZ COUNT_T,1 GOTO CHECK GOTO OVER CHECK BTFSC INTCON,T0IF GOTO CARRY_UP NOP NOP GOTO BEGIN CARRY_UPBCF INTCON,T0IF INCF COUNT_H GOTO BEGIN OVER BCF PORTA,4 MOVF COUNT_H;上位8bitをWに格納 MOVWF PORTB;上位8bitを表示 CALL WAIT1S;二秒間上位8bitを表示 CALL WAIT1S MOVF TMR0;下8bitを表示 MOVWF PORTB CALL WAIT1S GOTO OVER なんですけど、 RA4をVccにプルアップ(周波数は0) して走らせても PORTB=01010010 と表示され固まります。 どこがおかしいのでしょうか?
>>788 MOVF COUNT_H;上位8bitをWに格納
MOVF TMR0;下8bitを表示
アセンブラはこの行について、なんか言ってない?
(実は、全く同じ原因ではまってた。ちょうど今、気が付いたw)
790 :
774ワット発電中さん :04/02/21 19:22 ID:XNKkdFUJ
,0付けわすれてました…恥 前作ったソース見たら書いてあったのに。 っさ周波数カウンタも出来たところで発振回路入門しますか。
791 :
774ワット発電中さん :04/02/21 21:31 ID:f/FlT62b
AVR入門をしようとしている者ですが、 windows2000上で使えるライタはあるのでしょうか? 検索しても「2000/XP」不可なんて話ばかりで・・・
793 :
791 :04/02/21 21:50 ID:f/FlT62b
>792 早速ありがとうございます。 やっぱり、実績あるものはないのでしょうかね・・・
794 :
774ワット発電中さん :04/02/21 21:52 ID:SO1l5GIi
秋月のって16F88焼けたっけ。
>>795 AVRって要求では?
純正ライターは確か対応の筈。 ライターのキットは色んな所で売ってるよ。
私は共立のを買った。 が、まだ組み立ててない。(死
なんてことだ。AVRについてじゃないか・・・。
>>795 ,
>>796 はあぼーんしてください。
ATMELに聞いてみては・・・。
AVRに限らず、ライターのXP対応って切実な問題じゃないのかな? 俺はWin98メインだからどうでもいいんだが。
ponyprogとそのライターならNT系でも使えるみたいだけど。 結構簡単な構造だから作ってみたら?
ponyprogってモルフィー企画でキット出してたやつ?
ところで、PA に慣れると後が辛いって話をよく聞きますが、 何ででしょう。「わかるPICマイコン制御」という本が読みやすかったので、 それを買ってきて AKI-PIC と PA でゴソゴソやっているんですが、 この本は PA が前提なので、とまどっているところです。
804 :
791 :04/02/22 07:00 ID:TtQlLrsX
皆さん、昨晩からwin2kの件で色々とありがとうございました。 しかし、こうやって調べていくとAVRはPICに比べて 情報量が圧倒的に少ないことに気がつきますね。 出版物も公開ライブラリも少ない、 昔からいう、「学ぶには良いプログラムを読め」を実践するにも、 そういう例がまた少ない。 「構造が素直だから」ということで皆さんお勧め下さるようですが、 この様子では、実は私のような入門者に適した素材ではないのかも。
>>799 切実なのは、最近のノートにはプリンタポートやシリアルが無いことだ。
まぁそれでもワンチップマイコンの書き込みはUSB/シリアル変換で大体OKなんだが、
USB/プリンタ変換では、CPLDとかの書き込みが出来ナインだよね。
ところで、アッチのスレで ルネサスのR8C/Tiny の話題がチラっと出たのだが、 これってどないなん?命令セットとかはマトモなん?
>>804 マイコン使った経験が一度でもあれば、
PICよかとっつき安いんだがのう。
使ってるパソコンがUSBしか外部ポートついてないので、
\4000で古い中古パソコン買ってきますた。
置き場所とれるならシリアル接続のライター買うよか安い。
>>804 そうか?
メーカーから提供されている資料をきっちり読めば、無駄金使うこともない。
解説サイトの数は少ないのはたしかにそうだが、珠玉のサイトばかりだ。
日本語に訳したメーカー資料を置いてる所もあるし。
ちょっとした温度計作りたくなってきた LEDの5段階表示に適しているA/D内蔵のPICでおすすめなんすか? 書き消ししたいのでワンタイムではいやぽ ロム消し持ってないので窓付きもいやぽ そんなに難しいこと出来ないので18ピン程度 無理を言うと2つ測定したい(w 16F84にプログラムでA/Dさせるって記事がどこかにあったなぁ・・・・・・・・ちょっとGoogってきます
>>806 ルネサスから資料落としてざっと見た感じだと、レジスタとポートが圧倒的に少ないな。
面白い機能もあるようだが、どんな応用をしたらいいかは思いつかんかった。
>>809 PIC16F819はどう?秋月で売ってるよ。
812 :
774ワット発電中さん :04/02/22 13:20 ID:YCMRzKWr
>>809 いずれもフラッシュ型、発振内蔵A/D付
PIC16F819(16F84とピンコンパチ、今後は16F88に期待)
PIC12F675(但し、トリッキーなI/O構成必要)
813 :
811 :04/02/22 13:35 ID:TrZl1JGR
便乗質問だけど、16F819は秋月のライタやJDMライタで焼ける?
>>791 おれもそう思って初めPIC使ったんだけど、PICで出まわってるプログラムって
トリッキーな構造や応用がしにくいプログラムが多くてあんまり役に立たなかった。
おれがアフォなだけかもしれんが・・・
結局AVRに変更したら、すぐ作れるようになったよ。
>>809 >>812 12F675で行けそうっすね。GP0-GP2をLED出力(Tip'n Tricksを参照)
GP4をA/Dで使用って感じ。
>>813 秋月Ver4+改造で焼ける
816 :
774ワット発電中さん :04/02/22 14:25 ID:YCMRzKWr
817 :
813 :04/02/22 14:32 ID:TrZl1JGR
>>815 ,816
JDMはだめなのかな。秋月のプログラマは高くて・・・
818 :
809 :04/02/22 14:44 ID:BS83z3Uu
>>819 こんなのがあるんですね、Tnx
>>812 いつのまにやら知らない種類が…(w
>>813 もれもJDMライタなので知りたい
>>815 え?12F67xで、いけますか?! ちょっとTip'nTricksとやらをを調べてきます 秋ライタ買ってくるかな〜ゴニョ
>>816 リンクのリンクでVer4の回路修正は助かったです、これで秋ライタ買える〜(藁
皆様多謝多謝!さらに資料探し逝ってきます
819 :
809 :04/02/22 14:52 ID:BS83z3Uu
>>818 あ、入力2系統なら、GP2の替わりにGP5を使ってLEDドライブ。GP2とGP4を
A/Dで使う。
821 :
809 :04/02/22 14:55 ID:BS83z3Uu
>>819 X
>>812 重複X
>>811 ですた スマソスマソです〜〜m(_ _)m
#4のPDFじゃないや#2だよ ああーもう慌てすぎ
首切って回線釣って逝って来ます
822 :
774ワット発電中さん :04/02/22 15:00 ID:GLXunFu+
だからさぁ PICをいわゆるマイコンとして捕らえたら不満タラタラなんだってば。 ノイマンタイプのコンピュータ的なマイコンが欲しいのならH8とか使いなさいって。
823 :
774ワット発電中さん :04/02/22 15:14 ID:YCMRzKWr
デバイスなんて適材適所で使うもの。 一つ覚えたデバイスでなんでもやりたくなるが、 例えば、PIC12F675なら、スリープにしちゃえば、0.01μA、で150円 これだけでも、かなりの応用例があると思うが。 H8はタイマーやPWMとかあるけど、所詮CISCチップ。そして個人で買える チップはローパワーでない。 一長一短を理解して使いこなすこそ、真のマイコニストになる。
>>822 昼飯抜けばPIC買えるがH8は無理だ。
この差は大きい。
825 :
774ワット発電中さん :04/02/22 16:37 ID:rIQB3eL4
PICは間違っても雑誌の付録につくことはないだろな
でもコンビニで500mlペットボトルのおまけに付くかもしれない
所詮趣味なんだから、何をどう使おうと各自の自由さ
んで、温度計の中の人はどこいったのかな?
831 :
774ワット発電中さん :04/02/22 19:42 ID:vwCd6xTk
電子回路をちゃんと理解している香具師なら秋月のらいたーをそこまでして使いたいとは 思わない筈だが。
>>823 CISCだRISCだというのは本質的な問題ではありませんよ。
RCDプログラマの注意書きから。 >パソコンのRS232ポートが低出力の場合は、このライタは不向きです。 最近のノートパソには、ポート無いか、有ったとしても低出力な可能性が大きいです。 きっちりと信号レベルが±12Vが出力されるタイプでないと無理かも。
レベル変換基板くらいは¥500もあればできるのだから、 1段かましてやれば問題なしだな。
>>835 でも、それでは無電源でOKというJDMの良さがなくなってしまうような・・・
USBポートから電源だけ取って昇圧するのがいいかもね。
838 :
766 :04/02/22 23:35 ID:HNqxXsht
レス遅れました、すみません 16F84Aでつくりました。↓これを509に移植したいのですが、 どうしたらいいのでしょうか? 教えてください。お願いします。
839 :
766 :04/02/22 23:36 ID:HNqxXsht
LIST P=PIC16F84A INCLUDE"P16F84A.INC" __CONFIG_HS_OSC & _WDT_OFF & _PWRTE_ON ;20MHz ;*********************************************** TIME1EQU0X0C TIME2 EQU0x0D TIME3 EQU0x0E ;************************************************** MAINBSFSTATUS,RP0 CLRFTRISB BCFSTATUS,RP0 LOOPBSFPORTB,0 CALLWAIT CLRF PORTB CALLWAIT BSFPORTB,1 CALLWAIT CLRF PORTB CALLWAIT BSFPORTB,2 CALLWAIT CLRF PORTB CALLWAIT BSFPORTB,3 CALLWAIT CLRF PORTB CALLWAIT BSFPORTB,4 CALLWAIT CLRF PORTB CALLWAIT GOTOLOOP ;************************************************** WAITMOVLW 0xFF;時間待ち MOVWF TIME3 WLOPCALL WAIT2 DECFSZ TIME3,F GOTO WLOP RETURN WAIT1 MOVLW 0xFF MOVWF TIME2 WLOP1CALL WAIT2 DECFSZ TIME2,F GOTO WLOP1 RETURN WAIT2MOVLW 0xFF MOVWF TIME1 WLOP2DECFSZ TIME1,F GOTO WLOP2 RETURN END
840 :
766 :04/02/22 23:37 ID:HNqxXsht
スペースが消えてしまったようです・・すみません
>>837 その昇圧にMAX232(コンパチ)を使おうと画策してる漏れ…下手なDC-DCより安いしw
秋月ライタ、最近の新しいデバイスに対応させようとすると 追加キットが必要ってのは厄介ですね 純正は高いし・・・ パラレル接続とかでトラ技に載ってるライタは安くあがるけど 新しいデバイス焼けないし、なんか良いライタないのかな
>>803 PAは命令数がMPASMより多い……というか、マクロで数値演算系の
命令とか実装してたりするから、PAで慣れてしまうと、MPASMの
ストイックな命令系に戻りにくくなるし、内部での動作をわからずに
プログラム書けてしまうことにつながる
PAは16F84とか、旧来からあるデバイスにはちゃんと対応してるけど
最近の16F88とかは未対応で、ようやく16F87xAに対応した程度だから
新しいデバイスを使おうとすると、MPASMしか使えないので
移行するときに困る
……ってのが理由じゃないかと思われ
>>841 電流をそんなに食わないならそれでいいと思うけど、
あれって結構電圧落ちなかったっけ?
無負荷でも9Vくらいしか出なかったと思ったけど。
845 :
766 :04/02/23 00:37 ID:LQUPA28J
>>845 ここまで書けたんなら、もう自分で移植出来ないか?
何がわからんのだ?
>>844 一応、データシートには13.5V出るって書いてあるから、大丈夫だと勝手に思ってる。
ま、やってみて、ダメなら別の手を考えるまで。Vppはそんなに食わないから、ま、
平気だと…
848 :
766 :04/02/23 01:40 ID:LQUPA28J
>>846 509の内部発振の使い方がわかりません。
TIME2 EQU 0x0D
この部分の”0x0D”はこのままでもいいのでしょうか。
CLRF TRISB
このTRISBは 509にBポートはないと思いますが、どうしたいいでしょうか。
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
このバンクの設定もこのままで平気なのでしょうか。
わからないことだらけですみません。
お願いします。
>847 >データシートには13.5V たぶん絶対最大定格の+Vの電圧でしょう。 チャージポンプは、VCC電圧の2倍しか出ませんので、+5V時は最大±10Vが出力されると思ってましたが。
850 :
774ワット発電中さん :04/02/23 02:17 ID:VQkAbrcu
>>848 普通は__config で設定するんだよ。
しかし、設定しなくても大抵書き込みソフトの方で設定できるが。
書き込む前にIntRC とか選択して、目的のプログラムを書けばよい。
ラフなタイミングとかなら特に問題ないが、通常は、プログラムメモリ最終番地に
内部発振回路の校正データが入っているので、もし、JW(窓付き)タイプで
消去するようなことがあれば、買って来たらすぐ最終番地を読んでおいて
メモしておいて、それから消し、書き込むときに再度その値を戻す事で、
内部4メガヘルツの発振が5%の精度で動く。それをしなければ20%くらい狂う。
シリアルとかに応用する時は要注意である。
もっとも、今更PIC12C509Aを初心者が使うのは、書き損じを大量に出すだけだから
薦めないけどね。やるんならPIC12F675にしろよ。同じ値段で何度でも書き直しができる。
851 :
803 :04/02/23 02:26 ID:lbG70rEu
>>843 なるほど。MPASMはマクロアセンブラじゃないのですね。
PAの拡張インストラクションを使うと、
演算とかも高級言語みたいにできますもんね。
ラクができるがゆえに、それに魂を引かれてしまうと。
よく分かりました。……しかし、どうしよう。
MPASM前提の本を買い直そうかな。考えてみます。
>848
データシートは、全部見れるようにしておくと便利。
ttp://www.microchip.com/download/lit/pline/picmicro/japan/40139cj.pdf >TIME2 EQU 0x0D
これは、CPUのクロックが20MHzから4MHzになる事を考慮して変更。
PIC16F84AとPIC12C509Aの命令実行のCPUクロック数をちゃんと比較する。
>TRISB
データシートの、5.0 I/ O ポートを良く読むと
GPIO(8 ビットのI/O レジスタ)のTRIS レジスタと言うのが有るよね。
PORTB => GPIO
TRISB => TRIS
>バンクの設定
図 4-3: PIC12C509(A) レジスタファイルマップを見ても分からなければ
もう一度 図 4-4: STATUS レジスタ( ADDRESS:03H)をよく見てお勉強しましょう。
温度計の人 LEDのレベル表示ならロームのBA6125なんてどぅ? PIC使わなくても・・・とPICスレでお勧め。
>>849 もう一回データシート読み直したら…出ないな。やっぱマトモに作るしかないか。
(田舎なんで、入手半導体に難が…。今日の帰りにパーツ屋覗いてこよっと)
>>854 006P+3端子レギュでいいじゃん。
書いてる時間なんて一瞬だし。
>>853 うははぁ〜 実は持ってる(w
勉強がてらにとおもったけどBAでとりあえず、作ってしまいそうな悪寒(www
_| ̄|○ ダメジャン
857 :
774ワット発電中さん :04/02/23 16:47 ID:BxSruEM0
>>854 山水のトランスつかってデコデコでっち上げろ。
装置の電源は単三がいいぞ。なんと言っても。
>>855 その手に気がつかなかった…_| ̄|○ 圧倒的にラクじゃん。
>>857 これは考えた(つか、こっち方面を考えてた)
さて、図面引きましょかね
859 :
774ワット発電中さん :04/02/24 11:38 ID:QjuwUfdK
最近ツクモでも取り扱ってるんだね。
安いよ
http://www.rakuten.co.jp/tsukumo/435956/497479/ PICマイコン学習キット:PIC-LK01
価格 3,500円 (消費税別・送料別)
手軽にPICマイコンの実験を安価で行う、ライター機能つき実験ボードキットです。
(ハンダ付けが必要です。)
RS-232C接続(パソコンのCOMポート)のICSP書き込みプローブと実験ボードの組み合
わせで、デスクトップパソコン*を用意するだけで簡単にPICマイコンの実験が出来ます。
*COMポート(RS-232Cポート)装備のAT互換デスクトップパソコンを使用してください。
USB−シリアル変換アダプタは使用できません。また、ノートパソコン装備のCOMポート
ではRS-232Cの出力電圧の都合上、使用できない場合があります。
PICマイコンは入っていません、PIC16F84Aを別途ご用意ください。 また、単三電池を
3本用意してください。
開発用ソフトウェアは、下記の各ソフトウェアを最新版をインターネットからダウン
ロードしてお使いいただきます。
Hitech C Compiler Cコンパイラ HI-TECH PICC Lite v8.02PL1
MicroChip MP-LAB IDE PIC開発環境 MP-LAB IDE 6.40
ICPROG ICSP書き込みプログラム ICPROG.EXE 1.05C
このキット同じ値段で マルツ、共立でも売ってたーよ。 かっちゃったーよ。 ACアダプタ使ってるけど。
861 :
774ワット発電中さん :04/02/24 13:03 ID:QjuwUfdK
862 :
774ワット発電中さん :04/02/24 14:27 ID:UkRxWsoU
秋月のPICアセンブラに慣れてしまいそうなんだが、今のうちに MP_LABに乗り換えた方がいいよね?
EMC(ELAN Microelectronics corp.)の奴ってどーよ? PIC代替できる奴があるらしいけど。
864 :
774ワット発電中さん :04/02/24 19:27 ID:OtYSqKWa
PICのタイマー割り込み中で、16bitの変数をインクリメントしつつ メインでその値にアクセスすると、タイミングによっては おかしな値に成ることがありますので、注意しましょう。 16bitの演算は、上位8bitと下位8bitに分けて計算するので、 その途中で変数を参照するようなタイミングだと、おかしくなります。 それが原因で、昨晩徹夜したのは、何を隠そうこの私です。 うーーーーっ眠い。
>>864 別に、PICに限った話ではないと思うが?
内部レジスタが32bit構成のCPUで、64bitカウンタを割込処理と通常ルーチンの双方
から、参照・更新すれば同じことが起こる。
>>863 EMCの8ビット版のこと?マスクとワンタイムだけ?
これだったらCypressのPSoCの方がずっといい。
>>862 私はPAと心中したくないので最初からMPASM(w
正直、DOSプロンプト使いこなせない初心者向けに PA勧める書籍もどうかと思うね パスが長いロケーションにPA.EXE置いて実行するとエラーになるし…… MPASMはMPASMで、デフォルトで吐くHEXの形式が 旧VerだとINHX8Mで、新しいVerだとINHX32っていうのが エラーの原因になりやすくて、なおかつ気づきにくい問題だね
キターーーーーーーーーーーーーーーーーーーーーーーーーーー ソースはネットから落としただけだけど LCDにHelloってだせたーーーーーーーー 感動した。よし、がんばろ。
870 :
774ワット発電中さん :04/02/25 01:17 ID:hXTRU5gA
871 :
774ワット発電中さん :04/02/25 09:44 ID:HqkP0iZ3
>>864 だからPICはヤめろといいたい。
素直に16ビットアクセスできるH8とかAVRとかにしろ。
873 :
774ワット発電中さん :04/02/25 10:59 ID:UWmqV6KK
つうかPICで割り込み使うという時点で終ってる。
874 :
774ワット発電中さん :04/02/25 11:56 ID:w8QpMq26
>>872 あふぉですか?おまえはAVR使ってろ。ヴぉけ。
入手性、価格、情報量共にはPICの方が圧倒的に軍配が上がるんや。
TPOで考えられないやつは氏ね。
875 :
774ワット発電中さん :04/02/25 12:18 ID:w8QpMq26
>>873 PICで割り込みも使えねえ香具師は、セレロンでLEDでも点滅させてろ!ヴォケ
876 :
774ワット発電中さん :04/02/25 12:29 ID:UWmqV6KK
PICで割り込み使えばPICの最大の利点を消すことになる。 スリープ以外の割り込みは本来邪道
>875 セレロンでLED点滅!それもある意味スバラスイ。 だれかやってけろ(w
878 :
774ワット発電中さん :04/02/25 12:30 ID:UWmqV6KK
PICの最大の利点 前にもかいたが復讐しておこう。 (1)止まらない (2)暴走しない この意味がわからない香具師はPICを使う意味がコストしかないってことになる。
何らかの原因で固定データ領域を実行しはじめてそこでたまたま 無限ループとか、CALLばかりするようなパターン(自分自身をCALLとか) とかされたら事実上止まってしまったのとか、暴走したのと変わらんと思うが。
割り込みやCALLを使わないで上から下まで一気に流れるようにしろと言っているんだろうね。
881 :
774ワット発電中さん :04/02/25 14:50 ID:w8QpMq26
882 :
774ワット発電中さん :04/02/25 15:23 ID:+BoqY7Kd
データをどこに配置しようがプログラマの支配事項だ。纏めて配置するのがバカなだけ。 PICの場合、兎に角プログラムエリアから読み出した命令を実行するだけであり 命令の切り取りがずれたという事は発生しないので、PICが実行する命令はプログラマが かいたコードだけと言い切れるんだよ。 他のマイコンやCPUなら、何かの拍子にRAMエリアに入りました!なんて事が無いと言い切れるのは 漏れは知らんが。あるのか? 割り込みについては、割り込みを使う以上割り込みハンドラが必要になるが、その際の処理時間等は 全てオーバーヘッドとなるわけだよ。 元々非力なCPUになんでワザワザオーバーヘッドを付け足すのだ?ということだ。 しかもハンドラ使う限り能力を超える割り込みが発生した場合にシステムはメタ状態に 入ってしまうことが多い。コンピュータ上でC言語なんかでのプログラム経験しか ないような奴だと使いモノにならない。 マイコンにはコントロールCはないんだってこと理解していない。
>>874 いや、だからTPOをかんがえて、16ビットタイマーが必要なら
PICはやめとけってことだ
PICのプログラムとにかく保守性最悪だからな...
885 :
774ワット発電中さん :04/02/25 18:06 ID:bzJPqEp+
低速ロジック用PLDみたいなものだからなあ
>>882 >PICの場合、兎に角プログラムエリアから読み出した命令を実行するだけであり
>命令の切り取りがずれたという事は発生しないので、PICが実行する命令はプログラマが
>かいたコードだけと言い切れるんだよ。
残念ながら、最近のPICはプログラム自身でコード(EEPROM)を書き換えられる
機能がついているので、言い切れないかと。
>>883 もう1回
>>864 を読め。
16ビット タイマー ではないぞ。
処理の途中で割り込まれたら困る処理の前後で割り込みの禁止と解除をするのは常識だろが。 お前等全員PICにあやまれ。
>纏めて配置するのがバカなだけ。 文字列データとか、データ変換テーブルも作れないのか。 そりゃあたいへんだ。 割り込みについて言えば、割り込みへの応答というものが必要 なんでなぁ。通常のルーチン側で手間隙のかかる処理をしている 時に、間でいちいちポートチェックのコードを入れるくらいなら、 割り込みを使ったほうがずっとスマートだし、効率がいい。
なんで3ヶ月以上もたってて総合スレなのに900もレスついてないのに 専門スレがたってるん?
AVRもハーバードアーキテクチャなんだけどなぁ 惑星探査でもしたくなったらPICを使うことにするよ。
>>889 気にするな。
PICの話しかしたくないやつもいるんだろう。
892 :
774ワット発電中さん :04/02/25 22:24 ID:o+wTBEeq
>文字列データとか、データ変換テーブルも作れないのか。 >そりゃあたいへんだ。 半ばマジだが、その手の用途だとPIC使う理由が無いよ。 AD変換したデータもそのままホストに渡すのがイイよ。
>>892 つまり、PICはある程度の複雑さを必要とする処理には全く向いてない、
超低レベル処理のみ可能な超低機能デバイス、という結論でよろしいか?
#だったら、CPLD使う方がマシかもしれんな。
894 :
774ワット発電中さん :04/02/25 22:56 ID:vrAqbCoR
CPLD使うほどの事なら勝手にCPLD使ってろよ。 AVR厨とH8厨を隔離するために新スレができたんだろ。 元々PICは別スレあったし、 質問スレで聞いた方がレスついたしな。
895 :
774ワット発電中さん :04/02/25 23:39 ID:o+wTBEeq
CPLDで不得意な 長時間を扱うもの 状態遷移条件が複雑なステートマシンの実現 LEDやキースイッチなど人間相手の入出力インタフェース ADCでの計測値収集 なんかはPICの土壇場だ。
PICで文字列扱えるけどね。
897 :
774ワット発電中さん :04/02/25 23:54 ID:hXTRU5gA
>>895 土壇場…?
独壇場と言いたかったのかな?
CPLDはボタン電池じゃ動かせないしな。 PICの利点は低機能であること。
やっぱPICのほうが優れてる点わかんねー
900 :
774ワット発電中さん :04/02/26 00:33 ID:rHr4QovV
AVRやH8のほうがよくない?
>>901 優れてるとか、優れてるとかじゃなくて
使えるか、使えないかじゃない?
H8って動作クロックってどんなもんなの? PICみたいに1/4で動くの?
904 :
774ワット発電中さん :04/02/26 00:55 ID:mspi2LpI
いや、ズバリの周波数で動くよ
905 :
774ワット発電中さん :04/02/26 00:58 ID:rHr4QovV
3.58MHzとかの拾った水晶でもスパッっと16MHzで動くんだよね
906 :
903 :04/02/26 01:04 ID:oKFp0ZKm
H8はクロックどおりなんだ。 秋月のSH2の紹介に書いてあった >1命令1クロックで動作しますから、同一クロックのH8に比較して >4倍以上の高速処理が行えます。 はどういうことなんでしょう?
908 :
774ワット発電中さん :04/02/26 01:51 ID:mspi2LpI
H8SなどのRISC系のH8は、ズバリで動きます。 PICでは内部クロックは、水晶発振を1/4に、H8系では1/1で動きます。 さらにH8SやSHなどでは、内部にPLL回路があり、クロックの4倍とかで 動きますので、さらに早ーい。 1命令に対して何クロック必要かというのは、また別の問題。
909 :
774ワット発電中さん :04/02/26 01:53 ID:mspi2LpI
>>905 3.58MHzの水晶が16MHzでは発振しないでしょう。
言っていることがよくわかりませんが。
PICでは内部クロックは、水晶発振を1/4 これホントか?
>>910 4クロック1ステートだからそう言われることがあるだけでしょう。
913 :
774ワット発電中さん :04/02/26 10:08 ID:buNm2s0z
PIC,AVR,H8それぞれ良いところがある。 自分が使いたい奴、使いやすい奴を使えば良いだろ、 別に迷惑掛けてるわけじゃあるまいし、いちいち押し付けて来る奴ウザイ。
>913 もううんざりするくらい何度となく繰り返されてきた事なんだけどね(w 価格、入手性、性能など、TPOに合った物を選択すればいいだけだわ。 あえて比較するならそれぞれの土俵(得意分野)で比べてみたほうが建設的ではないか と思うよん。
>>912 海外の組込用のデバイスのコアで良く使われる8051なんかも
同じだね。もう、20年も使われているようなアーキテクチャ
なんだけど。
大きいやつだと、モトローラの88000シリーズなんかもそうじゃ
なかったかな。ハーバードアーキテクチャの32ビットCPUだし。
http://brandt.kurowski.net/projects/lsa/wiki/view.cgi?doc=207 >>914 それにTPOって言葉を使うのはちと違和感があるんだが。
どうも大人の判断って感じがするんだどね。
漏れ的にはPICはあまりにも浸透しすぎていてちょっと萎える部分
が多いかな。何をやろうとしても「こっちだよー」って案内板が立って
るような感じがしてね。便利なんだけども、感動が薄いというか。
LED点滅に続いて、PIC二個使ったキーボード/マウス変換アダプタ
を二つ目の作品として作ってからはあまりまじめに使ってないな、
そういえば。
>>906 パイプライン処理
1ステート1クロック
固定長命令
この辺がヒントだよ
PICって、カレーライスなんだよな。何にでも使える最大公約数的な。 だから、趣味に使うには「実現手段」として面白味に欠ける。 漏れはハヤシライスも食いたいけど、出してる店が少ない。
918 :
774ワット発電中さん :04/02/26 12:41 ID:h25oj3eE
1.クロック 入力クロックは内部でどう使うかはパフォーマンスとは関係がないんじゃない。 分周する理由は、50%DUTYのクロックを作ったり、クロックによるステートを使う場合ですた。 50%DUTYは内部にメモリを使う場合は、結構、重要だし、2倍のクロックだと内部ハードを 軽くできるからネ。 ま、PLLを使って内部周波数をあげるというばあいもあるからね。 ただ、周波数が高い場合はRFIなんかのノイズ問題を考えないといかんね・・ あ、XTALの価格かぁ・・ 2.ハーバードアーキテクチャ MPUの内部構成をすんなり考えれば、命令とデータのバスを分けますわ。20年以上前から、 MPUの内部バスは命令とデータに分けてあります。そんでIFでMUXすると。その理由はコスト の問題であって、パフォーマンスではないよ。
>>915 大人の判断って何。
TPOの意味わかってるか?
アーキテクチャがどうのってリア厨臭いぞ。
921 :
774ワット発電中さん :04/02/26 15:09 ID:NX/zEd2q
918はシッタカ
922 :
774ワット発電中さん :04/02/26 15:10 ID:NX/zEd2q
>919 それやると、特定の宗教を誇示するようなコテハンは禁止になるわけだね
923 :
774ワット発電中さん :04/02/26 17:24 ID:nzPpQBau
>>922 次はー個別スレにした方がいいと思われ
PIC 現存
SX
AVR
>>922 もめ事を起こした場合だけにしてくれよ。(w
>924 そーしたら、一端揉め事が起こったら収拾がつかなくなる。 一律に線引きして平時から対処しなくてはいけない。
宗教戦争を安直に禁止することはとても良くない。 それぞれの教義を知った上で「それでも漏れはモナが好き!」というのと モナが好きというのは宗教だから好くないとラベリングしてモナを知らずに おくのとどっちが技術進展に寄与するかは、明らかだろ。
>>920 一言で言えば「優等生的」ってことさね。
TPOは確かVAN時代の造語だっけな。
927ってバカ? 優等生的ってのは、先生が期待する言動をする香具師であって大人の対応ではない。 大人の対応というのは、勃たないチンコをやさしく撫でるような対応のことだ。 思いやりだよ。相手の立場を考え、逃げ道をふさがず、追い込まず。 アメリカがやってることの逆をやれば大人の対応だ
またわけのわからんことを。 PIC使いってこういうのばっかりなのか?
>>929 早くこのスレ終らせて、個別スレにしたいから回してるんだろ。
931 :
918 :04/02/26 20:11 ID:KPzlZ0K4
どっちも良いMPUなんだけどなぁ・・異なったものとしてみれば いいのに。H8は68000の8/16ビット判ってカンジがするけど。 そんなに対立することは無いでしょ?
この宗教戦争に意味があるとは思いたくないよ。(w
始まりはこれ。 頭悪い発言だな。 822 名前:774ワット発電中さん 投稿日:04/02/22 15:00 ID:GLXunFu+ だからさぁ PICをいわゆるマイコンとして捕らえたら不満タラタラなんだってば。 ノイマンタイプのコンピュータ的なマイコンが欲しいのならH8とか使いなさいって。
935 :
774ワット発電中さん :04/02/26 21:20 ID:e0iQ+xN1
>>923 H8スレが無いな。
トラ技付録スレをH8スレってことにするか?
>>935 先に機械板のを埋めればいいのでは。
わかりにくいかな?
機械板のほうは破棄したほうがいいんでない? 人少ないし。
>>931 喪舞い、68008の立場はどうなるんだよ
940 :
918 :04/02/26 23:23 ID:KPzlZ0K4
>>939 んな、68008は68000と同じチップだよ。モードピンをプルダウンすると
68008になるのだ。
え゛ 8008が6個入ったのと同等性能ってのはガセだったのか,,,
68008は6809キラー
>942 それをいうなら8088キラー
MSP430がお気になオイラは異端の罪で宗教裁判にかけられちまうな
>>940 それはEC000だったような気がする。
946 :
940 :04/02/27 09:30 ID:ePrtdhqy
>>945 あ、そうだっけ?ボンディングアウトしていないはずだよ。
68Kはバスサイジングは仕様にないからモードピンはないね。 EC000は、三線式のバスリクエストピンが二線に簡略化ではなかったかと。
おまえら、何回いえばわかる?PICの優位性は、AVRよりも前に秋月で 売り出されたことだ。AVRよりPICの方が後なら、今の天下は無い!
書き込んでから探してみたんだが PICの記事がトラ技に載ったのは1995/12月号だ。 この号は、もうボロボロで、広告が全部なくなってしまっていて この時の秋月の広告はわからんのだが、 1996/5の時点でも秋月の広告ではCPUといえば、PIC(16C84な)とAKI-80だ。 AVRとかH8が最初から出ていれば勝負にならなかったんだよ。
16C84って高いね
マイクロチップの営業もかなり頑張っていたよ。 マイコンとシーケンサの中間的存在で馬鹿みたいにパワーがあるって 言う売り込みだったと記憶してます。 ツールとか全て込みで五万、手作りなら只って言うやり方で一気に 浸透したのではないかと。 秋月のキット等が後押ししてる部分も大きい。
>>950 秋月で800円だった。つっかフラッシュのはこれしかなくて、
16C74JW(EPROM)が3000円だった。
それでもZ80ボードよりは安いので、ちょっとした治具(タイミング発生とか)に重宝したなー
>>951 おれは、秋月のキットじゃなく、PIC-START16Bだっけか。あれを共立で買ったなぁ。
定価30000円で、キャンペーン価格20000円だったような。
マニュアルとかが凄く重くて、女性店員が「重いですけど」と恐縮していたのを思い出す。
954 :
774ワット発電中さん :04/02/27 23:21 ID:KEUqTdYU
PICが時々リセットされたように頭から命令を実行し始めるのは何が原因ですか? 実機ではなく、MPLABでシミュレーションしてるときにです。 初期設定 kaisi hoge hoge 処理 goto kaisi って構文なのに、初期設定が頭から実行されます。
955 :
774ワット発電中さん :04/02/27 23:23 ID:tbD632Ag
石は何でつか?
956 :
774ワット発電中さん :04/02/27 23:32 ID:9HgZuIdv
>>954 mplabのバージョンは?
6.10以降なら、ウオッチドッグのシミュレーションをするので
__configで設定してやるか、
メニューのconfigure -> configration bitsでwatchdogを無効にする。
WDT切ったら治りました… お恥ずかしい。
948,949 PICは8051よりも前に存在したことをわすれていないだろうね?念の為に聞くけどさ。 1978年には既にあった。
Programmable Interrupt Controllerはあったな。
PIC1650シリーズだよ。 後にPICとスピードが改善されたくらいで殆ど同じだよ。
962 :
774ワット発電中さん :04/02/29 06:58 ID:h/3RZfcl
質問なのですが、PIC16F84で、 Aというサブルーチンから Bというサブルーチンをコールして、 Bの中からGOTOでCへ飛び、 Cの中のRETURNでAに戻る ということは可能ですか?
>>963 先のないモノに投資するのは止めとけ。
素直に秋月ライタに汁
>>964 可能。スタックを操作せずに済むことなら、再帰呼び出しでも何でも。
実行中のスタックレベルを考えればすぐ分かることなんだが。。。
966 :
964 :04/03/01 15:58 ID:yQSGmuGB
>>965 回答ありがとうございます。
サブルーチンをネストしていくとすぐスタックメモリがいっぱいになってしまっていたので、GOTOを上手く使ってスタックメモリの節約ができそうです。
Cで書いているのなら、淫乱展開をすればいいのでは?
>965 素直というなら秋月扱いの鬘屋だろ。 USBライタなんて言ってるけどUSB−シリアル変換を内蔵しただけ。 ハンパに人気が出て面毒なったから投げるなんていい加減な業者だよな
971 :
774ワット発電中さん :04/03/01 20:06 ID:eYCJOgrC
リープ
>>968 、
>>970 非常にポピュラーな12F629,12F675を使うとき、
このライタでは、改造しないと、内部発振で一度書き込んだものは焼けないからね。
このスレッドのどこかに書いてある。
もっとも、俺はこんなオモチャみたいなものは使う気になれないので、
秋月ライタにしたが。
975 :
774ワット発電中さん :04/03/01 21:16 ID:eYCJOgrC
>>973 うーん、分かりにく過ぎる隠語じゃないかと…
頭髪関連でリーブ21の存在って初めて知ったよ。
それにかつらじゃないし、そもそもリープでもないし…
で、LEAPだけどPIC Starterコンパチなんだってね。
今は秋月ライターを使っているけど、そのうち買おうと思ってる。
Microchip純正フラッシュファームも載せられるそうだし。
>975 カイロもまるで同じだよ。 PICマイコンは全部書ける 難点は17C44がワンタイムか窓付きしかないってこと。
977 :
774ワット発電中さん :04/03/02 00:43 ID:ZfvnnXm3
>977 わぁ! 知らなかったよ。17C44の最終版は3.11なんだね。 今後はいちいち蓋開けなくてもアプグレードできるんだね。 純正のR20逝こうは既に17C44の代わりに装着されているんだね。 コンパチでるのをまとう...
979 :
774ワット発電中さん :04/03/05 20:20 ID:Z07/wUxY
PIC初心者なのですが、みなさんはやっぱり遅延をする時は 内蔵タイマーをお使いになるのでしょうか? 命令実行時間を利用して遅延すると言う事はあまりしないのでしょうか?
>>979 内蔵タイマーを使うケースは、ウェイトをかけながら並行して他の仕事も
やりたい場合だけかな。それ以外の、一定時間が経過するまで何もせずに
ひたすら待つだけならループカウンタを使用する方が簡単。
他の用途にタイマーを使う必要があれば仕様変更で苦労することになるし。
変数(ファイルレジスタ)が不足して多段ループが組みにくい時に長い長い
ウェイトをかけたい場合というのも考えられるけど、出会ったことはない
982 :
774ワット発電中さん :04/03/05 21:43 ID:PO77z9ch
次スレはどうする? PICはすでに分離しちゃったみたいだけど、AVRスレとH8スレに分割したら閑古鳥が鳴きそう。 PIC以外のマイコンスレにしようか?
983 :
774ワット発電中さん :04/03/05 21:46 ID:pbxhKtER
>>982 PICとAVR、H8とSHが妥当な気がするけど。
その辺どうよ?
984 :
774ワット発電中さん :04/03/05 21:53 ID:PO77z9ch
>>983 それでも良いけど、PICとAVRはVS防止で分けたい。
それ以外のマイコンの受け皿も欲しい気がする。
PICスレ、H8+SHスレ、AVRとかその他マイコンスレ。
マイコン総合スレあたりでどう? PICはテンプレで誘導しとくとか。
漏れはPSoCの行き場がホシィしな PICとそれ以外っていうのでもいいけど。
折角の電気電子版なんだし細かく分けたいな、
俺は
>>984 の案で賛成。
988 :
774ワット発電中さん :04/03/05 22:41 ID:Z07/wUxY
>>981 レスサンクスです。
なるほど…通常は内蔵タイマーは使わないのですね。
勉強になりましたありがとうございました。
989 :
774ワット発電中さん :04/03/05 23:57 ID:5Wj0mxQh
細かくというと PIC12、PIC16、PIC18、PICプログラマ、PICADC編、PIC辺境系 こんなところかな? >988 時間がある程度長いのならタイマー割り込みにして寝る。
990 :
981 :04/03/06 12:32 ID:Vza7MBLN
PIC専門スレは寂れているような気が・・・
ここが埋れば移るだろう
>>986 興味はあるんだけど、デバイスの入手・情報共に海外に頼るしかないからなぁ〜。
経験者だったら色々情報書き込んでください、お願いします
トラ技・・・H8ボードが付録っていうビッグイベントの 影に隠れているけど、今月号からひそかにPSoCの連載 がスタートしてる・・・・
できるかどうか不安だけど、スレ立てていい? "AVR H8 etc. マイコン総合スレ" で。 もう限界だし。
ガンガレー
998 :
774ワット発電中さん :04/03/07 00:21 ID:csw5StC3
PICの後継スレもだれか頼むぜ。4スレだっけか
999 :
774ワット発電中さん :04/03/07 00:21 ID:csw5StC3
↓ 1000 オメコ
1000だね。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。