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