Hallo, ich habe Probleme mit meinem PCA9685 und möchte hier einen softwarereset ausführen. Im Datenblatt steht: Software Reset I2C-bus address The address shown in Figure 5 is used when a reset of the PCA9685 needs to be performed by the master. The Software Reset address (SWRST Call) must be used with R/W = logic 0. If R/W = logic 1, the PCA9685 does not acknowledge the SWRST -> ich hab keine Ahnung was ich machen muss :(( - ich denke ich muss irgendetwas in ein Regigster schreiben - aber in welches? Ich kann das aus dem Datenblatt (http://www.nxp.com/documents/data_sheet/PCA9685.pdf) nicht erkennen. Gruß Pfeiffy
S.28 "7.6. Software Reset". 1 Datenbyte "0x06" an die Software-Reset Adresse schicken (write), dann Stop-Condition.
:
Bearbeitet durch User
Du sendest an die Adresse 0x00 das Byte 0x06, wie in Fig. 12 (Software reset7.6) gezeigt.
ok, ich schreibe 0b00000110 - aber wie bekomme ich die Reset-Adresse ist das 00h? und wie schreibe ich die Stop-Condition Pfeiffy
Pfeiffy schrieb: > ok, ich schreibe 0b00000110 - aber wie bekomme ich die Reset-Adresse ist > das 00h? > und wie schreibe ich die Stop-Condition > > Pfeiffy Du hast doch ganz andere Probleme als einen Software-Reset auszuführen. Geh mal ein paar Schritte zurück und beschäftige dich mal mit dem I2C Bus an sich.
Beides musst du in der Dokumentation zur I2C Library, die du verwendest, zu dem Prozessor, den du verwendest, nachgucken. Üblicherweise gibt es da Funktionen, um ein oder mehrere Datenbytes an eine I2C Adresse zu schicken, und da gibt man auch gleich an, ob der Master am Ende eine Stop-Condition erzeugen soll.
Hallo, ich weiß, das ich mich nicht mit den Registern und schreiben auskenne, ich möchte den PCA benutzen Cyblord -. schrieb: > Pfeiffy schrieb: >> ok, ich schreibe 0b00000110 - aber wie bekomme ich die Reset-Adresse ist >> das 00h? >> und wie schreibe ich die Stop-Condition >> >> Pfeiffy > > Du hast doch ganz andere Probleme als einen Software-Reset auszuführen. > Geh mal ein paar Schritte zurück und beschäftige dich mal mit dem I2C > Bus an sich. ich bin Java-Programmierer und möchte mit pi4j einen pca9685 benutzen - dies hat auch funktioniert, doch nun ist irgend etwas falsch gelaufen und er bringt nichts mehr - also muss ich versuchen ihn irgendwie zurückzusetzen - ich weiß, dass ich dazu eigentlich mehr Erfahrung in den Registern haben müsste. Aber ich kann mich eben nicht in alles einarbeiten.
Joe F. schrieb: > Beides musst du in der Dokumentation zur I2C Library, die du > verwendest, > zu dem Prozessor, den du verwendest, nachgucken. > Üblicherweise gibt es da Funktionen, um ein oder mehrere Datenbytes an > eine I2C Adresse zu schicken, und da gibt man auch gleich an, ob der > Master am Ende eine Stop-Condition erzeugen soll. ja, ich kann ja schreiben - aber ich weiß nicht an welche Adresse
ok, habe einen Beitrag übersehen. Ich schreibe nun: device.write(0x00,(byte) 0b00000110); nur die Stop_condition kann ich noch nicht
Ich gehe mal stark davon aus, dass die Stop-Condition automatisch generiert wird. Edit: und device.write(0x00,(byte) 0b00000110); ist vermutlich falsch, da write() doch nur das Datenbyte erwartet, und "device" bereits an eine I2C Adresse gebunden ist. Du musst ein weiteres device erzeuten (z.B. "device_reset"), und diesem device die Adresse 0x00 zuweisen. Dann device_reset.write(0x06);
:
Bearbeitet durch User
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.