Hallo hilfsbereite mc-Gemeinde, bei meiner Recherche für die Ansteuerung von externen Bauteilen mittels AVR Controller (ATmega8) habe ich mich nun über die unterschiedlichen Schnittstellen belesen. Gibt es erfahrungsbedingt eine Empfehlung für eine Schnittstelle ala TWI zwar störanfällig, aber mit AVR einfacher zu betreiben als SPI, etc.? Oder fällt dieser Punkt unter "Geschmackssache"? Vielen Dank schonmal im Vorraus. Grüße Sascha
Das kommt vor allem auf die "externen Bauteile" an die du anschließen willst. Diese geben den Bus vor. Der Unterschied zwischen TWI(I2C) und SPI dürfte nach kurzem Studium der beiden auf der Hand liegen. SPI = einfach zu implementieren, weit verbreitet, braucht aber viele Leitungen bei vielen Slaves. I2C= komplexer zu Implementieren, lässt aber bis 128 Slaves an nur 2 Leitungen zu. gruß cyblord
Im Prinzip interessiert mich auch eine Antwort, wenn es kein "wozu" gibt. In meinem Fall war Anstoß für die Recherche, um die Auswahl für einen Digital-Analog-Wandler einzugrenzen. Vielen Dank schonmal an Cyblord.
:
Bearbeitet durch User
Ein AVR hat beides. Und das bestimmt nicht, weil eines besser ist. SPI ist schneller, I2C einfacher zu implementieren. Jeder hat seinen Anwendungsfall.
Walter Tarpan schrieb: > I2C einfacher zu implementieren. Bitte? Genau andersrum. Und warum soll SPI schneller sein? Nicht in jedem Fall. SPI kann Fullduplex und benötigt keine Start/Stop Bedingung, ja. Aber im reinen Durchsatz gibt sich das nicht viel. Kommt auf den Anwendungsfall an.
Ein AVR hat beides. Und das bestimmt nicht, weil eines besser ist. SPI ist schneller, I2C einfacher zu implementieren. Jeder hat seinen Anwendungsfall. [EDIT:] cyblord ---- schrieb: > I2C= komplexer zu Implementieren, Hihi, habe die gegenteilige Ansicht erst nachher gesehen. Vielleicht sollte ich ergängen: I2C auf der Leiterplatte/im Gerät einfacher zu implementieren, SPI dafür in der Software (was aber ab dem Zeitpunkt, wo man die Ansteuerroutinen einmal hat nebensächlich ist).
cyblord ---- schrieb: > Und warum soll SPI schneller sein? Im normalfall hat ein I2c Device 400 KHz, während SPI im 2-stelligen MHz Bereich liegt. Also Faktor 10 mindestens.
PittyJ schrieb: > cyblord ---- schrieb: >> Und warum soll SPI schneller sein? > > Im normalfall hat ein I2c Device 400 KHz, während SPI im 2-stelligen MHz > Bereich liegt. Also Faktor 10 mindestens. Liegt aber nicht am Bus, sondern an den Geräten. Und ja, ich gehe von höherer Komplexität in der SW aus. Weniger Leitungen hatte ich ja schon angesprochen. Im Layout daher einfacher.
Der DAC soll eine lineare Spannung ausgeben, mit der ein Stellglied für ein Ventil angesteuert werden kann. Es handelt sich somit nicht um eine Anwendung die möglichst genau und auch nicht besonders schnell seien muss.
cyblord ---- schrieb: > Und warum soll SPI schneller sein? Naja, man kann grob nach Geschwindigkeit sortiert sagen: One Wire Bus I2C UART/USART SPI Und nach sinnvoller Leitungslänge sortiert: SPI I2C One Wire Bus UART/USART und sich danach das für den jeweiligen Zweck passende nach Aufwand und Nutzen aussuchen. Unterschiede in der Geschwindigkeit liegen vor allem an: Notwendige Pausenzeiten (One Wire/UART) Duplex (SPI,UART,USART vs. One Wire Bus, I2C) und natürlich der Taktrate I2C, One Wire, UART: kHz, USART, SPI MHz. Das gilt nicht in allen Fällen, ist aber eine sinnvolle Schnellabschätzung.
Wenn nur ein Slave angeschlossen werden soll, und es nicht auf jeden Pin ankommt, ist hier eindeutig SPI zu bevorzugen. Dafür wird es wohl auch mehr Auswahl an DACs geben.
Sascha V. schrieb: > Der DAC soll eine lineare Spannung ausgeben, mit der ein Stellglied für > ein Ventil angesteuert werden kann Dann nimm einfach das, wofür ein DAC gut erhältlich ist und Deine Kabellänge ausreicht. Bei einem Ventil ist jeder Bus schnell genug. Je nach Umgebung könnte sich auch CAN anbieten (lange Leitung).
SPI ist auch noch beim gleichen Takt schneller als TWI weil der Overhead wegfällt. Ich benutze sehr gerne die DAC7512 von TI, das ist ein einzelner 12-Bit DAC im SOT23-6 Gehäuse. Dem schickt man zwei Bytes und fertig. An dem mag ich auch die drei Power-Down Modes mit 1k gegen GND, 100k gegen GND oder hoch-ohmig am Ausgang.
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.