ATmega1284p hängt sich auf

avr_newbie

Mitglied
13. Apr. 2013
127
0
16
Bayern
Sprachen
  1. ANSI C
Hallo,

hab zur zeit ein Problem mit dem oben genannten ATmega.

An dem Atmega hängt unter anderem ein Display 4x16 und ein AD-Wandler MCP3421 dran.
Mit dem MCP3421 möchte ich ein Themoelement TypJ bzw. TypK einlesen.

So weit so gut. Momentan habe ich eine Typ K dran. Wenn ich den in die "Luft" halte kann ich auch ordentlich messen.
Jetzt dachte ich mir, zum testen, hebe ich ihn mal an den Lötkolben dran, um zu schauen, ob sich die gemessene Spannung ändert.
Sobald ich das mache, hängt sich aber alles auf.

Hat vllt. jemand dafür eine Erklärung?

Ich teste und probiere jetzt schon seit mehreren Tagen.
Ich debugge auch über JTAG - allerdings hängt sich hier auch alles auf.... bin langsam am verzweifeln....

Nachtrag:
wenn ich den Debugger anhalte kommt nur:
Die Anwendung befindet sich im Haltemodus.
Ihre App wurde angehalten, aber derzeit wird kein Code ausgeführt......
 
Zuletzt bearbeitet:
ok, ich habe das Problem jetzt selbst gelöst - denke ich zumindestens....

Ich habe jetzt meine Masse geerdet - jetzt stürzt nichts mehr ab......



Allderdings bekomme ich jetzt EMV-Probleme, wenn ich neben dran mein Lötkolben aus und einschalte -.-
 
Zuletzt bearbeitet:
Allderdings bekomme ich jetzt EMV-Probleme, wenn ich neben dran mein Lötkolben aus und einschalte -.-

Mit "EMV-Probleme" meinst du, der Mikrocontroller erhält einen Reset oder der Programmer/Debugger verliert die Verbindung zum Target oder PC, bzw. macht komische Sachen beim Schalten vom Lötkolben?

Das könnte an ungünstigen verlegten Leitungen liegen. GND/VCC und Signale zum Target (ISP/JTAG): Signale zu lang oder Schleifen gebildet, Erdung des Lötkolbens an einer ungünstigen Stelle im GND-Pfad. Wenn du den Lötkolben mit seinem Erdungspotential an GND anschließt, ist das sicherlich gut gegen elektrostatische Entladung, wenn du lötest. Ich kann mir aber vorstellen, dass einfach durch Schalten vom Trafo des Lötkolbens ein Störstrom im GND Pflad liegt, der den Mikrocontroller resetet oder den Programmer "durcheinander" bringt (verliert Verbindung zum PC oder Target). Eventuell ist das Problem weg, wenn du den Lötkolben am PC erdest. Ansonsten nicht erden und versuchen zu vermeiden, dass über deinen Sensor vom Messobjekt her Strom fließen kann.

Dirk :ciao:
 
Momentan siehts so aus:
Gekauftes Netzteil 12V out ---> DCDC 5V --> Schaltung mit Atmega1284/MCP3421 für Messung mit dem Thermoelement und ein 16x4 Display
Am MCP3421 (AD-Wandler) hängt direkt das Thermoelement.
Erdung der 12V

Vorher - ohne Erdung der Masse
Wenn ich die Temperatur mit dem Thermoelement an der Lötspitze messe (Ohne Erdung), dann schmiert alles sofort ab - weil hier vermutlich über den AD-Wanlder Ausgleichsströme fließen (das habe ich auch daran gemerkt, dass teilweise in dem Register des MCP plötzlich quatsch drin stand)


Jetzt - mit Erdung der Masse
Es gibt keine Probleme, mit dem messen, auch wenn ich an der Lötzspitze direkt messe...



Was ich jetzt allerdings festgestellt habe, sind wie gesagt EMV Probleme. Das wirkt sich vorallem am Display aus. Das heißt, da ich nicht zyklisch alles überschreibe, sonder nur partiell, z.B. den Messwert nur, so stehen plötzlich komische Zeichen im Display wenn ich den Lötkolben aus und einschalte.

Das passiert mit und ohne Erdung der Masse.

Da das ganze auf einer Lochrasterplatine aufgebaut ist, ist sowieso alles ungünstig..... von der EMV-Verträglichkeit her...


Ich habe jetzt schon probehalber, seriell in die Datenleitungen Ferrite mit eingebaut, das hat allerdings nichts gebracht.
Gibts sonst irgend eine Möglichkeit etwas zu machen?
 
Gibts sonst irgend eine Möglichkeit etwas zu machen?

... das Massekonzept überarbeiten, das wird aber nicht so einfach gehen, weil es auf Lochrasterplatine aufgebaut ist.

