Forum: Mikrocontroller und Digitale Elektronik Analogsignal Optimierung mit einem uC


von Johnny S. (sgt_johnny)



Lesenswert?

Hallo

Ich möchte mich demnächst einem Bereich der Elektronik widmen von dem 
ich überhaupt keine Ahnung habe.

Es geht darum Analogsignale mit einem uC zu messen und zu optmieren. Es 
soll ein SIPM (Photomultiplier als Silizium Ediditon). Dieser Liefert 
beim eintreffen eines Lichtstrahls ein Signal mit einer gewissen 
Amplitude. Diese soll gemessen werden.

Es interresiert nur der höchste wert der Amplitude, der Rest ist 
irrelevant.

Wenn ein Signal erzeugt wird, und dann lange keines mehr kommen würde, 
wäre die Auswertung relativ leicht. Nur ist es ein Problem wenn zwei 
Signale kurz hintereinander eintreffen, das erste Signal ist noch am 
"abfallen" da trifft schon das zweite ein, und verfälscht den 
Maximalwert.  Siehe das Bildchen im Anhang. In der Fachsprache nennt man 
das wohl "Pulse Pileup".

Einige Infos zum SIPM:

DarkCountRate = 300-800kHz
Signal Rise Time =  typ. 0.6ns
Signal Pulse Width (FWHM) = typ. 1.5ns
Cell Recharge time = typ.  82ns (ich nehme mal an das ist eine 
"Totzeit")


Nun ist meine Frage, wie wertet man so etwas am besten mit einem uC aus? 
Und was für ein uC würde man hier am besten verwenden?  Neben der 
Signalauswertung muss eigentlich nicht mehr viel gemacht werden ausser 
die Werte zu speichern.

Früher hat man das immer Hardware-Mässig gemacht, aber ich denke mal 
heutzutage sollte das auch mit uC's machbar sein.


Jegliche Tipps oder Infos sind Willkommen :)

von Thomas E. (picalic)


Lesenswert?

Johnny S. schrieb:
> Signal Rise Time =  typ. 0.6ns
> Signal Pulse Width (FWHM) = typ. 1.5ns

Vergiss das mit dem Mikrocontroller statt Hardware! Solche Zeiten kann 
kein handelsüblicher Mikrocontroller analog erfassen.

: Bearbeitet durch User
von THOR (Gast)


Lesenswert?

Thomas E. schrieb:
> Johnny S. schrieb:
>> Signal Rise Time =  typ. 0.6ns
>> Signal Pulse Width (FWHM) = typ. 1.5ns
>
> Vergiss das mit dem Mikrocontroller statt Hardware! Solche Zeiten kann
> kein handelsüblicher Mikrocontroller analog erfassen.

Stimme ich zu.

Wenn es nur um das Detektieren eines Pulses gehen würde, könnte man ja 
noch mit dem Analog Komparator arbeiten. Dann müsste man sich allerdings 
mit dem propagation delay rumschlagen.

Aber dann noch die Amplitude messen? Nee. Das liegt irgendwo zwischen 
"geht nicht" und "wird absurd teuer und aufwändig".
Das ist letzten Endes ein GS/s DSO was du da verbauen willst.

von Johnny S. (sgt_johnny)


Lesenswert?

THOR schrieb:
> Aber dann noch die Amplitude messen? Nee. Das liegt irgendwo zwischen
> "geht nicht" und "wird absurd teuer und aufwändig".
> Das ist letzten Endes ein GS/s DSO was du da verbauen willst.


Schade...  Der Sprung von 50ns zu 1.5 ns scheint wohl doch nochmals ein 
grosser zu sein. Die 50ns haben ja auch gewöhnliche PMT's und die werden 
im Hobbybereich gerne mal mit einer Soundkarte ausgewertet.


Ein anderer Sipm Hersteller bietet ein 4-fach Messmodul für 5k$ an, 
scheint mal eines dieser Produkte zu sein, wo es nicht nur "um gewinn" 
geht.

von Thomas E. (picalic)


Lesenswert?

Johnny S. schrieb:
> Die 50ns haben ja auch gewöhnliche PMT's und die werden
> im Hobbybereich gerne mal mit einer Soundkarte ausgewertet.

Sorry, mit PMTs habe ich mich noch nicht beschäftigt, aber daß man 50 ns 
Signale mit einer PC Soundkarte vernünftig auswerten kann, halte ich 
irgendwie für ein Gerücht!

von Klaus R. (klara)


Lesenswert?

Johnny S. schrieb:
> Neben der
> Signalauswertung muss eigentlich nicht mehr viel gemacht werden ausser
> die Werte zu speichern.

Was meinst Du damit? Ist der Signalverlauf schon aufgenommen?
Das Aufzeichnen des Signalverlaufs könnte man vermutlich mit einem sehr 
schnellen AD-Wandler durchführen. Danach könnte sich ein Prozessor in 
Ruhe mit der Analyse beschäftigen. Ich könnte mir auch denken das hier 
ein Raspberry Pi zum Einsatz kommen muss. Es gibt ja jetzt auch von 
Intel auch noch etwas schnelleres.

http://www.ti.com/lsds/ti/data-converters/adcs/high-speed-adcs-products.page#p300=1200;3300

Bei TI findest Du sicher etwas passendes. Der Wandler wird aber einige 
100€ kosten.
mfg klaus

von Johnny S. (sgt_johnny)


Lesenswert?

Klaus R. schrieb:
> Johnny S. schrieb:
>> Neben der
>> Signalauswertung muss eigentlich nicht mehr viel gemacht werden ausser
>> die Werte zu speichern.
>
> Was meinst Du damit? Ist der Signalverlauf schon aufgenommen?
> Das Aufzeichnen des Signalverlaufs könnte man vermutlich mit einem sehr
> schnellen AD-Wandler durchführen. Danach könnte sich ein Prozessor in
> Ruhe mit der Analyse beschäftigen. Ich könnte mir auch denken das hier
> ein Raspberry Pi zum Einsatz kommen muss. Es gibt ja jetzt auch von
> Intel auch noch etwas schnelleres.
>
> 
http://www.ti.com/lsds/ti/data-converters/adcs/high-speed-adcs-products.page#p300=1200;3300
>
> Bei TI findest Du sicher etwas passendes. Der Wandler wird aber einige
> 100€ kosten.
> mfg klaus

Ich meinte damit, das an dem uC nicht noch sonstige Spielereien wie 
Displays oder so laufen.

Nein der Signalverlauf ist nicht aufgenommen, die meisten uC haben ja 
auch einen ADC, aber man kann natürlich auch noch einen dazu bauen, wenn 
das nötig ist.



Mitlerweilen habe ich herausgefunden, das die angaben im Datenblatt für 
den "FAST MODE" sind, es gibt noch einen Standard-Mode. Da ist das 
Signal länger.

http://www.sensl.com/downloads/ds/TN%20-%20Intro%20to%20SPM%20Tech.pdf

Siehe Seite 5


Könnte man dann irgendwas Hardwaremässig machen, das den Maximalwert 
solange speichert bis die Kurve wieder 0 ist, und dann löscht?

Prinzipell ist ja die Frage, wie schnell muss der ADC sein? Die Zählrate 
ist ja auch noch entscheidend?

: Bearbeitet durch User
von Ohmar (Gast)


Lesenswert?

Vermutlich geht es darum:
https://www.researchgate.net/figure/228564559_fig1_Figure-1-pile-up-effect-on-a-pulse-peak-from-the-tail-of-a-preceding-pulse

Also Du kannst das natürlich mit sehr schnellen ADC und einer sehr 
schnellen Signalaufbereitung messen.
Ich würde das Thema aber anders angehen:
Nimm schnelle, ferige Messtechnik, zum Beispiel ein entsprechendes 
Oszilloskop und werte die Signale dann mit einem PC aus.
Die Geräte kannst Du so einstellen, dass sie auf ein entsprechendes 
Signal warten und dann triggern. Danach bekommst Du die Daten zur 
Auswertung rein.

Hier gibt es sowas: https://www.picotech.com/products

von Strubi (Gast)


Lesenswert?

Moin,

also mit uC oder gar DSP kannst du das knicken. Aber guck dich doch mal 
beim CERN um, da basteln die öfters mal was pfiffiges auf FPGA-Basis, 
was solche Messungen angeht.
Diesen kurzen Puls so hübsch zu erfassen, um ihn anhand der Wellenform 
rein digital auszuwerten, dürfte etwas zu knackig werden. Aber du 
könntest dir einen Flash-ADC quasi von Hand auf FPGA-Basis stricken. 
Ansich musst du ja nur den validen Puls detektieren und eine schnelle 
Sample&Hold-Schaltung machen, dann kannst du in Ruhe binnen der 
'Totzeit' die Amplitude genauer mit einem langsameren ADC auslesen.
Wenn du die Pulsform kennst, ist das vermutlich der effizienteste Weg. 
Dürfte dazu auch einige Papers im Bereich Spektroskopie geben und die 
Sache mit den LVDS-I/O zum Komparatormissbrauch ist auch recht gut 
dokumentiert.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Im DSP-Guide gibt es ein kurzes Kapitel zum Thema Impulsauftrennung für 
Scintillationssignale durch Deconvolution
http://www.dspguide.com/CH17.PDF Seite 301-303
http://www.dspguide.com/ch17/2.htm

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Ohmar schrieb:
> zum Beispiel ein entsprechendes
> Oszilloskop und werte die Signale dann mit einem PC aus.

Das fiel mir eben auch ein. Sicher ein gangbarer Weg.

von Johnny S. (sgt_johnny)


Lesenswert?

Klaus R. schrieb:
> Ohmar schrieb:
>> zum Beispiel ein entsprechendes
>> Oszilloskop und werte die Signale dann mit einem PC aus.
>
> Das fiel mir eben auch ein. Sicher ein gangbarer Weg.

Das funktioniert sicherlich, ist aber keinesfalls annähernd portabel.
Es gibt kommerzielle Geräte welche sowas verbaut haben (zb. Polimaster), 
jedoch sind diese für den Privatmann leider viel zu teuer, da Sie 
natürlich diversen Standarts und Normen ensprechen müssen usw. usw.... 
Darum suchte ich nach einer Selbstbau-Lösung

von Johnny S. (sgt_johnny)


Lesenswert?

Ich werd mir diesen Beitrag genauer unter die Lupe nehmen:

https://ds0.me/sipm/index.html#electronics-1

Scheinbar kann man sogar mit wüst gelöteten Boards irgendwelche 
Brauchbaren Ergebnisse Erreichen :D

von David S. (daveshah)


Lesenswert?

Hallo

Leider kann ich nur ein bisschen Deutsch sprechen, aber ich werde zu 
antworten versuchen.

Ich habe die Internetseite (ds0.me) geschrieben.

Wenn man der höchste wert der Amplitude will, soll man ein ADC und FPGA 
benutzt (https://ds0.me/sipm/index.html#future). Zuerst habe ich einen 
Komparator benutzt, aber es war nicht so gut.

In meine Anwendung (ich wollte kosmischen Strahlung messen), war die 
Impulse nicht sehr häufig (weniger 50 pro Sekunde). So war "Pulse 
Pileup" kein Problem. Das SiPM und der Verstärker
produzieren Impulse, die viele hundert Nanosekunden lang sind.

Wenn die Impulse mehr häufig sind (bestimmt über ein paar Tausend pro 
Sekunde), muss man einen schnelleren Verstärker, ADC und möglicherweise 
FPGA benutzen, um zu "Pulse Pileup" vermeiden. Für den Verstärker, 
könnte man das ganz LT6230-10 benutzen; aber
reduzieren Sie den Verstärkung und den 10pF Kondensator.

David

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.