Hey Leute, es ergab sich mal eine Frage (mal wieder werden manche sagen). Ich wollte mal fragen, gibt es Porterweiterungsbausteine (was für ein Wort), die man per I2C Bus verbindet aber ähnlich wie die Ports im µC anspricht? Also Config Portd.0 = Output ... Fand in meiner Sammelkiste einen PCF8574P. Michael
Der PCF8574 hat die Portstruktur vom 8051 geerbt, ist also immer Bidirektional nutzbar (hat aber nur Pull-Up Widerstand und Transostor gegen Masse). Der PCA9554 hat dagegen Port-Direction-Register und echte Push-Pull-Treiber. Siehe http://www.nxp.com/documents/data_sheet/PCA9554_9554A.pdf Für die Konfiguration per Software musst Du Dir natürlich Deine passende Funktion selber schreiben. So wie angegeben wird es nicht gehen, weil da ja I2C-Routinen dazwischen hängen. tschuessle Bernhard
Das geht so nicht. Wenn Du jedes Bit sofort über I2C verschicken willst, hängt Deine CPU ständig nur im I2C-Traffic und wird schnarchlahm. Man legt sich daher Schattenports im SRAM an. Zu Anfang werden alle Eingänge in diese Schattenports eingelesen. Dann macht man die logische Verarbeitung. Und zum Schluß werden alle Ausgänge mit den Schattenports geladen. Damit verhindert man auch, daß sich während der Verarbeitung Eingänge ändern und damit der Ablauf inkonsistent wird, wenn ein Eingang an mehreren Stellen ausgewertet werden muß. Oder daß Glitches an den Ausgängen entstehen. Peter
Ein richtiger Vorteil ergibt sich durch I2C nicht, wie Du hier schon lesen konntest. Ein einfaches Schieberegister braucht nur eine Leitung mehr (notfalls gehen sogar 2 Leitungen) und ist wesentlich weniger umständlich zu programmieren. Falls Du trotzdem mal mit BASCOM etwas damit machen möchtest: http://www.avr-praxis.de/forum/showthread.php?2130-I2C-LCD-%28-auch-Arduino-%29-mit-PCF8574-OHNE-LIB-betreiben&p=20532&viewfull=1#post20532
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.