Pcf8574 datenblatt ohne infos über register?

Gast #687402
Lesenswert?

Versuche gerade meinen ersten I2C Slave in meinem Bus anzusprechen.
Jedoch konnte ich in dem Datenblatt des PCF8574 keinerlei Infos über die 
Ansteuerung der IO's finden.
Endweder ich hatte ne sehr dunkle Brille auf oder die sind echt nicht 
drin :(
ratlos

Gibt es eigentlich Standard-Routinen um den eigenen I2C Bus zu testen?
Für den Anfang verwende ich den COde von Peter Fleury.

Heiko
#687412
Lesenswert?

Kann es sein, dass du das Teil etwas überschätzt? Das Ding ist ein 8bit 
I/O-Port und die Ports sind ähnlich wie 8051-Ports implizit 
bidirektional, eine explizite Richtungssteuerung existiert nicht. Auch 
die Arbeitsweise des Interrupts ist nicht konfigurierbar. Also gibt es 
keinerlei Konfigurationsregister. 8-bit Daten raus und rein, fertig.
#687436
Lesenswert?

>Aber trotzdem würde mich dann interessieren wie ich dem ic unterscheide
>ob gerade daten am port anliegen oder obwas gesendet wird.

Wenn du mit diesem "Satz" meinst, wie man dem PCF8574 sagt, ob er Daten 
ausgeben oder einlesen, dann solltest du dir das R/W-Bit im Adressbyte 
angucken. Das steuert die Datenrichtung.
Für die Bussteuerung ist der Master verantwortlich.
#687490
Lesenswert?

Spess53 wrote:

> Die Datenrichtung wird über das R/W-bit festgelegt. Müsste Bit0 vom
> Adressbyte sein. Also ein 'gemischter' Betrieb mit Aus- und Eingängen an
> einem IC ist nicht so richtig möglich.

Falsch. Die Pins besitzen einen schwachen Pullup und einen starken 
aktiven Pulldown. Folglich muss in einen Pin, der als Eingang benutzt 
werden soll, eine "1" reingeschrieben werden, um den aktiven Pulldown 
abzuschalten. Was immer an dem Eingang dranhängt zieht dann ggf. den Pin 
runter.

Folglich sind die Pins nicht in der Lage, signifikante Ströme zu 
liefern. Will man also LEDs schalten, dann müssen die an Vcc hängen, 
nicht an GND.

Und was man auch nicht tun darf: Daten lesen und ohne mitzudenken 
zurückschreiben. Denn dann wird aus einem Eingang, der an GND liegt, nun 
ein Ausgang an GND. Grad so wie auch bei 8051.
Gast #687640
Lesenswert?

Um von dem I2C PCF8574 daten einzulesesen gibt es zwei möglichkeiten:

1. Zyklisch Lesen --> Senden Adressbyte + R/W bit = 1
   Danach einfach 8bits einlesen ACK abfragen nicht vergessen

2. Interrupt gesteuert. d.h. sobald sich was am Port ändert wird ein
    interrupt ausgelöst.  Dann kannste wie unter 1 verfahren.

Es ist dir hoffentlich klar das die Hardwaremäßige Adresseinstellung mit 
der Softwärmäßigen Adresse übereinstimmen muss sonst geht garnichts. 
gell
Gast #688237
Lesenswert?

Tut mir leid Heiko! Aber Hardware TWI hab ich noch nie benutzt da ich 
haupsächlich mit 8051er arbeite und es dort Softwarmäßig die I2C-Bus 
geschichte realisiert habe.

Ich kenne  die Lib von Peter Fleury jetzt nicht aber ich denke das er in 
seiner lib oder Readmedatei beschrieben hat wie man so ein Baustein
anspricht.

Lese und schreib Routinen werden doch vorhanden sein.

Ich meine Du bräuchtest doch nur die die Adresse des Baustein senden und 
danach die Daten. Den Rest müsste doch das Hardware TWI machen.

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