ไดโอด-โลโก้

ไดโอด AP33772 USB PD Sink Controller Raspberry Pi อินเตอร์เฟส I2C

DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-ผลิตภัณฑ์

การแนะนำ

  • AP33772 Sink Controller ซึ่งทำงานเป็นอุปกรณ์โปรโตคอลของอุปกรณ์ที่มีขั้วต่อ USB PD3.0 Type C (TCD, Energy Sink) มีวัตถุประสงค์เพื่อร้องขอ Power Data Object (PDO) ที่เหมาะสมจาก PD3.0 ที่มีขั้วต่อ USB PD3.0 Type C การปฏิบัติตามข้อกำหนด .XNUMX เครื่องชาร์จ (PDC, แหล่งพลังงาน)
  • รูปที่ 1 แสดง TCD ที่ฝังตัวด้วย PD3.0 Sink controller IC (AP33772) เชื่อมต่อทางกายภาพกับ PDC ซึ่งฝังตัวด้วยตัวถอดรหัส USB PD3.0 (AP43771) ผ่าน
  • สายเคเบิล Type C ถึง Type C ขึ้นอยู่กับเฟิร์มแวร์ที่เข้ากันได้กับ USB PD3.0 ในตัว คู่ AP33772 และ AP43771 จะต้องผ่านขั้นตอนการแนบมาตรฐาน USB PD3.0 เพื่อสร้างสถานะการชาร์จ PD3.0 ที่เหมาะสม
  • AP33772 Sink Controller EVB มอบความง่ายในการใช้งานและความอเนกประสงค์ที่ยอดเยี่ยมสำหรับผู้ออกแบบระบบในการร้องขอ PDO จาก USB Power Delivery Charger โดยส่งคำสั่งในตัว AP33772 ผ่านอินเทอร์เฟซ I2C การออกแบบระบบโดยทั่วไปจำเป็นต้องมีการเขียนโปรแกรม MCU ซึ่งต้องมีการตั้งค่าซอฟต์แวร์เฉพาะ (เช่น IDE) และอาจเป็นกระบวนการพัฒนาที่ใช้เวลานาน
  • ในทางตรงกันข้าม Raspberry Pi (RPI) ซึ่งเป็นคอมพิวเตอร์บอร์ดเดียว (SBC) ที่ทำงานบน Linux OS ที่ใช้งานง่ายและติดตั้งพิน GPIO ที่ยืดหยุ่น มีวิธีง่ายๆ ในการตรวจสอบความถูกต้องของ AP33772 Sink EVB ที่ทำงานร่วมกับ PD Charger เป้าหมายของคู่มือนี้คือเพื่อให้นักออกแบบระบบมีแพลตฟอร์มที่มีประสิทธิภาพในการตรวจสอบความถูกต้องของซอฟต์แวร์บน RPI อย่างรวดเร็ว จากนั้นจึงพอร์ตการพัฒนาไปยัง MCU ที่ต้องการเพื่อตอบสนองความต้องการของตลาดที่ตอบสนองอย่างรวดเร็ว
  • ในฐานะที่เป็นเอกสารเสริมของคู่มือผู้ใช้ AP33772 EVB คู่มือผู้ใช้นี้จะแสดงวิธีง่ายๆ ในการควบคุม AP33772 EVB ด้วย RPI SBC ผ่านอินเทอร์เฟซ I2C
  • บทบาทของบล็อก MCU ที่แสดงในรูปที่ 1 เพื่อเชื่อมต่อกับ AP33772 เล่นโดย RPI คู่มือผู้ใช้นี้ครอบคลุมคำจำกัดความการลงทะเบียนและข้อมูลการใช้งานเช่นampอย่างไรก็ตาม สำหรับข้อมูลที่ครบถ้วนและอัปเดตที่สุด โปรดดูที่คู่มือผู้ใช้ AP33772 EVB (ดูอ้างอิงที่ 2)DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-1
  • รูปที่ 1 – TCD ทั่วไปใช้ AP33772 PD Sink Controller พร้อมอินเทอร์เฟซ I2C เพื่อขอพลังงานจาก USB Type-C PD3.0/PPS Compliance Source Adapter

การตั้งค่าแพลตฟอร์มการตรวจสอบ

AP33772 ตัวควบคุมอ่างล้างจาน EVB
รูปที่ 2 แสดงรูปภาพของ Sink Controller EVB มันมีตัวเชื่อมต่อ Type-C, พิน I2C, พิน GPIO3 สำหรับการขัดจังหวะ, เทอร์มิสเตอร์ NTC สำหรับ OTP, ไฟ LED เพื่อแสดงสถานะการชาร์จและตัวเชื่อมต่อ Vout กับโหลดDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-2

ราสเบอร์รี่ Pi ซีโร่ 2W

  • RPI เวอร์ชันล่าสุดใดๆ ก็ตามสามารถควบคุม AP33772 Sink Controller EVB ผ่านพิน I2C ได้ มีการใช้ Raspberry Pi Zero 2 W (RPI Z2W) ในคู่มือผู้ใช้นี้เพื่อความคุ้มค่าและความอเนกประสงค์ มีฟอร์มแฟกเตอร์ที่เล็กที่สุดในบรรดา RPI ทั้งหมด และรวมเข้ากับ WiFi และ Bluetooth ที่ทำให้การเชื่อมต่อไร้สายไม่มีส่วนประกอบเพิ่มเติม มันตอบสนองวัตถุประสงค์ในฐานะ AP33772 Sink Controller EVB Validation Platform ได้อย่างสมบูรณ์แบบ
  • ผู้ใช้สามารถตรวจสอบอย่างเป็นทางการของ Raspberry Pi webเว็บไซต์สำหรับข้อมูลเพิ่มเติม (https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-3DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-4

การตรวจสอบการเชื่อมต่อแพลตฟอร์มและการเปิดเครื่อง

รูปที่ 5 แสดงการเชื่อมต่อที่สมบูรณ์และการตั้งค่าของ Validation Platform ผู้ใช้ควรทำตามขั้นตอนเหล่านี้:

  1. เชื่อมต่อพิน SCL, SDA และ GND ระหว่าง RPI และ AP33772 EVB
  2. เชื่อมต่อเครื่องชาร์จ PD 65W และ AP33772 EVB ด้วยสาย Type-C
  3. เพิ่มพลังให้กับเครื่องชาร์จ RPI และ PDDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-5

การตั้งค่าซอฟต์แวร์ Raspberry Pi

ระบบปฏิบัติการ Raspberry Pi

  • มีระบบปฏิบัติการต่างๆ มากมายที่รองรับ RPI ในบรรดาสิ่งเหล่านี้ Raspberry Pi OS ได้รับเลือกเนื่องจากเป็นระบบปฏิบัติการที่ใช้มากที่สุดและแนะนำโดยเว็บไซต์อย่างเป็นทางการของ RPI

ดาวน์โหลดอิมเมจ OS และเตรียมการ์ด SD

  • ดาวน์โหลดและติดตั้งเครื่องมือ Raspberry Pi Imager บนพีซี (https://www.raspberrypi.com/software/). ทำตามคำแนะนำเพื่อเตรียม Micro-SD ที่โหลดอิมเมจ OS ที่ถูกต้อง (https://youtu.be/ntaXWS8Lk34/). โปรดทราบว่าแนะนำให้ใช้การ์ด Micro-SD ขนาด 32BG หรือสูงกว่าDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-6

การติดตั้งระบบปฏิบัติการ Raspberry PI

  • ใส่การ์ด Micro-SD ที่โหลดด้วย Imager ก่อนหน้านี้ลงในช่องเสียบ Micro-SD ของ RPI เชื่อมต่ออะแดปเตอร์เพาเวอร์ เมาส์/คีย์บอร์ด และจอภาพ HDMI เปิด RPI และทำตามคำแนะนำเพื่อทำการติดตั้งระบบปฏิบัติการและการตั้งค่าพื้นฐานให้เสร็จสมบูรณ์ ตรวจสอบให้แน่ใจว่ามีการอัปเดตล่าสุดอยู่ในระบบปฏิบัติการ

การตั้งค่าคุณสมบัติที่จำเป็น

  • เพื่อให้เรียกใช้อินเทอร์เฟซ I2C บน RPI ได้สำเร็จ เราต้องกำหนดค่าหรือติดตั้งคุณสมบัติ SSH, VNC และ I2C

การกำหนดค่า Raspberry Pi – SSH, VNC, I2C

  • หลังจากการบูท RPI ให้เปิดยูทิลิตี “Raspberry Pi Configure” และเปิดฟีเจอร์ SSH, VNC และ I2CDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-7

การกำหนดค่าอัตรารับส่งข้อมูล I2C

  • แทนที่บรรทัดที่เกี่ยวข้องกับ dtparam และ dtoverlay ใน /boot/config.txt file กับ:
  • dtoverlay=i2c-bcm2708
  • dtparam=i2c_arm=เปิด,i2c_arm_baudrate=640000

การติดตั้ง I2C-Tools

  • I2C-Tools เป็นชุดเครื่องมือที่ให้คำสั่งอย่างง่ายที่ทำงานบนบรรทัดคำสั่งภายใต้ระบบปฏิบัติการ Raspberry Pi ติดตั้ง I2C-Tools บนระบบปฏิบัติการโดยเรียกใช้: sudo apt install i2c-tools

การติดตั้ง SMBus2

  • SMBus2 เป็นโมดูล Python ที่มีฟังก์ชันอำนวยความสะดวกสำหรับผู้ใช้ในการควบคุมอินเทอร์เฟซ I2C ภายใต้สภาพแวดล้อม Python ติดตั้งโมดูล SMBus2 สำหรับ Python บนระบบปฏิบัติการโดยเรียกใช้: sudo pip3 ติดตั้ง smbus2

คำสั่งพื้นฐาน เช่นampเลส

  • คู่มือผู้ใช้นี้สาธิตสองวิธีในการทำงานกับอินเทอร์เฟซ I2C บน RPI พวกเขาคือยูทิลิตี้ I2C-Tools และโมดูล Python SMBus2 คำสั่งพื้นฐานของทั้งสองวิธีจะแนะนำในส่วนนี้

 คำสั่ง I2C-Tools เช่นampเลส

  • แพ็คเกจยูทิลิตี้ I2C-Tools มีคำสั่ง i2cdetect, i2cget และ i2cset การใช้งานแบบง่ายอธิบายไว้ในตัวอย่างampในหัวข้อนี้ สำหรับข้อมูลที่สมบูรณ์เกี่ยวกับยูทิลิตี้ I2C-Tools โปรดดูที่ https://linuxhint.com/i2c-linux-utilities/.
  • ตารางที่ 1 แสดงข้อมูลสรุปการลงทะเบียน AP33772 เพื่อความสะดวกของผู้ใช้ในการแยกย่อยการใช้คำสั่งในส่วนนี้ สำหรับข้อมูลการลงทะเบียนที่สมบูรณ์ โปรดดูคู่มือผู้ใช้ AP33772 Sink Controller EVB
ลงทะเบียน สั่งการ ความยาว คุณลักษณะ เปิดเครื่อง คำอธิบาย
 

ศ.ศ.ป

 

ขนาด 0x00

 

28

 

RO

 

ทั้งหมด 00h

Power Data Object (PDO) ใช้เพื่อเปิดเผยความสามารถด้านพลังงานของ PD Source (SRC)

ความยาวรวม 28 ไบต์

พีโดนัม 0x1C 1 RO 00 ชม. หมายเลข PDO แหล่งที่มาที่ถูกต้อง
สถานะ 0x1D 1 RC 00 ชม. สถานะ AP33772
หน้ากาก 0x1E 1 RW 01 ชม. ขัดจังหวะเปิดใช้งานมาสก์
เล่มที่TAGE ขนาด 0x20 1 RO 00 ชม. แอลเอสบี 80mV
ปัจจุบัน ขนาด 0x21 1 RO 00 ชม. แอลเอสบี 24mA
อุณหภูมิ ขนาด 0x22 1 RO 19 ชม. อุณหภูมิ หน่วย: °C
ส.ค.ส ขนาด 0x23 1 RW 00 ชม. เกณฑ์ OCP, LSB 50mA
อปท ขนาด 0x24 1 RW 78 ชม. เกณฑ์ OTP หน่วย : °C
ดร ขนาด 0x25 1 RW 78 ชม. เกณฑ์การลดอันดับ หน่วย: °C
TR25 ขนาด 0x28 2 RW 2710 ชม. ความต้านทานความร้อน @25°C หน่วย: Ω
TR50 0x2A 2 RW 1041 ชม. ความต้านทานความร้อน @50°C หน่วย: Ω
TR75 0x2C 2 RW 0788 ชม. ความต้านทานความร้อน @75°C หน่วย: Ω
TR100 0x2E 2 RW 03CEh ความต้านทานความร้อน @100°C หน่วย: Ω
อาร์ดีโอ ขนาด 0x30 4 WO 00000000 ชม. Request Data Object (RDO) ใช้เพื่อขอความสามารถด้านพลังงาน
วีดีโอ ขนาด 0x34 2 RW 0000 ชม. ID ผู้ขาย สงวนไว้สำหรับแอปพลิเคชันในอนาคต
พีไอดี ขนาด 0x36 2 RW 0000 ชม. รหัสผลิตภัณฑ์ สงวนไว้สำหรับการใช้งานในอนาคต
ที่สงวนไว้ ขนาด 0x38 4 สงวนไว้สำหรับการใช้งานในอนาคต

ตารางที่ 1 – ข้อมูลสรุปการลงทะเบียน AP33772

ตรวจหาอุปกรณ์ทั้งหมดที่เชื่อมต่อกับ I2C – i2cdetect

  • หากต้องการแสดงอุปกรณ์ i2c ทั้งหมดที่เชื่อมต่อกับบัส I2C-1 ในปัจจุบัน ให้พิมพ์คำสั่งต่อไปนี้ใต้พรอมต์คำสั่ง: i2cdetect -y 1
  • หากเชื่อมต่อ AP33772 Sink Controller EVB ผู้ใช้จะเห็นอุปกรณ์เชื่อมต่ออยู่ที่ที่อยู่ 0x51

อ่าน SRCPDO (0x00~0x1B)

  • คำสั่ง i2cget ไม่รองรับการอ่านบล็อกที่ยาวกว่า 2 ไบต์ ผู้ใช้ต้องใช้ “for loop” เพื่อแสดงข้อมูล PDO ยาว 28 ไบต์ทั้งหมด หากต้องการแสดงข้อมูล PDO ทั้งหมด ให้พิมพ์คำสั่งต่อไปนี้ใต้พรอมต์คำสั่ง bash สำหรับ i ใน {0..27}; ทำ i2cget -y 1 0x51 $ib; เสร็จแล้ว
  • ข้อมูล 28 ไบต์ที่แสดงถึง 7 PDO จะแสดงขึ้น

อ่าน PDONUM (0x1C)

  • หากต้องการแสดงจำนวน PDO ที่ถูกต้องทั้งหมด ให้พิมพ์ต่อไปนี้ภายใต้พร้อมท์คำสั่ง: i2cget -y 1 0x51 0x1c b

อ่านสถานะ (0x1D)

  • คำสั่งนี้รายงานสถานะของ Sink Controller รวมถึง de-rating, OTP, OCP, OVP, คำขอถูกปฏิเสธ, คำขอเสร็จสมบูรณ์ และ พร้อม หากต้องการแสดงข้อมูลสถานะ ให้พิมพ์คำสั่งต่อไปนี้ใต้พรอมต์คำสั่ง: i2cget -y 1 0x51 0x1d b
  • ผู้ใช้ควรใช้คำสั่งนี้หลังจากแต่ละคำขอ RDO เพื่อให้แน่ใจว่าคำขอ RDO สำเร็จโดยการอ่านบิต COMPLETE 4.1.5 เขียนหน้ากาก (0x1E)
  • คำสั่งนี้เปิดใช้งานการขัดจังหวะที่ส่งสัญญาณโฮสต์ผ่านพิน GPIO3 ของ AP33772 การขัดจังหวะ ได้แก่ Derating , OTP, OCP, OVP, คำขอถูกปฏิเสธ, คำขอเสร็จสมบูรณ์ และ พร้อม หากต้องการเปิดใช้งานการขัดจังหวะเฉพาะ ให้ตั้งค่าบิตที่เกี่ยวข้องเป็นหนึ่ง สำหรับอดีตample เพื่อเปิดใช้งานการขัดจังหวะ OCP ให้ตั้งค่าบิต 4 ของการลงทะเบียน MASK เป็นหนึ่งโดยพิมพ์คำสั่งต่อไปนี้ภายใต้พรอมต์คำสั่ง: i2cset -y 1 0x51 0x1e 0x10 b
  • พิน GPIO3 ของ AP33772 จะสูงขึ้นเมื่อมีการทริกเกอร์การป้องกัน OCP

อ่าน VOLTAGอี (0x20)

  • คำสั่งนี้รายงานฉบับtage วัดโดย AP33772 Sink Controller เพื่อรายงานฉบับที่tage พิมพ์ต่อไปนี้ภายใต้พรอมต์คำสั่ง: i2cget -y 1 0x51 0x20 b
  • หนึ่งหน่วยของค่าที่รายงานแสดงถึง 80mV

อ่านปัจจุบัน (0x21)

  • คำสั่งนี้รายงานกระแสที่วัดโดย AP33772 Sink Controller หากต้องการรายงานปัจจุบัน ให้พิมพ์คำสั่งต่อไปนี้ใต้พรอมต์คำสั่ง: i2cget -y 1 0x51 0x21 b
  • หนึ่งหน่วยของค่าที่รายงานแสดงถึง 24mA

อ่านอุณหภูมิ (0x22)

  • คำสั่งนี้รายงานอุณหภูมิที่วัดโดย AP33772 Sink Controller หากต้องการรายงานอุณหภูมิ ให้พิมพ์คำสั่งต่อไปนี้ใต้พรอมต์คำสั่ง:
    i2cget -y 1 0x51 0x22 ข
  • หนึ่งหน่วยของค่าที่รายงานแสดงถึง 1°C
  • อ่านและเขียน OCPTHR (0x23), OTPTHR (0x24) และ DRTHR (0x25)
  • เกณฑ์ OCP, OTP และ Derating สามารถเปลี่ยนเป็นค่าที่ผู้ใช้ต้องการได้โดยเขียนค่าลงในเครื่องบันทึก OCPTHR, OTPTHR และ DRTHR ในฐานะอดีตample หากต้องการเปลี่ยนเกณฑ์ OCP เป็น 3.1A ผู้ใช้ควรเขียน 0x3E (=3100/50=62=0x3E) เป็น OCPTHR โดยพิมพ์ข้อความต่อไปนี้ใต้พรอมต์คำสั่ง: i2cset -y 1 0x51 0x23 0x3e b
  • หากต้องการเปลี่ยนเกณฑ์ OTP เป็น 110°C ผู้ใช้ควรเขียน 0x6E (=110) เป็น OTPTHR โดยพิมพ์ข้อความต่อไปนี้ใต้พรอมต์คำสั่ง:
  • หากต้องการอ่านค่าจาก OCPTHR, OTPTHR และ DRTHR ให้พิมพ์คำสั่งต่อไปนี้ใต้พรอมต์คำสั่ง:
  • i2cget -y 1 0x51 0x23 ข i2cget -y 1 0x51 0x24 ข i2cget -y 1 0x51 0x25 ข
  • อ่านและเขียน TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D) และ TR100 (0x2E~0x2F)
  • เทอร์มิสเตอร์ค่าสัมประสิทธิ์อุณหภูมิติดลบ (NTC) ของ Murata 10KΩ NCP03XH103 บรรจุอยู่ใน AP33772 EVB ผู้ใช้ต้องการเปลี่ยนเทอร์มิสเตอร์เป็นแบบอื่นในการออกแบบขั้นสุดท้าย ผู้ใช้ควรอัปเดตค่าการลงทะเบียน TR25, TR50, TR75 และ TR100 ตามข้อกำหนดของเทอร์มิสเตอร์ที่ใช้ สำหรับอดีตampเล,
  • 6.8KΩ NCP03XH682 ของ Murata ถูกนำมาใช้ในการออกแบบ ค่าความต้านทานที่ 25°C, 50°C, 75°C และ 100°C คือ 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507) และ 662Ω (0x0296) ตามลำดับ ในการเขียนค่าที่สอดคล้องกับการลงทะเบียนเหล่านี้ ให้พิมพ์คำสั่งต่อไปนี้ภายใต้พร้อมท์คำสั่ง:
  • i2cset -y 1 0x51 0x28 0x1a90 วัตต์ i2cset -y 1 0x51 0x2a 0x0ad6 วัตต์ i2cset -y 1 0x51 0x2c 0x0507 วัตต์ i2cset -y 1 0x51 0x2e 0x0296 วัตต์
  • หากต้องการอ่านค่า ให้พิมพ์คำสั่งต่อไปนี้ใต้ command prompt: i2cget -y 1 0x51 0x28 w i2cget -y 1 0x51 0x2a w i2cget -y 1 0x51 0x2c w i2cget -y 1 0x51 0x2e w
  • ค่าเอาต์พุตเป็นคำ 2 ไบต์ เนื่องจากคำสั่งจัดการกับคำ 2 ไบต์โดยตรง ผู้ใช้จึงไม่ต้องกังวลเกี่ยวกับคำสั่งไบต์ endian เล็กน้อยที่นี่

เขียน RDO (0x30~0x33)

  • ในการเริ่มต้นขั้นตอนการเจรจาคำขอ PDO ข้อมูล 4 ไบต์จะถูกเขียนลงในทะเบียน RDO (Request Data Object) ตามลำดับไบต์ย่อย ในฐานะอดีตample หากต้องการร้องขอ PDO3 ด้วย 15V และ 3A 0x3004B12C จะถูกเขียนลงในทะเบียน RDO พิมพ์ต่อไปนี้ภายใต้พรอมต์คำสั่ง: i2cset -y 1 0x51 0x30 0x2c 0xb1 0x04 0x30 i
  • ควรเขียนไบต์ที่มีนัยสำคัญน้อยที่สุด (0x2C) ก่อนเพื่อให้พอดีกับสัญลักษณ์ลำดับไบต์เอนเดียนเล็กน้อย โปรดดูตารางที่ 9 และตารางที่ 10 ของผู้ใช้ AP33772 Sink Controller EVB
  • คำแนะนำสำหรับข้อมูลเนื้อหา RDO โดยละเอียด
  • ผู้ใช้สามารถออกฮาร์ดรีเซ็ตโดยการเขียนการลงทะเบียน RDO ด้วยข้อมูลที่เป็นศูนย์ทั้งหมด: i2cset -y 1 0x51 0x30 0x00 0x00 0x00 0x00 i
  • AP33772 Sink Controller จะถูกรีเซ็ตเป็นสถานะเริ่มต้นและเอาต์พุตจะถูกปิด

