mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA state machine SPI Problem


Autor: Steve (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ich habe ein sehr verwirrendes Problem. Ich habe mir einen SPI 
Baustein gebaut auf Grundlage eines Quellcodes von Falk Brunner. Ich 
hatte den Code hier im Forum gefunden.

Das Problem ist das der Code funktioniert und sobald ich teilweise 
kleine Änderungen vornehmen funktioniert er nicht mehr.Obwohl die 
Änderungen meiner Meinung nach nix ausmachen dürften.

Ein Beispiel: wenn ich in der state machine "MOSI Daten Übergeben" im 
Zustand C das auskommentierte rausnehme und das Programm auf dem FPGA 
lade funktioniert das Programm einige Sekunden und dann hängt es sich 
auf.
Ist es jedoch auskommentiert funktioniert es.

Ich hatte die meisten Zustände der State Machine "MISO Daten Übergeben" 
auf den Oszi gelegt und da konnte man erkennen, dass das Programm wenn 
es hängen bleibt nicht von Zustand C in Zustand D wechselt wie es sollte 
sondern einen Zyklus gar nichts macht und dann urplötzlich sich wieder 
in Zustand A befindet.

Mir ist das absolut Rätselhaft...ich weiss langsam nicht mehr weiter. 
Vor allem ändert sich rein logisch mit der Veränderung in der state 
machine  "MOSI Daten Übergeben" gar nichts wenn ich mich nicht 
täusche......

falls jemand Ratschläge hat wäre ich sehr dankbar....vielleicht hab ich 
da auch nen großen Denkfehler drin...ich bin noch mehr oder weniger ein 
Anfänger mit fpgas

Vielen Dank

Steve

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe ich das richtig:
Wenn du in Data_receive was auskommentierst, das sowieso keine 
Auswirkungen haben kann, dann hast du mit Data_send Probleme?

> ich weiss langsam nicht mehr weiter.
Wie sieht das Verhalten in der Verhaltenssimulation aus?
Ich glaube, nur damit kommst du jetzt noch weiter...

Autor: Steve (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau Du hast recht. Es bleibt in der anderen Statemachine hängen, in 
der ich gar nix geändert hab. Allerdings tritt das Problem auch auf wenn 
ich andere Teile des Programms ändere es ist völlig sporadisch wann.

Ich hab gelesen, dass es zu sogenannten illegal states kommen kann, wenn 
mann unsynchrone Signale verwendet. Kann es sein dass ich in der state 
machine "MISO Daten Übergeben" irgendwie ein Signal verwende was nicht 
synchron ist und deswegen Ärger verursacht?

mfg

Steve

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.