pdsink – USB PD 3.2 sink stack แบบโอเพ่นซอร์ส สำหรับอุปกรณ์ฝังตัว

pdsink เป็นซอฟต์แวร์โอเพ่นซอร์สสำหรับการทำงานแบบ USB PD 3.2 ในโหมด sink สำหรับอุปกรณ์ฝังตัว (embedded devices) ภายใต้ไลเซนส์ MIT

Vitaly Puzrin พบว่า USB PD stack ส่วนใหญ่มีข้อจำกัด เช่น ผูกขาดกับผู้ผลิต, ต้องทำ NDA, ไม่มีซอร์สโค้ดสาธารณะ, ผูกกับระบบปฏิบัติการ (OS) หรือเฟรมเวิร์กเฉพาะ, ฟีเจอร์โหมด sink ไม่ครบ (เช่น ไม่มีรองรับ EPR),หรือปรับใช้กับ TCPC/MCU รุ่นใหม่ได้ยาก ดังนั้นเขาจึงพัฒนา pdsink ซึ่งตั้งใจให้เป็น stack แบบ sink-only ขนาดเล็ก ไม่ขึ้นกับแพลตฟอร์ม โค้ดอ่านง่าย และปรับให้เข้ากับคอนโทรลเลอร์หลากหลายได้สะดวก

open source USB PD Sink implemetation for embedded devices
ภาพประกอบจาก GitHub repo ของ pdsink

ไฮไลต์ของ pdsink :

 

  • รองรับ USB PD 3.2, SPR (Standard Power Range), และ EPR (Extended Power Range สำหรับแรงดัน 28V ขึ้นไป) ในโหมด sink
  • คอร์ C++ ที่ไม่ผูกกับแพลตฟอร์มใด ๆ (platform-agnostic) ไม่ต้องพึ่ง HAL หรือ RTOS เฉพาะ
  • มีโค้ดตัวอย่างอ้างอิงที่ใช้ชิป OnSemi FUSB302B ร่วมกับ FreeRTOS (บน ESP32-C3)
  • ใช้ไลเซนส์ MIT สามารถนำไปใช้ในผลิตภัณฑ์เชิงพาณิชย์ได้โดยไม่มีข้อผูกมัด
FUSB302G EVB
FUSB302B EVB

pdsink สามารถพบในอุปกรณ์แบบ “sink” (ผู้บริโภคพลังงาน) เช่น เครื่องมือวัด เครื่องมือในห้องแล็บ หรืออุปกรณ์ที่ใช้พลังงานผ่าน PD ที่ออกแบบเอง Vitaly เน้นว่าตัวโปรเจ็กต์ ไม่รองรับ โหมดต้นทาง (SRC), โหมด DRP / DFP / FRS / Alt Modes, สามารถพบซอร์สโค้ด ตัวอย่างชื่อ “fusb302_rtos_esp32c3_arduino” และเอกสารเริ่มต้นใช้งานได้บน GitHub

โครงการ USB PD แบบโอเพ่นซอร์สที่น่าสนใจอื่น ๆ เช่น USB Power Delivery for Arduino ที่ทำหน้าที่เป็น USB PD Protocol Analyzer, USB PD trigger board,  Power sink ระดับสูงบนไมโครคอนโทรลเลอร์ STM32 และ USB-PD driver stack สำหรับ FUSB302

แปลจากบทความภาษาอังกฤษ : pdsink – An open-source USB PD 3.2 sink stack for embedded devices

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา