Ich habe ein Problem mit dem MCP3551. Er ist wie im Anhang beschrieben verschaltet. Bei Messungen erhalte ich jetzt allerdings ein Toleranzband von 1 - 2.5°C ohne Mittelwertbildung bei einem 100 Ohm Widerstand bei konstanter Temperatur. Gibt es Möglichkeiten diese Schaltung weiter zu Entstören? MfG, Manuel
Gast
#4101539
Passt deine Samplerate? Du kannst in etwa 13,75mal pro Sekunde Messen mit genauen ergebnissen. Was wird an dem Widerstand gemessen? Temperatur? Passt die Umrechnung? Du kannst noch zwischen IN+ und IN- einen Kondensator (1nF-10nF) schalten um Störungen besser blocken zu können. Am besten auch mal den Sourcecode posten. Sonst sind das nur Mutmaßungen. Gruß, Jens
Die Schaltung soll einen PT100 auf 0.1 °C genau messen. Mainschleife:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
Die MCP-Funktionen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
Mit 10nF an V+ / V- hab ich jetzt bei einem 100 Ohm Widerstand (fest) als min 1.8 als max. 3.0. In diesem Bereich schwanken meine Messwerte. Verwendet wird ein XMega128A3u mit 32 MHz getaktet (3V3).
Selbst bei einer Referenz- und Versorgungsspannung (Nur MCP3551) von einer Knopfzelle kommt es zu diesen Messfehlern. Wähle ich den Referenzwiderstand auf 1k statt den 6k8, so grenzt sich der Fehler in der Temperatur auf .4 °C ein. Allerdings liegt dann der Messstrom höher (ca. 3 mA).
Gast
#4101784
Mit welcher Sample Rate wird gemessen ? Für den ersten Test sollte man sich die Werte des ADCs direkt ansehen, also ohne die Umrechnung in die Temperatur. Beim Kondensator zwischen In+ und In- muss man ggf. aufpassen, 1-10 nF kommen mir zu wenig vor. Ein kleiner Kondensator kann zusätzliche Fehler verursachen. Wenn dann eher ein Kondensator im Bereich 220 nF - 1 µF. Testweise könnte man es mal ohne die dauernde Abfrage ob der ADC fertig ist probieren, also einfach ein Delay, dass lang genug ist. Der I2C Bus könnte bei schlechtem Layout die Messung ggf. beeinflussen. Ein Bild vom Layout wäre ggf. auch nicht schlecht.
Gast
#4101815
Manuel H. schrieb: > Selbst bei einer Referenz- und Versorgungsspannung (Nur MCP3551) von > einer Knopfzelle kommt es zu diesen Messfehlern. Wähle ich den > Referenzwiderstand auf 1k statt den 6k8, so grenzt sich der Fehler in > der Temperatur auf .4 °C ein. Allerdings liegt dann der Messstrom höher > (ca. 3 mA). Da hast Du es. Der Eingangswiderstand des ADW ist relativ klein. Versuch mal 1µ und 10µ am VIN+ gegen VIN-.
Mit einem Delay habe ich bereits probiert: Ohne Erfolg. Anbei das Layout. Keine nennenswerte Signale in unmittelbarer Nähe. Der ADC gibt Werte im Intervall [15128; 15208] als Rohdaten. Die Samplerate liegt bei ca. 5 Samples/s. Variation bringt hier auch nichts.
Yoschka schrieb: > Manuel H. schrieb: >> Selbst bei einer Referenz- und Versorgungsspannung (Nur MCP3551) von >> einer Knopfzelle kommt es zu diesen Messfehlern. Wähle ich den >> Referenzwiderstand auf 1k statt den 6k8, so grenzt sich der Fehler in >> der Temperatur auf .4 °C ein. Allerdings liegt dann der Messstrom höher >> (ca. 3 mA). > > > Da hast Du es. > Der Eingangswiderstand des ADW ist relativ klein. > Versuch mal 1µ und 10µ am VIN+ gegen VIN-. Bei zweimal 4.7 µF und einmal 1 µF immernoch Schwankungen von bis zu 0.8 °C
Gast
#4101891
Manuel H. schrieb: > SelectMCP(); > _delay_ms(80); > > SPID.DATA = 0; >.... > DeselectMCP(); Ich bin mir völlig sicher, daß du in deiner ADC-Bedienung den Fehler hast. Also, mach das mal etwa so: Beim Programmstart legst du einfach CS auf LOW und läßt es dort bis zum jüngsten Gericht. Der ADC wird nun im kontinuierlichen Modus messen und mit jedem Meßende sein Datenpin auf low legen, um dir anzuzeigen, daß es was abzuholen gibt. Dann holst du es ab und das Datenpin geht mit dem letzten Bit wieder auf High. Und so weiter... Wenn du dem ADC andauernd auf den Schlips trittst mit deinem Selektieren, dann muß er jedesmal seine interne Queue wegschmeißen. Versuch mal, so einen SigmaDelta-Wandler zu verstehen: Der hat nen 1-Bit Wandler, mit dem er die Eingangsspannung moduliert, daraus entsteht ein serieller Datenstrom, der dann passend tiefpaßgefiltert wird, um das Ergebnis zu liefern. Das ist ein recht kontinuierlicher Prozeß und geht eben NICHT so wie bei einem SAR-ADC. W.S.
Gast
#4102031
Hallo, 1% Widerstandsänderung sind 2.5 Grad Temperatur. -> ich würde die Toleranz des 6.8K Widerstandes nochmal überdenken. Gruß Anja
Anja schrieb: > Hallo, > > 1% Widerstandsänderung sind 2.5 Grad Temperatur. > -> ich würde die Toleranz des 6.8K Widerstandes nochmal überdenken. > > Gruß Anja Erklären sich dadurch die dynamischen Schwankungen? Das müsste doch nur in den R0, also Kategorie feste Toleranzen fallen.
Gast
#4102519
Hallo, 80 Digits im Rohwert erklären sich dadurch nicht. Im Datenblatt sind es "nur" ca 20. Die 20 sind allerdings bei kurzgeschlossenem Eingang. In Realität wird es bei realen Spannungen etwas mehr sein. Aber es scheint so daß irgendwo im Aufbau (Masseverdrahtung sternförmig?) etwas faul ist. Gruß Anja
W.S. schrieb: > Ich bin mir völlig sicher, daß du in deiner ADC-Bedienung den Fehler > hast. Habe verschiedene SPI-Modi und den Continuous Conversion Mode umgesetzt. Kein Erfolg. Die SCK-Leitung ging unter dem Chip lang. Gekappt und außerhalb verlegt. Kein Erfolg. Die Massefläche geht komplett außen herum. Das Einzige, was ich mir jetzt noch vorstellen könnte ist der Step-Up LED Treiber für den Touchscreen.
Gast
#4102847
Hallo Manuel, es gibt einen Punkt, welcher bei diesem ADC wichtig ist, und zwar das Du die Versorgung ordentlich Abblockst, am besten mit einem Pi-Filter. Bei mir hat 10u 100nH 1R 3,3u 100n sehr gut geholfen. Du kannst auch die Referenz noch etwas abblocken, wobei Du damit das Ratiometrische Prinzip verletzt. Gruß Johannes
Gast
#4102856
Guck doch erstmal mit nem Scope, ob der ADC auch "sieht", was er dir sagt. Wenns signal schon doof ist, kanns ja am ende nicht schöner sein.. Wenn das signal aufm oskar gut aussieht, liegt der fehler beim adc, emv, weißdergeierwas.
4b schrieb: > hat 10u 100nH 1R 3,3u 100n sehr gut geholfen. Wie meinst du das genau? Ein Pi-Filter ist doch nur eine Spule mit zwei Kondensatoren? Wenn ich die Touchscreen Komponenten Software seitig ausschalte zappeln die Messwerte absolut nicht mehr!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

