Hi, hoffe einer kann mir helfen. Bin gerade irgendwie zu blöd dem IC(PCA 9533 Pin configuration for SO8) zu sagen,dass er beim Ausgang LED0 - Wert X ( mit Wert mein ich on/off Zeit vom PWM-Signal) Ausgang LED1 - Wert Y ( "" ) wollte die #include <Wire.h> Bib nehmen. Kann mir einer ein Codebeispiel schrieben, dass LED0 mit pwm(x) läuft und LED1 mit pwm(y)? wäre euch sehr dankbar .. steh gerade aufem Schlauch -.- Datenblatt vom 9533: https://www.nxp.com/docs/en/data-sheet/PCA9533.pdf Danke. MfG M.V
Hi, hier ist der Test-Code.(Anhang) Wo ist der Fehler? Liegt das an der Wire.h ? Das Programm sollte eigl. Ausgang-LED0 auf PWM0-Timer setzen. Nur an den Ausgang passiert gar nichts. Hoffe einer kann mir Helfen. A5 = SCL A4 = SDA MfG M.V
evtl B vergessen ? byte data = B00110010; // Dein 8Bit Wert Gruss Andreasgf
Ja das B fehlte noch. Danke :) Einstellungen werden immer noch nicht vom PCA9533 übernommen. Hab mir mittlerweile mir die Signalverläufe auf mein Ozilluskop angeschaut. Wenn ich 1) Wire.beginTransmission(add); Wire.write(LS0); Wire.write(LED); Wire.endTransmission(); benutze seh ich nur das erste Datenpaket. Wire.write(LS0) und Wire.write(LED) werden nicht mitgesendet. wenn ich 2): Wire.beginTransmission(add); Wire.endTransmission(); Wire.beginTransmission(LS0); Wire.endTransmission(); Wire.beginTransmission(LED); Wire.endTransmission(); benutze seh ich alle drei Datenpakete hintereinander. Nur wird die "Einstellung" nicht vom PAC9533 übernommen. wenn ich 3): Wire.beginTransmission(add); Wire.beginTransmission(LS0); Wire.beginTransmission(LED); Wire.endTransmission(); benutze seh ich nur das erste Datenpaket. Bin mir auch ziemlich sicher das die Control Bytes stimmen. Also schick ich die Daten nach 2): aber am Ausgang passiert wieder nichts. hoffe einer kann mir helfen. p.s Datenblatt vom 9533: https://www.nxp.com/docs/en/data-sheet/PCA9533.pdf MfG M.V
:
Bearbeitet durch User
Moin, schon seltsam ! 1. Verdrahtung i.O ? SDA und SCL nicht vertauscht ? PullUp Widerstände am Bus nicht vergessen ? Ist die Adresse richtig ? Such mal den Bus nach I2C Teilnehmern : http://playground.arduino.cc/Main/I2cScanner 2. Versuch mal ein Register vom 9533 zu lesen. LG
Michael V. schrieb: > Wenn ich 1) > Wire.beginTransmission(add); > Wire.write(LS0); > Wire.write(LED); > Wire.endTransmission(); > benutze seh ich nur das erste Datenpaket. Und wie sieht das aus? Passt das Adressbyte zu den Angaben im Datenblatt (Kap. 6.1 Device address) und kommt vom PCA9533 ein Ack? Michael V. schrieb: > Datenblatt vom 9533: > https://www.nxp.com/docs/en/data-sheet/PCA9533.pdf Die dauernde Verlinkung des Datenblattes kannst du dir dank der Forensoftware sparen, wenn du einmal statt irgendwelchen Zahlen die IC-Bezeichnung des PCA9533 passend nennst - dann wird über die ForumsDatenbank automatisch ein Link erzeugt.
andreasgf schrieb: > schon seltsam ! JAAAA > 1. > Verdrahtung i.O ? SDA und SCL nicht vertauscht ? > PullUp Widerstände am Bus nicht vergessen ? > Leitungen sind richtig, PullUp vorhanden. > Ist die Adresse richtig ? > Such mal den Bus nach I2C Teilnehmern : > http://playground.arduino.cc/Main/I2cScanner Das kleine testprogramm sagt mir adresse 0x62 .. schonmal anders wie im Datenblatt. > 2. > Versuch mal ein Register vom 9533 zu lesen. Kann die jetzt auch Auslesen aber irgendwie vertrau ich das ganze noch nicht so. Wolfgang schrieb: > Und wie sieht das aus? Passt das Adressbyte zu den Angaben im Datenblatt > (Kap. 6.1 Device address) und kommt vom PCA9533 ein Ack? Wenn ich die richtige Adresse benutzte kann ich auch wieder > Wire.beginTransmission(add); > Wire.write(LS0); > Wire.write(LED); > Wire.endTransmission(); benutzen. Er schickt alle 3 Bytes raus. Ja sieht so aus als wenn er ein Ack. mit schickt. Danke das hat mir schonmal ein Stückchen weiter geholfen. Werd mal weiter rum spobieren. p.s hab leider kein flashspeicher zu Hand, sonst würde ich die Ozilluskop Bilder mal online stellen.
Hi, ich bins nochmal. kann den jetzt beschreiben und auslesen nur da passiert nichts. Wire.beginTransmission(0x62); Wire.write(0x11); // Hab diese Werte außem Datenbaltt Wire.write(0x97); // 8.2 Programming example Wire.write(0x80); Wire.write(0x00); Wire.write(0x40); Wire.write(0xE1); Wire.endTransmission(); Serieller Monitor: Auslesen 0 : Input Register 10010111 : PSC0 "" 10000000 : PWM0 "" 0 : PSC1 "" 1000000 : PWM1 "" 11100001 : LS0 "" Wenn ich die Betriebsspannung weg nehmen und wieder anklemme und auslese: Serieller Monitor: Auslesen 0 : Input Register 0 : PSC0 "" 10000000 : PWM0 "" 0 : PSC1 "" 10000000 : PWM1 "" 0 : LS0 "" ----------- Daraus schließe ich das schreiben/lesen Funktioniert. Irgendwer eine Idee wieso Der PCA9533 nichts ausgibt obwohl die Register gesetzt sind ?
Michael V. schrieb: > Das kleine testprogramm sagt mir adresse 0x62 .. schonmal anders wie im > Datenblatt. Im Datenblatt ist für den PCA9533/01 auch 0x62 als I2C Adresse angegeben, für den PCA9533/02 0x63. Wo hast du denn geguckt? Oder verwechselst du I2C-Adresse und Adressierungsbyte?
Arbeite gerade das erte mal mit I²C-Bus. Evtl ist irgendwo nur ein blöder Fehler. > Im Datenblatt ist für den PCA9533/01 auch 0x62 als I2C Adresse > angegeben, für den PCA9533/02 0x63. In welchem Datenblatt hast du geguckt ? > Wo hast du denn geguckt? > Oder verwechselst du I2C-Adresse und Adressierungsbyte? Hab hier geguckt:https://www.nxp.com/docs/en/data-sheet/PCA9533.pdf Habs mal den Ausschnitt im Anhang gepackt wo ich geguckt hab. PCA9533/01 slave address: B 1100 0100 - 64 DEC
naja.. ich bin mit mein Latein am Ende. evtl. ist hier ja noch ein lieber Mensch unterwegs der mir dafür ein klein Code schreiben kann. Sonst muss ich das Projekt umarbeiten oder aufgeben was sehr schade wär. Kann das sein das ich nur zu blöd bin die richtigen Bytes aus dem Datenblatt zu lesen? Hab nochmal den Code angehängt wie ich das beschreibe und auslese. Danke an alle die bisher geantwortet haben, sind ja ein Stück weiter gekommen. MfG M.V
Michael V. schrieb: > Irgendwer eine Idee wieso Der PCA9533 nichts ausgibt obwohl die Register > gesetzt sind ? Hast du LED0 bis LED3 auch angeschlossen ? LG
andreasgf schrieb > Hast du LED0 bis LED3 auch angeschlossen ? > > LG ich Ahne böses -.- ne nur Ozilluskop bisher dran gehalten. werd ich nachem Abendbrot mal ausprobieren. Danke MfG M.V
Michael V. schrieb: > PCA9533/01 slave address: > B 1100 0100 - 64 DEC Das ist nicht die "slave address". Guck mal, auf welche Bits sich in der Abbildung die Klammer bezieht. Das R/W-Bit gehört nicht dazu. Die I2C-Adresse hat nach Definition nur sieben Bit.
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.