Hallo, bin neu hier und bin VHDL Anfänger. Ich bin gerade dabei eine Resolver Auswertung in VHDL zu realisiere und habe irgendwie Schwirigkeiten meine FSM einsynchronisieren. Die FSM soll eine SPI und den Cordic steuern. Die SPI habe ich von Lothar M. hergenommen und ein wenig angepasst. Die SPI Schnittstelle liest mit(200kHz) von zwei ADCs 16bit Werte ein die dann von der FSM mit einer kleinen Subtraktion an den Cordic übergeben werden der auch den Winkel korrekt berechnet. Das Problem ist die Synchronisation: ich will vom ADC alle 125us (8kHz Resolver Frequenz: wird über zwei PWMs vom FPGA erzeugt) neue Daten vom ADC holen. Habe momentan drei Zustände (z0-z2) wobei der Eine ein Init-Zustand ist und danach zwischen den anderen hin und her gewechselt wird. Der z2 wird erst dann erreicht wenn SPI Transfer beendet wird. Wie kann ich am besten das Problem in den Griff bekommen damit bei jeder steigender Flanke des Signal ADC_CLK die FSM den Spi Transfer einleitet? MFG derNeugierige PS: der Cordic und der Querztakt arbeiten mit 10MHz
E. W. schrieb: > Das Problem ist die Synchronisation: ich will vom ADC alle 125us (8kHz > Resolver Frequenz: wird über zwei PWMs vom FPGA erzeugt) neue Daten vom > ADC holen. Dann darfst du nur alle 125us das Signal TX_Start aktivieren. Hier fehlt offenbar noch das Modul, das den SPI und deine FSM verknüpft... > Wie kann ich am besten das Problem in den Griff bekommen damit bei jeder > steigender Flanke des Signal ADC_CLK die FSM den Spi Transfer einleitet? Du ermittelst die steigende Flanke dieses "Taktes" und setzt daraufhin TX_Start.
Hallo, und Danke erstmal. >Du ermittelst die steigende Flanke dieses "Taktes" und setzt daraufhin >TX_Start. Eigentlich habe ich das so oder ähnlich gemacht, habe Tx_Start => senSPI im Zustand z1 gesetzt. Habe mal die FSM einbischen abgeändert so dass der Zustand z1 jedesmal bei steigender Flanke gesetzt wird und z2 bei fallender Flanke und TX_Done und es läuft einigermassen. Was mich da jetzt Stört ist dass die Werte die ich im z2 in Signale zwischen speichere sich im z1 ändern und ich dadurch unerwüscht der Winkel auch ändert. Warum oder was übersehe ich da? gruß derNeugierige
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.