三端子レギュレータの本当の最大出力電流

TO-220Fパッケージの三端子レギュレータNJM7805は、最大出力電流として1.5Aを保証しています。しかし、現実的には三端子レギュレータの最大出力電流は、接合部温度Tjの定格によって制約されます。言い換えると、三端子レギュレータの発熱のほうが問題になるということです。今回は、接合部温度Tjの最大定格に起因する最大出力電流を求めてみました。


新日本無線のNJM7805のページからたどれるところに三端子レギュレータについてという資料があります。
この資料の中の「5. 放熱設計」が今回の話の核です。

この資料に沿って話を進めるに当たって、以下の条件を考えます。
(1)静的消費電流は無視できるほど小さい
(2)周囲温度Taはワーストケースを見込んで50℃
(3)最大出力電流を制約するのは接合部温度Tjのみ
(4)ヒートシンクを用いない

さらに、NJM7805データシートから以下の二つの条件を加えます。

(5)接合部温度Tj最大定格: 150℃
(6)接合部から周囲雰囲気間の熱抵抗θja: 60℃/W


001_20081112065401.png

002_20081112065407.png


この条件の下で、出力電流の最大値は以下の式で表されます。


_eq_biyo.png


よって、最大出力電流はΔVの入出力間電位差のみに依存することが分かります。
これをグラフにプロットしてみると、以下のようになります。


graph.png


以下に代表的な条件での最大出力電流を書いておきます。
以下に代表的な条件での最大出力電流を書いておきます。
・ 9V入力, 5V出力: 417mA
・12V入力, 5V出力: 238mA
・24V入力, 5V出力: 87.7mA
・24V入力,12V出力: 139mA

tag: 三端子レギュレータ 熱設計 

言葉

さて今回のトラックバックテーマは「大切な言葉」。

自分自身にかける言葉は、いつもある種の自己暗示なのではないでしょうか。
自分にとっての大切な言葉。それは、自分がこうありたいと願う指針のようなもの。
それが、以前誰かに言われたことであっても、自分で見つけたものであっても、心に残っているということは何か思うところがあったのでしょう。

さて、私にとっての大切な言葉は・・・

こまったな。いいのが思い浮かばないや。アドバーグ・エルドルの言葉でも引用してお茶を濁しとけばよかったかな。

こんにちは!トラックバックテーマ担当の水谷です! 今日のテーマは、ズバリ!「大切な言葉」です。 みなさんにとって、大切な言葉ってありますか?水谷には、いつも自分を励ます時に思い出す大切な言葉があります。それは『大切なことは、目に見えない』です。小説の『星の王子さま』の中で、キツネと王子との会話で『大切なことは、目...
FC2 トラックバックテーマ:「大切な言葉」

RCサーボモータの電流波形

RCサーボの電流計測では、RCサーボモータの電流波形が連続的なアナログ値ではなく、負荷に応じてDuty比が変動するPWM波形のようであるのではないかという話でした。
今回はRCサーボコントローラを用いて、電流波形の測定を行い、前述のことを確認しました。


◎実験条件
・RCサーボモータは三和電子機器のSX-101Zを使いました。
・RCサーボコントローラにはRCサーボコントローラで作成したものを使いました。
・RCサーボおよびコントローラの電源は三端子レギュレータで作成した6Vを使いました。
・電圧波形の計測はPDS5022Sに後述の電流計測アダプタをつけて行いました。
・サーボモータへの負荷は、手でかけました。

○電流計測アダプタ

001_20081112042810.jpg
電流計測アダプタの外観

002_20081112043445.png
電流計測アダプタの回路図


電流計測アダプタの回路構成は、標準的な非反転増幅回路です。シャント抵抗は0.1Ωでアンプの増幅率は11倍です。
出力電圧から電流を計算すると以下の式になります。


_eq_fyfb.png


オシロスコープで計測される電圧波形のピーク値が約800mVとすると、電流のピーク値は約730mAということになります。
しかし、今回は具体的な数値は参考程度にとどめ、電流の波形だけを議論します。

◎結果
○定常領域と過渡領域

003_20081112043452.png
定常領域

004_20081112043457.png
過渡領域


上の波形は、RCサーボの切れ角を変化させない状態で負荷をかけたときの測定波形です。確かにピーク値の変化しない矩形波になっています。
一方、下の波形は負荷をかけない状態で切れ角を変化させた際の測定波形です。パルス的な途切れ途切れの波形ですが、ピーク値自体も変化していることがわかります。

○負荷の大きさ

005_20081112043504.png
低負荷

006.png
中負荷

007.png
高負荷


上の3つは、負荷を変化させたときのそれぞれの測定波形です。

○切れ角指示信号とのタイミング

008.png


上の赤のラインが電流波形、黄色のラインがRCサーボヘの切れ角の指示信号です。電流のパルスは指示信号のタイミングと同期しています。


009.png

010.png


電流波形と指示信号のタイミングの関係を見るためにタイムスケールを拡大してみました。
電流の立ち上がりが、指示信号終了を待ってからになっていることが分かります。

◎考察
測定から、電流波形が指示信号のタイミングと同期をしていることが分かりました。このことから、RCサーボのフィードバックが指示信号のタイミング周期で行われていることが類推できます。
RCサーボの信号範囲のエントリから、RCサーボモータの切れ角はパルス幅のみに依存し、信号周期に依存しないことが分かっています。したがって、許容される信号範囲内でできるだけ高周波で指示パルスを送るほうが、RCサーボのフィードバック周期が短くなり有利だということになります。

また、電流波形の立ち上がりが指示パルスの立下りを待つということは、実際のRCサーボの反応も指示パルスの立下りを待つということです。これは言い換えると、RCサーボの中心切れ角から切れ角を変更したときに左右で反応速度が異なるということを意味しています。すなわち、パルス幅が短くなる方向への変化のほうが応答速度が速いということです。

まあ、どちらも現実的に問題になるレベルだとは思いませんが・・・

◎余談
余談ですが、オシロスコープのアクセサリとして電流プローブというものがあります。
その名のとおりオシロスコープで電流を測るためのプローブなのですが、PDS5022S程度で満足している素人が手を出すのは非現実的なお値段です。
しかしながら、今回使った電流計測アダプタ程度でも、それなりに役に立ちます。ちゃんとしたのを一つぐらい作っても良いかもしれません。


tag: サーボ PDS5022 

異なるGNDレベル間でI2C その2

異なるGNDレベル間でI2C その1にて、絶縁された2つの回路でI2C通信をするための回路を紹介しました。
しかしながら、シミュレーション結果によると、I2Cの標準モードである100kbit/sでも波形のなまりがはっきり見える比較的低速なものでした。送信クロックは10kHzなので、標準モードの10分の1以下の速度と非常に低速な条件でも波形がなまるというものでした。そこで今回は、この回路の高速化を考えます。と、言っても汎用フォトカプラを高速フォトカプラに変更するだけですが。


○低速版の問題点
もう一度、前回紹介した回路のシミュレーションを見てみます。


002_20081106233829.png

003_20081106233835.png



受光側の立ち上がり特性と立ち下がり特性を比較すると、立ち上がり特性のほうが悪いことが分かります。
これは、どうやら汎用フォトカプラの特性のようです。
以下に、TLP621のデータシートからの引用を示します。


001_20081107004354.png


○対策
そこで、ボトルネックとなっている立ち上がり時間(とついでにたち下がり時間も)が短い高速フォトカプラに変更すれば、高速化ができるのではないかと考えます。
以下に、高速フォトカプラの例としてTLP552のデータシートの引用を示します。


002_20081107004418.png


○TLP552使用高速版I2C絶縁回路

003_20081107004443.png


好都合なことに、オープンコレクタ出力なので直結できます。

○高速版の問題点
問題点の1つとして、シミュレーションモデルが無いので本当に高速化しているのかシミュレーションできてい無いと言うことがあげられます。もちろん実機を作って確認するのが一番なのですが・・・もちろんやってません。

また、この回路には決定的な問題点があります。すなわち、「わざわざ高速フォトカプラを調達するなら、素直にI2C絶縁専用ICを買ったほうがいい」と言うことです。

