
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Hallo |_ Team > > Du, oder Ihr... seid wirklich stark ! > Ich danke euch dass Ihr euch die Mühe gegeben habt die Schaltung nachzubauen. > Wer seid Ihr denn um so einen Service anzubieten ? > > An einen defekten PCF8574 habe ich auch gedacht und habe deswegen mit andere neue aus der Verpackung versucht...ohne erfolg. > > Ich habe dann noch ein paar Tage daran gearbeitet und plötzlich laufts... aber nicht so wie es im datasheet steht !?! > > Ich verwende PCF8574N von Texas Instruments > > Um es zum laufen zu bringen muss ich eingang=off statt eingang=on schreiben und Pin Nr 4 vom PCF muss ich nicht nach GND, sondern nach 5V ziehen... dann laufts aber ich verstehe nicht warum... > > Im Datasheet von Texas Instruments Seite 1 steht folgendes: "The I/Os should be high before being used as inputs" Es steht übrigens genau so in meinen eigenen Notizen die ich mir das letztemal gemacht habe als ich schon eine solche Schaltung gebaut habe. > > Bei mir ist es jetzt genau umgekehrt: ich muss es zuerst softwaremässig low legen und dann den pin4 gegen 5V ziehen um einen Input zu erfassen. Ich versteh das nicht und es gefà llt mir auch nicht es anders zu machen als es die Spezifikationen vorscheiben. > > Hat jemand dafür eine Erklärung ? > > > Gruss > > Nicolas > > > > Wir haben mal die Schaltung hier nachgebaut und das Programm: > > > > > > > Hier ist mein Testprogramm: > > > > > > > > > > define SDA as port [9] > > > > > define SCL as port [10] > > > > > define led as port [1] > > > > > define eingang as port [17] > > > > > > > > > > LCD.init > > > > > LCD.off > > > > > > > > > > SDA=on > > > > > SCL=on > > > > > eingang=on > > > > > > > > > > > > > > > #loop > > > > > led=eingang > > > > > goto loop > > > > ... funktioniert (bei uns) ohne Änderungen und auf Anhieb! > > > > Komisch. > > > > Vielleicht hilft dies weiter, unsere Testumgebung: > > > > > > Hardware: > > > > - Applicatiionboard I 2.0 > > - CC-I-2.0 (OS-Version 2.07) > > - PCF8574P (Philips) > > > > > > Kompiler: Basic++ Version 0326 > > > > 51 Bytes Token, (bei Codeoptimierung Systemobjekte "AUS") > > bzw. > > 59 Bytes Token, (bei Codeoptimierung Systemobjekte "EIN") > > > > (Beide Kompilate funktionieren) > > > > > > Das Kompilat (ohne Codeoptimerung): > > > > CCTRL-BASIC > > 51 > > 3 0 7 31 35 79 78 95 76 67 68 35 0 31 35 73 78 73 84 35 0 31 35 79 70 70 35 0 20 255 255 13 8 20 255 255 13 9 20 255 255 13 16 10 16 13 0 3 0 47 255 > > 0 > > > > > > Vielleicht ist ja der PCF8574 kaputt? > > > > > > > > > > > > > Danke für den heissen Tipp > > > > > > Ich habe es mit viel Hoffnung ausprobiert... leider funktionniert es nicht. > > > > > > Port 17 hängt an den I2C Bus... ich bin nicht sicher dass es über einen Datenrichtungsregister verfügt, sowie z.B. port 1 > > > > > > > > > Ich vermute einen Softwaregag... aber ich kann es nicht erkennen. > > > Die Elektronik scheint in ordnung zu sein: mit led=on / Led=off kann ich es ein/ausschalten, und mit eingang=on/off kann ich pin 4 vom pcf8574 auf High/low schalten. > > > Nur auslesen schaff ich nicht. > > > > > > > > > Hätte jemand noch einen Tipp ? > > > > > > Nicolas > > > > > > > > > > > > > Hallo zurück - hier im Forum :-) > > > > > > > > Vermutlich ist eingang nach dem Schreibzugriff in Zeile 11 noch weiterhin als Ausgabeport aktiv. > > > > > > > > Mittels DEACT kann ein als Ausgabeport gesetzter Pin wieder auf Eingabe umgeschaltet werden. > > > > > > > > > > > > define SDA as port [9] > > > > define SCL as port [10] > > > > define led as port [1] > > > > define eingang as port [17] > > > > > > > > LCD.init > > > > LCD.off > > > > > > > > SDA=on > > > > SCL=on > > > > eingang=on 'Port 17 wurde durch den Schreibzugriff automatisch Ausgabeport > > > > > > > > <b>DEACT eingang</b> ' ...konfiguriert den Port 17 wieder als Eingabeport > > > > > > > > #loop > > > > led=eingang > > > > goto loop > > > > > > > > > > > > Wir konnten das jetzt gerade nicht testen - funktioniert es damit? > > > > > > > > das |_ Team > > > > > > > > > > > > > > > > > Hallo, gruss an alle, ich bin seit jahren nicht mehr da gewesen...meinen Passwort habe ich auch vergessen... > > > > > > > > > > > > > > > Seit drei Tagen versuche ich ohne Erfolg den Port 17 (PCF 8574 auf den I2C Bus) als Eingang zu nutzen... was ich früher schon geschafft habe. Was mach ich denn falsch ?!? > > > > > > > > > > > > > > > Hier ist meine Schaltung: > > > > > > > > > > [URL=http://www.hostingpics.net/viewer.php?id=870290Schaltung.jpg][IMG]http://img11.hostingpics.net/pics/870290Schaltung.jpg[/IMG][/URL] > > > > > > > > > > Hier ist mein Testprogramm: > > > > > > > > > > define SDA as port [9] > > > > > define SCL as port [10] > > > > > define led as port [1] > > > > > define eingang as port [17] > > > > > > > > > > LCD.init > > > > > LCD.off > > > > > > > > > > SDA=on > > > > > SCL=on > > > > > eingang=on > > > > > > > > > > > > > > > #loop > > > > > led=eingang > > > > > goto loop > > > > > > > > > > > > > > > > > > > > > > > > > Die Led an port 1 sollte den Zustand des Port 17 anzeigen... macht es aber nicht > > > > > Die Messung bestätigt dass der Port 17 (pin4 auf pcf8574) nach Befehl "eingang=on" auf high geht. Der Portexpander funktionniert also einwandfrei als Ausgang. > > > > > Die Portabfrage als Eingang liefert aber immer nur einen low, unabhängig davon ob pin 4 vom pcf8574 (port17) auf low oder auf high gezogen wird ! > > > > > > > > > > Ich versteh das nicht. > > > > > > > > > > Stimmt da etwas mit die Softwareabfrage nicht ? > > > > > > > > > > > > > > > Wer könnte mir bitte helfen ? > > > > > > > > > > > > > > > Gruss > > > > > > > > > > Nicolas Hallo, in den Begleitinformationen zur Unit 2.0 und der Verwendung des PCF 8574 als externe Ports ist die Erklärung nachzulesen: "Port als Eingang: Ein PCF 8574 Port ist eigentlich immer ein Ausgang. Allerdings kann man den Ausgangs-Zustand von jedem der 8 Ports lesen. Ist der Port HI geschaltet, so ist seine Ausgangsspannung 5V. Diese Spannung ist aber hochohmig, sodass bereits geringe Lasten am Port diese Spannung deutlich reduzieren. Um beim Lesen des Ports als HI erkannt zu werden muss diese Spannung mindestens 3,5V betragen. PORT LO Ist ein Ausgang des PCF 8574 LO geschaltet, so wird er auch immer als LO gelesen. Selbst wenn der Ausgang mit einem Widerstand (einem PULLUP) an 5V angeschlossen ist. Das genügt nicht, um die Spannung am Port nennenswert über 0V zu bekommen, wie es notwendig ist, um ein HI zu lesen. PORT HI Ist ein Ausgang des PCF8574 HI geschaltet, bedeutet das, der PORT ist intern mit einer 100uA Stromquelle verbunden. Das ist in etwa so, als würde der Ausgang mit einem 50K Widerstand gegen +5V gezogen. Wird der Port jetzt gelesen, so wird er tatschlich als log. HI gelesen. Wird der Port nun mit einem Schalter nach GND gezogen, geht natürlich die Spannung an diesem Port gegen 0V und der Port wird dann auch als LO gelesen. Sie sehen, um einen PCF8574 als Eingangs-Port zu verwenden, muss der Ausgang zuerst HI geschaltet werden." Freundliche Grüße Norbert |
| Antwort schreiben |