Forum: Mikrocontroller und Digitale Elektronik atmel controller mit 12Bit ADC min. 1000 Messungen/s


von uwe (Gast)


Lesenswert?

Der Beitrag sagt es schon!

Ich bin auf der Suche nach einem AVR, der einen 12Bit ADC onboard hat. 
Gerne würde ich mindestens 1000 Messungen je sekunde tätigen. Also eine 
hohe Sample-Rate.

Kann mir jemand einen Chip empfehlen? evlt brauche ich noch 4 digitale 
I/Os. und eine UART, externen Baudratenquarz.

Danke für Empfehlungen

von Jens S. (jenser)


Lesenswert?

ATXMEGA!

Der hat einen 12Bit ADC und DAC.

von Jörg B. (manos)


Lesenswert?

Ansehen kann man sich in dem Zusammenhang auch mal die "Battery 
Management AVR"
ATMega8HVA, ATMega16HVA, ATMega16HVB, ATMega32HVB
Die haben auch 12 Bit Auflösung und Wandlungsraten von > 1500/s bei 1 
MHz.

von Matthias (Gast)


Lesenswert?

Achtung beim XMEGA!

Errata genau lesen.

Die 12-bit werden wohl (nicht immer) ganz erreicht!

von Matthias W. (matt007)


Lesenswert?

Jörg B. schrieb:
> ATMega8HVA, ATMega16HVA, ATMega16HVB, ATMega32HVB
> Die haben auch 12 Bit Auflösung und Wandlungsraten von > 1500/s bei 1
> MHz.

weiß denn zu diesen Teilen jemand was?
Ich würde gerne damit eine Last betreiben.
Kann jemand etwas dazu sagen zu diesen Teilen?

Matthias

von Knut (Gast)


Lesenswert?

Also 10kHz über mehrere Kanäle ist kein Problem, solange du es nicht mit 
dem Rechnen übertreibst. Die Dinger sind cool, allerdings am Anfang sehr 
gewöhnungsbedürftig was die Register angeht.


Gruß Knut

von Matthias W. (matt007)


Lesenswert?

Knut schrieb:
> Also 10kHz über mehrere Kanäle ist kein Problem, solange du es nicht mit
> dem Rechnen übertreibst. Die Dinger sind cool, allerdings am Anfang sehr
> gewöhnungsbedürftig was die Register angeht.

Danke Knut. Sind die Register denn so anders?
Kümmert sich da der WINAVR/GCC nicht drum?

Wo bekomm ich so ein Teil am einfachsten her?

PWM ausgeben werden die ja auch können.
Ist da eine gute Auflösung erreichbar
oder sollte besser ein 12bit DAC dran?

Die andere Lösung wäre ein normaler AVR
mit externen Wandlern. Oder ein MSP430.
Da gibt es Typen mit 12bit ADC und DACs.

Matthias

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ein normaler AVR könnte mit Tricks wie Oversampling und gewollte 
Rauscheinkopplung auf des Messsignal auch 12Bit erreichen. Schon gerade 
bei der niedrigen Samplerate.

von Matthias W. (matt007)


Lesenswert?

Knut Ballhause schrieb:
> Ein normaler AVR könnte mit Tricks wie Oversampling und gewollte
> Rauscheinkopplung auf des Messsignal auch 12Bit erreichen. Schon gerade
> bei der niedrigen Samplerate.

wie gut sind denn die Ergebnisse damit?
Und welche Nachteile hat dies in Bezug
auf Einschwingzeit?

von Ernst (Gast)


Lesenswert?

Matthias W. schrieb:
> wie gut sind denn die Ergebnisse damit?

Die Auflösung steigt, aber die Genauigkeit bleibt bei max. 10 Bit wie im 
Datenblatt angegeben.
Man kann die unteren Bits auch per Zufallsgenerator erzeugen und kommt 
so problemlos auf 24Bit bei hoher Messrate.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ernst schrieb:
> Die Auflösung steigt, aber die Genauigkeit bleibt bei max. 10 Bit

Das ist falsch. Lektüre zum Thema gibt es hier: 
http://www.atmel.com/dyn/resources/prod_documents/doc8003.pdf

von Ernst (Gast)


Lesenswert?

Knut Ballhause schrieb:
> Das ist falsch. Lektüre zum Thema gibt es hier:

Dort wird über höhere Auflösung geschrieben. Mir geht's um die 
Genauigkeit.

Ich sehe ins Datenblatt vom ATmega164P/V 09/08, was wohl ein neuerer Typ 
ist. Dort finde ich unter ADC Characteristics für die abs. Genauigkeit 
Werte zwischen 2,75 und 3,5 LSB und auch noch Angaben über die 
Nichtlinearität INL von 1,5 LSB: nicht max. sondern typisch!

Ich sehe nicht, wie man daraus 12Bit Genauigkeit zaubern soll.
Ein 12Bit ADC, der hier wohl gesucht wird, hat bessere Daten.
Beispiele ADS7822 oder MCP3201.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Über den Algorithmus des Oversampling mit Decimation verringert sich 
auch der Fehler. Aus der AppNote:
1
To increase the resolution by one bit, four samples from the same ‘neighborhood’ are 
2
added. These samples have values that differ from each other by a few LSB, because 
3
of  the  noise.  These  four  samples  are  added:  508  +  507  +  505  +  505  =  2025. 
4
According to the decimation principle the answer now need to be scaled back to 11-
5
bit. It needs to be right shifted n times, where n is the desired extra number of bits. 
6
The result is 1012. After increasing the resolution, it suddenly is possible to achieve 
7
samples  between  the  original  quantization  steps.  Still,  the  signal  is  oversampled 
8
enough  to  increase  the  resolution  further,  to  12  bit.  Adding  16  10-bit  samples  and 
9
right-shifting the result 2 times will do this. The result is 2025. This number is more 
10
reliable,  since  the  error  margin  is  reduced  to  ~1.22mV  using  a  12  bit  result.  This 
11
example shows that the user who started off with a slow varying signal, sampled 3800 
12
times  per  second,  with  a  voltage  accuracy  of    ~5mV,  now  has  240  samples  per 
13
second with a 12-bit resolution, and a voltage accuracy of ~1.22mV.

von Bernd N. (Gast)


Lesenswert?

Beitrag "ADC und Fixed-Point Arithmetik"

Probier es aus aber das ko Kriterium sind hier 1000 Messungen pro 
Sekunde. Ich sehe nicht wie man dann noch 1000 Messungen hinbekommen 
soll.

von Matthias W. (matt007)


Lesenswert?

So wie ich das Thema ADC sehe macht es wohl wenig
Sinn einen ohnehin wohl schon ziemlich ungenauen
10bit-Wandler (2,75..3,5 LSB?) noch auf weitere
2 bit mehr aufzublasen.

Daher kam ja die Idee besser gleich einen
Mikrocontroller zu nehmen, der mehr bit kann
bei entsprechender Genauigkeit.

Die Typen ATMega8HVA und ATMega16HVA klingen
ja grundsätzlich brauchbar. Es stellt sich
die Frage wie einfach man diese als Privatmann
bekommen kann und ob man damit die Aufgabe
lösen kann.

Eine Frage ist dabei ob der GCC diese Derivate
brauchbar unterstützt oder ob man selbst
Anpassungen machen muss.

Eine weitere Frage ist welche Probleme zu
erwarten sind wenn ich eine PWM mit 12bit
Auflösung oder mehr erzeugen möchte. Wenn
dies nicht möglich ist müsste ich einen
externen DAC anschließen.

von Ernst (Gast)


Lesenswert?

Sieh Dir diese beiden Typen an:
ADC
http://www.reichelt.de/ICs-M-MN-/MCP-3201-CI-P/index.html?;ACTION=3;LA=444;GROUP=A217;GROUPID=2914;ARTICLE=90070;START=0;SORT=artnr;OFFSET=500;SID=15w3FueawQAQ8AADzoXi06b09c48df5367744f214a125e8560bc9

und DAC
http://www.reichelt.de/ICs-M-MN-/MCP-4921-E-P/index.html?;ACTION=3;LA=3;GROUP=A217;GROUPID=2914;ARTICLE=90088;START=0;SORT=artnr;OFFSET=500;SID=15w3FueawQAQ8AADzoXi06b09c48df5367744f214a125e8560bc9

Für das Geld bekommst Du keine speziellen AVRs, hast 12 Bit mit hoher 
Geschwindigkeit und mußt keine Klimmzüge programmieren. Die ADCs gibt es 
mit bis zu 8 Kanälen und die DACs mit 2 Kanälen, wenn's ein bißchen mehr 
kosten darf.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bernd N. schrieb:
> Probier es aus aber das ko Kriterium sind hier 1000 Messungen pro
> Sekunde. Ich sehe nicht wie man dann noch 1000 Messungen hinbekommen
> soll.

Der ADC des Mega schafft locker 32kHz Abtastung. Das ganze 32x machen 
und durch 8 dividieren. Schon hat man 12Bit bei 1kHz. Externe Bauteile, 
die für 12Bit geschaffen sind, sind bestimmt besser, aber wenn es um 
Platz, Verfügbarkeit und Preis geht, kann der AVR zur Not mithalten.

von Bernd N. (Gast)


Lesenswert?

>> Das ganze 32x machen und durch 8 dividieren.

Deswegen der Link zum Code, 32x für 12 BIT Oversampling funktioniert 
nicht aber du kannst es gerne ausprobieren.

von Matthias W. (matt007)


Lesenswert?

Ernst schrieb:
> Sieh Dir diese beiden Typen an:
> ADC und DAC

vielen Dank! Die habe ich angesehen.
Sind DIL und leicht zu verarbeiten.

> Für das Geld bekommst Du keine speziellen AVRs,

mag sein. Ich habe ja keine Ahnung was
diese obigen Teile kosten würden. Den
Vorteil sah ich im integrierten Spannungsregler
und den Wandlern. Auch da wäre ja ein DAC
anschließbar.

> hast 12 Bit mit hoher
> Geschwindigkeit und mußt keine Klimmzüge programmieren.

es ist halt eine SPI durchzutackern.
Das kostet auch ein paar Taktschritte.
Egal ob es eine ISR ist oder mit im Code
untergebracht ist.

> Die ADCs gibt es
> mit bis zu 8 Kanälen und die DACs mit 2 Kanälen, wenn's ein bißchen mehr
> kosten darf.

das ist wirklich nett.
Alternativ wäre ein MSP430 denkbar.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bernd N. schrieb:
> 32x für 12 BIT Oversampling funktioniert
> nicht aber du kannst es gerne ausprobieren.

Habe ich schon gemacht für eine Temperaturmessung an meinen 
Heizungsreglern. Und was soll ich sagen: Es geht!

Edit: aaah.. ich sehe gerade, dass ich nur auf 11 Bit erweitert habe. 
Gut, der ADC des Mega kann auch mit 64kHz laufen ;-)

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.