迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

PSoC1 MiniProg電流計(2)回路図等

ジャンパピンを追加しました。ターゲットボードの PSoC1 ではなく、この電流計の PSoC1 にプログラムを書き込むときに使います。

表示を変更しました。左側は電流値(mA)ですが、右側はVcc電圧です、486は4.86と小数点を入れたいのですが、電流値表示とのあいだに空白がなくなって見づらくなるのでやむを得ず小数点を省略しました。自分でわかっていればいいのでそれで良しとします。
写真は100Ωの抵抗を負荷として測ってます。
MiniProg電流計改動作

回路図です。ハイサイド電流センサ回路はあれこれと考えたのですが、今回の場合はこれが一番シンプルです。
これは以前使った回路です。
ハイサイド電流センサ回路についてあれこれ考えたり調べた事はいずれ整理して書くつもりです。(あくまでつもりです^^;;)
MiniProg電流計MCP3425_2
スポンサーサイト

PSoC1 MiniProg電流計(1)

とりあえず完成。
PSoC CY8C24123A を使い、電流測定用のADコンバータには MCP3425 を使いました。Vcc電圧測定には PSoC のユーザーモジュール ADCINCVR を使いました。
MiniProg電流計表

基板裏、デジット8桁14セグメントLCDとの接続のため大きな穴をあけてあります。
MiniProg電流計裏

ターゲットボードにつないで測定中。表示の左が電流(mA)、右がVcc電圧(V)。
ターゲットボードとの接続用のケーブルはまだ作ってません。ケーブルが出来ればプログラムしながら電流が測れるようになります。
実験中にちょっと思いついたことがあるので、もうちょっといじってみます。
MiniProg電流計動作


PSoC1 MiniProg電流計(製作中)

PSoC1 ばっかり使ってますが、MiniProg をつないだままでターゲットボードの電流を知りたいことがあります。
最近ではターゲットボードの電源端子に 1Ωの抵抗を入れ両端電圧を測るようにしていますが、昔に作ったものにはそんなことをしていません。そこで考えたのがこれ。
MiniProg とターゲットボードの間に咬まして電流を測ろうと言う魂胆です。
デジットの8桁14セグメントLCDにだいぶ慣れてきたので作ることにしました、ただいま製作中。
MiniProg電流計製作中

これで三つ目、老眼にはつらい半田付けですが、だいぶ慣れました。
digit8桁14セグメントLCD裏

半田付け補助ツール

居酒屋ガレージさんの半田付け補助ツールを入手しました。
手に持つとずっしりとした重量感、手持ちのキッチンスケールで測ると240gでした。
百均で買ったクリップを付けました。
半田付け補助ツール1

色々な使い方が出来ますが、バナナプラグの半田付けに便利。
半田付け補助ツール2

今まではワイヤーストリッパーを使ってたんですが、うまくホールドできなかったんですよ。
半田付け補助ツール3

これは便利です。
もう一つ手に入れようかな。

PSoC抵抗計

実験していた抵抗計を仮組みしました。LCDの大きさに合わせたかったので電池一本で動かします。
電源には以前に何個か買っていた秋月の5VDC-DCコンバータを使いました。

スイッチが不用意に大きいですが、手持ちを使ったためです、他の部品も全部手持ちを使いました。
手持ちの100Ω~100KΩ 1% 抵抗をいくつか測定してみましたが、1%以内に収まってました。
抵抗計組み上げ

抵抗計組み上げ裏

DC-DCコンバータの特性を測ってみました。
出力電圧は 5.1V 出力電流はほぼ 9.8mA でしたので消費電力は 50mW となります。
電池一本だと効率が悪くなります。
秋月DCDC

【追記】
回路図(と言うほどのものではありませんが^^;;)をのせておきます。
Digit14segLCD抵抗計2

PSoC抵抗計・ADCINC14に変更

