スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

低抵抗器測定用定電流発生機(100mA)

オーディオアンプを作成していると終段のエミッタ抵抗等で1Ω以下の物を使う機会があり、この抵抗を選別しようとしても持っているテスターでは計測できないという何とも言い難いモヤモヤ感がありました。計測するには四端子測定法を使えば良いというのは知っていたのですが、定電流源が必要で何となく後回しにしていたのを今回作成しました。

回路図はこちら。

constant_current_100ma_v4.png

手持ちのテスターで0.1~10Ωの範囲で0.001Ω単位で計測できる様にしたかったので100mAの定電流源です。5V電源を使用する事にして各定数を決めています。

C3とR5(とR7)でオペアンプの発振防止を形成。手持ちの関係でC3を1nFとしましたが、少し大きかったかな~と。でも信号を流すでもなく、電源が激しく動く訳でもないのでヨシとしました。R4はオペアンプの電圧→電流変換(ROHMのトランジスタのFAQの「■抵抗R1について」を参照)とQ1の発振防止とベース・エミッタ間電流の上限規制(CN1に抵抗付け忘れた時に100mA流そうとしちゃいます)で入れています。R7を10Ωにしたのは、そもそも1Ω以下が正確に測れないので作っている回路なのに1Ωの抵抗を使うなんて…ってなところからです。1%品にしてますが、一番重要な所なので一応選別はしています。

R6は測定範囲を0.1~10Ωとして5V電源を使用する事にしたので、Q1のトランジスタだけで余りの電力を消費させるのは可哀想…というか放熱の検討が必要になるので極力熱に強い部品(抵抗器)に分担してもらうように入れました。R2,R3,VR1で基準電圧を0.924~1.134Vの間で調整できるようにしています。VR1のオペアンプ側の端子をVR1の下側とショートさせているのはボリュームが万が一オープンになっても調整範囲内で被測定物に流れる電流が小さくなる方向に倒れる様にしました。C2は…おまじない……基準電圧の揺れ防止ですが、入れても入れなくてもというところでしょうか。

当初、トランジスタのベース・エミッタ間に並列に抵抗を入れようとしていたのですが、常にトランジスタをONにしている状態で使う目的なので、いらないと判断して取り除きました。

IMG_20170204_121048.jpg IMG_20170204_170135.jpg

回路が小規模なので、基板は秋月のDタイプのユニバーサル基板を使用しています。ケースはテイシン電機のTC-102(W55xD75xH20)がちょうど良いサイズだったので使いました。トランジスタは放熱するためにケースに取り付けています。

IMG_20170204_152507.jpg IMG_20170204_180809.jpg

R7の両端の電位差が1.0VになるようにVR1を調整して出来上がりです。
DCジャックとバナナジャックと基板がギリギリ収まってます。
電源SWは無し。使用する電源のコンセントが手元にあり、SWでON/OFFできるのでそれで代用します。

IMG_20170205_081941.jpg

試しにカラーコード表記で0.47Ω±5%の抵抗器を測定したところ、47.1mVとなったので 0.471Ω。ちゃんと100mA流れてるみたいです(厳密には少し少な目になっているハズですが)。

これで、1Ω以下の抵抗も選別できるようになったので、次のステップに移行できます。
スポンサーサイト

tag : 計測

KiCadを使ってみた。

今まで、回路図エディタのBSch3Vが気に入っていたのでその延長でCADソフトは Minimal Board Editor(MBE) を使っていた。MBEって結構自由度が高くてすごくいい感じで使い続けているのだけど、トラ技でKiCadが取り上げられているのを見てお試しで使ってみようと思い基板を作ってみました。

KiCadの使い方はググればいっぱい出てくるのでそっちに任せて…。自分が作ったのは簡単すぎず難しすぎず、実用性のある物として USB-UART 変換基板を作成することにしました。

6年前に秋月のキットとレベル変換ICを使って作った物をオリジナル基板にしただけなんですけどね。常々もう2つないし1つ欲しいと思っていたのでこれが最適かなと。

回路図はこんな感じです。

usb_uart_circuit_diagram.png

前回作成したのでは必ずリファレンス電圧を相手からもらう設計だったけど、5V, 3.3Vだけは自前で供給できるようにしました。その他の電圧の場合は相手からもらうということで。この改良をしたかったのも目的の1つだった訳です。

KiCadって結構MBEに似た思想と思える部分が多く少し好感触。いつの間にか手配線ですましてしまって自動配線機能を使わずじまいになってしもたです。この点は次の機会に使ってみることにする。

まー、初めて使うCADソフトで不慣れだったのと注意力が欠けていて2点やってしまいました。それは、mini-USBコネクタのパッドをリフロー用と思われる物を使ってしまって手はんだがやりずらくなった事と、隣り合う部品の番号を逆に配置してしまった事です(パターンは会っててシルクが間違っている)。

usb_mini_b.png usb_uart_cg_c9.png

基板発注はこれまた初めてのELECROW。いつもはFusionPCBだったけどなんとなく変えてみた。ELECROWで一番驚いたのは基板が出来上がって発送するときにできた基板の写真を送ってきた事。作成までちゃんとやったから後は配送業者の責任だよ的な意味合いなのかな?

基板が到着して、早速3枚作ってみました…本当は4枚だったのだけど、やはりmini-USBコネクタのところのはんだ付けが難しく、1枚失敗しちゃったんですね orz

動作確認もしてイッチョアガリ!

IMG_20160724_182215.jpg

tag : KiCad

誘導起電力の実験

電子回路の部品で重要であるにも関わらず理解出来ていない部品の一つにトランスがあります。今回はトランスの理解を深めるべく簡単な実験をしてみました。トランス以前にインダクタの理解をしておかないといけないのですが……すっ飛ばしてます。いつかしっぺ返しがくるでしょう。

単にトランスと言っても色々な要素があります。製品としての電源トランスを購入するのならさほど知識が無くても使えます。なので、もっともっと基礎的で手軽に実験出来る事をしてみようと、コイルを2つ使っての実験をしてみました。

実験内容はコイルの片方に交流電圧を印可し、もう片方に発生する起電力を2つのコイルの軸の向きを変えて測定しました。

使用したコイルは5mHと40mH(RLCメータで確認した所、5.64mHと41.1mH)です。

RIMG0547.jpg RIMG0546.jpg

5mHのコイルにファンクション・ジェネレータで 2.12V(6Vpp),90kHz の交流電圧を印可した時の40mHのコイルに発生する電圧を電子電圧計(ミリボル)で計測しました。

それぞれの位置関係での起電力…電圧は次のようになりました。
※ 写真では「600」と書かれている方が5mHのコイルです。


入力:5mH,2.12V,90kHz  出力:40mH,11.8V
RIMG0548.jpg

入力:5mH,2.12V,90kHz  出力:40mH,12V
RIMG0549.jpg

入力:5mH,2.12V,90kHz  出力:40mH,4.15V
RIMG0550.jpg


この結果は意外でした。私の考えでは軸を同じにする(1枚目)のが一番誘導が大きいと思っていたのですが、実際には真横(2枚目)が一番大きかったです。

次は、周波数による変化を計測してみました。2つのコイルの置き方は前の結果から真横に置いて、電圧はそのままで周波数を変化させました。

coil_induction.png

これはこれでかなり面白い結果となりました。
コイルの構造に大きく影響を受けると思いますが、今回のケースでは90kHz部分をピークに後は90kHzよりも早くても遅くても急激に誘電力が落ちています。

以上の実験より、このコイルの組み合わせでは「真横に配置する」「90kHzで発振させる」と電磁誘導が最も大きくなると言えます。

この結果と電気磁気学の本に書かれている内容を照らし合わせて理解を深めればもっとインダクタはトランスを使った回路を理解出来るのではないかと思っています。

LCD(TN 1/3 bias, 1/4 duty) を汎用I/Oポートで出力制御

1/3 bias,1/4 duty のSEG-LCDを表示したくなりました。切っ掛けは aitendo で FMラジオ周波数表示器[FM1888-9P2.0]を販売しているのを見たからです。なので最終的にこれを表示出来る様にします。

以前、1/1 bias 1/1 duty(スタティック) という最も簡単な方法はチャレンジしたことがあります。今回は 1/3 biasです。これを実現するには +V,+2/3V,+1/3V,0 の4つの電圧を出力する必要があり、汎用I/Oポートで実現するのは無理かな~と思っていたところ、awawa's lab という所でAVRの汎用I/Oポートで実現されている例がありました。これと同じ事をFM3マイコンで実現してみようと思います。

