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
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.
>> 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.
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)
>> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.