- 3D-Druck Einstieg und Tipps         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 32

Thema: PCF8574 I2C ansteuerung

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    34
    Beiträge
    184
    Anzeige

    LiFePo4 Akku selber bauen - Video
    noch eins: was soll ich eigentlich mit A0-A2 machen? weil obwohl ich eine von denen rausnehme, gibt es keine veränderung (auch mit dem antwort und so). Ist das nicht komisch? eigentlich sind diese ports für addressing wichtig oder?

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hi,

    ja, 0 ist LOW und 1 ist HIGH.
    Die Adresspins müssen alle auf LOW (Jumper gesetzt) sein, damit der PCF8574 mit seiner Basisadresse angesprochen wird. D.H. der I2C Chip wird doch nicht richtig angesprochen.

    Hast du evtl. eine PCF8574AP?
    Der hat nämlich eine andere Basisadresse, als der PCF8574P.

    Sind die I2C Abschlußwiderstände R1 und R2 dran?
    Auf dem Foto im AsuroWiki fehlen diese. Ich hatte diese Widerstände auf eine 2x3polige Buchsenleiste gelötet, zum Aufstecken auf die I2C Erweiterung.

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    34
    Beiträge
    184
    nee, ich hab PCF8574P.

    ich glaube das liegt daran, dass ich vergessen habe eine pullup resistor zu verbinden. Ich hab zwar noch nicht daran weitergearbeitet, aber danke für die Antwort, ich melde mich wieder wenn ich es gemacht habe.

    Gruß

    raid

  4. #14
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    so, muss nochmal nachfragen:

    man schreibt einfach die portbits, und der rest geht von allein?

    also wenn ich 0b00001111 (=15 oder 0x0F) schreibe, dann sind die ersten 4 pins low und die zweiten 4 pins high? und das sind die ports P0 bis P7 in der zeichnung oder?

    dann: wofür sind A1,A2,A3? die müssen immer gesetzt sein, sofern nicht mehrere slaves angeschlossen werden oder?

    und noch: wenn ich den jumper bei int0 setze, dann wird ein interrupt ausgelöst, wen WAS passiert? sehe ich das richtig, dass int0 solang wie der jumper gesetzt ist, über R3 mit vcc verbunden ist? wenn ja warum?

    welche zeichnung stimmt, die der platine oder die des schaltplans?

    auf dem bild der platinenoberseite kommt R1 doppelt vor und R7 fehlt. vermute ich richtig, dass R7 unten links bei R8 und R9 hin müsste?

    wie lese ich den aktuellen status der pins aus? also wie kann ich erkennen, ob an einem pin (von aussen, zB einem taster) spannung anliegt oder nicht?

    was passiert, wenn ich den pin low geschaltet habe und dann zB mit einem taster spannung drauf leite? kurzschluss oder gar nichts?

    vielen dank für eure hilfe, ich hab die teile bestellt und komm nicht damit klar =/

    =)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Zitat Zitat von damaltor
    man schreibt einfach die portbits, und der rest geht von allein?
    richtig.

    Zitat Zitat von damaltor
    also wenn ich 0b00001111 (=15 oder 0x0F) schreibe, dann sind die ersten 4 pins low und die zweiten 4 pins high? und das sind die ports P0 bis P7 in der zeichnung oder?
    So ist es.

    Zitat Zitat von damaltor
    dann: wofür sind A1,A2,A3? die müssen immer gesetzt sein, sofern nicht mehrere slaves angeschlossen werden oder?
    Damit legt man die Adresse des I2C Chips fest. Durch unterschiedliche Adresse lassen sich theoretisch bis zu 8 I2C Chips an einem I2C Bus betreiben. Das entspricht den I2C Adressen 0x40..0x47.
    Man kann auch die Jumper und Pullup Widerstände R7..R9 weglassen, und die Pins 1..3 vom PCF8574 auf Masse legen. Dann wird der I2C Chip unter seiner Basisadresse 0x40 angesprochen.

    Zitat Zitat von damaltor
    und noch: wenn ich den jumper bei int0 setze, dann wird ein interrupt ausgelöst, wen WAS passiert? sehe ich das richtig, dass int0 solang wie der jumper gesetzt ist, über R3 mit vcc verbunden ist? wenn ja warum?
    Betreibt man I2C Chip im Input Mode, so löst eine Flankenänderung an einem der Eingangspins einen Interrupt aus. R3 ist ein Pullup für die Interrupt Leitung. INT ist ein open collector Ausgang.

    Zitat Zitat von damaltor
    welche zeichnung stimmt, die der platine oder die des schaltplans?
    Mit Ausnahme von dem doppelten R1 im Layout sollten beide Pläne übereinstimmen.

    Zitat Zitat von damaltor
    auf dem bild der platinenoberseite kommt R1 doppelt vor und R7 fehlt. vermute ich richtig, dass R7 unten links bei R8 und R9 hin müsste?
    richtig. Das ist noch ein Fehler im Layoutplan.

    Zitat Zitat von damaltor
    wie lese ich den aktuellen status der pins aus? also wie kann ich erkennen, ob an einem pin (von aussen, zB einem taster) spannung anliegt oder nicht?
    So würde ein Beispiel zum Lesen aussehen:
    Code:
      while(1)
      {        
        ret = i2c_start(Dev8574+I2C_READ);       // set device address and read mode
        if ( ret )
        {
          /* failed to issue start condition, possibly no device found */
          i2c_stop();
          StatusLED(RED);
        }
        else
        {
          /* issuing start condition ok, device accessible */
          val=i2c_read(0);                     // read value, only one Byte with nak
          i2c_stop();                             // set stop conditon = release bus
          PrintInt(val)                           // print out value
          StatusLED(GREEN);
        }
        Msleep(500);                            // wait a 1/2 second
    Zitat Zitat von damaltor
    was passiert, wenn ich den pin low geschaltet habe und dann zB mit einem taster spannung drauf leite? kurzschluss oder gar nichts?
    Ein Mischbetrieb Input und Output am gleichen I2C Chip sollte man vermeiden, sonst peng, puff! Es sei denn, man weiss was man tut (beim Schreiben auf die Eingangspins HIGH ausgeben, nicht LOW). Oder man macht die Schaltung entsprechend robust.

  6. #16
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    super, vielen dank. dann kann das alles ja nicht so schwer werden... =)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #17
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    ok, wenn ich einen baustein zum lesen nutzen will, dann schreibe ich auf alle ports ein HIGH und stelle danach um auf i2c_read, oder?

    reichen die 100 µA (steht weiter oben) zur dierekten ansteuerung einer LED? bestimmt nich wa...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  8. #18
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Hallo,

    wird ein bißchen zu wenig sein.
    Aber bei Einsatz einer LowCurrent-LED sollte ein PullUp-Widerstand von 1,5K funktionieren.

    Tido

  9. #19
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    also den port des I2C an die LED, und VCC über den Widerstand auch an die LED? oder wie meinst du das?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  10. #20
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Zitat Zitat von damaltor
    also den port des I2C an die LED, und VCC über den Widerstand auch an die LED? oder wie meinst du das?
    Ja, den PullUp von VCC an die Anode der LED und damit auch gleichzeitig an den Port des 8574. Dann wird bei Port=High die LED über den PullUp (1,2K; habe Uf der LED vergessen ) mit ca. 2,75mA betrieben. Die Kathode der LED natürlich nach Masse. Bei Port=Low zieht dieser die Anode der LED auf 0V, allerdings fließen dann ständig 3mA unsinnig über der PullUp nach Masse.

    MfG
    Tido

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress