-
        

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: (Mir) unerklärliches AVR-Sterben

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379

    (Mir) unerklärliches AVR-Sterben

    Anzeige

    Moin!

    Ich habe eine simple Schaltung auf Basis eines mega168 aufgebaut. Das anhängende Schaltbild (ganz unten) zeigt das Wesentliche, nicht mit dargestellt sind nur ein FT232RL (an den Signalen TXD_FT232 und RXD_FT232) und ein synchron serieller DAC (an den Signalen DOUT und PD_SCK). Die Teile funktionieren (s.u.), ich habe sie hier einfach aus Platzgründen weggelassen. Das LCD verfügt über einen KS108 kompatiblen Controller. Sorry übrigens für das etwas pfuschige Schaltbild, hab's auf die Schnelle zusammengehauen ...

    Die Schaltung ist in SMD auf einer ordentlichen Platine aufgebaut.

    Ich habe nun zum zweiten Mal folgendes Problem:
    nach dem Aufbau funktioniert zunächst alles einwandfrei (LCD, UART, DAC), sodass ich mit der eigentlichen Firmwareentwicklung beginnen kann. Nach etwa dem 20. Flashen (sehr grob geschätzt) häufen sich Fehler beim Verifizieren nach dem Flashen, und die Firmware läuft auch folgerichtig nicht wie sie soll. Nach einigen weiteren Flash-Vorgängen treten dann jedesmal Fehler beim Verifizieren auf, ich kann den Controller also effektiv nicht mehr flashen. Ein paar Mal kann ich dann immerhin noch die Device Kennung auslesen, bis das dann auch nicht mehr geht. Ich flashe idR aus BASCOM, habe testweise auch mit AVRDUDE geflasht und dabei zwei verscheidene ISP Dongles getestet (USBASP und USBtinyISP) - mit dem gleichen Ergebnis.

    in AVRDUDE
    Code:
    avrdude: error: program enable: target doesn't answer. 1
    avrdude: initialization failed, rc=-1
    in Bascom
    Code:
    Could not detect chip, Auto program failed
    Chip ID: FFFFFF
    Mit den Dongles kann ich andere AVRs problemslos flashen (Positivkontrolle). Wenn ich mir ansehe, was auf dem ISP nach dem Defekt los ist, fällt auf, dass RESET, SCK und MOSI tun was sie sollen (auf den ersten Blick, habe mir den Bitstrom nicht genauer angesehen) aber MISO permanent auf low bleibt. Ich habe mal den Eingangswiderstand von allen ISP Pins am Controller nach Masse gemessen, die sind alle um die 10k, MISO hat also zumindest keinen Schluss nach Masse. Außerdem habe ich die Pins vom ISP, die das LCD parallel nutzt, vom LCD getrennt, das hat dann auch nichts mehr geändert (zu dem Problem siehe unten).

    Was mich stutzig macht ist, dass ich das exakt gleiche "Todes-Szenario" jetzt zum zweiten Mal habe. D. h. ich habe den ersten Controller wieder von der Platine runtergefönt und einen neuen draufgesetzt und von vorne angefangen - wie gesagt, mit dem gleichen Ausgang, erst geht alles, dann ist das Flashen nur noch sporadisch erfolgreich, bis der Controller dann schließlich augenscheinlich tot ist.

    Wie man sieht, nutze ich die ISP Pins auch für's LCD. Ich weiß, dass Application Note AVR910 für diesen Fall empfiehlt, Peripherie am ISP durch Widerstände zu "entkoppeln". Das habe ich mir hier in der Tat gespart, weil ich noch nie Probleme dieser Art hatte. Okay, das mag ein Fehler sein, aber: Selbst wenn diese Doppelnutzung zu Schreibfehlern beim Flashen führen sollte, kann ein Controller dadurch hardwaremäßig Schaden nehmen? Kann ich ihn also "kaputtflashen"? Können dabei die Fusebits vielleicht total verdreht werden?

    Sorry für die vielen Worte, hat jemand vielleicht eine Idee, wo das Problem liegen könnte? Im Moment steht nur auf meiner Liste, beim nächsten Mal Widerstände zwischen LCD und ISP-Pins einzubauen. Bin ansonsten mit meinem Latain gerade etwas am Ende ...

    Ganz vielen Dank!
    Malte

    Klicke auf die Grafik für eine größere Ansicht

Name:	schalt01.jpg
Hits:	73
Größe:	75,5 KB
ID:	29120

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Zitat Zitat von malthy Beitrag anzeigen
    Sorry für die vielen Worte, hat jemand vielleicht eine Idee, wo das Problem liegen könnte? Im Moment steht nur auf meiner Liste, beim nächsten Mal Widerstände zwischen LCD und ISP-Pins einzubauen. Bin ansonsten mit meinem Latain gerade etwas am Ende ...
    Ich würde zuerst einen mega168 genauso flaschen ohne ihn danach mit der o.g. Schaltung zu verbinden um die Quelle der wachsender Menge vom Fehlern eindeutig zu finden.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    ... Sorry für die vielen Worte, hat jemand vielleicht eine Idee, wo das Problem liegen könnte? ...
    Genaugenommen habe ich keinen Peil dazu. ABER ich hatte mal (ich erinnere mich ungern und sehr dunkel daran) ähnliches erlebt. Hatte den (die!) Controller dann "ausserhalb" jeglicher Beschaltung getestet und für gut befunden und danach die Platine nachgebessert. Was im Einzelnen war, weiß ich nicht mehr.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hallo!

    Vielen Dank für's Mitdenken!

    Ich würde zuerst einen mega168 genauso flaschen ohne ihn danach mit der o.g. Schaltung zu verbinden um die Quelle der wachsender Menge vom Fehlern eindeutig zu finden.
    Hatte den (die!) Controller dann "ausserhalb" jeglicher Beschaltung getestet und für gut befunden und danach die Platine nachgebessert.
    Die Controller sind in SMD Bauform, insofern ist schnelles "woanders" flashen nicht ganz so einfach. Vor allem glaube ich, dass das auch nicht der Punkt ist: ich konnte sie ja zunächst erfolgreich in der Zielschaltung programmieren, sie liefen dort ja - zunächst - einwandfrei. Mich wundert vor allem das "graduelle Sterben", also dass ich erst noch hin und wieder erfolgreich flashen kann, dann nicht mehr flashen kann, aber zunächst noch die device signature lesen, bis auch dieses nach einigen Lesevorgängen nicht mehr geht und der Controller dann offenbar ganz tot ist. Hat jemand speziell dazu eine Idee?

    Gruß
    Malte

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Kann es sein, dass die Spannungsversorgung nicht in Ordnung ist, und der Regler Zeitweise schwingt ? Das könnte den µC eventuell beschädigen, auch wenn zumindest die alten recht robust gegen Überspannung waren (wurde heiß, gingen nach dem Abkühlen oft aber wieder).

    Möglich wäre ggf. noch das die Schaltung irgendwie Empfindlich auf ESD reagiert, entweder über die Taster oder ähnliches, oder auch einfach bei Verbinden des ISP Programmers. Ein Problem könnte ggf. auch Fehler (Unterbrechung) bei der Platine sein, so dass viel Strom zwischen den GND oder VCC Anschlüssen fließen kann - auch damit kriegt man den µC ggf. kaputt.

    Beim Plan fehlt noch der Abblockkondensator am VCC Anschluss für den analogen Teil. Da sollte normal keine echtes Problem sein, könnte aber unter ungünstigen Bedingungen dafür sorgen das der Brownout Detektor zu früh anspricht, und damit ggf. den µC lahm legt.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    41
    Beiträge
    398
    Wie schaut die Betriebsspannung aus? Mach mal ein Scope mit einem Oszi....

    Die Reset Schaltung gefällt mir nicht ... Schau dir dazu das Hardware Design Appnote von Atmel an ... [1] Seite 6. Ich hab es so ausgeführt.

    Reset Schaltung:
    Klicke auf die Grafik für eine größere Ansicht

Name:	2014-09-27_18:13:18.png
Hits:	44
Größe:	7,4 KB
ID:	29124

    Ist die Peripherie sicher auch auf TTL Pegel?
    Ziehen irgendwelche Bauteile mehr als die Pins hergeben können? (max. 20 mA).
    Ist die gesamt abgegebene Leitung des Atmega in grünen Bereich?
    Ist das Display ein TTL Typ oder etwa eine 3.3V Variante? dann könnte zu viel Strom fliessen ...
    Pin 4 und Pin 6 brauchen jeweils eigene 100nF Stützkondensatoren.
    Avcc braucht auch einen eigenen Stützkondensator.

    Erzeugung +5V:
    Klicke auf die Grafik für eine größere Ansicht

Name:	2014-09-27_18:14:31.jpg
Hits:	36
Größe:	27,8 KB
ID:	29125

    [1] http://www.atmel.com/images/atmel-25...ote_avr042.pdf

  7. #7
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    @ malthy

    Ich wundere mich nur, das du für Entwicklung einen µC in SMD nimmst, wenn es gleichen in DIL gibt.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hallo!

    Danke für die Hilfe!

    Die Versorgungsspannung sieht okay aus, ich wüsste auch erstmal nicht, wo es da haken könnte. Die Erzeugung der 5V ist 08/15 folgendermaßen realisiert:

    Klicke auf die Grafik für eine größere Ansicht

Name:	stromvers.png
Hits:	29
Größe:	8,8 KB
ID:	29126

    Der Gleichrichter dient nur als Verpolungsschutz, deswegen fällt die Siebung nur minimal aus. Allerdings speise ich die Versorgungsspannung im Moment noch hinter dem Gleichrichter ein, damit alles auf der Masse von meinem Netzteil liegt. Hier mal schnell ein Einblick in die Versorgungsspannung, AC-gekoppelt, 20 mV/div. Vpp ist ca 57 mV, Vrms 8.44 mV. Sieht für mich erstmal okay aus (zumal auf die Schnelle gemessen mit frei fliegenden Kabeln). Die Schaltung zieht insgesamt ca. 80 mA, was natürlich im wesentlichen auf die Hintergrundbeleuchtung des LCDs zurückgeht.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Newfile2.png
Hits:	21
Größe:	73,9 KB
ID:	29127


    Stimmt schon, AVCC ist etwas ruppig angeschlossen, ich benutze hier den gesamten Analogteil des µC nicht, aber ich werde das beim nächsten mal ordentlicher machen. Dass die Sache daran scheitert glaube ich aber erstmal auch nicht.

    Auch die Beschaltung vom Reset ist etwas minimal ausgefallen, aber nach den Diskussionen die ich um dieses Thema bisher so verfolgt habe, sei das bei den neueren AVRs auch nicht mehr so ein riesen Problem, deswegen habe ich den Pull-Up weggelassen. Okay, auch das kann ich besser machen. Aber auch da bin ich erstmal ein wenig skeptisch dass dort das Problem liegt, denn der Punkt ist ja, dass ich nicht einfach nur eine "Funktionsstörung" habe sondern tatsächlich irgend ein letaler Effekt auftritt.

    Das LCD habe ich als 5V Typ in China gekauft - muss also nicht zwingend stimmen, bin da aber erstmal nicht vom Gegenteil ausgegangen. Und die Gesamtstromaufnahme vom System liegt in einem realistischen Bereich (s.o.).

    Gruß
    Malte

    - - - Aktualisiert - - -

    Ich wundere mich nur, das du für Entwicklung einen µC in SMD nimmst, wenn es gleichen in DIL gibt.
    Also erstens macht mir der Umgang mit SMD Spass, also rein handwerklich. Ist halt nichts für Weicheier ... nein im Ernst, tatsächlich ist der Umgang damit garnicht so schlimm wie man als Anfänger vielleicht erstmal denkt. Zumindest mir ging es so, und ich war dann überrascht wie gut man damit zurecht kommt. Aber dann gibt es noch technische Gründe. Die Aufbauten werden deutlich kleiner, das ist zunächst ein finanzieller Vorteil, wenn man Platinen machen lässt. Wenn man seine Schaltungen in Gehäuse o.ä. einbauen will, ist es außerdem angenehm, wenn man nicht so riesige Bretter hat, sondern eine kleine flache Platine. Im übrigen gibt es viele moderne ICs eh nur noch in SMD, wenn ich also schon einige Bauteile in SMD auf der Platine habe, dann brauche ich den Rest auch nicht mehr in DIP machen, finde ich. War jetzt etwas off topic ...

    Gruß
    Malte

  9. #9
    Erfahrener Benutzer Begeisterter Techniker Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    41
    Beiträge
    398
    Ich hab auch schon SMD Versionen verbaut. Auch Atmega168p. Hab immer alle Stütz - C verbaut.... Egal ob ich den Analogteil benutzt habe oder nicht. Ich und du kennen den internen Aufbau des IC's nicht. Sicher bist du nur, durch einhalten des Datasheet.Es gilt halt oft die Regel: "Premature Optimization is the root of all evil!". Auch beim sparen von 100nF C's ....

    IC's sterben halt durch überschreiten der Spezifikationen ... Induktionsspannungen .... Strombegrenzung ... Ptot ... Temperatur...

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2010
    Beiträge
    22
    Die CS-Pins vom LCD brauchen dringend Pull-ups, damit die Datenleitungen beim Flashen auch abgeschaltet werden. Beim RESET reicht üblicherweise auch schon ein Pull-up ohne Kondensator.

    Außerdem ist ein 10µF Kondensator nach dem Gleichrichter ein bisschen wenig.

Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. Cortex M3 unerklärliches Interrupt Verhalten
    Von Siro im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 8
    Letzter Beitrag: 18.01.2012, 17:20
  2. Unerklärliches Zurücksetzen von Variablen im SRAM
    Von autoguider im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 04.10.2007, 16:07
  3. LCD´s sterben wie die Fliegen...
    Von Sauerbruch im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 41
    Letzter Beitrag: 04.06.2007, 14:35
  4. AVRs sterben in Massen (nicht mehr) ab - Woran lag es??
    Von Jon im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 11.05.2007, 14:26
  5. Antworten: 9
    Letzter Beitrag: 17.07.2006, 23:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •