Forum: Mikrocontroller und Digitale Elektronik HILFE!!! LM335 + 90S8535 8MHz


von Bruzzler (Gast)


Lesenswert?

Hallo, ich hab ein eigenartiges Problem :(
Ich habe einen LM335 mit Vorwiderstand ein meinen AVR angeschlossen 
PA0(ADC0) als Ergebnis bekomme ich aber nach der ADC-Messung immer 0, 
lege ich aber 5V direkt an den Pin dann bekomme ich 1023 (was ja auch 
richtig ist.
Wenn der LM335 Tem-Fühler dran ist lieg eine Spannung von 2,93V am Pin 
an, so soll es ja auch sein, aber ich bekomme keinen anderen Wert als 0 
raus, egal was für einen Vorwiderstand ich verwende :(
http://www.windarts.de/ADCMist.jpg
dort ist die hoch-komplexe Schaltung zu sehen ;)

Ich würde mich freuen wenn mir da jemand einen Tipp geben könnte ?

von Schmittchen (Gast)


Lesenswert?

Du hast vergessen AVCC (an VCC) und AGND (an GND) anzuschließen?
100nF zwischen AVCC und AGND schaden nicht.
Könnte fast zu Lieblingsfehler Nr.3 aufsteigen...

Schmittchen.

von Bruzzler (Gast)


Lesenswert?

MMMHHHH, hat jemand eine ahnung wie ich die Spannungen verbinden kann 
ohne am IC direkt zu löten beim STK 500 ???

von mikki merten (Gast)


Lesenswert?

Normalerweise sind bei STK500 die Pins 30,32 AVcc AGnd korrekt 
beschaltet, Aref kann entweder OnBoard erzeugt und eingestellt werden 
(JP Aref gesteckt) bzw. ist an PortE herausgeführt. Hardwareseitig sehe 
ich auch keinen offensichtlichen Fehler sehen, absehen von dem etwas 
hochohmigen R hier solltest du mal 1,8-2,2 kOhm einsetzen. Da der 
internen Muxer mit S/H Schaltung des 8535 auch eine kapazitve Last 
während der Umschaltvorgänge darstellt. Hilft evtl ein C von etwa 1nF 
von PA0 nach Masse.

von Schmittchen (Gast)


Lesenswert?

Ich habe noch vergessen AREF zu erwähnen - das muß (im "Normalfall") 
auch an VCC angeschlossen werden.

Das STK500 kenne ich nicht, könnte mir aber vorstellen, das Problem 
durch Setzen eines Jumpers gelöst werden kann??

Schmittchen.

von Bruzzler (Gast)


Lesenswert?

Jetzt mit 2K und 1nF, aber immer noch das gleiche...:(
Wenn ich die 5AVCC nehme und an die Port halte kommt 1023 raus, klasse 
und sonst immer 0
egal was ich verbinde und nicht verbinde (aarrgggg)

Kann am Programm was falsch sein ???

ldi temp1, 0b00000000
out DDRA, temp1
ldi temp1,0
out PORTA, temp1

; --------------------------
;  ADC init
; --------------------------
ldi temp0,0b00000111
out ADCSR,temp0
cbi ADCSR,ADIE
sbi ADCSR,ADEN
; --------------------------
sei ; Interrupts zulassen
ldi temp0,0b00000000  ; Multiplex (ADMUX)
out ADMUX,temp0
sbi ADCSR,ADFR  ;Free Run einschalten
sbi ADCSR,ADSC  ;Start Wandlung

Bei mir läuft auchnoch ein Timer der alle 1Sec. einen Interrupt 
ausslöst, jedesmal dann Lese ich die ADC-Werte aus, wie gesagt mit 0 u. 
1023 (0 u. 5V) funzt das aber nicht dazwischen

P.S. benutze STK 500

von mikki merten (Gast)


Lesenswert?

Kann sein das ich auch einen Fehler übersehe, im Moment kann ich bei dem 
Codefragment auch keinen entdecken. Ich hoffe der Jumper Aref ist auf 
dem STK500 gesteckt und Aref im AVR-Studio korrekt eingestellt.

von Bruzzler (Gast)


Lesenswert?

Ich glaub ich spinne, funktioniert bei irgendjemanden der ADC im 8535, 
jetzt hab ich hier noch einen wenn ich den reinstecke dann bekomme ich 0 
oder 15 rausegal was ich mache, da kann doch irgednwas überhaupt nicht 
stimmen.....
Liegt es am timer das der jede Sekunde einen Interrupt auslöst oder was 
....:(

in temp1,ADCL
mov LO1,temp1
in temp1,ADCH
mov HI1,temp1

das kann doch auch nicht falsch sein oder ... ich weiss es wirklich 
nicht mehr...

Danke schonmal für jeden Tipp, wirklich jeden, egal wie unwichtig er 
scheint....

von Uwe (Gast)


Lesenswert?

Hi!
Mit welchem Takt betreibst du den ADC? Im Datenblatt steht 50-200KHz. 
Einzustellen über ADPS0-2 in ADCSR.
In deinem Code sehe ich nichts, kenne aber auch deinen Quarz nicht. Ich 
habe mit dem 8535 jedenfalls schon Temp. gemessen, kein Problem.
Gruss Uwe

von mikki merten (Gast)


Lesenswert?

@uwe
Einmal richtig lesen wird mit 1/128 CPUclk betrieben.
Könnte evtl. der Fehler sein beim STK500 ohne extern Quarz ist Fclk max. 
ja 3,69 MHz.
3,69 MHz / 128 = 28828,25 Hz

von Bruzzler (Gast)


Lesenswert?

läuft mit 8MHz

von Bruzzler (Gast)


Lesenswert?

Beim Poti sehe ich im Bereich 5V-4,8V hüpfende Werte zwischen 300-1023, 
drunter sehe ich 0

Ja, AGND mit GND verbunden, ARef=5V

Alles Mist :(

von Uwe (Gast)


Lesenswert?

Hi!
Die 3 1sen hatte ich glatt übersehen.
Also wenn AVCC,Aref,AGND an deinem Chip ankommen kann ich es mir erstmal 
nicht erklären. Versuche doch mal Singelumsetzung. Wie verarbeitest du 
die Werte? (Man sieht manchmal den Wald vor lauter Bäumen nicht)
Gruss Uwe

von Bruzzler (Gast)


Lesenswert?

Ich hab mir eine Funktion geschrieben die 2 8Bit-Werte HI,LO(16Bit-Zahl) 
auf dem Display darstellen kann, das funzt auch perfekt, und schon oft 
verwendet. Darüber lasse ich mir die Werte des ADC ausgeben...

Singleumsetzung werd ich dann mal versuchen... danke

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
Noch kein Account? Hier anmelden.