○付録
このエントリで使用した、BSch3V用TLP552の部品を添付します。枠の中のテキストをコピーしてBSch3V上で貼り付けすれば使えるはずです。

+BSCH3_DATA_V.1.0
+COMPONENT
+BSCH3_LIB_V.1.0
+PTN,N:TLP552,X:81,Y:81
+L,W:1,S:0,X:53,Y:60,X:45,Y:60,-L
+L,W:1,S:0,X:45,Y:60,X:45,Y:40,-L
+L,W:1,S:0,X:45,Y:40,X:53,Y:40,-L
+C,W:1,S:0,F:-1,X:68,Y:47,X:62,Y:53,-C
+L,W:1,S:0,X:68,Y:50,X:70,Y:50,-L
+AR,W:1,S:0,X:52,Y:50,R:10,B:4320,E:1516,-AR
+L,W:1,S:0,X:45,Y:50,X:40,Y:50,-L
+L,W:1,S:0,X:40,Y:30,X:40,Y:50,-L
+L,W:1,S:0,X:80,Y:30,X:40,Y:30,-L
+L,W:1,S:0,X:80,Y:50,X:70,Y:50,-L
+L,W:1,S:0,X:0,Y:30,X:20,Y:30,-L
+L,W:1,S:0,X:20,Y:30,X:20,Y:34,-L
+L,W:1,S:0,X:20,Y:44,X:20,Y:50,-L
+L,W:1,S:0,X:20,Y:50,X:0,Y:50,-L
+L,W:1,S:0,X:20,Y:47,X:20,Y:45,-L
+L,W:1,S:0,X:20,Y:37,X:20,Y:34,-L
+L,W:1,S:0,X:30,Y:42,X:34,Y:46,-L
+L,W:1,S:0,X:34,Y:46,X:31,Y:48,-L
+L,W:1,S:0,X:31,Y:48,X:34,Y:51,-L
+PG,W:1,S:0,F:1,N:3,X:35,Y:52,X:34,Y:49,X:32,Y:51,-PG
+L,W:1,S:0,X:20,Y:36,X:20,Y:37,-L
+PG,W:1,S:0,F:1,N:3,X:20,Y:43,X:14,Y:37,X:26,Y:37,-PG
+PG,W:1,S:0,F:1,N:4,X:14,Y:43,X:14,Y:44,X:26,Y:44,X:26,Y:43,-PG
+PG,W:1,S:0,F:-1,N:4,X:0,Y:0,X:80,Y:0,X:80,Y:80,X:0,Y:80,-PG
-PTN
+COMP,N:TLP552
X:8,Y:8,B:1
R:U
P:TLP552
+PIN,N:,L:R5,T:,M:6,-PIN
+PIN,N:,L:R3,T:,M:7,-PIN
+PIN,N:,L:L5,T:,M:3,-PIN
+PIN,N:,L:L3,T:,M:2,-PIN
+PIN,N:N.C,L:L1,T:,M:1,-PIN
+PIN,N:N.C,L:L7,T:,M:4,-PIN
+PIN,N:GND,L:R7,T:,M:5,-PIN
+PIN,N:VCC,L:R1,T:,M:8,-PIN
NOTE:,-COMP
-BSCH3_LIB_V.1.0
L:0,X:90,Y:80,LIB:TLP552,DIR:0,BLK:0,N:TLP552,ND:1,NX:2,NY:20,R:U,RD:1,RX:2,RY:10,NOTE:,-COMPONENT
-BSCH3_DATA_V.1.0

tag: I2C 絶縁 フォトカプラ TLP552 インターフェース ISO-I2C 

異なるGNDレベル間でI2C その1

I2Cに限った話ではありませんが、汎用部品で構成できる双方向絶縁インターフェースを考えてみました。
絶縁には汎用フォトカプラ(TLP621PC817C)を使います。


○絶縁双方向インターフェース
異なる電圧レベル間でI2Cその2では、単線で双方向通信をするときに、簡単なレベル変換回路を構成する方法を書きました。
今回は、単線での双方向通信のときに、汎用部品で絶縁インターフェースを構成する方法を書きます。

○動作説明
以下が今回考えた回路です。異なる電位の基準電圧であるGND,GND-2の電源として、それぞれVCC,VCC-2が対応します。


001_20081106233820.png


左右対称の形になっているので、左側が送信動作、右側が受信動作をしているときを例に解説します。
まず送信側が、"H"を出力しているときPC1の受光側はOFFとなっているので、回路の受信側はR4でプルアップされ"H"レベルとなります。

次に送信側が"L"を出力した場合、PC1の受光側がONし、PC1の4番端子がGND-2レベルとなります。すると、「R4→D2→PC1の4番端子」の経路で電流が流れ、受信側が"L"レベルになります。
ただし、このときの受信側の電圧はV(GND-2)+Vfとなるので、D2には順方向電圧(Vf)の小さいショットキーバリアダイオードを使います。

また、"L"レベルのときのPC1の4番端子には、R3からの電流も流れ込みます。したがって、使用する汎用フォトカプラはCurrent transfer ratio(CTR)が100%よりも大きい必要があります。

○回路シミュレーション
以下に、LTspiceを用いたシミュレーション結果を示します。1ss108のSPICEモデルは、数理研究所SPICE MODEL LIBRARYの物を利用させていただきました。


002_20081106233829.png

003_20081106233835.png



グラフの緑のラインが送信側、青のラインが受信側です。送信クロックは100kHz10kHzですが、多少波形がなまっています。
あまり高速な通信は期待できないでしょう。

○付録
このエントリで使用した、LTspiceシミュレーション用スケマティックを載せておきます。

isolated-i2c.asc
Version 4
SHEET 1 1152 692
WIRE -16 -160 -32 -160
WIRE 816 -160 800 -160
WIRE -32 -128 -32 -160
WIRE 800 -128 800 -160
WIRE -32 -16 -32 -48
WIRE 48 -16 -32 -16
WIRE 320 -16 48 -16
WIRE 720 -16 432 -16
WIRE 800 -16 800 -48
WIRE 800 -16 720 -16
WIRE -176 16 -192 16
WIRE 960 16 944 16
WIRE -192 48 -192 16
WIRE -32 48 -32 -16
WIRE 800 48 800 -16
WIRE 960 48 960 16
WIRE 48 64 48 -16
WIRE 80 64 48 64
WIRE 320 64 432 -16
WIRE 320 64 272 64
WIRE 432 64 320 -16
WIRE 480 64 432 64
WIRE 720 64 720 -16
WIRE 720 64 672 64
WIRE -192 160 -192 128
WIRE -144 160 -192 160
WIRE -32 160 -32 112
WIRE -32 160 -144 160
WIRE 80 160 -32 160
WIRE 304 160 272 160
WIRE 480 160 448 160
WIRE 800 160 800 112
WIRE 800 160 672 160
WIRE 928 160 800 160
WIRE 960 160 960 128
WIRE 960 160 928 160
WIRE 304 192 304 160
WIRE 448 192 448 160
WIRE -192 256 -192 160
WIRE -48 272 -144 272
WIRE 544 272 528 272
WIRE -48 288 -48 272
WIRE 528 288 528 272
WIRE -128 320 -144 320
WIRE -192 352 -192 336
WIRE -128 352 -128 320
WIRE -128 352 -192 352
WIRE -192 368 -192 352
FLAG -32 -160 VCC
FLAG 800 -160 VCC
FLAG -192 16 VCC
FLAG 960 16 VCC
FLAG 528 272 VCC
FLAG 528 368 0
FLAG -48 368 0
FLAG -144 160 TX
FLAG 928 160 RX
FLAG -192 368 0
FLAG 304 192 0
FLAG 448 192 0
FLAG -48 272 DAT
SYMBOL res -208 32 R0
SYMATTR InstName R1
SYMATTR Value 10k
SYMBOL res -48 -144 R0
SYMATTR InstName R2
SYMATTR Value 330
SYMBOL res 784 -144 R0
SYMATTR InstName R3
SYMATTR Value 330
SYMBOL res 944 32 R0
SYMATTR InstName R4
SYMATTR Value 10k
SYMBOL voltage 528 272 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value 5V
SYMBOL voltage -48 272 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value PULSE(5V 0V 25us 1us 1us 49us 100us)
SYMBOL Optos\\PC817C 176 112 R0
SYMATTR InstName U1
SYMBOL Optos\\PC817C 576 112 M0
SYMATTR InstName U2
SYMBOL sw -192 352 R180
SYMATTR InstName S1
SYMBOL diode -16 112 R180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D1
SYMATTR Value 1ss108
SYMBOL diode 816 112 R180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D2
SYMATTR Value 1ss108
TEXT -296 424 Left 0 !.tran 0 100us 0
TEXT -296 456 Left 0 !.model SW SW(Ron=1m Vt=2.5 Vh=0)
TEXT 56 344 Left 0 ;10kHz
TEXT -296 488 Left 0 !.model 1ss108 D(IS=4.86E-5 N=2.105 RS=58.7 CJO=1.62pf VJ=2.267 M=0.2857 TT=.1ns BV=60 IBV=100E-15)

