Hallo zusammen, Ich versuche nun schon seit Tagen den SD_16 ADC zu Höchstleistungen anzutreiben. Es gelingt mir nicht das Ding über 12 BIT zu bringen. Welche Maßnahmen auch immer ergriffen werden, 4 LSB's flippen rum. Filter (Hardware, Software), Mittelwertbildung, VREF sowie Eingang sauber abgeblockt, kein Erfolg. OSR 1024. Wer hat den ADC schon einmal Erfolgreich mit 16 BIT betrieben ?? und wie ?? Beispielcode wäre schön. Gruß Bernd
Das ist nicht unbedingt sehr aussagekräftig. 3x 0 is 0 sagt man in Köln. Ich habs aber mal mit einer sauberen Festspg. versucht um mal von einem undefinierten Meßsignal wegzukommen, und das was der ADC herausbringt ist nicht stabil.
16 Bit sind nicht möglich. Im Datenblatt steht SINAD = 84 dB, also höchstens 14 Bit. Hinzu kommen noch andere Störungen. Da nützt der beste Code nichts.
Ich formuliere die Frage neu, hat jemand den SD_16 erfolgreich mit voller Auflösung im Einsatz ? Ich kann das nach zahlreichen Versuchen kaum glauben. Der SD_16 hat derart viele Einstellmöglichkeiten das ich nun fast geneigt bin zu behaupten das die genannte Auflösung ein Marketing GAG ist. Wenns anders wäre würde ich mich freuen.
Hallo Martin, ja, habe ich auch so gelesen. Der hat nen Signal/Noise von 84 dB. Ein guter Wandler hat 6 dB pro BIT. Dennoch hatte ich die Hoffnung das man mit den zahlreich beschriebenen Einstellungen die 16 BIT hinbekommt. 14 BIT wären ja auch schon sehr schön aber selbst die bekomm ich nicht hin. Also, meiner Meinung nach lügen die ganz ordentlich. Das Datenblatt ist ebenso voller Zweideutigkeiten.
Salve, 16 bit Auflösung ist ja schön und gut, aber was Ihr wollt sind 16 bit Genauigkeit. Und das sieht man dem SNR ja schon an, dass das nix wird. Sie haben's nur netter verpackt, damit es nicht schon die Leute von Einkauf merken, sondern erst die Ingenieure, die sich dann damit rumplagen müssen. ;) Was meint Ihr, was das für Mirakel-ADCs sein müssen, die in modernen 24 bit Consumer-Audiogeräten werkeln. Ich sage ja nicht, dass man zwischen 14 und 24 bit einen Unterschied hört, aber 24 bit in einer PC-Soundkarte für unter 50 Euro... auf so eine Idee kann auch nur ein Marketing-Fuzzi kommen. :) Sorry für die wenig konstruktive Antwort. Ich kenne den besagten ADC nicht. Aber ich wollte doch noch einmal auf den Unterschied zwischen Auflösung und tatsächlicher Genauigkeit hinweisen. Und von ersterer ist ja scheinbar im Datenblatt überall die Rede. Also lieber nicht zuviele Hoffnungen machen. Mark
Hallo Mark, ja der Unterschied zwischen Auflösung und tatsächlicher Genauigkeit ist mir durchaus klar. Ich habe noch einige Tests durchgeführt, 12 - 13 BIT ist absolutes Maximum. Falls also noch einer auf den Schrott von TI setzt, aufgepasst, SD_16 ist ein faules Ei.
Macht doch mal eine Mittelwertbildung über mehrere Messewerte, dan habt ihr eure 16 Bit Genauigkeit.
Andreas, das habe ich gemacht mit 8x Samples, mit 80 Samples, alle möglichen Filtereinstellungen getested (mit Referenquelle), ISR, non ISR, HW Filter, SW Filter, könnte noch Stunden erzählen (vor allem die vielen Fehler, Marketing Formulierungen im Datasheet), kurz gesagt forget it. Wenn ich das nicht alles schon getestet hätte, dann hätte ich diesen Thread nicht aufgemacht.
Hallo Bernd, lassen wir doch mal die Kirche im Dorf: 12-13Bit sind für einen in einen Mikrocontroller integrierten ADC allemal ein ordentlicher Wert. In so einer Umgebung ist der "Chip Noise" immer wesentlich höher als bei einem separaten ADC, bei dem man sich auch schon ziemlich nach der Decke strecken muss, um echte 16Bit verwertbare Auflösung zu erreichen. Das hat nichts mit Schrott zu tun, und mit Marketing-Gags nur insofern, als dass TI dem Marktwunsch nach billigen(!) Controllern mit >10Bit-ADC nachgekommen ist. Vergleiche einfach mal die Preise der MPS mit SD16- und SAR12- oder SAR14-ADCs, und dann die jeweils gespecten Fehler... Also ich finde, so schlecht steht der SD16-ADC gar nicht da. Besten Gruß Johannes
Johannes, dann schreibt man das auch so ins Datenblatt. Das 16 BIT unrealistisch sind war mir klar, hätte ich auch toleriert. Das es im Datenblatt bei der Angabe Signal/Rauschverhältnis plötlich 14 BIT sind zeigt ja das hier was faul ist. 14 BIT wären akzeptabel. Unterstellt man nun das BIT 14 nun noch zum klassischen Fehler +- 1 LSB liegt so kommt man auf 13 stabile BIT's. In der Realität sind dann eben nur noch 12 BIT stabil. TI hat ja nen SD_10, was schafft denn der ? 4 BIT ;-)) Also, der SD_16 verdient zu recht den Namen SD_12 ;-))) und das ist die Wahrheit.
Ich schätze, dass Problem bei TI ist, dass die unterschiedlichen Abteilungen gegeneinander konkurrieren, anstatt zusammen zu arbeiten. Beispielsweise gibt es von den TI den MSC121x mit einem 8051-Kern und einem 24-Bit AD-Wandler, der effektiv 20Bit erreichen kann. Leider verbraucht der MSC121x aber sehr viel mehr Strom als ein MSP430. Würde man den MSP430 mit dem AD-Wandler eines MSC121x kombinieren, so hätte man ein spitzen Produkt, und der Preis würde sich auch noch in Grenzen halten.
Martin, ja, dass kann man nicht immer so beurteilen. Im Prinzip finde ich den MSP ganz nett, aber über solche Sachen ärgert man sich dann doch. Ich verwende auch eine ganze Reihe an 8x51 Derivaten, wenn diese mit ADC ausgestattet sind und im Datenblatt stehen 12 BIT (z.B. ADUC), dann sind es auch 12 BIT, ohne Kompromiß. Ich habe den Eindruck das TI einfach Marktanteile erobern will. Das machen die in erster Linie über den Preis. Qualität scheint nicht im Vordergrund zu stehen. Schade, aus den Dingern könnte was werden. Das Konzept ist gut und die Entwicklungsumgebung ebenso. Warum sich unterschiedliche Abteilungen nicht zusammensetzten !? Große Firmen haben eigene Gesetze.
Ohne diesen SD_16 zu kennen: wie sieht es denn mit der Hardware aus ? Ist es ein fliegender Aufbau ? Entspricht die Leiterplatte den Regeln der Kunst für 16 Bit ? Ist die Referenzspannung überhaupt stabil ? Wenn man höchste Leistung fordert, sollte man sie auch selber erbringen :-)
Evtl. musst Du den Processor anhalten, während die Wandlung läuft. Wenn fertig, µP mittels INT aufwecken. Macht man beim AVR auch so, wenn's genau sein soll. Integrierte ADC sind immer so eine Sache, mit dem digitalen Rauschen. Besser wird's mit einem externen (z.B. TI/BB ADS125x). Da muss man auch schon froh sein, wenn man mit allem Drum und Dran (Verstärker, Filter...) 18 Bits bekommt.
@Bernd, das steht im Datenblatt! Zwar nicht unter OSR1024, aber unter OSR256, konkret auf S.46: DC Power Supply Rejection = typ. 0,35%/V (oder 1 LSB eines 8Bit-ADC!) @Bernd und Martin, Der Punkt ist, dass es Sigma-Delta-Wandler sind, die ganz anders funktionieren als Successive-Approximation-Wandler und demzufolge ganz anders gespect werden. Und: Das Sigma-Delta-Verfahren arbeitet immer nur mit glatten Datenwort-Stufungen, egal wie viele Bits effektiv dabei herauskommen. Also mit 8 Bit je Datenwort gibt es nur die drei Auflösungen 8, 16 und 24 Bit... uc? Gruß Johannes
Johannes, mir ist nicht klar was du sagen willst, habe ins Datenblatt gesehen und nichts neues entdecken können. 1 LSB pro 8 BIT ? meint 16 BIT -2 ??? Vielleicht kannst du das mal klarer formulieren.
Das mit 8-16-24 Bit bei Sigma-Delta-Wandlern stimmt so nicht. Es gibt auch 18-Bit-Wandler (z.B. Max1401)
- MSC12xx vs. MSP SD16: Aussage auf dem 430-Tag war, daß eine Integration aufgrund des verwendeten Prozesses nicht funktioniert und man keinen Grund für einen höher auflösenden Wandler für die 430er sah (und sieht) - PSRR: >80dB (0.35%/V ist die Drift der Verstärkung) - die Probleme mit dem SD16 konnten hier im letzten (im ersten und letzten) Projekt mit diesem AD-Wandler auch nur mit sehr hohem Aufwand auf ein verträgliches Maß reduziert werden. Vorgehensweise, nach ähnlichen Schwierigkeiten: AD-Takt: 1MHz, OSR=512/1024, Messung/Mittlung des PGA-Offsets bei jeder Messung, Mittelwert über den Mittelwert aus 32 Messungen und der Ausgabe eines IIR-Filter und anschließendem FIR auf der PC-Seite. Ergebnis im besten Fall: ca. 15-Bit, bei 7.62-facher Verstärkung. - bei den MSC12xx/ADS121x/ADS1254 wird zwar die effektive Auflösung angegeben, aber als ENOB(RMS). Aussagekräftiger sind bspw. die Angaben, die Cirrus z.B. beim CS5534, SiLabs beim C8051F35x oder selbst TI beim ADS1234 macht: RMS Noise und Noise Free Resolution
arc, ja, so bin ich in etwa auch vorgegangen. AD Takt=1MHz, OSR=1024, Mittelung über 8 Messungen. Wie gesagt, habe auch diverse andere Settings versucht aber bei den erwähnten Einstellungen das beste Ergebnis erzielt. Zusätlich Errata Sheet +VREF beachtet, korrektur Wert nach VREF, VREF abgeblockt, ADC Eingangsfilter. Viel mehr geht nicht, heraus kommen 12-13 BIT, ab BIT 14 ist Ende. Gut zu wissen das TI das auf dem MSP430 day zugegeben hat, liege also nicht so daneben.
Ok, dann wollen wir mal :) Erstmal entsprechen 0,35% eher mehr als weniger 1LSB bei 8Bit-Auflösung, und die LSBs verdoppeln sich mit jedem weiteren Bit. Auf 16Bit-Auflösung hochgerechnet ergeben sich also 256LSB. Nun sind die 0,35% aber pro Volt angegeben, d.h. sie werden nur in dem Umfang wirksam, in dem die Spannung tatsächlich schwankt. Oder: Mit jedem Faktor 2, um den die Spannung weniger schwankt, gewinnen wir 1 Bit Auflösung, sprich: bei 1/2V bekommen wir 9 Bit, bei 1/4V 10 Bit usw. bis bei 1/256V Schwankung 16Bit Auflösung erreicht sind. So, und jetzt sage mir mal jemand, wie man auf einem Controllerchip die für 16Bit-ADC-Auflösung nötigen 4mV Versorgungsspannungsschwankung tatsächlich erreichen kann... @Martin Klar kann ein separater SD-ADC auch beliebige andere Auflösungen realisieren, denn er ist ja an keine bestimmte Datenwortlänge gebunden wie etwa ein Controller. Ein Stichwort zum Thema ist die 1-Bit-CPU... @acr Ich mag mit dem DC PSR statt dem AC PSRR den "falschen" Wert herangezogen haben (wovon ich noch nicht überzeugt bin) - die Größenordnung des Einflusses von Vcc-Schwankungen bleibt doch dieselbe. Gruß Johannes
Kleine Korrektur: Bei den F42x0, FE42x und F42x wird im Datenblatt CMRR (Common Mode Rejection Ratio) und PSRR (Power Supply Rejection Ration) angegeben. CMRR >90dB und PSRR >80dB bei Gain=1. Beim F4270 zusätzlich noch der Gain Supply Voltage Drift (0.35%/V) Beim F2013 wird dagegen CMRR (>90dB bei Gain=1), AC PSSR (>80dB) und DC PSR mit 0.35%/V angegeben. D.h. entweder ist der F2013 anders konstruiert oder die Angaben im Datenblatt stimmen nicht.
Der F2013 hat keinen Input Buffer, ist zunächst aber in der feature Liste aufgeführt. Das sind die Kleinigkeiten die ich meine. So etwas hat man recht häufig im Datenblatt. Beispiel VREF, 100 nF recommended, 2 Seiten vorher, den braucht man nicht (man braucht den 100nF). 8 IN Channel, dann aber ohne 100 nF, und so zieht sich das durch. Nun wurde viel diskutiert aber das Problem nicht gelöst, kann man auch nicht ;-)) ist eben ein Marketinggag ;-))
Zur Problemlösung: - DVCC bzw. AVCC haben jeweils 0.1uF und 4.7uF? - DVCC AVCC nicht direkt verbunden sondern wie in den AppNotes über 20Ohm ? - VRef gefiltert (hier 0.1uF und 1uF parallel)? - Wird die Vref tON abgewartet >5ms - Eingänge gefiltert bzw. ist die Settling Time noch ausreichend (MSP430x2xx User Guide S. 394 bzw. 718/742 für den MSP430x4xx)? - Wird die Schaltung zufälligerweise über USB versorgt?
arc, kannst du mal die App. Notes hereinstellen, F2013 hat keine getrennten DVCC, AVCC. Der Rest passt.
Sry, die AppNotes beziehen sich nur auf die "Großen" - MSP430F4270 Altimeter Demo http://www-s.ti.com/sc/psheets/slaa254/slaa254.pdf - Implementing a Single-Chip Thermocouple Interface with the MSP430x42x http://www-s.ti.com/sc/psheets/slaa216/slaa216.pdf - MSP430F42x Single-Chip Weight Scale http://www-s.ti.com/sc/psheets/slaa220/slaa220.pdf
danke, habs mir mal angesehen. Bringt aber im Moment nicht sehr viel. Falls ich noch nen BIT mehr herausbekomme dann laß ich von mir hören.
@arc und Bernd Ich bin über die Zeit ja schon einiges an Verwirrung bei TI gewohnt, aber das ist nun echt eine neue Qualität, nämlich dass ein und dieselbe Controller-Option (hier: SD16) innerhalb derselben Familie von Member zu Member so unterschiedlich gespect wird. Danke, dass Ihr mich darauf aufmerksam gemacht habt.
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.