Scoppy; Raspberry pico を使ったオシロスコープ
PicoLabo

Raspberry Pi Pico用オシロスコープ基板 PL2302AFE | picoLABO
製品の概要 PL2302AFEについて PL2302AFE(以下 「本機」といいます)は、Raspberry Pi Picoをオシロスコープ化するAndroidアプリ『Scoppy』に対
応した拡張基板です。本機を使用することで、入力電圧範
本文
Installation & Getting Started
Scoppy
Scoppy is an oscilloscope and logic analyzer powered by your Android phone/tablet and Raspberry Pi Pico or Pico W.
Scoppy のセットアップ

ラズパイPicoオシロ拡張基板で簡易オシロスコープを作る - Qiita
電子工作の機会が増えてくれば欲しくなるのがオシロスコープ。しかし本格的なオシロスコープとなると数万円を超えるとこになり電子工作初心者にとって購入のハードルがぐんと上がります。 たまたまある書店の…
電圧範囲とオシロスコープのアナログ フロントエンド
デフォルト (0 ~ 3.3 V) とは異なる電圧範囲 (-5 V ~ +5 V または 0 V ~ 0.1 V など) を測定するには、信号を減衰/増幅したり、信号を減衰したり増幅したりするために、Pico の前に追加の回路を追加する必要があります。
- ユーザーによる電圧範囲の選択が可能になります (例: 機械的スイッチを使用)。フロントエンドは、ファームウェアとアプリが現在どの電圧範囲が選択されているかを認識できるように、Pico の電圧範囲ピンに適切な値を設定する必要もあります。
-
または
電圧範囲ピンの値を読み取り、それに応じてフロントエンドの範囲を設定します(たとえば、CD4052 などのアナログ スイッチを介して)。電圧範囲ピンの値は、アプリの現在の Volts/Div 設定に従ってファームウェアによって設定されます。
引用元: Scoppy - Oscilloscope and Logic Analyzer Analog Front-End
Analog Front End I : PicoLabo動画の入力バッファ回路抜粋
Analog Front End II : Scoppy開発者の入力バッファ回路の設計事例
Analog Front-End Examples
Scoppy is an oscilloscope and logic analyzer powered by your Android phone/tablet and Raspberry Pi Pico or Pico W.
Design1:電圧範囲 ±12V
回路定数の決め方について、引用元では次のように説明されている。
まず、正しいゲインが入力信号に適用されるように、入力抵抗 Rin1 と Rin2 の値を選択する必要があります。
注記。フロントエンドの入力インピーダンスが高くなるように、高い抵抗値が使用されています。
- 3.3 (ピコの電圧範囲) を入力電圧範囲 (この設計では 12V) で割ることにより、分圧器の必要なゲインを計算します。最終的には 0.275 の値になります。
- Rin2/(Rin1 + Rin2) が必要なゲインと同等になるように、Rin1 と Rin2 の値を選択します。E12 シリーズで機能する値は 680k と 270k です。これらの値を使用したゲインは 0.28 になります。
- 次に、Vref の必要な値を計算します。これを計算する式は次のとおりです。 Vref = Vinmin / (1 - 1/ゲイン) ここで、Vinmin は入力電圧範囲の最小値です。
Design5:1CH 電圧範囲±6V, 2CH 電圧範囲±10V
定数の設計
このフロントエンド回路は、2CH分であることを除けば前項のPicoLabo動画で示された回路と同じである。細かく言えば、容量調整用のコンデンサは含んでいない。
回路定数は次のように考え設計する。
- 振幅±Vsの入力電圧を抵抗分圧により、振幅3.3Vに変換する。(R1 と R2//R3 の抵抗分圧。R3の電源側はGNDと考える。)
- このとき、マイナス電圧を含む振幅3.3Vにバイアス電圧を加えることによって、0~3.3Vにオフセットさせる。(R3 と R1//R2の抵抗分圧。R1の電源側はGNDと考える。)
これらを数式化すると、次のようになる。
電圧範囲を -Vs から+Vsとし、 Rasp pi のADC電圧を 3.3V とするとき、
この条件を Resister Solver で解析すると、各抵抗値は下記のようになる。
入力インピーダンス
--- Transfer Function ---
Analog Front End III : 入力ゲインを選択できるPicoLaboキット回路
GPIO | Input/Ouput | Summary | Description |
---|---|---|---|
2 & 3 | Input - pulled down | CH1 Voltage Range | Currently selected voltage range for channel 1 |
4 & 5 | Input - pulled down | CH2 Voltage Range | Currently selected voltage range for channel 2 |
PcoLaboオリジナルは入力電圧範囲が、±30, ±8, ±2 なので、±10, ±5, ±2, ±1に変更したシミュレーションを行った。さらに、バイアス電圧も少し動かしている。
入力 V(TP0): 黄色、出力 V(adc0): 濃い青色、抵抗分圧点 V(tp3): 水色 である。位相が $\pi/10$ 程度遅れているのと、マイナス3.3Vが必要なところがデメリットである。
DIY事例

・Raspberry Pi Pico と スマホ で オシロスコープ を試してみた : Skyzoo ヨッシーの備忘録
◆マイコンでのオシロスコープを色々ネットで探していたところ ラズパイピコとスマホのアプリでオシロスコープが出来ることを 発見し、さっそく試してみました。 ◆8インチタブレットでの様子(画面が大きく見やすいです) 1.まずはラズパイピコに計測用のプローブ
Raspberry Pi Pico(ラズベリー・パイ Pico)の電源

プロセッサー「RP2040」を搭載した小型のコンピューターボード Raspberry Pi Pico(ラズベリー・パイ Pico)
ラズベリー・パイ財団が独自に開発したプロセッサー「RP2040」を搭載した小型のコンピューターボード「Raspberry Pi Pico(ラズベリー・パイ Pico)」を紹介します。
Raspberry Pi Picoに電源を供給する方法は主に3つあります。USBコネクターにパソコンや5Vの電源ユニットをつなぐ方法(a)、VBUSピンに5Vを供給する方法(b)、VSYSピンに1.8V~5.5Vを供給する方法(c)です。いずれの方法も3V3ピンから外部回路用として3.3Vが出力されます。この3V3ピンは出力専用なので、電源に接続してはいけません。
Recommended ways of powering Raspberry Pi Pico
Hardware design with RP2040 - 3.1 Power
予約済みGPIOの24番はVBUSピンの監視、29番はVSYSピンの電圧監視、23番は省電力制御に用いられています。
Raspberry Pi Pico 電源端子等
Raspberry pi Pico を使うときにどの端子に電源を供給されるかがぱっと見でわからないので、電源系端子についてまとめてた。
VBUS:
結論、VSYSに+5.5~1.8Vを供給してGND端子のいずれかに外部電源GNDを接続するだけでよい。
USBから供給される電圧を 出力する端子 。USBが接続されていると5 Vが供給される。
VSYS:
メインシステム用の電源供給 (入力)する端子 。1.8~5.5Vの範囲で供給する。RP2040には3.3Vレギュレータを介して供給される。VBUSにはダイオードを介して接続されているので、5.5Vを供給してもVBUS側には供給されない。
3V3_EN:
3.3Vを出力するかしないかを選択する端子。3.3VレギュレータのEnable端子に接続されている端子。基板上でVSYSにプルアップされているので、通常動作させる際は端子を開放する。逆にレギュレータをDisableにしたいときはGNDに落とす。
ADC_VREF:
ADCのリファレンス電圧供給用端子。正確なADC値が欲しいときはこの端子にADC用の正確な3.3Vを供給する。基板上で抵抗を介して3.3Vレギュレータに接続されているのでこの端子に3.3V を供給しなくてもADCは動作できる。
AGND:
ADC用グランド端子。他のGND端子と回路図上区別はされていない。ADC_VREFを供給する際にこの端子を使用して電圧リファレンスIC等のGNDと接続する。
GPIO:
設定を変更できるが、デフォルトでは1ピンあたり4mAまで(最大でも12mAまで)。さらに全体で合計50mAまでの電流しか供給できないらしい。また電流を流せば流すほど、ピンの電圧が下がることにも注意
RUN:
RP2040のEnable端子に接続されている端子(リセット端子)。RP2040の内部でプルアップされているので、リセットする際はGNDに落とす。
LED:
GPIO25: 基板上でLEDのアノード側に接続されている端子。
引用元: Raspberry Pi Pico を使ってみる(回路とLチカ)