www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI - Microwire


Autor: Florian Sassanelli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael Nagler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Florian Sassanelli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Klaus W. (Firma: privat) (texmex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.