Gast
#3606302
Hallo allerseits, ich möchte Informationen zwischen zwei FPGAs (Cyclone IV @100MHz) via SPI austauschen. Das muss nicht schnell sein, deshalb habe ich mich für SPI entschieden und die Implementierung nach: http://www.lothar-miller.de/s9y/categories/45-SPI-Master auf dem einen Cyclone und den Slave auf dem zweiten Cyclone nach: http://www.lothar-miller.de/s9y/categories/26-SPI-Slave programmiert. Auf dem Master ist "TX_Data" mit "RX_Data" über ein D-FF
1 | |
2 | |
3 | |
4 | |
sozusagen "geloopbackt". Jetzt gebe ich auf der Slave-Seite einen konstanten Wert vor und vergleiche diesen mit dem empfangenen Datenwort. Dabei treten leider sporadisch Fehler auf: Das letzte Bit in einem Wort kippt dann, wie auf dem Oszillogramm zu sehen. (Grün SCKL Gelb SS Blau MISO Pink MOSI) Die Einstellungen von Master und Slave sind: CPOL & CPHA = 0 Quarzfrequenz = 100'000'000 SPI freq = 1'000'000 wortlaenge = 12 Meine erste Vermutung war, dass es an der Art meines Loopbacks liegt. Allerdings sind die Ein- und Ausgänge des Masters ja synchron zum globalen clk auf dem FPGA (also kein Einsynchronisieren mehr nötig?) und auch einen Delay von 1-100 Taktzyklen zwischen dem zeitpunkt "TX-DONE" und der Übernahme eines neuen TX-Wortes haben nichts gebracht. Hat jemand, der sich mit den Beiden auskennt, eventuell einen Tipp für mich, wo ich weitersuchen könnte?