ユーザーモジュールThermistor をやめ、前の記事で書いた「はじめてのPSoCマイコン」115ページにある「抵抗測定の基本テクニックとサーミスタ温度計の製作」で述べられている方法をADCINC14 を使ってやってみました。詳しくは AN2107 に載ってます。

やってることは同じだから当然同じ結果だろうと思っていたら、手持ちの 15KΩ 0.1% 抵抗が 14.98K と低く表示されてしまいました。
前はちゃんと 15.00K と出たんですが。
基準抵抗は同じ 15KΩ 0.1% なので入れ替えてみましたが変わらず。

ユーザーモジュールThermistor のデータシートを読んでると気になる箇所がありました。

Thermistor_Start.jpg

サンプルレートによってパワー設定が変わるようになっています。なぜ変える必要があるの私の頭ではわかりません。

今回のプロジェクトではPGA_1、PGA_2 及び ADCINC14 はすべて HIGHPOWER に設定していました。

PGA_1_Start(PGA_1_HIGHPOWER);
PGA_2_Start(PGA_2_HIGHPOWER);
ADCINC14_Start(ADCINC14_HIGHPOWER);

これをすべて LOWPOWER に変更したところ 15KΩ 0.1% 抵抗は 15.00K となりました、やれやれ。

でもパワー設定で変わってしまうのは何故か、繰り返しますがわかりません。

手持ちの 62KΩ 1% 金属皮膜抵抗を測っているところ。手持ちのテスターでは 61.7K でした。
基板左側の抵抗と半固定抵抗は無関係です、電圧計の実験をしていたときの名残りです。
表示が4桁になるように丸め処理をしてます。3桁で充分なんでしょうけど、それではちょっとさびしいので。

抵抗計4桁表示

PSoC抵抗計であれこれ測ってみた。

先の記事で作った抵抗計で手持ちの抵抗を測ってみました。
読みが 10KΩ以上の場合は小数点以下2桁に丸めるようにプログラムしてます。

15KΩ 0.1% 抵抗は2個買っておいたので、まずはこれから。
結果は 15.00(KΩ) となりました、これで違ってたら 0.1% の意味ありません。

下の表は手持ちの金属皮膜抵抗をいくつか測ったものです、すべて 1% です。

PSoC抵抗計・測定結果
公称値(KΩ)読み(KΩ)誤差(%)
0.010.00911.111
10.9990.100
4.74.704-0.085
9.19.121-0.230
109.9890.110
1514.970.200
2019.970.150
3332.950.152
9190.800.220
100100.87-0.862
390388.500.386
 


10Ω(0.01KΩ)では誤差が大きくなります、また 390KΩでは表示がばたつきました。
これは原理上の問題です。再度のせますが
Rref と Thermistor をつないだ点の電圧を Vx とすると
Thermistor(の抵抗値) = Rref * ( Vx - VrefLo ) / ( VrefHi - Vx )
で計算します。式の中に引き算が入っているので値が近い場合、桁落ちが起きるためです。
Thermistor_原理

Rrefを切り替えるなどすればいいのでしょうが、複雑になるので今回はやめておきます。

デジット8桁14セグメントLCDを試す(4)抵抗計/ユーザーモジュールThermistorを試す

先の回路を変更して抵抗計を試してみました。
写真は手持ちの 10KΩ 1% を測っているところです。まだゼロサプレスはプログラムしてません。
基板左側の抵抗と半固定抵抗は前の回路でアッテネータとして使ったもので、今回は外してあります。
抵抗計_写真

回路図です、簡単です。
Digit14segLCD抵抗計

PSoC Designer 5.4 SP1 には Thermistor というユーザーモジュールがあります。
ところで引用したサイプレスのサイトでは(今現在)バージョン2.00となっていますが、ここで使ったユーザーモジュールのバージョンは 2.10 です。サイプレスはやる気あるんでしょうか?
サイプレスにとってPSoC1はとっくに終わってるデバイスなんでしょうね。
Thermistor_Parameters.jpg