tag: I2C 絶縁 フォトカプラ TLP621 PC817C インターフェース ISO-I2C 

アナログは汚い?デジタルは綺麗?

どちらも同じ目的を達成することができるとき、どちらを選びますか。アナログ?デジタル?
今回は、初心者でも十分躓くことができる(?)アナログ回路の本質的な難しさについて。


この問題を考える上で、「ある変数から100を引く」という処理を実現する場合を例に考えて見ます。

○デジタルの場合
PICのアセンブラで、Wレジスタから100を引くプログラムを書けといわれたらどのようにかけるでしょうか。

方法①
        MOVWF   TMP
MOVLW D'100'
SUBWF TMP,W


これは少しまどろっこしいですね。

方法②
        ADDLW   -D'100'


①よりもすっきりしました。これなら3命令サイクルかかっていたものが、1命令サイクルで終わります。
しかしながら、計算結果は変わりません

○アナログの場合
一方、アナログ回路で同じようなことを考えてみるとどうでしょう。
V(work)からV(literal)=100mVを引き算する回路を考えます。


001_20081105003701.png

002_20081105003706.png



1つのスケマティックないに二つの方式の回路図が書いてあります。

上の緑で囲まれた回路図は、少しまどろっこしい最適とはいえない回路図です。
「反転増幅回路」→「加算回路」→「反転増幅回路」
となっており、理想的な出力電圧は、V(out1)=-{(-1)*V(literal)+V(work)}*(-1)=V(work)-V(literal)です。

下の青で囲まれた回路図は、もっとすっきりしており、「差動増幅回路」1つで構成されています。
理論上の出力電圧は、V(out2)=V(work)-V(literal)であり、上の回路と同じです。

LTspiceを用いた回路シミュレーションでは、すべての抵抗を10kΩに対して±5%の誤差を持つものとしてモンテカルロ解析を行っています。グラフ中の赤のラインが理想的な出力電圧であり、緑のラインと青のラインはこれに対してばらけていることが分かります。
ここで重要なのは、緑のラインのほうが青のラインよりもばらけかたが激しいということです。言い換えれば、青の回路のほうが理想に近い優れた回路だということです。

○結論
デジタル方式では、多少エレガントさにかける方法①のようなプログラムを書いても、やっていることに間違いが無ければ正常に動作をすることが分かります。結果だけを見れば、命令サイクル数が余計にかかることを除いて、方法②と変わりません。

一方で、アナログ方式ではどうでしょうか。緑の回路は青の回路に比べて、出力電圧の誤差が大きくなっています。
しかし、単純にこれだけで「青は正常で緑は異常」という判断はできません。なぜなら、緑の誤差が許容範囲であるか、また、青はどうか、といった判断をしなければならないからです。

また、今回は誤差要因として抵抗の誤差を考えましたが、この抵抗の誤差も確率論的に分布しているだけです。したがって、同時に両方の回路を作ったとして、たまたま、緑の方式の回路のほうが青の方式の回路よりも高性能になることもありえます。

このあたりが、デジタル回路と比較した場合での、アナログ回路の本質的な難しさなのでしょう・・・きっと。

○蛇足
さて余談です。
PICのプログラム、OPアンプ回路の両方にいえる話ですが、最初に見せたエレガントでない方法・・・そんな方法、絶対選ぶわけ無いじゃんと馬鹿にしてはいけません。案外こういう事はやってしまいがちなんです。
そもそも、次に見せたまともに見える方法すら、よりよい方法が無いという根拠は無いわけですから。

○付録
このエントリで使用したスケマティックを添付します。コピーして、「substract.asc」という名前で保存すればLTspiceでシミュレーションできるはずです。

substract.asc
Version 4
SHEET 1 884 680
WIRE -176 16 -208 16
WIRE -48 16 -96 16
WIRE 0 16 -48 16
WIRE 112 16 80 16
WIRE -48 96 -48 16
WIRE 0 96 -48 96
WIRE 112 112 112 16
WIRE 112 112 64 112
WIRE 128 112 112 112
WIRE 256 112 208 112
WIRE 304 112 256 112
WIRE 416 112 384 112
WIRE 0 128 -32 128
WIRE 128 192 96 192
WIRE 256 192 256 112
WIRE 256 192 208 192
WIRE 304 192 256 192
WIRE 416 208 416 112
WIRE 416 208 368 208
WIRE 432 208 416 208
WIRE 560 208 512 208
WIRE 608 208 560 208
WIRE 720 208 688 208
WIRE 304 224 272 224
WIRE 560 288 560 208
WIRE 608 288 560 288
WIRE 720 304 720 208
WIRE 720 304 672 304
WIRE 752 304 720 304
WIRE 608 320 576 320
WIRE 400 400 368 400
WIRE 528 400 480 400
WIRE 576 400 528 400
WIRE 704 400 656 400
WIRE 528 480 528 400
WIRE 560 480 528 480
WIRE 704 496 704 400
WIRE 704 496 624 496
WIRE 752 496 704 496
WIRE -240 512 -256 512
WIRE -96 512 -112 512
WIRE 560 512 528 512
WIRE -256 528 -256 512
WIRE -112 528 -112 512
WIRE 400 592 368 592
WIRE 528 592 528 512
WIRE 528 592 480 592
WIRE 576 592 528 592
WIRE 704 592 656 592
FLAG 272 224 0
FLAG 576 320 0
FLAG -32 128 0
FLAG -256 512 literal
FLAG -208 16 literal
IOPIN -208 16 In
FLAG -112 512 work
FLAG 96 192 work
IOPIN 96 192 In
FLAG -256 608 0
FLAG -112 608 0
FLAG 704 592 0
FLAG 368 592 work
IOPIN 368 592 In
FLAG 368 400 literal
IOPIN 368 400 In
FLAG 752 304 out1
IOPIN 752 304 Out
FLAG 752 496 out2
IOPIN 752 496 Out
SYMBOL Opamps\\opamp 32 48 R0
SYMATTR InstName U1
SYMBOL Opamps\\opamp 336 144 R0
SYMATTR InstName U2
SYMBOL res -80 0 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R1
SYMATTR Value {mc(10k,tol)}
SYMBOL res 96 0 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R2
SYMATTR Value {mc(10k,tol)}
SYMBOL res 224 96 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R3
SYMATTR Value {mc(10k,tol)}
SYMBOL res 400 96 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R4
SYMATTR Value {mc(10k,tol)}
SYMBOL Opamps\\opamp 640 240 R0
SYMATTR InstName U3
SYMBOL res 224 176 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R5
SYMATTR Value {mc(10k,tol)}
SYMBOL res 528 192 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R6
SYMATTR Value {mc(10k,tol)}
SYMBOL res 704 192 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R7
SYMATTR Value {mc(10k,tol)}
SYMBOL voltage -256 512 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName Vliteral
SYMATTR Value 100mV
SYMBOL voltage -112 512 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName Vwork
SYMATTR Value 255mV
SYMBOL Opamps\\opamp 592 432 R0
SYMATTR InstName U4
SYMBOL res 496 384 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R8
SYMATTR Value {mc(10k,tol)}
SYMBOL res 672 384 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R9
SYMATTR Value {mc(10k,tol)}
SYMBOL res 496 576 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R10
SYMATTR Value {mc(10k,tol)}
SYMBOL res 672 576 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R11
SYMATTR Value {mc(10k,tol)}
TEXT -288 432 Left 0 !.lib opamp.sub
TEXT -288 408 Left 0 !.step param X 1 10 1
TEXT -288 384 Left 0 !.param tol 0.05
TEXT -288 360 Left 0 !.dc Vwork 0V 255mV 1mV

tag: LTspice モンテカルロ解析 

魔術士オーフェンはぐれ旅の続編が書籍化するかもかも

秋田先生にファンレターを送ろうキャンペーン。

やばい。なんて書いて良いか・・・
落ち着いて明日書こう。

http://www.motsunabenohigan.jp/note/2008note/200811nt.htm

RCサーボモータの信号範囲

RCサーボモータについてでは、RCサーボの制御信号には方言があると書きました。そこで、RCサーボコントローラで作ったサーボコントローラを使い、手元にあった三和電子機器のSX-101Zについて、許容される信号範囲を調べようと試みました・・・結果はあまり参考になるものとは言えませんが。


○実験条件
・RCサーボモータは三和電子機器のSX-101Zを使いました。
・RCサーボコントローラにはRCサーボコントローラで作成したものを使いました。
・電源電圧は三端子レギュレータで作成した6Vを使いました。
・周波数/パルス幅計測にはPDS5022SのMESURE機能を使いました。


004.jpg



○動作可能周波数
38.3Hz(25.8ms)~55.2Hz(18.1ms)の範囲では正常動作しました。
この範囲外の周波数は設定できなかったので、実際の動作可能周波数範囲はより広いと考えられます。


002_20081103231038.png
38.8Hz(25.8ms)時

003_20081103231045.png
55.2Hz(18.1ms)時


○動作可能パルス幅
●最大動作可能パルス幅
パルス幅を増加させていった結果、2.36ms付近で切れ角の増加が見られなくなりました。


004_20081103231051.png
パルス幅:2.36ms


●最小動作可能パルス幅
パルス幅を減少させていった結果、792us付近で切れ角の減少が見られなくなりました。


005.png
パルス幅:792us


○結論
最小動作周波数:38.3Hz以下
最大動作周波数:55.2Hz以上
最小パルス幅 :792us程度
最大パルス幅 :2.36ms程度

RCサーボの回転角はパルス幅のみに依存し、周波数には依存しませんでした。

○反省
特性を調べるつもりならもっと調節可能範囲を広く設計すべきでした。
特性を調べるつもりならデジタル制御のもののほうが確実でした。


tag: サーボ PDS5022 

魔術士オーフェンはぐれ旅の続編が書籍化するかも

魔術士オーフェンシリーズの作者、秋田禎信氏の公式?サイトモツ鍋の悲願雑記の中の11月19日の日記にて魔術士オーフェンはぐれ旅の続編が書籍化されるかもしれないということが書かれています。

何はともあれ、欲しい人がいて知らない人がいるといけないので・・・

あ、皆さん、うひょーって言ってもいいっすよ

PIC12/16F Software delay その3

PIC12/16Fでのタイマをつかわないソフトウェアでの一定時間の時間稼ぎプログラムの時間計算方法について。
20MHz動作でも10秒以上を設定できる3段階のネストまで拡張。


○ネストが3段階のとき
3段階までのネストで、システムクロックfOSC=20MHzの場合でも、10秒以上のdelayを作成することができます。これ以上の時間を消費させるアプリケーションでは、sleep等も検討すべきでしょう。

さしあたって、汎用レジスタの確保。
        udata   H'20'
TMP res D'3'


コード本体
        movlw   x
movwf TMP
movlw y
movwf TMP+D'1'
movlw z
movwf TMP+D'2'
LOOP
;xのネスト
decfsz TMP,F
goto LOOP
;yのネスト
decfsz TMP+D'1',F
goto LOOP
;zのネスト
decfsz TMP+D'2',F
goto LOOP


(a) zとyのネストについて
ネストが2段階のときまでの考察より、それぞれ(3z-1)サイクルと{(3y-1)+767(z-1)}サイクルとなります。

(b) xのネストについて
最初の1順は、(3x-1)サイクル、それ以降は1順あたり(3*256-1)サイクルかかります。
yのネストは、z回実行され、そのうちの(z-1)回はxのネストを256回必要とします。残りの1回は、xのネストをy回必要とします。

よって、xのネストの実行回数は(z-1)*256回。前述のとおり、xのネストは最初の1回のみ(3x-1)サイクル、それ以降は(3*256-1)サイクルとなるので、xのネストの実行サイクルは

(3x-1)+(3*256-1)*{(z-1)*256+y-1}

x,y,zのネストと代入の6サイクルをあわせて

197122z+770y+3x-197883サイクル

となります。

tag: PIC アセンブラ 

サイプレス PSoC マイタッチパッド ワークショップ開催のご案内

日本サイプレス株式会社からPSoCのワークショップの案内がきました。
今までのセミナーは、ずっと無料だったのですが今回は3000円かかります。

内容から考えれば3000円でもやっぱり安すぎるのですが、懸念すべき事は他にあります。
というのも、今後は徐々にまっとうな値段のセミナーとなっていくんじゃないだろうかということです。
セミナーに行こうかと考えている人は、今のまだ安いうちに行っておくべきではないかなと思いますがどうでしょうか?

PSoCで簡単設計 マイタッチパッド ワークショップ開催決定!

★★ PSoCで簡単設計 マイタッチパッド ワークショップ ★★
~すぐに製品に応用できる信越ポリマー提供のタッチパッドを使用~

┌■ 開催日:【大阪】2008年12月1日(月) 10:30~17:00
│ 【東京】2008年12月9日(火) 10:30~17:00
├■ 会 場: 【大阪】ホテル阪急インターナショナル 6階 瑞鳥
│ アクセス:
│ http://www.hankyu-hotel.com/hotels/18hhinternational/access.html
│ 【東京】東京コンファレンスセンター品川 5階
│ アクセス: http://www.tokyo-cc.co.jp/access.html
├■ 受講料:3,000円 (参加者全員にPSoCボードとタッチパッドを進呈)
├■ お持ち物:ノートPCのお持込と事前の準備をお願いしております。
│ (詳しくはお申込ページをご覧ください。)

└◎詳細、お申込は
http://www.cypress-japan.co.jp/touchpad/
※満席になり次第,申込受付を締め切ります。お早めにお申し込みください。
┏━┳━┳━┳━┳━┓
┃プ┃ロ┃グ┃ラ┃ム┃
┗━┻━┻━┻━┻━┛
<午前の部>
10:00-10:30 受 付
10:30-11:40 PSoC製品概要(アーキテクチャ、開発キット・設計フロー)
11:40-11:50 タッチパッドとテンキーアプリケーション設計
11:50-12:05 実習0:ハードウェアとソフトウェアツールの機能チェック

12:05-13:00 昼 食 (お弁当をご用意します。開発環境の動作確認)

<午後の部>
13:00-13:50 実習1:I2CUSBブリッジを使ったPSoCアナログ設計(PGA, ADC)
13:50-14:30 実習2:I2CUSBブリッジを使ったCapSenseボタン(銅はく)設計
14:30-15:00 実習3:I2CUSBブリッジを使ったCapSense10キーボタン設計
15:00-15:20 休 憩
15:20-16:00 実習4:I2CUSBブリッジを使ったXY-タッチパッド設計
16:00-16:20 実習5:USB-UARTを使ったCapSense XY-タッチパッド設計
16:20-16:40 実習6:USB-HIDを使ったCapSense XY-タッチパッド設計
16:40-17:00 実習7:GUIを使ったXY-タッチパッド設計

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
PSoCは、8ビットマイコンを搭載し、周辺のデジタル、アナログ部品を
ワンチップに集積できるプログラマブルなアレイを持つサイプレスの
大ヒット商品です。
PSoCで実現する静電容量センシングソリューションCapSenseは、今や
世界中で様々なアプリケーションに広く採用されています。
今回は、タッチセンシング分野に多くのタッチパッドを提供している
信越ポリマー(株)とのコラボレーションにより、タッチセンシング
設計が初めての方でもすぐに応用できる設計手法を実際に設計しながら
学んでいただきます。
設計をわかりやすくするためにワークショップ特製のボードを製作しま
した。多くの皆様にご参加いただけるよう参加費用も特別に設定してい
ますので、万障お繰り合わせの上、ふるってご参加ください。
参加の方は全員、PSoCボードとタッチパッドをお持ち帰りいただけます。

