Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: HSRel5 Kategorie: I²C-Bus (von ChristianS - 25.09.2010 9:39)
Als Antwort auf Re: HSRel5 von André H. - 25.09.2010 8:58
Ich nutze:
C-Control II Station, OSOPT V3.1
Hallo Andre,
danke für Deine Antwort, dass muss ich mir mal genau anschauen. Zuerst möchte ich einfach nur
die Relais ansteuer, egal unter welcher Adresse. Deshalb habe ich das Teil einfach direkt an die
cc2-Station gehängt. Und mit Adresse "8" probiert. Ich bin mir eigentlich ziemlich sicher, dass ich die
"A"-Version bestellt habe, kann das aber leider nicht genau auf der Platine erkennen. Mit Adresse "0"
habe ich es noch nicht probiert. Wenn ich Dich jetzt richtig verstehe, dann müsste ich mit:

pcf.on(0,0);
sleep 2000;
pcf.on(0,0);
sleep 200
Erfolg haben, wenn ich alle Adress-Jumper gegen Masse setze. Ich probier das mal und hänge
die Platine direkt an die CC2-Station.

Später soll die Platine an einer Tranceiver-Strecke parallel zur I2C-1-Wire Bridge betrieben werden.

GruÃ?,
ChristianS

> Hallo Christian,
>
> > > ich brauche mal wieder Hilfe. Ich habe mir eine HSrel5 angeschafft, kriege die aber nicht ans
> > > fliegen. Ich habe die Adresse "6" auf dem Baustein eingestellt. Der Befehl:
> > > hwcom.num(pcf.init()); liefert mir den Wert 64.
>
> Der Rückgabewert von pcf.init() ist ein Bitmuster mit allen gefunden PCF8574 bzw. ICs, die
> sich in dessen Adressbereich befinden.
> Mit PCF8574 und PCF8574A gibt es 16 mögliche Adressen.
> Die Bitposition des bzw. der High-Bits entspricht der Subadresse.
> Die Subadresse ist nicht die reale I²C-Bus-Adresse, sondern ein Adressindex beginnend
> bei 0 aller möglichen Adresse eins I²C-Slaves.
> Wenn Du den Rückgabewert 64 in Binärform anschaust, erkennst Du schnell Deine 6:
> 0b0000 0000 0100 0000
> Ich habe hier für die Bits 0 bis 15 in Vierergruppen unterteilt, damit dies leichter erkennbar ist.
>
>
> > > Ich hätte getippt, dass ich das erste Relais mit
> > > pcf.on(14,0); einschalte und mit
> > > pcf.off (14,0) ausschalte. Es tut sich aber gar nichts. Hat jemand
> > > eine Idee? Das Teil hängt direkt am I2C-Bus der MAX-Rel8.
>
> Erstmal, was meinst Du mit "am I2C-Bus der Max-Rel8"?
> Hast Du die Relaisplatine einfach an den Klemmen durchgeschliffen, oder hast Du
> die Relaisplatine mit Puffer bzw. Extender und das HSRel5 dahinter angeschlossen?
>
> Wie kommst Du auf Subadresse "14", wenn Du über Jumper den Binärwert 6 eingestellt hast?
> Hast Du das HSRel5 mit oder ohne Option A bestellt?
> Der Rückgabewert von init() legt nahe, da� es ohne Option A ist.
>
> > wenn ich das I2C-Bus-Scan-Programm von Andre starte, dann bekomme ich die Adresse 76
> > für die HSRel5 angegeben
> >
> > Addr.   Write   Read0
> > 76      OK      OK
> >

>
> Ist absolut korrekt:
> Der PCF8574 hat den Adressbereich 0x40 bis 0x4F
> Der PCF8574A entsprechend 0x70 bis 0x7F
> Die Adresse 76 (=0x4C) zeigt einen PCF8574 ohne A mit Addr.Jumper 0b110, also auf Subadresse 6.
>
> >
> > auf der Platine habe ich
> > A0->GND
> > A1->+5V
> > A2->+5V
> > eingestellt, das wäre doch Adresse 6,bzw. bei dem PCF-8574Baustein Addresse 14, oder?
>
> Wie kommst Du auf 14??
> 14 wäre ein PCF8574A mit Jumper auf 0b110.
> Du hast aber eindeutig einen PCF8574 ohne A.
>
>
> > Was hat das nun mit Adresse 76 aus dem Scan zu tun? Das verstehe ich nicht!
> > Wie müsste denn meine Ansteuerung aussehen? Denn weder pcf.on(14,0) noch
> > pcf.on(76,0) funktionieren.
>
> Es gibt zwei Möglichkeiten. entweder Du schaust einfach mal ins Modul pcf.c2 rein.
> Oben sind die Adressen definiert.
> (Die Indizies 0-15 werden über Konstanten-Arrays auf die I²C-Bus-Adressen umgesetzt.)
> Oder, Du liest einfach mal die Hilfe-Datei von pcf.c2.
> (In der IDE F1 drücken => Hilfe zu den Modulen => pcf.c2)
>
> Als zulässige Werte für die (Sub-)Adresse im Modul pcf.c2 ist nur der Bereich 0 bis 15 zulässig.
>
>
>
> > ich habe jetzt die Platine direkt an die CC2-station gehängt und dieses Testprogramm geladen:
> >
> > thread main
> > {
> > stports.init();
> > lcdext.init();
> > lcdext.clear();
> > i2c.init();
> > pcf.init();
> > loop
> >   {
> >    pcf.on(8,0);
> >    sleep 2000;
> >    pcf.off(8,0);
> >    sleep 2000;
> >    }
> > }
> >

> > Die Adress-Jumper habe ich alle auf 0 Gesetzt. Leider passier überhaupt nichts.
>
> Und wieder die Frage: wie kommst Du auf 8?
> Wenn Du einen PCF8574 ohne A hast, und dabei die Jumper alle auf GND stehen, dann
> ist das die Subadresse 0, da das die allererste mögliche Adresse darstellt.
>
> MfG André H.


    Antwort schreiben


Antworten:

Re: HSRel5 (von André H. - 28.09.2010 8:16)