Forum: Mikrocontroller und Digitale Elektronik M32 verstehe Probleme nicht


von Basti (Gast)


Lesenswert?

Hi.

Ich wende mich mit diesem problem an euch, weiol ich nicht mehr weiter 
weis.

Ich habe einen kleine Display-Controller programmiert. Ich lese Daten 
über i2C ein (software)und gebe diese über ein spi-soft-interface wieder 
aus. (ich habe nur die Software geschrieben)

Das ganze setup lief über wochen auf meinem Steckbrett und auf einem 
Lochraster-sample über ca 2 monate fehlerfrei. Dann haben wir das 
Hardware-layout begonnen, und exact  alles übernommen, allerdings SMD.

Nun haben wir ständig ausfälle, bei denen die Software stehen bleibt, 
oder das ganze abstürzt sobald man den M32 über 35°C erwärmt!?!?!?!?

Manchmal stürzt das ganze auch nach 5 sekunden ab und ich weiss nicht 
warum, wenn man den chip wechselt ist alles okay.

Ausser dem internen RC oszillator kann ich mir nichts anderes als 
fehlerquelle vorstellen?? Die software ist nicht timing-kritisch...

von uCler (Gast)


Lesenswert?

Hi Basti,

hast Du mal ein Schaltbild?

CNVss, Hld, Rdy - alles richtig ?

Gruss Udo

von Björn W. (bwieck)


Lesenswert?

Basti wrote:

> Nun haben wir ständig ausfälle, bei denen die Software stehen bleibt,
> oder das ganze abstürzt sobald man den M32 über 35°C erwärmt!?!?!?!?
>
> Manchmal stürzt das ganze auch nach 5 sekunden ab und ich weiss nicht
> warum, wenn man den chip wechselt ist alles okay.

Kalte Lötstelle oder Haarriss in der Platine...

von Dirk (Gast)


Lesenswert?

Hallo, welchen M32C meinst du ? Wir benutzen den M32C / 80er Group in 
extrem groesser Stueckzahl (>1M) und koennen diesen Fehler nicht 
bestaetigen.

Ich vermute auch sehr stark eine Kalteloestelle und ein Haarriss!

von Basti (Gast)


Lesenswert?

Nee, ich meine Mega32 (atmel)...

von Basti (Gast)


Lesenswert?

Kalte lötstelle schließe ich aus,

wenn ich den funktionierenden dann wieder gegen den vorherigen 
austausche, dann macht er den gleichen fehler, also er läuft ca 5 
sekunden, dann bleibt er stehen...

von Björn W. (bwieck)


Lesenswert?

Basti wrote:
> Kalte lötstelle schließe ich aus,
>
> wenn ich den funktionierenden dann wieder gegen den vorherigen
> austausche, dann macht er den gleichen fehler, also er läuft ca 5
> sekunden, dann bleibt er stehen...

Dann benutz doch einfach den funktionierenden weiter...
eventuell ist ja auch der M32 kaputt.
Falls der funktionierende auch ausfällt > siehe kalte Lötstelle

von Stefan (Gast)


Lesenswert?

Hast du schon angefangen zu messen oder bist du noch am Fehler 
wegdefinieren ;-)

Ist die Stromaufnahme bei Breadboard und SMD Aufbau gleich? Ist der 
Atmega32 nach dem Ausfall (und abkühlen) wieder OK? Heizt der sich 
selbst auf (=> daher Strommessung oben), oder machst du das extern?

von Dirk H. (arm-dran)


Lesenswert?

Basti wrote:
> Kalte lötstelle schließe ich aus,
>
> wenn ich den funktionierenden dann wieder gegen den vorherigen
> austausche, dann macht er den gleichen fehler, also er läuft ca 5
> sekunden, dann bleibt er stehen...

Frage! Wie wechselst Du einen SMD Typ ständig hin und her????

von dennis (Gast)


Lesenswert?

welchen chip, den atnmega, oder einen enthaltenen spannungsregler, oder 
...

im betrieb wechseln!? passiert das selbe nochmal mit gewechseltem??

läuft er nach abkühlen wieder, wobei ich 35grad nicht als kritisch, 
bezeichnen würde!!

das kann so viel sein.

sind im layout kondensatoren zur blockung enthalten.
liegen timing kritische pfade nebeneinander!?

benutzt ihr vielleicht ein anderes netzteil!? andere welligkeit - kann 
zur störung führen!?

habt ihr vielleicht lange busleitungen die einstreuen angebracht!?

andere steckverbinder?

