PCA 9533 mit einem UNO ansteuern

OP #5286219
Lesenswert?

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
OP #5286517
Lesenswert?

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
Gast #5287052
Lesenswert?

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.
OP #5287323
Lesenswert?

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.
OP #5287451
Lesenswert?

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 ?
OP #5287486
Lesenswert?

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
Angehängte Dateien:
OP #5287704
Lesenswert?

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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren