Lesen und Verarbeiten von mehr als 32 ADC-Kanälen bei hohen Frequenzen

Für ein Projekt muss ich 32 oder mehr Fotowiderstände gleichzeitig abtasten und eine ID und einen Wert des hellsten Fotowiderstands über eine Kommunikation zurückgeben (i2c, seriell usw. spielt für mich keine Rolle). Ich habe Probleme damit, so viele ADCs gleichzeitig zu lesen und gleichzeitig hohe Rückgaberaten beizubehalten (> 100 Hz wären vorzuziehen, aber das kann unrealistisch sein).

Ich habe gehört, dass FPGAs für diesen Zweck verwendet werden können, aber ich habe nur begrenzte Zeit und keine Erfahrung damit. Gibt es Mikrocontroller, die so viele ADCs haben, oder haben Sie andere Vorschläge? Danke.

Was werden Sie mit den Daten tun, nachdem Sie sie erhalten haben? Zur späteren Verarbeitung aufbewahren? Ansteuern eines DAC in einem Regelkreis? 32 DACs in 32 Regelkreisen ansteuern? An einen PC senden?
Es kann entweder direkt über USB oder einen Mikrocontroller als Mittelsmann an einen PC gesendet werden, je nachdem, was am Ende bequemer ist.
Sie können sich USB-Datenerfassungskarten ansehen. Bei eBay habe ich Angebote von USB-Sticks mit 6 Kanälen von 10 Bit für unter 10 $ gesehen. Käufer natürlich aufgepasst.
Bei der Herangehensweise würde ich kreativ werden. Zum Beispiel brauchen Sie die Werte nicht, Sie müssen nur wissen, welcher der größte ist. Vielleicht können Sie 32 Kappen gleichzeitig über Integratoren aufladen und einfach die erste festhalten, um einen bestimmten Schwellenwert zu erreichen.
100Hz sind keine hohen Frequenzen. Ich halte hohe Frequenzen bei etwa 100 MHz, was definitiv ein FPGA für 32 Kanäle erfordern würde. Bei 100 Hz können Sie analoge Multiplexer verwenden, solange Sie nicht alle Samples zur exakt gleichen Sample-Zeit benötigen.

Antworten (1)

100Hz auf 32Kanälen klingt sehr gut machbar.

Angenommen, wir sprechen von 8 bis 12 Bit, das sind nur 12 * 32 * 100 = 38400 Bit pro Sekunde Abtastarbeit.

Selbst 16 Bit oder 32 Bit pro Kanal würden das Sampling-Budget bei nur 100 Hz nicht stark belasten, aber mit einem durchschnittlichen Fotowiderstand über 10 bis 12 Bit zu gehen, ist wahrscheinlich schon mehr als übertrieben, sie sind zwischen zwei verschiedenen Typen nicht so konsistent wie Sie benötigen eine Genauigkeit von einem Millivolt auf Ihrem ADC.

Wenn Sie eine exakte Gleichzeitigkeit benötigen, benötigen Sie nur einen Satz von 4-, 8- oder sogar 16-Kanal-ADCs, keine andere Option dafür. Wenn Sie "gleichzeitig" benötigen, gibt es viele MCUs, die 200 kSample / s bis 2 MSample / s und 8 bis 10 Kanäle im Mux bieten. Wenn Sie 8 Kanäle auf Ihrer MCU haben, können Sie einen analogen Multiplexer von 1 bis 4 auf jedem Kanal verwenden und daraus 8*4 = 32 Kanäle machen.

Wenn Sie 32 Kanäle mit 200 kSample/s mit etwas Einschwingzeit dazwischen scannen müssen, sagen wir 10 us, können Sie sie alle scannen:

32*10us + 32*(1/200000)s = 480us.

Wenn Sie 100 Berichte pro Sekunde benötigen, bei denen zwischen einem Probenstapel 9,52 ms vergehen, ist das fast ein Faktor 20 mehr als die Zeit, die zum Abtasten benötigt wird, und es scheint, als würden sie gleichzeitig aufgenommen, verglichen mit Ihrer Messrate.

Ich würde Ihnen einige genaue MCUs empfehlen, aber da ich sehr stark von Atmel geprägt bin, denke ich, dass dies voreingenommen / meinungsbasiert wäre. Aber wenn Sie einen Atmel wollen, schauen Sie sich die Serien ATMega und ATXMega an, sie sind einfach zu bedienen und leistungsstark. Die ATXMega-Typen bieten viel Knall für relativ wenig Geld. Aber Microchip und Texas Instruments haben sicherlich Gegenstücke im Wert von 4 bis 6 US-Dollar mit billigen Experimentierplatinen, die darauf basieren und die Sie verwenden könnten, wenn Sie der Meinung sind, dass es bessere Beispiele oder Unterstützung für diese gibt.

Es gibt eine weitere Alternative für das simultane Sampling: mehrere Sample-and-Hold-Schaltungen und ein einzelner ADC mit MUX.
@NickJohnson Ausgezeichneter Punkt, den ich völlig vergessen habe zu berücksichtigen.