日々の記録

ほどよく書いてきます。

オペアンプによるS8100Bの信号の増幅

2019年02月13日 01時18分33秒 | 電子工作

左側のビヘイビア電圧源がS8100Bのモデル。データシートのパラメータから、Vout = -0.00813T+1.748であることがわかる。Tは摂氏温度。

出力インピーダンスが高いらしいのでまずはボルテージフォロワで受ける。
その後1.6Vをレバーの支点にして4.7倍増幅。1.6VはLT431の2.495Vを参照する。


横軸がVoltになっているが温度だと思ってもらいたい。上記の増幅率では-20度くらいで0Vくらい、80度でリニアリティーがなくなるくらいのレンジまで増幅している。
まあ、こんなもんか。もちろん入出力rail-to-railのオペアンプを使えば電源電圧まで振れるけどまずは汎用LM358でトライ。


LM358は
・入力の制限が(電源電圧-1.5)Vまで=3.5Vまで:入力は最大2VなのでOK
・出力は電源30Vで28Vまでとあるので、(電源電圧-2)Vくらい@10kオーム:今回は3VくらいまでならOKだろう。
 探すとボルテージフォロワでテストしているひとがいて3.5Vくらいからクリップと書いてる人もいるがそれは入力側もクリップしているからなんとも言えない。

なお気温の測定にて80℃なんて測定しないだろうから、50度くらいを上限にして増幅率変えようかな。

 

当初オフセットをして増幅するのにどうしようかなと思っていたがなんの事はない。反転増幅回路でVrefを用意したらいいだけだった。備忘録として絵を残しておく。
反転増幅回路はVrefを支点としたシーソーなので次のように絵解きができる。

今回Vref=1.6Vなので上のように計算が可能である。実際に上記の式とLTSpiceの比較は次のようになかなか良い。LTSpiceが必ずしも正しくないだろうから上限3.5Vくらいを見ておけばいいだろう。

気温-20度から50度のレンジは0.14V~3.20VくらいなのでマイコンのADCリファレンス電圧を3.3Vくらいにしておくといいかもしれない。
→現在1.6VをLT431から生成しているが、LT431で3.2Vを作って電圧半分にしたものをリファレンス電圧にしたらいいのではないだろうか。LT431がなかったらLDOの3.3Vレギュレータで。

 

さてマイコン側の仕様:

マイコンは10bitのADCなので分解能は1024階調。ただし、階調を使い切るのか、ADCしたあとの演算を楽にするのかで迷いますが、製品誤差をマイコンで吸収したいのでどうしてもマイコン側で計算するのであまりこだわらずに設定してしまえばいいでしょう。
上記の倍率だと8.13mV/Kの4.7倍で38.2mV/Kの変化量。ADCの基準電圧を3.3Vとして、これを1024快調に分けるとADCの最小分解能は3.22mV。大体0.1度くらいの分解能が期待できる。仮に2.495Vを基準にすると2.44mVが分解能なので0.06℃の分解能。この場合、検出可能な温度は41.5度くらいが上限。気温計としては十分じゃないでしょうか。

 マイコンはATTiny13AとシフトレジスタICで組もうかとも思ったがどうせピンの数が増えるならATMega88などでいいだろうと思ってしまったのでATMega88を前提にしていく。

ピンアサインは上のようになっている。7セグはカソードコモンのタイプを使って次のような回路かと思っています。

コメント (7)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 作ってみたいものリスト | トップ | csvファイルを読み込んでグラ... »

7 コメント

コメント日が  古い順  |   新しい順
いいね (いち)
2019-02-14 06:54:39
仕事忙しそうでなによりです。
合間を探して趣味を持てる時間って大切ですよね。

LM358は寄生発振が少なくて単電源動作できるので昔から重宝してます。
現在ではもっと入力オフセット誤差の小さい物も沢山ありますが。

在庫に持っていたDDS基板を液晶表示する物をPICで組み立ててみました。
http://www.aitendo.com/product/3232
出力にバッファを入れたのですが、今は高速のAMPが手軽に使えて楽ですね。
https://www.chip1stop.com/product/detail?partId=AD01-0015298&mpn=AD8061ARTZ-R2

先日、知り合いからソフトウェアラジオをもらいました。
なかなか高性能で面白いです。(^^)
http://akizukidenshi.com/catalog/g/gM-12353/
返信する
いいね (いち)
2019-03-09 01:17:16
着々と構想が進んでますね。

電子工作の趣味を始めるほとんどの人は、良くわからない部分はまず組んでみて、カットアンドトライで仕上げていく方法をとりますが、
まこちは数値計算から回路設計に入っているので、非常に素質がいいです。(^^)
そのうちに電子部門からお声がかかるかもですね。(笑)

ところで、LEDのダイナミックスキャンに割込ルーチンを使いますか?
この程度の動作なら主プログラムだけでループさせても問題なく作れますけど、割込で表示処理させるとすごくスムーズな動作になります。

おーと、地震だぁ! 岐阜で震度4だそうです。
災害には気をつけましょう。(^^;)
返信する
設計 (まこち)
2019-03-11 00:30:37
段取り8割というように、段取りでほとんど決まってしまうので事前検討は重要です。たぶん、それが設計なんでしょうけど。

LEDのダイナミックスキャンはどうしようか考えものです。AD変換で割り込みをするか、表示のタイマーで割り込みをするか・・・

AD変換時間<<一桁表示時間になるでしょうから
ADCと各桁表示の割り振り計算をしながら割り込みで表示桁を変更、といったふうになるでしょうか。

地震は結構びっくりしました。いよいよ東海地震かと身構えましたがそのまま収まりました。しばらくドキドキしてました。
返信する
割込み (いち)
2019-03-15 00:58:08
不等間隔のダイナミックスキャンは表示にちらつきが出ますから要注意です。
でも小規模なものならメインループだけで組んでも問題は無いと思います。

割込動作は必要なレジスタを理解して手続きをする手間が結構大変ですが、ハードウエアに同期して動作するので、規模が大きくなるとメインプログラムがすごく楽になります。

割り込みルーチン側は極力短く最小限のプログラムにするのがコツです。

バイナリーデータから各桁の7セグデコードまではメインで処理してテーブルに置き、割込では一定周期でテーブルの値をLEDに送るだけといった感じでしょうか。

割込を使うと結構手間がかかります。
が、強力な武器?が手に入りますから、どちらで組かは時間と気力で判断といったところでしょうか?(笑)
返信する
割り込み (まこち)
2019-03-16 01:41:20
以前に割り込みなしでダイナミックスキャン実施したことあります(LM35とマイコン直結)が、その時は問題なさそうでした。
4桁スキャンしたあとにAD変換して各桁の値を表示してから4桁スキャンを実施してました。
なので、処理遅れがあると4桁分の輝度が一瞬低下するような感じでしょうか。目視では違和感ありませんでした。

割り込み処理は難しいですね。割り込み処理中に次の割り込みが入る可能性を考えたりすると、処理時間を適当に見積もってダイナミックスキャンのLED点灯時間に処理ができないか考えてしまいます。
返信する
ちょっと長くなっちゃった (いち)
2019-03-16 02:58:08
この回路なら、メインプログラムだけでループさせても問題ないと思います。

メインプログラムで、

AD変換>各桁7セグデコード>各桁スキャン>ループ

スキャンの時間さえ等間隔なら、その他の処理中はLEDを消しておけばいいだけですから。

時間と気力の余裕があったら割込を試して経験する程度ですね。(^^;)

割込処理中にまた割込がかかることは無いです。
どんな割り込みがかかっても、同じ割込ルーチンに飛んできますから。
(優先割り込みなんて高度な処理もありますが、まず使うことは無いです)

複数割込の場合は、割込ルーチン側でそれぞれの状態フラグを見てアクティブな部分だけを処理することで複数割込を処理できます。

メイン側と同期をとりたければ、割込処理完了の変数を置いて、フラグとしてメインに伝えます。
メイン側はその変数を見て処理し、フラグをリセットすることで次の割込処理の同期がとれます。

ダイナミックスキャンの場合、例えば1mS程度のタイマー割込毎に各桁のテーブルのLEDデータを順番に送ればいいと思います。
最後の桁の表示が終わったら、表示終了フラグを立てメインに同期をとれば、表示途中で値が変わるちらつきも無くなると思います。

同時にタイマー割り込みルーチンにカウンタを入れて1000回カウントしたら1秒変数カウント、1秒が60回カウントしたら1分変数をカウントするなどで簡単に時計が作れます。

割込を使うには、関連するレジスタを調べることが一番めんどうです。
でも一度作れば、次から応用できるので、だんだんと武器が増えてきます。(^^)

っとだらだらと書込すみません。(汗)
返信する
基準周波数 (いち)
2019-03-22 00:00:54
周波数カウンターや、ファンクションジェネレータの周波数を正確に測定するために、10MHzの外部クロックを使います。
今までルビジウム原子発振器の10MHzで0.001Hz以下の精度の基準を使っていました。

ところが安価に販売されているGPSモジュールの1PPS出力を使ってPLL回路を組んで10MHzを作ったところ同等以上の精度の周波数を得られました。

GPS衛星はセシウム原子時計なのですが、大気を通過するときに時間誤差が発生します。
それでも10^-10程度の精度が出るようです。

通常周波数を測定するのに、ここまでの精度は必要ないとしても、絶対的な基準が無いと本当に合っているのかの保証ができないので、基準が安価にできるのは有り難いです。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

電子工作」カテゴリの最新記事