Hallo, ich arbeite gerade an einem SPI-Interface (Master+Slave), das zwei FPGAs über ein max. 20cm langes Kabel verbindet. Der Takt in dem einen FPGA sind 33MHz, der andere läuft auf 45MHz. Weiß jemand, wie schnell man das SPI-Interface laufen lassen kann (33MHz Master), damit man die Daten mit den 45MHz (Slave) noch sauber samplen kann? - Marvin -
> ggt = grösster gemeinsamer teiler (nur vermutung, wäre aber mein ansatz)
Das glaub ich nicht, dass das wirklich notwendig ist. Ich hätte eher so
Richtung Nyquist (=45MHz/2) oder zur Sicherheit 45MHz/4 getippt. Aber
ich hab da halt leider keine Erfahrungswerte.
- Marvin -
Bei SPI überträgst du den Takt doch mit, genau das ist doch der große Vorteil. Du kannst also 33MHz Takt nutzen. Der Slave sampelt die Daten dann genau mit diesem Takt. Um sie weiterzuverarbeiten ist es sinnvoll die Daten im Slave bei 33MHz innen FIFO zu schieben udn sie auf der andern Seite mit 45MHz wieder auszulesen, um mit dem Gesamtsystem synchron zu sein.
Das hatte ich schonmal probiert ist aber kräftig nach hinten losgegangen. Das Problem war, das der Master (war ein Microcontroller) den SCK nicht kontinuierlich übertragen hatte und dann meine ganze Logik dann mit dem letzten Empfangenen Bit einfach stehengeblieben ist. Okay aber hier kann ich den 33MHz Takt kontinuerlich laufen lassen, weils ich ja auch der Master bin. Und die empfangenen Daten in die 45MHz einsynchronisieren ist trivial. Mit einem Fifo hab ich es noch nicht ausprobiert, aber das werd ich mir auch mal anschauen. - Marvin -
Hallo, bei dem AVR Mikrocontroller kann die HW SPI im SlaveModus einen maximalen Takt von f/4, weil die Daten 4 Fach oversampelt werden. Gruß, Dirk
@ Marvin >den SCK nicht kontinuierlich übertragen hatte und dann meine ganze Logik Das ist ja auch normal bei SPI. EIne Taktflanke=1 Bit. Und wenn nix übertragen wird dann gibts halt keine Taktflanken. >dann mit dem letzten Empfangenen Bit einfach stehengeblieben ist. Okay >aber hier kann ich den 33MHz Takt kontinuerlich laufen lassen, weils ich >ja auch der Master bin. Da musst du aber ein Chip select benutzen und in dem Moment deaktivieren. >Und die empfangenen Daten in die 45MHz einsynchronisieren ist trivial. Ach so? Warum fragst dann? >Mit einem Fifo hab ich es noch nicht ausprobiert, aber das werd ich mir >auch mal anschauen. Genau DAS ist die solide Lösung mit maximalen Timingreserven. @ Dirk >Hallo, bei dem AVR Mikrocontroller kann die HW SPI im SlaveModus einen >maximalen Takt von f/4, weil die Daten 4 Fach oversampelt werden. Stimmt, wobei mir bis heute nicht klar ist, warum das so gemacht wird. Wahrscheinlich wollten die Entwikcler kein zweites Taktnetz auf dem uC? MFg Falk
>Stimmt, wobei mir bis heute nicht klar ist, warum das so gemacht wird. >Wahrscheinlich wollten die Entwikcler kein zweites Taktnetz auf dem uC? Ich vermute eher um Glichtes besser zuverarbeiten, weil nachdem Abtasttheorem benoetigt man nur ein zweifaches oversampeln, aber ab einigen MHz duerften die Glichtes so groß sein das man eine vierfache Abtastung benoetigt. Gruß, Dirk
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.