■お問い合わせ先■
日本サイプレス株式会社
〒164-0012 東京都中野区本町1-32-2 ハーモニータワー17F
TEL: 03-5371-1921 FAX: 03-5371-1955 Email: japan-seminar@cypress.com
URL: http://www.cypress.com

****************************************************************************
このメールは、以前にお問合せまたは弊社イベントにご参加していただいた
方にお届けしております。
配信の停止や送付先の変更方法はこのメールの返信にてお知らせください。
****************************************************************************

tag: PSoC セミナー 

Design Wave magazineが季刊誌になるという噂

Design Wave magazine 複数購入のススメ 2冊目より

197 名前:774ワット発電中さん[] 投稿日:2008/11/17(月) 13:06:23 ID:P5bq96IP
DWM3月いっぱいで休刊、昔の季刊に戻るって。
郵便で案内キタ。


まじっすか^^;
最近読み始めたばっかりだったのに。
ソースが2ちゃんというのがなんともですが・・・
28日追記:doggieさんのブログで、案内の郵便が公開されています。

試験投稿

概要部分


追記部分ですよ。

PIC12/16F Software delay その2

PIC12/16Fでのタイマをつかわないソフトウェアでの一定時間の時間稼ぎプログラムの時間計算方法について。
少し長い時間を設定できるネストを2段階まで拡張。


○ネストが2段階のとき
769cycleよりも長いディレイが必要な場合は、ソースのネストを深くして対応します。ネストひとつにつきひとつの汎用レジスタを消費します。

さしあたって、汎用レジスタの確保。
        udata   H'20'
TMP res D'2'


コード本体
        movlw   x
movwf TMP
movlw y
movwf TMP+D'1'
LOOP
;xのネスト
decfsz TMP,F
goto LOOP
;yのネスト
decfsz TMP+D'1',F
goto LOOP


ここで、LOOPに続く1回目のdecfszとgotoのペアを「xのネスト」と名づけます。同様にその次のdecfszとgotoのペアを「yのネスト」と呼ぶことにします。(ネストという言葉の使い方が一般的なものと少しずれていますが、気にしない方向で。)

(a) yのネストについて
PICの命令実行順序のとおりに考えると分かりにくいですが、yのネストに存在する2つの命令が実行される回数は、(xの値にかかわらず)yの値だけで決まります。yのネストの実行サイクル数は

(a-i) decfszは必ず1回だけスキップを実行 : 2 cycle
(a-ii) decfszは(a-i)以外は1cycle : y-1 cycle
(a-iii) gotoは(a-ii)と同じ回数×2cycle実行 : 2(y-1) cycle
(a-i)~(a-iii)を合計して : 3y-1 cycle

(b) xのネストについて
xのネストは最初の1順のみTMPにxが代入された状態から1周し、その後はTMPにD'0'が入った状態、すなわちx=256の状態からの実行となります。

(b-i) 最初の1順は、ネストが1段階のときの考察から : 3x-1 cycle
(b-ii) 2順目以降は(3*256-1)cycle、(y-1)繰り返すため : 767(y-1) cycle
(b-i)(b-ii)を合計して : 3x+767y-768 cycle

(a)(b)および代入部分の4cycleを合計して : 3x+770y-765 cycle

tag: PIC アセンブラ 

ブログ拍手

いまさら気がついたのですが、fc2ブログにはブログ拍手なる機能が存在するらしいですね。

ねがてぃぶろぐでも、LTspice関連の記事とPIC関連の記事で拍手をいただいていました。ありがとうございます。・・・これって、こんな感じのエントリを書けという意味ですよね?

拍手がいただけるような記事を心がけようとは思いますが、このブログのメインコンテンツは役に立たないちょっと変わった回路なのでなかなか難しいかもしれません。

PIC12/16F Software delay その1

PIC12/16Fでのタイマをつかわないソフトウェアでの一定時間の時間稼ぎプログラムの時間計算方法について。
考え方の基本となる、ネストが1段階の場合まで。


○ネストが1段階のとき

さしあたって、汎用レジスタの確保。
        udata   H'20'
TMP res D'1'


コード本体
LOOP
decfsz TMP,F
goto LOOP


汎用レジスタTMPは8bitなので、符号なし整数でD'0'~D'255'まで扱えますが、ディレイが最大になるのは、最初にTMPにD'0'を代入したときです。それ以外では、D'255',D'254',・・・,D'1'の順にディレイが短くなります。D'0'のときはD'256'と考えると

TMPの初期値がxであるとき、LOOPの実行サイクル数は

(i) decfszは必ず1回だけスキップを実行 : 2 cycle
(ii) decfszは(i)以外は1cycle : x-1 cycle
(iii) gotoは(ii)と同じ回数×2cycle実行 : 2(x-1) cycle
(i)~(iii)を合計して : 3x-1 cycle

        movlw   x                       ;1 cycle
movwf TMP ;1 cycle
LOOP
decfsz TMP,f
goto LOOP ;3x-1 cycle


合計すると'''3x+1 cycle'''となる。

1≦x≦256なので、
delay(max)= 3*256+1=769 cycle
delay(min)= 3*1+1=4 cycle

○cycle数と実時間の相互変換
PICの動作クロックをFOSC[Hz]とし、t[s]のソフトウェアディレイを作る場合の実行サイクル数nは以下のように求められる。

PICは、1cycleに4clockを要するので1cycleにかかる時間は

4/FOSC [s]

よって、t[s]のディレイに必要な実行サイクル数nは

n=t/(4/FOSC)=(t*FOSC)/4

4≦n≦769の条件を満たす場合、1段階のネストで実装できます。nからxをもとめるには、n=3x+1をxについてとけばよいので

x=(n-1)/3

端数はNOPで調整します。

tag: PIC アセンブラ 

RCサーボコントローラ

RCサーボモータについてのエントリでは、RCサーボの個体差や機械的制約を吸収できるように、コントローラで調節できるようにするとよいということを書きました。
一例として、以前人力飛行機の操縦システムとして採用していた物を紹介します。実際に使っていたものはPICマイコンを用いたデジタル制御なのですが、今回はOPアンプと555をもちいたアナログ回路としてみました。


以下が回路図です。


001_20081103013228.png


アルゴリズムを式で表すと

[サーボ指示値]=[ゲイン]×([ハンドル]-[ハンドル初期値])+[サーボ初期位置]

となります。
これらの各パラメータと周波数を、それぞれ対応する半固定抵抗つかって調整することができます。

次にLTspiceでのシミュレーションを示します。抵抗のパラメータが少し異なってますが・・・(現実はシミュレーション通りには行かないこともあるということで勘弁してください。)


002_20081103013312.png

003_20081103013335.png



ハンドルのボリュームを変化させたときの各ノードの挙動を見るため、ハンドルを最小から最大まで2.5kΩステップでスイープさせたTran解析を行いました。グラフ中の黄緑で表されたパルス幅が変化しているのが読み取れます。付録としてこのシミュレーションのスケマティックを載せておきました。

今回は、面白がってアナログ回路で組んで見ましたが、半固定抵抗を多用していることもあり、信頼性においてマイコンを使ったデジタル制御のものよりも劣ります。というか普通はマイコンで作りますよね。

○付録
実際に作成した回路の外観です。


004.jpg

005.jpg


本エントリで使用した、LTspiceシミュレーションのスケマティックを載せておきます。

controller.asc
Version 4
SHEET 1 880 900
WIRE -640 -320 -736 -320
WIRE 336 -320 336 -352
WIRE -848 -304 -928 -304
WIRE -800 -304 -848 -304
WIRE -32 -304 -96 -304
WIRE 256 -304 192 -304
WIRE -96 -272 -96 -304
WIRE -32 -240 -96 -240
WIRE 336 -240 192 -240
WIRE -848 -176 -848 -304
WIRE -784 -176 -848 -176
WIRE -640 -176 -640 -320
WIRE -640 -176 -704 -176
WIRE -608 -176 -640 -176
WIRE -480 -176 -528 -176
WIRE -432 -176 -480 -176
WIRE -304 -176 -352 -176
WIRE -32 -176 -128 -176
WIRE 272 -176 192 -176
WIRE 336 -176 336 -240
WIRE 336 -176 272 -176
WIRE 336 -160 336 -176
WIRE -928 -144 -928 -304
WIRE -32 -112 -128 -112
WIRE 272 -112 192 -112
WIRE 336 -48 336 -96
WIRE -480 -32 -480 -176
WIRE -432 -32 -480 -32
WIRE -304 -16 -304 -176
WIRE -304 -16 -368 -16
WIRE 272 -16 272 -112
WIRE 272 -16 -304 -16
WIRE -928 0 -928 -64
WIRE -432 0 -480 0
WIRE -800 112 -848 112
WIRE -640 112 -720 112
WIRE -608 112 -640 112
WIRE -480 112 -480 0
WIRE -480 112 -528 112
WIRE -432 112 -480 112
WIRE -304 112 -352 112
WIRE 368 144 368 112
WIRE -32 176 -160 176
WIRE 272 176 272 112
WIRE 272 176 192 176
WIRE -304 224 -304 112
WIRE -304 224 -480 224
WIRE -160 224 -160 176
WIRE -928 240 -928 80
WIRE -848 240 -848 112
WIRE -848 240 -928 240
WIRE -800 240 -848 240
WIRE -32 240 -112 240
WIRE 368 240 368 224
WIRE 368 240 192 240
WIRE -640 256 -640 112
WIRE -640 256 -736 256
WIRE 368 256 368 240
WIRE -112 272 -112 240
WIRE 272 272 -112 272
WIRE -96 304 -96 -240
WIRE -32 304 -96 304
WIRE 272 304 272 272
WIRE 272 304 192 304
WIRE -480 320 -480 224
WIRE -416 320 -480 320
WIRE -304 336 -304 224
WIRE -304 336 -352 336
WIRE 272 336 272 304
WIRE 368 336 272 336
WIRE 368 352 368 336
WIRE -32 368 -96 368
WIRE 368 448 368 416
WIRE -928 496 -928 464
WIRE -640 496 -640 464
WIRE -368 496 -368 464
WIRE -928 608 -928 576
WIRE -800 608 -928 608
WIRE -640 608 -640 576
WIRE -528 608 -640 608
WIRE -368 608 -368 576
WIRE -240 608 -368 608
WIRE 0 608 0 560
WIRE -928 640 -928 608
WIRE -640 640 -640 608
WIRE -368 640 -368 608
WIRE 0 720 0 688
WIRE -928 752 -928 720
WIRE -640 752 -640 720
WIRE -368 752 -368 720
FLAG 0 720 0
FLAG 0 560 VCC
FLAG 368 112 VCC
FLAG 272 112 VCC
FLAG -96 368 VCC
FLAG 368 448 0
FLAG -160 224 0
FLAG 256 -304 VCC
FLAG -128 -112 VCC
FLAG 336 -352 VCC
FLAG 336 -48 0
FLAG -96 -272 0
FLAG -128 -176 Output
IOPIN -128 -176 Out
FLAG -928 752 0
FLAG -640 752 0
FLAG -368 752 0
FLAG -240 608 PGND
FLAG -416 352 PGND
FLAG -800 608 HANDLE
FLAG -528 608 NEUTRAL
FLAG -800 -336 NEUTRAL
FLAG -800 272 HANDLE
FLAG -928 464 VCC
FLAG -640 464 VCC
FLAG -368 464 VCC
FLAG 272 -112 CTRL
FLAG 272 -176 THRS
SYMBOL Misc\\NE555 80 272 R0
SYMATTR InstName U1
SYMBOL res 352 128 R0
SYMATTR InstName R1
SYMATTR Value 277k
SYMBOL res 352 240 R0
SYMATTR InstName R2
SYMATTR Value 4.7k
SYMBOL voltage 0 592 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value 6V
SYMBOL cap 352 352 R0
SYMATTR InstName C1
SYMATTR Value 0.1u
SYMBOL Misc\\NE555 80 -208 R0
SYMATTR InstName U2
SYMBOL res 320 -336 R0
SYMATTR InstName R3
SYMATTR Value 22k
SYMBOL cap 320 -160 R0
SYMATTR InstName C2
SYMATTR Value 0.1u
SYMBOL res -336 -192 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R4
SYMATTR Value 10k
SYMBOL res -512 -192 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R5
SYMATTR Value 22k
SYMBOL res -336 96 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R6
SYMATTR Value 10k
SYMBOL res -512 96 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R7
SYMATTR Value 22k
SYMBOL res -688 -192 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R8
SYMATTR Value 7.5k
SYMBOL res -704 96 R90
WINDOW 0 5 56 VBottom 0
WINDOW 3 27 56 VTop 0
SYMATTR InstName R9
SYMATTR Value 7.5k
SYMBOL res -944 -160 R0
SYMATTR InstName R10
SYMATTR Value 15k
SYMBOL res -944 -16 R0
SYMATTR InstName R11
SYMATTR Value 50k
SYMBOL res -944 624 R0
SYMATTR InstName R12
SYMATTR Value {R}
SYMBOL res -944 480 R0
SYMATTR InstName R13
SYMATTR Value {25k-R}
SYMBOL res -656 624 R0
SYMATTR InstName R14
SYMATTR Value 12.5k
SYMBOL res -656 480 R0
SYMATTR InstName R15
SYMATTR Value 12.5k
SYMBOL res -384 624 R0
SYMATTR InstName R16
SYMATTR Value 11.5k
SYMBOL res -384 480 R0
SYMATTR InstName R17
SYMATTR Value 13.5k
SYMBOL Opamps\\opamp -400 -80 R0
SYMATTR InstName U3
SYMBOL Opamps\\opamp -384 272 R0
SYMATTR InstName U4
SYMBOL Opamps\\opamp -768 -256 M180
SYMATTR InstName U5
SYMBOL Opamps\\opamp -768 192 R0
SYMATTR InstName U6
TEXT 120 544 Left 0 !.tran 0 50ms 15ms
TEXT 120 576 Left 0 !.lib opamp.sub
TEXT 120 608 Left 0 !.step param R list 7.5k 10k 12.5k 15k 17.5k

tag: サーボ LTspice パラメトリック解析 

LTspiceでバリスタ

LTspiceには標準でvaristorというモデルが存在します。
今回は標準のvaristorモデルの使い方の説明、および、ウエブ上で公開されているvaristorモデルの紹介をします。

実を言うと、電圧制御抵抗を探していて引っかかったのですが・・・残念ながら、電圧制御電圧源などのように電圧制御端子により抵抗値が変化するモデルではありません。


○LTspice標準のvaristorモデル
varistorモデルに関して、LTspiceのヘルプを読むと以下のようにあります。

The VARISTOR is a voltage controlled varistor. Its breakdown voltage is set by the voltage between terminals 1 and 2. Its breakdown impedance is specified with the instance parameter rclamp. See the example schematic .\examples\Educational\varistor.asc


私の適当な訳はこんな感じ。

VARISTORは、電圧で制御されるバリスタのモデルです。そのブレークダウン電圧は、1番端子と2番端子の間の電圧によって決まります。ブレークダウン時のインピーダンスは、パラメータRclampで指定されます。.\examples\Educational\varistor.asc参照。


ヘルプの中で言及されているサンプルは少しややこしいので、もう少し簡単なサンプルを挙げます。(このエントリの最後に付録としてvaristor.ascとして載せておきます。)


001_20081102184644.png

002_20081102184719.png



グラフの緑のラインは、varistor(A1)に流れる電流です。
Vbreakがブレークダウン電圧を決定する電圧です。Vbreak>V1の間は、A1は高抵抗として振舞います。Vbreak<V1となると、A1に電流が流れ始めます。このときのグラフの傾きはRclampに依存します。

ブレークダウン時の等価回路を書くと以下のような感じになります。


003_20081102184748.png



○より現実に近いvaristorモデル
私はバリスタという素子を実際に使ったことが無いので、wikipediaの記述を信じることにします。(バリスタ-Wikipedia)

バリスタ (varistor) は、2つの電極をもつ電子部品で、両端子間の電圧が低い場合には電気抵抗が高いが、ある程度以上に電圧が高くなると急激に電気抵抗が低くなる性質を持つ。

他の電子部品を高電圧から保護するためのバイパスとして用いられる。

名称はvariable resistorに由来し、非直線性抵抗素子の意味である。

バリスタの両端子間の電圧Vと流れる電流Iの関係をI∝V^αで近似した場合、通常の抵抗体(オーム抵抗)ならばα=1であるが、バリスタではα>1となる。このαを非直線性係数と呼ぶ。


LTspice標準のvaristorはRclampが定数になるよう指定するため、非直線性を考慮していません。より正確なシミュレーションをするためには、少し高度なモデリングが必要になります。
ベルが鳴るさんのバリスターの項目が詳しいです。

○付録
最後に、このエントリで使ったLTspiceのスケマティックを載せておきます。

varistor.asc
Version 4
SHEET 1 880 680
WIRE 432 64 272 64
WIRE 272 96 272 64
WIRE 256 112 144 112
WIRE 144 128 144 112
WIRE 432 128 432 64
WIRE 256 144 240 144
WIRE 240 176 240 144
WIRE 272 176 272 160
WIRE 272 176 240 176
WIRE 272 208 272 176
FLAG 432 208 0
FLAG 272 208 0
FLAG 144 208 0
SYMBOL SpecialFunctions\\varistor 288 192 M180
WINDOW 3 0 60 Left 0
SYMATTR InstName A1
SYMATTR Value Rclamp=1
SYMBOL voltage 432 112 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value 10V
SYMBOL voltage 144 112 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName Vbreak
SYMATTR Value 5V
TEXT 120 256 Left 0 !.dc V1 0 10 10m

tag: LTspice 可変抵抗 

私の言ってる事、間違ってないよね?

風邪引いた・・・


というわけで、私の夕飯。

DSCF3785.jpg

せっかくだから、トラックバックしよう。

第612回ブログ公式ガイドプレゼントつき!「おいしそうなご飯の写真!」

こんにちは!FC2ブログトラックバックテーマ担当ほうじょうです。今日のテーマは「おいしそうなご飯の写真!」です。おかげさまで、FC2ブログ公式ガイドの第2版が発売となりましたそのため、本日のトラバテーマに答えていただいた方の中から抽選で50名様に、「FC2ブログではじめるこだわりブログ 第2版 FC...
FC2 トラックバックテーマ:ブログ公式ガイドプレゼントつき!「おいしそうなご飯の写真!」



風邪のときの桃缶は、なぜかおいしい。
私の言ってる事、間違ってないよね?

プレゼント応募します。
もしあたったら、書籍に関する記事も書いちゃおうと思います。

LTspiceで可変抵抗

LTspiceには、可変抵抗という回路素子が存在しません。
そこで、LTspiceで可変抵抗のシミュレーションをする(≒抵抗値をスイープさせた解析をする)場合には、パラメータスイープやモンテカルロ解析をさせます。
これらの方法はAC解析、DC解析、Tran解析のどれに対しても行えるので便利なのですが、今回は.opを用いて直流解析的に横軸に抵抗値をとったグラフの書き方を紹介します。


元ネタは、回路シミュレーション part 3の664さんのレスです。


664 名前:663[sage] 投稿日:2008/06/21(土) 23:30:54 ID:6nQwEoNZ
まずは .op を使った例。基本的すぎるかな。
ttp://aikofan.dee.cc/aikoup1/src/f0889.png
ここでハタと考えました。もう少しやりたいことを具体的に教えてもらえると
話が近くなるような・・・ まあレスがない限り勝手に続けます。


アップローダにあがったファイルが流れてしまったので、元の回路図ではありませんが、だいたい以下のような感じだったと思います。


001_20081101234552.png

002_20081101234604.png



R1とR2を合わせて1つの可変抵抗です。5V電源を10kの可変抵抗1つで抵抗分圧しています。

Spice3f5 マニュアル 4.3.5 .OP: 動作点解析によると.op解析は以下のように説明されています。


入力ファイルにこの行を含めると,インダクタを短絡し,コンデンサを開放して,回路の直流動作点を決定するようSpiceに指示します. 直流解析は,過渡解析の初期条件を決定するために過渡解析の前に,また,非線形素子の線形化小信号モデルを決定するために,交流小信号解析,ノイズ解析,極-ゼロ解析の前に,自動的に行なわれます(前述の KEEPOPINFO 変数(5.5節)を参照のこと).

tag: LTspice 直流動作点解析 可変抵抗 

RCサーボモータについて

ちださんのブログ怪盗列車/Sailors Presentsサーボの件という記事があります。
この記事でちださんが触れているように、RCサーボモータの制御信号には多少の方言があるようです。


RCサーボは、簡単な制御信号を入力するだけで、回転角が入力信号に追従するモータです。





非常に便利なモータなので、ロボット工作をはじめとしてさまざまな趣味の工作に用いられています。

RCサーボの扱いがよくまとめられている記事として、トランジスタ技術2005年8月号電子部品選択&活用ガイドメカトロニクス編 第五回 RCサーボ・モータがあります。

サーボモータの制御信号は、約50Hz(20ms周期)で、Duty比が5~10%(パルス幅が1~2ms)のPWMが一般的です。
しかし、実際にはメーカや製品によって、あるいは個体差によって入力信号と切れ角の関係にはばらつきがあります。


001_20081101225150.jpg

002.jpg



トランジスタ技術の記事の中には更に、以下の様にあります。

○信号周期について

まず制御信号の周期ですが、これは必ずしも20ms周期である必要はありません。
~中略~
私の経験では10ms~30msの範囲であれば、おおむね問題なく使用できましたが、RCサーボの種類による可能性もあるので参考程度の数字として紹介します。


○パルス幅について

回転角を決める"H"パルスに関しては、ニュートラル位置となる"H"パルス幅がメーカにより異なります。双葉電子工業の古いタイプでは1.31ms、新しいものでは1.52ms、そのほかのメーカのもので1.5msとなっています。また、位置指令として許容される信号の変更幅は、双葉電子工業、近藤化学などが±0.5msとしているのに対し、日本遠隔制御では±0.6msとしているなど異なっています。


また、取り付け時の機械的な部分の製作誤差もあるので、回路上である程度の調整ができるように設計できればベターです。

というわけで、RCサーボを使う人はトランジスタ技術2005年8月号はぜひ読んでください。他にも興味深いことがいろいろ書いてあります。

tag: サーボ 

MPLABで外部エディタをつかう

MPLAB IDE ver 8.15から外部エディタが利用可能になったようです。


air_variableさんのページの掲示板PICについて語ろうPart2のair_variableさんの書き込みによると


52 :air_variable:2008/11/01(土) 22:50:10
MPLAB8.15より、外部エディタが使用可能になりました。
秀丸などの日本語エディタが使用できるので、それらになれている人であれば便利な機能です。

設定方法は、mplabのメニューバーより
Configure → SettingsのExternal Editorタブで Use External Editerのチェックを入れ、External Editor EXE Pathの欄にはエディタソフトの実行ファイルをフルパスで指定します。例えば秀丸エディタなら C:\Program Files\Hidemaru\Hidemaru.exe
と設定すればokです。設定後プロジェクトウィンドウ内のソースファイルをダブルクリックすれば、指定されたエディタで開かれます。

名はとうの昔に捨てた。

部屋の掃除をしていたら、「名はとうの昔に捨てた。」という名前のノートが出てきました。
この時点で結構キテます。結構キテますが、中身はいたって普通の日記と電子工作に関するメモでした。

・・・そう、とある一日の日記を除いて。



001.jpg




○○月××日
怖い夢を見ました。しかも2本立て、要約すると
「白い服の集団に殺されかける夢」
「黒ずくめの人たちに脅迫される夢」です。
特に怖かったのは前者。

俺、というか、この夢の主人公は魔女っ子?まあ、魔女な女の子なわけですが、やはり魔法が使えるだけあって傲慢で見た目もかわいいというよりは「おこがましい」という言葉が服を着て歩いている感じです。
その魔女は、ホウキでは無く魔法の絨毯にのって空を飛びます。というよりは、この世界にいる住人たちはみな何かの呪いをかけられています。
彼女にかけられている呪いは、足を地面につけてはならないというもの。したがって彼女はすべての生活を空とぶ絨毯の上で行います。彼女が寝ている間も絨毯は地に着くことはありません。
その魔女は、地に足をつくことができいないという呪いのため、空中に住んでいますが、この世界の住人はかけられた呪いの種類に基づいて住み分けが行われています。
彼女の様に空に生きる者たちの目から地上を見下ろすと、くっきりと淡色に塗られた円形の集落が互いに距離を取り合って点々と存在しているのを見ることができます。


002_20081101211951.png


魔女は傲慢にもこう思いました。
「ああ!!私もこの足で地面を踏みしめたい。この呪いを解いて地上を歩いてみたい。そのためなら他のどんな存在を犠牲にしてもいい。」
自分にかけられた呪いを自分で解除する方法は1つだけあります。それは、自分と違う種類の呪いをかけられている人をその呪いから解放してあげることです。
しかし、呪いを解くといっても簡単ではありません。
方法は2つあるのですが、そのうち1つは難しすぎて誰もやり方を知りません。そこで魔女は、もう一方の比較的簡単な方を選ぶことにしました。すなわち、のろいをかけられた者の死によって呪いから解き放つという方法です。
まさしくこれが、呪いの種類によって住み分けが起こっている理由です。集落と集落が近すぎるとみな自分の呪いを解くために殺し合いが始まってしまいます。そのため、人々は互いに殺し合いの起こることの無い同じ種類の呪いを持つ人々同士で集まって自衛せねばならないのです。
しかし、自分の実力に疑いを持つことを知らない魔女はそんなことまったく気にしません。
「どこの集落に殺しに行こうか?そうだ、私は黒の呪いだから白の呪いの集落に行こう。」
魔女は白の集落へ向かい降りていきました。


つづく



もちろん、続きません。発掘したノートに書かれているストーリーはここまででした。てか、まだ白の服の集団に殺されかかるところまで到達してないんですけど?

まあ、書いたのは数年前の自分なわけですが。なんと言う黒歴史。

PICのプリスケーラの値を読み出す

PIC12/16FのTMR0は、「タイマ本体に値をセットするとプリスケーラの値がクリアされる、プリスケーラ自体は値の読み出しも書き込みもできない」という致命的な欠点があります。
完全なバッドノウハウですけど、PICのプリスケーラの値を読み出す方法を見つけたので書いておきます。


その方法が書かれているのは、MicrochipのアプリケーションノートAN592です。といっても特別難しい話ではなく、パルス計測が終わった後に、プログラム的にカウントできるパルスを入力してオーバーフローするまでのパルス数からプリスケーラに残っていたカウントを逆算しようという話です。

pic_prescaler001


AN592で想定している状況はおそらく、直接計数方式の周波数カウンタです。
動作は、以下のような感じ。

① T0CKIのゲートを開いている間は、RA2をハイ・インピーダンス状態(ようするに入力)にしておき、Frequency Generatorからのパルスが通るようにしておく。
② ゲートオープン期間が終わったところで、RA2を出力にし、Frequency Generatorからの入力を遮断する。
③ RA2からパルスを出力して、TMR0のプリスケーラをインクリメントさせる。
④ TMR0がカウントアップするまで③を繰り返す。
⑤ 繰り返した③の回数からプリスケーラに入っていた値を逆算する。

【DAC内蔵も】PIC専用のスレPart20【出たよ】の673-676

673 名前:774ワット発電中さん[sage] 投稿日:2008/10/31(金) 20:20:49 ID:nWEjKo5A

何何? PICのプリスケーラにバグあるの?
初めて聞いた。

674 名前:774ワット発電中さん[sage] 投稿日:2008/10/31(金) 20:31:21 ID:BtOsLbTL
>>673
バグというより仕様だよ。
PICのプリスケーラは、クリア以外の書き込みや読み出しができないって
かなり有名な話だと思うけど。

675 名前:774ワット発電中さん[sage] 投稿日:2008/10/31(金) 20:40:28 ID:RuzZOMuZ
>>673
カウンタに値をセットするとプリスケーラがリセットされるって他のマイコンには無い仕様があったはず。
なので値をセットするたびにズレるので>>666に出てるように工夫しないといけない。

676 名前:774ワット発電中さん[] 投稿日:2008/10/31(金) 22:58:23 ID:/IkFVbZW
ここらへんを読むと、PICのカウンターの誤差の意味が良く分かる。

http://www5b.biglobe.ne.jp/~YASUSI/gallery/electronics/061029/061029.htm


---
参考文献
AN592
Souce code

tag: PIC 

Yahoo!ブログから引っ越してきました

そういえば、ご挨拶がまだでした。
Yahoo!ブログでやっていた「ねがてぃぶろぐ」をfc2へ引越しさせました。
アクセス解析とか続きを読むとか予約投稿とか便利な機能が多くてよさそうな反面、高機能すぎて上手く使いこなせるか心配です。

なにはともあれ、これからよろしくお願いします。
FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRScilabmachikaneyamaKKRPSoCOPアンプPICCPA強磁性モンテカルロ解析常微分方程式トランジスタode状態密度インターフェースDOSPDS5022ecaljスイッチング回路定電流半導体シェルスクリプトレベルシフト乱数HP6632A温度解析ブレッドボードI2CR6452A分散関係トランジスタ技術可変抵抗確率論数値積分反強磁性セミナー非線形方程式ソルバ絶縁バンドギャップ熱設計偏微分方程式バンド構造GW近似カオス三端子レギュレータLEDフォトカプラシュミットトリガISO-I2CA/DコンバータLM358USBカレントミラーTL431マフィンティン半径PC817C数値微分アナログスイッチ発振回路サーボ直流動作点解析74HC40532ちゃんねる標準ロジックチョッパアンプLDAアセンブラFFTbzqltyイジング模型ブラべ格子開発環境補間量子力学電子負荷BSchパラメトリック解析単振り子基本並進ベクトル熱伝導繰り返しGGAMaximaTLP621ewidthSMP相対論抵抗位相図ランダムウォークスピン軌道相互作用六方最密充填構造不規則合金FETコバルト失敗談QSGWcygwinスレーターポーリング曲線スイッチト・キャパシタラプラス方程式gfortranキュリー温度状態方程式条件分岐格子比熱TLP552LM555TLP521三角波NE555過渡解析FXA-7020ZRWriter509テスタ詰め回路MCUマントルダイヤモンドQNAPデータロガーガイガー管自動計測UPS井戸型ポテンシャルawk第一原理計算仮想結晶近似ブラウン運動差し込みグラフ平均場近似fsolve起電力熱力学OpenMPスーパーセル固有値問題最適化最小値VCAシュレディンガー方程式VESTAubuntu最大値面心立方構造PGAOPA2277L10構造非線型方程式ソルバ2SC1815fccフェルミ面等高線ジバニャン方程式ヒストグラム確率論マテリアルデザイン正規分布結晶磁気異方性interp1フィルタ初期値ウィグナーザイツ胞c/aルチル構造岩塩構造スワップ領域リジッドバンド模型edeltBaOウルツ鉱構造重積分SIC二相共存ZnOquantumESPRESSOCapSensegnuplotmultiplot全エネルギー固定スピンモーメントFSM合金ノコギリ波フォノンデバイ模型ハーフメタル半金属TeXifortTS-110不規則局所モーメントTS-112等価回路モデルパラメータ・モデルヒストグラムExcel円周率GimpトラックボールPC直流解析入出力文字列マンデルブロ集合キーボードフラクタル化学反応三次元Realforce縮退日本語最小二乗法関数フィッティング疎行列シンボル線種ナイキスト線図陰解法負帰還安定性熱拡散方程式EAGLECrank-Nicolson法連立一次方程式P-10クーロン散乱Ubuntu境界条件MBEHiLAPW軸ラベルトランスCK1026MAS830L凡例PIC16F785LMC662AACircuit両対数グラフ片対数グラフグラフの分割specx.f

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