mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sporadische Probleme beim Programmieren von ATMega128


Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe Probleme mit einem Mega128, der sich in einem System mit 4
AVRs befindet. Manchmal kommt es dazu, dass sich der Mega128 nach dem
Programmieren nicht mehr ansprechen lässt und scheinbar tot ist. Erst
wenn ich ihn mit einem externen Takt versorge und einen Chip Erase
durchführe, lässt er sich wieder ansprechen. Danach sind die FuseBits
total verstellt und scheinbar waren vor dem Chip Erase die Lockbits
gesetzt.

Diese Phänomen tritt nur selten auf und ist nicht reproduzierbar. Die
anderen Controller in dem System(M32, 2xM8) machen keine Probleme.

Ich schaffe es nicht, die Fehlerursache einzugrenzen:

Der Fehler

- tritt sowohl unter PonyProg2000 und AVRDude auf

- tritt an verschiedenen PCs mit verschiedenen Prog. Adaptern auf

- tritt sowohl bei Verwendung eines Batteriepacks als auch eines
Labornetzteils auf

Konstante Faktoren: WinXP und STK200 kompatibler Prog.Adapter auf Basis
eines 74HCT244.

Hatte jemand schon mal ein ähnliches Problem oder weiß sogar eine
Lösung?

Gruss, Philip.

Autor: moin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kannst du mal die Schaltung und ein Bild vom Aufbau ins Forum stellen.
Vielleicht fällt uns dann etwas auf.
moin

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

hier ein Bild von der Platine, auf der der problematische Mega128 neben
dem M32 zu sehen ist:

http://www.rehkop.info/aufbau.jpg

Von der Adapterplatine, auf der der Mega128 sitzt, werden nur der I2C
und SPI-Bus, sowie 3 IO-Pins herausgeführt.

Hier noch ein Ausschnitt aus dem Schaltplan:
http://www.rehkop.info/ausschnitt.jpg


Gruss, Philip.

Autor: moin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-Hast du den Resetpin mit einem 10kOhm Pullup versehen und mit einem
100nF abgepuffert?
-Ist die Masseführung gut?
-Hast du alle Masse und Vcc Pins beschaltet?

moin

Autor: moin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch was vergessen:
-Hast du alle Versorgungspins mit 100nF abgepuffert?
-Schalte mal einen kleinen Elko 4-22uF in die Versorgungsleitung,
vielleicht bricht kurzzeitig die Spannung ein.

moin

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Spannung und Reset sollten i.O. sein. Abblockkondensatoren usw. sind
auch da. Versorgungspins sind auch alle angeschlossen.

Ich kann zum Testen nochmal einen Elko einbauen. Da das Problem aber
nur  sporadisch auftritt, kann es ein paar Tage dauern, bis ich weiß,
ob das was bringt.

Auch wenn die Spannung zusammenbrechen sollte, dürften eigentlich nicht
Fuses und Lockbits verstellt werden. Dann müssen ja "zufällig" etliche
falsche Befehle ankommen.

Gruss, Philip.

Autor: moin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sind die Kontakte des Prog.Adapter zum ATMEGA OK? Ich hatte mal Probleme
mit der Masseführung (glaube ich ;_)).
Wenn das alles nichts hilft, bin ich auch ratlos.
moin

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um Versorgungsspannungsprobleme auszuschliessen: Brownout-Detector
aktiv?

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

BOD ist aktiv und das Problem ist schon mit verschiedenen
ProgAdaptern(aber vom gleichen Typ) an verscheidenen Exemplaren des
M128 aufgetreten. Die Prog. Adapter machen bei AVRs von anderem
Typ(M32,M8) keine Probleme.

Fast immer klappt die Programmierung des M128 auch problemlos. Bei der
Fehlersuche hatte ich schon M128 auch schon über 230 mal
scriptgesteuert ohne Probleme programmiert.

Gruss,Philip.

Autor: tsalzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe gerade ein ähnliches Problem. Ich programmiere über ISP von
einem Galep 4 aus, und das geht nur, wenn ich die Masseverbindung
nochmal extra, außenherum lege. Bei mir hilft sogar(ich kann es mir
nicht erklären), wenn ich vom Oszilloskop die Masse an den
Schaltungsground lege. Versuch das mal.

gruß

ts

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,


Werde ich am Montag nochmal versuchen.

Kannst du den Chip dann gar nicht programmieren oder tritt auch bei dir
das Problem mit den kaputten Fuses auf?

Gruss, Philip.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm? Ist schon klar, dass Zielgerät und Programmiergerät gleiches
Massepotential haben müssen, ne??

Autor: Christian Fasthuber (fasti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Habe auch grade das Problem, dass beim programmieren eines ATMega 8 auf
einem Breadboard sporadisch die Fusebits total verstellt sind. Das
Problem ist, dass er manchmal programmieren kann, manchmal erkennt er
nichtmal, das ein ATMega dranhängt. Manchmal sagt er das Teil ist
gelocked(PonyProg) und wenn man dann die Fusebits auslest, sind alle
Bits gesetzt. Ich weiss echt nicht mehr an was das liegen könnte.
Ich hab schon an einen Bug im PonyProg gedacht, da ich auf die neueste
Version abgegraded hab und vorher hatte ich das noch nie. Yaap hat aber
auch teilweise Probleme mit den Fusebits. Witzigerweise sind einmal alle
Fusebits gesetzt und beim mehrmaligen einlesen toggelt ein Bit.
Hoffentlich findet sich da bald was, ich bin schon am Verzweifeln.

Grüsse

Fasti

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich hatte auch zuerst PonyPorg2000 im Verdacht, da ich das zuerst zum
Proggen verwendet hatte und das Problem bei drei Mega128 aufgetreten
war.

Als ich dann mit AVRDude einen Chip 230 mal beschrieben hatte, dachte
ich, dass ich den "Schuldigen" gefunden hatte.

Leider ist das Problem dann auch noch eimal unter Verwendung von
PonyProg2000 aufgetreten.

Allerdings ist mir das nur mit dem M128 passiert, nie mit einem M8,
obwohl der M8 in meinem System am häufigsten programmiert wurde.

Gruss, Philip.

Autor: Christian Fasthuber (fasti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich hab irgendwo gelesen, dass man die Lockbits mit einem Chiperase
wieder rücksetzen kann. Nur weiss ich jetzt nicht wie ich so einen
Chiperase mache. Brauch ich dafür eine spezielle Software oder geht das
auch mit PonyProg? Wie geht das genau?

mfg

Fasti

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

geht auch mit PonyProg.

In Version PonyProg2000:
Command - Erase

Gruss, Philip.

Autor: Christian Fasthuber (fasti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke!

Autor: tsalzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon Küppers (Simon)

na klar, aber der Ground wird dort beim Galep aus'm CPLD-Pin
geschaltet, und über das ISP-Kabel mitgeführt. Vom Galep Ground(seinem
Netzteil) gegen diesen geschalteten Ground habe ich mal mit dem Oszi so
wabernde 5V (im 50 Hz Takt) gemessen. Da ist wohl in der internen
Spannungsversorung des Galep der Wurm drinne.

ts

Autor: Baku (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen!

>Konstante Faktoren: WinXP und STK200 kompatibler Prog.Adapter auf
Basis
>eines 74HCT244.

Könnte vielleicht daran liegen? Bei mir verhielt sich der ISP mit einem
HCT244 auch recht mekwürdig, ähnlich wie von dir beschreiben, allerdings
ein wenig schlimmer.
Ich habe ihn dann gegen einen HC244 ausgetauscht und er lief
einwandfrei, auch wenn das von den Pegeln her eigentlich schlechter
funktionieren sollte. Als Ursache habe ich herausgefunden, dass der HCT
anscheinend eine niedrigere Ausgangsimpedanz hat und auf der langen
Leitung zum PC kräftige Überschwinger erzeugt, was manchmal zu
Problemen führt.

HTH,
Baku

Autor: MickWick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
genau so ein ähnliches Problem habe ich auch denke ich:

beim Programmieren mit PonyProg sind mir reihenweise (4Stck) M128
"kaputt" gegangen, in der Weise, dass sie sich nicht mehr via ISP
ansprechen lassen. Also geht so wie ich das sehe auch kein Chip Erase
mehr via ISP. Weder mit dem HCT244 dongle am parallelport noch mit dem
STK500.

da dacht ich also die Dingers sind kaputt, also runterlöten neue drauf
und nur noch mit STK500 und AVRStudio programmieren.

aber nun ist das selbe mit STK aufgetreten, diesmal hab ich ein Oszi
mit Masse drangelassen(vielleicht liegts daran).

Bitte ich brauch da unbedingt nen Vorschlag wie man das vermeiden kann,
denn mittlerweile ist die Leiterplatte schon fast hinüber.

Ich werd nächste Woche mal versuchen die "kaputten" vial
Parallel-Programming Mode zum Leben wiederzuerwecken.

MFG

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann mit Leitungsreflexionen zusammenhängen: wenn eine längere
Leitung von einer niedrigen Impedanz (HCT) getrieben wird, kann es zu
Ringing führen, deshalb: an jedem Treiberausgang einen R (22-82 Ohm) in
Reihe schalten, erhöht die Impedanz, vermindert Übersprechen, dämpft
Schwingungen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.