- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: RP6 M32 und noch ein PCF8574P?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251

    RP6 M32 und noch ein PCF8574P?

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    habe mir bei Reichelt einen PCF8574P gekauft um mehr freie ports zu haben!
    Okay, hab noch ein paar Fragen:

    1. Kann man noch einen PCF8574P zusätzlich zur der M32?
    2. Wie schließe ich den an?
    3. Wie viel Ports habe ich dann mehr?
    4. Ich stelle ich dann die Ports auf High bzw. Low?
    5. Ist die max. mA stärke auch 20mA?
    6. Sind auch ADC´s dabei?

    Da ich so gut wie alle IO´s schon in gebrauch habe, wäre das sehr gut, weil ich noch was vorhabe.

    mfG
    Philip

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    1. ja
    2. siehe Datenblatt zum IC, Referenzschaltungen
    3. siehe Datenblatt zum IC, 8
    4. siehe Datenblatt zum IC, Referenzprogramme
    5. siehe Datenblatt zum IC, Beschreibung
    6. nein*

    Du kannst 8 PCF8574P und 8 PCF8574A ins System hängen.............. und hast dann 128 I/O Ports. Das IC wird über den I2C Bus angesteuert. Über SoftwareI2C und SPI kannst du noch mehr anschließen wenn es mit den 128 Leitungen etwas knapp werden sollte *rolleyes. Dafür gibts aber auch extra ICs aus der PCF Reihe.

    siehe Datenblatt zum IC http://www.nxp.com/documents/data_sheet/PCF8574.pdf

    Und der passende ADC/DAC
    http://www.nxp.com/documents/data_sheet/PCF8591.pdf

    LG Rolf
    Geändert von RolfD (13.03.2011 um 15:57 Uhr)
    Sind Sie auch ambivalent?

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Hi schon mal danke für die schnelle antwort!

    Könntes du Nr. 2 und 4 noch mal für TOTALE Anfänger erklären?

    mfG
    Philip

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Hi,
    Zu 2. dazu gibts massenhaft Docu hier, vom Prinzip her an Versorgung VDD und GND sowie dem I2C anschließen, also SDA und SCL Bus je an den gleichen Pin am Bot, Adressen einstellen, das wars. Beim P-Typ mit Ax auf GND ist die Adresse 0x40.
    Zu 4. Programme zum ansteuern eines PCF findest Du wenn du z.B. hier im Forum suchst. Insbesondere sind diverse LCDs darüber angesteuert.
    Ich steuere meins z.B. so an:
    I2CTWI_transmit2Bytes(pcf8574_address_LCD, (lcdd|(1<<E_bit)),lcdd); //Daten anlegen und übernehmen
    //I2CTWI_transmitByte(pcf8574_address_LCD, (lcdd|(1<<E_bit))); //Daten anlegen
    //I2CTWI_transmitByte(pcf8574_address_LCD, (lcdd)); //Daten übernehmen
    Oben der Befehl um mit 2 Byte Signale für das LCD zu erzeugen, unten auskommentiert das gleiche aufgeteilt in 2 Befehlen.

    Das wars schon.
    LG Rolf
    Sind Sie auch ambivalent?

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Hallo habe alles richtig angeschloßen und getestet (mit der base und das beispiel programm, musste nur adresse auf 40stellen!) aber wie mache ich das mit der m32 und wie mache ich nur einen port p0 oder p1 auf high bzw. Low?

    mfG
    Philip

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Mit den "alten" Treibern gehst Du so vor:
    Lösche in der Base das Programm und compilier es für die M32 (includes ändern). Du brauchst an der Hardware nichts zu ändern. Der PCF lässt sich auch von dort steuern da er am Bus hängt an dem auch die base sitzt. (I2C)

    Problem: Du wirst den PCF nicht von der Base UND vom M32 aus steuern können.. oder wenn, dann nicht stabil .. weil das 2 Mastercontroller auf dem Bus bedeuten würde. (Daher auch das Programm auf der Base löschen und mit einem Dummy ohne I2C Aktivität ersetzen, die Base merkt wenn kein Programm geladen ist) Das leisten die "alten" Treiber nicht. Alternative 1: Du machst auf der Base ein Slave und auf dem M32 den Master bzw. vice versa. Alternative 2: Du wartest bis ich die I2C Treiber umgebaut und fertig habe.
    LG Rolf
    Geändert von RolfD (13.03.2011 um 21:17 Uhr)
    Sind Sie auch ambivalent?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Die base ist jetzt wieder als slave und die M32 als Master.
    Wie mache ich z.B. das eine Led an p0 blinkt?

    Nehme Nummer 2! Wie lang wird es ca. Dauer?


    mfG
    Philip
    Geändert von AsuroPhilip (13.03.2011 um 21:13 Uhr)

  8. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Genau so wie vorher auf der base.. bzw. ich es gesagt habe

    Zitat Zitat von RolfD Beitrag anzeigen
    Mit den "alten" Treibern gehst Du so vor:
    Lösche in der Base das Programm und compilier es für die M32 (includes ändern). Du brauchst an der Hardware nichts zu ändern. Der PCF lässt sich auch von dort steuern da er am Bus hängt an dem auch die base sitzt. (I2C)
    LG Rolf
    Sind Sie auch ambivalent?

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Also soll ich ein leeres Programm auf die base laden?
    Dann kann ich mit der M32 gar nicht mehr fahren.
    Wie lautet der befehl um ein Port (vom PCF) auf high zu setzen, hab ich im Datenblatt nicht gefunden.

    mfG
    Philip

  10. #10
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Richtig... Les noch mal genau ab Post 4... gründlich... !

    Du sollst ein Programm auf die _Base_ laden was NICHT als Master auf den I2C läuft... also z.B. das I2C-Slave Programm oder irgend eine Demo _OHNE_ das I2C Aktivität. Zum testen und lernen ist das zunächst ok.
    Da der M32 nun als Master den PCF ansteuern soll... wie, hab ich oben beschrieben ... brauchst Du nur in deinem Testprogramm mit den oben beschriebenen Funktionen den PCF ansteuern (so wie Du es glaube ich schon von der Base aus gemacht hast).
    Damit müsste die M32 dann den PCF steuern wie vorher die Base... die Base stellt sich dann bezüglich I2C "doof".

    So.. und wenn alles zusammen laufen soll, gilt meine Ansage aus Post 6, Abschnitt Problem:

    Und noch mal grundsätzlich: Da der PCF ein I2C Baustein ist, benutzt du auch I2C Befehle um ihn anzusprechen. Diese stehen in der TWI Masterlib. Es gibt in diesem Forum auch eine sehr schöne Forensuche... und erstklassige Artikel in RN-Wissen. Wenn Dir Wissen fehlt, musst Du es Dir eben erst aneignen. Es reicht nicht wenn ich dir das hier vorsinge denn Du bist nicht in der Lage Fehler zu suchen. Und ich kann nun mal nicht hell sehen.

    Und wenn Du dich doch schlau machen willst, empfehle ich dir auch gleich:
    https://www.roboternetz.de/community...-RP6Lib-Bugfix
    sowie alle I2C Artikel aus RN-Wissen. Für ein einfachen PCF brauchst du den geänderten Treiber (der z.Z. eh noch nicht 100%ig geht) jedoch nicht. Zum lernen reicht erst mal die vorhandene RP6Lib.

    LG Rolf
    Geändert von RolfD (13.03.2011 um 22:33 Uhr)
    Sind Sie auch ambivalent?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen