
第一次拿 MAX30001 EV kit 接到自己身上量 ECG,我以為會看到漂亮的 QRS 複合波。結果示波器上是一條粗到不行的弦波,60 Hz 整整齊齊塞滿整個畫面。
那個瞬間我才真的懂為什麼所有教科書都在講「共模拒斥比」(CMRR)。datasheet 給你一條很漂亮的「CMRR vs 頻率」曲線、低頻段輕鬆破百 dB,但這個數字跟你把兩根電極貼上肉之後實際量到的東西,根本是兩個世界。
這篇是我把 MAX30001 從 EV kit 改成自己 layout 的 ECG patch 一路撞到牆的整理。重點放在 三電極 + RLD(Right-Leg Drive) 這個 datasheet 寫得很簡短、但決定產品能不能用的關鍵環節。
為什麼兩電極不夠用?
ECG 訊號量級大概 0.5–4 mV,而你身上隨便揹著的 60 Hz 共模電壓動輒幾百 mV 到幾伏特。差距是 1000 倍以上。
差動放大器確實會抑制共模——但前提是兩個輸入端「看到的共模電壓真的一樣」。實際上電極與皮膚的接觸阻抗不對稱,就會把一部分共模轉成差模混進訊號裡。
這是 TI 那篇經典 app note SBAA188 Improving Common-Mode Rejection Using the Right-Leg Drive Amplifier 講得很清楚的事(雖然是寫給自家 ADS1298,但原理對 MAX30001 完全通用):整個系統的 CMRR 不是 AFE 的 CMRR,而是 AFE × 電極匹配度的乘積。AFE 給你 100 dB,電極不平衡只有 40 dB,整體就只有 40 dB。
於是兩電極設計的 ECG,最常見的結果就是底下這張圖:

QRS 波被 60 Hz(在台灣也常常是 50 Hz 加諧波)整個吃掉。你可以靠 notch filter 把它砍掉,但代價是 R 波會變形、HRV 計算的準度直接報廢。
第三電極的三種接法(從廢到神)
當你被 60 Hz 蹂躪到第三次,自然會想到「再多接一根線到身體上」。第三電極有三種主流接法,效果差很多。
做法 1:第三電極直接接 GND(最直覺、也最廢)
把第三電極(通常接右腿,所以叫 right leg)直接拉到電路 ground。聽起來很簡單,但有兩個大問題:
- 安全:如果系統沒有 isolated,萬一漏電直接從這條線灌進病人身體。醫療裝置不能這樣搞。
- 沒效:電極與皮膚的接觸阻抗可能高達 100 kΩ,這條「ground 線」其實是一條 100 kΩ 的阻抗,根本拉不住人體電位。
Electrical Engineering Stack Exchange 上有人問過同樣的問題 ,下面的回答直接引用了 Winter & Webster 1983 年那篇被引爆的經典 IEEE TBME 論文:用一個 op-amp 主動 feedback,就能把這個 100 kΩ 的等效阻抗砍掉好幾個數量級。
做法 2:MAX30001 內建 VCM 拉電極(datasheet 官方做法)
這是 MAX30001 datasheet 裡其實寫得清清楚楚、但很多人沒注意到的招式。
晶片內部有一顆 common-mode buffer,產出 650 mV 的 VCM 電壓,原本是給內部電路用的。datasheet 的 General Description 段有一句很關鍵的話:
The common-mode voltage, VCM, can optionally be used as a body bias to drive the body to the common-mode voltage by connecting VCM to a separate electrode on the body through a 200kΩ or higher resistor to limit current into the body according to IEC 60601-1:2005, 8.7.3.
翻成人話:把 VCM 經過一顆 ≥200 kΩ 電阻接到第三電極,貼到病人身上。這顆 200 kΩ 不是隨便寫的,是 IEC 60601-1 第 8.7.3 條對「病人輔助電流」的安全限制——任何單一故障都不能讓流進病人身體的電流超過規定值。
接法大概長這樣(mermaid 流程):
graph LR
subgraph MAX30001
VCM[VCM pin, 650 mV]
ECGP[ECGP]
ECGN[ECGN]
end
VCM -->|R = 200kΩ| BIAS[第三電極]
ECGP --> ELP[ECG+ 電極]
ECGN --> ELN[ECG- 電極]
BIAS -.-> BODY((人體))
ELP -.-> BODY
ELN -.-> BODY
EV kit 上有一個叫 BB_SEL 的 jumper(Body Bias Select):
BB_SEL 1-2:直接用 VCM 當 body bias(datasheet 預設做法)BB_SEL 2-3:用一個可調電壓(R7 trimpot 0–OVDD),方便你實驗其他偏壓
我量過:光是把第三電極從「不接」改成「VCM via 200kΩ」,60 Hz 干擾大概砍掉 30–40 dB,原本被淹沒的 QRS 直接清楚跳出來。這就是為什麼 MAX30001 大多數量產設計都是這個三電極配置。
注意:如果啟用了 VCM body bias,datasheet 建議可以把內部 lead bias resistor(CNFG_GEN 0x10 暫存器裡的 50/100/200 MΩ)關掉,避免兩種 biasing 機制打架。
做法 3:外掛 op-amp 做主動 RLD(最強,但要多一顆 IC)
VCM 的缺點是它是被動的——只是把人體拉到 650 mV 附近,不會主動抵銷共模雜訊。要真的把 CMRR 推到極限,就要加一顆外部 op-amp 做主動 feedback,這就是經典的 Driven Right Leg(DRL) 或 Right-Leg Drive(RLD) 電路。
ADI 官方有一篇 app note 直接給你抄:How to Add Wilson's Central Terminal/Right Leg Drive Functions to the MAX30001/MAX30003 ECG AFEs in a Medical Wearable (若官網連結時好時壞,也可以查同名 Maxim Integrated 鏡像 )。建議的 op-amp 是 MAX44260 (低功耗、低 offset、SC70 包裝),跟 MAX30001 是天作之合。
RLD 的核心原理用一句話講:把 ECGP、ECGN 兩端的共模電壓抓出來、反相放大、回打到第三電極。這個 feedback loop 會主動把人體共模電位「壓回 reference」。
graph LR
ECGP[ECGP] --> R1[R = 1MΩ]
ECGN[ECGN] --> R2[R = 1MΩ]
R1 --> SUM((+))
R2 --> SUM
SUM --> OPAMP([Op-Amp / MAX44260])
VREF[VCM / Vref] --> OPAMP
OPAMP --> RF[R = 350kΩ, safety limit]
RF --> RL[Right Leg, 第三電極]
加了 RLD 之後,等效共模阻抗可以從 100 kΩ 級掉到幾百 Ω 級,整體 CMRR 直接加 20–40 dB。代價就是多一顆 op-amp 與三四顆電阻,以及一個你必須認真設計的 stability margin(loop gain 太高會自激)。
三種做法的選擇表
| 做法 | 額外元件 | CMRR 改善 | 安全性 | 適用場景 |
|---|---|---|---|---|
| 直接接 GND | 0 | ≈ 0 dB | 差 | 不建議 |
| VCM body bias(datasheet 官方) | 1 顆 200 kΩ | +30~40 dB | IEC 60601-1 合規 | 多數消費級 / 中階醫療 |
| 外掛 RLD op-amp | 1 顆 op-amp + 4 顆 R | +50~70 dB | 需 safety resistor | 高階醫療、IEC 60601-2-47 認證 |
我自己的選法:原型先 VCM bias 跑出可看的 ECG,產品送認證前再決定要不要升級到 RLD。多數 wearable patch(不是診斷級 12-lead)VCM bias 就夠了。
MAX30001 EV kit 上手實戰

下面是我從拿到 EV kit 到能穩定看到 ECG 的流程,這部分 Mbed MAX30001-FeatherWing 文件 寫的不完整,這裡補一些細節。
前置條件
- 硬體:MAX30001EVSYS#(含 MAX30001 EV board + MAX32630FTHR + 三條 ECG cable)
- 電源:USB micro 直接餵(或外接 5V 經 LDO)
- GUI:Maxim 官方 Windows GUI(Win7/8/10 OK,Win11 我實測也能跑)
- 電極:3M Red Dot 或 Ambu BlueSensor,丟掉那種沒牌子的便宜貨
Jumper 設定(三電極模式)
J_DRVP open ← BioZ 用,三電極 ECG 時不接
J_DRVN open
DP_BP open
DN_BN open
BP_BN open
BB_SEL 1-2 ← 用 VCM 作 body bias(三電極關鍵!)
J_RBIAS 1-2 ← 接 324kΩ 外部偏壓電阻
預設 jumper 其實已經是「兩電極 + BB_SEL=VCM」,但你必須真的把第三電極(黑色那條 RL/RA cable)接在身上才有效果。我看過太多人 jumper 沒動但 cable 只接兩條,然後抱怨「跟兩電極差不多啊」。
暫存器初始化
關鍵幾個暫存器(這是我做 PCB 之後韌體用的,EV kit GUI 會幫你設):
// 1. 軟體 reset
spi_write(0x08, 0x000000);
// 2. CNFG_GEN (0x10) — 啟用 ECG 通道 + 設定 lead bias
// EN_ECG=1, EN_DCLOFF=1, EN_RBIAS=01 (ECG channel)
// IPOL=0 (sourcing), IMAG=000 (5nA), VTH=00 (300mV)
// EN_BLOFF=00 (BioZ lead off disabled, 因為沒用 BioZ)
// RBIASN=1, RBIASP=1 — 啟用 100MΩ lead bias 到 VMID
// 注意:如果你採用 VCM body bias(三電極接法),
// 建議改為 RBIASN=0, RBIASP=0 避免兩種 biasing 打架。
// 以下這組值是「先單獨驗證 ECG 通道、暫未啟用 VCM bias」的設定。
spi_write(0x10, 0x081007);
// 3. CNFG_CAL (0x12) — 內建校正源(debug 用,量產關掉)
spi_write(0x12, 0x720000);
// 4. CNFG_ECG (0x15) — ECG 通道參數
// RATE=00 (512 SPS), GAIN=11 (160 V/V)
// DHPF=1 (0.5Hz HPF), DLPF=01 (40Hz LPF)
spi_write(0x15, 0x005000);
// 5. 啟動同步
spi_write(0x09, 0x000000); // SYNCH
如果你要進一步加 R-to-R 偵測或 pace detection,再去設 CNFG_RTOR1 (0x1D) 與 CNFG_PACE (0x1A)。
第一次量測的儀式感
電極貼好(RA = 右胸鎖骨下、LA = 左胸鎖骨下、RL = 右下腹),GUI 按下 Start,看到 P-QRS-T 一波一波跑出來的瞬間真的會起雞皮疙瘩。
但你也會發現:當你深呼吸的時候,baseline 會跟著漂;當你動手臂的時候,整個畫面會出現大尖峰(motion artifact)。這些是 ECG patch 接下來要面對的第二輪戰爭,已經超出 RLD 能解決的範圍,要靠數位濾波 + IMU 融合。
從 EV kit 到量產 PCB

EV kit 跑通之後,自己畫板的時候會撞到的問題比想像中多很多。整理我自己跟同事的踩坑紀錄:
踩坑 1:類比電源沒有單獨 LDO
我第一版偷懶把 VAVDD 跟 VDVDD 都從同一顆 1.8V switching regulator 拉。結果 ECG 波形上躺著一隻 SMPS 開關頻率的小尾巴。
解法:類比電源一定要用 ultra-low-noise LDO,例如 MAX8512、TPS7A47 那種 PSRR 高的;EV kit 上用的就是 MAX8512EXK。1.8V 不貴,多放一顆。
踩坑 2:input series resistor 太小,IEC 60601-2-47 測試掛點
EV kit BOM 裡 R26, R27, R29, R30 預設是 0 Ω jumper,但 datasheet Note 3 明確說:
One electrode drive with <10Ω source impedance, the other driven with 51kΩ in parallel with a 47nF per IEC 60601-2-47.
意思是認證測試時,會強制給你一邊接 51 kΩ ‖ 47 nF 的不平衡網路打進來,要看你能不能撐住。量產板務必把這四顆電阻換成 10–51 kΩ + 47 nF 形成 EMI / 共模 LPF,這也是 ECG patch 過 IEC 60601-1-2 EMC 測試的關鍵。
踩坑 3:lead-off 一脫落,RLD loop 自激
這是 TI 那篇 RLD app note SBAA188 特別警告的場景:當其中一個 ECG 電極脫落,feedback loop 會失去輸入訊號,op-amp 直接被 lead-off bias current 推到 rail,整個系統當機。
解法:
- 韌體要連續監測 lead-off 狀態(MAX30001 的
STATUS (0x01)暫存器有LDOFF_NL/NH/PL/PH四個 bit) - 偵測到 lead-off 立刻把 RLD loop 用 analog switch(TS5A3157 那類)打開,避免 op-amp 鎖死
- 重新接觸後再閉合 loop,並做一次 ECG Fast Recovery(
MNGR_DYN 0x05設定)
如果你用 VCM body bias 沒外加 op-amp,這個問題不存在——VCM 是被動 driver,脫落了頂多沒效,不會反鎖。這也是我建議「沒必要就別跳 RLD」的另一個理由。
踩坑 4:BioZ 電流耦合進 ECG
這是同時啟用 ECG 與 BioZ 通道時很常遇到的問題:BioZ 注入的 kHz 級 AC 電流會耦合到 ECG 通道。一些社群實作經驗(例如 TU Wien 一份 bio-signal 整合論文 在類似 wearable 平台上)也回報過必須採用時分量測。
解法:
- 時分(pseudo-simultaneous):交替啟用 ECG 跟 BioZ,犧牲時間解析度換乾淨度
- 或者把 BioZ 電流壓到最小(datasheet 給 8 µA 起跳),並把 ECG LPF 設在 40 Hz 把 BioZ 的 80 kHz 載波濾掉
踩坑 5:電極 cable 太長,遮蔽沒做好
EV kit 給的 cable 是 touchproof 的醫療規格,但我第一版 patch 自己接 1.5m FFC,結果 60 Hz 又回來了。ECG cable 一定要用 shielded twisted pair,shield 接 VCM(不是接 GND)。Patch 設計則應該讓電極離 IC 越近越好(< 5 cm),這也是 chest patch 的優勢。
什麼時候要升級到主動 RLD?
我整理的決策樹:
graph TD
A[ECG 設計需求] --> B{要送 FDA / CE Class IIa+?}
B -->|是| C{要求 12-lead 級 CMRR?}
B -->|否| D[VCM body bias 即可]
C -->|是| E[外掛 RLD op-amp]
C -->|否| F{臨床環境多干擾?}
F -->|手術房, ICU| E
F -->|門診, 居家| D
D --> G[2-3 顆元件就搞定]
E --> H[MAX44260 + 4 顆 R + lead-off switch]
簡單講:消費級 wearable、運動手錶、家用 patch → VCM bias 夠了;醫院監護儀、Holter、過 IEC 60601-2-47 認證 → RLD。
結語
MAX30001 的 datasheet 把三電極設計藏在「Common-Mode Buffer」那一節短短兩句話裡,但這兩句話幾乎決定了你的產品能不能用。VCM body bias 是 80% 場景的最佳解,外掛 RLD 是 20% 高階場景的必須品。
如果你還沒拿到 EV kit,但已經在規劃 ECG 產品,建議直接從 Digi-Key / Mouser 訂一塊 MAX30001EVSYS#(價格自己查當前報價,預算抓百元美金等級),自己貼上身體量一次,比看 100 篇 app note 都有感。等你親眼看過第一次 QRS 從雜訊裡浮出來,所有 RLD、CMRR、IEC 60601 的英文縮寫才會真的進到你的腦袋裡。
下一篇我打算寫「MAX30001 BioZ 量呼吸實戰」——把第四電極加進來、跑 tetrapolar 模式、把胸阻抗信號從 motion artifact 裡撈出來的細節。有興趣的話留言告訴我,我會調整 priority。
延伸閱讀
- MAX30001 Datasheet (Rev 2, 2019/08, ADI 官方 PDF)
- How to Add Wilson's Central Terminal/Right Leg Drive Functions (ADI Design Note)
- TI SBAA188 — Improving CMR Using the Right-Leg Drive Amplifier
- Driven Right Leg Circuit — Wikipedia
- Winter & Webster (1983) Driven-right-leg circuit design, IEEE TBME Vol 30 No 1
- MAX30001 EV Kit User Guide (Farnell mirror PDF)
- Localized Bioimpedance Measurements with the MAX3000x (MDPI Sensors 2021)
- TU Wien — Real-time integration of bio-signals (含 MAX30001 實作經驗)
- How does a driven right leg work? — Electrical Engineering Stack Exchange
- MAX44260 低功耗 op-amp(RLD 推薦選型)
沒有留言:
張貼留言