Ich habe vorhin in der Mittags noch schnell eine Schaltung mit einem
TSic501 in Betrieb nehmen wollen. Die Temperatur wollte ich auf einem
Standard LCD anzeigen soweit alles kein Problem. Da der TSic aber eine
Ausgangsspannung von 0-1V habe ich eine externe Referenzspannung von 1V
an den ARef angelegt. Aber als Ergebnis bekomme ich Werte die stark um
500 schwanken +- 50LSB. Die Ausgangsspannung des TSic beträgt auch
0,5V, somit eigentlich 512LSB. Aber es schwankt wie Teufel. Da ich das
eigentlich schon 100 mal gemacht habe, wundert es mich das es nicht
geht! Kann es an der 1 referenzsspannung liegen? Diese ist zwar Super
genau und sauber auf 1V eingestellt, aber nur 1V. Müsste doch eigentlich
gehen oder? Wie gesagt, hatte bis jetzt noch keine große Möglichkeit
nach dem Fehler zu suchen, bin nur grad an der theoretischen
Fehlersuche!
Junge, es ist nicht einmal eine Stunde vergangen seit du den ersten
Beitrag hier geschrieben hast. Erwartest du, dass hier sofort jeder
springt und dein Problem löst? Wenn zwei Tage lang nichts kommt, kannst
du mal nachfragen, aber so ist es schlicht unhöflich. Daher gibts auch
ersteinmal keine Antwort von mir...
Hi
>Kann es an der 1 referenzsspannung liegen?
1V ist die minimale Referenzspannung bei AVRs. Also hart an der Grenze.
Hast du den Kondensator (100n) am TSIC?
MfG Spess
[Zitat von gelöschtem Beitrag gelöscht]
1 Volt funktioniert bei mir mit 'nem mega32 (uralter Knochen).
Müsste also auch bei deinem Controller gehen.
Zur Not fahr halt die Referenzspannung ein bisschen hoch z.B. 2 Volt
Dann hast du halt nicht mehr ein so genaues Ergebnis nur noch von (0-
512). Aber immer noch besser als gar keins :)
Kurz und bündig: Ja!
1V Referenz ist grad noch möglich für schnelle 8Bit oder langsame
10Bit-Wandlung bei dem AVR. Aber wieso drauf anlegen, wenn es doch
unnötig ist.
Wieso den Aufwand für 1V Referenz betreiben um den TSIC direkt
anzuschließen und nicht direkt die interne Referenz nehmen und dann die
Bauteile zur Verstärkung des TSIC Analogausgangs nehmen
Probiers mal hiermit:
- Vorverstärkung hochsetzen
- interne Referenz von 2,56V nehmen. So schlecht ist die nicht.
- Die Referenz hübsch mit Cs stabilisieren
- Nach der größeren Vorverstärkung einen RC-Filter an den ADC legen
- Mehr Samples mitteln, z.B. durch gleitenden Mittelwert.
Wenn du dann noch Probleme hast:
- Spannungsquelle prüfen (Restwelligkeit?)
- vor allem des Sensors und direkt am µC
- Leitungslängen prüfen
- Leitungsverlauf prüfen (vorbei an Leitungen mit hohem Strom, usw...)
PS: Die Dinger haben doch auch nen Digitalausgang. Wieso den nicht in SW
gegossen bedienen?
Probiere es mal mit den internen 1.1V oder 2.56V, wenn das nicht geht
ist was faul.
Miss mal die Spannung am Vref-Pin, vielleicht gibt es einen Kurzschluss.
Die analoge Versorgungsspannung musst du auch ordentlich abblocken, dazu
gehört eine kleine 10µF Spule und ein paar Kondensatoren, je mehr desto
besser.
Wie schaut dein Schaltplan aus?
Der ADC wird immer angestoßen, wenn der Timer0 überläuft, mit etwa
488Hz.
Der Mega läuft auf 8MHz.
Hier die Messfunktion, die in der Timerüberlauf ISR aufgerufen wird, um
die Messung abzuschließen:
Ich lasse mir derzeit noch den Temperatur.Buffer[0] ausgeben, und wie
gesagt, die Were schwanken teilweise um 150LSB um die ~500 umher. Wenn
ich die externe Referenzspannung erhöhe, schwankt es halt um einen
kleineren Wert und das Schwanken wird kleiner, aber immernoch deutlich
zu groß!
Was hab ich übersehen? Die Variablen sind alles volatile, die Ausgabe
auf dem LCD erfolgt über ein Flag, das in der Timer-ISR gesetzt wird.
Die Ausgabe mit einer Festen Ziffer funktioniert auch, is wie gesagt ne
oft bewährte Routine von mir.
Ingo
Was soll's denn bringen mit so tiefer Referenz zu arbeiten ? Die Werte
werden nicht besser, denn das absolute Rauschen bleibt gleich. Mach mal
die interne Referenz, und einen 100nF an den AREF pin.
Dumpf Nilp schrieb:> Was soll's denn bringen mit so tiefer Referenz zu arbeiten ? Die Werte> werden nicht besser, denn das absolute Rauschen bleibt gleich
Naja, die Auflösung wird halt besser. Rauschen auf den letzten Bits
kriegt man durch Mittelung weg.
> Mach mal> die interne Referenz, und einen 100nF an den AREF pin.
Is ne fertige Platine, is so ohne Weiteres nicht möglich
und ich kriege trotzdem schaukelnde Werte. Messung wird nun per Hand
gestartet (in der Initialisierung den autotrigger ausgeschaltet) und die
Wert schaukeln genau wie vorher!
Ingo schrieb:> Is ne fertige Platine, is so ohne Weiteres nicht möglich
Kondensatoren kann man immer noch dazulöten...
Welche Platine ist das denn? Sollte man davor warnen? ;-)
Hast Du wenigstens eine Schaltung? Die Verdrahtung ist auch wichtig,
besonders des GND. Geht der GND des TSic direkt (sternförmig) an den GND
des µC (am besten der GND, der zu AVCC gehört)?
Teste mal mit einem C (100n) am ADC7 gegen GND.
Andere Testmöglichkeit: ein 10k Poti an der Referenz, Schleifer an ADC7.
Wenn die Ergebnisse dann stabil sind, kommt der Dreck vom TSic
einschließlich seiner Versorgung und Deine µC-Schaltung ist OK.
Wenn nicht, liegt es am µC und/oder der externen Referenz.
Aber die Stabilität der Referenz kann man auch Testen, indem man mal die
interne Referenz verwendet.
So kannst Du Stück für Stück mögliche Quellen ausschließen.
Gruß Dietrich
Selbst mit kurzgeschlossenem ADC7 gegen GND, habe eine Messung 0LSB dann
teilweise 80LSB dann z.B. 50, dann wieder 0 usw. langsam glaube ich der
µC hat n Defekt...
>> Mach mal>> die interne Referenz, und einen 100nF an den AREF pin.>>Is ne fertige Platine, is so ohne Weiteres nicht möglich
Ohne dieses C ist aber sowieso nichts...
Ja, so ist es. Sollten eigentlich 100pF sein, aber irgendwie hat sich da
ein 100nF eingeschlichen... Und mit nem Oszi wurde es erst sichtbar.
Hätte mit 100pF keine Schwingneigung erwartet, aber 100nF sieht halt
böse aus!
Weil der Sensor 0-1V ausgibt, somit ist eine 1V Referenz auflösender! Da
der Sensor 0,1 Grad C genau ist, benötige ich eine Auflösung > 0,1V. Das
erreiche ich mit ner 2,5V Referenz nicht...
Spess53 schrieb:> Hi>>>Und weshalb wurde nicht gleich die 2.5v referenz verwendet ?>> Welche? ATMega48/88/168/328 haben eine interne 1,1V-Referenz.>> MfG Spess
Er meint den 4040-2,5
Allgemein:
Bitte die 100nF an den 10k/10k Spannungsteiler hinter der Z-Diode. Da
die Referenz praktisch nicht belastet wird, könnte da auch der OpAmp
aus. Der macht sowieso Ärger, wenn er eine so große Kapazität umladen
soll.
Ich würde daher entweder:
- 100nF hinter dem OpAmp weg bzw. deutlich runtersetzen oder mit
RC-Glied ergänzen
Oder (bevorzugt):
- Du hast da eine teure Referenzquelle eingebaut, die auch recht stabil
sein sollte. Ein zusätzlicher C am Teiler macht da den OpAmp
berflüssig.
10k/10k sind mit 0,125mA eigentlich ok. Kannst aber auch auf 2x3,3k
gehen, wenn du damit ein schlechtes Gefühl hast.
Und insgesamt zur Vereinfachung:
Die 4040 gibt es in einer 3,00V-Version. Mit 3,3V-Versorgung wirds da
zwar eng, aber wenn du irgendwo eine 5V-Versorgung hast (selbst wenn die
stark schwankt), kannst du dir den Abgleich mit Verwendung von 3
0,1%-Widerständen auch gleich schenken:
3V-Referenz über R an die 5V und mit drei gleichen 0,1%-Widerständen
runterteilen und ein C dranpacken.
Oder: Wenn du schon R/C/OpAmp verbaust:
Verstärke den Ausgang deines Sensors und nimm die interne Referenz des
Controllers. Da bitte an das C am VREF denken.