投稿

LT3080実験用DC電源プロジェクト(5)LT3080のSETへのDAC→OPA出力の接続

イメージ
  データシートに記載されている基本的なラボ用電源の回路。 後段のLT3080が電圧を決めている。 内部の定電流源10uAから接続された抵抗に流されて発生する電圧がSETに入る事で、Vset≒Voutとなり出力される。10uAで1MΩの場合は10Vになるので、出力が10Vになる。 このSETを外部のDACでコントロールしてやる事で、Voutを可変しようという事。 テスト1(上手く動かない) OPの出力は、SETに接続する前は、9.58V、7.17V、4.77V、 2.413V、0.054Vと変化している事を確認している。 それをそのままSETに接続する。 すると、LT3080の出力は、9.58V、7.17V、4.77V、 2.413Vまでは良いが、0.054Vの所が、2.276Vになる。おや? という子事でOPの出力を見てやると、9.58V、7.17V、4.77V、2.413V、 0.905Vとやはり最後の電圧がゼロ付近になっていない・・・。 テスト2(CRD) LT3080だが出力から少なくとも0.5mA以上引き出さないと出力してくれなくなる。 1.5kの抵抗だと0.75V以上ないと0.5mAにならない。 そこで、出力にCRD、定電流ダイオード2mAを別途用意している-3.3Vに向かって付けてやる。 この状態で、出力を測定してやると、LT3080の出力は、9.58V、7.17V、4.77V、 2.413Vまでは良いが、0.054Vの所が、2.14Vと先ほど2.276からは下がるものの・・・ Voutは必ず電流をゼロ付近でも流してあげないといけないので、このCRDは正解のはずだが・・・他に要因が・・・ テスト2(直列抵抗) OPの出力とSETの間に、10kの抵抗を直列に入れてやる。 そして、この抵抗のOP側とSET側をそれぞれ測定する。 OP側   : 9.58V、7.17V、4.77V、 2.413V、0.054V SET側: 9.68V、7.27V、4.87V、 2.513V、0.155V いずれもSET側は最後の0.054Vの所も含めて100mV高い値に。 これは丁度、10kΩx10uA=100mAで、LT3080の内部電流源から流れてくる電流が超えてくるときの電位差に一致する。 10kΩだと100mAだが、ここを小さい値にしてやる...

LT3080実験用DC電源プロジェクト(4)DACとオペアンプ

イメージ
  秋月定番?のMCP4725をDACには利用。オペアンプは、NJM2745Mを使った(後に理由があり変更する予定だが現時点ではこれ) この時点で、マイコンから指示を送って、DACが所定の出力をし、オペアンプでしっかりと3倍の電圧に変換されている事を確認する。 今回は最初から横着する事を目的に328PBを使っているので、Adafruitから提供されているMCP4725のライブラリーを使ってサクッと動かしてみる。 #include <Wire.h> #include <Adafruit_MCP4725.h> Adafruit_MCP4725 dac; void setup () {   Serial . begin ( 9600 );   Serial . println ( "Hello!" ); // put your setup code here, to run once: //For MCP4725A0 the address: when A0 is high, the adress is 0x61.   dac . begin (0x 60 );   dac . setVoltage ( 0 , true ); } void loop () { // for (uint16_t i = 0; i < 4095; i++) // { // dac.setVoltage(i, false); // delay(1); // } dac . setVoltage ( 4000 , false ); delay ( 3000 ); dac . setVoltage ( 3000 , false ); delay ( 3000 ); dac . setVoltage ( 2000 , false ); delay ( 3000 ); dac . setVoltage ( 1000 , false ); delay ( 3000 ); dac . setVoltage ( 0 , false ); delay ( 3000 ); dac.setVoltage(0, true); 第一引数が0-4095の4096階調の出力を示して、第二引数がtrueならMCP4725ないのEEPRO...

LT3080実験用DC電源プロジェクト(3)電源まわり

イメージ
 電源まわり この段階では、入力は12V(WiiのACアダプター)で実験を進めている。 12Vから5V、3.3V、そして-3.3Vを生成する電源まわり。 ATmega389PBは、5V,3.3Vどちらでも8MHzで動作させられるが、TFT LCD3.3Vを使いたいので3.3Vを用意。5Vはいろいろ使う機会も多いから個別に取り出せるようにしようかと。あとマイナス側の-3.3Vも用意。これは、LT3080は常に出力側にマニュアル上は0.5mA少なくとも流れていないとゼロボルト付近の設定ができないため、マイナス側を用意して定電流ダイオードで出力にゼロ付近でも常に電流を流してやるために用意。その他にもオペアンプ電源のマイナス側をゼロVではなく、マイナス側に振る事で、ゼロ付近を確実に出したいという事で用意している。 ブレッドボード上に用意した姿が上。 5Vの出力には、LD1117を使用。ユニバーサル基板を適当な大きさにカットしたものに実装。チップコンデンサーをそれぞれ用いてCを基板上で実装。入力側のコンデンサーは電圧がそれなりにかかるので耐圧の高いものを利用する。 同じく3.3Vには、AP7333を利用。3.3Vで電流容量がそれなりにあるものなら何でもOKでしょう。手元にあったものから利用。 変換基板の裏側にデータシートの通り1uFのコンデンサーを固定している。 最後に負電圧を作成するためNJU7660A。ボルテージコンバーター。入力した電圧を符号をマイナスにして出力してくれる。チャージポンプでマイナス電源を用意。  ATmega328PB、C340Eの3.3V駆動 マイコンは5Vでも駆動できるが、3.3VのLCDを利用する事を想定して、マイコンそのものを3.3Vで駆動する。 PCからUSBのVBUSに+5Vが供給されるが、PCからの5Vはノイズも多いので、ここはどこにも接続せず利用しない。(赤い〇の部分)。CH340とATmega328PBに3.3Vを与えてやる。これでしっかりPCとコミュニケーション(ファームの書き込みやシリアル通信)ができる。

LT3080実験用DC電源プロジェクト(2)マイコンの準備

イメージ
実験用の電源を自作しようというプロジェクトの続き。  最初に設定した仕様の一つ、”単体の電源としても使えるが、PCからUSB経由で接続すれば、PCのプログラムで制御し動かせるようにする。また、PCから電流、電圧ともに取得できるようにする。” なのでマイコンを選定して、動かすようにする。ベアな ATMEGA328Pを買ってきてArduinoの最小構成を作るってもの。 今までもやった事があるが備忘録かねて。 マイコン選定 手元にあるICのマイコンの候補は以下。  CH32V003F4P6 :32ビットRISC-Vマイコン。秋月価格で60円と安価。基本なんでもこれで作っている愛用品。 https://akizukidenshi.com/goodsaffix/CH32V003.pdf ATMEGA328P-AU :おのずと知られたArduinoNanoに使われているマイコン。以外と高い。秋月価格で410円。 https://akizukidenshi.com/goodsaffix/atmega48-88-168-328_A_P_PA.pdf ATMEGA328PB-AU :上の328Pの後継機種。機能は同じなのに、値段はこちらの方が安い。秋月価格240円。328Pはディスコンが近いのでプレミアム価格が載ってきていて高くつくので、乗り換え用に手元に所有。 https://akizukidenshi.com/goodsaffix/ATMEGA328PB.pdf 今回は、OLED等で電圧、電流を電源として表示する機能を搭載したいし・・かっこよく作りたいと思っているので、悩んだが、メモリが16kBのCH32より、32kBで少し余裕がありながらも低価格のATMEGA328PB-AUを選択。 ATMEGA328PB-AUへのファーム書き込み ブレッドボードで動かすために、32ピンQFP変換基板( https://akizukidenshi.com/catalog/g/g109581/ )に半田で固定するところから。 マイコンのプログラムは横着してarduinoで済ませたいので、ファームを書き込む。 ファーム書き込みのやり方は、いろいろ検索すると出てくるから割愛するが、ざっくりArduinoNanoを使って書き込みの手順は以下。詳細は専門のページに任せて・・・ Mini...

LT3080実験用DC電源プロジェクト(1)基本動作確認

イメージ
 安定化電源を自作しようというプロジェクト 【目指す仕様】 ・ブレッドボードで使うレベルで取り出せる電流はMax1A ・可変できる電圧範囲は0-10V程度 8とか9Vでも十分。しかし、必ずゼロボルトからスイングできるようにする。 ・また市販の実験用の電源と同じく、CC,CVモードを完備する。 ・出力している電圧、電流をモニターして表示する。 ・単体の電源としても使えるが、PCからUSB経由で接続すれば、PCのプログラムで制御し動かせるようにする。また、PCから電流、電圧ともに取得できるようにする。 といったものをめざす。 【LT3080】 ゼロボルトからという点にこだわると可変レギュレーターの中でも、よく使われるLT3080を選択する事とした。文献も多くて作りやすいと思ったから。秋月で入手性もよいのも理由。 【テスト回路の作成①】 データシートに載っているこの回路を全くそのままブレッドボードに。 15uFの電解コンデンサーが手元になかったので22uF(50V)を利用、それ以外は上の構成ならびに、抵抗等の値は同じ。 LT3080Tは、5本のリードが出ているTO-220。ブレッドボードにそのまま刺す事ができない。かと言ってテストで半田してユニバーサル基板に組んでしまうと、一つ750円もする結構お高めなレギュレーター。そこで、 https://akizukidenshi.com/catalog/g/g112264/ XHコネクタのコンタクト端子に抵抗の足の金属を取り付け、LT3080Tの足に刺す事で電気的コンタクトを取るようにする事で配線を行った。 これでも配線が最短になるようには気を使ってはいる。 入力には、ACアダプター(WiiのACアダプターを電源ジャックにしたもの)から12Vを取得し入力。 【テスト回路:CV 電圧出力】 まず、負荷抵抗に10kΩの抵抗を付けて、電圧の範囲を調べる。 1MΩ側の可変抵抗を回してあげて、下限と上限を調査する。 この構成では0.3V~9.7Vの範囲で調整ができた。 下0.3Vの方は、負荷に最低電流0.5mAは流れないと出力をしない。0.3mAぐらいまでは出力するよう。(この点は、ゼロからできるようにと後ほど対策をする予定) 上は入力を12Vとしているが、CCのLT3080を超えた時点でVinが1.3V降下するので、2段で2.6V...

