DIODES AP33772 USB PD Sink Controller Raspberry Pi I2C Interface
Εισαγωγή
- Το AP33772 Sink Controller, που λειτουργεί ως συσκευή πρωτοκόλλου της συσκευής με υποδοχή USB PD3.0 Type C (TCD, Energy Sink), προορίζεται να ζητήσει το κατάλληλο αντικείμενο δεδομένων ισχύος (PDO) από το PD3.0 που είναι εξοπλισμένο με υποδοχή USB PD3.0 Type C Φορτιστής συμμόρφωσης .XNUMX (PDC, Πηγή Ενέργειας).
- Το σχήμα 1 απεικονίζει ένα TCD, ενσωματωμένο με IC ελεγκτή PD3.0 Sink (AP33772), είναι φυσικά συνδεδεμένο με PDC, ενσωματωμένο με αποκωδικοποιητή USB PD3.0 (AP43771), μέσω
- Καλώδιο τύπου C-to-Type C. Με βάση το ενσωματωμένο υλικολογισμικό συμβατό με USB PD3.0, το ζεύγος AP33772 και AP43771 θα περνούσε από την τυπική διαδικασία προσάρτησης USB PD3.0 για να δημιουργήσει την κατάλληλη κατάσταση φόρτισης PD3.0.
- Το AP33772 Sink Controller EVB παρέχει ευκολία στη χρήση και μεγάλη ευελιξία στον σχεδιαστή συστήματος να ζητά PDO από τον φορτιστή USB Power Delivery στέλνοντας ενσωματωμένες εντολές AP33772 μέσω της διεπαφής I2C. Ο τυπικός σχεδιασμός του συστήματος απαιτεί προγραμματισμό MCU που χρειάζεται εγκατάσταση συγκεκριμένου λογισμικού (π.χ. IDE) και μπορεί να είναι μια χρονοβόρα διαδικασία ανάπτυξης.
- Αντίθετα, το Raspberry Pi (RPI), ένας υπολογιστής μονής πλακέτας (SBC) που λειτουργεί σε ένα φιλικό προς το χρήστη λειτουργικό σύστημα Linux και είναι εξοπλισμένο με ευέλικτες ακίδες GPIO, παρέχει έναν απλό τρόπο επικύρωσης του AP33772 Sink EVB που λειτουργεί με φορτιστή PD. Ο στόχος αυτού του οδηγού είναι να παρέχει στους σχεδιαστές συστημάτων μια αποτελεσματική πλατφόρμα για να ολοκληρώσουν γρήγορα την επικύρωση λογισμικού στο RPI και στη συνέχεια να μεταφέρουν την ανάπτυξη σε οποιοδήποτε επιθυμητό MCU για να ανταποκριθούν στις απαιτήσεις της αγοράς ταχείας ανάκαμψης.
- Ως συμπληρωματικό έγγραφο στον Οδηγό χρήστη AP33772 EVB, αυτός ο Οδηγός χρήσης παρουσιάζει έναν εύκολο τρόπο ελέγχου του AP33772 EVB με RPI SBC μέσω της διεπαφής I2C.
- Ο ρόλος του μπλοκ MCU που απεικονίζεται στο Σχήμα 1 για διασύνδεση με το AP33772 παίζεται από ένα RPI. Αυτός ο Οδηγός χρήσης καλύπτει πολλές πληροφορίες για τον ορισμό του μητρώου και τη χρήση, όπως π.χamples, Ωστόσο, για πλήρεις και πιο ενημερωμένες πληροφορίες, ανατρέξτε στον Οδηγό χρήστη AP33772 EVB. (Βλ. Αναφορά 2)
- Εικόνα 1 – Ένα τυπικό TCD χρησιμοποιεί AP33772 PD Sink Controller με διεπαφή I2C για να ζητήσει τροφοδοσία από έναν προσαρμογέα πηγής συμμόρφωσης USB Type-C PD3.0/PPS
Ρύθμιση πλατφόρμας επικύρωσης
AP33772 Ελεγκτής νεροχύτη EVB
Εικόνα 2 δείχνει την εικόνα του Ελεγκτή Νεροχύτη EVB. Διαθέτει Connector Type-C, I2C pins, GPIO3 pin για Interrupt, NTC Thermistor για OTP, ενδείξεις LED για την εμφάνιση της κατάστασης φόρτισης και υποδοχή Vout στο φορτίο.
Raspberry Pi Zero 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 website για πρόσθετες πληροφορίες (https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)
Σύνδεση πλατφόρμας επικύρωσης και ενεργοποίηση
Εικόνα 5 δείχνει μια πλήρη σύνδεση και ρύθμιση της πλατφόρμας επικύρωσης. Ο χρήστης πρέπει να ακολουθήσει αυτά τα βήματα:
- Συνδέστε τις ακίδες SCL, SDA και GND μεταξύ RPI και AP33772 EVB
- Συνδέστε το φορτιστή PD 65W και το AP33772 EVB με καλώδιο Type-C
- Ενεργοποιήστε το φορτιστή RPI και PD.
Ρύθμιση λογισμικού Raspberry Pi
Raspberry Pi OS
- Υπάρχουν πολλά διαφορετικά λειτουργικά συστήματα που υποστηρίζουν RPI. Μεταξύ αυτών, επιλέγεται το Raspberry Pi OS επειδή είναι το πιο χρησιμοποιούμενο και προτεινόμενο από τον επίσημο ιστότοπο της RPI.
Λήψη εικόνας λειτουργικού συστήματος και προετοιμασία κάρτας SD
- Λήψη και εγκατάσταση εργαλείων Raspberry Pi Imager σε υπολογιστή (https://www.raspberrypi.com/software/). Ακολουθήστε τις οδηγίες για να προετοιμάσετε μια Micro-SD φορτωμένη με σωστή εικόνα λειτουργικού συστήματος (https://youtu.be/ntaXWS8Lk34/). Λάβετε υπόψη ότι συνιστάται κάρτα Micro-SD 32 BG ή μεγαλύτερη.
Εγκατάσταση Raspberry PI OS
- Εισαγάγετε την κάρτα Micro-SD που έχετε φορτώσει νωρίτερα με συσκευή απεικόνισης στην υποδοχή Micro-SD του RPI. Συνδέστε το τροφοδοτικό, το ποντίκι/πληκτρολόγιο και την οθόνη HDMI. Ενεργοποιήστε το RPI και ακολουθήστε τις οδηγίες για να ολοκληρώσετε την εγκατάσταση του λειτουργικού συστήματος και τη βασική ρύθμιση. Βεβαιωθείτε ότι οι πιο πρόσφατες ενημερώσεις περιλαμβάνονται στο λειτουργικό σύστημα.
Ρύθμιση των απαιτούμενων δυνατοτήτων
- Προκειμένου να εκτελεστεί επιτυχώς η διεπαφή I2C στο RPI, πρέπει να διαμορφώσουμε ή να εγκαταστήσουμε τις δυνατότητες SSH, VNC και I2C.
Raspberry Pi Config – SSH, VNC, I2C
- Μετά την εκκίνηση του RPI, ανοίξτε το βοηθητικό πρόγραμμα "Raspberry Pi Configure" και ενεργοποιήστε τις λειτουργίες SSH, VNC και I2C.
Διαμόρφωση ρυθμού Baud I2C
- Αντικαταστήστε τις γραμμές σχετικά με το 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 στο λειτουργικό σύστημα εκτελώντας: sudo apt install i2c-tools
Εγκατάσταση SMBus2
- Το SMBus2 είναι μια λειτουργική μονάδα Python που παρέχει εύχρηστες λειτουργίες για τον έλεγχο της διεπαφής I2C στο περιβάλλον Python. Εγκαταστήστε τη μονάδα SMBus2 για Python στο λειτουργικό σύστημα εκτελώντας: sudo pip3 install smbus2
Βασική Εντολή Πχamples
- Αυτός ο Οδηγός χρήστη παρουσιάζει δύο διαφορετικές μεθόδους εργασίας με τη διεπαφή I2C σε RPI. Είναι το I2C-Tools Utility και το Python SMBus2 Module. Οι βασικές εντολές και των δύο μεθόδων παρουσιάζονται σε αυτήν την ενότητα.
Εντολή I2C-Tools Examples
- Το πακέτο βοηθητικού προγράμματος I2C-Tools παρέχει εντολές i2cdetect, i2cget και i2cset. Οι απλοποιημένες χρήσεις περιγράφονται στο π.χamples υπό αυτή την ενότητα. Για πλήρεις πληροφορίες σχετικά με το βοηθητικό πρόγραμμα I2C-Tools, ανατρέξτε στο https://linuxhint.com/i2c-linux-utilities/.
- Ο Πίνακας 1 δείχνει τη σύνοψη του μητρώου AP33772 για τη διευκόλυνση του χρήστη να αφομοιώσει τη χρήση εντολών σε αυτήν την ενότητα. Για πλήρεις πληροφορίες εγγραφής, ανατρέξτε στον Οδηγό χρήστη AP33772 Sink Controller EVB.
Μητρώο | Εντολή | Μήκος | Ιδιότης | Ενεργοποίηση | Περιγραφή |
SRCPDO |
0x00 |
28 |
RO |
Όλες τις 00h |
Power Data Object (PDO) που χρησιμοποιείται για την έκθεση των δυνατοτήτων τροφοδοσίας PD Source (SRC).
Το συνολικό μήκος είναι 28 byte |
PDONUM | 0x1C | 1 | RO | 00h | Έγκυρος αριθμός ΠΟΠ πηγής |
ΚΑΤΑΣΤΑΣΗ | 0x1D | 1 | RC | 00h | κατάσταση AP33772 |
ΜΑΣΚΑ | 0x1E | 1 | RW | 01h | Μάσκα ενεργοποίησης διακοπής |
ΤΟΜTAGE | 0x20 | 1 | RO | 00h | LSB 80mV |
ΡΕΥΜΑ | 0x21 | 1 | RO | 00h | LSB 24mA |
ΘΕΡΜΟΚΡΑΣΙΑ | 0x22 | 1 | RO | 19h | Θερμοκρασία, Μονάδα: °C |
OCPTHR | 0x23 | 1 | RW | 00h | Όριο OCP, LSB 50mA |
ΟΤΠΘΡ | 0x24 | 1 | RW | 78h | Όριο OTP, Μονάδα: °C |
ΔΡΘΡ | 0x25 | 1 | RW | 78h | Όριο υποβάθμισης, Μονάδα: °C |
TR25 | 0x28 | 2 | RW | 2710h | Θερμική Αντίσταση @25°C, Μονάδα: Ω |
TR50 | 0x2A | 2 | RW | 1041h | Θερμική Αντίσταση @50°C, Μονάδα: Ω |
TR75 | 0x2C | 2 | RW | 0788h | Θερμική Αντίσταση @75°C, Μονάδα: Ω |
TR100 | 0x2E | 2 | RW | 03CEh | Θερμική Αντίσταση @100°C, Μονάδα: Ω |
RDO | 0x30 | 4 | WO | 00000000h | Το Request Data Object (RDO) χρησιμοποιείται για να ζητήσει δυνατότητες τροφοδοσίας. |
VID | 0x34 | 2 | RW | 0000h | Αναγνωριστικό προμηθευτή, δεσμευμένο για μελλοντικές εφαρμογές |
PID | 0x36 | 2 | RW | 0000h | Αναγνωριστικό προϊόντος, Με κράτηση για μελλοντικές εφαρμογές |
ΡΕΖΕΡΒΕ | 0x38 | 4 | – | – | Με κράτηση για μελλοντικές εφαρμογές |
Πίνακας 1 – AP33772 Περίληψη Μητρώου
Εντοπίστε όλες τις συσκευές που είναι συνδεδεμένες στο I2C – i2cdetect
- Για να εμφανίσετε όλες τις συσκευές i2c που είναι συνδεδεμένες αυτήν τη στιγμή στο δίαυλο I2C-1, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών: i2cdetect -y 1
- Εάν είναι συνδεδεμένο το AP33772 Sink Controller EVB, ο χρήστης θα πρέπει να δει ότι η συσκευή είναι συνδεδεμένη στη διεύθυνση 0x51
Ανάγνωση SRCPDO (0x00~0x1B)
- Η εντολή i2cget δεν υποστηρίζει ανάγνωση μπλοκ μεγαλύτερη από 2 byte. Ο χρήστης πρέπει να χρησιμοποιήσει το "for loop" για να εμφανίσει όλα τα δεδομένα PDO μήκους 28 byte. Για να εμφανίσετε όλα τα δεδομένα PDO, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών bash για i στο {0..27}. κάνω i2cget -y 1 0x51 $ib; Έγινε
- Θα εμφανιστούν δεδομένα 28 byte που αντιπροσωπεύουν 7 ΠΟΠ
Ανάγνωση PDONUM (0x1C)
- Για να εμφανίσετε τον συνολικό αριθμό έγκυρων PDO, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών: i2cget -y 1 0x51 0x1c b
Ανάγνωση STATUS (0x1D)
- Αυτή η εντολή αναφέρει την κατάσταση του ελεγκτή νεροχύτη, συμπεριλαμβανομένης της υποβάθμισης, OTP, OCP, OVP, Αίτημα Απορρίφθηκε, Αίτημα Ολοκληρώθηκε και Έτοιμο. Για να εμφανίσετε τις πληροφορίες κατάστασης, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών: i2cget -y 1 0x51 0x1d b
- Ο χρήστης θα πρέπει να χρησιμοποιεί αυτήν την εντολή μετά από κάθε αίτημα RDO για να διασφαλίσει επιτυχές αίτημα RDO διαβάζοντας το bit COMPLETE. 4.1.5 ΜΑΣΚΑ γραφής (0x1E)
- Αυτή η εντολή ενεργοποιεί τις διακοπές που σηματοδοτούν τον κεντρικό υπολογιστή μέσω του ακροδέκτη GPIO3 του AP33772. Οι διακοπές περιλαμβάνουν διακοπή , OTP, OCP, OVP, Αίτημα Απορρίφθηκε, Αίτημα Ολοκληρώθηκε και Έτοιμο. Για να ενεργοποιήσετε μια συγκεκριμένη διακοπή, ορίστε το αντίστοιχο bit σε ένα. Για π.χample, για να ενεργοποιήσετε τη διακοπή OCP, ορίστε το bit 4 του καταχωρητή MASK σε ένα πληκτρολογώντας τα ακόλουθα στη γραμμή εντολών: i2cset -y 1 0x51 0x1e 0x10 b
- Ο ακροδέκτης GPIO3 του AP33772 θα ανέβει ψηλά όταν ενεργοποιηθεί η προστασία OCP.
Διαβάστε VOLTAGE (0x20)
- Αυτή η εντολή αναφέρει τον τόμtage μετρήθηκε από τον ελεγκτή νεροχύτη AP33772. Να αναφέρω τον τόμtage, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών: i2cget -y 1 0x51 0x20 b
- Μία μονάδα της αναφερόμενης τιμής αντιπροσωπεύει 80 mV.
Ανάγνωση ΤΡΕΧΟΥΣΑ (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 και 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 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)
- Ένα θερμίστορ NCP10XH03 με αρνητικό συντελεστή θερμοκρασίας (NTC) Murata 103KΩ συμπληρώνεται στο 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) αντίστοιχα. Για να γράψετε τις αντίστοιχες τιμές σε αυτούς τους καταχωρητές, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών:
- 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 wx 0
- Για να διαβάσετε τις τιμές, πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών: 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 byte. Δεδομένου ότι οι εντολές χειρίζονται απευθείας λέξη 2 byte, οι χρήστες δεν χρειάζεται να ανησυχούν για μικρή σειρά endian byte εδώ.
Γράψτε RDO (0x30~0x33)
- Για να ξεκινήσει μια διαδικασία διαπραγμάτευσης αιτήματος ΠΟΠ, τα δεδομένα 4 byte εγγράφονται στον καταχωρητή RDO (Αίτημα Αντικειμένου Δεδομένων) με σειρά λίγων byte. Όπως π.χample, για να ζητήσετε PDO3 με 15V και 3A, το 0x3004B12C θα εγγραφεί στον καταχωρητή RDO. Πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών: i2cset -y 1 0x51 0x30 0x2c 0xb1 0x04 0x30 i
- Το λιγότερο σημαντικό byte (0x2C) θα πρέπει να γραφτεί πρώτα για να ταιριάζει με μικρή σειρά endian byte. Ανατρέξτε στον Πίνακα 9 και στον Πίνακα 10 του AP33772 Sink Controller EVB User
- Οδηγός για λεπτομερείς πληροφορίες περιεχομένου RDO.
- Ο χρήστης μπορεί να εκδώσει μια σκληρή επαναφορά γράφοντας μητρώο RDO με όλα τα μηδενικά δεδομένα: i2cset -y 1 0x51 0x30 0x00 0x00 0x00 0x00 i
- Ο ελεγκτής νεροχύτη AP33772 θα επαναφερθεί στην αρχική του κατάσταση και η έξοδος θα απενεργοποιηθεί.
Εντολή Python SMBus2 Examples
- Η Python γίνεται όλο και πιο δημοφιλής για τις μεγάλες ποικιλίες υποστηριζόμενων λειτουργικών μονάδων της. Το 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 byte. Για να διαβάσετε όλα τα δεδομένα PDO 28 byte, χρησιμοποιήστε τα ακόλουθα στο περιβάλλον python3:
- SMBus.read_i2c_block_data(0x51, 0x00, 28)
- 28 δεδομένα ενός byte που αντιπροσωπεύουν 7 ΠΟΠ θα επιστραφούν στη δομή δεδομένων λίστας.
Ανάγνωση PDONUM (0x1C)
- Για να διαβάσετε τον συνολικό αριθμό έγκυρων PDO, χρησιμοποιήστε τα ακόλουθα στο περιβάλλον python3:
- SMBus.read_byte_data(0x51, 0x1c)
- Θα επιστραφούν δεδομένα ενός byte που αντιπροσωπεύουν έγκυρο αριθμό ΠΟΠ.
Ανάγνωση STATUS (0x1D)
- Αυτή η εντολή αναφέρει την κατάσταση του ελεγκτή νεροχύτη, συμπεριλαμβανομένης της διαβάθμισης , OTP, OCP, OVP, Αίτηση Απορρίφθηκε, Αίτηση Ολοκληρώθηκε και Έτοιμη. Για να διαβάσετε τις πληροφορίες κατάστασης, χρησιμοποιήστε τα ακόλουθα στο περιβάλλον python3:
- SMBus.read_byte_data(0x51, 0x1d)
- Ο χρήστης μπορεί να χρησιμοποιήσει αυτήν την εντολή μετά από κάθε αίτημα RDO για να εξασφαλίσει επιτυχές αίτημα RDO διαβάζοντας το bit COMPLETE.
Γράψτε ΜΑΣΚΑ (0x1E)
- Αυτή η εντολή ενεργοποιεί τις διακοπές που σηματοδοτούν τον κεντρικό υπολογιστή μέσω του ακροδέκτη GPIO3 του AP33772. Οι διακοπές περιλαμβάνουν Derating , OTP, OCP, OVP, Request Rejected, Request
- Ολοκληρώθηκε και έτοιμο. Για να ενεργοποιήσετε μια συγκεκριμένη διακοπή, ορίστε το αντίστοιχο bit σε ένα. Για π.χample, για να ενεργοποιήσετε τη διακοπή OCP, ορίστε το bit 4 του καταχωρητή MASK σε ένα χρησιμοποιώντας το ακόλουθο περιβάλλον στο python3:
- SMBus.write_byte_data(0x51, 0x1e, 0x10)
- Ο ακροδέκτης GPIO3 του AP33772 θα ανέβει ψηλά όταν ενεργοποιηθεί η προστασία OCP.
Διαβάστε VOLTAGE (0x20)
- Αυτή η εντολή αναφέρει τον τόμtage μετρήθηκε από τον ελεγκτή νεροχύτη AP33772. Να αναφέρω τον τόμtagε, χρησιμοποιήστε τα ακόλουθα στο περιβάλλον python3:
- SMBus.read_byte_data(0x51, 0x20)
- Μία μονάδα της αναφερόμενης τιμής αντιπροσωπεύει 80 mV.
Ανάγνωση ΤΡΕΧΟΥΣΑ (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 και 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)
- Για να αλλάξει το κατώφλι μείωσης σε 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)
- Ένα θερμίστορ NCP10XH03 με αρνητικό συντελεστή θερμοκρασίας (NTC) Murata 103KΩ συμπληρώνεται στο 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) SMBusta.read_0_da
- Οι επιστρεφόμενες τιμές είναι επίσης λέξεις 2 byte. Δεδομένου ότι οι εντολές χειρίζονται απευθείας λέξη 2 byte, οι χρήστες δεν χρειάζεται να ανησυχούν για μικρή σειρά endian byte εδώ.
Γράψτε RDO (0x30~0x33)
- Για να ξεκινήσει μια διαδικασία διαπραγμάτευσης αιτήματος ΠΟΠ, τα δεδομένα 4 byte εγγράφονται στον καταχωρητή RDO (Αίτημα Αντικειμένου Δεδομένων) με σειρά λίγων byte. Όπως π.χ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 Example: ap33772_querypdo.bash
Αυτό το πρώηνampΤο le ελέγχει όλα τα έγκυρα ΠΟΠ και παραθέτει τον τόμtage και τρέχουσες πληροφορίες ικανότητας έξω.
Στοιχεία κώδικα
Εκτέλεση Κώδικα και Έξοδοι
Example 2: Python SMBus2 Example: ap33772_allpdo.py3
Αυτό το πρώηνampΤο le ελέγχει όλα τα έγκυρα ΠΟΠ και τα ζητά ένα προς ένα με σειρά πάνω και κάτω.
Στοιχεία κώδικα
Εκτέλεση Κώδικα και Έξοδοι
Example Code Download
Κατάλογος Εξample Κώδικες
- ExampΟι Κώδικες έχουν εκδόσεις Bash Script και Python
- ap33772_querypdo: ερωτά όλες τις πληροφορίες ΠΟΠ
- ap33772_reqpdo: αναφέρει όλες τις πληροφορίες ΠΟΠ και στέλνει αίτημα ΠΟΠ που καθορίζεται από τον χρήστη
- ap33772_allpdo: αναφέρει όλες τις πληροφορίες ΠΟΠ και περιηγείται σε όλα τα αιτήματα ΠΟΠ με τρόπο πάνω και κάτω
- ap33772_pps: αναφέρει όλες τις πληροφορίες ΠΟΠ και ramps πάνω και κάτω ολόκληρο το PPS voltagΕύρος σε μέγεθος βήματος 50 mV
- ap33772_vit: αναφορές τόμtage, πληροφορίες ρεύματος και θερμοκρασίας
ExampΙστότοπος λήψης
Example Οι κωδικοί μπορούν να ληφθούν από το Github. Εκδώστε την ακόλουθη εντολή για λήψη: git clone https://github.com/diodinciot/ap33772.git-ap33772
Αναφορές
- Φύλλο δεδομένων AP33772 (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: 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/
- Βοηθητικό πρόγραμμα I2C-Tools: https://linuxhint.com/i2c-linux-utilities/
- Ενότητα SMBus2: https://smbus2.readthedocs.io/en/latest/
Ιστορικό αναθεώρησης
Αναθεώρηση | Ημερομηνία Έκδοσης | Σχόλιο | Συγγραφέας |
1.0 | 4/15/2022 | Αρχική Έκδοση | Έντουαρντ Ζάο |
ΣΗΜΑΝΤΙΚΗ ΕΙΔΟΠΟΙΗΣΗ
- Η DIODES INCORPORATED ΔΕΝ ΠΑΡΕΧΕΙ ΚΑΝΕΝΑΣ ΕΙΔΟΥΣ, ΡΗΤΗ Ή ΣΙΩΠΗΡΗ ΕΓΓΥΗΣΗ ΣΧΕΤΙΚΑ ΜΕ ΑΥΤΟ ΤΟ ΕΓΓΡΑΦΟ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΑΛΛΑ ΟΧΙ ΠΕΡΙΟΡΙΣΜΕΝΩΝ, ΤΩΝ ΣΙΩΠΗΡΩΝ ΕΓΓΥΗΣΕΩΝ ΤΗΣ ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ΚΑΙ ΤΗΣ ΕΥΘΥΝΗΣ ΕΥΘΥΝΗΣ ΑΠΟ ΤΟΥΣ ΝΟΜΟΥΣ ΟΠΟΙΑΔΗΠΟΤΕ ΔΙΚΑΙΟΔΟΣΙΑΣ).
- Η Diodes Incorporated και οι θυγατρικές της διατηρούν το δικαίωμα να κάνουν τροποποιήσεις, βελτιώσεις, βελτιώσεις, διορθώσεις ή άλλες αλλαγές χωρίς περαιτέρω ειδοποίηση σε αυτό το έγγραφο και σε οποιοδήποτε προϊόν που περιγράφεται εδώ. Η Diodes Incorporated δεν αναλαμβάνει καμία ευθύνη που προκύπτει από την εφαρμογή ή τη χρήση αυτού του εγγράφου ή οποιουδήποτε προϊόντος που περιγράφεται στο παρόν. Ούτε η Diodes Incorporated εκχωρεί άδεια βάσει των δικαιωμάτων ευρεσιτεχνίας ή εμπορικού σήματος της, ούτε δικαιώματα τρίτων. Οποιοσδήποτε πελάτης ή χρήστης αυτού του εγγράφου ή των προϊόντων που περιγράφονται στο παρόν σε τέτοιες εφαρμογές θα αναλάβει όλους τους κινδύνους αυτής της χρήσης και θα συμφωνήσει να κατέχει την Diodes Incorporated και όλες τις εταιρείες των οποίων τα προϊόντα εκπροσωπούνται στο Diodes Incorporated webτοποθεσία, ακίνδυνη για όλες τις ζημιές.
- Η Diodes Incorporated δεν εγγυάται ούτε αποδέχεται καμία απολύτως ευθύνη σε σχέση με προϊόντα που αγοράζονται μέσω μη εξουσιοδοτημένων καναλιών πωλήσεων.
Σε περίπτωση που οι πελάτες αγοράσουν ή χρησιμοποιήσουν προϊόντα Diodes Incorporated για οποιαδήποτε ακούσια ή μη εξουσιοδοτημένη εφαρμογή, οι πελάτες θα αποζημιώσουν και θα διατηρήσουν τις Diodes - Η Incorporated και οι εκπρόσωποί της ήταν αβλαβείς έναντι όλων των αξιώσεων, αποζημιώσεων, εξόδων και αμοιβών δικηγόρου που προέκυψαν από, άμεσα ή έμμεσα, οποιαδήποτε αξίωση σωματικού τραυματισμού ή θανάτου που σχετίζεται με μια τέτοια ακούσια ή μη εξουσιοδοτημένη εφαρμογή.
- Τα προϊόντα που περιγράφονται στο παρόν ενδέχεται να καλύπτονται από ένα ή περισσότερα διπλώματα ευρεσιτεχνίας Ηνωμένων Πολιτειών, διεθνών ή ξένων ευρεσιτεχνιών που εκκρεμούν. Οι ονομασίες και οι σημάνσεις προϊόντων που αναφέρονται στο παρόν ενδέχεται επίσης να καλύπτονται από ένα ή περισσότερα εμπορικά σήματα των Ηνωμένων Πολιτειών, διεθνή ή ξένα εμπορικά σήματα.
- Αυτό το έγγραφο είναι γραμμένο στα αγγλικά, αλλά μπορεί να μεταφραστεί σε πολλές γλώσσες για αναφορά. Μόνο η αγγλική έκδοση αυτού του εγγράφου είναι η τελική και καθοριστική μορφή που κυκλοφόρησε από την Diodes Incorporated.
ΥΠΟΣΤΗΡΙΞΗ ΖΩΗΣ
- Τα προϊόντα Diodes Incorporated δεν είναι ειδικά εξουσιοδοτημένα για χρήση ως κρίσιμα εξαρτήματα σε συσκευές ή συστήματα υποστήριξης ζωής χωρίς τη ρητή γραπτή έγκριση του Διευθύνοντος Συμβούλου της Diodes Incorporated. Όπως χρησιμοποιείται εδώ:
- A. Οι συσκευές ή συστήματα υποστήριξης ζωής είναι συσκευές ή συστήματα που:
- προορίζονται για εμφύτευση στο σώμα, ή
- υποστηρίζει ή διατηρεί τη ζωή του και του οποίου η αποτυχία να λειτουργήσει όταν χρησιμοποιείται σωστά σύμφωνα με τις οδηγίες χρήσης που παρέχονται στην ετικέτα μπορεί εύλογα να αναμένεται ότι θα οδηγήσει σε σημαντικό τραυματισμό του χρήστη.
- B. Ένα κρίσιμο εξάρτημα είναι οποιοδήποτε εξάρτημα σε μια συσκευή ή σύστημα υποστήριξης ζωής του οποίου η αστοχία μπορεί εύλογα να αναμένεται ότι θα προκαλέσει την αστοχία της συσκευής υποστήριξης ζωής ή θα επηρεάσει την ασφάλεια ή την αποτελεσματικότητά της.
- Οι πελάτες δηλώνουν ότι διαθέτουν όλη την απαραίτητη τεχνογνωσία σχετικά με την ασφάλεια και τις ρυθμιστικές επιπτώσεις των συσκευών ή συστημάτων υποστήριξης ζωής τους και αναγνωρίζουν και συμφωνούν ότι είναι αποκλειστικά υπεύθυνοι για όλες τις νομικές, κανονιστικές και σχετικές με την ασφάλεια απαιτήσεις σχετικά με τα προϊόντα τους και οποιαδήποτε χρήση διόδων Ενσωματωμένα προϊόντα σε τέτοιες κρίσιμες για την ασφάλεια συσκευές ή συστήματα υποστήριξης της ζωής, ανεξάρτητα από τυχόν πληροφορίες ή υποστήριξη που σχετίζονται με συσκευές ή συστήματα που ενδέχεται να παρέχονται από την Diodes Incorporated.
- Περαιτέρω, οι πελάτες πρέπει να αποζημιώσουν πλήρως την Diodes Incorporated και τους εκπροσώπους της για τυχόν ζημίες που προκύπτουν από τη χρήση των προϊόντων Diodes Incorporated σε τέτοιες κρίσιμες για την ασφάλεια συσκευές ή συστήματα υποστήριξης της ζωής.
- Πνευματικά δικαιώματα © 2017, Diodes Incorporated
- www.diodes.com
Έγγραφα / Πόροι
![]() |
DIODES AP33772 USB PD Sink Controller Raspberry Pi I2C Interface [pdf] Οδηγός χρήστη 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 |