Hallo zusammen, ich habe ein Meanwell NGE100 USB-C Power Delivery Netzteil und dazu auf meiner Platine einen TPS25730 verbaut. Jetzt möchte ich aus dem IC die ausgehandelte VBUS auslesen, bekomme aber seltsame Werte: ACTIVE_CONTRACT_PDO: 0x06 0x2C 0x41 0x06 0x00 0x80 ACTIVE_CONTRACT_RDO: 0x0C 0x2C 0xB1 0x04 Die ersten 4 Byte zusammengefasst müssten ja das PDO Objekt nach USB PD Standard darstellen: PDO: 0x062C4106 RDO: 0x0C2CB104 Bit 19-10 sollten dann die Spannung in 50mV Schritten darstellen: PDO: 0x310 = 784 -> 39.2V RDO: 0x304 = 772 -> 38.6V Bit 9-0 sollten dann den Strom in 10mA Schritten darstellen: PDO: 0x106 = 262 -> 2.62A RDO: 0x104 = 260 -> 2.60A Die Ströme erscheinen richtig, die Spannungen aber definitiv falsch. Der IC ist durch die Strap-Widerstände auf maximal 20V eingestellt (und kann auch laut Datenblatt gar nicht mehr). Gemessen habe ich VBUS natürlich auch mal: Es liegen wie gewünscht 20V an. Was mache ich falsch? Grüße
Ohne mir die Werte im Detail angesehen zu haben vermutlich Bit- und/oder Byte-Order vertauscht.
Lösung gefunden: 1. Little-Endian nicht beachtet 2. Beim Register ACTIVE_CONTRACT_PDO kommt zuerst ein Byte zurück, das die Anzahl der Bytes des Registers anzeigt. Danach beginnt erst das eigentliche Register. Es müssen also 7 Byte statt 6 gelesen werden (warum auch immer das nur bei diesem Register der Fall ist, dabei steht es im generellen I2C Protokoll des ICs allgemeingültig drin...) Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.