
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> > > Hallo, > > > Ich habe 6Stk. PFC8574T an Port9 und Port10 angeschlossen und nutze die erweiterten BytePorts im Quellcode. 3Stk PCF8574 sind getriebene Ausgänge mit ULN2803 und funktionieren. > > > Die anderen 3 PCF8574 sollten Eingänge sein. Ich lese aber immer nur eine 0 ein, egal welcher Pegel anliegt. Da ich alle 6Stk PCF8574 beschreiben aber nicht lesen kann muß die Adressierung und die Schaltung in Ordnung sein. Ich habe auch schon auf erweiterten BytePorts verzichtet und eine I2C Implementation in BASIC benutzt. Das Ergebnis ist immer das gleiche: Schreiben ja lesen nein! Ich habe auch schon sämtliche Anschlußwarianten mit und ohne Pull-Up, Pull-Down ausprobiert. > > > Hatte jemand schon mal das Problem? Wie löst man es? > > > Danke für Eure Hilfe. > > > Gruß Stefan > > > > Hallo! > > > > Der PCF hat kein Datenrichtungsregister, d.h. du musst die Ports im Programm auf High schalten und dann kannst du sie nach unten ziehen. > > Umgekehrt gehts leider nicht, hatte das selbe Problem. > > > > Grüße, > > Alex > > So einfach ist es offenbar nicht. Ich hatte vergessen zu erwähnen, daß ich genau das entsprechende Beispiel aus der Basic Workbanch++ geladen habe. > Wenn ich ein beliebiges Byte auf irgend einen PCF schreibe, kann ich die entsprechenden Pegel am Ausgang messen. Lese ich diesen PCF danach aus, kommt eine 0 zurück. Übrigens die Ports am PCF sind unbeschaltet. Es ist zum verzweifeln. Sowas ist mir noch nie passiert. > > > Folgendes Programm: > > define SDA Port[9] > define SCL Port[10] > define InPort1 byteport[6]' PCF8574 (keinTypA) auf Adresse 3 A0=1; A1=1; A2=0) > define test byte[1] > > SDA=on > SCL=on > InPort1 = 255 > > > Test=InPort1 > print Test > > 'Es sollte doch eigentlich eine 255 zurückkommen? > 'Es kommt aber eine 0. > > InPort1=128 > Test=InPort1 > print Test > > 'Es sollte doch eigentlich eine 128 zurückkommen? > 'Es kommt aber wieder eine 0. > > Kann es sein, daß sich 6Stk I2C Chips in einem Bus nicht vertragen? (Kann eigentlich nicht sein, da ich alle PCF beschreiben kann.) Ich setze PCF8574T ein, also im SMD-Gehäuse. Sind die vielleicht zu schnell oder zu langsam? Einer der PCF ist im DIL18-Gehäuse und TypA aber auch wenn ich den herrausnehme ändert sich am verhalten nichts. Ich habe im Programmbeispiel oben ein falsches BytePort der Adresse 3 zugeordnet. Natürlich hat Adresse 3 das BytePort[6]. Ist aber nach einem test für die Fehlfunktion unerheblich.Ich kann keinen PCF einlesen. Was ist da los? Bitte um Hilfe Gruß Stefan |
| Antwort schreiben |