დიოდები-ლოგო

DIODES AP33772 USB PD რადიატორის კონტროლერი Raspberry Pi I2C ინტერფეისი

DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-PRODUCT

შესავალი

  • AP33772 რადიატორის კონტროლერი, რომელიც მუშაობს USB PD3.0 Type C კონექტორით აღჭურვილი მოწყობილობის პროტოკოლად (TCD, Energy Sink), განკუთვნილია USB PD3.0 Type C კონექტორით აღჭურვილი PD3.0-დან სათანადო კვების ობიექტის (PDO) მოთხოვნით. .XNUMX შესაბამისობის დამტენი (PDC, ენერგიის წყარო).
  • სურათი 1 ასახავს TCD-ს, ჩაშენებული PD3.0 Sink controller IC-ით (AP33772), ფიზიკურად არის დაკავშირებული PDC-თან, ჩაშენებული USB PD3.0 დეკოდერით (AP43771), მეშვეობით
  • ტიპი C-to-Type C კაბელი. ჩაშენებული USB PD3.0 თავსებადი პროგრამული უზრუნველყოფის საფუძველზე, AP33772 და AP43771 წყვილი გაივლის USB PD3.0 სტანდარტული მიმაგრების პროცედურას PD3.0 დატენვის შესაფერისი მდგომარეობის დასამყარებლად.
  • AP33772 რადიატორის კონტროლერი EVB უზრუნველყოფს სიმარტივეს გამოყენებას და დიდ მრავალფეროვნებას სისტემის დიზაინერისთვის, რომ მოითხოვოს PDO-ები USB დენის მიწოდების დამტენიდან AP33772 ჩაშენებული ბრძანებების გაგზავნით I2C ინტერფეისის საშუალებით. ტიპიური სისტემის დიზაინი მოითხოვს MCU პროგრამირებას, რომელიც საჭიროებს სპეციფიკურ პროგრამულ უზრუნველყოფას (მაგ. IDE) და შეიძლება იყოს შრომატევადი განვითარების პროცესი.
  • ამის საპირისპიროდ, Raspberry Pi (RPI), ერთი დაფის კომპიუტერი (SBC), რომელიც მუშაობს მოსახერხებელი Linux OS-ზე და აღჭურვილია მოქნილი GPIO ქინძისთავებით, უზრუნველყოფს მარტივ გზას AP33772 Sink EVB მუშაობის PD დამტენით. ამ სახელმძღვანელოს მიზანია სისტემის დიზაინერებს მიაწოდოს ეფექტური პლატფორმა, რათა სწრაფად დაასრულონ პროგრამული უზრუნველყოფის ვალიდაცია RPI-ზე და შემდეგ შეასრულონ განვითარება ნებისმიერ სასურველ MCU-ზე, რათა დააკმაყოფილონ სწრაფი შემობრუნების ბაზრის მოთხოვნები.
  • როგორც AP33772 EVB მომხმარებლის სახელმძღვანელოს დამატებითი დოკუმენტი, ეს მომხმარებლის სახელმძღვანელო ასახავს AP33772 EVB-ს მართვის მარტივ გზას RPI SBC-ით I2C ინტერფეისის მეშვეობით.
  • ნახაზ 1-ში გამოსახული MCU ბლოკის როლს AP33772-თან ინტერფეისისთვის ასრულებს RPI. ეს მომხმარებლის სახელმძღვანელო მოიცავს უამრავ რეგისტრის განმარტებას და გამოყენების ინფორმაციას, როგორც მაგampთუმცა, სრული და ყველაზე განახლებული ინფორმაციისთვის, გთხოვთ, იხილოთ AP33772 EVB მომხმარებლის სახელმძღვანელო. (იხილეთ მითითება 2)DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-1
  • სურათი 1 – ტიპიური TCD იყენებს AP33772 PD Sink Controller I2C ინტერფეისით, რათა მოითხოვოს ენერგია USB Type-C PD3.0/PPS შესაბამისობის წყაროს ადაპტერიდან.

ვალიდაციის პლატფორმის დაყენება

AP33772 ნიჟარის კონტროლერი EVB
სურათი 2 აჩვენებს Sink Controller EVB სურათს. მას აქვს Type-C კონექტორი, I2C ქინძისთავები, GPIO3 პინი შეფერხებისთვის, NTC თერმისტორი OTP-სთვის, LED ინდიკატორები დატენვის სტატუსის საჩვენებლად და Vout კონექტორი დატვირთვისთვის.DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-2

Raspberry Pi Zero 2W

  • RPI-ის ნებისმიერ უახლეს ვერსიას შეუძლია აკონტროლოს AP33772 Sink Controller EVB I2C ქინძისთავების მეშვეობით. Raspberry Pi Zero 2 W (RPI Z2W) გამოიყენება ამ მომხმარებლის სახელმძღვანელოში მისი ხარჯების ეფექტურობისა და მრავალფეროვნებისთვის. მას აქვს ყველაზე პატარა ფორმატორი ყველა RPI-ს შორის და ინტეგრირებულია WiFi-თან და Bluetooth-თან, რაც უკაბელო კავშირს დამატებითი კომპონენტის გარეშე ხდის. ის შესანიშნავად ემსახურება დანიშნულებას, როგორც AP33772 რადიატორის კონტროლერი 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-Interface-FIG-3DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-4

ვალიდაციის პლატფორმის კავშირი და ჩართვა

სურათი 5 აჩვენებს ვალიდაციის პლატფორმის სრულ კავშირს და დაყენებას. მომხმარებელმა უნდა დაიცვას ეს ნაბიჯები:

  1. დააკავშირეთ SCL, SDA და GND ქინძისთავები RPI-სა და AP33772 EVB-ს შორის
  2. შეაერთეთ 65W PD დამტენი და AP33772 EVB Type-C კაბელით
  3. ჩართეთ RPI და PD დამტენი.DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-5

Raspberry Pi პროგრამული უზრუნველყოფის დაყენება

Raspberry Pi OS

  • არსებობს მრავალი განსხვავებული ოპერაციული სისტემა, რომელიც მხარს უჭერს RPI-ს. მათ შორის არჩეულია Raspberry Pi OS, რადგან ის არის ყველაზე ხშირად გამოყენებული და რეკომენდებული RPI ოფიციალური საიტის მიერ.

ჩამოტვირთეთ OS სურათი და მოამზადეთ SD ბარათი

  • ჩამოტვირთეთ და დააინსტალირეთ Raspberry Pi Imager ინსტრუმენტები კომპიუტერზე (https://www.raspberrypi.com/software/). მიჰყევით ინსტრუქციას, რომ მოამზადოთ Micro-SD, რომელიც დატვირთულია სწორი OS სურათით (https://youtu.be/ntaXWS8Lk34/). გთხოვთ გაითვალისწინოთ, რომ რეკომენდებულია Micro-SD ბარათი 32 BG ან მეტი.DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-6

Raspberry PI OS ინსტალაცია

  • ჩადეთ Micro-SD ბარათი, რომელიც ადრე დატვირთული იყო გამოსახულების საშუალებით, RPI-ის Micro-SD სლოტში. შეაერთეთ კვების ადაპტერი, მაუსი/კლავიატურა და HDMI მონიტორი. ჩართეთ RPI და მიჰყევით ინსტრუქციას, რომ დაასრულოთ OS ინსტალაცია და ძირითადი დაყენება. დარწმუნდით, რომ უახლესი განახლებები შედის OS-ში.

საჭირო ფუნქციების დაყენება

  • I2C ინტერფეისის RPI-ზე წარმატებით გასაშვებად, ჩვენ უნდა დავაყენოთ ან დავაყენოთ SSH, VNC და I2C ფუნქციები.

Raspberry Pi Config – SSH, VNC, I2C

  • RPI ჩატვირთვის შემდეგ გახსენით პროგრამა „Raspberry Pi Configure“ და ჩართეთ SSH, VNC და I2C ფუნქციები.DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-7

I2C Baud Rate კონფიგურაცია

  • შეცვალეთ ხაზები dtparam-თან და dtoverlay-თან დაკავშირებით /boot/config.txt-ში file ერთად:
  • dtoverlay=i2c-bcm2708
  • dtparam=i2c_arm=on,i2c_arm_baudrate=640000

I2C-Tools ინსტალაცია

  • I2C-Tools არის ხელსაწყოების ნაკრები, რომელიც უზრუნველყოფს მარტივ ბრძანებებს, რომლებიც გაშვებულია ბრძანების ხაზზე Raspberry Pi OS-ის ქვეშ. დააინსტალირეთ I2C-Tools OS-ზე გაშვებით: sudo apt install i2c-tools

SMBus2 ინსტალაცია

  • SMBus2 არის პითონის მოდული, რომელიც უზრუნველყოფს მომხმარებლისთვის მოსახერხებელ ფუნქციებს პითონის გარემოში I2C ინტერფეისის გასაკონტროლებლად. დააინსტალირეთ SMBus2 მოდული Python-ისთვის OS-ზე გაშვებით: sudo pip3 install smbus2

ძირითადი ბრძანება მაგamples

  • ეს მომხმარებლის სახელმძღვანელო გვიჩვენებს I2C ინტერფეისთან მუშაობის ორ განსხვავებულ მეთოდს RPI-ზე. ეს არის I2C-Tools Utility და Python SMBus2 Module. ორივე მეთოდის ძირითადი ბრძანებები მოცემულია ამ განყოფილებაში.

 I2C-Tools ბრძანება მაგamples

  • I2C-Tools კომუნალური პაკეტი უზრუნველყოფს i2cdetect, i2cget და i2cset ბრძანებებს. გამარტივებული გამოყენება აღწერილია ყოფილშიamples ამ განყოფილებაში. სრული ინფორმაციისთვის I2C-Tools კომუნალური პროგრამის შესახებ, გთხოვთ, იხილოთ https://linuxhint.com/i2c-linux-utilities/.
  • ცხრილი 1 გვიჩვენებს AP33772 რეგისტრის შეჯამებას მომხმარებლის მოხერხებულობისთვის ამ განყოფილებაში ბრძანების გამოყენების ათვისებაში. რეგისტრაციის სრული ინფორმაციისთვის, გთხოვთ, იხილოთ AP33772 Sink Controller EVB მომხმარებლის სახელმძღვანელო.
რეგისტრაცია ბრძანება სიგრძე ატრიბუტი ჩართვა აღწერა
 

SRCPDO

 

0x00

 

28

 

RO

 

მთელი 00 სთ

Power Data Object (PDO) გამოიყენება PD Source (SRC) კვების შესაძლებლობების გამოსავლენად.

მთლიანი სიგრძეა 28 ბაიტი

PDONUM 0x1C 1 RO 00 სთ სწორი წყაროს PDO ნომერი
STATUS 0x1D 1 RC 00 სთ AP33772 სტატუსი
ნიღაბი 0x1E 1 RW 01 სთ შეწყვეტის ჩართვის ნიღაბი
VOLTAGE 0x20 1 RO 00 სთ LSB 80 მვ
მიმდინარე 0x21 1 RO 00 სთ LSB 24 mA
ტემპერატურა 0x22 1 RO 19 სთ ტემპერატურა, ერთეული: °C
OCPTHR 0x23 1 RW 00 სთ OCP ბარიერი, LSB 50 mA
OTPTHR 0x24 1 RW 78 სთ OTP ბარიერი, ერთეული: °C
DRTHR 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 03 CEh თერმული წინააღმდეგობა @100°C, ერთეული: Ω
RDO 0x30 4 WO 00000000 სთ მოთხოვნის მონაცემთა ობიექტი (RDO) გამოიყენება დენის შესაძლებლობების მოთხოვნის მიზნით.
VID 0x34 2 RW 0000 სთ გამყიდველის ID, დაცულია მომავალი აპლიკაციებისთვის
PID 0x36 2 RW 0000 სთ პროდუქტის ID, დაცულია მომავალი აპლიკაციებისთვის
დაჯავშნილი 0x38 4 დაცულია მომავალი აპლიკაციებისთვის

ცხრილი 1 – AP33772 რეესტრის შეჯამება

იპოვნეთ I2C-ზე მიმაგრებული ყველა მოწყობილობა – i2cdetect

  • I2C-2 ავტობუსზე გაკეთებული ყველა i1c მოწყობილობის საჩვენებლად, აკრიფეთ შემდეგი ბრძანების სტრიქონში: i2cdetect -y 1
  • თუ AP33772 ჩაძირვის კონტროლერი EVB არის მიმაგრებული, მომხმარებელმა უნდა დაინახოს, რომ მოწყობილობა მიმაგრებულია 0x51 მისამართზე

წაიკითხეთ SRCPDO (0x00~0x1B)

  • i2cget ბრძანებას არ აქვს 2 ბაიტზე მეტი ხნის წაკითხვის მხარდაჭერა. მომხმარებელმა უნდა გამოიყენოს "for loop" ყველა 28 ბაიტიანი PDO მონაცემების საჩვენებლად. ყველა PDO მონაცემების საჩვენებლად, ჩაწერეთ შემდეგი bash ბრძანების სტრიქონში i-სთვის {0..27}-ში; do i2cget -y 1 0x51 $ib; შესრულებულია
  • ნაჩვენები იქნება 28-ბაიტი მონაცემები, რომლებიც წარმოადგენს 7 PDO-ს

წაიკითხეთ PDONUM (0x1C)

  • მოქმედი PDO-ების საერთო რაოდენობის საჩვენებლად, აკრიფეთ შემდეგი ბრძანების სტრიქონში: i2cget -y 1 0x51 0x1c b

STATUS-ის წაკითხვა (0x1D)

  • ეს ბრძანება აცნობებს რადიატორის კონტროლერის სტატუსს, მათ შორის შეფასების, OTP, OCP, OVP, მოთხოვნა უარყოფილია, მოთხოვნა დასრულებულია და მზადაა. სტატუსის ინფორმაციის სანახავად, აკრიფეთ შემდეგი ბრძანების სტრიქონში: i2cget -y 1 0x51 0x1d b
  • მომხმარებელმა უნდა გამოიყენოს ეს ბრძანება ყოველი RDO მოთხოვნის შემდეგ, რათა უზრუნველყოს წარმატებული RDO მოთხოვნა COMPLETE ბიტის წაკითხვით. 4.1.5 ჩაწერის ნიღაბი (0x1E)
  • ეს ბრძანება საშუალებას აძლევს შეფერხებებს, რომლებიც სიგნალს აძლევს მასპინძელს AP3-ის GPIO33772 პინის მეშვეობით. შეფერხებები მოიცავს Derating , OTP, OCP, OVP, მოთხოვნა უარყოფილია, მოთხოვნა დასრულებულია და მზადაა. კონკრეტული შეფერხების ჩასართავად, დააყენეთ შესაბამისი ბიტი ერთზე. მაგample, OCP შეფერხების ჩასართავად, დააყენეთ MASK რეგისტრის მე-4 ბიტი ერთზე შემდეგი ბრძანების სტრიქონში აკრეფით: i2cset -y 1 0x51 0x1e 0x10 b
  • AP3-ის GPIO33772 პინი ამაღლდება, როდესაც OCP დაცვა ამოქმედდება.

წაიკითხეთ VOLTAGE (0x20)

  • ეს ბრძანება იუწყება ტომიtage იზომება AP33772 ნიჟარის კონტროლერით. მოხსენება ტtage, ჩაწერეთ შემდეგი ბრძანების სტრიქონში: i2cget -y 1 0x51 0x20 b
  • მოხსენებული მნიშვნელობის ერთი ერთეული წარმოადგენს 80 მვ.

წაიკითხეთ CURRENT (0x21)

  • ეს ბრძანება იუწყება AP33772 ნიჟარის კონტროლერის მიერ გაზომილი დენი. მიმდინარე მოხსენებისთვის, აკრიფეთ შემდეგი ბრძანების სტრიქონში: i2cget -y 1 0x51 0x21 b
  • მოხსენებული მნიშვნელობის ერთი ერთეული წარმოადგენს 24 mA-ს.

წაიკითხეთ TEMP (0x22)

  • ეს ბრძანება აცნობებს AP33772 ნიჟარის კონტროლერის მიერ გაზომილ ტემპერატურას. ტემპერატურის შესატყობინებლად, აკრიფეთ შემდეგი ბრძანების სტრიქონში:
    i2cget -y 1 0x51 0x22 ბ
  • მოხსენებული მნიშვნელობის ერთი ერთეული წარმოადგენს 1°C-ს.
  • წაიკითხეთ და ჩაწერეთ OCPTHR (0x23), OTPTHR (0x24) და DRTHR (0x25)
  • OCP, OTP და დაშორების ზღურბლები შეიძლება შეიცვალოს მომხმარებლის სასურველ მნიშვნელობებად 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 b i2cget -y 1 0x51 0x24 b i2cget -y 1 0x51 0x25 b
  • წაიკითხეთ და ჩაწერეთ TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D) და TR100 (0x2E~0x2F)
  • Murata 10KΩ უარყოფითი ტემპერატურის კოეფიციენტის (NTC) თერმისტორი NCP03XH103 დასახლებულია AP33772 EVB-ზე. მომხმარებლის უპირატესობაა საბოლოო დიზაინში თერმისტორის შეცვლა სხვაზე. მომხმარებელმა უნდა განაახლოს TR25, TR50, TR75 და TR100 რეგისტრირებული მნიშვნელობები გამოყენებული თერმისტორის სპეციფიკაციების მიხედვით. მაგampლე,
  • დიზაინში გამოყენებულია მურატას 6.8KΩ NCP03XH682. წინააღმდეგობის მნიშვნელობები 25°C, 50°C, 75°C და 100°C არის შესაბამისად 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507) და 662Ω (0x0296). ამ რეგისტრებში შესაბამისი მნიშვნელობების ჩასაწერად, აკრიფეთ შემდეგი ბრძანების სტრიქონში:
  • 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 0x2 wx0
  • მნიშვნელობების წასაკითხად, ჩაწერეთ შემდეგი ბრძანების სტრიქონში: 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 ბაიტიან სიტყვას, მომხმარებლებს არ სჭირდებათ ფიქრი მცირე ენდიან ბაიტების შეკვეთაზე აქ.

ჩაწერეთ 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 ნიჟარის კონტროლერის EVB მომხმარებლის
  • სახელმძღვანელო დეტალური RDO შინაარსის ინფორმაციისთვის.
  • მომხმარებელს შეუძლია გაუშვას მყარი გადატვირთვა RDO რეგისტრის დაწერით ყველა ნულოვანი მონაცემებით: i2cset -y 1 0x51 0x30 0x00 0x00 0x00 0x00 i
  • AP33772 ნიჟარის კონტროლერი გადაკეთდება საწყის მდგომარეობაში და გამომავალი გამორთვა.

Python SMBus2 ბრძანება მაგamples

  • პითონი სულ უფრო პოპულარული ხდება მხარდაჭერილი მოდულების დიდი მრავალფეროვნებით. SMBus2 მათ შორისაა და შეუძლია I2C წაკითხვის და ჩაწერის ბრძანებების მართვა. SMBus2 უზრუნველყოფს read_byte_data, read_word_data, read_i2c_block_data, write_byte_data, write_word_data, write_i2c_block_data ბრძანებებს. გამარტივებული გამოყენება აღწერილია ყოფილშიamples ამ განყოფილებაში. SMBus2 მოდულის შესახებ სრული ინფორმაციისთვის იხილეთ https://smbus2.readthedocs.io/en/latest/.

წაიკითხეთ SRCPDO (0x00~0x1B) 

  • SMBus.read_i2c_block_data არის ეფექტური ბრძანება 32 ბაიტამდე ბლოკის მონაცემების წაკითხვის მხარდასაჭერად. ყველა 28 ბაიტიანი PDO მონაცემების წასაკითხად გამოიყენეთ შემდეგი python3 გარემოში:
  • SMBus.read_i2c_block_data(0x51, 0x00, 28)
  • 28 ერთბაიტიანი მონაცემი, რომელიც წარმოადგენს 7 PDO-ს, დაბრუნდება სიის მონაცემთა სტრუქტურაში.

წაიკითხეთ PDONUM (0x1C)

  • მოქმედი PDO-ების საერთო რაოდენობის წასაკითხად გამოიყენეთ შემდეგი python3 გარემოში:
  • SMBus.read_byte_data (0x51, 0x1c)
  • დაბრუნდება ერთი ბაიტის მონაცემები, რომელიც წარმოადგენს PDO-ს მოქმედ რაოდენობას.

STATUS-ის წაკითხვა (0x1D)

  • ეს ბრძანება აცნობებს რადიატორის კონტროლერის სტატუსს, მათ შორის: Derating , OTP, OCP, OVP, მოთხოვნა უარყოფილია, მოთხოვნა დასრულებულია და მზადაა. სტატუსის ინფორმაციის წასაკითხად გამოიყენეთ შემდეგი python3 გარემოში:
  • SMBus.read_byte_data (0x51, 0x1d)
  • მომხმარებელს შეუძლია გამოიყენოს ეს ბრძანება ყოველი RDO მოთხოვნის შემდეგ, რათა უზრუნველყოს წარმატებული RDO მოთხოვნა COMPLETE ბიტის წაკითხვით.

დაწერე ნიღაბი (0x1E)

  • ეს ბრძანება საშუალებას აძლევს შეფერხებებს, რომლებიც სიგნალს აძლევს მასპინძელს AP3-ის GPIO33772 პინის მეშვეობით. შეფერხებები მოიცავს შემცირებას, OTP, OCP, OVP, მოთხოვნის უარყოფას, მოთხოვნას
  • დასრულებული და მზადაა. კონკრეტული შეფერხების ჩასართავად, დააყენეთ შესაბამისი ბიტი ერთზე. მაგample, OCP შეფერხების ჩასართავად, დააყენეთ MASK რეგისტრის მე-4 ბიტი ერთზე შემდეგი python3 გარემოს გამოყენებით:
  • SMBus.write_byte_data(0x51, 0x1e, 0x10)
  • AP3-ის GPIO33772 პინი ამაღლდება, როდესაც OCP დაცვა ამოქმედდება.

წაიკითხეთ VOLTAGE (0x20)

  • ეს ბრძანება იუწყება ტომიtage იზომება AP33772 ნიჟარის კონტროლერით. მოხსენება ტtagე, გამოიყენეთ შემდეგი python3 გარემოში:
  • SMBus.read_byte_data (0x51, 0x20)
  • მოხსენებული მნიშვნელობის ერთი ერთეული წარმოადგენს 80 მვ.

წაიკითხეთ CURRENT (0x21)

  • ეს ბრძანება იუწყება AP33772 ნიჟარის კონტროლერის მიერ გაზომილი დენი. მიმდინარე მოხსენებისთვის გამოიყენეთ შემდეგი python3 გარემოში
  • SMBus.read_byte_data (0x51, 0x21)
  • მოხსენებული მნიშვნელობის ერთი ერთეული წარმოადგენს 24 mA-ს.

წაიკითხეთ TEMP (0x22)

  • ეს ბრძანება აცნობებს AP33772 ნიჟარის კონტროლერის მიერ გაზომილ ტემპერატურას. ტემპერატურის შესატყობინებლად გამოიყენეთ შემდეგი python3 გარემოში:
  • SMBus.read_byte_data (0x51, 0x22)
  • მოხსენებული მნიშვნელობის ერთი ერთეული წარმოადგენს 1°C-ს.

წაიკითხეთ და ჩაწერეთ OCPTHR (0x23), OTPTHR (0x24) და DRTHR (0x25) 

  • OCP, OTP და დაშორების ზღურბლები შეიძლება შეიცვალოს მომხმარებლის სასურველ მნიშვნელობებად 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)
  • შემცირების ზღურბლის 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)
  • Murata 10KΩ უარყოფითი ტემპერატურის კოეფიციენტის (NTC) თერმისტორი NCP03XH103 დასახლებულია AP33772 EVB-ზე. მომხმარებლის უპირატესობაა საბოლოო დიზაინში თერმისტორის შეცვლა სხვაზე. მომხმარებელმა უნდა განაახლოს TR25, TR50, TR75 და TR100 რეგისტრების მნიშვნელობა გამოყენებული თერმისტორის სპეციფიკაციების მიხედვით. მაგampასევე, დიზაინში გამოყენებულია Murata-ს 6.8KΩ NCP03XH682. წინააღმდეგობის მნიშვნელობები 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) SMBusta.read_x0e,(51x0e)
  • დაბრუნებული მნიშვნელობები ასევე არის 2-ბაიტიანი სიტყვები. ვინაიდან ბრძანებები უშუალოდ ამუშავებს 2 ბაიტიან სიტყვას, მომხმარებლებს არ სჭირდებათ ფიქრი მცირე ენდიან ბაიტების შეკვეთაზე აქ.

ჩაწერეთ 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 ნიჟარის კონტროლერი გადაკეთდება საწყის მდგომარეობაში და გამომავალი გამორთვა.

პრაქტიკული მაგamples

Example 1: Bash I2C-Tools მაგample: ap33772_querypdo.bash
ეს ყოფილიample ამოწმებს ყველა მოქმედ PDO-ს და ჩამოთვლის ტომსtage და მიმდინარე შესაძლებლობების შესახებ ინფორმაცია.
კოდის დეტალებიDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-8

კოდის შესრულება და შედეგებიDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-9

Example 2: Python SMBus2 მაგample: ap33772_allpdo.py3
ეს ყოფილიample ამოწმებს ყველა მოქმედ PDO-ს და ითხოვს მათ სათითაოდ ზევით და ქვევით თანმიმდევრობით.
კოდის დეტალებიDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-10DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-11DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-12

კოდის შესრულება და შედეგებიDIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-13DIODES-AP33772-USB-PD-Sink-Controller-Raspberry-Pi-I2C-Interface-FIG-14

Exampკოდის ჩამოტვირთვა

სია ეგampკოდები

  • Exampკოდებს აქვთ Bash Script და Python ვერსიები
  1. ap33772_querypdo: ითხოვს ყველა PDO ინფორმაციას
  2. ap33772_reqpdo: აცნობებს ყველა PDO ინფორმაციას და აგზავნის მომხმარებლის მიერ მითითებულ PDO მოთხოვნას
  3. ap33772_allpdo: აცნობებს ყველა PDO ინფორმაციას და ათვალიერებს ყველა PDO მოთხოვნას ზემოთ და ქვემოთ
  4. ap33772_pps: აცნობებს ყველა PDO ინფორმაციას და ramps up-down მთელი PPS voltagდიაპაზონი 50 მვ საფეხურის ზომაში
  5. ap33772_vit: მოხსენებები ტtagე, მიმდინარე და ტემპერატურის ინფორმაცია
Exampჩამოტვირთვის საიტი

Example კოდების ჩამოტვირთვა შესაძლებელია Github-დან. ჩამოსატვირთად გაუშვით შემდეგი ბრძანება: git clone https://github.com/diodinciot/ap33772.git-ap33772

ცნობები

  1. AP33772 მონაცემთა ცხრილი (USB PD3.0 PPS ჩაძირვის კონტროლერი): 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 Zero 2 W: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
  4. Raspberry Pi OS: 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 საწყისი გამოშვება ედვარდ ჟაო
მნიშვნელოვანი შენიშვნა
  • INCORPORATED DIODES არ იძლევა რაიმე სახის, გამოხატულ ან ნაგულისხმევ გარანტიას ამ დოკუმენტთან დაკავშირებით, მათ შორის, მაგრამ არ შემოიფარგლება, ნაგულისხმევი გარანტიებით სავაჭრო და სარგებლიანობისა და კომპეტენტურობის შესახებ ნებისმიერი იურისდიქციის კანონების მიხედვით).
  • Diodes Incorporated და მისი შვილობილი კომპანიები იტოვებენ უფლებას განახორციელონ ცვლილებები, გაუმჯობესებები, გაუმჯობესებები, შესწორებები ან სხვა ცვლილებები ამ დოკუმენტისა და აქ აღწერილი ნებისმიერი პროდუქტის შემდგომი შეტყობინების გარეშე. Diodes Incorporated არ იღებს პასუხისმგებლობას, რომელიც წარმოიქმნება ამ დოკუმენტის ან აქ აღწერილი ნებისმიერი პროდუქტის გამოყენების ან გამოყენების შედეგად; არც Diodes Incorporated არ ავრცელებს რაიმე ლიცენზიას თავისი პატენტის ან სავაჭრო ნიშნის უფლებებით და არც სხვათა უფლებებით. ამ დოკუმენტის ან პროდუქტების ნებისმიერი მომხმარებელი ან მომხმარებელი, რომელიც აღწერილია ამ აპლიკაციებში, იკისრებს ასეთი გამოყენების ყველა რისკს და დათანხმდება Diodes Incorporated-ზე და ყველა კომპანიაზე, რომელთა პროდუქტებიც წარმოდგენილია Diodes Incorporated-ზე. webსაიტი, უვნებელია ყოველგვარი დაზიანებისგან.
  • Diodes Incorporated არ იძლევა გარანტიას და არ იღებს რაიმე პასუხისმგებლობას არაავტორიზებული გაყიდვების არხებით შეძენილ პროდუქტებთან დაკავშირებით.
    თუ მომხმარებლებმა შეიძინონ ან გამოიყენონ Diodes Incorporated პროდუქცია რაიმე გაუთვალისწინებელი ან არაავტორიზებული აპლიკაციისთვის, მომხმარებლებმა უნდა აუნაზღაურონ და შეინახონ დიოდები
  • Incorporated და მისი წარმომადგენლები უვნებელნი იყვნენ ყველა პრეტენზიის, ზიანის, ხარჯისა და ადვოკატის გადასახადის მიმართ, რომელიც წარმოიქმნება, პირდაპირ ან ირიბად, ნებისმიერი პრეტენზიის შესახებ პირადი დაზიანების ან სიკვდილის შესახებ, რომელიც დაკავშირებულია ასეთ გაუთვალისწინებელ ან არაავტორიზებულ განცხადებასთან.
  • აქ აღწერილი პროდუქტები შეიძლება დაფარული იყოს ერთი ან მეტი შეერთებული შტატების, საერთაშორისო ან უცხოური პატენტით. აქ მითითებული პროდუქტის სახელები და ნიშნები შეიძლება ასევე იყოს დაფარული ერთი ან მეტი შეერთებული შტატების, საერთაშორისო ან უცხოური სავაჭრო ნიშნით.
  • ეს დოკუმენტი დაწერილია ინგლისურად, მაგრამ შეიძლება ითარგმნოს მრავალ ენაზე მითითებისთვის. ამ დოკუმენტის მხოლოდ ინგლისური ვერსიაა Diodes Incorporated-ის მიერ გამოშვებული საბოლოო და განმსაზღვრელი ფორმატი.

სიცოცხლის მხარდაჭერა

  • Diodes Incorporated პროდუქტები კონკრეტულად არ არის უფლებამოსილი გამოსაყენებლად, როგორც კრიტიკული კომპონენტები სიცოცხლის მხარდაჭერის მოწყობილობებში ან სისტემებში, Diodes Incorporated-ის აღმასრულებელი დირექტორის წერილობითი თანხმობის გარეშე. როგორც გამოიყენება აქ:
  • A. სიცოცხლის დამხმარე მოწყობილობები ან სისტემები არის მოწყობილობები ან სისტემები, რომლებიც:
  1. განკუთვნილია სხეულში იმპლანტაციისთვის, ან
  2. მხარდაჭერით ან სიცოცხლისუნარიანობით და რომლის წარუმატებლობა, როდესაც სათანადოდ გამოიყენება ეტიკეტზე მოცემული გამოყენების ინსტრუქციის შესაბამისად, შეიძლება გონივრულად მოსალოდნელი იყოს მომხმარებლისთვის მნიშვნელოვანი ზიანის მიყენება.
    • B. კრიტიკული კომპონენტი არის სიცოცხლის დამხმარე მოწყობილობის ან სისტემის ნებისმიერი კომპონენტი, რომლის შეუსრულებლობა შეიძლება გონივრულად იყოს მოსალოდნელი, რომ გამოიწვიოს სიცოცხლის დამხმარე მოწყობილობის გაუმართაობა ან გავლენა მოახდინოს მის უსაფრთხოებაზე ან ეფექტურობაზე.
    • მომხმარებლები აცხადებენ, რომ მათ აქვთ ყველა საჭირო გამოცდილება მათი სიცოცხლის მხარდაჭერის მოწყობილობების ან სისტემების უსაფრთხოებისა და მარეგულირებელი შედეგების შესახებ, და აღიარებენ და თანხმდებიან, რომ ისინი არიან მხოლოდ პასუხისმგებელი ყველა იურიდიულ, მარეგულირებელ და უსაფრთხოებასთან დაკავშირებულ მოთხოვნაზე მათ პროდუქტებთან და დიოდების გამოყენებასთან დაკავშირებით. პროდუქტები ჩართულია უსაფრთხოებისთვის კრიტიკულ, სიცოცხლის მხარდაჭერის მოწყობილობებში ან სისტემებში, მიუხედავად მოწყობილობებისა და სისტემებთან დაკავშირებული ინფორმაციისა თუ მხარდაჭერისა, რომელიც შეიძლება მოწოდებული იყოს Diodes Incorporated-ის მიერ.
    • გარდა ამისა, მომხმარებლებმა სრულად უნდა აანაზღაურონ Diodes Incorporated და მისი წარმომადგენლები ნებისმიერი ზიანისგან, რომელიც წარმოიქმნება Diodes Incorporated პროდუქტების გამოყენებისას უსაფრთხოებისთვის კრიტიკულ, სიცოცხლის მხარდაჭერის მოწყობილობებში ან სისტემებში.
  • საავტორო უფლება © 2017, Diodes Incorporated
  • www.diodes.com

დოკუმენტები / რესურსები

DIODES AP33772 USB PD რადიატორის კონტროლერი Raspberry Pi I2C ინტერფეისი [pdf] მომხმარებლის სახელმძღვანელო
AP33772 USB PD Sink Controller Raspberry Pi I2C ინტერფეისი, AP33772, USB PD Sink Controller Raspberry Pi I2C ინტერფეისი, Raspberry Pi I2C ინტერფეისი, Pi I2C ინტერფეისი

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *