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
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
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.
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
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
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.
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.
Insbesondere setzt die Methode ein verrauschtes Signal voraus, andernfalls könnte man auch einfach stumpf Nullen an den Messwert hängen. branadic
@ 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.
@ 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.
> 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?
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
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?
...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.
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
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
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
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.
@ 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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.