Điốt-LOGO

Bộ điều khiển USB PD Sink DIODES AP33772 Raspberry Pi Giao diện I2C

DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-Giao diện I2C-SẢN PHẨM

Giới thiệu

  • Bộ điều khiển Sink AP33772, hoạt động như thiết bị giao thức của Thiết bị được trang bị Đầu nối USB PD3.0 Loại C (TCD, Energy Sink), có mục đích yêu cầu Đối tượng dữ liệu nguồn (PDO) thích hợp từ Bộ sạc tuân thủ PD3.0 được trang bị Đầu nối USB PD3.0 Loại C (PDC, Nguồn năng lượng).
  • Hình 1 minh họa một TCD, được nhúng với IC bộ điều khiển PD3.0 Sink (AP33772), được kết nối vật lý với PDC, được nhúng với bộ giải mã USB PD3.0 (AP43771), thông qua một
  • Cáp Type C sang Type C. Dựa trên phần mềm tương thích USB PD3.0 tích hợp, cặp AP33772 và AP43771 sẽ trải qua quy trình kết nối chuẩn USB PD3.0 để thiết lập trạng thái sạc PD3.0 phù hợp.
  • AP33772 Sink Controller EVB cung cấp sự dễ sử dụng và tính linh hoạt tuyệt vời cho nhà thiết kế hệ thống để yêu cầu PDO từ Bộ sạc cung cấp điện USB bằng cách gửi các lệnh tích hợp AP33772 thông qua giao diện I2C. Thiết kế hệ thống thông thường yêu cầu lập trình MCU cần thiết lập phần mềm cụ thể (ví dụ: IDE) và có thể là một quá trình phát triển tốn thời gian.
  • Ngược lại, Raspberry Pi (RPI), một máy tính bảng đơn (SBC) chạy trên HĐH Linux thân thiện với người dùng và được trang bị các chân GPIO linh hoạt, cung cấp một cách đơn giản để xác thực AP33772 Sink EVB hoạt động với Bộ sạc PD. Mục tiêu của hướng dẫn này là cung cấp cho các nhà thiết kế hệ thống một nền tảng hiệu quả để nhanh chóng hoàn thành xác thực phần mềm trên RPI và sau đó chuyển quá trình phát triển sang bất kỳ MCU mong muốn nào để đáp ứng các yêu cầu thị trường quay vòng nhanh.
  • Là một tài liệu bổ sung cho Hướng dẫn sử dụng AP33772 EVB, Hướng dẫn sử dụng này minh họa một cách dễ dàng để điều khiển AP33772 EVB bằng RPI SBC thông qua Giao diện I2C.
  • Vai trò của khối MCU được mô tả trong Hình 1 để giao tiếp với AP33772 được thực hiện bởi RPI. Hướng dẫn sử dụng này bao gồm nhiều thông tin về định nghĩa và sử dụng sổ đăng ký như ví dụamples, Tuy nhiên, để biết thông tin đầy đủ và mới nhất, vui lòng tham khảo Hướng dẫn sử dụng AP33772 EVB. (Xem Tài liệu tham khảo 2)DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-1
  • Hình 1 – Một TCD thông thường sử dụng Bộ điều khiển AP33772 PD Sink với Giao diện I2C để yêu cầu cấp nguồn từ Bộ chuyển đổi nguồn tuân thủ USB Type-C PD3.0/PPS

Thiết lập nền tảng xác thực

Bộ điều khiển bồn rửa AP33772 EVB
Hình 2 hiển thị hình ảnh của Bộ điều khiển Sink EVB. Nó có Đầu nối Type-C, chân I2C, chân GPIO3 để Ngắt, Nhiệt điện trở NTC cho OTP, đèn LED chỉ báo trạng thái sạc và đầu nối Vout với tải.DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-2

