Im Rahmen eines Projektes soll eine Messschaltung entwickelt werden, die 4 analoge Werte messen soll und dann zunächst über den seriell Port ausgeben soll. Später soll eine busumwanlung zu usb stattfinden. Ich bin ein Neuling im Bereich Mikrocontroller. Ich habe mich schon eingelesen und denke von der Support Seite her würde am besten ein Atmel AVR in Frage kommen. Jetzt zu den Daten. Die einzelnen Werte sollen mit mind. 25k sps abgetastet werden. Also gesamte Samplingrate 100 k sps. Es soll eine Genauigkeit von mind. 10 Bit (vielleicht auch 12Bit)verarbeitet werden. Welcher Atmel AVR würde sich am besten eignen. Schwierig ist auf die hohen Abtastfrequenzen zu gelangen. Welche erfahrungen habt ihr. Gibt es vielleicht auch einen uC der schon die USB schnittstelle onboard hat und die Spezifikationen erfüllt. Bin anhand des großen Angebots an unterschiedlichen uC bei der Auswahl noch nicht schlüssig. Vielen Dank im Voraus
Also bei den Abtastraten brauchste dir keine Sorgen zu machen, die AVRs schaffen bis zu 200 kS/s, aufgeteilt auf 4 Kanäle ergibt das gut Luft. Schlechter siehts schon mit der Auflösung aus, 10 bit nominell, in der Praxis verschwinden die unteren beiden Bits meistens im Rauschen. :-)
Ein AVR wird die Abtastrate von 100 ksps nicht schaffen. Die maximal zulässige Eingangstaktfrequenz von dem SAR-Wandler ist (soweit ich das in Erinnerung habe) 250 kHz, damit kommt man niemals auf 100 ksps. Der AT91SAM7S64 schafft zum Beispiel bis zu 100 ksps und hat eine 12 Mbit/sec USB Schnittstelle. Grüße, Peter
oh da hab ich mich versehen. also es soll eine tastfrequenz von 25khz pro kanal gegeben sein. dann würd der also gehen.
Hier gabs auch schon mal einen Beitrag dazu: Beitrag "Re: ADC - Wie schnell aktualisiert der? Ist ein Oszi möglic" Grüße, Peter
Mit Mühe und Not, und knapp außerhalb der Spezifikation kommt man beim AVR (8bit) schon noch auf 100 ksps. Allerdings kann man dann nur mit etwa 8 Bit Auflösung rechnen. Man könnte einen externenAD wandler nehmen, oder einen µC mit besserem AD Wandler, z.B. PIC33xxx , Atmel Xmega. Das hat man 12 bit und genügend Tempo.
Den Xmega hab ich mir auch schon angeschaut. aber ist dieser nicht für diesen zweck überdimensioniert? 20kHz pro kanal sollen noch gemessen werden können bei 10 bit genauigkeit. das wär gut
Dran denken, dass man die Daten nicht nur sampeln, sondern auch übertragen will. Vielleicht gleichzeitig. Könnte ein AVR leicht ins Schwitzen kommen. Also erst einmal ausprobieren, wie hoch die Auslastung des Controllers bei 200KB/s USB-Datenrate ist, denn die 12Mb/s sind die nominelle USB-Datenrate, nicht notwendigerweise die real dauerhaft erzielbare.
oder dann doch lieber einen mit externer umwandlung seriell->usb?
Wobei diese serielle Schnittstelle zum USB-Controller dann mit an die 2Mb/s laufen sollte. Auch das wird interessant. Generell würde ich peilen, dass jeder Controller ohne DMA aus dem Rennen ist.
Was spricht denn gegen den AT91SAM7S64, den ich oben vorgeschlagen habe? Den bekommt man als Einzelstück für 6,25 € und er hat alle geforderten Eigenschaften. Einen gcc Compiler gibts auch (für den ARM7). Wenn der aus irgend einem Grund nicht optimal sein sollte, würde ich als nächstes bei den MSP430F5xxx suchen. Die sind aber deutlich schwieriger erhältlich und genauso neu wie die ATXmega.
Die abtastrate ist eine Sache. Und was soll mite den Werten geschehen ? Ein paar floating point Matritzen ?
die werte sollen an ni labview übertragen werden und dort angezeigt werden
die werte sollen an ni labview übertragen werden und dort angezeigt werden.
mikro1111 schrieb: > die werte sollen an ni labview übertragen werden und dort angezeigt > > werden Was ist denn ni-labview? ist ni ein zusatztool für labview, ich kenne das garnicht, obwohl ich schon mal mit labview gemalt habe.
ich denke es läuft auf einen atmel xmega hinaus. ich hoffe, dass dieser die geforderten geschwindigkeiten erbringt. für die wandlung seriell zu usb könnte ja vielleicht ein FT232R zum Einsatz kommen. wie kann bei dem xmega das dma laufen??? wie wird so etwas konfiguiert?`
Bei 100ksamples/s und 10 Bit hast du 200kByte/s Datenaufkommen.Falls die seriell geschickt werden sind das 2Mbit/s. Das ist schon sehr an der Grenze des FT232R überhaupt mit VCP-Treiber. Was den xmega betrifft weiss ich auch nicht ob der auf der seriellen so schnell ist. Würde zu einem System mit STM32F (ARM Cortex) und W5300 Ethernet Controller raten. Damit kommst du sicher durch, außerdem hat der STM 12 Bit A/D. Grüße
hmm wollte eher in richtung atmel avr bleiben. was wäre hier denn leistungsmäßig drin über die serielle schnittstelle?
Anderer Ansatz: Standard ATMega128 zum Beispiel und per Data Auqisition System die daten an USER SPI schnittstelle übertragen.
Warum seit ihr alle so heiß auf FT232? Es gibt auch ein FT245. Oder in deinem Fall ein FT2232H in FiFo Mode. Ich habe das erst kürzlich bei mir versucht: Ich habe ein Datenblock aus dem RAM eines xmega128A1 über den 245-FIFO des FT2232H geschickt und komme damit (ohne DMA) auf 1 MB/s. Sollte also schon machbar sein.
Standard ATMega128 zum Beispiel und per Data Auqisition System die daten an USER SPI schnittstelle übertragen. Hat jemand erfahrungen damit? welche analog digital wandlung würde dies denn bieten???
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.