คำสั่ง Python SMBus2 เช่นampเลส

  • Python กำลังได้รับความนิยมมากขึ้นจากโมดูลที่รองรับที่หลากหลาย SMBus2 เป็นหนึ่งในนั้นและสามารถจัดการคำสั่งอ่านและเขียน I2C ได้ SMBus2 มีคำสั่ง read_byte_data, read_word_data, read_i2c_block_data, write_byte_data, write_word_data, write_i2c_block_data การใช้งานแบบง่ายอธิบายไว้ในตัวอย่างampในหัวข้อนี้ สำหรับข้อมูลทั้งหมดเกี่ยวกับโมดูล SMBus2 โปรดดูที่ https://smbus2.readthedocs.io/en/latest/.

อ่าน SRCPDO (0x00~0x1B) 

  • SMBus.read_i2c_block_data เป็นคำสั่งที่มีประสิทธิภาพเพื่อรองรับการอ่านข้อมูลบล็อกสูงสุด 32 ไบต์ หากต้องการอ่านข้อมูล PDO ขนาด 28 ไบต์ทั้งหมด ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3:
  • SMBus.read_i2c_block_data(0x51, 0x00, 28)
  • ข้อมูล 28 หนึ่งไบต์ที่แสดงถึง 7 PDO จะถูกส่งกลับในโครงสร้างข้อมูลรายการ

อ่าน PDONUM (0x1C)

  • หากต้องการอ่านจำนวน PDO ที่ถูกต้องทั้งหมด ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3:
  • SMBus.read_byte_data(0x51, 0x1c)
  • ข้อมูลหนึ่งไบต์ที่แสดงจำนวน PDO ที่ถูกต้องจะถูกส่งกลับ

อ่านสถานะ (0x1D)

  • คำสั่งนี้รายงานสถานะของ Sink Controller รวมถึง Derating , OTP, OCP, OVP, คำขอถูกปฏิเสธ, คำขอเสร็จสมบูรณ์ และ พร้อม หากต้องการอ่านข้อมูลสถานะ ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3:
  • SMBus.read_byte_data(0x51, 0x1d)
  • ผู้ใช้สามารถใช้คำสั่งนี้หลังจากคำขอ RDO แต่ละครั้งเพื่อให้แน่ใจว่าคำขอ RDO สำเร็จโดยการอ่านบิต COMPLETE

เขียนหน้ากาก (0x1E)

  • คำสั่งนี้เปิดใช้งานการขัดจังหวะที่ส่งสัญญาณโฮสต์ผ่านพิน GPIO3 ของ AP33772 การขัดจังหวะ ได้แก่ Derating , OTP, OCP, OVP, คำขอถูกปฏิเสธ, คำขอ
  • เสร็จเรียบร้อย พร้อมอยู่ หากต้องการเปิดใช้งานการขัดจังหวะเฉพาะ ให้ตั้งค่าบิตที่เกี่ยวข้องเป็นหนึ่ง สำหรับอดีตample เพื่อเปิดใช้งานการขัดจังหวะ OCP ให้ตั้งค่าบิต 4 ของการลงทะเบียน MASK เป็นหนึ่งโดยใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อม python3:
  • SMBus.write_byte_data(0x51, 0x1e, 0x10)
  • พิน GPIO3 ของ AP33772 จะสูงขึ้นเมื่อมีการทริกเกอร์การป้องกัน OCP

อ่าน VOLTAGอี (0x20)

  • คำสั่งนี้รายงานฉบับtage วัดโดย AP33772 Sink Controller เพื่อรายงานฉบับที่tage ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อม python3:
  • SMBus.read_byte_data(0x51, 0x20)
  • หนึ่งหน่วยของค่าที่รายงานแสดงถึง 80mV

อ่านปัจจุบัน (0x21)

  • คำสั่งนี้รายงานกระแสที่วัดโดย AP33772 Sink Controller หากต้องการรายงานปัจจุบัน ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3
  • SMBus.read_byte_data(0x51, 0x21)
  • หนึ่งหน่วยของค่าที่รายงานแสดงถึง 24mA

อ่านอุณหภูมิ (0x22)

  • คำสั่งนี้รายงานอุณหภูมิที่วัดโดย AP33772 Sink Controller หากต้องการรายงานอุณหภูมิ ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3:
  • SMBus.read_byte_data(0x51, 0x22)
  • หนึ่งหน่วยของค่าที่รายงานแสดงถึง 1°C

อ่านและเขียน OCPTHR (0x23), OTPTHR (0x24) และ DRTHR (0x25) 

  • เกณฑ์ OCP, OTP และ Derating สามารถเปลี่ยนเป็นค่าที่ผู้ใช้ต้องการได้โดยเขียนค่าลงในเครื่องบันทึก OCPTHR, OTPTHR และ DRTHR ในฐานะอดีตample หากต้องการเปลี่ยนเกณฑ์ OCP เป็น 3.1A ผู้ใช้ควรเขียน 0x3E (=3100/50=62=0x3E) เป็น OCPTHR โดยใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อม python3: SMBus.write_byte_data(0x51, 0x23, 0x3e)
  • หากต้องการเปลี่ยนเกณฑ์ OTP เป็น 110°C ผู้ใช้ควรเขียน 0x6E (=110) เป็น OTPTHR โดยใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อม python3: SMBus.write_byte_data(0x51, 0x24, 0x6e)
  • หากต้องการเปลี่ยนเกณฑ์ Derating เป็น 100°C ผู้ใช้ควรเขียน 0x64 (=100) ถึง DRTHR โดยใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อม python3: SMBus.write_byte_data(0x51, 0x25, 0x64)
  • หากต้องการอ่านค่าจาก OCPTHR, OTPTHR และ DRTHR ให้ใช้ค่าต่อไปนี้ภายใต้สภาพแวดล้อม python3: SMBus.read_byte_data(0x51, 0x23) SMBus.read_byte_data(0x51, 0x24) SMBus.read_byte_data(0x51, 0x25)
  • อ่านและเขียน TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D) และ TR100 (0x2E~0x2F)
  • เทอร์มิสเตอร์ค่าสัมประสิทธิ์อุณหภูมิติดลบ (NTC) ของ Murata 10KΩ NCP03XH103 บรรจุอยู่ใน AP33772 EVB ผู้ใช้ต้องการเปลี่ยนเทอร์มิสเตอร์เป็นแบบอื่นในการออกแบบขั้นสุดท้าย ผู้ใช้ควรอัปเดตค่าการลงทะเบียน TR25, TR50, TR75 และ TR100 ตามข้อกำหนดของเทอร์มิสเตอร์ที่ใช้ สำหรับอดีตample, 6.8KΩ NCP03XH682 ของ Murata ถูกนำมาใช้ในการออกแบบ ค่าความต้านทานที่ 25°C, 50°C, 75°C และ 100°C คือ 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507) และ 662Ω (0x0296) ตามลำดับ หากต้องการเขียนค่าที่สอดคล้องกับการลงทะเบียนเหล่านี้ ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3:
  • SMBus.write_word_data(0x51, 0x28, 0x1a90) SMBus.write_word_data(0x51, 0x2a, 0x0ad6) SMBus.write_word_data(0x51, 0x2c, 0x0507) SMBus.write_word_data(0x51, 0x2e, 0x0296)
  • หากต้องการอ่านค่า ให้ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อมของ python3: SMBus.read_word_data(0x51, 0x28) SMBus.read_word_data(0x51, 0x2a) SMBus.read_word_data(0x51, 0x2c) SMBus.read_word_data(0x51, 0x2e)
  • ค่าที่ส่งคืนยังเป็นคำแบบ 2 ไบต์ เนื่องจากคำสั่งจัดการกับคำ 2 ไบต์โดยตรง ผู้ใช้จึงไม่ต้องกังวลเกี่ยวกับคำสั่งไบต์ endian เล็กน้อยที่นี่

เขียน RDO (0x30~0x33)

  • ในการเริ่มต้นขั้นตอนการเจรจาคำขอ PDO ข้อมูล 4 ไบต์จะถูกเขียนลงในทะเบียน RDO (Request Data Object) ตามลำดับไบต์ย่อย ในฐานะอดีตample หากต้องการร้องขอ PDO3 ด้วย 15V และ 3A 0x3004B12C จะถูกเขียนลงในทะเบียน RDO ใช้สิ่งต่อไปนี้ภายใต้สภาพแวดล้อม python3:
  • SMBus.write_i2c_block_data(0x51, 0x30, [0x2c, 0xb1, 0x04, 0x30])
  • โปรดดูตารางที่ 9 และตารางที่ 10 ของคู่มือผู้ใช้ AP33772 Sink Controller EVB สำหรับข้อมูลเนื้อหา RDO โดยละเอียด
  • ผู้ใช้สามารถทำการฮาร์ดรีเซ็ตโดยการเขียนการลงทะเบียน RDO ด้วยข้อมูลที่เป็นศูนย์ทั้งหมด:
  • SMBus.write_i2c_block_data(0x51, 0x30, [0x00, 0x00, 0x00, 0x00])
  • AP33772 Sink Controller จะถูกรีเซ็ตเป็นสถานะเริ่มต้นและเอาต์พุตจะถูกปิด