FM3にも内蔵のPull-UP抵抗はあり、ポートを入力に設定するとHi-Zとなるので、構成はそのままでいけそうです。後はそれぞれの抵抗値を計算するだけですが、awawa's lab ではR1,R2の値を求める式がいきなり書かれています。ココくらいは自分で導出してみようと思います。

回路の構成は下図になります。

seg_lcd_4com_3duty_3bias_fig_01.png

マイコンのGPIOと内部のPull-up抵抗、外部に分圧用の抵抗2本の構成です。+V,0の2パターンはGPIOを出力に設定して Hihg/Low を出力することで out端子 を +V,0 にします。問題の+2/3V,+1/3VはGPIOを入力(Hi-Z)に設定して、Pull-upを有効/無効にすることで実現させます。

seg_lcd_4com_3duty_3bias_fig_02.png

Pull-upを無効にしたのが(A)で、Pull-upを有効にしたのが(B)です。
これで+2/3V,+1/3Vを構成出来れば良いことになります。基本的に抵抗を並列接続にするとその合成抵抗値は小さくなるので、(B)のoutを+2/3Vとする方が良さそうです。ということで必然的に、(A)のoutは+1/3Vとなります。この条件で連立方程式を構成して Rpu の値の何倍を R1,R2 とすれば良いか求めてみます。

(A)より、式(1)が求まります。
seg_lcd_4com_3duty_3bias_math_01.png

(B)より、式(2)が求まります。
seg_lcd_4com_3duty_3bias_math_02.png

式(1),(2)より式(3),(4)が導出されます。
seg_lcd_4com_3duty_3bias_math_03.png

これで、マイコン内部のPull-up抵抗値(Rpu)が分かれば、R1,R2を算出することが出来ます。FM3のPull-up抵抗値は約50kΩらしいので、R1=75kΩ, R2=150kΩですね。E24系列でそろえられる値なので、丁度良いです。

1つのポートで4つの電圧を生成出来るか試しにやってみました。

seg_lcd_3bias_pic_00.jpg seg_lcd_3bias_fig_01.png

4つの出力を得られる事が分かりました。

いよいよ実装と行きたい所ですが、そもそも 1/3 bias,1/4 duty って何じゃらホイって所からですね。1/3 bias は上述している様に3等分した電圧をCOM,SEG端子に与える事を指します。1/4 duty はCOMを4つ使ったマトリクス状になっている構造を扱えるということです。FM1888-9P2.0のピンアサインを見るとCOM0~3(PIN1~4)を軸にPIN5~9に関連付けられた所を表示させる構造になってて、例えば3Gのセグメントを表示するにはCOM2(PIN2)とPIN6を有効にさせるのです。複数桁の7セグLEDをダイナミック点灯させるのに似てますね。

7セグLEDと違う点は、LCD(TN)がCOMとSEG端子間で一定の電圧に達しないと黒を表示しないのを利用してダイナミック点灯を行う所です。また、厄介なのが、LCD(TN)の場合は直流電圧をかけ続けてはいけないという点で、これは一定間隔でCOMとSEG端子の電圧を入れ替えて対応します。

言葉ではなかなピンと来ないので、COMとSEG端子の状態を図示してみました。

seg_lcd_4com_3duty_3bias_wave_01.png

黄色で塗りつぶした所が点灯(黒表示)するタイミングです。黄色の部分はCOMとSEG間の電圧がVcc分あります。それ以外の部分では1/3Vccです。使用するLCD(TN)が1/2Vcc以上で点灯(黒表示)する場合、1/3Vccでは表示されない事になります。若干いびつではありますが、一定電圧がかかり続けるって事は無いのも見て取れます。

この状態になるようにプログラムを実装して…動かしてみます。

COM0~3の波形です。
seg_lcd_3bias_fig_02.png

COM3と全点灯した(つもりの)時のSEG端子の波形です。
seg_lcd_3bias_fig_03.png

COM3と適当な数字を表示した(つもりの)時のSEG端子の波形です。
seg_lcd_3bias_fig_04.png