andere umgebung, vielleicht im wohnzimmer direkt neben dem geöffneten 
pc!?

habt ihr vielleicht einen anderen typen verwendet!?

naja, ich denke, bis man den intwernen rc oszillator,  in verdacht 
nimmt, sollte man vielleicht mal die restwelligkeit auf der 
versorgungsspannung messen, wäre doch ein guten anfang....
d.

von Basti (Gast)


Lesenswert?

Die ganze Hardware (Layout) habe ich om prinzip nur noch als fertiges 
produkt gesehen, nachdem ich das Sample abgeschickt hatte...

Es ist ein 220NF am 7805 und je einer am Mega32 und Mega8. Der Mega8 
Läuft im übrigen störungsfrei...

Wir haben zum Testen einen 100nf extra an jedes VCC/GND paar gelötet, 
aber das brachte keine veränderung. Als spannungsversorgung verwenden 
wir ein Labornetzteil. Das Oszi zeigt eine AAL-glatte 
eingangsspannung...

Wie gesagt das timing ist so unkritisch, ich könnte den Mega32 auch mit 
4 Mhz intern laufen lassen, nur dann braucht er mir so lange um zu 
rechnen... :-))

Wir haben hardwaremäßig alles ausgeschlossen, die Eingangswiderstände am 
i2c bus kleiner gemacht, es läuft immer darauf hinaus, das mit wechseln 
des IC alles I.O. ist. Aber ich halte 20% ausfallrate für nicht 
realistisch.

Ja wir erwärmen ihn langsam in einer klimakammer. Wie gesagt ich habe 
keine endgültige hardware bei mir, ich kann auch nur ahnen.

Es hätte ja sein können, dass jemand sagt: oh ja interner RC das ist 
sehr kritisch oder so...

von Dirk (Gast)


Lesenswert?

>Es ist ein 220NF am 7805 und je einer am Mega32 und Mega8. Der Mega8
>Läuft im übrigen störungsfrei...


Bei Laengsreglern kommt ein 100nf am Eingang UND Ausgang, weil die sonst 
anfangen zuschwingen.

von Björn W. (bwieck)


Lesenswert?

Basti wrote:
> Die ganze Hardware (Layout) habe ich om prinzip nur noch als fertiges
> produkt gesehen, nachdem ich das Sample abgeschickt hatte...

> Wir haben hardwaremäßig alles ausgeschlossen, die Eingangswiderstände am
> i2c bus kleiner gemacht, es läuft immer darauf hinaus, das mit wechseln
> des IC alles I.O. ist. Aber ich halte 20% ausfallrate für nicht
> realistisch.

Wer hat die Platine hergestellt ?

Ihr selber ? > Kalte Lötstellen und Haarrisse...

Herstellen  lassen und selbst bestückt ? > Kalte Lötstellen

IC-Pins mit Fettfingern angegrabbelt ? > kein Kontakt!

keine Sorge, ist mir selber auch schon alles passiert.

Passiert mir sogar jetzt noch als ich mein Telefon auf Dauertest wegen 
der Batterielänge testen wollte: ab 3.97V wird der Gabelschalter nicht 
mehr erkannt.
Lösung: einfach mal den Fädeldraht etwas besser verzinnen > halbkalte 
Lötstelle

viel Spass beim Suchen

von Basti (Gast)


Lesenswert?

So. Haben jetzt 100nf überall hingelötet, etc

Die lösung ist vieieiel simpler:
der inerne RC und die unwissenheit des Kunden. Der Kunde hat den I2C bus 
beschleunigt...(bzw benutzt ein anderes gerät als das mit dem alles 
getestet wurde...)
damit läuft die software bei 8mhz interner rc an der grenze des 
machbaren, erwärmt man die CPU, verringert sich die PWM frequenz also 
auch die CPU frequenz. Die software kann die daten nicht mehr vom bus 
lesen.

von Björn W. (bwieck)


Lesenswert?

Basti wrote:

> Die lösung ist vieieiel simpler:
> der inerne RC und die unwissenheit des Kunden. Der Kunde hat den I2C bus
> beschleunigt...(bzw benutzt ein anderes gerät als das mit dem alles
> getestet wurde...)
> damit läuft die software bei 8mhz interner rc an der grenze des
> machbaren, erwärmt man die CPU, verringert sich die PWM frequenz also
> auch die CPU frequenz. Die software kann die daten nicht mehr vom bus
> lesen.

Derwegen sollst Du auch nie nicht den Internen OSC für timingkritische 
Sachen nehmen. Bau mal lieber einen Quarz dran...

Grüße Björn

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.