- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: PCF8574 Ausgänge und Eingänge

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.06.2004
    Alter
    37
    Beiträge
    77

    PCF8574 Ausgänge und Eingänge

    Anzeige

    Praxistest und DIY Projekte
    Moin Jungs,
    ich habe nochmal juste eine Frage bezüglich des PCF Bausteins. Habe im Datenblatt gelesen, dass die einzelnen Pins unabhängig voneinander als Ein- oder Ausgänge genutzt werden können.
    Folgender Aufbau:
    Ich habe an den Pinnen 1-4 eine Treiberstufe angeschlossen und an den Pinnen 5-8 Sensoren.

    Wenn ich das jetzt alles richtig verstanden habe, schalte ich die Pinne 1-4 indem ich in der Adresse das letzte Bit auf 1 setze und dann folgendes Datenwort sende:
    1111 0101 (letzten vier zum Schalten, ersten vier Bits bleiben auf High, da Eingang)

    will ich jetzt den Zustand der Sensoren erfragen sende ich in der Adresse eine 0 als LowestBit und lese das Byte ein.


    So jetzt aber meine eigentliche Frage. Was passiert, wenn ich jetzt versehentlich doch einen Eingang schalte. Also wenn an Pin 7 ein HIGH-Pegel anliegt, und ich ihn auf Low schalte, dann gibt es doch einen kurzschluss der meinen schönen Baustein zerstört.

    Ist das so oder vertue ich mich da. Ich muss ja sonst höllisch aufpassen, dass jeder PCF auch wirklich die richtigen Daten bekommt (und das ist in der Testphase nicht immer zu 100% sichergestellt )

    wäre nett wenn ihr mir mal kurz nen Denkanstoss gebt.

    Gruß
    Baui

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    So jetzt aber meine eigentliche Frage. Was passiert, wenn ich jetzt versehentlich doch einen Eingang schalte. Also wenn an Pin 7 ein HIGH-Pegel anliegt, und ich ihn auf Low schalte, dann gibt es doch einen kurzschluss der meinen schönen Baustein zerstört.
    Ja,so isses.
    Genauso wie beim Controller und fast allen Digitalen Bausteinen.


    Wenn ich das jetzt alles richtig verstanden habe, schalte ich die Pinne 1-4 indem ich in der Adresse das letzte Bit auf 1 setze und dann folgendes Datenwort sende:
    1111 0101 (letzten vier zum Schalten, ersten vier Bits bleiben auf High, da Eingang)
    Denk mal nach.
    Was kannst du mitteilen ?
    Du hast Zwei Adressen.
    Eine für Schreiben und eine für lesen.(Letztes Bit 0 oder 1)
    Beim Lesen gibst du nur die Adresse und nach dem Ack kommen schon die Daten aller 8 Bits vom 8574.
    Beim Schreiben lieferst du selber die 8 Bits "für" den ganzen Port..


    Beim PCF8574 ist kein Datenrichtungsregister vorhanden.
    Gruß
    Ratber

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.06.2004
    Alter
    37
    Beiträge
    77
    Beim Schreiben lieferst du selber die 8 Bits "für" den ganzen Port..
    soll mir das sagen, dass es doch nicht möglich ist einen PCF mit Eingängen und Ausgängen gleichzeitig zu betreiben, sondern immer den kompletten PCF als Eingang ODER Ausgang?

    Gruß
    Baui

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Letzteres


    Nimm einfach Zwei Bausteine.
    Gruß
    Ratber

  5. #5
    Zitat Zitat von Ratber
    Letzteres


    Nimm einfach Zwei Bausteine.
    Ich bin verwirrt.
    Was bedeutet dann das

    Each of the PCF8574’s eight I/Os can be independently
    used as an input or output. Input data is transferred from
    the port to the microcontroller by the READ mode
    (see Fig.11). Output data is transmitted to the port by the
    WRITE mode (see Fig.10).
    im Datenblatt ?

    Gruss
    Frank

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Das bedeutet das du den Baustein als Ein "oder" ausgang benutzen kannst.

    Das Busprotokoll läst es auch nicht anders zu.

    Ob du liest oder schreibst bestimmst du mit der Adresse und übertragen werden "immer" alle 8 Bit
    Entweder du liest 8 Bit oder du schreibst 8 Bit.

    Deswegen ist es einfch gesagt nicht möglich gemischt zu fahren.
    Mit etwas tricksereich würde es gehen aber der Aufwand wäre so hoch das man lieber nen Zweiten 8574 nimmt und beides trennt.
    Gruß
    Ratber

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    7.3 Quasi-bidirectional I/Os (see Fig.14)
    A quasi-bidirectional I/O can be used as an input or output
    without the use of a control signal for data direction.
    At power-on the I/Os are HIGH. In this mode only a current
    source to VDD is active. An additional strong pull-up to VDD
    allows fast rising edges into heavily loaded outputs. These
    devices turn on when an output is written HIGH, and are
    switched off by the negative edge of SCL. The I/Os should
    be HIGH before being used as inputs.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ja,genau.
    Da stehts ja.

    Danke.
    Gruß
    Ratber

  9. #9
    Na wenn Du meinst ......
    Ich lese das aber immer noch als ob "Eingang und Ausgang" möglich sind, so wie Baui das geschrieben hat.


    Wenn ich das jetzt alles richtig verstanden habe, schalte ich die Pinne 1-4
    indem ich in der Adresse das letzte Bit auf 1 setze und dann folgendes
    Datenwort sende:
    1111 0101 (letzten vier zum Schalten, ersten vier Bits bleiben auf High,
    da Eingang)

    ... oder habe ich mich gerade "Gedanklich vergallopiert"
    Probiert habe ich es natürlich noch nicht.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ja,was soll ich dir den noch sagen ?

    "Na wenn du meinst...." wäre jedenfalls nicht das richtige obwohl das Einfachere.

    Setz dich doch mal mit dem Busprotokoll auseinander dann wirst du verstehen das es unmöglich ist die Bits getrennt als Ein und Ausgänge zu behandeln.


    Wenn du Als Ausgang sendest dann bist du gezwungen 8 Bit als Daten zu senden,nicht 7,nicht 9,genau 8.
    Alles andere macht die Übertragung ungültig.

    Gleiches gilt für das Auslesen als Eingang.
    Du must alle 8 Bits lesen und damit machst du alle 8 Bit zum Eingang.


    Wenn du uns schon nicht glauben willst dann versuch es doch einfach.
    Probieren geht über studieren und mehr als nen Baustein kostets auch nicht
    Gruß
    Ratber

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test