Hallo, ich habe jetzt schon viel gegoogelt aber immer noch keine Antwort auf meine Frage bekommen. Gibt es einen Unterschied zwischen SPI und Microwire??? Wenn ja, welcher? Grund meiner Frage: Ich möchte über einen Microwire Interface Device (TP3465) einen Maussensor (ADNS6010) ansprechen, welcher nur über SPI kommunizieren kann. Vielen Dank, Florian
Hallo Florian, an dieser Frage habe ich auch lange herumgerätselt. Die Antwort fand ich hier im Forum: http://www.mikrocontroller.net/forum/read-1-269281.html Gruß Michael
Hallo Michael, vielen Dank für diesen Link. Ich hab immer nur unter SPI oder Microwire im Forum gesucht und bin so nie auf diesen Beitrag gekommen. Ich habe das zwar noch nicht ganz verstanden, bin mir aber jetzt sicher, dass ich meinen Maussensor mit dem MID ansprechen kann. Gruß, Florian
Michael Nagler wrote: > Hallo Florian, > an dieser Frage habe ich auch lange herumgerätselt. Die Antwort fand > ich hier im Forum: > > http://www.mikrocontroller.net/forum/read-1-269281.html Hallo!! Mir gibt das Thema derzeit auch Rätsel auf, aber der Artikel beantwortet meine Fragen leider nicht ganz. Allgemein bekannt: Microwire ist ein Subset von SPI (nach Motorola/Freescale) und entspricht dem Mode 0. SPI legt die Daten an der jeweils entgegengesetzten Flanke an als es liest. Das ist immer so. Egal welchen Mode ich konfiguriere. Auch in Mode 0: Lesen der Daten: steigende Flanke Anlegen der Daten: fallende Flanke Wenn Master und Slave das genauso machen ist alles ok. Problem: Laut National Application Note 452 1/92 macht Microwire aus Prozessorsicht folgendes: a.) SO will be shifted out upon the falling edges of SK (Clock) b.) SI will be shifted in upon the rising edges of SK passt also bestens zu SPI Mode 0. Nur wenn man sich jetzt ein beliebiges Microwire Slave Device anguckt (hier z.B. das serielle EEPROM AT93C86(A)), scheint es so, als ob dieses die Daten bei der steigenden Flanke sowohl ANLEGT als auch LIEST. Selbst in einem Orginal Datenblatt von National für das NM93C06A heisst es: "All commands, data in, and data out are shifted in/out on rising edge of SK clock" Ich frage mich: WARUM IST DAS SO? Und warum funktioniert das überhaupt? Kann eigentlich nur deshalb funktionieren, weil die alten Daten am Slave Device noch so lange anliegen, dass trotz gleichzeitigem Lesen durch den Master und Neusetzen durch den Slave noch korrekt gelesen werden kann. Atmel gibt bei den Microwire kompatiblem EEPROMs hier Maximalzeiten (!) von 250-500ns an. Was aber irgendwie auch keinen Sinn macht, denn es müsste ja eine Minimalzeit gewährleistet sein, innderhalb derer der Prozessor die Daten gelesen haben muss. Wo ist hier der Denkfehler? Viele Grüße, Klaus
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.