サーミスタは温度で抵抗値が変化します、まず抵抗値を測定し、サーミスタの特性から温度を求めます。
今回は抵抗測定だけにしました。

「はじめてのPSoCマイコン」115ページにある「抵抗測定の基本テクニックとサーミスタ温度計の製作」で述べられている原理をユーザーモジュール化したものですのでプログラムが簡単になります。
読み出しルーチンです、温度は読まないのでコメントアウトしてあります。

while (!(Thermistor_fIsDataAvailable())); /* Loop until value ready */
//Temperature = Thermistor_iGetTemperature();/* get temperature */
Thermistor_GetResistance(&Resistance); /* get resistance */


原理ですが、下図のようにRref と直列に Thermistor を接続、VrefHi と VrefLo をつないで三点の電圧を測ります。Mux はアナログマルチプレクサです。
Rref と Thermistor をつないだ点の電圧を Vx とすると
Thermistor(の抵抗値) = Rref * ( Vx - VrefLo ) / ( VrefHi - Vx )
で求まります、これによって PGA や ADC のオフセットやゲインエラーがキャンセルできるというのですが、三点を同時に測っているわけはありませんので、測定中にオフセットやゲインが大幅に変化してしまうと誤差になりますが、通常はまず問題にならないでしょう。

Thermistor_原理


うっかりハマッてしまったこと(汗)がありましたので、書いておきます。
Ref Mux は (Vdd/2)+/-BandGap としておきます。他の設定にしてしまうとおかしなことになりました。
抵抗計Global_Resources

ここで使う Rref は基準になる抵抗ですから高精度なものが必要です。デジットで誤差±0.1% の抵抗が140円で売っていたのを覚えていたので買いに行ったのですが、お目当ての10KΩ 0.1% が売り切れ。もう入荷は無いとのことです。他メーカーのなら250円でありましたが、ためらってしまって15KΩにしました。
抵抗値は Thermistor Wizard で設定できますのであまり極端な値でなければ問題ないでしょう。
Thermistor_Wizard.jpg

表示の関係で 1MΩ 以上は測れませんし、レンジ固定なので低抵抗では有効数字が少なくなりますが、よく使う数百オームから数十キロオームの抵抗値を調べるなら充分使えます。

デジット8桁14セグメントLCDを試す(3)電圧計 ADCの変更

EzADC から ADCINCVR に変更。
AGNDをアナログバスに出すためにレジスタをいじってます。

ACB01CR2=(ACB01CR2 & 0b11100011) | 0b00010100 ; // 「改訂はじめてのPSoCマイコン」 p102参照

digit14segLCD_ADCINCVR_20151101085029260.jpg

digit14segLCD_ADCINCVR設定

アナログセッティングはすべてハイパワーとしました。
digit14segLCD_globalResouces2.jpg

前の実験ではうまく行かなかった-2Vでもちゃんと測れるようになりました。
理由はちょっとわかりません、今考え中です。
スピーカーや音符といった特殊記号が出ていますが、どうやって出すか実験中のためです。
電圧表示例ADCINCVR

設定をあれこれといじるのに疲れました^^;;

つぎはMCP3425を使う予定です。

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

ブリッジドT発振回路(3)光るランプ Oct 16, 2017
ダイソーのかぼちゃで電飾 Oct 08, 2017
ブリッジドT発振回路(2)オペアンプとっかえひっかえ Oct 07, 2017
ブリッジドT発振回路(1) Oct 02, 2017
AD587を使った基準電源【追加有り】 Oct 01, 2017
DABPを使った発振回路(5)ランプの特性、分圧抵抗を変更、コンデンサを変更。 Sep 24, 2017
DABPを使った発振回路(4)ランプ変更(修正版) Sep 18, 2017
DABPを使った発振回路(3)LEDからランプ制御へ Sep 09, 2017
DABPを使った発振回路(2) Sep 03, 2017
DABPを使った発振回路 Aug 27, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (420)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (32)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん