Hi, Also mal folgende Frage: Was ist eigentlich der Unterschied zwischen einem I²C Bus und einem SPI Bus ?? (SPI = TWI richtig?)
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...
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??
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
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?
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
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 ...
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
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
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
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
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
"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
@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
"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
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.