mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bit 0 in datenstrom finden


Autor: pittbull_nt@yahoo.com (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo leute,

ich sniffe auf einer spi-ähnlichen schnittstelle den datenstrom und
speichere diesen auf eine compactflash karte, den ich dann später auf
einem pc auswerten will.
es gibt keine /SS leitung und der master kann willkürlich clocken.
einen möglichkeit festzustellen, wann der master mit dem datenaustausch
beginnt, habe ich nicht.

mein problem nun: ich möchte das erste bit der gespeicherten daten
nicht manuell suchen - wie finde ich es? das einzige was ich weiss ist,
wie lang die datenworte sind, dass das msb zuerst geschickt wird   und
das es normale binärdaten sind. gibt es dafür irgendwelche
statistischen verfahren?

danke im voraus,
 pittbull

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Master wird doch nach 8 oder 16 Clocks eine Pause machen, die
könntest Du auswerten.

Oder wie machst Du es manulell.
Hast Du ein Oszillogramm von ein paar Bytes? Dann als Dateianhang hier
posten.

Autor: pittbull_nt@yahoo.com (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Der Master wird doch nach 8 oder 16 Clocks eine Pause machen, die
>> könntest Du auswerten.

der master muss alle 24 clocks eine pause von mindestens 16µs machen.
ob diese pause länger ist, ist egal. auch die clockimpulse können fast
beliebig lang sein (ich glaube mindestens 1µs). mein problem ist, dass
es verschiede master geben kann und jeder anders clockt. wenn die die
mindestanforderungen einhalten klappt es. mit dem messen von zeiten
komme ich da nicht weiter.

>> Oder wie machst Du es manulell.

ich schau mir die werte in binärdarstellung an, dann verschiebe ich
alles um ein bit nach rechts, bis die werte möglichst klein sind und
das unterste bit die meisten änderungen zeigt. dann stimmt es meistens.
ich frage mich nur ob es auch einfacher/sicherer geht.

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind vielleicht clock und data high während der pause? oder beginnt
vielleicht der clock mit nem low, während data noch high ist? (ähnlich
I2C)

Autor: pittbull_nt@yahoo.com (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> sind vielleicht clock und data high während der pause? oder beginnt
>> vielleicht der clock mit nem low, während data noch high ist?
ähnlich
>> I2C)

stimmt! die übertragung startet immer mit clock=high und data=high,
dann geht clock runter und beim ersten wechel von clock nach high liegt
das erste datenbit an. während der pause ist clock immer high und data
immer low. dann wechselt data nach high und es geht wieder von vorne
los.

kann man da irgendwie drauf triggern ohne zeitliche abhängigkeiten
berücksichtigen zu müssen?

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.