波形はCOM,SEG端子共に良い感じになってます。

ここまでくればLCD(TN)を繋いでも良いでしょう。
ということで繋いで動かしてみたところ、アッサリと表示出来ました。

seg_lcd_3bias_pic_02.jpg seg_lcd_3bias_pic_01.jpg




作成したプログラムは【物置】に置いておきました。

表示パターンは全て定数で持っておき、極力演算部分を減らしたつもりです。
C99の指示付きの初期化子を使った書き方をしてみたので、少し面白い感じになってます。規格化されてから結構日がたっているので常識になってる?

Versaloon基板を自作してみる(基板到着 + 実装 + !?)

基板が届きました。といっても、前回の発注記事の後に電源(USB)のVccとGNDが短絡している事が判明して、もう一度発注し直したので間が空きました。

RIMG0464.jpg

早速実装しました。FXMA108BQXを手付けできるかどうかが心配でしたが、フラックスをぬりぬりして半田付けすると意外と簡単に付ける事ができました。

RIMG0465.jpg

これにVersaloonのファームウェアを書き込んで動作確認をします。この基板(Versaloon_da)はSTM8S-DISCOVERYのST-Link部分のVersaloonに関係無い配線を取り除いた構成になっているので、以前作成したバイナリを書き込みます。書き込みには JTAGKey clone を使いました。

早速LPC1114を繋いでデバッグを開始しようとしたところ、繋がりません。何か嫌~な予感がして、端子出ししておいたUARTのTx,RxとUSB-UART変換とを繋いで同じPCで2つのTeraTermを起ち上げて通信の確認をしてみたが、うんともすんとも言わずです。でも、Versaloon_daのTxを自身のRxへ繋いだ場合は通信出来てます。これはチョッとピンと来るモノがありました。水晶振動子の発振がうまくいってないのではないかと。で、改めて見てみると水晶振動子を基板に付けてしまうというよくありがちな事をやってしまってました。水晶振動子の足を切ってしまった後だったのですが、少し長めに残していたので、半田鏝でチョイチョイ押しながら浮かしてやると、UART通信がうまくできるようになりました。STM32VLDISCOVERYなんかの基板だと大げさなくらい浮かしてますからね…。

RIMG0467.jpg

気を取り直して、LPC1114へSWD接続してOpenOCDから繋ぎます……… !? まだ繋がらないんですけど…。これには参りました。いろいろと試してみたけど結局繋がらず。お手上げ状態で眠りにつき、朝起きた時にまたまた嫌~な予感がしました。VersaloonのFirmwareのソースコードを確認すると、SWD接続にはPB5,PB7,PB9の端子を使っています。自分の回路図を見てみると、PB5,PB7しか繋いでなく、PB9は空きピン扱いになってます。やってしまいました orz  幸い、PB9はPB7へダイレクトに接続でよかったので、ジャンパをとばしました。

RIMG0466.jpg

チップ抵抗の半田付けがきたないですね…。

ジャンパも付け終わり、LPC1114へSWD接続してOpenOCDを起ち上げると、今度はうまく繋がりました。telnetでデバッグできる事も確認できましたし、めでたしめでたしです。一応、修正後の回路図をUPしておきます。

versaloon_da_schematic_v1_2.png

Versaloon_da_parts_list.png



2013年04月24日 追記
部品一覧を追加しました。
載せるのを完璧に忘れていました…。
黒ねこ時計 くろック D02
プロフィール

jujurou

Author:jujurou
運営HP:チャコの部屋
Twitter:jujurou

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
最新記事
最新コメント
カテゴリ
ユーザタグ

ぺるけ RaspberryPi Linux トランジスタ式ミニワッター TRminiWatterPart4 MPD OpenOCD イーサネットコンバータ FON2405E DAC buildroot FM3ペリフェラル BeagleBoneBlack FM3評価ボード library OpenGL mingw ODROID-U2 TL-WR700N Edison bitbake KiCad 計測 VMware シングル FM4 ミニワッター 6N6P プリアンプ 

月別アーカイブ
ランキング

FC2 Blog Ranking

カウンター
検索フォーム
リンク
RSSリンクの表示
QRコード
QRコード
ライセンス
クリエイティブ・コモンズ・ライセンス
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。