DIODES AP33772 USB PD Sink Controller Raspberry Pi I2C Interface
Panimula
- Ang AP33772 Sink Controller, na gumagana bilang protocol device ng USB PD3.0 Type C Connector-equipped Device (TCD, Energy Sink), ay nilayon na humiling ng wastong Power Data Object (PDO) mula sa USB PD3.0 Type C Connector-equipped PD3.0 .XNUMX compliance Charger (PDC, Pinagmulan ng Enerhiya).
- Ang Figure 1 ay naglalarawan ng isang TCD, na naka-embed sa PD3.0 Sink controller IC (AP33772), ay pisikal na konektado sa PDC, na naka-embed sa USB PD3.0 decoder (AP43771), sa pamamagitan ng isang
- Uri C-to-Type C cable. Batay sa built-in na USB PD3.0 compliant firmware, Ang AP33772 at AP43771 pair ay dadaan sa USB PD3.0 standard attachment procedure para magtatag ng angkop na PD3.0 charging state.
- Ang AP33772 Sink Controller EVB ay nagbibigay ng kadalian ng paggamit at mahusay na versatility para sa system designer na humiling ng mga PDO mula sa USB Power Delivery Charger sa pamamagitan ng pagpapadala ng AP33772 built-in na mga command sa pamamagitan ng I2C interface. Ang karaniwang disenyo ng system ay nangangailangan ng MCU programming na nangangailangan ng partikular na software (hal. IDE) setup at maaaring isang proseso ng pag-unlad na matagal.
- Sa kabaligtaran, ang Raspberry Pi (RPI), isang solong board computer (SBC) na tumatakbo sa isang user-friendly na Linux OS at nilagyan ng mga flexible na GPIO pin, ay nagbibigay ng isang direktang paraan upang mapatunayan ang AP33772 Sink EVB na gumagana sa isang PD Charger. Ang layunin ng gabay na ito ay magbigay sa mga taga-disenyo ng system ng isang epektibong platform upang mabilis na makumpleto ang pagpapatunay ng software sa RPI at pagkatapos ay i-port ang pagbuo sa anumang kanais-nais na MCU upang matugunan ang mabilis na turnaround na mga kinakailangan sa merkado.
- Bilang pandagdag na dokumento sa AP33772 EVB User Guide, ang User Guide na ito ay naglalarawan ng madaling paraan upang makontrol ang AP33772 EVB gamit ang RPI SBC sa pamamagitan ng I2C Interface.
- Ang papel ng MCU block na inilalarawan sa Figure 1 upang mag-interface sa AP33772 ay ginagampanan ng isang RPI. Ang Gabay sa Gumagamit na ito ay sumasaklaw sa maraming kahulugan ng pagpaparehistro at impormasyon sa paggamit bilang halamples, Gayunpaman, para sa kumpleto at pinakana-update na impormasyon, mangyaring sumangguni sa AP33772 EVB User' Guide. (Tingnan ang Sanggunian 2)
- Larawan 1 – Ang isang karaniwang TCD ay gumagamit ng AP33772 PD Sink Controller na may I2C Interface para humiling ng power mula sa USB Type-C PD3.0/PPS Compliance Source Adapter
Pag-setup ng Platform ng Pagpapatunay
AP33772 Sink Controller EVB
Larawan 2 ipinapakita ang larawan ng Sink Controller EVB. Nagtatampok ito ng Type-C Connector, I2C pins, GPIO3 pin para sa Interrupt, NTC Thermistor para sa OTP, LED indicators para ipakita ang charging status, at Vout connector sa load.
Raspberry Pi Zero 2W
- Anumang pinakabagong bersyon ng RPI ay may kakayahang kontrolin ang AP33772 Sink Controller EVB sa pamamagitan ng mga I2C pin. Ang Raspberry Pi Zero 2 W (RPI Z2W) ay ginagamit sa Gabay sa Gumagamit na ito para sa pagiging epektibo sa gastos at kakayahang magamit. Mayroon itong pinakamaliit na formfactor sa lahat ng RPI at isinama sa WiFi at Bluetooth na gumagawa ng wireless na koneksyon nang walang karagdagang bahagi. Inihahatid nito ang layunin bilang AP33772 Sink Controller EVB Validation Platform nang perpekto.
- Maaaring suriin ng user ang opisyal ng Raspberry Pi website para sa karagdagang impormasyon (https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)
Koneksyon at Power up ng Validation Platform
Larawan 5 nagpapakita ng kumpletong koneksyon at setup ng Validation Platform. Dapat sundin ng user ang mga hakbang na ito:
- Ikonekta ang SCL, SDA, at GND pin sa pagitan ng RPI at AP33772 EVB
- Ikonekta ang 65W PD Charger at AP33772 EVB gamit ang Type-C cable
- Paganahin ang RPI at PD Charger.
Setup ng Raspberry Pi Software
Raspberry Pi OS
- Mayroong maraming iba't ibang mga operating system na sumusuporta sa RPI. Kabilang sa mga ito, napili ang Raspberry Pi OS dahil ito ang pinaka ginagamit at inirerekomenda ng opisyal na site ng RPI.
I-download ang OS Image at Ihanda ang SD Card
- I-download at i-install ang mga tool ng Raspberry Pi Imager sa isang PC (https://www.raspberrypi.com/software/). Sundin ang tagubilin upang maghanda ng Micro-SD na puno ng tamang imahe ng OS (https://youtu.be/ntaXWS8Lk34/). Pakitandaan na inirerekomenda ang Micro-SD card na 32BG o mas mataas.
Pag-install ng Raspberry PI OS
- Ipasok ang Micro-SD card na puno ng imager kanina sa Micro-SD slot ng RPI. Ikonekta ang power adapter, mouse/keyboard, at HDMI monitor. I-on ang RPI at sundin ang tagubilin upang makumpleto ang pag-install ng OS at pangunahing pag-setup. Tiyaking kasama sa OS ang mga pinakabagong update.
Setup ng Mga Kinakailangang Feature
- Upang matagumpay na mapatakbo ang interface ng I2C sa RPI, dapat naming i-configure o i-install ang mga feature ng SSH, VNC, at I2C.
Raspberry Pi Config – SSH, VNC, I2C
- Pagkatapos ng pag-boot ng RPI, buksan ang utility na "Raspberry Pi Configure" at i-on ang mga feature ng SSH, VNC, at I2C.
I2C Baud Rate Configuration
- Palitan ang mga linya patungkol sa dtparam at dtoverlay sa /boot/config.txt file may:
- dtoverlay=i2c-bcm2708
- dtparam=i2c_arm=on,i2c_arm_baudrate=640000
Pag-install ng I2C-Tools
- Ang I2C-Tools ay isang toolset na nagbibigay ng mga simpleng command na tumatakbo sa command line sa ilalim ng Raspberry Pi OS. I-install ang I2C-Tools sa OS sa pamamagitan ng pagpapatakbo: sudo apt install i2c-tools
Pag-install ng SMBus2
- Ang SMBus2 ay isang Python module na nagbibigay ng maginhawang function para makontrol ng user ang interface ng I2C sa ilalim ng Python environment. I-install ang SMBus2 module para sa Python sa OS sa pamamagitan ng pagpapatakbo: sudo pip3 install smbus2
Pangunahing Utos Halamples
- Ang Gabay sa Gumagamit na ito ay nagpapakita ng dalawang magkaibang paraan upang gumana sa I2C interface sa RPI. Ang mga ito ay I2C-Tools Utility at Python SMBus2 Module. Ang mga pangunahing utos ng parehong mga pamamaraan ay ipinakilala sa seksyong ito.
I2C-Tools Command Halamples
- Ang I2C-Tools utility package ay nagbibigay ng i2cdetect, i2cget, at i2cset na mga utos. Ang mga pinasimpleng paggamit ay inilarawan sa examples sa ilalim ng seksyong ito. Para sa kumpletong impormasyon tungkol sa utility ng I2C-Tools, mangyaring sumangguni sa https://linuxhint.com/i2c-linux-utilities/.
- Ipinapakita sa talahanayan 1 ang buod ng rehistro ng AP33772 para sa kaginhawahan ng user na matunaw ang paggamit ng command sa seksyong ito. Para sa kumpletong impormasyon sa pagpaparehistro, mangyaring sumangguni sa AP33772 Sink Controller EVB User Guide.
Magrehistro | Utos | Ang haba | Katangian | Power-on | Paglalarawan |
SRCPDO |
0x00 |
28 |
RO |
Lahat ng 00h |
Ginamit ang Power Data Object (PDO) upang ilantad ang mga kakayahan ng kapangyarihan ng PD Source (SRC).
Ang kabuuang haba ay 28 bytes |
PDONUM | 0x1C | 1 | RO | 00h | Wastong pinagmulang numero ng PDO |
STATUS | 0x1D | 1 | RC | 00h | Katayuan ng AP33772 |
MASKARA | 0x1E | 1 | RW | 01h | Interrupt enable mask |
VOLTAGE | 0x20 | 1 | RO | 00h | LSB 80mV |
KASALUKUYAN | 0x21 | 1 | RO | 00h | LSB 24mA |
TEMP | 0x22 | 1 | RO | 19h | Temperatura, Yunit: °C |
OCPTHR | 0x23 | 1 | RW | 00h | OCP threshold, LSB 50mA |
OTPTHR | 0x24 | 1 | RW | 78h | OTP threshold, Unit: °C |
DRTHR | 0x25 | 1 | RW | 78h | De-rating threshold, Unit: °C |
TR25 | 0x28 | 2 | RW | 2710h | Thermal Resistance @25°C, Yunit: Ω |
TR50 | 0x2A | 2 | RW | 1041h | Thermal Resistance @50°C, Yunit: Ω |
TR75 | 0x2C | 2 | RW | 0788h | Thermal Resistance @75°C, Yunit: Ω |
TR100 | 0x2E | 2 | RW | 03CEh | Thermal Resistance @100°C, Yunit: Ω |
RDO | 0x30 | 4 | WO | 00000000h | Ang Request Data Object (RDO) ay ginagamit upang humiling ng mga kakayahan sa kuryente. |
VID | 0x34 | 2 | RW | 0000h | Vendor ID, Nakalaan para sa mga aplikasyon sa hinaharap |
PID | 0x36 | 2 | RW | 0000h | Product ID, Nakalaan para sa mga aplikasyon sa hinaharap |
RESERVED | 0x38 | 4 | – | – | Nakalaan para sa mga aplikasyon sa hinaharap |
Talahanayan 1 – AP33772 Buod ng Register
I-detect ang lahat ng device na naka-attach sa I2C – i2cdetect
- Upang ipakita ang lahat ng i2c device na kasalukuyang naka-attach sa I2C-1 bus, i-type ang sumusunod sa ilalim ng command prompt: i2cdetect -y 1
- Kung naka-attach ang AP33772 Sink Controller EVB, dapat makita ng user na naka-attach ang device sa 0x51 address
Basahin ang SRCPDO (0x00~0x1B)
- Ang i2cget command ay hindi sumusuporta sa block read na mas mahaba kaysa sa 2 bytes. Kailangang gamitin ng user ang “for loop” para ipakita ang lahat ng 28-byte na haba ng data ng PDO. Upang ipakita ang lahat ng data ng PDO, i-type ang sumusunod sa ilalim ng bash command prompt para sa i sa {0..27}; gawin i2cget -y 1 0x51 $ib; tapos na
- Ang 28-byte na data na kumakatawan sa 7 PDO ay ipapakita
Basahin ang PDONUM (0x1C)
- Upang ipakita ang kabuuang bilang ng mga wastong PDO, i-type ang sumusunod sa ilalim ng command prompt: i2cget -y 1 0x51 0x1c b
Basahin ang STATUS (0x1D)
- Iniuulat ng command na ito ang status ng Sink Controller kasama ang de-rating, OTP, OCP, OVP, Tinanggihan ang Kahilingan, Nakumpleto ang Kahilingan, at Handa. Upang ipakita ang impormasyon ng katayuan, i-type ang sumusunod sa ilalim ng command prompt: i2cget -y 1 0x51 0x1d b
- Dapat gamitin ng user ang utos na ito pagkatapos ng bawat kahilingan ng RDO upang matiyak ang matagumpay na kahilingan ng RDO sa pamamagitan ng pagbabasa ng KUMPLETO na bit. 4.1.5 Sumulat ng MASK (0x1E)
- Binibigyang-daan ng command na ito ang mga interrupts na nagse-signal sa host sa pamamagitan ng GPIO3 pin ng AP33772. Kasama sa mga pagkagambala ang Derating , OTP, OCP, OVP, Tinanggihan ang Kahilingan, Nakumpleto ang Kahilingan, at Handa. Upang paganahin ang isang partikular na interrupt, itakda ang katumbas na bit sa isa. Para kay example, para paganahin ang OCP interrupt, itakda ang bit 4 ng MASK register sa isa sa pamamagitan ng pag-type ng sumusunod sa ilalim ng command prompt: i2cset -y 1 0x51 0x1e 0x10 b
- Tataas ang GPIO3 pin ng AP33772 kapag na-trigger ang proteksyon ng OCP.
Basahin ang VOLTAGE (0x20)
- Iniuulat ng utos na ito ang voltage sinusukat ng AP33772 Sink Controller. Upang iulat ang voltage, i-type ang sumusunod sa ilalim ng command prompt: i2cget -y 1 0x51 0x20 b
- Ang isang yunit ng naiulat na halaga ay kumakatawan sa 80mV.
Basahin ang KASALUKUYAN (0x21)
- Iniuulat ng command na ito ang kasalukuyang sinusukat ng AP33772 Sink Controller. Upang iulat ang kasalukuyang, i-type ang sumusunod sa ilalim ng command prompt: i2cget -y 1 0x51 0x21 b
- Ang isang yunit ng naiulat na halaga ay kumakatawan sa 24mA.
Basahin ang TEMP (0x22)
- Iniuulat ng command na ito ang temperatura na sinusukat ng AP33772 Sink Controller. Upang iulat ang temperatura, i-type ang sumusunod sa ilalim ng command prompt:
i2cget -y 1 0x51 0x22 b - Ang isang unit ng naiulat na halaga ay kumakatawan sa 1°C.
- Basahin at Isulat ang OCPTHR (0x23), OTPTHR (0x24), at DRTHR (0x25)
- Ang mga OCP, OTP, at Derating na mga threshold ay maaaring baguhin sa mga kanais-nais na halaga ng user sa pamamagitan ng pagsusulat ng mga halaga sa OCPTHR, OTPTHR, at DRTHR na mga rehistro. Bilang isang example, para baguhin ang OCP threshold sa 3.1A, dapat isulat ng user ang 0x3E (=3100/50=62=0x3E) sa OCPTHR sa pamamagitan ng pag-type ng sumusunod sa ilalim ng command prompt: i2cset -y 1 0x51 0x23 0x3e b
- Upang baguhin ang OTP threshold sa 110°C, dapat isulat ng user ang 0x6E (=110) sa OTPTHR sa pamamagitan ng pag-type ng sumusunod sa ilalim ng command prompt:
- Para basahin ang mga value mula sa OCPTHR, OTPTHR, at DRTHR, i-type ang sumusunod sa ilalim ng command prompt:
- i2cget -y 1 0x51 0x23 b i2cget -y 1 0x51 0x24 b i2cget -y 1 0x51 0x25 b
- Magbasa at Sumulat ng TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D), at TR100 (0x2E~0x2F)
- Ang isang Murata 10KΩ Negative Temperature Coefficient (NTC) Thermistor NCP03XH103 ay na-populate sa AP33772 EVB. Kagustuhan ng gumagamit na baguhin ang thermistor sa ibang isa sa huling disenyo. Dapat i-update ng user ang mga halaga ng rehistro ng TR25, TR50, TR75, at TR100 ayon sa mga detalye ng thermistor na ginamit. Para kay example,
- Ang 6.8KΩ NCP03XH682 ni Murata ay ginagamit sa disenyo. Ang mga halaga ng resistensya sa 25°C, 50°C, 75°C, at 100°C ay 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507), at 662Ω (0x0296) ayon sa pagkakabanggit. Upang isulat ang mga katumbas na halaga sa mga rehistrong ito, i-type ang sumusunod sa ilalim ng command prompt:
- 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 wx0e
- Para basahin ang mga value, i-type ang sumusunod sa ilalim ng 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
- Ang mga halaga ng output ay 2-byte na salita. Dahil direktang pinangangasiwaan ng mga command ang 2-byte na salita, hindi kailangang mag-alala ang mga user tungkol sa maliit na endian byte order dito.
Isulat ang RDO (0x30~0x33)
- Upang simulan ang isang pamamaraan ng negosasyon sa kahilingan ng PDO, ang 4-byte na data ay isinulat sa RDO (Request Data Object) na rehistro sa little-endian byte order. Bilang example, para humiling ng PDO3 na may 15V at 3A, 0x3004B12C ay isusulat sa RDO register. I-type ang sumusunod sa ilalim ng command prompt: i2cset -y 1 0x51 0x30 0x2c 0xb1 0x04 0x30 i
- Ang hindi bababa sa makabuluhang byte (0x2C) ay dapat na isulat muna upang magkasya ang maliit na endian byte na notasyon ng pagkakasunud-sunod. Mangyaring sumangguni sa Talahanayan 9 at Talahanayan 10 ng AP33772 Sink Controller EVB User
- Gabay para sa detalyadong impormasyon sa nilalaman ng RDO.
- Maaaring mag-isyu ang user ng hard reset sa pamamagitan ng pagsulat ng RDO register na may all-zero na data: i2cset -y 1 0x51 0x30 0x00 0x00 0x00 0x00 i
- Ire-reset ang AP33772 Sink Controller sa paunang estado nito at i-o-off ang output.
Python SMBus2 Command Halamples
- Ang Python ay nagiging mas sikat para sa magagandang uri ng mga sinusuportahang module. Ang SMBus2 ay kabilang sa mga iyon at may kakayahang pangasiwaan ang I2C read and write commands. Nagbibigay ang SMBus2 ng read_byte_data, read_word_data, read_i2c_block_data, write_byte_data, write_word_data, write_i2c_block_data command. Ang mga pinasimpleng paggamit ay inilarawan sa examples sa ilalim ng seksyong ito. Para sa kumpletong impormasyon tungkol sa SMBus2 module, mangyaring sumangguni sa https://smbus2.readthedocs.io/en/latest/.
Basahin ang SRCPDO (0x00~0x1B)
- Ang SMBus.read_i2c_block_data ay isang epektibong command para suportahan ang hanggang 32-byte na block data read. Upang basahin ang lahat ng 28-byte na data ng PDO, gamitin ang sumusunod sa ilalim ng python3 environment:
- SMBus.read_i2c_block_data(0x51, 0x00, 28)
- 28 one-byte na data na kumakatawan sa 7 PDO ay ibabalik sa listahan ng istraktura ng data.
Basahin ang PDONUM (0x1C)
- Upang basahin ang kabuuang bilang ng mga wastong PDO, gamitin ang sumusunod sa ilalim ng python3 environment:
- SMBus.read_byte_data(0x51, 0x1c)
- Ibabalik ang isang byte na data na kumakatawan sa wastong bilang ng PDO.
Basahin ang STATUS (0x1D)
- Iniuulat ng command na ito ang status ng Sink Controller kabilang ang Derating , OTP, OCP, OVP, Tinanggihan ang Kahilingan, Nakumpleto ang Kahilingan, at Handa. Upang basahin ang impormasyon ng katayuan, gamitin ang sumusunod sa ilalim ng python3 environment:
- SMBus.read_byte_data(0x51, 0x1d)
- Maaaring gamitin ng user ang utos na ito pagkatapos ng bawat kahilingan ng RDO upang matiyak ang matagumpay na kahilingan ng RDO sa pamamagitan ng pagbabasa ng KUMPLETO na bit.
Sumulat ng MASK (0x1E)
- Binibigyang-daan ng command na ito ang mga interrupts na nagse-signal sa host sa pamamagitan ng GPIO3 pin ng AP33772. Kasama sa mga interrupts ang Derating , OTP, OCP, OVP, Request Rejected, Request
- Nakumpleto, at Handa. Upang paganahin ang isang partikular na interrupt, itakda ang katumbas na bit sa isa. Para kay example, para paganahin ang OCP interrupt, itakda ang bit 4 ng MASK register sa isa sa pamamagitan ng paggamit ng sumusunod sa ilalim ng python3 environment:
- SMBus.write_byte_data(0x51, 0x1e, 0x10)
- Tataas ang GPIO3 pin ng AP33772 kapag na-trigger ang proteksyon ng OCP.
Basahin ang VOLTAGE (0x20)
- Iniuulat ng utos na ito ang voltage sinusukat ng AP33772 Sink Controller. Upang iulat ang voltage, gamitin ang sumusunod sa ilalim ng python3 environment:
- SMBus.read_byte_data(0x51, 0x20)
- Ang isang yunit ng naiulat na halaga ay kumakatawan sa 80mV.
Basahin ang KASALUKUYAN (0x21)
- Iniuulat ng command na ito ang kasalukuyang sinusukat ng AP33772 Sink Controller. Upang iulat ang kasalukuyang, gamitin ang sumusunod sa ilalim ng python3 environment
- SMBus.read_byte_data(0x51, 0x21)
- Ang isang yunit ng naiulat na halaga ay kumakatawan sa 24mA.
Basahin ang TEMP (0x22)
- Iniuulat ng command na ito ang temperatura na sinusukat ng AP33772 Sink Controller. Upang iulat ang temperatura, gamitin ang sumusunod sa ilalim ng python3 environment:
- SMBus.read_byte_data(0x51, 0x22)
- Ang isang unit ng naiulat na halaga ay kumakatawan sa 1°C.
Basahin at Isulat ang OCPTHR (0x23), OTPTHR (0x24), at DRTHR (0x25)
- Ang mga OCP, OTP, at Derating na mga threshold ay maaaring baguhin sa mga kanais-nais na halaga ng user sa pamamagitan ng pagsusulat ng mga halaga sa OCPTHR, OTPTHR, at DRTHR na mga rehistro. Bilang isang example, para baguhin ang OCP threshold sa 3.1A, dapat isulat ng user ang 0x3E (=3100/50=62=0x3E) sa OCPTHR sa pamamagitan ng paggamit ng sumusunod sa ilalim ng python3 environment: SMBus.write_byte_data(0x51, 0x23, 0x3e)
- Upang baguhin ang OTP threshold sa 110°C, dapat isulat ng user ang 0x6E (=110) sa OTPTHR sa pamamagitan ng paggamit ng sumusunod sa ilalim ng python3 environment: SMBus.write_byte_data(0x51, 0x24, 0x6e)
- Upang baguhin ang Derating threshold sa 100°C, dapat isulat ng user ang 0x64 (=100) sa DRTHR sa pamamagitan ng paggamit ng sumusunod sa ilalim ng python3 environment: SMBus.write_byte_data(0x51, 0x25, 0x64)
- Upang basahin ang mga halaga mula sa OCPTHR, OTPTHR, at DRTHR, gamitin ang sumusunod sa ilalim ng python3 environment: SMBus.read_byte_data(0x51, 0x23) SMBus.read_byte_data(0x51, 0x24) SMBus.read_byte_data(0x51, 0x25) .
- Magbasa at Sumulat ng TR25 (0x28~0x29), TR50 (0x2A~0x2B), TR75 (0x2C~0x2D), at TR100 (0x2E~0x2F)
- Ang isang Murata 10KΩ Negative Temperature Coefficient (NTC) Thermistor NCP03XH103 ay na-populate sa AP33772 EVB. Kagustuhan ng gumagamit na baguhin ang thermistor sa ibang isa sa huling disenyo. Dapat i-update ng user ang halaga ng rehistro ng TR25, TR50, TR75, at TR100 ayon sa mga detalye ng ginamit na thermistor. Para kay example, Murata's 6.8KΩ NCP03XH682 ang ginagamit sa disenyo. Ang mga halaga ng resistensya sa 25°C, 50°C, 75°C, at 100°C ay 6800Ω (0x1A90), 2774Ω (0x0AD6), 1287Ω (0x0507), at 662Ω (0x0296) ayon sa pagkakabanggit. Upang isulat ang kaukulang mga halaga sa mga rehistrong ito, gamitin ang sumusunod sa ilalim ng python3 environment:
- 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)
- Para basahin ang mga value, gamitin ang sumusunod sa ilalim ng python3 environment: SMBus.read_word_data(0x51, 0x28) SMBus.read_word_data(0x51, 0x2a) SMBus.read_word_data(0x51, 0x2c) SMBus.read_word_data(0x51), 0
- Ang mga return value ay 2-byte na salita din. Dahil direktang pinangangasiwaan ng mga command ang 2-byte na salita, hindi kailangang mag-alala ang mga user tungkol sa maliit na endian byte order dito.
Isulat ang RDO (0x30~0x33)
- Upang simulan ang isang pamamaraan ng negosasyon sa kahilingan ng PDO, ang 4-byte na data ay isinulat sa RDO (Request Data Object) na rehistro sa little-endian byte order. Bilang example, para humiling ng PDO3 na may 15V at 3A, 0x3004B12C ay isusulat sa RDO register. Gamitin ang sumusunod sa ilalim ng python3 environment:
- SMBus.write_i2c_block_data(0x51, 0x30, [0x2c, 0xb1, 0x04, 0x30])
- Mangyaring sumangguni sa Talahanayan 9 at Talahanayan 10 ng AP33772 Sink Controller EVB User Guide para sa detalyadong impormasyon sa nilalaman ng RDO.
- Maaaring mag-isyu ang user ng hard reset sa pamamagitan ng pagsulat ng RDO register na may all-zero na data:
- SMBus.write_i2c_block_data(0x51, 0x30, [0x00, 0x00, 0x00, 0x00])
- Ire-reset ang AP33772 Sink Controller sa paunang estado nito at i-o-off ang output.
Praktikal Halamples
Example 1: Bash I2C-Tools Halample: ap33772_querypdo.bash
Itong exampSinusuri ang lahat ng wastong PDO at inilista ang voltage at kasalukuyang impormasyon ng kakayahan sa labas.
Mga Detalye ng Code
Pagpapatupad ng Code at Mga Output
Example 2: Python SMBus2 Halample: ap33772_allpdo.py3
Itong exampSinusuri niya ang lahat ng mga balidong PDO at hinihiling ang mga ito nang paisa-isa sa pataas at pababang pagkakasunud-sunod.
Mga Detalye ng Code
Pagpapatupad ng Code at Mga Output
Exampang Pag-download ng Code
Listahan ng Halample Codes
- ExampAng mga Code ay mayroong Bash Script at Python Bersyon
- ap33772_querypdo: nagtatanong ng lahat ng impormasyon ng PDO
- ap33772_reqpdo: nag-uulat ng lahat ng impormasyon ng PDO at nagpapadala ng kahilingan sa PDO na tinukoy ng user
- ap33772_allpdo: nag-uulat ng lahat ng impormasyon ng PDO at naglalakad sa lahat ng mga kahilingan sa PDO sa pataas at pababang paraan
- ap33772_pps: iniuulat ang lahat ng impormasyon ng PDO, at ramppataas at pababa ang buong PPS voltage range sa 50mV step size
- ap33772_vit: mga ulat voltage, impormasyon sa kasalukuyan, at temperatura
Exampang Download Site
Example Maaaring ma-download ang mga code mula sa Github. I-issue ang sumusunod na command para i-download: git clone https://github.com/diodinciot/ap33772.git-ap33772
Mga sanggunian
- AP33772 Datasheet (USB PD3.0 PPS Sink Controller): https://www.diodes.com/products/power-management/ac-dc-converters/usb-pd-sink-controllers/
- AP33772 I2C Sink Controller EVB User Guide: https://www.diodes.com/applications/ac-dc-chargers-and-adapters/usb-pd-sink-controller/
- Raspberry Pi Zero 2 W: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
- Raspberry PiOS: https://www.raspberrypi.com/software/
- Utility ng I2C-Tools: https://linuxhint.com/i2c-linux-utilities/
- SMBus2 Module: https://smbus2.readthedocs.io/en/latest/
Kasaysayan ng Pagbabago
Rebisyon | Petsa ng Isyu | Magkomento | May-akda |
1.0 | 4/15/2022 | Paunang Paglabas | Edward Zhao |
MAHALAGANG PAUNAWA
- DIODES INCORPORATED WALANG WARRANTY NG ANUMANG URI, PAHAYAG O IPINAHIWATIG, TUNGKOL SA DOKUMENTONG ITO, KASAMA, NGUNIT HINDI LIMITADO SA, ANG MGA IPINAHIWATIG NA WARRANTY NG KAKAYENTA AT KAANGKUPAN PARA SA ISANG PARTIKULAR NA LAYUNIN (AT ANG KANILANG ANUMANG LAYUNIN).
- Inilalaan ng Diodes Incorporated at ng mga subsidiary nito ang karapatang gumawa ng mga pagbabago, pagpapahusay, pagpapahusay, pagwawasto, o iba pang mga pagbabago nang walang karagdagang abiso sa dokumentong ito at anumang produktong inilarawan dito. Hindi inaako ng Diodes Incorporated ang anumang pananagutan na nagmumula sa aplikasyon o paggamit ng dokumentong ito o anumang produktong inilarawan dito; ni ang Diodes Incorporated ay hindi nagbibigay ng anumang lisensya sa ilalim ng mga karapatan ng patent o trademark nito, o ng mga karapatan ng iba. Ang sinumang Customer o gumagamit ng dokumentong ito o mga produkto na inilarawan dito sa naturang mga application ay dapat ipagpalagay ang lahat ng mga panganib ng naturang paggamit at sasang-ayon na hawakan ang Diodes Incorporated at lahat ng mga kumpanya na ang mga produkto ay kinakatawan sa Diodes Incorporated website, hindi nakakapinsala laban sa lahat ng pinsala.
- Ang Diodes Incorporated ay hindi ginagarantiyahan o tinatanggap ang anumang pananagutan kung ano pa man ang tungkol sa anumang mga produkto na binili sa pamamagitan ng hindi awtorisadong mga channel sa pagbebenta.
Kung ang mga Customer ay bumili o gumamit ng mga produkto ng Diodes Incorporated para sa anumang hindi sinasadya o hindi awtorisadong aplikasyon, ang mga Customer ay dapat magbayad ng danyos at humawak ng Diodes - Ang Incorporated at ang mga kinatawan nito ay hindi nakakapinsala laban sa lahat ng paghahabol, pinsala, gastos, at bayad sa abogado na nagmumula sa, direkta o hindi direktang, anumang paghahabol ng personal na pinsala o kamatayan na nauugnay sa naturang hindi sinasadya o hindi awtorisadong aplikasyon.
- Ang mga produktong inilalarawan dito ay maaaring saklaw ng isa o higit pang United States, internasyonal o dayuhang patent na nakabinbin. Ang mga pangalan at marka ng produkto na nakasaad dito ay maaari ding saklawin ng isa o higit pang United States, internasyonal o dayuhang trademark.
- Ang dokumentong ito ay nakasulat sa Ingles ngunit maaaring isalin sa maraming wika bilang sanggunian. Tanging ang Ingles na bersyon ng dokumentong ito ang pinal at determinative na format na inilabas ng Diodes Incorporated.
SUPORTA SA BUHAY
- Ang mga produkto ng Diodes Incorporated ay partikular na hindi awtorisado para sa paggamit bilang mga kritikal na bahagi sa mga device o system na sumusuporta sa buhay nang walang malinaw na nakasulat na pag-apruba ng Chief Executive Officer ng Diodes Incorporated. Gaya ng ginamit dito:
- A. Ang mga device o system ng life support ay mga device o system na:
- ay inilaan upang itanim sa katawan, o
- sumusuporta o nagpapanatili ng buhay at kung saan ang kabiguang gumanap kapag wastong ginamit alinsunod sa mga tagubilin para sa paggamit na ibinigay sa label ay maaaring makatwirang inaasahan na magreresulta sa malaking pinsala sa gumagamit.
- B. Ang kritikal na bahagi ay anumang bahagi sa isang life support device o system na ang pagkabigo sa pagganap ay maaaring makatwirang inaasahan na magdulot ng pagkabigo ng life support device o makakaapekto sa kaligtasan o pagiging epektibo nito.
- Kinakatawan ng mga customer na mayroon silang lahat ng kinakailangang kadalubhasaan sa kaligtasan at mga epekto ng regulasyon ng kanilang mga device o system na sumusuporta sa buhay, at kinikilala at sumasang-ayon na sila ang tanging responsable para sa lahat ng legal, regulasyon, at mga kinakailangan na nauugnay sa kaligtasan tungkol sa kanilang mga produkto at anumang paggamit ng Diodes Incorporated na mga produkto sa naturang kritikal sa kaligtasan, mga life support device o system, sa kabila ng anumang device- o impormasyon na nauugnay sa system o suporta na maaaring ibigay ng Diodes Incorporated.
- Dagdag pa rito, dapat na ganap na bayaran ng mga Customer ang Diodes Incorporated at ang mga kinatawan nito laban sa anumang pinsalang dulot ng paggamit ng mga produkto ng Diodes Incorporated sa naturang kritikal sa kaligtasan, mga device o system na sumusuporta sa buhay.
- Copyright © 2017, Diodes Incorporated
- www.diodes.com
Mga Dokumento / Mga Mapagkukunan
![]() |
DIODES AP33772 USB PD Sink Controller Raspberry Pi I2C Interface [pdf] Gabay sa Gumagamit AP33772 USB PD Sink Controller Raspberry Pi I2C Interface, AP33772, USB PD Sink Controller Raspberry Pi I2C Interface, Raspberry Pi I2C Interface, Pi I2C Interface |