💡 PR:この記事の基板は JLCPCB の提供を受けています

この連載で作る基板の製造と部品実装は、JLCPCB 様の提供によるものです(製造費用に充てるクーポンの提供を受けました)。JLCPCB はこちら。

JLCPCB のロゴ

はじめに

このブログでは I2C や SPI の記事をいくつも書いてきましたが、載せられる波形はずっとオシロスコープの画面だけでした。オシロで見えるのは電圧の形までで、「このバイトは 0x76 番地への書き込み」というプロトコルとしての読みは画面に出せません。理由は単純で、ロジックアナライザを持っていないからです。

そこで、自分で作ることにしました。ゴールは次の1台です。

  • PulseView(sigrok)につないで、I2C・SPI・UART をデコードした画面を出せる
  • 16ch・入力は 1.8V〜5V のロジックをそのまま受ける
  • 中身は RP2040。PIO で GPIO をまとめて取り込み、USB で PC に流す
  • 0.4mm ピッチの QFN と 0402 のチップ部品を含むので、手はんだは諦めて JLCPCB の実装サービス(PCBA)に任せる
自作16chロジックアナライザ基板のKiCad 3Dレンダリング。上辺に2×16のピンヘッダ、その下にTXU0104が4個、中央にRP2040

設計が終わった基板(KiCad 10 の 3D ビュー)。上辺の 2×16 ヘッダが 16ch のプローブ入力、その下に並ぶ 4 個の IC がレベル変換、中央の QFN が RP2040。右端の USB-C は 3D モデルが無いので外形線だけ表示されている

第1回のこの記事では、何を載せてどう繋ぐかを決め、KiCad 10 で回路図と4層基板を仕上げ、JLCPCB に PCBA で発注するまでを扱います。中心は回路です。1.8V のロジックを読むために何を挟み、基準電圧をどう切り替えるか。どの部品も、データシートの数字1つか2つで決まっています。

🗓️ 連載「自作ロジアナ」(全3回予定)
  • 第1回 設計と発注(この記事) — 回路・4層基板・製造データ・JLCPCB PCBA の発注
  • 第2回 立ち上げ — 開梱、電源と発振の確認、フロントエンドのしきい値をオシロで実測、PulseView とつなぐ
  • 第3回 実戦投入 — 手持ちの基板の I2C / SPI をデコードする。オシロとロジアナを同じ信号に当てて見比べる
🗓️ 2026年10月4日 追記

基板が届きました。USB-C(J1)は注文時に JLCPCB 側で部品が入手できず、実装から外して手はんだにしました。届いてからの立ち上げは第2回で扱います。また、VREF 切替スイッチ SW1 のコモンのピン番号を実物に合わせて訂正しました(「基準電圧 VREF」の節)。

📝 この記事でやること

  • ロジックアナライザと sigrok / PulseView の基礎、RP2040 で 16ch を取る仕組み
  • 入力回路の方式を、RP2040 の VIH は 2.0V という1つの数字で決めた話と、ファーム3種が同居するピン配置
  • 基準電圧 VREF の切り替えと、スイッチの接点の並び順で電源の短絡を避ける方法
  • 電源・クロック・フラッシュ・USB の構成と、同じ設計をするときの注意3点
  • 4層基板の構成と、JLCPCB 4層の設計値、BOM / CPL(Basic / Extended)
  • PCBA の発注の流れと費用
💡 対象読者

KiCad で2層基板を起こしたことがあって、次は QFN や 4 層、実装サービスまで踏み込みたい方を想定しています。ロジアナを買うか作るか迷っている方にも、中身の仕組みが分かるように書きます。


🧭 ロジックアナライザとは — オシロとの違いと、RP2040 で作れる理由

オシロは「形」、ロジアナは「中身」

ロジックアナライザ(ロジアナ)は、デジタル信号を 0 か 1 か だけで大量に記録する測定器です。オシロスコープが電圧の形を細かく見るのに対して、ロジアナは形を捨てる代わりに本数と長さを取ります。

オシロスコープ ロジックアナライザ
見るもの 電圧の波形(アナログ値) High / Low の並び(デジタル値)
ch 数 2〜4ch が普通(手持ちの OWON VDS3102L は 2ch) 8〜32ch 以上
得意なこと リンギング、立ち上がり、ノイズ、電源の揺れ 複数本の信号の時間関係、プロトコルのデコード
苦手なこと SPI の4本を同時に見る、長時間の記録 電圧レベルの異常(形はそもそも記録しない)

I2C なら SDA と SCL の2本で済むので、オシロでも波形は撮れます。ただ、「アドレス 0x76・書き込み・ACK」と読み下すのはロジアナとデコーダの仕事です。SPI は CS・SCK・MOSI・MISO の4本なので、2ch のオシロではそもそも同時に見られません。

sigrok と PulseView — デコーダは PC 側にある

sigrok はオープンソースの信号解析ソフト群で、PulseView はその GUI です。ロジアナ本体は「サンプリングして PC に送る」だけで、I2C や SPI の解読は PC 上の sigrok のプロトコルデコーダが受け持ちます。だから自作機でも、sigrok が話せるファームを載せれば、市販機と同じデコード画面が手に入ります。

💡 ワード解説:プロトコルデコーダ

取り込んだ 0/1 の列を、通信規格のルールに沿って「START・アドレス・R/W・ACK・データ」のような意味のある単位に読み下すソフトウェアです。sigrok では Python で書かれていて、I2C・SPI・UART をはじめ多数の規格が用意されています。

RP2040 で 16ch を取る仕組み

RP2040 には PIO(Programmable I/O)という、CPU とは別に動く小さな I/O 専用プロセッサが載っています。PIO は複数の GPIO をクロックごとにまとめて読み取れるので、GP0〜GP15 の16本を1命令で取り込み、DMA で RAM に流し込めます。CPU が1本ずつポーリングするのとは桁違いの速さで、これがロジアナ自作に RP2040 がよく使われる理由です。

flowchart TD T["測定対象
1.8V〜5V のロジック"] --> F["入力回路
100Ω + TXU0104
→ 3.3V に変換"] F --> P["RP2040 PIO
GP0〜15 を
まとめて取り込み"] P --> D["DMA
RAM のバッファへ"] D --> U["USB CDC
PC へ転送"] U --> S["PulseView
波形表示と
I2C/SPI/UART デコード"]

ファームウェアは自分では書きません。RP2040 用のオープンソース実装がいくつもあるので、基板をそれに合わせます。候補を4つ並べて比べました。

ファーム PulseView との接続 ch 使うピン 採否
sigrok-pico 専用ドライバ raspberrypi-pico。ただしリリース版 PulseView 0.4.2 には未収録で nightly 版が必要 最大 26(dig26) GP0〜22・GP26〜28 主力
μLA SUMP / OLS 互換(ols ドライバ)。リリース版で動く 16 GP0〜15 保険
dgatf/logic_analyzer_rp2040 SUMP 拡張(ols) 16 GP0〜15(GP18/19 は起動時設定) 動く
gusmanb/logicanalyzer PulseView にライブ接続できない(自前 GUI) 24 GP2 起点・GP0/1 はトリガ用 不採用

ハードウェアの完成度では gusmanb が最も高いものの、「PulseView で使う」という今回の要件に合いません。そこで sigrok-pico を主力にしつつ、GP0〜GP15 に CH0〜CH15 を素直に並べることにしました。こう並べると sigrok-pico(dig26)・μLA・dgatf の3つが無改造で動きます。nightly 版の PulseView でつまずいても、リリース版で動く μLA に書き替えればよい、という保険です。

⚠️ ch 数は 24 ではなく 16

「24ch」という区切りは gusmanb だけのものです。sigrok-pico なら 26ch、μLA / dgatf なら 16ch で、24 はどのファームの区切りとも合いません。26ch にすると μLA / dgatf が先頭 16ch しか使えないうえ、レベル変換 IC が7個に増えて基板も大きくなります。そこで 16ch にしました。


📐 回路 — 1つの数字で決まった入力回路

全体のブロック図

flowchart TD TGT["測定対象
1.8V〜5.5V"] --> J2["プローブ J2 +
直列 100Ω ×16"] J2 --> LS["TXU0104 ×4
A=VREF / B=3.3V"] USB["USB-C J1
+ ESD 保護"] -- "5V" --> LDO["LDO
AMS1117-3.3"] USB -- "5V" --> SW1["VREF 切替 SW1
3.3V / EXT / 5V"] LDO -- "3.3V" --> SW1 SW1 -- "VREF" --> LS LS -- "CH0〜15" --> MCU["RP2040
QFN-56"] LDO -- "3.3V" --> MCU USB -- "USB" --> MCU XT["水晶 12MHz"] --> MCU MCU -- "QSPI" --> FL["W25Q128JV
16MB"] MCU -- "GP23 = OE" --> LS

構成は Raspberry Pi 公式の設計ガイド「Hardware design with RP2040」の最小構成(RP2040・W25Q128・12MHz 水晶・USB)に、16ch の入力回路と基準電圧の切り替えを足したものです。

信号は図の上から下へ1本道です。測定対象の電圧(1.8V〜5V)は、100Ω を通って TXU0104 の A 側に入り、B 側から 3.3V のロジックになって RP2040 の GP0〜GP15 に届きます。PIO がこの16本を同じクロックで取り込み、USB で PC の PulseView へ送ります。電圧の世界が変わるのは TXU0104 の中の1か所だけで、そこから先はすべて 3.3V です。

RP2040 16chロジックアナライザの回路図全体。左から電源とUSB、MCU、フロントエンド4ブロック、プローブヘッダ

回路図の全体(A3・1枚)。左から電源・USB、RP2040 とフラッシュ、入力回路 ×4、プローブヘッダ。部品の配置は機能ブロックごと

入力回路:直結では 1.8V が読めない

入力回路には候補が3つありました。決め手は、RP2040 の VIH=2.0V という1つの数字です。

方式 1.8V ロジック 5V ロジック 部品点数(16ch)
(a) 直列抵抗+クランプで RP2040 に直結 × 読めない △ 絶対最大定格ぎりぎり 48
(b) レベル変換 IC を挟む ○ ○ 28
(c) 高インピーダンスのバッファ+コンパレータ ○ ○ 100 超

RP2040 のデータシートによると、IOVDD = 3.3V のときの High 判定は 2.0V 以上です。1.8V ロジックの High は 1.8V 前後なので、直結ではどう頑張っても High と読めません。しかも RP2040 の GPIO は 5V トレラントではありません(絶対最大定格は IOVDD + 0.5V)。1.8V も 5V も受けるには、間にレベル変換を挟むしかありません。

💡 ワード解説:VIH(入力 High 電圧)

入力ピンが「High」と判定する電圧の下限です。ロジック IC は電源電圧で決まる境目を持っていて、相手の High がこの値に届かないと 1 と読めません。1.8V 系のセンサーを 3.3V マイコンに直結すると読めないことがあるのは、これが原因です。

挟む IC には TI の TXU0104PWR(4bit・一方向のレベル変換)を選び、4個で 16ch にしました。候補の SN74LVC8T245 なら2個で済んで IC 代も $1.4 安いのですが、TXU0104 には測定器として効く性質が3つあります。

TXU0104PWR(採用) SN74LVC8T245PWR
入力 シュミットトリガ シュミットなし(3.3V で遷移は 10ns/V より速くと規定)
未接続の入力 内蔵プルダウンで 0 に固定 外付けプルダウンが 16 本必要
電源範囲 1.08〜5.5V 1.65〜5.5V
最大データレート(この基板の向き) 5V→3.3V で 125Mbps、1.8V→3.3V で 100Mbps 規定なし

ロジアナは、長いジャンパ線でなまった波形を掴む道具です。なまった波形で多重エッジが出ると、測定器のほうが嘘をつきます。シュミットトリガ入力と、プローブを挿していない ch が 0 で落ち着く内蔵プルダウンは、その対策としてそのまま効きます。なお、GitHub の gusmanb/logicanalyzer も同じ TXU0104 を載せて 100Msps で出荷しています。部品選定の裏付けとして参考にしました(回路図とレイアウトは流用していません)。

TXU0104の1ブロック分の回路図。CH0〜CH3の入力が100Ωを通ってA1〜A4へ、B1Y〜B4YからD0〜D3へ出る。VCCAはVREF、VCCBは+3V3

入力回路 1 ブロック(4ch 分)。プローブ → 100Ω → TXU0104 の A 側(VCCA = VREF)→ B 側(VCCB = 3.3V)→ RP2040 の GPIO。OE は 4 個共通で GP23

1ch あたりの構成は プローブ → 100Ω → TXU0104 だけです。100Ω は事故のときの電流制限と反射の抑制が役目で、TXU0104 の入力容量 4pF との時定数は 0.4ns。帯域はほとんど削りません(1kΩ にすると 4ns になり、100MS/s に効いてくるので避けました)。

4個の TXU0104 の OE(出力イネーブル)は1本にまとめて GP23 につなぎ、10kΩ でプルアップしています。GP23 は sigrok-pico のどのモードでも取り込み対象に入っていないピンなので、ch を1本も潰しません。sigrok-pico は起動時に GP23 を High にし、OE に触れない μLA / dgatf ではプルアップのおかげで常に有効のまま動きます。

基準電圧 VREF:スイッチの並び順が回路の一部

TXU0104 の入力しきい値は、A 側の電源 VCCA に追従します。つまり VCCA を測定対象の電源電圧に合わせるのが正しい使い方です。そこで VCCA をまとめて VREF とし、スライドスイッチ SW1 で 3.3V(基板内)/ EXT(外部ヘッダ J3)/ 5V(USB) から選べるようにしました。

VREF切替スイッチSW1の回路図。コモンがピン2でVREF、ピン1が+3V3、ピン3がVREF_EXT、ピン4が+5V

SW1 の結線(2026年10月4日 訂正)。コモン(ピン 2)が VREF、接点はピン 1 = 3.3V・ピン 3 = EXT・ピン 4 = 5V。スライダの順は 3.3V → EXT → 5V

SW1 では接点の並び順が効きます。採用したスライドスイッチ SK13D07VG5 は、データシートの図に SCHEMATIC (SHORTING) と書かれた shorting 型。切り替えの途中で、隣り合う2接点が一瞬つながるタイプです。

flowchart TD subgraph NG["✗ 3.3V と 5V を隣に置くと"] direction LR A1["3.3V(LDO 出力)"] --- A2["5V(USB)"] end subgraph OK["✓ 採用:間に EXT を挟む"] direction LR B1["3.3V"] --- B2["EXT(ふだんは未接続)"] --- B3["5V"] end NG ~~~ OK

3.3V と 5V を隣に置くと、スライドするたびに LDO の出力と USB の 5V が直結し、3.3V レールが RP2040 の上限 3.63V を超えて持ち上がります。間に EXT を挟めば、この2つは決して隣り合いません。部品代ゼロの対策です。

🗓️ 2026年10月4日 訂正:SW1 のコモンはピン 2 でした

公開時はコモンをピン 1 として設計・説明していましたが、届いた実物をテスターで当てると、コモンは孤立したピン 1 の隣のピン 2 でした。データシートの図からコモンを読み違えていました。元の配線のままでは、コモンが 3.3V 側になり、「5V」位置で LDO の出力と USB の 5V が直結するところでした。

届いた基板は、スイッチの足 1 と 2 を基板から浮かせ、ジャンパで入れ替えて改修しました。改修後の VREF は「3.3V」位置で 3.303V、「5V」位置で 4.895V、「EXT」位置は未接続なので 0V です。正しい並びは 3.3V(ピン 1)― コモン(ピン 2)― EXT(ピン 3)― 5V(ピン 4) で、3.3V と 5V が隣り合わない設計意図はそのまま保たれています。上の回路図は訂正後のものです。

shorting 型のスイッチで電源を選ぶなら、コモンがどのピンかは実物で確認するのが確実です。テスターで位置ごとの導通を当てれば、すぐに分かります。

VREF のレールには、SW1 のコモンの直近に 1µF のバルクと、各 TXU0104 の VCCA に 100nF を置きました。さらに VREF で光る LED(D2) を1個付けています。TXU0104 は VCCA が 100mV を下回ると全出力を Hi-Z にするので、EXT を選んで何もつないでいないと全 ch が無反応になります。故障ではなく仕様どおりの動きですが、LED が消えていれば一目で分かります。

電源:USB の 5V から 3.3V と VREF へ

電源の入口は USB-C だけです。5V は ESD 保護(USBLC6-2SC6)を通ったあと、2方向に分かれます。

行き先 経路 使う側
3.3V 5V → LDO AMS1117-3.3(入出力に 10µF) RP2040 の IOVDD・TXU0104 の VCCB(出力側)・フラッシュ
VREF 3.3V または 5V → SW1(EXT なら外部 J3) TXU0104 の VCCA(入力側)
1.1V RP2040 内蔵の LDO(VREG_VIN / VREG_VOUT に 1µF) RP2040 のコア(DVDD)

TXU0104 は VCCA と VCCB が独立した2電源の IC で、入力のしきい値は VCCA、出力の振幅は VCCB で決まります。VCCB を RP2040 と同じ 3.3V に固定しているので、VREF をいくつにしても RP2040 側から見える信号は常に 3.3V です。RP2040 の電源ピンには公式ガイドどおり 1 ピン 1 個の 100nF を置き、3.3V と VREF にもそれぞれ通電表示の LED を付けました。

クロック・フラッシュ・USB は公式の定型どおり

ロジアナ固有でない部分は、公式ガイドの最小構成から外していません。ここで独自色を出しても得るものが無く、発振しない・起動しない基板ほど記事にしづらい失敗は無いからです。

項目 決めたこと 理由
水晶 ABM8-272-T3(12MHz) 公式推奨品。Basic の安い品は ESR / 負荷容量の確認が要るので、Extended の手数料を払って既知良品に
水晶のダンピング抵抗 1kΩ を XOUT 側 公式ガイドの本文には書かれていないが、公式の KiCad 回路図(最小構成の設計例)が XOUT 側
フラッシュ W25Q128JVSIQ(16MB) RP2040 が扱える最大容量で、公式と同じ型番。JLCPCB の Basic 部品なので追加の段取り費がかからない
USB 27Ω 直列 ×2、CC1 / CC2 に 5.1kΩ を各1本 CC 抵抗が無いと USB-C から 5V が来ない
BOOT / RUN BOOT(SW2)は QSPI_SS を 1kΩ 経由で GND へ、RUN(SW3)は GND へ落とすだけ RUN はチップ内でプルアップされているので外付け部品は要らない(公式の最小構成も同じ)

同じ設計をするときの注意3点

ERC(電気的ルールチェック)がエラー 0 でも、回路として正しいとは限りません。発注前に回路図レビューをかけ、3点の指摘を受けました。どれも RP2040 でロジアナを組むなら誰でも当たりうるもので、回路は変えず、使い方と手順の側で潰しています。

# 指摘 対応
1 sigrok-pico の配布版 pico_baseline.uf2 は GP0 を UART TX として出力駆動する。GP0 には TXU0104 の出力が直結なので、出力どうしがぶつかる 書き込むのは pico_dig26.uf2 に統一(UART 無効・GP0〜15 は入力)。baseline は使用禁止
2 AMS1117 のデータシートが安定動作の条件として挙げている出力コンデンサは 22µF タンタル。今回の 10µF セラミックでの安定性は規定が無い そのまま発注し、到着後に 3.3V レールをオシロで観測して確かめる。発振したら 22µF タンタルへ載せ替え
3 外部 VREF(J3)をつないだまま SW1 を動かすと、切り替えの途中で外部電源と内蔵電源が一瞬つながる 運用で回避:J3 を外す → SW1 を選ぶ → つなぐ

1番は、結線をいくら確かめても原理的に見つからない種類の問題です。回路は仕様どおりに繋がっていて、ぶつかるのはファームが GPIO をどう設定するかのほう。上流のソース(sr_device.h の UART_EN 1)を読まないと分かりません。2番は第2回で実測し、結果をそのまま書きます。


🖥️ 基板 — 65 × 45mm の4層に収める

回路図と基板は KiCad 10 で作り、ERC エラー 0、DRC エラー 0・未配線 0 の状態で発注しました。層構成は L1 信号 / L2 GND / L3 電源 / L4 信号 の4層です。4層にしたのは、16本の高速入力の真下に切れ目のない GND 層を置くためで、公式ガイドも応用基板では 4層 1.6mm を選んでいます。

完成した基板の配線図。赤が表面、青が裏面の配線。中央のRP2040から上の4個のTXU0104、右のフラッシュとUSB-Cへ配線が伸びる

配線の完成形(赤 = 表面 F.Cu、青 = 裏面 B.Cu。ベタとシルクは省略)。内層の L2 は全面 GND、L3 は電源。ビアは 181 個

配線図で目を引くのは、ヘッダと TXU0104 のあいだで線が入り組んでいるところです。プローブヘッダは左から CH0→CH15 ですが、RP2040 を上向きに置くと GPIO0 は右端に来ます。ヘッダと RP2040 で並びが逆向きなので、ストレートなレベル変換 IC を挟む以上、16本をどこかで交差させる必要があります。

RP2040 のまわりにも、0.4mm ピッチ QFN ならではの制約があります。パッド幅 0.2mm・パッド間 0.2mm では 0.15mm の線をパッドの間に通せないので、どの線もパッドから外向きに真っ直ぐ出します。0.5mm 幅の電源線はピッチに入らないため、最後の 1.5mm だけ 0.2〜0.25mm に絞ってつないでいます。

部品はほぼすべて PCBA で実装し、手はんだは 2.54mm ヘッダ 2点とスライドスイッチ SW1 だけにする設計にしました(実際の発注では、部品が入手できなかった USB-C も手はんだに回しています)。THT 部品は PCBA に出すと手はんだ工賃が乗るうえ、ケースに合わせて向きを変えたくなるからです。枚数は 5枚で、壊す用・常用・テスト信号発生器用・予備2 です。回路図・基板・製造データは公開予定なので、同じ基板を発注して追体験できます。

部品のサイズも、PCBA に任せる前提で決めました。抵抗やコンデンサは、普段の手はんだ基板では 0603 を使っていますが、今回は可能なところをすべて 0402 にしています(例外は 10µF の 2 個が 0805、LED が 0603)。16ch 分の 100Ω と、各 IC のパスコンを 65 × 45mm に収めるには、この一段小さいサイズが効きました。


🏭 JLCPCB 4層の設計値と製造データ

KiCad に入れた設計値

JLCPCB の公式の製造能力表(4層・外層 1oz)をもとに、限界値ではなく余裕を取った値を Board Setup に入れています。

項目 JLCPCB の限界 この基板の値
スタックアップ — JLC04161H-7628(1.6mm。外層の下 0.2104mm に内層)
最小トラック幅 / クリアランス 0.09mm / 0.09mm 0.15mm / 0.15mm
ビア(外径 / 穴) 0.25mm / 0.15mm 0.45mm / 0.30mm(電源系は 0.65 / 0.35)
シルク線幅 0.15mm 0.15mm
基板端から銅まで 0.2mm 0.3mm
USB 差動ペア — 幅 0.30mm / 間隔 0.15mm(90Ω 狙い)

USB の線幅は、公式ガイドの「1mm 厚 2層なら 0.8mm 幅で約 90Ω」をそのまま使えません。4層ではすぐ下 0.21mm に GND 層が来るので、同じインピーダンスを出す線はずっと細くなります。7628 スタックアップの外層で、エッジ結合マイクロストリップの近似式(IPC-2141)から 0.30 / 0.15mm を出しました。

ビアの穴は、JLCPCB の注文画面にある最小ビアの選択肢 「0.3mm/(0.4/0.45mm)」 に合わせて 0.3mm にしています(外径 0.45mm)。穴と銅の距離は、JLCPCB の公表値 0.20mm に対して、ビアだけ 0.225mm のルールを当てました。

製造データは3ファイル

JLCPCB の PCBA に出すのは、次の3つです。

ファイル 中身
Gerber の zip 銅4層・マスク・シルク・ペースト・外形の Gerber と、ドリル(Excellon、PTH / NPTH を分けて出力)
BOM(bom-jlcpcb.csv) 19 行。全行に JLCPCB(LCSC)の部品番号が入っている
CPL(cpl-jlcpcb.csv) 68 行。実装する部品の座標・回転・面。向きは注文画面の部品配置プレビューで確認する

回路図の 82 部品は、次のように振り分けています。

扱い 部品 点数
PCBA で実装 RP2040・フラッシュ・TXU0104 ×4・LDO・ESD・水晶・USB-C(※)・タクト SW・LED・抵抗・コンデンサ 68
手はんだ(THT) プローブヘッダ J2・EXT ヘッダ J3・スライドスイッチ SW1 3
実装しない(DNP) アナログ用ヘッダ J4・QSPI_SS のプルアップ R23 2
部品なし テストパッド TP1〜TP9(GP16〜22・SWD) 9

※ USB-C(J1)は注文時に部品が入手できなかったため、実装から外して手はんだにしました。

Basic と Extended — 1種類ごとに段取り費がかかる

JLCPCB の部品には Basic(常時フィーダに載っている定番品)と Extended(使うたびにフィーダを掛け替える品)があります。Economic PCBA では、Extended 部品は1種類ごとにフィーダの段取り費 $3.07 がかかります(2026年9月時点の公開料金)。個数ではなく種類で数えるので、Basic で済むところは Basic を選ぶのが定石です。

区分 種類 この基板で使ったもの
Basic 12 W25Q128・AMS1117・タクト SW・LED・100nF・1µF・15pF・10µF・100Ω・5.1kΩ・1kΩ・10kΩ
Extended 6 RP2040・TXU0104・USB-C・USBLC6・水晶 ABM8-272-T3・27Ω

汎用の抵抗でも Basic とは限らず、この基板では USB の直列終端の 27Ω(0402)が Extended です。


🛒 JLCPCB に PCBA で発注する

発注の流れ

flowchart TD G["① Gerber の zip をアップロード
4層・65×45mm を自動認識"] --> P["② PCB の仕様
5枚・4層・1.6mm
JLC04161H-7628・最小ビア 0.3mm"] P --> A["③ PCB Assembly を ON
Economic・実装面 Top"] A --> B["④ BOM / CPL をアップロード
19 行が部品に当たるか・在庫"] B --> V["⑤ 配置プレビューで向きを確認
RP2040・TXU0104・SOT-223
USB-C・LED の極性"] V --> C["⑥ 配送方法を選んで決済"]
  1. Gerber のアップロード:zip を渡すと層数と外形寸法が自動で読み取られます。4層・65 × 45mm になっていれば、外形とドリルが正しく入っています。
  2. PCB の仕様:層数は自動認識のままでよく、自分で選ぶのは枚数・板厚・スタックアップ・最小ビアです。スタックアップを JLC04161H-7628 にしないと、USB の線幅を計算した前提(外層の下 0.21mm に GND)が崩れます。最小ビアは設計値に合わせて 0.3mm/(0.4/0.45mm) を選びます。
  3. PCB Assembly:Economic・実装面 Top を選びます。この基板は SMD 部品がすべて表面なので、片面実装で足ります。
  4. BOM / CPL:JLCPCB の部品に 19 行すべてが当たっているかを見ます。BOM に LCSC 番号を入れておけば、ここで部品を探し直す必要はありません。27Ω などの Extended 部品も含めて、在庫切れの行が無いことも確かめます。入手できない部品があれば、その行を実装から外して手はんだに回す判断もここでできます(今回の USB-C がそれです)。
  5. 配置プレビュー:部品の向きは、ここで目で確かめるしかありません。RP2040 の1番ピン、TXU0104、SOT-223 のタブ、USB-C、LED の極性が見どころです。ずれていれば、この画面で回転を直せます。
  6. 決済:配送方法を選んで支払います。今回は DHL Express にしました。注文から到着までの実際の流れは、下の「配送方法と実際の到着」で追います。

費用

今回の構成(5枚)の見積りは合計 $91.04(PCB $8.00・PCBA $65.98・送料 $17.06、2026-09-21 時点)です。PCBA のうち手数料は、公開料金(2026年9月時点)から次のように見積もれます。

手数料 公開料金 この基板
セットアップ費(Economic) $8.18 $8.18
ステンシル $1.53 $1.53
実装費 $0.0016 / はんだ点 約 280 点 × 5枚 ≒ $2.24
Extended の段取り費 $3.07 / 種類 6種類 = $18.42

残りのほとんどは部品代(RP2040・フラッシュ・TXU0104 ×4 が大半)です。手数料では Extended の段取り費がセットアップ費の2倍以上あるので、Basic で済む部品は Basic にするのが効きます。

配送方法と実際の到着

配送方法は DHL Express を選びました。2026年9月26日に注文が確定し、10月1日に手元に届いています。実際の注文額は見積りとほぼ同じです(請求書では PCB と PCBA が分かれていないので、製品代としてまとめています)。

項目 見積り(9/21) 実際の注文(9/26)
製品代(PCB+Economic PCBA・5枚) $73.98 $73.10($14.62 × 5)
送料(DHL Express) $17.06 $17.04
合計 $91.04 $90.14

注文後は、注文ページの Production Progress で工程ごとの完了時刻が見られます。表示を日付ごとに並べると次のとおりです。

日付 基板(PCB Fabrication・18 工程) 実装(PCB Assembly・8 工程)
9/26 MI(23:15) Data Preparation → Data Finished
9/27 Inner Layer → Lamination → Drilling → Pattern Plating → AOI → 4-Wire Kelvin Test(23:07) Solder Paste Printing(01:14)
9/28 Solder Mask → Silkscreen → HASL → Electrical Test → Final inspection(19:18) —
9/29 — Assembly Setup → Reflow Soldering(17:06)→ SMT Assembly Finished
9/30 From workshop to warehouse(15:45) SMT Assembly QC → Packaging(06:15)
JLCPCB の Production Progress 画面の PCB Fabrication タブ。MI から Final inspection、From workshop to warehouse まで 18 工程がすべて完了し、各工程の完了日時が並んでいる

PCB Fabrication の工程表示。内層から最終検査まで 9/26 深夜〜9/28 夜の約 2 日

JLCPCB の Production Progress 画面の PCB Assembly タブ。Data Preparation から Packaging まで 8 工程がすべて完了している

PCB Assembly の工程表示。リフローは 9/29、QC と梱包は 9/30 朝

表示上の製作日数(Build Time)は PCB が 3 days、PCBA が 3-4 days です。PCBA の完了予定(Estimated finish)は 10/05 21:00 でしたが、梱包は 9/30 に済んでいます。

集荷は 9/30 の夕方です。DHL の追跡表示(時刻は各地の現地時刻)では、中国から香港を経由して名古屋に入り、通関を済ませて国内の配達拠点へ。最後は佐川急便に引き継がれて届きました。

日時 場所 追跡表示
9/30 18:37 中国(ZHUJIANG DELTA AREA) 集荷
9/30 23:34 中国(ZHUJIANG DELTA AREA) 出発
10/1 00:59 → 03:36 香港 仕分け拠点に到着 → 出発
10/1 03:48・06:32 — 通関ステータス更新(輸送中に通関手続きが始まることがある旨の注記)
10/1 07:43 → 08:35 名古屋 仕分け拠点に到着 → 通関完了(07:48)→ 出発
10/1 10:34 国内 DHL の配達拠点に到着
10/1 15:01 国内 第三者に引き継ぎ(国内配送は佐川急便)
10/1 16:42 — 配達完了
JLCPCB の注文ページの Shipment Tracking 画面。2026-09-30 18:37 の集荷から、香港と名古屋の DHL 拠点を経て 2026-10-01 16:42 の配達完了までの履歴が並んでいる

DHL Express の追跡表示。集荷から配達まで 24 時間以内

4 層の PCBA でも、今回は注文確定から 5 日で手元に届きました。内訳は製造と実装で 4 日、配送で 1 日です。日本側の通関もこの 1 日の中で済み、受け取り時の関税・消費税・配送業者の手数料の請求も今回はありませんでした。次に発注するときは「注文確定の 5 日後前後に受け取り」を目安に、立ち上げの準備を組めます。届いた基板の様子と手はんだは、第2回の「届いた基板」に書いています。


💭 所感:回路はデータシートの数字で決まる

📌 技術者として思ったこと(ここは意見です)

この基板の回路は、ほとんどがデータシートの数字1つで決まりました。

入力回路は「VIH 2.0V」の一行で方式が決まり、SW1 の接点順は「shorting 型」の一語で決まりました。VREF を切り替えても RP2040 側が常に 3.3V で済むのは、TXU0104 が VCCA と VCCB を別に持つ2電源の IC だからです。ピン配置も、ファーム4種のソースを重ねたら GP0〜15 しか答えがありませんでした。迷う余地が無いところまでデータシートとソースを読むと、設計はむしろ速く進みます。

一方で、ERC も DRC も通った回路に、ファームが GP0 を出力にする問題が残っていました。回路図は「どう繋がっているか」しか表しておらず、「そのピンをファームがどう使うか」は回路図の外にあります。既製のファームに合わせて基板を作るなら、ファームのピン設定まで回路の一部として読む必要がある、というのが今回いちばんの学びでした。


⚠️ この基板を使うときの注意

同じデータで作る方のために、壊さないための約束をまとめておきます。

# 約束 理由
1 ファームは pico_dig26.uf2 を書く。配布の pico_baseline.uf2 は書かない baseline は GP0 を UART TX として出力にし、CH0 の TXU0104 出力とぶつかる
2 J3(外部 VREF)を外してから SW1 を切り替える shorting 型なので、切り替えの途中で外部電源と内蔵電源が一瞬つながる
3 プローブ入力と EXT は 0〜5.5V まで 過電圧・負電圧の保護回路は無い(100Ω の直列抵抗だけ)
4 1.8V ロジックを読むときは VREF も 1.8V にする(EXT に供給) TXU0104 のしきい値は VREF に追従する
5 VREF を選ばずに(EXT・未接続で)使うと全 ch が反応しない VREF = 0V のとき TXU0104 の出力は Hi-Z。故障ではない

sigrok-pico は、リリース版の PulseView 0.4.2 では動きません(nightly 版が必要)。入れ方は第2回で扱います。


✅ まとめ

📌 この記事のポイント
  • ロジアナの自作は RP2040 の PIO+PC 側の sigrok デコーダという分業で成り立つ。基板はファームに合わせ、GP0〜15 に並べると3つのファームが無改造で動く
  • 入力回路は RP2040 の VIH 2.0V で決まる。直結では 1.8V が読めないので、シュミット入力・内蔵プルダウンの TXU0104 を挟む
  • shorting 型スイッチで電源を選ぶなら、接点の並び順が回路の一部。3.3V と 5V の間に EXT を置く
  • TXU0104 は しきい値が VCCA(VREF)、出力が VCCB(3.3V) で決まる2電源の IC。VREF をいくつにしても RP2040 には 3.3V の信号が届く
  • ERC・DRC が 0 でも、ファームがピンをどう設定するかは回路図の外にある。配布版 pico_baseline.uf2 は GP0 を出力にして CH0 とぶつかるので、pico_dig26.uf2 を使う
  • JLCPCB の Economic PCBA は Extended 1種類ごとに段取り費。USB 終端の 27Ω も Extended。CPL の部品の向きは注文画面のプレビューで確認する

基板が届いたら、第2回は立ち上げです。電源を入れる前のショート確認から、3.3V レールの発振チェック(レビュー指摘2の答え合わせ)、水晶の発振、RPI-RP2 ドライブが見えるまで。そのあとオシロだけでフロントエンドのしきい値を実測し、PulseView で最初の波形を出します。第3回では、手持ちの基板の I2C と SPI をこの1台でデコードします。


よくある質問(FAQ)

Q: 市販の安いロジアナを買うのと比べて、作る意味はありますか?

A: 8ch・24MHz 級の安価な機種なら、買ったほうが安く早いです。自作の意味は、1.8V〜5V を VREF で受ける入力回路、16ch、PulseView のデコードを、中身が全部分かる形で手に入れられることです。設計データは公開予定なので、同じ基板を発注して追体験できます。

Q: なぜ Raspberry Pi Pico をそのまま使わないのですか?

A: Pico でも sigrok-pico は動きます。ただ Pico の GPIO は 3.3V 専用で、1.8V ロジックは High と読めず、5V は定格を超えます。16ch 分のレベル変換と VREF 切り替えを載せるなら、RP2040 ごと1枚の基板にしたほうが配線も GND も素直になります。

Q: JLCPCB の Economic PCBA と Standard PCBA は、どちらを選べばいいですか?

A: 試作の数枚なら Economic が安く済みます。セットアップ費が $8.18(Standard は片面 $25.56)で、段取り費は Extended 部品にだけかかります。発注枚数の上限は 50 枚です。

Q: 届くまで何日かかりますか?

A: 今回は注文確定(9月26日)から到着(10月1日)まで 5 日でした。配送は DHL Express で、中国での集荷から配達まで 24 時間以内です。日本側の通関もその中で済んでいて、関税や手数料の請求はありませんでした。


関連記事


参考


基板提供:JLCPCB(PCB 製造・部品実装)

JLCPCB のロゴ