FPGA SPI Probleme

Das Forum für die Software der FPGA-Basisplatine
Antworten
rammelsberg
Beiträge: 3
Registriert: 15.12.2010, 07:55

FPGA SPI Probleme

Beitrag von rammelsberg » 15.12.2010, 08:15

Grüßgott allerseits ;-)

Tolles Forum hier!

Ich bastel seit einiger Zeit mit dem CTlab herum und habe mir IFP und FPGA bei SEGOR gekauft.
Allerdings habe ich die Firmware für den MEGA644 in C geschrieben.
FPGA laden von SD Karte geht, I2C-Bus zu einem (selbstgebastelten) Panel geht auch, sowie Kommunikation
zum Rechner über den Optobus.
Wo es noch hapert ist die SPI Kommunikation zum FPGA zwecks Datenaustausch.
Ich habe testhalber die Frequenzzähler/Pulsgenerator Applikation fürs FPGA auf der CT Seite geladen und mit SDKarte
aufs FPGA gebracht.
Ich kann die Register im FPGA über SPI schreiben, aber das Lesen ist anscheinend um genau 1 Bit versetzt (das erste bit was übertragen werden soll fehlt)
Wenn ich eine Konstante aus dem FPGA lesen will bekomme ich z.B. statt 4*FF das -> 7F FF FF FF , bei anderen Mustern sieht man, daß die Daten um ein Bit verschoben sind.

Ich habe mal die Pascal Sourcen angeschaut, finde aber (Pascal ist bei mir wirklich lange her...) keine initialisierung der SPI Schnittstelle (Modus, Master...)
Hattet Ihr das Problem auch schon mal?
Vielleicht kennt einer die richtige Registereinstellung?

Die Kommunikation mit der SD Karte (geht ja auch über SPI) geht auf jeden Fall.
Wenn ich mit den Modusbits (Phasenbits) spiele, bekomme ich Einstellungen mit der die SD Karte nicht mehr geht,
aber die Daten vom FPGA verändern sich nicht.

Ich gehe hier davon aus, daß das Xilinx Beispielprojekt für den Frequenzzähler funktioniert...?!

Viele Grüße und Danke schonmal!

Paul

psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 887
Registriert: 25.01.2008, 23:34

Re: FPGA SPI Probleme

Beitrag von psclab38 » 15.12.2010, 12:14

Hi Paul,

willkommen im Forum!

Schön, daß sich noch jemand mit C-Firmware für die Module beschäftigt. Wenn Dein Code u. a auch alle Standard-Features des Pascal-Originals enthalten wird, dann könnten wir ihn gerne auf unser Sourceforge-Repository übernehmen.

Zu Deinem Problem kann ich im Moment nichts sagen, aber vielleicht hilft Dir ja ein Blick in die existierenden C-Codes für die anderen Module. Bin mir aber nicht sicher, ob da SPI verwendet wird. Ich selbst komme erst Ende der Woche wieder dazu, in den Code zu schauen.

Viele Grüße
Paul

PS: Hast du auf einem existierenden C-Code für ein Modul aufgesetzt, wenn ja auf welchem?

rammelsberg
Beiträge: 3
Registriert: 15.12.2010, 07:55

Re: FPGA SPI Probleme

Beitrag von rammelsberg » 16.12.2010, 12:01

Hallo!

Ich habe auf keinem existierenden Code aufgesetzt, einfach von 0 auf angefangen mit "LED an LED aus" ;-) und dann nach und nach erweitert.
Da ich am Anfang auch noch nicht genau wusste wozu ich das Modul verwenden will, habe ich erstmal die wichtigsten Funktionen (Uart Kommunikation, FPGA laden, Dos auf der SD Karte, I2C Grafikpanel...) mehr oder weniger zum Testen implementiert.
Das Ganze ist (momentan) relativ chaotisch aufgebaut, ich habe mich leider auch an keine CTLab Funktionen gehalten, da ich das Modul bis jetzt nur "standalone" ohne Labview und dergleichen verwendet habe.
Ich denke aber, das wäre in Zukunft der richtige Weg, also wenn ich mal die Zeit habe, werde ich meinen Stand an die Originalversion angleichen.
Hmm, in den C-Portierungen der anderen Module habe ich bis jetzt nichts gefunden, werde wohl nochmal etwas rumforschen müssen.

viele Grüße,
Paul

psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 887
Registriert: 25.01.2008, 23:34

Re: FPGA SPI Probleme

Beitrag von psclab38 » 16.12.2010, 19:28

rammelsberg hat geschrieben: Da ich am Anfang auch noch nicht genau wusste wozu ich das Modul verwenden will, habe ich erstmal die wichtigsten Funktionen (Uart Kommunikation, FPGA laden, Dos auf der SD Karte, I2C Grafikpanel...) mehr oder weniger zum Testen implementiert.
Das Ganze ist (momentan) relativ chaotisch aufgebaut, ich habe mich leider auch an keine CTLab Funktionen gehalten, da ich das Modul bis jetzt nur "standalone" ohne Labview und dergleichen verwendet habe.
Ich denke aber, das wäre in Zukunft der richtige Weg, also wenn ich mal die Zeit habe, werde ich meinen Stand an die Originalversion angleichen.
Wenn's dann soweit ist, kann ich vielleicht mithelfen. Ich hab' schon für zwei Module die Firmware portiert und bei den anderen mitgearbeitet; es gibt zwei Varianten (DCG und EDL sowie DDS und DIV), die sich ein wenig in der Philosophie unterscheiden. Eine Variante sollten wir als Basis nehmen, damit's nicht noch eine dritte gibt... :)

rammelsberg hat geschrieben: Hmm, in den C-Portierungen der anderen Module habe ich bis jetzt nichts gefunden, werde wohl nochmal etwas rumforschen müssen.
War ja auch nur ein Gedanke.
Beim ersten Stöbern im FPGA-Pascalcode ist mir ins Auge gesprungen:

Code: Alles auswählen

FPGAbyte:= 255;  // Wichtig: noch ein paar CCLK-Impulse nachschieben
ShiftFPGAconf;
Ist nur so ein Verdacht, vielleicht liegt es gar nicht an der Phaseneinstellung.

rammelsberg
Beiträge: 3
Registriert: 15.12.2010, 07:55

Re: FPGA SPI Probleme

Beitrag von rammelsberg » 05.01.2011, 23:44

Guten Abend und frohes neues Jahr... :D

So, jetzt hab ich ein wenig Zeit gehabt und mich nochmal an meinem SPI Problem versucht...
Sowas Dummes, es lag tatsächlich an der Phaseneinstellung, ich hatte nur nicht bedacht, daß
die MMC Funktionen (von Ulrich Radig) die Bits CPOL und CPHA löschen.
Meine Versuche mit verschiedenen Einstellungen konnten also garnichts bewirken. :oops:
Jetzt klappt es und ich kann die Konstanten (z.B. Versiondatum) aus den FPGA Registern lesen...
Hurra! :lol:
Trotzdem vielen Dank für die Hilfe!

Grüße,
Paul

Antworten