Forum: Mikrocontroller und Digitale Elektronik bit 0 in datenstrom finden


von pittbull_nt@yahoo.com (Gast)


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

von Profi (Gast)


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.

von pittbull_nt@yahoo.com (Gast)


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.

von Sebastian Heyn (Gast)


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)

von pittbull_nt@yahoo.com (Gast)


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?

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
Noch kein Account? Hier anmelden.