Trên bo mạch máy chủ, card tăng tốc hay trạm viễn thông, bộ ổn áp điểm tải không còn là khối tương tự thuần tuý. Điện áp ra, ngưỡng bảo vệ, trình tự bật và số đo nhiệt độ đều được đặt và đọc qua một bus hai dây. Khi bo mạch không khởi động, hoặc điện áp lõi lệch vài chục milivôn, kỹ sư phải xem được bộ điều khiển đã gửi lệnh gì và bộ nguồn trả lời gì. Kiểm thử PMBus trên máy hiện sóng là cách làm việc đó. Bài viết trình bày cấu trúc SMBus và PMBus, cách giải mã lệnh khi máy hiện sóng chỉ có bộ giải mã I2C, và các lỗi lớp vật lý hay gặp.

SMBus và PMBus: hai tầng của điều khiển nguồn số
PMBus không phải một bus điện mới. Theo PMBus Part I bản 1.3.1, PMBus dùng SMBus 3.0 làm lớp truyền dẫn và định nghĩa thêm ngôn ngữ lệnh cho bộ nguồn. Đặc tả gồm ba phần: Part I cho truyền dẫn, Part II cho ngôn ngữ lệnh và định dạng dữ liệu, Part III cho AVSBus (thêm vào từ bản 1.3). Theo pmbus.org, các bản hiện hành là PMBus 1.5 và AVSBus 2.0, chỉ cấp theo yêu cầu. Bảng lệnh trích trong bài lấy từ bản 1.3.1 công khai.
SMBus khác I2C ở đâu
SMBus bản mới nhất là 3.3.1 (20/10/2024). Nó dùng cùng khung bit với I2C nhưng thêm các ràng buộc điện và thời gian mà máy hiện sóng phải kiểm tra được. Theo phụ lục B của đặc tả:
- Ngưỡng logic cố định: VIL tối đa 0,8 V, VIH tối thiểu 1,35 V, trễ Schmitt 80 mV. I2C đặt ngưỡng theo 30 %/70 % VDD. Điện áp bus 1,62–5,5 V.
- Tần số tối thiểu 10 kHz trong mọi lớp tốc độ (100 kHz, 400 kHz, 1 MHz). I2C không có tần số tối thiểu.
- Thời gian chờ (timeout): SCL giữ mức thấp quá tTIMEOUT 25–35 ms thì thiết bị phải tự đặt lại giao tiếp. tHIGH tối đa 50 µs.
- Giới hạn kéo dài xung nhịp: thiết bị đích kéo dài tổng cộng tối đa 25 ms mỗi thông điệp, bộ điều khiển tối đa 10 ms. I2C cho phép kéo dài không giới hạn.
- VOL ≤ 0,4 V ở 6 mA cho lớp 400 kHz, chặt hơn mức 0,6 V của I2C.
- PEC (Packet Error Checking): một byte CRC-8 đa thức x8 + x2 + x + 1 ở cuối giao dịch.
- SMBALERT#: đường báo ngắt tuỳ chọn, bộ điều khiển trả lời bằng địa chỉ phản hồi cảnh báo 0001 100b.
PMBus bắt buộc hỗ trợ 100 kHz; 400 kHz và 1 MHz là tuỳ chọn. PEC cũng là tuỳ chọn trong PMBus, nhưng bộ nguồn đã bật PEC sẽ từ chối lệnh sai CRC.

