Forum: Mikrocontroller und Digitale Elektronik ADC wie aus 10Bit 12 oder mehr machen?


von Peter (Gast)


Lesenswert?

Hi,

ich habe einen LPC1114 und will ein Analogsignal einlesen (1Khz).

Ich habe 4 AD Eingänge und taste die zur Zeit mit 2 KHz ab.
Über diese Werte läuft ein Filter (Mittelwert mit 2 Werten), was dann 
meine 1KHz macht.


Mir reichen leider die 10Bit vom Wandler nicht und das Layout ist 
fertig.
Man hat mir gesagt das ich irgendwie durch oversampling mit 1-X Bits 
dazu rechnen kann.

Geht das? Und wenn ja  wie und warum?

Peter

von Harald W. (wilhelms)


Lesenswert?

Peter schrieb:
> Hi,
>
> ich habe einen LPC1114 und will ein Analogsignal einlesen (1Khz).
>
> Ich habe 4 AD Eingänge und taste die zur Zeit mit 2 KHz ab.
> Über diese Werte läuft ein Filter (Mittelwert mit 2 Werten), was dann
> meine 1KHz macht.
>
>
> Mir reichen leider die 10Bit vom Wandler nicht und das Layout ist
> fertig.
> Man hat mir gesagt das ich irgendwie durch oversampling mit 1-X Bits
> dazu rechnen kann.

Wenn Du jeweils vier Werte einliest und aufaddierst hast Du 12Bit.
Bei 64 Werten sinds dann schon 16 Bit. Es wäre natürlich ein
Irrtum, jetzt anzunehmen, das Deine Werte jetzt auch eine Genauig-
keit von 12 oderb 16 Bit haben. Die Genauigkeit wird vom AD-Wandler
vorgegeben und wird ca. 8...9Bit betragen.
Gruss
Harald

von Bronco (Gast)


Lesenswert?

Peter schrieb:
> Geht das? Und wenn ja  wie und warum?

Angenommen, Du hast einen ADC, der auf 1V genau messen kann.
Du legst seine Spannung von z.B. 8,4V an.
Nun kann man argumentieren, daß Du statistisch gesehen bei 10 
Messungen 6x 8V und 4x 9V messen wirst. Ob das praktisch funktioniert, 
kann ich nicht sagen.

von Peter (Gast)


Lesenswert?

Gut habe es kapiert.

Also ist es Abhängig von Wandler, ob der genug jittert und das auch noch 
sauber um den Mittelpunkt. Dann kann man Statistisch sich ein paar Bits 
dazu mogeln.

Nicht sehr sauber aber ich kann es jetzt nicht mehr ändern. Ausser 50 
Bestückte Platinen zu entsorgen und das Teil neu zu machen.
Ist schon blöd wenn man nachträglich erst merkt das die Auflösung nicht 
reicht.

Peter

von Floh (Gast)


Lesenswert?

Interessehalber:
Wofür reichen die 10bit nicht?

von Harald W. (wilhelms)


Lesenswert?

Peter schrieb:

> Nicht sehr sauber aber ich kann es jetzt nicht mehr ändern. Ausser 50
> Bestückte Platinen zu entsorgen und das Teil neu zu machen.
> Ist schon blöd wenn man nachträglich erst merkt das die Auflösung nicht
> reicht.

Wozu brauchst Du denn diese "leere" Auflösung? So etwas einem Kunden
als 12 oder 16 Bit Wandler unterzujubeln grenzt an Betrug.
Gruss
Harald

von Peter II (Gast)


Lesenswert?

Peter schrieb:
> Ist schon blöd wenn man nachträglich erst merkt das die Auflösung nicht
> reicht.

die Frage ist ob der Rest überhaupt für 12bit reicht. Du brauchst auch 
eine Passende Referenzspannugnsquelle.

von Bronco (Gast)


Lesenswert?

Peter schrieb:
> Nicht sehr sauber aber ich kann es jetzt nicht mehr ändern. Ausser 50
> Bestückte Platinen zu entsorgen und das Teil neu zu machen.
> Ist schon blöd wenn man nachträglich erst merkt das die Auflösung nicht
> reicht.

Letztendlich mußt Du sowieso eine Validierung/Absicherung machen, welche 
Genauigkeit Dein System erreicht (liegt ja nicht nur am ADC allein). 
Dann kommt die Stunde der Wahrheit.

von branadic (Gast)


Lesenswert?

Insbesondere setzt die Methode ein verrauschtes Signal voraus, 
andernfalls könnte man auch einfach stumpf Nullen an den Messwert 
hängen.

branadic

von Dennis (Gast)


Lesenswert?

Die Standardantwort auf diese Frage:

http://www.atmel.com/Images/doc8003.pdf

:-)

von Falk B. (falk)


Lesenswert?

@  Peter II (Gast)

>> Ist schon blöd wenn man nachträglich erst merkt das die Auflösung nicht
>> reicht.

>die Frage ist ob der Rest überhaupt für 12bit reicht. Du brauchst auch
>eine Passende Referenzspannugnsquelle.

Nö, für 12 Bit AUFLÖSUNG tut es jede bliebig schlechte Referenzspannung. 
Von GENAUIGKEIT ist hier keine Rede. Siehe

Auflösung und Genauigkeit.

von Falk B. (falk)


Lesenswert?

@  Peter (Gast)

>ich habe einen LPC1114 und will ein Analogsignal einlesen (1Khz).

>Ich habe 4 AD Eingänge und taste die zur Zeit mit 2 KHz ab.

Was mal schon rein theoretisch absolut an der Grenze liegt, siehe 
Nyquistkriterium.

>Mir reichen leider die 10Bit vom Wandler nicht und das Layout ist
>fertig.

Pech gehabt.

>Man hat mir gesagt das ich irgendwie durch oversampling mit 1-X Bits
>dazu rechnen kann.

Ein Bit mehr braucht jeweil die doppelte Anzahl Messwerte als MINIMUM, 
wenn aussreichend Rauschen auf dem Signal liegt.

von Helmut S. (helmuts)


Lesenswert?

> Insbesondere setzt die Methode ein verrauschtes Signal voraus ...
Das Vorhandene oder Notfalls addierte Rauschen verteilt das Signal über 
einige Treppenstufen der A/D Kennlinie.
Um von 10bit auf 12bit zu kommen muss man dann statt 1 Messung 16 
Messungen mitteln. (Der Überabtastungsfaktor geht quadratisch hoch.)
Kannst du nicht einfach einen pin-kompatiblen 12Bit Wandler einsetzen?

von Peter (Gast)


Lesenswert?

Das ich Pech habe mit dem internen Wandler ist mir auch klar.
Ursprünglich hätten 8 Bit gereicht, aber wie es nun mal ist, wurden die 
Anforderungen etwas ergänzt.
Und da der LPC1114 keine bessere AD Einheit hat muss ich jetzt halt 
mogeln.

Peter

von Jasch (Gast)


Lesenswert?

Peter schrieb:
> Das ich Pech habe mit dem internen Wandler ist mir auch klar.
> Ursprünglich hätten 8 Bit gereicht, aber wie es nun mal ist, wurden die
> Anforderungen etwas ergänzt.

Ah ja, irgendwelche Schwachköpfe kommen gegen "Spielende" und ändern 
einfach die Regeln...

> Und da der LPC1114 keine bessere AD Einheit hat muss ich jetzt halt
> mogeln.

Also sowas macht mir Angst. Hoffentlich ist das bei Architekten nicht 
auch so: Ach so, sie wollen jetzt 100 statt 50 Stockwerke, na da muss 
ich ein bisschen mogeln.

Die korrekte Lösung ist den Schwachköpfen zu sagen dass eine solche 
Änderung der Anforderungen einen Neustart des Designs nach sich zieht. 
Ja, ja, ich weiss, Theorie und (beschissene) Praxis.

Wieso bezahlen diese Dumpfbacken eigentlich teure Fachleute wenn sie 
dann doch nicht auf die hören?

von tom (Gast)


Lesenswert?

...uppps,

Ohne Deine HW zu ändern kannst Du folgende Sachen schon mal beherzigen 
um ein bestmögliches Messergebnis zu erhalten:

Wenn Du ein Signal mit 1kHz Fmax dynamisch abtasten willst sind 2kHz 
Abtastrate deutlich zu wenig. Nyquist 2*f ist da pure Theorie.
Schau was Dein ADC sinnvoll hergibt und taste so schnell wie möglich ab.
Dann durch Oversampling siehe Vorredner den LSB-Quantisierungsfehler 
minimieren um wenigstens wirkliche 10bit zu bekommen.
Falls der uC auf dieser HW das hergibt ggf. versetzt (Interleave) mit 
zwei ADC-Kanälen das Signal abtasten und dann mitteln. Das würde die 
sample rate nochmal verdoppeln. Aber das benötigt wenigstens einen 
HW-Patch, denke ich.
Poste doch mal die Schaltung.


Ansonsten die einschlägigen Oversampling Appnotes der uC-Hersteller mal 
durchlesen und verstehen.

Das zu messende Signal anschauen und überlegen, in welchem Bereich wird 
eine höhere Auflösung gebraucht ? Bei kleinen Signalpegeln evtl. erstmal 
mit hoher Referenzspannung wandeln für den "Grobwert" und dann - wenn 
möglich - die Referenzspannung auf einen kleineren Wert umkonfigurieren 
und nochmal feiner messen. Sollte natürlich schnell genug passieren 
bevor Dein Signal sich verändert, da Du ja wieder zeitversetzt 
abtastest.

