Welche Aufgabe hat ein FPGA in einem Logic Analyzer? Am Bs. eines Saleae: Die Eingangssignale gehen auf einen AD-Wandler. Dann sind die Signale doch schon Digital und können an den PC versendet werden? Wo liegt mein Denkfehler und warum kann die Aufgabe des FPGA kein Mikroconroller übernehmen?
Es geht rein um das technische Verständnis bzw für die genaue Aufgabenstellung des PFGA. Die Frage: Weshalb wird in einem Logic Analyzer ein FPGA verbaut?
Bei einem klassischen LA ohne ADC müssen die Eingänge schnell abgetastet werden und in einen Zwischenspeicher geschreiben werden. Wieso zwischenspeicher? Nun, die Datenrate ist hoch, sehr hoch, das geht nicht in Echtzeit zum PC weil USB limitiert. Also geht das so: Auf Trigger warten, schnell abtasten und den kleinen Speicher schnell vollschreiben, Daten langsam zum PC schicken, auf nächsten Trigger warten. Was ist so eine Datenrate? Bei 16 IOs und 100 MSamples/s sind das 200 MByte/s. USB 2 schafft so 30 MByte/s. Viele LAs tasten noch deutlich schneller ab, da reicht dann auch USB 3 mit seinen 5 GBit/s nicht. Wieso ein FPGA? Ein normaler uC kann seine Eingänge nicht gleichzeitig alle 10 ns abfragen und Daten in einen Speicher schreiben. Ein uC hat eine CPU, die macht Dinge nacheinander. Also guckt auf die Eingänge, schreibt in den RAM, sendet zum PC, aber während die Daten in das RAM schreibt kann sie nicht auf die Eingänge gucken. Und viele uCs takten schlicht zu niedrig. In einem FPGA geht das alles schön gleichzeitig und hohe Datenraten sind da kein Problem.
Gustl B. schrieb: > Wieso ein FPGA? > Ein normaler uC kann seine Eingänge nicht gleichzeitig alle 10 ns > abfragen und Daten in einen Speicher schreiben. Hinzukommt, das ein FPGA weitaus mehr GPIo hat als ein µC die zu dem alle unabhängig voneinander arbeiten (also nicht erst PortA mit 8 bit dann PortB mit 8 Bit, etc. alle alle hindert bit auf einmal). Ferner kann auch jeder GPIo als Tigger benutzt werden und nicht nur das µC-Pin das als externe IRQ-Quelle vorgesehen ist.
Gustl B. schrieb: > Ein normaler uC kann seine Eingänge nicht gleichzeitig alle 10 ns > abfragen und Daten in einen Speicher schreiben. Und nebenher noch die Triggerbedingung abfragen, die ja schon mal ziemlich komplex werden kann (wenn steigende Flanke von X und gleichzeitig D[15..0] =0xABCD und zudem A[31..0] = 0x12345678 und zuvor dieses und jenes und nachher noch das). Oder wenn zum Debuggen taktsynchron ein Bus eingelesen werden soll. Dann muss das Protokoll nicht zeitgesteuert, sondern abhängig vom Buszyklus eingelesen werden. Gustl B. schrieb: > Was ist so eine Datenrate? Bei 16 IOs und 100 MSamples/s Ein halbwegs anständiger LA hat dann aber gleich mindestens vier mal so viele Eingänge. Und zudem steht da statt 100MHz schon mal 1GHz. Da ist nichts mit gleichzeitig lesen und übertragen: http://microcontrollershop.com/product_info.php?products_id=3772 Da muss zwischengespeichert werden. Und dann sind wir immer noch weit weg von "High-End", wo dann aber ASICs das Rennen machen: https://www.tek.com/logic-analyzer/tla6400 Oder gar "Highest-End", wo dann schon die Messkabel in spannende Preisregionen kommen: https://www.tek.com/logic-probe
:
Bearbeitet durch Moderator
>Am Bs. eines Saleae: Wobei die billigen Salea-Clones für 12€ mit einer Samplingrate bis 24Mhz durchaus einen MC und kein FPGA haben.
Marc schrieb: >>Am Bs. eines Saleae: > > Wobei die billigen Salea-Clones für 12€ mit einer Samplingrate bis 24Mhz > durchaus einen MC und kein FPGA haben. Welche Samplingbreite ? Welche Samplingtiefe ? Ein ATMega an 24 MHz cloxk kann auch 24 MS/s aber halt nur 8 bit breit und 1 Sample tief.
Wobei ein billiger Salea-Clone für 12€ auch nur einen 8-Bit Port einliest. AD-Wandler werkeln da keine. Martin schrieb: > Am Bs. eines Saleae: Die Eingangssignale gehen auf einen AD-Wandler.
Der der 8051 im Cypress FX2 des Saleae kommt jetzt nicht wirklich mit den Daten in Berührung. Im Prinzip konfiguriert er nur etwas interne Hardware (GPIF+FIFO) und lehnt sich dann zurück während die Daten an ihm vorbei in Richtung USB rauschen. Die eigentliche Verarbeitung der Daten findet dann auf dem PC statt. Ein FPGA hat da noch ein paar mehr Möglichkeiten, etwa Triggerlogik oder eine Kompression der Daten. https://blackmesalabs.wordpress.com/2016/10/24/sump2-96-msps-logic-analyzer-for-22/
Der Cypress Chip auf den Salea Boards hat zwar einen MC aber auch Zusatzhardware welche die Daten direkt in die ebenfalls eingebauten Fifos schaufelt und über USB überträgt. Der eingebaute 8051 könnte das nicht mit dieser Geschwindigkeit. Mit dem Original Cypress EntwicklungsBoard sind auch 16 Bit mit 12Mhz möglich. Salea hat aber den Chip mit weniger Pins verwendet und da gehen nur 8 Bit. Für direkte Übertragung ohne Zwischenspeicher, wie Salea es macht, will USB2.0 alle 125us (microslot) einen gefüllten Buffer zu Übetragung haben und da ist die Geschwindigkeit der Eingänge nicht das einzige Problem
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.