Forum: Mikrocontroller und Digitale Elektronik Signalverarbeitung maximale Geschwindigkeit


von Horst (Gast)


Lesenswert?

Hallo,

ich möchte mit einem Atmel einen Quantenzufallsgenerator auslesen 
http://www.idquantique.com/products/files/quantis-specs.pdf Dieser hat 
systembedingt jedoch keine feste clockfrequenz.

Mein Gedankenansatz (bitte um Berichtigung, wenn falsch):
Die Breite eines Clockpulses (Quantenzufallszahlgenerator) beträgt 50ns. 
Um das auslesen zu können sollte mindestens ein Clockzyklus meines Atmel 
in diesen Zeitraum fallen, damit ich einen Interrupt auslösen kann. D.h. 
meine Taktfrequenz des Atmel sollte mindestens: 20Mhz sein!? Geht das, 
oder bekomme ich damit ein Problem? Das auszulesende Signal liegt nach 
dem Clockpuls noch weitere 100ns, also zwei Taktzyklen an. schaffe ich 
das mit einem Interrupt auszulesen, oder benötigt ein Interrupt zu lange 
Zeit?

Da der Mikrocontroller in Abhängigkeit eines anderen Signals (~alle 
20ms) den Quantenzufallsgenarator ausliesst gäbe es im Anschluss genug 
zeit für die weitere Verarbeitung.

Gibt es schneller Atmels als 40 Mhz?
Wenn nicht werde ich zur Not ein schieberegister zwischenschalten um 
eine Geschwindigkeitsreduktion zu erreichen.

Viele Grüße
Horst

von Johannes M. (johnny-m)


Lesenswert?

Horst wrote:
> Das auszulesende Signal liegt nach
> dem Clockpuls noch weitere 100ns, also zwei Taktzyklen an. schaffe ich
> das mit einem Interrupt auszulesen, oder benötigt ein Interrupt zu lange
> Zeit?
Allein bei einem "nackten" Interrupt Handler (also ohne Sicherung von 
Registern u.ä.) dauert es vom Auftreten des Ereignisses (Flag wird 
gesetzt) bis zur Ausführung des ersten Befehls im Interrupt Handler 
mindestens 5-6 Takte (4 Takte für PC sichern und Sprung in den Vektor, 
2 oder 3 Takte für den Sprung in den Handler [je nachdem, ob rjmp reicht 
oder jmp benötigt wird], wenn der nicht direkt in der Vektortabelle 
steht). Und da kommt noch mal die Zeit hinzu, die benötigt wird, um den 
gerade in Arbeit befindlichen Befehl im Hauptprogramm zu Ende 
auszuführen, also i.d.R. noch mal 1-2 Takte.

von Fred S. (Gast)


Lesenswert?

Hallo Horst,

je nachdem, was Du mit den Daten tun willst, käme vielleicht auch einer 
der Counter (mit externem Eingang) bzw. die "input capture unit" in 
Frage.

Gruß

Fred

von 3348 (Gast)


Lesenswert?

Mir scheint ein CPLD passender.

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

Was es alles gibt... Kann es sein, dass das Ding einfach ein Wiederstand 
ist, an dem das thermische Rauschen abgenommen wird? Oder eine Diode 
knapp unter maximaler Sperrspannung, an der die Durchschläge gezählt 
werden? Egal.

Der Generator gibt laut Beschreibung hinterm Link Clock und Daten. Okay, 
ich kenne Atmel Prozessoren nicht von innen. Aber vielleicht gibt es ja 
welche mit USART, das schnell genug ist, um im Synchronmodus mit dem 
Generatortakt getaktet zu werden.

Abgesehen davon, du willst ja nicht alle Daten nutzen. Wenn das Ding 
vernünftigen Zufall produziert, dann ist egal, welche du verpasst. Du 
darfst also nur so schnell lesen, dass du kein Bit verdoppelst, kannst 
aber beliebig viele überspringen, wenn dein uC zu langsam ist.

virtuPIC

von Schwurbl (Gast)


Lesenswert?

Ich schätze, man könnte entweder mit dem SPI-Slave des AVR oder einem 
simplen Schieberegister '595 die Daten in handliche Byte-Häppchen 
umwandeln, die dann mit 500kHz eintrudeln.

von Arc N. (arc)


Lesenswert?

Die Schieberegistervariante schlägt der Hersteller vor...
http://www.idquantique.com/products/files/quantis-appnote.pdf
Dahinter noch ein Latch und man kann die Daten in Ruhe auslesen.

> Kann es sein, dass das Ding einfach ein Wiederstand
> ist, an dem das thermische Rauschen abgenommen wird? Oder eine Diode
> knapp unter maximaler Sperrspannung, an der die Durchschläge gezählt
> werden? Egal.

Nein, da ist tatsächlich drin was draufsteht:
Eine Photonenquelle, ein halbtransparenter Spiegel und die Detektoren.

von Horst (Gast)


Lesenswert?

Vielen Dank für die vielen Antworten!
Werde die Schieberegistervariante benutzen. Klar könnte ich auch einfach 
zu einem bestimmten zeitpunkt auslesen (welche Z-Zahl ist ja irrelevant) 
aber ich haette Bedenken gehabt zum Zeitpunkt eines Signalwechsels 
auszulesen.

Nochmal vielen Dank an Alle!

Horst

von Peter D. (peda)


Lesenswert?

Horst wrote:
> Vielen Dank für die vielen Antworten!
> Werde die Schieberegistervariante benutzen.

Nimm aber nicht das 164 sondern das 595. Dann hast du 8 Bitzeiten Zeit, 
um es auszulesen.


Peter

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.