Raspberry Pi Zero 2W

  • Bất kỳ phiên bản RPI mới nhất nào cũng có khả năng điều khiển AP33772 Sink Controller EVB thông qua các chân I2C. Raspberry Pi Zero 2 W (RPI Z2W) được sử dụng trong Hướng dẫn sử dụng này vì tính hiệu quả về chi phí và tính linh hoạt của nó. Nó có hệ số hình thức nhỏ nhất trong số tất cả các RPI và được tích hợp với WiFi và Bluetooth giúp kết nối không dây mà không cần thành phần bổ sung. Nó phục vụ mục đích là Nền tảng xác thực AP33772 Sink Controller EVB một cách hoàn hảo.
  • Người dùng có thể kiểm tra Raspberry Pi chính thức webtrang web để biết thêm thông tin (https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-3DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-4

Kết nối nền tảng xác thực và cấp nguồn

Hình 5 hiển thị kết nối và thiết lập đầy đủ của Nền tảng xác thực. Người dùng nên làm theo các bước sau:

  1. Kết nối các chân SCL, SDA và GND giữa RPI và AP33772 EVB
  2. Kết nối Bộ sạc PD 65W và AP33772 EVB bằng cáp Type-C
  3. Bật nguồn cho bộ sạc RPI và PD.DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-5

Cài đặt phần mềm Raspberry Pi

Hệ điều hành Raspberry Pi

  • Có nhiều hệ điều hành khác nhau hỗ trợ RPI. Trong số đó, Raspberry Pi OS được chọn vì đây là hệ điều hành được sử dụng nhiều nhất và được trang web chính thức của RPI khuyên dùng.

Tải xuống hình ảnh hệ điều hành và chuẩn bị thẻ SD

  • Tải xuống và cài đặt công cụ Raspberry Pi Imager trên PC (https://www.raspberrypi.com/software/). Thực hiện theo hướng dẫn để chuẩn bị một Micro-SD được tải hình ảnh hệ điều hành chính xác (https://youtu.be/ntaXWS8Lk34/). Xin lưu ý rằng nên sử dụng thẻ Micro-SD 32BG trở lên.DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-6

Cài đặt hệ điều hành Raspberry PI

  • Lắp thẻ Micro-SD đã tải bộ tạo ảnh trước đó vào khe cắm Micro-SD của RPI. Kết nối bộ đổi nguồn, chuột/bàn phím và màn hình HDMI. Bật RPI và làm theo hướng dẫn để hoàn tất cài đặt hệ điều hành và thiết lập cơ bản. Đảm bảo rằng hệ điều hành có các bản cập nhật mới nhất.

Thiết lập các tính năng cần thiết

  • Để chạy giao diện I2C trên RPI thành công, chúng ta phải cấu hình hoặc cài đặt các tính năng SSH, VNC và I2C.

Cấu hình Raspberry Pi – SSH, VNC, I2C

  • Sau khi khởi động RPI, hãy mở tiện ích “Raspberry Pi Configure” và bật các tính năng SSH, VNC và I2C.DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-7

Cấu hình tốc độ truyền dữ liệu I2C

  • Thay thế các dòng liên quan đến dtparam và dtoverlay trong /boot/config.txt file với:
  • dtoverlay=i2c-bcm2708
  • dtparam=i2c_arm=on,i2c_arm_baudrate=640000

Cài đặt I2C-Tools

  • I2C-Tools là một bộ công cụ cung cấp các lệnh đơn giản chạy trên dòng lệnh dưới Raspberry Pi OS. Cài đặt I2C-Tools trên hệ điều hành bằng cách chạy: sudo apt install i2c-tools

Cài đặt SMBus2

  • SMBus2 là một module Python cung cấp các chức năng thuận tiện cho người dùng để điều khiển giao diện I2C trong môi trường Python. Cài đặt module SMBus2 cho Python trên hệ điều hành bằng cách chạy: sudo pip3 install smbus2

Lệnh cơ bản Examptập

  • Hướng dẫn sử dụng này trình bày hai phương pháp khác nhau để làm việc với giao diện I2C trên RPI. Đó là I2C-Tools Utility và Python SMBus2 Module. Các lệnh cơ bản của cả hai phương pháp đều được giới thiệu trong phần này.

 Lệnh I2C-Tools Examptập

  • Gói tiện ích I2C-Tools cung cấp các lệnh i2cdetect, i2cget và i2cset. Các cách sử dụng đơn giản được mô tả trong examples trong phần này. Để biết thông tin đầy đủ về tiện ích I2C-Tools, vui lòng tham khảo https://linuxhint.com/i2c-linux-utilities/.
  • Bảng 1 hiển thị tóm tắt thanh ghi AP33772 để người dùng thuận tiện nắm bắt cách sử dụng lệnh trong phần này. Để biết thông tin đầy đủ về thanh ghi, vui lòng tham khảo Hướng dẫn sử dụng AP33772 Sink Controller EVB.
Đăng ký Yêu cầu Chiều dài Thuộc tính Bật nguồn Sự miêu tả
 

SRCPDO

 

0x00

 

28

 

RO

 

Tất cả 00h

Đối tượng dữ liệu nguồn (PDO) được sử dụng để hiển thị khả năng cấp nguồn của Nguồn PD (SRC).

Tổng chiều dài là 28 byte

PDONUM 0x1C 1 RO 00 giờ Số PDO nguồn hợp lệ
TRẠNG THÁI 0x1D 1 RC 00 giờ Trạng thái AP33772
MẶT NẠ 0x1E 1 RW 01 giờ Mặt nạ cho phép ngắt
TẬPTAGE 0x20 1 RO 00 giờ LSB 80mV
HIỆN HÀNH 0x21 1 RO 00 giờ LSB24mA
NHIỆT ĐỘ 0x22 1 RO 19 giờ Nhiệt độ, Đơn vị: °C
OCPTHR 0x23 1 RW 00 giờ Ngưỡng OCP, LSB 50mA
OTPTHR 0x24 1 RW 78 giờ Ngưỡng OTP, Đơn vị: °C
DRTHR 0x25 1 RW 78 giờ Ngưỡng giảm định mức, Đơn vị: °C
TR25 0x28 2 RW 2710 giờ Độ bền nhiệt @25°C, Đơn vị: Ω
TR50 0x2A 2 RW 1041 giờ Độ bền nhiệt @50°C, Đơn vị: Ω
TR75 0x2C 2 RW 0788 giờ Độ bền nhiệt @75°C, Đơn vị: Ω
TR100 0x2E 2 RW 03CEh Độ bền nhiệt @100°C, Đơn vị: Ω
ĐẠI HỌC 0x30 4 WO 00000000 giờ Đối tượng dữ liệu yêu cầu (RDO) được sử dụng để yêu cầu khả năng cung cấp năng lượng.
VID 0x34 2 RW 0000 giờ ID nhà cung cấp, Dành riêng cho các ứng dụng trong tương lai
Mã số thuế 0x36 2 RW 0000 giờ ID sản phẩm, Dành riêng cho các ứng dụng trong tương lai
KÍN ĐÁO 0x38 4 Dành riêng cho các ứng dụng trong tương lai

Bảng 1 – Tóm tắt sổ đăng ký AP33772

Phát hiện tất cả các thiết bị được kết nối với I2C – i2cdetect

  • Để hiển thị tất cả các thiết bị i2c hiện đang được kết nối với bus I2C-1, hãy nhập lệnh sau vào dấu nhắc lệnh: i2cdetect -y 1
  • Nếu AP33772 Sink Controller EVB được gắn vào, người dùng sẽ thấy thiết bị được gắn vào tại địa chỉ 0x51

Đọc SRCPDO (0x00~0x1B)

  • Lệnh i2cget không hỗ trợ block read dài hơn 2 byte. Người dùng cần sử dụng “for loop” để hiển thị tất cả dữ liệu PDO dài 28 byte. Để hiển thị tất cả dữ liệu PDO, hãy nhập lệnh sau vào dấu nhắc lệnh bash for i in {0..27}; do i2cget -y 1 0x51 $ib; done
  • Dữ liệu 28 byte đại diện cho 7 PDO sẽ được hiển thị

Đọc PDONUM (0x1C)

  • Để hiển thị tổng số PDO hợp lệ, hãy nhập lệnh sau vào dấu nhắc lệnh: i2cget -y 1 0x51 0x1c b

Đọc TRẠNG THÁI (0x1D)

  • Lệnh này báo cáo trạng thái của Sink Controller bao gồm de-rating, OTP, OCP, OVP, Request Rejected, Request Completed và Ready. Để hiển thị thông tin trạng thái, hãy nhập lệnh sau trong dấu nhắc lệnh: i2cget -y 1 0x51 0x1d b
  • Người dùng nên sử dụng lệnh này sau mỗi yêu cầu RDO để đảm bảo yêu cầu RDO thành công bằng cách đọc bit COMPLETE. 4.1.5 Viết MASK (0x1E)
  • Lệnh này cho phép ngắt báo hiệu máy chủ thông qua chân GPIO3 của AP33772. Các ngắt bao gồm Drating, OTP, OCP, OVP, Request Rejected, Request Completed và Ready. Để bật một ngắt cụ thể, hãy đặt bit tương ứng thành một. Ví dụample, để bật ngắt OCP, hãy đặt bit 4 của thanh ghi MASK thành một bằng cách nhập lệnh sau dưới dấu nhắc lệnh: i2cset -y 1 0x51 0x1e 0x10 b
  • Chân GPIO3 của AP33772 sẽ lên mức cao khi chức năng bảo vệ OCP được kích hoạt.

Đọc VOLTAGE (0x20)

  • Lệnh này báo cáo voltage được đo bằng Bộ điều khiển bồn rửa AP33772. Để báo cáo voltage, nhập lệnh sau vào dấu nhắc lệnh: i2cget -y 1 0x51 0x20 b
  • Một đơn vị của giá trị được báo cáo biểu thị 80mV.

Đọc HIỆN TẠI (0x21)

  • Lệnh này báo cáo dòng điện được đo bởi AP33772 Sink Controller. Để báo cáo dòng điện, hãy nhập lệnh sau dưới dấu nhắc lệnh: i2cget -y 1 0x51 0x21 b
  • Một đơn vị của giá trị được báo cáo tương đương với 24mA.

Đọc TEMP (0x22)

  • Lệnh này báo cáo nhiệt độ được đo bởi AP33772 Sink Controller. Để báo cáo nhiệt độ, hãy nhập lệnh sau dưới dấu nhắc lệnh:
    i2cget -y 1 0x51 0x22 b
  • Một đơn vị của giá trị được báo cáo tương đương với 1°C.
  • Đọc và ghi OCPTHR (0x23), OTPTHR (0x24) và DRTHR (0x25)
  • Ngưỡng OCP, OTP và Drating có thể được thay đổi thành các giá trị mong muốn của người dùng bằng cách ghi các giá trị vào các thanh ghi OCPTHR, OTPTHR và DRTHR. Là một ví dụample, để thay đổi ngưỡng OCP thành 3.1A, người dùng phải viết 0x3E (=3100/50=62=0x3E) vào OCPTHR bằng cách nhập lệnh sau dưới dấu nhắc lệnh: i2cset -y 1 0x51 0x23 0x3e b
  • Để thay đổi ngưỡng OTP thành 110°C, người dùng phải viết 0x6E (=110) vào OTPTHR bằng cách nhập lệnh sau vào dấu nhắc lệnh:
  • Để đọc các giá trị của OCPTHR, OTPTHR và DRTHR, hãy nhập lệnh sau vào dấu nhắc lệnh:
  • i2cget -y 1 0x51 0x23 b i2cget -y 1 0x51 0x24 b i2cget -y 1 0x51 0x25 b
  • Đọc và ghi TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D) và TR100 (0x2E~0x2F)
  • Nhiệt điện trở hệ số nhiệt độ âm (NTC) Murata 10KΩ NCP03XH103 được lắp trên AP33772 EVB. Người dùng có thể tùy ý thay đổi nhiệt điện trở thành một nhiệt điện trở khác trong thiết kế cuối cùng. Người dùng nên cập nhật các giá trị thanh ghi TR25, TR50, TR75 và TR100 theo thông số kỹ thuật của nhiệt điện trở được sử dụng. Ví dụamplà,
  • Murata's 6.8KΩ NCP03XH682 được sử dụng trong thiết kế. Các giá trị điện trở ở 25°C, 50°C, 75°C và 100°C lần lượt là 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507) và 662Ω (0x0296). Để ghi các giá trị tương ứng vào các thanh ghi này, hãy nhập lệnh sau dưới dấu nhắc lệnh:
  • i2cset -y 1 0x51 0x28 0x1a90 w i2cset -y 1 0x51 0x2a 0x0ad6 w i2cset -y 1 0x51 0x2c 0x0507 w i2cset -y 1 0x51 0x2e 0x0296 w
  • Để đọc các giá trị, hãy nhập lệnh sau tại dấu nhắc lệnh: i2cget -y 1 0x51 0x28 w i2cget -y 1 0x51 0x2a w i2cget -y 1 0x51 0x2c w i2cget -y 1 0x51 0x2e w
  • Giá trị đầu ra là các từ 2 byte. Vì các lệnh xử lý trực tiếp từ 2 byte nên người dùng không cần phải lo lắng về thứ tự byte little endian ở đây.

Viết RDO (0x30~0x33)

  • Để bắt đầu một thủ tục đàm phán yêu cầu PDO, dữ liệu 4 byte được ghi vào thanh ghi RDO (Đối tượng dữ liệu yêu cầu) theo thứ tự byte little-endian. Như ví dụample, để yêu cầu PDO3 với 15V và 3A, 0x3004B12C sẽ được ghi vào thanh ghi RDO. Gõ lệnh sau dưới dấu nhắc lệnh: i2cset -y 1 0x51 0x30 0x2c 0xb1 0x04 0x30 i
  • Byte ít quan trọng nhất (0x2C) phải được ghi vào đầu tiên để phù hợp với ký hiệu thứ tự byte little endian. Vui lòng tham khảo Bảng 9 và Bảng 10 của AP33772 Sink Controller EVB User
  • Hướng dẫn cung cấp thông tin chi tiết về nội dung RDO.
  • Người dùng có thể thực hiện khôi phục cài đặt gốc bằng cách ghi vào thanh ghi RDO toàn bộ dữ liệu bằng không: i2cset -y 1 0x51 0x30 0x00 0x00 0x00 0x00 i
  • Bộ điều khiển bồn rửa AP33772 sẽ được đặt lại về trạng thái ban đầu và đầu ra sẽ bị tắt.

Lệnh Python SMBus2 Examptập

  • Python đang ngày càng phổ biến hơn nhờ các loại mô-đun được hỗ trợ tuyệt vời. SMBus2 là một trong số đó và có khả năng xử lý các lệnh đọc và ghi I2C. SMBus2 cung cấp các lệnh read_byte_data, read_word_data, read_i2c_block_data, write_byte_data, write_word_data, write_i2c_block_data. Các cách sử dụng đơn giản được mô tả trong examples trong phần này. Để biết thông tin đầy đủ về mô-đun SMBus2, vui lòng tham khảo https://smbus2.readthedocs.io/en/latest/.

Đọc SRCPDO (0x00~0x1B) 

  • SMBus.read_i2c_block_data là lệnh hiệu quả hỗ trợ đọc dữ liệu khối lên đến 32 byte. Để đọc tất cả dữ liệu PDO 28 byte, hãy sử dụng lệnh sau trong môi trường python3:
  • SMBus.read_i2c_block_data(0x51, 0x00, 28)
  • 28 dữ liệu một byte đại diện cho 7 PDO sẽ được trả về trong cấu trúc dữ liệu danh sách.

Đọc PDONUM (0x1C)

  • Để đọc tổng số PDO hợp lệ, hãy sử dụng lệnh sau trong môi trường python3:
  • SMBus.read_byte_data(0x51, 0x1c)
  • Một byte dữ liệu biểu diễn số PDO hợp lệ sẽ được trả về.

Đọc TRẠNG THÁI (0x1D)

  • Lệnh này báo cáo trạng thái của Sink Controller bao gồm Drating, OTP, OCP, OVP, Request Rejected, Request Completed và Ready. Để đọc thông tin trạng thái, hãy sử dụng lệnh sau trong môi trường python3:
  • SMBus.read_byte_data(0x51, 0x1d)
  • Người dùng có thể sử dụng lệnh này sau mỗi yêu cầu RDO để đảm bảo yêu cầu RDO thành công bằng cách đọc bit COMPLETE.

Viết MASK (0x1E)

  • Lệnh này cho phép ngắt báo hiệu máy chủ thông qua chân GPIO3 của AP33772. Các ngắt bao gồm Drating, OTP, OCP, OVP, Request Rejected, Request
  • Đã hoàn thành và Sẵn sàng. Để kích hoạt một ngắt cụ thể, hãy đặt bit tương ứng thành một. Ví dụample, để kích hoạt ngắt OCP, hãy đặt bit 4 của thanh ghi MASK thành một bằng cách sử dụng lệnh sau trong môi trường python3:
  • SMBus.write_byte_data(0x51, 0x1e, 0x10)
  • Chân GPIO3 của AP33772 sẽ lên mức cao khi chức năng bảo vệ OCP được kích hoạt.

Đọc VOLTAGE (0x20)

  • Lệnh này báo cáo voltage được đo bằng Bộ điều khiển bồn rửa AP33772. Để báo cáo voltage, sử dụng lệnh sau trong môi trường python3:
  • SMBus.đọc_byte_dữ_liệu(0x51, 0x20)
  • Một đơn vị của giá trị được báo cáo biểu thị 80mV.

Đọc HIỆN TẠI (0x21)

  • Lệnh này báo cáo dòng điện được đo bởi AP33772 Sink Controller. Để báo cáo dòng điện, hãy sử dụng lệnh sau trong môi trường python3
  • SMBus.đọc_byte_dữ_liệu(0x51, 0x21)
  • Một đơn vị của giá trị được báo cáo tương đương với 24mA.

Đọc TEMP (0x22)

  • Lệnh này báo cáo nhiệt độ được đo bởi AP33772 Sink Controller. Để báo cáo nhiệt độ, hãy sử dụng lệnh sau trong môi trường python3:
  • SMBus.đọc_byte_dữ_liệu(0x51, 0x22)
  • Một đơn vị của giá trị được báo cáo tương đương với 1°C.

Đọc và ghi OCPTHR (0x23), OTPTHR (0x24) và DRTHR (0x25) 

  • Ngưỡng OCP, OTP và Drating có thể được thay đổi thành các giá trị mong muốn của người dùng bằng cách ghi các giá trị vào các thanh ghi OCPTHR, OTPTHR và DRTHR. Là một ví dụample, để thay đổi ngưỡng OCP thành 3.1A, người dùng phải ghi 0x3E (=3100/50=62=0x3E) vào OCPTHR bằng cách sử dụng lệnh sau trong môi trường python3: SMBus.write_byte_data(0x51, 0x23, 0x3e)
  • Để thay đổi ngưỡng OTP thành 110°C, người dùng phải ghi 0x6E (=110) vào OTPTHR bằng cách sử dụng lệnh sau trong môi trường python3: SMBus.write_byte_data(0x51, 0x24, 0x6e)
  • Để thay đổi ngưỡng Drating thành 100°C, người dùng phải ghi 0x64 (=100) vào DRTHR bằng cách sử dụng lệnh sau trong môi trường python3: SMBus.write_byte_data(0x51, 0x25, 0x64)
  • Để đọc các giá trị từ OCPTHR, OTPTHR và DRTHR, hãy sử dụng lệnh sau trong môi trường python3: Đọc_byte_data(0x51, 0x23) Đọc_byte_data(0x51, 0x24) Đọc_byte_data(0x51, 0x25) .
  • Đọc và ghi TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D) và TR100 (0x2E~0x2F)
  • Nhiệt điện trở hệ số nhiệt độ âm (NTC) Murata 10KΩ NCP03XH103 được lắp trên AP33772 EVB. Người dùng có thể tùy ý thay đổi nhiệt điện trở thành nhiệt điện trở khác trong thiết kế cuối cùng. Người dùng nên cập nhật giá trị thanh ghi TR25, TR50, TR75 và TR100 theo thông số kỹ thuật của nhiệt điện trở được sử dụng. Ví dụample, NCP6.8XH03 682KΩ của Murata được sử dụng trong thiết kế. Các giá trị điện trở ở 25°C, 50°C, 75°C và 100°C lần lượt là 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507) và 662Ω (0x0296). Để ghi các giá trị tương ứng vào các thanh ghi này, hãy sử dụng lệnh sau trong môi trường 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)
  • Để đọc các giá trị, hãy sử dụng lệnh sau trong môi trường 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)
  • Giá trị trả về cũng là các từ 2 byte. Vì các lệnh xử lý trực tiếp từ 2 byte nên người dùng không cần phải lo lắng về thứ tự byte little endian ở đây.

Viết RDO (0x30~0x33)

  • Để bắt đầu một thủ tục đàm phán yêu cầu PDO, dữ liệu 4 byte được ghi vào thanh ghi RDO (Đối tượng dữ liệu yêu cầu) theo thứ tự byte little-endian. Như ví dụample, để yêu cầu PDO3 với 15V và 3A, 0x3004B12C sẽ được ghi vào thanh ghi RDO. Sử dụng lệnh sau trong môi trường python3:
  • SMBus.write_i2c_block_data(0x51, 0x30, [0x2c, 0xb1, 0x04, 0x30])
  • Vui lòng tham khảo Bảng 9 và Bảng 10 của Hướng dẫn sử dụng Bộ điều khiển bồn rửa AP33772 EVB để biết thông tin chi tiết về nội dung RDO.
  • Người dùng có thể thực hiện khôi phục cài đặt gốc bằng cách ghi vào thanh ghi RDO toàn dữ liệu bằng không:
  • SMBus.write_i2c_block_data(0x51, 0x30, [0x00, 0x00, 0x00, 0x00])
  • Bộ điều khiển bồn rửa AP33772 sẽ được đặt lại về trạng thái ban đầu và đầu ra sẽ bị tắt.

Ví dụ thực tếamptập

Example 1: Bash I2C-Tools Exampví dụ: ap33772_querypdo.bash
Cái này cũample kiểm tra tất cả các PDO hợp lệ và liệt kê các voltage và thông tin năng lực hiện tại.
Chi tiết mãDIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-8

Thực thi mã và đầu raDIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-9

Example 2: Python SMBus2 Examptên: ap33772_allpdo.py3
Cái này cũample kiểm tra tất cả các PDO hợp lệ và yêu cầu từng cái một theo thứ tự từ trên xuống dưới.
Chi tiết mãDIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-10DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-11DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-12

Thực thi mã và đầu raDIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-13DIODES-AP33772-USB-PD-Sink-Bộ điều khiển-Raspberry-Pi-Giao diện I2C-HÌNH-14

ExampTải xuống mã le

Danh sách Exampmã số

  • Example Codes có phiên bản Bash Script và Python
  1. ap33772_querypdo: truy vấn tất cả thông tin PDO
  2. ap33772_reqpdo: báo cáo tất cả thông tin PDO và gửi yêu cầu PDO do người dùng chỉ định
  3. ap33772_allpdo: báo cáo tất cả thông tin PDO và xem xét tất cả các yêu cầu PDO theo cách từ trên xuống dưới
  4. ap33772_pps: báo cáo tất cả thông tin PDO và ramps lên và xuống toàn bộ PPS voltagphạm vi e trong bước kích thước 50mV
  5. ap33772_vit: báo cáo voltage, thông tin hiện tại và nhiệt độ
Example Tải xuống trang web

Example Mã có thể được tải xuống từ Github. Phát hành lệnh sau để tải xuống: git clone https://github.com/diodinciot/ap33772.git-ap33772

Tài liệu tham khảo

  1. Bảng dữ liệu AP33772 (Bộ điều khiển USB PD3.0 PPS Sink): https://www.diodes.com/products/power-management/ac-dc-converters/usb-pd-sink-controllers/
  2. Hướng dẫn sử dụng Bộ điều khiển chìm I33772C AP2 EVB: https://www.diodes.com/applications/ac-dc-chargers-and-adapters/usb-pd-sink-controller/
  3. Raspberry Pi Zero 2 W: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
  4. Raspberry PiOS: https://www.raspberrypi.com/software/
  5. Tiện ích I2C-Tools: https://linuxhint.com/i2c-linux-utilities/
  6. Mô-đun SMBus2: https://smbus2.readthedocs.io/en/latest/

Lịch sử sửa đổi

Ôn tập Ngày phát hành Bình luận Tác giả
1.0 4/15/2022 Bản phát hành đầu tiên Edward Triệu
THÔNG BÁO QUAN TRỌNG
  • DIODES INCORPORATED KHÔNG BẢO ĐẢM DƯỚI BẤT KỲ HÌNH THỨC NÀO, RÕ RÀNG HAY NGỤ Ý, LIÊN QUAN ĐẾN TÀI LIỆU NÀY, BAO GỒM NHƯNG KHÔNG GIỚI HẠN ĐỐI VỚI CÁC BẢO ĐẢM NGỤ Ý VỀ KHẢ NĂNG BÁN VÀ SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ (VÀ CÁC TƯƠNG ĐƯƠNG CỦA CHÚNG THEO LUẬT CỦA BẤT CỨ KHU VỰC TÀI PHÁN NÀO).
  • Diodes Incorporated và các công ty con có quyền thực hiện các sửa đổi, cải tiến, cải tiến, chỉnh sửa hoặc các thay đổi khác mà không cần thông báo thêm đối với tài liệu này và bất kỳ sản phẩm nào được mô tả trong tài liệu này. Diodes Incorporated không chịu bất kỳ trách nhiệm pháp lý nào phát sinh từ việc áp dụng hoặc sử dụng tài liệu này hoặc bất kỳ sản phẩm nào được mô tả trong tài liệu này; Diodes Incorporated cũng không chuyển giao bất kỳ giấy phép nào theo quyền sáng chế hoặc nhãn hiệu của mình cũng như quyền của người khác. Bất kỳ Khách hàng hoặc người sử dụng tài liệu này hoặc các sản phẩm được mô tả trong các ứng dụng đó sẽ chịu mọi rủi ro khi sử dụng như vậy và sẽ đồng ý giữ Diodes Incorporated và tất cả các công ty có sản phẩm được trình bày trên Diodes Incorporated. webtrang web, vô hại chống lại tất cả các thiệt hại.
  • Diodes Incorporated không bảo đảm hoặc chấp nhận bất kỳ trách nhiệm pháp lý nào đối với bất kỳ sản phẩm nào được mua thông qua các kênh bán hàng trái phép.
    Nếu Khách hàng mua hoặc sử dụng sản phẩm của Diodes Incorporated cho bất kỳ mục đích sử dụng không mong muốn hoặc trái phép nào, Khách hàng sẽ phải bồi thường và giữ cho Diodes
  • Incorporated và các đại diện của công ty không phải chịu bất kỳ khiếu nại, thiệt hại, chi phí và phí luật sư nào phát sinh trực tiếp hoặc gián tiếp từ bất kỳ khiếu nại nào về thương tích cá nhân hoặc tử vong liên quan đến đơn xin cấp phép trái phép hoặc không cố ý đó.
  • Các sản phẩm được mô tả ở đây có thể được bảo vệ bởi một hoặc nhiều bằng sáng chế của Hoa Kỳ, quốc tế hoặc nước ngoài đang chờ xử lý. Tên và nhãn hiệu sản phẩm được ghi chú ở đây cũng có thể được bao phủ bởi một hoặc nhiều nhãn hiệu của Hoa Kỳ, quốc tế hoặc nước ngoài.
  • Tài liệu này được viết bằng tiếng Anh nhưng có thể được dịch sang nhiều ngôn ngữ để tham khảo. Chỉ có phiên bản tiếng Anh của tài liệu này là định dạng cuối cùng và mang tính quyết định do Diodes Incorporated phát hành.

HỖ TRỢ CUỘC SỐNG

  • Các sản phẩm của Diodes Incorporated đặc biệt không được phép sử dụng làm các thành phần quan trọng trong các thiết bị hoặc hệ thống hỗ trợ sự sống mà không có sự chấp thuận rõ ràng bằng văn bản của Giám đốc điều hành của Diodes Incorporated. Như được sử dụng ở đây:
  • A. Các thiết bị hoặc hệ thống hỗ trợ cuộc sống là các thiết bị hoặc hệ thống:
  1. được dự định cấy ghép vào cơ thể, hoặc
  2. hỗ trợ hoặc duy trì sự sống và việc không thực hiện khi được sử dụng đúng cách theo hướng dẫn sử dụng được cung cấp trên nhãn có thể dẫn đến thương tích đáng kể cho người dùng.
    • B. Thành phần quan trọng là bất kỳ thành phần nào trong thiết bị hoặc hệ thống hỗ trợ sự sống mà việc không hoạt động có thể được cho là sẽ gây ra lỗi cho thiết bị hỗ trợ sự sống hoặc ảnh hưởng đến sự an toàn hoặc hiệu quả của thiết bị.
    • Khách hàng cam kết rằng họ có mọi chuyên môn cần thiết về an toàn và hậu quả pháp lý của các thiết bị hoặc hệ thống hỗ trợ sự sống của họ và thừa nhận và đồng ý rằng họ hoàn toàn chịu trách nhiệm về mọi yêu cầu pháp lý, quy định và liên quan đến an toàn liên quan đến sản phẩm của họ và bất kỳ việc sử dụng sản phẩm Diodes Incorporated nào trong các thiết bị hoặc hệ thống hỗ trợ sự sống quan trọng đối với an toàn đó, bất chấp mọi thông tin hoặc hỗ trợ liên quan đến thiết bị hoặc hệ thống có thể được Diodes Incorporated cung cấp.
    • Ngoài ra, Khách hàng phải bồi thường toàn bộ cho Diodes Incorporated và các đại diện của công ty đối với mọi thiệt hại phát sinh do sử dụng sản phẩm của Diodes Incorporated trong các thiết bị hoặc hệ thống hỗ trợ sự sống quan trọng đối với an toàn đó.

Tài liệu / Tài nguyên

Bộ điều khiển USB PD Sink DIODES AP33772 Raspberry Pi Giao diện I2C [tập tin pdf] Hướng dẫn sử dụng
AP33772 Bộ điều khiển USB PD Sink Giao diện Raspberry Pi I2C, AP33772, Bộ điều khiển USB PD Sink Giao diện Raspberry Pi I2C, Giao diện Raspberry Pi I2C, Giao diện Pi I2C

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *