Software-Slave für I2C-Bus
Kennt jemand eine Softwarelösung für einen I2C-Bus-Anschluß ?
Slave würde ausreichen.
Geht das überhaupt mit "normalen" Ports? Hier sehe ich Probleme mit den Taktraten und dem "gleichzeitigen" Lesen und Schreiben der Ports.
Den bestehenden Hardware-seitig unterstützten I2C-Bus möchte ich natürlich nicht verwenden.
Hintergrund: Die üblichen Controller haben lediglich einen I2C-Anschluß. Wenn man zwei realisiert, kann man "beliebige" Controller-Netzwerke zusammenstellen.
Re: Software-Slave für I2C-Bus
Zitat:
Zitat von ZellRobi
Geht das überhaupt mit "normalen" Ports? Hier sehe ich Probleme mit den Taktraten und dem "gleichzeitigen" Lesen und Schreiben der Ports.
Ja, das geht auch mit "normalen" Ports, wobei man möglichst den Pin-Change Interrupt verwenden sollte. Gleichzeitig lesen und schreiben muss man nicht; d. Taktleitung (SCL) wird ja vom Master bereitgestellt und SDA wird entweder gelesen (Adresse oder SLA+W) ODER beschrieben (SLA+R) - vom Slave aus betrachtet. Schau mal in ein Atmel-Datenblatt, da ist die Kommunikation ziemlich gut beschrieben.
Mit der Fast-Mode (400 kHz) könntest du massive Geschwindigkeitsprobleme bekommen, zumindest ist mir dafür keine Software-TWI bekannt. 100 kHz sollten gehen.
Wie schnell soll es denn in der konkreten Anwendung sein?