Forum: FPGA, VHDL & Co. Ansteuerung TDC-GP22 per FPGA ( Spartan-3 )


von GP22-Nutzer (Gast)


Lesenswert?

Hallo,

für eine Laufzeitmessung verwende ich einen GP22 von acam. Um diesen in 
Betrieb zu nehmen, muss am Anfang per SPI-Schnittstelle ein gewisse 
Folge an Befehlswörtern und der Inhalt der Konfigurationsregister 
übertragen werden. Ich hatte zunächst dem GP22 mit Hilfe eines 
Mikrocontroller AT32UC3C in Betrieb genommen. Dies ging recht 
problemlos. Die Dokumentation dazu ist recht gut.

Nun allerdings möchte ich gern die Ansteuerung mit einem FPGA 
realisieren. Dafür habe ich zunächst die SPI-Schnittstelle in VHDl 
beschrieben und eine State-Machine geschrieben, die mir die Folge der 
Befehlesworte und Inhalt der Konfigurationsregister für den GP22 
auswirft.

Wenn ich mir die Kommunikation per Oszilloskop anschaue ist diese 
identisch mit der funktionierenden Ansteuerung per AT32UC3C.

Punkte wie:
 - SPI-Einstellung: Clock Phase Bit = 1; Clock Polarity Bit = 0
 - SPI-Chip-Select LOW-active
 - HW-Reset vor Beginn der Kommunikation
habe ich berücksichtigt. Auch die Daten die übertragen werden, habe ich 
überprüft.

Nun ist allerdings das Problem, das nach dem Steuerwort: 
'Start_Cal_Resonator' der GP22 mit einem Interrupt reagieren müsste. das 
tut er allerdings nicht. Ich habe inzwischen jeden stein zweimal 
umgedreht und weiß nicht weiter.
Hat irgendwer schoneinmal mit dem GP22 ( oder GP21 ) gearbeitet und hat 
ähnliche Erfahungen gemacht?
Wenn noch weitere Angaben fehlen, dann fragt bitte, ich werde sie dann 
nachreichen.

Gruß

von Duke Scarring (Gast)


Lesenswert?

Kannst Du evtl. die beiden Bilder (geht, geht nicht) vom Scope hier 
einstellen?
Irgendwo muß ja ein Unterschied sein.

Wie wird die Konfiguration im FPGA gestartet?
Kann die Statemachine wiederholt ausgeführt werden?

Duke

von GP22-Nutzer (Gast)


Angehängte Dateien:

Lesenswert?

Hi Duke,

Duke Scarring schrieb:
> Kannst Du evtl. die beiden Bilder (geht, geht nicht) vom Scope hier
> einstellen?
siehe Anhang.
in den Abbildungen:
  Kanal 1 - Interruptleitung
  Kanal 3 - MOSI
  Kanal 4 - Chip Select




Duke Scarring schrieb:
> Wie wird die Konfiguration im FPGA gestartet?
Der FPGA hängt in der Kommunikationskette zwischen dem Mikrocontroller 
(der oben bereits genannte) und dem GP22. Ich habe mir eigene 
Steuerwörter für die Kommunikation zwischen uC und FPGA definiert, 
welche ich per SPI (uC = Master; FPGA = Slave ) übertrage. Damit wird 
dann meine State-Machine im FPGA gefüttert und die Übertragung der 
Konfiguration zum GP22 ( FPGA = Master; GP22 = Slave ) gestartet.

Duke Scarring schrieb:
> Kann die Statemachine wiederholt ausgeführt werden?
Ja. Wenn ich das entsprechende Steuerwort an den FPGA schreibe werden 
die Daten erneut übertragen.


Ich habe mich auch schon parallel an die SPI-Leitungen gehängt und 
mitgeschnitten, welche Daten übertragen werden. Dort ist ebenfals kein 
Unterschied zu erkennen (siehe Anhang).

von Falk B. (falk)


Lesenswert?

@ GP22-Nutzer (Gast)

>Ich habe mich auch schon parallel an die SPI-Leitungen gehängt und
>mitgeschnitten, welche Daten übertragen werden. Dort ist ebenfals kein
>Unterschied zu erkennen (siehe Anhang).

Bitte? Wie willst du auf DIESEN Screenshots Unterschiede erkennen bzw 
Gleichheit exakt prüfen? Da muss man MINDESTENS die gleiche Zeitbasis 
wählen und den gleichen Triggerpunkt. Ein Logikanalysator wäre gut.

von GP22-Nutzer (Gast)


Lesenswert?

Hi Falk,

mit den ScrennShots hast du vollkommen recht. Logik-Analyzer habe ich 
leider nicht; nur ein Oszi. Ich kann das hier für mich natürlich 
wesentlich genauer untersuchen als auf den Bildern dargestellt und mir 
jedes Bit und jede Flanke genau anschauen. Soll ich jetzt von jedem 
übertragenen Byte ein einzelnen Screenshot hier reinstellen? Ich denke 
nicht. Da müsst ihr meiner Aussage vertrauen.

Das von mir geschriebene, was du zitiert hast, bezieht sich auf die 
txt-Datei. Das habe ich nicht deutlich genug herausgestellt. 
Entschuldigung.

Ich danke aber trotzdem schon für die bisherigen Mühen.

Gruß

von Karl Könner (Gast)


Lesenswert?

OK, deine Bilder zeigen streng genommen nur das die Signale aus dem FPGA 
laufen. Ist auch sichergestellt:
-das sie ankommen (am GP22-Pins gemessen)?
-der GP22 arbeitet? (Betriebs-LED o.ä.)
-die IRQ leitung am FPGA ankommt (nahe FPGA pin messen, oder intern 
durchrouten auf Testpad)?

Messhinweis: Speichere doch das MOSI ab und lass das abgespeicheret 
signal bei der FPGA Messung auch darstellen. (Stored waveform oder so) 
damit kann man gut vergleichen.

MfG,

von GP22-Nutzer (Gast)


Lesenswert?

Hallo,

der GP22 befindet sich auf dem erhältlichen Eval-Board GP22-EVA-KIT. Die 
Pins des GP22 werden an eine Steckerleiste herausgeführt. Ich habe den 
FPGA über diese Leiste angeschlossen und hänge auch mit dem Oszi an 
dieser Stelle (dafür habe ich mir einen entsprechende Adapter 
gebastelt).
Wenn ich den Mikrocontroller anschließe passiert dies über die gleiche 
Steckerleiste und dort funktionierts. Daher gehe ich davon aus, dass die 
Signale auch jeweils korrekt anliegen (sowohl am GP22 als auch am 
Spartan).
Die Idee mit der Signal-Speicherung finde ich sehr gut. Das werde ich 
morgen mal ausprobieren. Wenn ich dort neue Erkentnisse gewinne, werde 
ich sie hier reinstellen.

Vielen Dank und Gruß

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
Noch kein Account? Hier anmelden.