Hallo, ich arbeite nun schon seit mehreren Monaten mit dem TMS320F2812 DSP auf dem eZdsp Board von Spectrum Digital und bin mit der Qualität der AD Wandler total unzufrieden. Mein digitaler Wert schwankt zwischen +-100 digits und ich wollte fragen ob jemand ne Ahnung wie ich ne genauere Wandlung hinbekomme? Mir würde bereits ne Verbesserung auf +-10 digits ausreichen! Gruß Patrick Röth
Hallo, ich habe (hatte?) das gleiche Problem. Ich hab' viel recherchiert und gegoogelt. Irgendwann habe ich dann dem Support von TI geschrieben. Hier die Antwort: Thank you for contacting Texas Instruments Please note that in the case of the F281x ADC the observed code spread during testing is ~7 or 8codes. For example if I converted 1.5V 100 times I would be most likely to hit code 2048(assuming ideal gain/offset), but would see codes 2049/2047 with some frequency, 2050/2046 with less frequency, 2051/2045 with even less frequency, etc. Due to the distribution if I were to average the samples I should get the center code. In addition I would like to mention some points, 1. The ADCLO should be connected to ADC ground. Also ADCLO pin should not vary by more than 0.3v from the VSSA pins. In case of eZDSP ADCLO pin should be connected to GND on F2812 eZdsp board for proper operation. To accomplish this, connect pin 18 on connector P9 (VREFLO to pin-17 on P9 (GND). 2. ADCREFP & ADCREFM: The ADCREFP (2.0 V) and ADCREFM (1.0 V) are only output from the device so that the user can put capacitors on them (10uF on each) to keep them as stable as possible. Low ESR ceramic caps are preferred. The stability of these signals directly influences the ADC characteristics. Can you ensure that these pins are stable and we also advise against putting any load on them other than the suggested caps. 3. Is the input buffered through an op-amp or at least some capacitors for noise immunity? 4. What is the sampling rate (Hi Speed Clock/ADCLKPS/ACQPS/CPS combo)? If you can try to increase the S/H window (ACQPS bits in ADCTRL1) it may help to even out the noise through over sampling. 5. Power-up: Please make sure that you are powering-up the ADC unit correctly the sequence to power-up the ADC unit is as follows a) Power up band gap/reference circuitry b) Provide a delay of 8ms c) Power up the rest of ADC. d) Provide a delay of 20us after powering up the ADC. 6. Connect all the unused ADC inputs to ground - because it has been often noted that the unused ADC inputs interfere with the used ADC inputs and tend. In addition you can try software calibration of ADC, Regarding the ADC calibration, please refer to the document (2810_12_calibration_10.pdf )and code (adc_calibration.zip) for more details. You can down load this from following link: http://www.ti.com/europe/downloads/f2810_12_calibration_10.pdf http://www.ti.com/europe/downloads/adc_calibration.zip I hope this information helps you. Ich habe dann aber nicht mehr wirklich an dem Starterkit weitergebastelt. Von daher kann ich nicht sagen in wie weit das was bringt, wobei ich schon fast alle Punkte eingehalten habe. MFG Michael
Hallo, danke schonmal für die vielen Informationen. Einiges habe ich bereits vorher realisiert zwar ohne erfolg. Ich werde mal die ADC Kalibrierung ausprobieren, ob das noch eine Verbesserung bringt! MFG Patrick
Hallo Patrick, poste doch dann bitte deine Ergebnisse der ADC Kalibrierung. Michael
Hallo, habe mit der ADC Kalibrierung ein wenig Experimentiert und folgendes festgestellt: Zum einen gibt es bei der AD Wandlung im Ergebnis noch einen Offset der auf dem digitalen Ergebnis liegt, dass merkt mann wenn man mit der Formel: digitaler Wert = Eingangsspannung * 4095/3 sich den Wert berechnet und mit der Messung im CCS vergleicht. Zum anderen ist die Verstärkung der AD Wandler nicht 1 sondern eher 1,05. Mit der Kalibrierung sollen diese beiden Probleme beseitigt werden. Für diese Kalibrierung sind dann zwei Referenzspannungen erforderlich (habe einfach dafür die zwei auf dem Board befindlichen Referenzen genommen), womit diese Probleme des Offsets und der Verstärkung beseitigt sind. Jedoch hat mich das in der Qualität der AD Wandlung nicht weiter gebracht! In den vergangenen Tagen habe ich festgestellt, das ich mit Matlab/Simulink komplette Projekte für den DSP erzeugen kann! Heute hatte ich schließlich mit einer Filterfunktion den Erfolg, das sich die Qualität meines digitalen Wertes deutlich verbessert hat. Für alle die es Ausprobieren möchten hier die betreffenden Codezeilen: // Globale Variablen für das Filter Uint16 ADC_result, ergebnis; _iq16 temp1=0, temp2=0, last_value=0; // Filter 1. Ordnung temp1 = _IQ16((double)ADC_result); temp2 = _IQ16rmpy((last_value - temp1), 65470) + temp1; ergebnis = _IQ16int(temp2); last_value = temp2; Der Wert 65470 setzt sich zusammen aus 0.999*2^16! (zum feinstellen) Die Variablen sind Global! Für die mathematischen Operationen ist IQmath erforderlich und befindet sich als sprc087.zip Datei im Anhang. Viel Spaß beim Ausprobieren! Gruß Patrick
Gratulation, das werde ich auch mal auspropieren, wenn ich wieder mal mit dem DSP weitermache.... Michael
Sorry Jungs für die Leichenschändung bei diesem Uraltthreads aber ich hänge grad genau bei dem Problem... Mein ADC macht alle x-hundert Messungen sehr unschöne Schwankungen mit bis zu 1,5V und die versuche ich im Moment in den Griff zu bekommen... Ich bin grad dabei den Filter einzufügen jedoch bekomme ich die Lib nicht richtig eingebunden bzw ich bekomme zumindest den gleichen Fehler. unresolved symbol __IQ16int, first referenced in ./Hall_ISR3.obj unresolved symbol __IQ16rmpy, first referenced in ./Hall_ISR3.obj bei _IG16 nörgelt er nicht rum. Ich habe die Lib(eine aktuelle Version aber bei CCS 4) einfach unter den build Properties /Include Options eingebunden. Ist doch richtig so oder? Danke für eure Hilfe! Schöne Grüße, Franzi
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.