ストレージの追加(転送速度)

イメージ
 NVMe PCIe Gen.3 x4 110mm M.2 (最大 32 Gb/s) SSD 【ADATA】 SSD SU650 960GB SATA 6Gb/secのSATA3にて接続。SSDのスペック通りの数字。 HDD USB3.0経由 ST4000VX015-3CU104 : 4000.7 GB

RAGの力を確認してみた

イメージ
個人で利用している事。営利を目的としていない事。本目的はRAGというものを体感する事である事。日本国の法律において著作権の侵害には相当しない。 質問 日本高血圧学会の高血圧治療ガイドライン2019における 降圧薬治療は高齢高血圧患者の認知機能の保持に有効か?その答えに対する推奨の強さ、エビデンスの強さはいくつとなっているか? 本当の正解を先に示す。2019年のガイドライに記載されているCQの一つ。 認知機能を保持する事は示唆されているが、確固たるエビデンスがないため、推奨の強さ 推奨なし、エビデンスの強さC Gemini Geminiは明確な答えを回答してこない。ある意味、確認できなかったと回答しハルシレーションを回避。 Copilot それっぽい事を回答し、ハルシレーションを起こす。CQの番号も違うし、治療は勧めていない。推奨の強さも異なるし、エビデンスの強さも異なる。 Chat GPT GPTは正確な回答をしてくれる。 外部リソースを参照せず、GPTが学習している内容のみを参照して回答と指示する これでも回答は正解する。学習していると思われる。著作権の問題はどうなっている?勝手に学習していると考えられる。ただ科学的な事実に著作権そのものは適応されず、文章そのものが同じものを返さない限りは問題ないが、日本国の法令上は、著作権者の利益を害する場合は学習させる事はできないはず。 エビデンスの定義についても質問すると「確実性は限定的」とガイドライン記載の定義をしっかり返してくる。  RAGを組んで回答させた場合(あくまで個人でRAGの確認をするために実施しており、商用利用するものでない)

Gemma3 4Bモデルサイズによる違い

 タスクとして、文章の匿名化加工をさせて、モデルによる結果の違いを比較してみました。用意したプロンプトは以下。 ーーーーーーーーーーーーーーーーーーーーーーーーー 以下の【対象文】に含まれる氏名、住所、都道府県名、市町村名、法人名、医療機関名、ビルの名称、続柄(娘や甥といった続柄)の部分をマスキングを実施してください。 例えば、山田さんと人の名前は[氏名]と置き換えます。住所の場合は、[住所]と置換します。 【対象文】 本日午前、宮崎一郎さん(78歳男性)が右下腹部痛を主訴に来院。痛みは昨夜から持続しており、歩行時に増強するとのこと。発熱はなし。既往歴として高血圧と糖尿病あり。持病の治療は、日頃は、近所の長崎ビルにある山口医院(長野県)に通院しているとのこと。妻の宮崎花子さんより「娘から聞いた話による昨夜は痛みで眠れなかった様子」との情報あり。虫垂炎の可能性を考慮し、腹部エコーを施行予定。検査・治療方針について本人および花子さんに説明済み。理解・同意あり。 ーーーーーーーーーーーーーーーーーーーーーーーーー 宮崎、山口、長野というのは都道府県名であると同時に苗字としてもあり得るので、文脈から区別してくるのか?という点でわざとらしく文章内にいれている。 先に、大規模LLMとして、ローカルLLMではない、copilotのプロンプトを投げる模範解答を見ます。 copilot copilot 本日午前、[氏名](78歳男性)が右下腹部痛を主訴に来院。痛みは昨夜から持続しており、歩行時に増強するとのこと。発熱はなし。既往歴として高血圧と糖尿病あり。持病の治療は、日頃は、近所の[ビル名]にある[医療機関名]([住所])に通院しているとのこと。[続柄]の[氏名]より「[続柄]から聞いた話による昨夜は痛みで眠れなかった様子」との情報あり。虫垂炎の可能性を考慮し、腹部エコーを施行予定。検査・治療方針について本人および[氏名]に説明済み。理解・同意あり。 優秀 完璧!指示文もよく理解して、変換してほしいところはすべて変換してくれている。 Gemma-3-4b 4Q K M google/gemma-3-4b 本日午前、[氏名]さん(78歳男性)が右下腹部痛を主訴に来院。痛みは昨夜から持続しており、歩行時に増強するとのこと。発熱はなし。既往歴として高血圧と糖尿病あり。持病の治療は...