Kiểm thử PMBus: bảng lệnh và định dạng dữ liệu cần thuộc
Mỗi giao dịch PMBus bắt đầu bằng địa chỉ thiết bị rồi tới một byte mã lệnh. Các mã hay gặp nhất khi gỡ lỗi, theo bảng lệnh PMBus Part II 1.3.1:
| Mã | Lệnh | Ý nghĩa khi gỡ lỗi |
|---|---|---|
| 00h | PAGE | Chọn kênh ra trên bộ điều khiển nhiều pha/nhiều ngõ ra |
| 01h | OPERATION | Bật/tắt, chọn biên độ margin |
| 02h | ON_OFF_CONFIG | Nguồn bật theo chân CONTROL, theo lệnh, hay cả hai |
| 03h | CLEAR_FAULTS | Xoá cờ lỗi |
| 20h | VOUT_MODE | Định dạng và số mũ của mọi lệnh điện áp ra |
| 21h | VOUT_COMMAND | Đặt điện áp ra |
| 78h / 79h | STATUS_BYTE / STATUS_WORD | Tóm tắt trạng thái lỗi |
| 88h / 8Bh / 8Ch | READ_VIN / READ_VOUT / READ_IOUT | Số đo từ xa điện áp vào, áp ra, dòng ra |
| 8Dh | READ_TEMPERATURE_1 | Nhiệt độ |
| 98h | PMBUS_REVISION | Phiên bản PMBus mà thiết bị tuân theo |
Hai định dạng số phải tự giải
LINEAR11 dùng cho dòng, điện áp vào, nhiệt độ. Một từ 16 bit gồm 5 bit số mũ N (bù hai, ở phần cao) và 11 bit phần định trị Y (bù hai). Giá trị X = Y · 2N. Ví dụ READ_IOUT trả về từ E864h: N = 11101b = −3, Y = 064h = 100, nên X = 100 × 2−3 = 12,5 A. Trên bus, SMBus gửi byte thấp trước, nên bộ giải mã sẽ hiển thị 64h rồi mới tới E8h.
ULINEAR16 dùng cho điện áp ra: 16 bit không dấu V, còn số mũ lấy từ lệnh VOUT_MODE. Ví dụ VOUT_MODE = 17h: 3 bit cao 000 là chế độ tuyến tính, 5 bit thấp 10111b = −9. READ_VOUT = 0200h = 512 cho 512 × 2−9 = 1,000 V. Nhiều tài liệu gọi định dạng này là “LINEAR16”, nhưng tên trong đặc tả là ULINEAR16. Đọc sai VOUT_MODE là nguyên nhân phổ biến khiến điện áp giải mã lệch đúng một luỹ thừa của 2.

Giải mã I2C mở rộng: cách làm khi máy hiện sóng không có bộ giải mã PMBus
Điều cần biết trước khi chọn máy: theo ma trận tuỳ chọn phần mềm InfiniiVision (5992-3998EN) và trang sản phẩm D9010LSSP cho Infiniium, Keysight không có bộ giải mã riêng cho SMBus hay PMBus. Các gói D3000GENB, D4000GENB, D6000GENB giải mã I2C, SPI, UART/RS232/RS485, I2S và USB-PD. Gói D9010LSSP có thêm SVID, nhưng SVID là bus ổn áp của Intel, không phải PMBus. Vì vậy phương pháp thực tế là giải mã I2C mở rộng: dùng bộ giải mã I2C phần cứng để tách khung, rồi tự ánh xạ byte sang lệnh PMBus.
- Nối đầu dò vào SCL và SDA gần bộ nguồn đích. Nếu có SMBALERT# và CONTROL, đưa chúng lên kênh số của máy MSO.
- Đặt ngưỡng giải mã nằm giữa 0,8 V và 1,35 V để bộ giải mã đọc bit theo đúng ngưỡng SMBus, không theo ngưỡng mặc định.
- Kích hoạt theo địa chỉ và dữ liệu: I2C trigger theo địa chỉ thiết bị cùng byte mã lệnh, ví dụ 21h để bắt mọi lần đặt VOUT_COMMAND.
- Đọc bảng sự kiện (lister): byte đầu sau địa chỉ ghi là mã lệnh, các byte sau là dữ liệu, byte cuối là PEC nếu bật.
- Kiểm tra PEC ngoại tuyến: bộ giải mã I2C coi PEC là một byte dữ liệu thường, không tự kiểm CRC. Xuất bảng sự kiện ra CSV rồi tính CRC-8 bằng script trên máy tính.
- Đối chiếu tương tự: đặt kênh tương tự thứ ba vào điện áp ra của bộ nguồn. Mỗi lệnh VOUT_COMMAND phải kéo theo một bước chuyển áp tương ứng trên cùng trục thời gian.
Bước 6 là lý do máy hiện sóng hơn hẳn bộ phân tích giao thức thuần số. Nó cho thấy quan hệ nhân quả giữa lệnh số và đáp ứng tương tự trên cùng một màn hình. Máy MSO còn cho phép giải mã bus trên kênh số, để dành kênh tương tự cho điện áp và dòng.
Lỗi lớp vật lý khi kiểm thử PMBus
- Timeout do kéo dài xung nhịp: thiết bị giữ SCL thấp gần 25 ms khiến bộ điều khiển bỏ giao dịch. Đo độ rộng mức thấp của SCL bằng phép đo xung hoặc kích hoạt theo độ rộng xung. Bài kiểm thử I3C trình bày thêm về kéo dài xung nhịp trong bối cảnh tương thích I2C.
- Cạnh lên chậm do điện trở kéo lên quá lớn so với điện dung bus. Ở 400 kHz hay 1 MHz, cạnh chậm làm bit bị đọc sai quanh ngưỡng 1,35 V. Phải đo bằng kênh tương tự, bộ phân tích logic không thấy lỗi này.
- VOL quá cao khi nhiều thiết bị cùng kéo xuống hoặc có điện trở nối tiếp, vượt 0,4 V ở lớp 400 kHz.
- Nhiễu chuyển mạch ghép vào SDA/SCL, vì bus đi sát cuộn cảm và nút chuyển mạch của chính bộ nguồn. Kích hoạt theo lỗi giao thức rồi xem kênh tương tự tại thời điểm đó.
- Sai trang (PAGE): lệnh đúng nhưng ghi vào kênh ra khác, vì PAGE trước đó chưa được đặt lại.

