PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Portexpander PCF8574 Problem



rXenon
05.07.2007, 17:17
Hallo!

Ich wollte gerade mal den PCF8574 Portexpander testen. Dazu verwende ich die I2C Library von Peter Fleury. I2C müsste auf der Controllerseite auch stimmen, da zB mein SRF10 problemlos erkannt wird. Aber rufe ich das i2c_start mit der Adresse des PCF auf, so passiert nichts weiter. Der Controller bearbeitet auch die Befehle danach nicht - befindet sich demnach in einer Endlosschleife.
Das hier ist das aktuelle Testprogramm:
uint16_t i;

i2c_init();

lcd_init(LCD_DISP_ON);
lcd_clrscr();

_delay_ms(100);

lcd_puts("status:");
i2c_start(0x70);
lcd_puts('connected');
i2c_stop();
lcd_puts('stopped');
Die Adresse müsste 0x70 sein, da ich an meinem PCF 8574 AP A0-A2 auf Masse gelegt habe. Und der PCF ist auch nicht kaputt, da ich das ganze schon mit 2 neuen getestet habe.
Hat jemand vtl. eine Idee?

MfG rXenon

linux_80
05.07.2007, 18:10
Hallo,

mit welcher Busgeschwindigkeit sprichst Du den PCF an ?
Der kann nur bis 100kHz, der SRF kann bis 400kHz !

Yossarian
05.07.2007, 18:26
Hallo
Meiner Meinung nach hat der 8574 Adresse 4xh, der 8574A 7xh.

Mit freundlichen Grüßen
Benno

rXenon
05.07.2007, 18:27
Busgeschwindigkeit beträgt 50kHz.

rXenon
05.07.2007, 18:29
Ja wie ich gesagt habe, sollte die Adresse 0x70 sein oder nach deiner Schreibweise 70h. Zu Testzwecken habe ich es auch schon mit 0x40 probiert. Aber leider kein Erfolg.

Yossarian
05.07.2007, 18:45
Hallo
Das wären aber die Schreibadressen. Zum Lesen müßtest Du die 71h ansprechen.

Mit freundlichen Grüßen
Benno

rXenon
05.07.2007, 18:49
Aber im Prinzip ist das doch erstmal egal oder? Schließlich geht es erstmal nur darum, dass i2c_start erfolgreich aufzurufen. Und das müsste sowohl mit 70 als auch 71 funktionieren.

SeaLion
05.07.2007, 20:42
hast du ein Oszi und kannst dir ansehen, ob der PCF auf seine Adresse reagiert?

rXenon
05.07.2007, 21:53
Ne, leider nicht.

rXenon
07.07.2007, 15:13
Oh man! Habe endlich den Fehler gefunden:
Immer wenn der SRF10 auch am Bus hing, funktionierte alles einwandfrei! Also müsste es an einem Pullup liegen. Jedoch ist bereits ein 10k Ohm Pullup am AVR angeschlossen, deshalb habe ich daran nicht mehr gedacht. Naja wenn ich noch einen kleinen Pullup dazuschalte funktioniert alles wunderbar.

Trotzdem Dankeschön für die vielen Bemühungen, die ja schon zum Scheitern verurteilt waren aufgrund des blöden Fehlers ;-)

MfG rXenon