ปฏิบัติเช่นampเลส

Example 1: Bash I2C-Tools เช่นampไฟล์: ap33772_querypdo.bash
อดีตนี้ampตรวจสอบ PDO ที่ถูกต้องทั้งหมดและแสดงรายการฉบับtage และข้อมูลความสามารถปัจจุบันออก
รายละเอียดรหัสDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-8

การดำเนินการโค้ดและเอาต์พุตDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-9

Example 2: Python SMBus2 อดีตampไฟล์: ap33772_allpdo.py3
อดีตนี้ample ตรวจสอบ PDO ที่ถูกต้องทั้งหมดและขอทีละรายการตามลำดับขึ้นและลง
รายละเอียดรหัสDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-10DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-11DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-12

การดำเนินการโค้ดและเอาต์พุตDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-13DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-อินเทอร์เฟซ-FIG-14

Exampดาวน์โหลดโค้ด

รายชื่ออดีตampเลอรหัส

  • Example Codes มี Bash Script และ Python Versions
  1. ap33772_querypdo: สอบถามข้อมูล PDO ทั้งหมด
  2. ap33772_reqpdo: รายงานข้อมูล PDO ทั้งหมดและส่งคำขอ PDO ที่ระบุโดยผู้ใช้
  3. ap33772_allpdo: รายงานข้อมูล PDO ทั้งหมดและอธิบายคำขอ PDO ทั้งหมดในลักษณะขึ้นและลง
  4. ap33772_pps: รายงานข้อมูล PDO ทั้งหมด และ ramps ขึ้นและลงทั้งฉบับ PPStage มีช่วงขนาดสเต็ป 50mV
  5. ap33772_vit: รายงานฉบับที่tage ข้อมูลปัจจุบันและอุณหภูมิ
Exampเว็บไซต์ดาวน์โหลด

Example รหัสสามารถดาวน์โหลดได้จาก Github ใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลด: git clone https://github.com/diodinciot/ap33772.git-ap33772

อ้างอิง

  1. เอกสารข้อมูล AP33772 (USB PD3.0 PPS Sink Controller): https://www.diodes.com/products/power-management/ac-dc-converters/usb-pd-sink-controllers/
  2. AP33772 I2C Sink Controller EVB คู่มือผู้ใช้: https://www.diodes.com/applications/ac-dc-chargers-and-adapters/usb-pd-sink-controller/
  3. Raspberry Pi ศูนย์ 2 W: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
  4. ระบบปฏิบัติการ Raspberry Pi: https://www.raspberrypi.com/software/
  5. ยูทิลิตี้ I2C-Tools: https://linuxhint.com/i2c-linux-utilities/
  6. โมดูล SMBus2: https://smbus2.readthedocs.io/en/latest/

ประวัติการแก้ไข

การแก้ไข วันที่ออก ความคิดเห็น ผู้เขียน
1.0 4/15/2022 การเปิดตัวครั้งแรก เอ็ดเวิร์ด จ้าว
หมายเหตุสำคัญ
  • Diodes Inc. ไม่รับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยปริยายเกี่ยวกับเอกสารนี้ รวมถึงแต่ไม่จำกัดเพียงการรับประกันโดยปริยายของความสามารถในการซื้อขายและความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ (และสิ่งที่เทียบเท่าภายใต้กฎหมายของเขตอำนาจศาลใด ๆ )
  • Diodes Incorporated และบริษัทสาขาขอสงวนสิทธิ์ในการแก้ไข ปรับปรุง ปรับปรุง แก้ไข หรือเปลี่ยนแปลงอื่นๆ โดยไม่ต้องแจ้งให้ทราบล่วงหน้าในเอกสารนี้และผลิตภัณฑ์ใดๆ ที่อธิบายไว้ในที่นี้ Diodes Incorporated ไม่รับผิดชอบใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้เอกสารนี้หรือผลิตภัณฑ์ใด ๆ ที่อธิบายไว้ในที่นี้ Diodes Incorporated ไม่ได้ถ่ายทอดใบอนุญาตใด ๆ ภายใต้สิทธิบัตรหรือสิทธิ์ในเครื่องหมายการค้า หรือสิทธิ์ของผู้อื่น ลูกค้าหรือผู้ใช้เอกสารนี้หรือผลิตภัณฑ์ที่อธิบายไว้ในที่นี้ในแอปพลิเคชันดังกล่าวจะต้องรับความเสี่ยงทั้งหมดจากการใช้งานดังกล่าว และจะตกลงที่จะถือ Diodes Incorporated และบริษัททั้งหมดที่มีผลิตภัณฑ์เป็นตัวแทนใน Diodes Incorporated webเว็บไซต์ไม่เป็นอันตรายต่อความเสียหายทั้งหมด
  • Diodes Incorporated ไม่รับประกันหรือยอมรับความรับผิดใด ๆ ที่เกี่ยวข้องกับผลิตภัณฑ์ใด ๆ ที่ซื้อผ่านช่องทางการขายที่ไม่ได้รับอนุญาต
    หากลูกค้าซื้อหรือใช้ผลิตภัณฑ์ของ Diodes Incorporated เพื่อการใช้งานที่ไม่ได้ตั้งใจหรือไม่ได้รับอนุญาต ลูกค้าจะต้องชดใช้ค่าเสียหายและยึด Diodes
  • Incorporated และตัวแทนไม่เป็นอันตรายต่อการเรียกร้อง ความเสียหาย ค่าใช้จ่าย และค่าทนายความทั้งหมดที่เกิดขึ้นจากการเรียกร้องการบาดเจ็บส่วนบุคคลหรือการเสียชีวิตที่เกี่ยวข้องกับการสมัครที่ไม่ได้ตั้งใจหรือไม่ได้รับอนุญาตดังกล่าว ไม่ว่าทางตรงหรือทางอ้อม
  • ผลิตภัณฑ์ที่อธิบายในที่นี้อาจได้รับการคุ้มครองโดยสิทธิบัตรของสหรัฐอเมริกา สิทธิบัตรระหว่างประเทศหรือต่างประเทศหนึ่งรายการหรือมากกว่าที่อยู่ระหว่างดำเนินการ ชื่อผลิตภัณฑ์และเครื่องหมายที่ระบุในที่นี้อาจครอบคลุมโดยเครื่องหมายการค้าของสหรัฐอเมริกา เครื่องหมายการค้าระหว่างประเทศหรือต่างประเทศหนึ่งรายการหรือมากกว่า
  • เอกสารนี้เขียนเป็นภาษาอังกฤษ แต่อาจแปลเป็นหลายภาษาเพื่อใช้อ้างอิง เฉพาะเวอร์ชันภาษาอังกฤษของเอกสารนี้เท่านั้นที่เป็นรูปแบบขั้นสุดท้ายและเชิงกำหนดที่เผยแพร่โดย Diodes Incorporated

การช่วยชีวิต

  • ผลิตภัณฑ์ Diodes Incorporated ไม่ได้รับอนุญาตให้ใช้เป็นส่วนประกอบที่สำคัญในอุปกรณ์หรือระบบช่วยชีวิตโดยไม่ได้รับการอนุมัติเป็นลายลักษณ์อักษรอย่างชัดแจ้งจากประธานเจ้าหน้าที่บริหารของ Diodes Incorporated ตามที่ใช้ในที่นี้:
  • A. อุปกรณ์หรือระบบช่วยชีวิตคืออุปกรณ์หรือระบบที่:
  1. มีไว้เพื่อสอดใส่เข้าไปในร่างกายหรือ
  2. สนับสนุนหรือช่วยชีวิตและความล้มเหลวในการดำเนินการเมื่อใช้อย่างถูกต้องตามคำแนะนำสำหรับการใช้งานที่ระบุไว้ในฉลากสามารถคาดหวังได้อย่างสมเหตุสมผลว่าจะส่งผลให้ผู้ใช้ได้รับบาดเจ็บอย่างมีนัยสำคัญ
    • B. ส่วนประกอบสำคัญคือส่วนประกอบใดๆ ในอุปกรณ์ช่วยชีวิตหรือระบบที่ความล้มเหลวในการดำเนินการสามารถคาดหวังได้อย่างสมเหตุสมผลว่าจะทำให้อุปกรณ์ช่วยชีวิตล้มเหลวหรือส่งผลต่อความปลอดภัยหรือประสิทธิภาพ
    • ลูกค้ารับรองว่าพวกเขามีความเชี่ยวชาญที่จำเป็นทั้งหมดในด้านความปลอดภัยและกฎระเบียบของอุปกรณ์หรือระบบช่วยชีวิต และรับทราบและตกลงว่าพวกเขามีหน้าที่รับผิดชอบแต่เพียงผู้เดียวต่อข้อกำหนดทางกฎหมาย ข้อบังคับ และความปลอดภัยที่เกี่ยวข้องกับผลิตภัณฑ์ของตนและการใช้ไดโอดใดๆ รวมผลิตภัณฑ์ไว้ในอุปกรณ์หรือระบบช่วยชีวิตที่มีความสำคัญต่อความปลอดภัย โดยไม่คำนึงถึงข้อมูลหรือการสนับสนุนที่เกี่ยวข้องกับอุปกรณ์หรือระบบใดๆ ที่ Diodes Incorporated อาจจัดหาให้
    • นอกจากนี้ ลูกค้าต้องชดใช้ค่าเสียหายอย่างเต็มที่แก่ Diodes Incorporated และตัวแทนของบริษัทจากความเสียหายใดๆ ที่เกิดขึ้นจากการใช้ผลิตภัณฑ์ Diodes Incorporated ในอุปกรณ์หรือระบบที่มีความสำคัญต่อความปลอดภัยและช่วยชีวิตดังกล่าว
  • ลิขสิทธิ์ © 2017, Diodes Incorporated
  • www.diodes.com

เอกสาร / แหล่งข้อมูล

ไดโอด AP33772 USB PD Sink Controller Raspberry Pi อินเตอร์เฟส I2C [พีดีเอฟ] คู่มือการใช้งาน
AP33772 USB PD Sink Controller อินเทอร์เฟซ Raspberry Pi I2C, AP33772, USB PD Sink Controller อินเทอร์เฟซ Raspberry Pi I2C, อินเทอร์เฟซ Raspberry Pi I2C, อินเทอร์เฟซ Pi I2C

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *