mikrocontroller.net

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


Autor: uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens Sch (jenser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATXMEGA!

Der hat einen 12Bit ADC und DAC.

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achtung beim XMEGA!

Errata genau lesen.

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

Autor: Matthias W. (matt007)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias W. (matt007)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias W. (matt007)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Ernst (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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/...

Autor: Ernst (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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


Autor: Bernd N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias W. (matt007)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ernst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh Dir diese beiden Typen an:
ADC
http://www.reichelt.de/ICs-M-MN-/MCP-3201-CI-P/ind...

und DAC
http://www.reichelt.de/ICs-M-MN-/MCP-4921-E-P/inde...

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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias W. (matt007)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.