Thiết bị Keysight cho kiểm thử PMBus và điều khiển nguồn số
Máy hiện sóng Keysight MSOX3104G (InfiniiVision 3000G X) có băng thông 1 GHz, 4 kênh tương tự + 16 kênh số, 5 GSa/s, bộ nhớ 4 Mpts, ADC 8 bit, trên 1 triệu dạng sóng/giây, màn hình cảm ứng 8,5 inch. Trang sản phẩm D3000GENB ghi gói giải mã I2C/SPI/UART là tiêu chuẩn trên 3000G; nên xác nhận khi đặt hàng. Với bus PMBus ≤1 MHz, băng thông 1 GHz dư nhiều. Nó cần cho việc đo nút chuyển mạch và gợn điện áp ra cùng lúc với giải mã.
Nếu cùng máy còn phải đo cạnh chuyển mạch GaN/SiC nhanh, MSOX4154G (4000G X) nâng lên 1,5 GHz, màn hình 12,1 inch, với giải mã nối tiếp phần cứng tiêu chuẩn theo trang sản phẩm.
Phía nguồn, máy phân tích nguồn DC Keysight N6705C (4 khe mô-đun, tổng 600 W) cấp điện áp vào cho bộ ổn áp dưới thử. Máy có sẵn dao động ký 200 kHz, 512 kpts, độ phân giải tới 18 bit, bộ phát dạng sóng tới 100 kHz và bộ ghi dữ liệu 20 µs–60 s. Công dụng quan trọng nhất trong kiểm thử PMBus là kiểm tra chéo số đo từ xa. So READ_VIN và dòng vào do bộ nguồn tự báo với giá trị N6705C đo độc lập, ở nhiều mức tải và nhiệt độ. Sai lệch giữa hai con số chính là sai số đo từ xa mà firmware quản lý năng lượng đang dựa vào. N6705C không nói PMBus; lệnh vẫn do bộ điều khiển hoặc bộ chuyển đổi USB–I2C phát.
Kết luận
Kiểm thử PMBus là đọc hai lớp cùng lúc: lớp SMBus với ngưỡng cố định, timeout 25–35 ms và PEC, và lớp lệnh với mã lệnh và định dạng LINEAR11/ULINEAR16. Máy hiện sóng Keysight không có bộ giải mã PMBus riêng. Bộ giải mã I2C phần cứng kết hợp bảng lệnh và một script tính PEC vẫn đủ để gỡ lỗi. Kênh tương tự còn cho thấy điều bộ phân tích giao thức không thấy: lệnh số có thật sự biến thành điện áp đúng hay không.
Số đo từ xa của bộ nguồn chỉ được kiểm chứng khi thiết bị đo đối chiếu còn trong hạn hiệu chuẩn. Techmaster Electronics cung cấp dịch vụ hiệu chuẩn máy hiện sóng và máy phân tích nguồn DC theo ISO/IEC 17025. Liên hệ hotline 0908 173 345 để được tư vấn cấu hình đo và lịch hiệu chuẩn.