Du könntest versuchen, den Lötkolben an einer anderen Stelle zu erden. Vielleicht hilft es auch, wenn du nicht direkt erdest, sondern über einen Widerstand. Hier müsstest du experimentieren.

Ferrite unterdrücken eher hochfrequente Signale. Du hast die in die Signalleitungen zum Display eingebaut? Ich vermute eher den Fehler im Massekonzept.
 
Hallo,

zu 99% ist GND in Deiner Schaltung unsauber. Vorausgesetzt Du hast µC Resetbin nicht offen.
10 k Ohm gegen VCC sollten es schon sein. Auch sehr wichtig ist der 10nF direkt am µC für Spannungsversorgung.
Alle Komponenten in einer Schaltung müssen immer einen gemeinsames GND haben(ideal 0 Ohm). In der Mikroelektronik(CMOS) reicht schon 1 Ohm Differenz um solche Probleme zu bekommen.
Auf keinen Fall würde ich GND erden („Brummspannung“).

Mit freundlichen Grüßen
Fred
 
joa... da magst du wohl recht haben...... habe mich getäuscht..... auch der Controller hängt sich auf, wenn ich oft genug den Lötkolben aus und einschalte....

Der Lötkolben ist eigentlich nur mein Testwerkzeug, um die EMV-Stabilität meiner Platine zu testen :D

Ich hab jetzt schon alles mögliche ausprobiert.... Spulen, Dioden, PKE-Diode usw. irgendwie wird das nichts.....

Ich muss glaub nochmal alles neu aufbauen, da die Platine mittlerweile wie Kraut und Rüben aussieht.....
Allerdings glaub ich auch nicht daran, dass es dann besser wird....

Mittlerwiele habe ich die Erdung wieder weggenommen.... die Probleme habe ich trotzdem.... bei aus und einschalten des Lötkolbens...

Resetpin ist natürlich korrekt verdrahtet, auch 100nF an alles Bauteilen bei den Versorgungen sind drin
 
Hallo,

Lochrasterplatine hin oder her wichtig ist nur der gemeinsame Bezugspunk muss sauber sein und dafür Sorgen das kein Müll auf GND kommt. Ferrite war wohl nur ein Verzweiflungsversuch. Wenn denn schon eine Drossel in VCC.
Gruß
 
Hallo,
Zitat:
Momentan siehts so aus:
Gekauftes Netzteil 12V out ---> DCDC 5V --> Schaltung mit Atmega1284/MCP3421 für Messung mit dem Thermoelement und ein 16x4 Display
Am MCP3421 (AD-Wandler) hängt direkt das Thermoelement.
Erdung der 12V
Zitat End:

Nun bin ich paff. Du benutzt zwei Spannungsebenen. Ist normal kein Problem aber dein Netzteil vermute ich hat kein gemeinsamen GND 12 V zu 5 Volt.

Ja dies würde vieles erklären.
Gruß, Fred
 
Hi,

ich hab jetzt nicht alle Beiträge durchgelesen. So wie es aussieht ist es aber definitiv ein Masseproblem. Oder anders ausgedrückt ... es kommt Fremdspannung in deine Schaltung.

Dein Programmer ist über den USB-Anschluß vom PC mit Erde verbunden.
Dein Lötkolben ist bei nem Euro-Stecker normalerweise Erdfrei. Wenn du aber wegen empfindlichen Bauteilen erdest, dann hat er auch ein Erdpotential (auch wenn nur hochohmig).
Deine Schaltung hat über ein Netzteil normalerweise auch keine Erde. Schaltnetzteile können aber durch kapazitive Kopplung am Ausgang eine Wechselspannung gegenüber Erde aufbauen.
Du hast also eventuell 3 verschiedene Erdpotentiale die sich in der Schaltung treffen.
Dein Typ-K Thermoelement besteht aus einer Verbindung von zwei verschiedenen Metallen. Die sensitive Stelle ist die elektrische Verbindung dieser beiden Metalle. Also ist sie evtl nicht isoliert und du bekommst dort vom Lötkolben ein Potential eingestreut.
Wenn du nun für Messungen noch nen Oszilloskop dazu nimmst, bekommst du über dessen GND ein weiteres Erdpotential in die Schaltung :p
Du mußt also bei der Verbindung mehrerer Geräte genau aufpassen wie die Potentiale sich gegeneinander verhalten.

Ich tippe also auch auf Beeinflussung der Schaltung oder Einstreuungen von Fremdspannung über eine der GND-Leitungen.

Gruß
Dino
 
Hallo avr_newbie,

Zitat:
öhm....ist das ein Problem, dass die 12V GND mit den 5V GND NICHT verbunden sind?
Zitat Ende:
Nein... Aber dann benötigst Du eine Potentialtrennung z.B. Optokoppler Kenne Dein Netzteil nicht. Somit kann ich auch nicht Grundsätzlich empfehlen GND zu verbinden(virtuelle GND).
Eins ist Sicher Du bewegst Dich auf dünnem Eis mit dem Aufbau. Nach meinem bescheidenen Kenntnisstand arbeiten die Controller mit Qualm. Kommt Qualm raus sind seh kaputt. Stell Dir mal vor GND 12 Volt hat eine Potentialverschiebung von 10 Volt zu GND 5 Volt. Ist ja theoretisch möglich.
Alle Komponenten der Schaltung sollten ein gemeinsamen Grund(Masse = 0) als Bezugspunkt bekommen. In der digital Technik gibt es halt nur 0 oder 1.
Wenn nicht möglich oder oft nicht gewollt, ist dies nur mit Potentialtrennung zu realisieren.

Schlussfolgerung:
GND „gemeinsame Masse“ ist auch der Bezugspunk für Messgeräte. Somit kann auch ein Messgerät keine Störung verursachen. Das Messgerät kann ein Punkt nur belasten wenn zu Niederohmig. Ein Störsignal auf GND zu schieben, ist mir bei Messungen unbekannt. Voraussetzung wie erwähnt.
GND. G steht für Grund. In größeren Objekten können auch mehrere G sein. Sind dann aber als Eigenständig zu betrachten und Signale müssen wenn Erwünscht potentialfrei gekoppelt werden.

Mit freundlichen Grüßen
Fred
 
Zuletzt bearbeitet:
Hallo Newbie,

wenn Du mich fragst, ist das der falsche IC. Der AD8495 ist besser geeignet.
Siehe hier:
Die Schaltung steuert ein 400 Watt Heizmodul für meinen SMD Löt-Tisch.
Ein Bascom Programm ist auch vorhanden. Wenn Du Interesse hast schreib einfach nochmal.

Gruß Jogi
 

Anhänge

  • ThermoelementsteuerungV01.pdf
    26,3 KB · Aufrufe: 4
  • ThermoelementsteuerungV02.pdf
    63,2 KB · Aufrufe: 2
Hallo Jogi,

dieses IC scheint ganz interessant zu sein....

Für was hast du die Widerstände R4/R5 drin?

Ich programmiere nur in C - kann nix mit Bascom anfangen :)

Allerdings glauabe ich nicht, dass das meine Masse-Probleme beseitigen wird :)
 
R4/R5 waren drin als ich noch mit billigen Thermoelementen von Pollin experimentiert habe. Mit denen bin ich nie auf die richtigen Werte gekommen. Aber jetzt nachdem ich ein ordentliches Mantelthermoelement verwende habe ich R4/R5 nicht mehr bestückt.


20160420.jpg

Verwendest Du ein Mantelthermoelement? Die haben keine elektrische Verbindung zwischen Thermoelement und Mantel und sind somit wesentlich besser zu handhaben.

Hier gibt es ein paar Infos zu Fehlerquellen. http://www.ni.com/white-paper/7108/de/

Zu Deinem Masseproblem:
Im Beitrag Nr. 4 schreibst Du das jetzt alles funktioniert bis auf das Display. Dieses Problem hatte ich auch schon das Displays sich aufhängen wenn irgend ein Verbraucher ein- oder ausgeschaltet wird.
Hierüber findet man im Internet viele Beiträge. Oft hilft es direkt am Display der Versorgungsspannung ein Elko 100yF zu spendieren. Vielleicht auch noch ein 100nF dazu.

Um Festzustellen ob es ein Displayfehler ist einfach mal alle 5 sec das Display im Programm neu initialisieren.
 
So, meine Masseprobleme sind gelöst :)

Ein paar Punkte die ich geändert habe:
Platine nochmal komplett auf Lochraster aufgebaut. Ich verwende nun einen PT1000 - als Auswertung habe ich auf eine fertige Platine zurückgegriffen von Pollin (aus zeitlichen Gründen .....)
und zur Auswertung den internen ADC am ATmega verwendet. (vorher externen ADC über I2C - ich glaube auch, das ich durch den I2C hier extreme Probleme hatte - kann ich aber im Nachhinein nicht mehr genau sagen)

Außerdem habe ich, wie Jogi864 im letzten Beitrag erwähnt hat, einen Elko direkt an der Versorgungsspannung des Displays verwendet sowie ein Twisted-Pair-Kabel vom Controller zum Display.
Das Kabel ist 1,5 Meter lang und ich habe keine Probleme damit :)

Was mir allerdings bisher nicht gefällt, dass die Temperatur ein wenig ungenau ist, also so um die +- 2 Grad. Für die momentane Anwendung ist das zwar ausreichend, aber
ich bin ein Typ, der zu Genauigkeit neigt :D

Vllt. werde ich später mal noch selbst eine PT1000 Auswertung basteln.....
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)