MEGA32 - ADC defekt ?

Gast #399714
Lesenswert?
• ▲
▼
Hallo, habe die AVR-Ctrl aufgebaut und auch die Heizungssteuerung
erfolgreich per ISP eingespielt.

Einer der beiden Sensoren funktioniert nicht (mehr?), sondern bleibt
immer auf einem Wert stehen, der sich mit jedem Reset ändert.
Sensortausch über Kreuz hat auch nix gebracht.
Die geteilte Spannung vom 1,5K Widerstand und dem KTY-91/110 liegt am
MEGA an.

Hat evtl. die Software ein Problem, oder kann auch einer der beiden
ADC
Eingänge evtl. durch statusche Aufladung hinüber sein ?

Danke für eure Hilfe
Gast #399715
Lesenswert?
• ▲
▼
Also wenn was hinüber ist ist es wohl der ADC, den gibt's nur einmal,
also dürfte kein AD-Wert mehr einzulesen sein.
Was mich bei der sauteuren MEGA32-Version (wohl die von 'CON..'?)
erstaunt ist, dass ein C-Interpreter auf einem µC implementiert ist,
der sowieso in C programmiert werden kann ??!! Kauf' Dir lieber 'nen
ATmega32, den Quarz kriegste auch selber dran und sparst dabei noch 35
€!
Gast #399718
Lesenswert?
• ▲
▼
Ok,

selberlesen macht schlau.

Es gibt nur einen ADC, der auf 8 Leiungen (PA0-PA7) geschaltet werden
kann. PA1 nimmt keine Werte mehr ein bzw. nimmt keine Änderungen an.


Reset ohne Sensoren:         Anzeige zeigt ??
Reset mit "warmen" Sensor:   Anzeige für Ta konstant bei 35 Grad
Reset mit "kaltem" Sensor:   Anzeige für Ta konstant bei 30 Grad

Tk läßt sich durch Handerwärmung von 28 auf 37 Grad bringen:
Ta bleibt auf Wert stehen.



Gruß
Jens
Gast #399719
Lesenswert?
• ▲
▼
Also scheint der ADC zu arbeiten. Müsste sich demzufolge um ein
Hardwareproblem zu handeln. Ist die Eigangsspannung am entsprechenden
Pin OK? Ich kenne die Applikation nicht, aber der AD-Multiplexer
spricht bei offenem Eingang leicht über, also wäre es auch möglich dass
ein falscher Eingang belegt oder programmiert wurde.
Gast #399721
Lesenswert?
• ▲
▼
Hallo Hubert,

Sensortausch bringt nix.

Beide Sensoren liefern jeweils ca. 2 Volt an den PA Pins,
und ändern die Spannung bei Erwärmung auch.

Die erste ADC Wandlung klappt für den Außenfühler.

( Beide KTY sind mit ca. 20 cm Draht an der AVR angeschlossen)
Dannach kommt immer der gleiche, erste Wert.



Gruß
Jens
Gast #399722
Lesenswert?
• ▲
▼
Bei den gegebenen Symptomen sieht es so aus, als ob PollingMinute
eine Veränderung der Außentemperatur "verhindert".
PollingMinute wird durch Interrupt Service Routine verändert.

Fazit: Controller macht anscheinend keinen Timer-Interrupt mehr.



------------------------------------------------------------------------ 
---------------
void GetTemperatur(unsigned char Start)
{
 signed int tmp_int;

 tmp_int = read_adc(1);

 if(Start) AussenTemperatur = tmp_int;
 if(PollingMinute)
  {
    if (AussenTemperatur > tmp_int)      AussenTemperatur--;
    else if (AussenTemperatur < tmp_int) AussenTemperatur++;
    PollingMinute = 0;
  }
 tmp_int = read_adc(2);

 if (KesselTemperatur > tmp_int)      KesselTemperatur--;
  else if (KesselTemperatur < tmp_int) KesselTemperatur++;
 if(Start) KesselTemperatur = tmp_int;
}
Gast #399723
Lesenswert?
• ▲
▼
Hi!
Das sieht eher nach einem Softwarefehler aus, denn nach Reset wird er
scheinbar gelesen. Vermutlich wird dann im Laufenden Prog. der Mux
nicht richtig umgeschaltet oder zugeordnet.-> Im Prog. Fehlerstelle
suchen. Kannst ja auch ein Minimalprogr. schreiben welches nur PA1
wandelt und irgendwo anzeigt.

Viel Erfolg, Uwe
Gast #1616099
Lesenswert?
• ▲
▼
Hi, auch wenn es schon ewig her ist. ich hatte heute ein sehr ähnliches 
Problem. Im Register des ADC lag stets der selbe wert vor, obwohl er im 
Freerunning war. Ich hatte auf die höchsten zwei bit verzichtet und nur 
ADCL ausgesen. Nachdem ich mir lange den Kopf zerbrochen hatte, stieß 
ich auf den Hinweiß, dass die Register erst wieder aktualisiert werden, 
wenn ADCH ausglesen wurde. Vielleicht hilfts ja.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.