Ach ja, und nicht vergessen dem Kunden die Massnahmen transparent 
darzustellen und den Aufwand in Rechnung stellen ;o).

gutt lack, tom.

von Peter D. (peda)


Lesenswert?

Peter schrieb:
> Man hat mir gesagt das ich irgendwie durch oversampling mit 1-X Bits
> dazu rechnen kann.

Vergiß es.

Ohne zusätzliche Hardware kannst Du nicht ein müdes Bit mehr 
rauskitzeln.
Du müßtest ein kleines Dreiecksignal addieren und dazu synchron mehrere 
Wandlungen machen.

Ich hab mal mit nem AVR versucht, eine Anzeige 0..3000V aufzubauen. Dazu 
habe ich 256 Messungen addiert und dann auf 3000 skaliert. Es war gut zu 
sehen, wie die Anzeige 3V-Sprünge gemacht hat, d.h. es blieb bei 10Bit 
Auflösung.
Schlechtere ADCs, die mehr rauschen, mögen zwar Zwischenschritte 
anzeigen, aber die sind auf keinen Fall linear.


Peter

von Peter (Gast)


Lesenswert?

Die Kosten trägt so wie so immer der Kunde,
auch wenn es in diesem Fall nur ein paar Kumpels sind dehnen ich hier 
was verbessern soll.

Ich habe das Oversampling ausprobiert und es bringt mir nicht den 
gewünschten Erfolg. Linear ist es nicht und leider auch nicht 
wiederholbar. Das mag woanders gehen, aber bei dieser Schaltung ist 
nichts zu machen.

Darum habe ich die alternativen weiter geleitet und nun glaube ich das 
da eine Huckepack Platine gemacht wird mit einem besseren Wandler.
Das sollte dann die sauberste Lösung sein.

Danke,
Peter

von Harald W. (wilhelms)


Lesenswert?

Peter Dannegger schrieb:

> Ich hab mal mit nem AVR versucht, eine Anzeige 0..3000V aufzubauen. Dazu
> habe ich 256 Messungen addiert und dann auf 3000 skaliert. Es war gut zu
> sehen, wie die Anzeige 3V-Sprünge gemacht hat, d.h. es blieb bei 10Bit
> Auflösung.

Das macht trotzdem Sinn. Hättest Du stattdessen einen ICL710x
genommen, dann hättest Du 10V-Sprünge gehabt, obwohl der AD-
Wandler "mehr Bit" hat.
Gruss
Harald

von GB (Gast)


Lesenswert?

Welches Gehäuse vom LPC1114 hast Du denn?
Das LQFP48 und das HVQFN33 sind pinkompatible zum lpc1315/16/17 und der 
hat einen 12-Bit-Wandler.

von Thomas S. (tsalzer)


Lesenswert?

@ Falk Brunner (falk)


>Was mal schon rein theoretisch absolut an der Grenze liegt, siehe
>Nyquistkriterium.

Ich denke Du meinst den Shannon. Nyquist kommt von der Regelungstechnik.


guude
ts

von Chris (Gast)


Lesenswert?

Ne Nyquist stimmt schon, der besagt F/2 > fmax

von Peter (Gast)


Lesenswert?

Ein lpc1315/16/17 würde passen aber dann müssen alle Platinen vom 
lpc1114 erst befreit werden.
Klingt für mich nach die preiswerteste und schnellste Methode.

Und ein Wechsel vom M0 auf einem M3 ist ja auch nicht so schwer.

Werde ich auch weiterleiten.

Peter

von W.S. (Gast)


Lesenswert?

Peter schrieb:
> Ursprünglich hätten 8 Bit gereicht, aber wie es nun mal ist, wurden die
> Anforderungen etwas ergänzt.

Von wem? Kannst dir halt aussuchen, wem du die Platinen vor die Füße 
schmeißt. Ich kenne solche Experten im Chefsessel, die sich nie so 
richtig auskäsen können, was sie denn eigentlich wollen, dafür aber 
jeden Monat ne andere Idee noch zusätzlich eingebaut haben wollen.

Zur Sache: Ich hab selber auch schon mal per Software-Kniff ne 
zusätzliche ADC-Stelle (damals mit nem PIC16Cirgendwass) erfunden: nen 
Tiefpaß an ein Portbein, von dort aus ein R auf den Analogeingang und 
damit eine Art häßlichen Dreieck dem Signal überlagert. Das geht so lala 
für die Optik, also für's Anschauen.

Ansonsten habe ich das Gefühl, daß die Firma Greisinger bei ihren 
Präzisions-PT100-Thermometern mit MSP4xx drin es wohl ähnlich macht. 
Wenn man sich da die 2. Stelle nach dem Komma anschaut, dann benimmt die 
sich auffallend seltsam.

W.S.

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.