Gast
#138810
Hi, Also mal folgende Frage: Was ist eigentlich der Unterschied zwischen einem I²C Bus und einem SPI Bus ?? (SPI = TWI richtig?)
|
Anzeige
|
Unterschied I²C - SPI
Gast
#138810
Hi, Also mal folgende Frage: Was ist eigentlich der Unterschied zwischen einem I²C Bus und einem SPI Bus ?? (SPI = TWI richtig?)
Gast
#138811
I²C ist bidirektional und hat 2 Leitungen: Datenleitung und Clock-Leitung SPI besitzt midestens 4 Leitungen: MasterOut, SlaveOut, Clock und SlaveSelect. Pro Slave eine Select-Leitung...
Gast
#138812
aha .... ich nehm mal an über SPI können nur AVR´s verbunden werden die auch dafür geeignet sind und über I²C können dann so ziemlich alle verbunden werden??
Gast
#138813
I2C und TWI (Two Wire Interface) ist das selbe, hat aber wegen irgend welchen rechtlichen Geschichten des Entwicklers (Philips?) unterschiedliche Namen. der große Unterschied zwischen SPI und I2C ist: auf der SPI-Schnittstelle hast du einen Dateneingang MISO, einen Datenausgang MOSI und einen Takt SCK. Beim I2C ist die Datenleitung bidirektional (SDA), Taktleitung (SCL) ist ebenfalls vorhanden. Das heißt, der Sender und der Empfänger benutzen die gleiche Leitung um Daten zu senden und zu empfangen. SPI ist (ich glaube) etwas schneller als I2C, dafür braucht man eine Leitung mehr. MW
Gast
#138814
ok, das ist schonmal klar. nur frag ich mich trotzdem: ein 8535 hat SPI aber kein I²C - aber dennoch kann ich softwaremäßig beim 8535 ein I²C proggen - warum?
Gast
#138815
Warum nicht? Wenn die entsprechende Hardware nicht zur Verfügung steht, kann man sowohl I2C als auch SPI per Software nachbilden. Aber das ist eine entsprechend zeitaufwendige Sache, während der Controller mit Hardware SPI oder I2C nur einige Befehle zur Initialisierung braucht und dann werden Daten in ein Register geschrieben. Dieses ganze Sende- und Empfangstiming nimmt einen der Controller ab. Normalerweise meldet er sich per Interrupt zurück (wenn so initialisiert), wenn Daten gelesen oder geschrieben wurden. Es ist a) bequemer und b) kann der Controller während der zeit andere Sachen machen. MW
Gast
#138816
ist es eigentlich überhaupt möglich gewisse sachen die´s hardwaremäßig nicht gibt eben softwaremäßig zu lösen? ich mein mir fällt da ganz spontan gleich die entprellung der taster ein ...
Gast
#138817
Man kann sehr viel in Software loesen. Ist dann halt oft langsamer, oder beansprucht Rechenzeit im Prozessor. Es gibt aber auch Sachen die kann man nicht mit Software allein erschlagen. Dazu gehöert z.B die Erzeugung von echten Zufallszahlen. Olaf
Gast
#138818
Hallo, ich muss mich erstmal entschuldigen, dass ich hier in deinem Thread noch eine Frage stelle! Aber wenn es schon mal um das SPI geht denk ich mir spar ich nen neuen Thread. Ich nutze das SPI zum Programmieren über ISP. Kann ich dann die Pins (MOSI, MISO, SCK und SS) als I/O Ein- bzw. Ausgänge beschalten? mfg, Andi
Gast
#138819
Ja kannst Du. Du solltest nur darauf achten, dass wärend des Programmierens die Logik, die am Spi hängt nicht verrückt spielen kann. Am besten MOSI, MISO, SCK über einen 4053 entkoppeln. Gruß Jörg
Gast
#138820
Beim ATMEGA8515 liegt die SPI an PORTB. Erst, wenn die SPI initialisiert wird, bekommen die Portpins die entsprechende Funktionen, egal wie der Port vorher definiert wurde. Ohne SPI-Funktion stehen diese Pins ganz normal als Ein- oder Ausgang zur Verfügung. Aber, eine entsprechende Initialisierung (SPI, TWI, RxD, TxD,...) überschreibt bzw. setzt die Portpins auf die jeweilige Funktion. Wenn z. B. die UART initialisiert wurde, kannst du auf dem RxD-Eingang natürlich noch den Pull Up einschalten. MW
Gast
#138821
Hallo weiss jemand wo man ein interface für de pc kriegt, der den spi-bus versteht? entweder extren an die usb oder als pci-karte oder was auch immer. hab einfach keine lust den bus selber zu implementieren... danke für die infos und noch einen schönen tag jörg eugster
Gast
#138822
"ist es eigentlich überhaupt möglich gewisse sachen die´s hardwaremäßig nicht gibt eben softwaremäßig zu lösen?" Das ist ja gerade der Witz daran ! Deshalb wurden sie erfunden. Mann braucht also nicht mehr unterschiedliche Hardware zusammen zu löten, sondern nur unterschiedliche Programme reinzuladen, um unterschiedliche Aufgaben zu lösen. "ich mein mir fällt da ganz spontan gleich die entprellung der taster ein ..." Das ist sogar eine der Lieblingssachen eines µC, macht er so ganz nebenbei. Und bei einer Matrix gehts eh nur in Software. Peter
Gast
#138823
Danke für die schnellen Antworten! So macht das Spaß! :-)
Gast
#138824
@jörg eugster in diesem Beitrag steht was über einen SPI-RS232 Wandler http://www.mikrocontroller.net/forum/read-1-107863.html#107863 Gruß Jörg
Gast
#138825
"Und bei einer Matrix gehts eh nur in Software." Das ist nicht wahr. Die Zeilen kann man mit einem 4017 bedienen, eine Aktion an den Spalten (gedrückte Taste) sperrt den Clock des 4017. In dem Moment kann ich Zeilen und Spalten auslesen und reagieren. Ich habe solche Sachen in den 80'ern gebaut. Es funktioniert wirklich. Zwar ist einiges an Hardware nötig, aber möglich ist es. MW Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|