Ich spiele mit einem TDC (AS6501) und der kann bei 50Mhz SPI Datenübertragung direkt jede Periode bis 100Khz messen und das 32 Bit Ergebnis über 50MHz SPI an einem STM32h7 einwandfrei übertragen. Der AS6501 hat aber auch noch eine serielle LVDS (250Mhz DDR) Schnittstelle damit könnte ich 10MHz Perioden noch messen und übertragen. Es geht also darum 32 bit über LVDS mit 10MHz Taktrate, also 40Mbyte/s zu empfangen und erst mal direkt an den PC übertragen. MCs mit LVDS Deserializer sind mir nicht bekannt. Ich habe noch Trenz TE6000 Spartan6 Boards mit Gbit Lan oder ZedBoards (ZYNC) die sollten das können. Zwischenspeichern/ Komprimieren und USB 2.0 zum PC ginge auch noch. Gibt es noch andere Wege oder ist meine Überschlags-Rechnung falsch? Warum ich das machen will sieht man auf den angefügten Bildern: Beitrag "Re: [F] OCXO 10-MHz-Frequenzstandardreferenzmodul"
Hans-Georg L. schrieb: > Warum ich das machen will sieht man auf den angefügten Bildern: > > Beitrag "Re: [F] OCXO 10-MHz-Frequenzstandardreferenzmodul" Die Achsenbeschriftung der Abszisse in Hist.JPG muss man nicht verstehen, oder? ;-)
Hans-Georg L. schrieb: > Es geht also darum 32 bit über LVDS mit 10MHz Taktrate, also 40Mbyte/s > zu empfangen Es ist sogar noch schlimmer. Die 40MB/s ist ja deine Nutzdatenrate! Da wird noch bisschen was drauf kommen für Anfang/Ende Kennung, Datenintegrität (CRC o.ä), usw. Da läuft es von den Schnittstellen schon in Richtung Gigabit Ethernet oder USB3.x Zumindest wenn du einen kontinuierlichen Stream übertragen möchtest. Hans-Georg L. schrieb: > und erst mal direkt an den PC übertragen. Würde es auch ausreichen einen fertigen und evtl vorbeiarbeiteten Blob an Daten zu übertragen? Also z.B. eine fertige Messereihe? Das macht die Anforderung der Zwischenspeicherung der Daten auf Messsystemseite zwar größer, dafür schrumpfen die Anforderungen an die Datenrate evtl sehr stark. Kleines FPGA Board mit ausreichend Speicher für die Pufferung und dann eine Humane Datenrate an den PC. Bei deinem Beispielbild sind es ja nur 132k Punkte. Also kein MB an Zwischenspeicher. Ich Frage deshalb, weil ja die PC Seite mit den Daten auch irgendwas anfangen werden muss. Man kann auch schnell einen PC mit Daten zuscheißen ohne dass da noch etwas geht wenn das ein kontinuierlicher Stream werden soll :-)
:
Bearbeitet durch User
> Gibt es noch andere Wege oder ist meine Überschlags-Rechnung falsch? TigerShark von Analog hat auch noch LVDS. Aber stimmt wohl, in der Regel bist du da bei FPGA. Vanye
Das könnte mit dem Infineon FX3 (früher Cypress) direkt klappen, wenn du das LVDS in single ended wandelst, dafür gibt's ja einfache Chips. Der hat genug internen Puffer, so dass du die 40MB/s im SuperSpeed sicher übertragen können solltest.
N. M. schrieb: > Würde es auch ausreichen einen fertigen und evtl vorbeiarbeiteten Blob > an Daten zu übertragen? Also z.B. eine fertige Messereihe? > Das macht die Anforderung der Zwischenspeicherung der Daten auf > Messsystemseite zwar größer, dafür schrumpfen die Anforderungen an die > Datenrate evtl sehr stark. > Kleines FPGA Board mit ausreichend Speicher für die Pufferung und dann > eine Humane Datenrate an den PC. Zwischenspeichern wäre mit dem Trenz Board kein Problem das hat 2 Banks mit je 256 MB Ram. > Bei deinem Beispielbild sind es ja nur 132k Punkte. > Also kein MB an Zwischenspeicher. Das Beispiel stammt von der SPI Version und einem STM32H753 mit 512K (AXI) Speicher. > Ich Frage deshalb, weil ja die PC Seite mit den Daten auch irgendwas > anfangen werden muss. Man kann auch schnell einen PC mit Daten > zuscheißen ohne dass da noch etwas geht wenn das ein kontinuierlicher > Stream werden soll :-) Der PC soll die Daten erstmal nur auf Platte schreiben. So wie es aussieht sind die Messungen hauptsächlich mit weißem Rauschen behaftet und das gibt bei MDEV einen Slope von -1 pro Dekade. Mit der 10Mhz Version würde ich 2 Dekaden mehr haben und den eventuellen Einfluss des CPLD-Teilers eliminieren.
Christian R. schrieb: > Das könnte mit dem Infineon FX3 (früher Cypress) direkt klappen, wenn du > das LVDS in single ended wandelst, dafür gibt's ja einfache Chips. Der > hat genug internen Puffer, so dass du die 40MB/s im SuperSpeed sicher > übertragen können solltest. Können diese einfachen Chips und der FX3 auch mit Double Data Rate umgehen ?
Rainer W. schrieb: > Hans-Georg L. schrieb: >> Warum ich das machen will sieht man auf den angefügten Bildern: >> >> Beitrag "Re: [F] OCXO 10-MHz-Frequenzstandardreferenzmodul" > > Die Achsenbeschriftung der Abszisse in Hist.JPG muss man nicht > verstehen, oder? ;-) Die Zahlen sind auch nicht so interessant, ich wollte damit nur Zeigen das es sich um eine Normal Verteilung handelt und es weisses Rauschen ist. Was der MDEV ja auch bestätigt.
Hans-Georg L. schrieb: > Christian R. schrieb: >> Das könnte mit dem Infineon FX3 (früher Cypress) direkt klappen, wenn du >> das LVDS in single ended wandelst, dafür gibt's ja einfache Chips. Der >> hat genug internen Puffer, so dass du die 40MB/s im SuperSpeed sicher >> übertragen können solltest. > > Können diese einfachen Chips und der FX3 auch mit Double Data Rate > umgehen ? Nee, das nicht. Da braucht es dann wohl schon ein kleines FPGA oder CPLD. Aber was denn nun? 10MHz oder 250MHz? Und 40MiByte/s passen nicht zu 10MHz und DDR mit 32 Bit. Da kommt man auf 80MiByte/s.
Christian R. schrieb: > Hans-Georg L. schrieb: >> Christian R. schrieb: >>> Das könnte mit dem Infineon FX3 (früher Cypress) direkt klappen, wenn du >>> das LVDS in single ended wandelst, dafür gibt's ja einfache Chips. Der >>> hat genug internen Puffer, so dass du die 40MB/s im SuperSpeed sicher >>> übertragen können solltest. >> >> Können diese einfachen Chips und der FX3 auch mit Double Data Rate >> umgehen ? > > Nee, das nicht. Da braucht es dann wohl schon ein kleines FPGA oder > CPLD. > Aber was denn nun? 10MHz oder 250MHz? Und 40MiByte/s passen nicht zu > 10MHz und DDR mit 32 Bit. Da kommt man auf 80MiByte/s. 10 Mhz möchte ich messen. Ein Messwert hat 32Bit. Fmax der LVDS Übertragung ist 250MHz und die Übertragung kann mit SDR oder DDR erfolgen. Der Übertragungstakt muss extern bereit gestellt werden, was auch für ein FPGA spricht. Gibt es CPLDs mit Deserializer und LVDS ?
:
Bearbeitet durch User
Hallo Hans-Georg, gerade heute spiele ich auch wieder mit AS6501 und STM32H7xx ;-) Da ich beim AS6501 einiges vergessen habe, kann ich Deine 100 kHz Ereignisrate nicht so recht nachvollziehen. Mit einem SPI Takt von 50 MHz, könnten die insgesamt 48 Bit von Index- und Stop-Register in 1 µs übertragen werden. Das wäre Faktor 10 schneller. Bei der Ausgabe über LVDS werden typ. 40 Bit ausgegeben, die man auf 34 Bit verkürzen könnte. Für 10 ps Auflösung, die Du vermutlich mindestens haben möchtest, müßten es 37 Bit sein. Bei 250 MHz LVDS Takt, wäre meines Erachtens ein Messwert / 200 ns möglich. Vielleicht wäre ein Weg, die LVDS-Daten per FPGA mit FIFO zwischenzuspeichern und dem H7 per DMA über den Datenbus zu übergeben. Oder habe ich etwas übersehen?
Hans-Georg L. schrieb: > Rainer W. schrieb: >> Hans-Georg L. schrieb: >>> Beitrag "Re: [F] OCXO 10-MHz-Frequenzstandardreferenzmodul" >> >> Die Achsenbeschriftung der Abszisse in Hist.JPG muss man nicht >> verstehen, oder? ;-) > > Die Zahlen sind auch nicht so interessant, ich wollte damit nur Zeigen > das es sich um eine Normal Verteilung handelt ... Dass du dich traust, so eine Achsenbeschriftung überhaupt hochzuladen ... So ist sie einfach nur peinlich, egal, was du zeigen willst. Das ist nicht einmal 9.Schulklasse und passt nicht zum restlichen Niveau des eigentlichen Themas, sorry. back to topic
Hans-Georg L. schrieb: > 10 Mhz möchte ich messen. Ein Messwert hat 32Bit. Fmax der LVDS > Übertragung ist 250MHz und die Übertragung kann mit SDR oder DDR > erfolgen. > Der Übertragungstakt muss extern bereit gestellt werden, was auch für > ein FPGA spricht. > Gibt es CPLDs mit Deserializer und LVDS ? Wenn dir bis zu 100MHz und SDR reichen, dann könntest du das wahrscheinlich über das programmierbare GPIF des FX3 abbilden, der kann auch den Takt ausgeben. Dazwischen müssen dann nur ein paar LVDS Receiver. Die 400MB/s schafft der aber nicht kontinuierlich an den PC, in der Praxis haben wir mit WinUSB 320MiB/s geschafft.
Mi N. schrieb: > Hallo Hans-Georg, > > gerade heute spiele ich auch wieder mit AS6501 und STM32H7xx ;-) > Da ich beim AS6501 einiges vergessen habe, kann ich Deine 100 kHz > Ereignisrate nicht so recht nachvollziehen. > Mit einem SPI Takt von 50 MHz, könnten die insgesamt 48 Bit von Index- > und Stop-Register in 1 µs übertragen werden. Das wäre Faktor 10 > schneller. > Ich brauche die 24 bit aus dem Stop Register und weil da ein Überlauf stattfinden kann lese ich das Byte1 des Referenz Registers gleich mit. Dazu kommt noch ein Füllbyte das sind 40 bit (5Byte). Dazu habe ich bei 100Khz, nach dem Interrupt, 10µs zur Verfügung. Bei der "alten" Version habe ich die HAL ohne DMA verwendet und bin auf 8µs Übertragungszeit gekommen. Hal mit DMA hat um die 10µs gebraucht und es gab Aussetzer. Ein weiterer Effekt ist man muss HAL_ReceiveTransmit verwenden. Weil Bei nur Receive der Empfangsbuffer auch zum Senden verwendet wird, dabei kann es passieren das anstelle eines Leerbytes ein command gesendet wird. Bei meinen neuesten Test Untersuchungen ohne HAL mit dem H743 bin ich jetzt mit Overhead bei 2µs. > Bei der Ausgabe über LVDS werden typ. 40 Bit ausgegeben, die man auf 34 > Bit verkürzen könnte. Für 10 ps Auflösung, die Du vermutlich mindestens > haben möchtest, müßten es 37 Bit sein. Bei 250 MHz LVDS Takt, wäre > meines Erachtens ein Messwert / 200 ns möglich. > Das sind nur 5MHz ;-) Deshalb DDR. Und für meine 20MHz Rubidium Normale reicht das immer noch nicht ... > Vielleicht wäre ein Weg, die LVDS-Daten per FPGA mit FIFO > zwischenzuspeichern und dem H7 per DMA über den Datenbus zu übergeben. > Oder habe ich etwas übersehen? Auch beim BGA Gehäuse sind irgendwann die nötigen Pins nicht mehr frei. Das soll ja kein Produkt werden sondern ist reine Selbstbeschäftigung ;-) Der ZYNQ auf dem Zedboard hat gleich 2 Cortex A9 Kerne eingebaut was soll da noch ein H7 tun ? Für ein lokales Messgerät mit Anzeige reicht mir jetzt erstmal die SPI Version mit dem H743 und seinem externen RAM. Das andere ist Zukunft.
Christian R. schrieb: > Hans-Georg L. schrieb: >> 10 Mhz möchte ich messen. Ein Messwert hat 32Bit. Fmax der LVDS >> Übertragung ist 250MHz und die Übertragung kann mit SDR oder DDR >> erfolgen. >> Der Übertragungstakt muss extern bereit gestellt werden, was auch für >> ein FPGA spricht. >> Gibt es CPLDs mit Deserializer und LVDS ? > > Wenn dir bis zu 100MHz und SDR reichen, dann könntest du das > wahrscheinlich über das programmierbare GPIF des FX3 abbilden, der kann > auch den Takt ausgeben. Dazwischen müssen dann nur ein paar LVDS > Receiver. > Die 400MB/s schafft der aber nicht kontinuierlich an den PC, in der > Praxis haben wir mit WinUSB 320MiB/s geschafft. Der FX3 hatte mich auch mal interessiert, vielleicht kauf ich mir mal das Entwicklungsboard .. als Logic Analyzer. Ich muss nur aufpassen das ich nicht mehr einkaufe als ich in diesem Leben noch verarbeiten kann ;-)
Rainer W. schrieb: > Hans-Georg L. schrieb: >> Rainer W. schrieb: >>> Hans-Georg L. schrieb: >>>> Beitrag "Re: [F] OCXO 10-MHz-Frequenzstandardreferenzmodul" >>> >>> Die Achsenbeschriftung der Abszisse in Hist.JPG muss man nicht >>> verstehen, oder? ;-) >> >> Die Zahlen sind auch nicht so interessant, ich wollte damit nur Zeigen >> das es sich um eine Normal Verteilung handelt ... > > Dass du dich traust, so eine Achsenbeschriftung überhaupt hochzuladen > ... > So ist sie einfach nur peinlich, egal, was du zeigen willst. > Das ist nicht einmal 9.Schulklasse und passt nicht zum restlichen Niveau > des eigentlichen Themas, sorry. > > back to topic Das darfst du gerne an W.J. Riley weitergeben von dem ist das Programm. http://www.stable32.com/ Aber bevor du das machst solltest du dich vorsichtshalber erst informieren wer dieser "Schüler" ist ...
Hans-Georg L. schrieb: > Das darfst du gerne an W.J. Riley weitergeben von dem ist das Programm. > http://www.stable32.com/ Vielleicht sollte man das Programm auch bedienen lernen?
Harald K. schrieb: > Hans-Georg L. schrieb: >> Das darfst du gerne an W.J. Riley weitergeben von dem ist das Programm. >> http://www.stable32.com/ > > Vielleicht sollte man das Programm auch bedienen lernen? Da gibt es ein Button "Histogramm" zum drauf klicken ...
Wenn du unbedingt einen Zynx haben möchtest, dann mach gleich Linux und einen Webserver mit drauf. Dann brauchst du die Daten evtl garnicht übertragen :-) sondern nur vorverarbeiteten. Großteil im FPGA. Evtl direkt in den DDR Speicher. Und die Applikation / Webserver wird nur als GUI verwendet. Hans-Georg L. schrieb: > Zwischenspeichern wäre ... kein Problem Hans-Georg L. schrieb: > Das Beispiel stammt von der SPI Version und einem STM32H753 mit 512K > (AXI) Speicher. Hans-Georg L. schrieb: > Der PC soll die Daten erstmal nur auf Platte schreiben. Ja OK. Aber der Hauptpunkt ist ja ob du das endlos OHNE Lücke machen möchtest. Dann musst du ja die Datenrate die vom ADC anfällt auch zum PC haben um die Daten los zu bekommen. Oder ob es dir reicht X MB aufzuzeichnen, die Aufzeichnung zu stoppen, die Daten zu übertragen und evtl erst danach eine neue Messung zu starten. Für diesen Fall reicht auch ein echt kleines Board. z.B was in der Größenordnung eines MAX1000 oder ähnliches: https://shop.trenz-electronic.de/de/TEI0001-04-FBC88A-MAX1000-IoT-Maker-Board-16kLE-32-MByte-SDRAM-8-MByte-Flash-6-15-x-2-5-cm Das hätte 64 Mal mehr Speicher auf dem Board als dein H7. Der FTDI kann glaube ich 12MBaud. Du könntest also 0,8s aufzeichnen und müsstest dann grob 3s übertragen.
N. M. schrieb: > Wenn du unbedingt einen Zynx haben möchtest, dann mach gleich Linux und > einen Webserver mit drauf. Dann brauchst du die Daten evtl garnicht > übertragen :-) sondern nur vorverarbeiteten. Großteil im FPGA. Evtl > direkt in den DDR Speicher. Und die Applikation / Webserver wird nur als > GUI verwendet. > Ich habe ZYNQ Zedboards mit Linux drauf. > Ja OK. Aber der Hauptpunkt ist ja ob du das endlos OHNE Lücke machen > möchtest. Dann musst du ja die Datenrate die vom ADC anfällt auch zum PC > haben um die Daten los zu bekommen. > Der AS6501 ist ein TDC (Time to Digital Converter) kein ADC. > Für diesen Fall reicht auch ein echt kleines Board. z.B was in der > Größenordnung eines MAX1000 oder ähnliches: > https://shop.trenz-electronic.de/de/TEI0001-04-FBC88A-MAX1000-IoT-Maker-Board-16kLE-32-MByte-SDRAM-8-MByte-Flash-6-15-x-2-5-cm Da würde ich mir eher das Spartan7 mini Board kaufen, kostet die Hälfte. Aber ich habe Spartan 6 LX100 Boards mit RAM und Gigabit LAN. Problem die werden nicht von der freien ISE Version unterstützt, das müsste ich erst mal alte Connections checken. ;-) > Das hätte 64 Mal mehr Speicher auf dem Board als dein H7. Nö, mein neues H7 Board hat intern 1MB und extern 32MB Ram. Eine Alternative wäre vielleicht auch noch die Aufzeichnung auf SD-Karte. Den Steckplatz dafür haben meine Spartan Boards. Danke für die Anregungen.
Harald K. schrieb: > Vielleicht ist ja das hier was für die Aufgabe: > > > https://ftdichip.com/products/ft601q-b/ Interessant. Das Entwicklungsmodul kostet ca 70€, das ist billiger als ein FX3 Board + FMC Adapter. Ich könnte es direkt auf mein Zedboard stecken. Leider hat das Zedboard nur einen FMC Steckplatz. Dann müsste ich für den TDC ein Board kreieren das zusätzlich einen Steckplatz für das FTDI Board hat. Aber für andere Super Speed Anwendungen gefällt mir das. Was mir gerade auch noch für ein stand alone Gerät einfällt wäre vielleicht ein kleines CPLD/FPGA das serial LVDS auf quad/oct SPI umsetzt und den H7 damit füttert. Vielleicht das Spartan7 mini Board für ca. 40€.
Uwe B. schrieb: > Was spricht gegen z.B. New! Dragon XC7M FPGA board > https://www.knjn.com/show.html?pg=img&src=5160 Das ist doch ein Steckkarte für einen PC PCIE Slot oder ?
Hat denn hier Jemand korrekte Timing Constraints für den FT600 die auch eingehalten werden? Das Timing laut Datenblatt ist extrem knackig.
Gustl B. schrieb: > Hat denn hier Jemand korrekte Timing Constraints für den FT600 die auch > eingehalten werden? Das Timing laut Datenblatt ist extrem knackig. Schau mal hier https://ftdichip.com/wp-content/uploads/2020/07/AN_376-Xilinx-FPGA-FIFO-master-Programming-Guide.pdf Da ist am Ende ein Link auf die Xilinx Firmware.
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.