PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega16+Aussetzter



dreadbrain
07.08.2008, 14:36
Hallo,

ich habe ein Problem mit einem ATmega 16.
Der Controller ist in einem Teil eines Netzgeätes eingebaut und hat bis vo kurzen noch tadellos als TWI-Slave funktioniert.
Bis es ihn gestern zerrissen hat.
Nach 2 Stunden fehlersuche und einem weiteren zerstörten Controller konnte ich den Fehler ausmachen. Es war ein abgebrochenes Beinchen des Festspannungsreglers, das immer dann wen ich gemessen habe Kontakt hatte und sonst eben manchmal nicht, was zur Folge hatte das der Controller und der Rest der Schaltung(Optokoppler zu optoisolation des TWI-Busses) mit 20 Volt lief.

Zuzeit habe ich wieder einen neuen Controller drin, hab aber leider die Optokoppler zuvor nicht getauscht(hab nicht dran gedacht, weil die auf einer anderen Platine sitzen^^).
Nach dem ändern der Fuses und aufspielen des alten Programms lief der Controller so ca. 10minuten ordnungsgemäß und seit dem spinnt er.

Er lässt sich zur zeit ohne Probleme Flashn, Fuses ändern etc.

Wenn ich ein einfaches Programm aufspiele, bei dem eine LED dauerhaft leuchten soll und eine andere den Pegel eines Inputpins(Pullup+ Taster) anzeigen soll, arbeitet er das Programm teilweise vollkommen richtig ab, teilweise beginnt keine Led zu leuchten oder sie flimmern oder blinken.

Das heist, das der Kontroller seine Schleife verlässt und sonst irgendetwas tut.
Es bringt keine Änderung wenn ich von internen Oszillator auf externen Quarz umschalte, die Brownoutdetection ändere etc.

Hier das kurze Testprogramm:


$regfile = "m16def.dat " 'Prozessordaten
$framesize = 32
$swstack = 40
$hwstack = 40
$crystal = 1000000
'_________________________________________________ ___________________________________
'I/O konfigurieren

Config Portb = Output

5v_k1 Alias Portb.4
33v_k2 Alias Portb.3
Posv_k3 Alias Portb.2 :
Fan1 Alias Portb.0
Fan2 Alias Portb.1


Ddrc = &B11111011
Portc.2 = 1 'Pull up für Taster aktiviert

Fan3 Alias Portc.7
Negv_k4 Alias Portc.6 :
Led_gr Alias Portc.5
Led_ge Alias Portc.4
Led_rt Alias Portc.3
Taster Alias Pinc.2
'_________________________________________________ ________________________________
Main:

Led_gr = 1
Led_rt = Taster

Goto Main

End



Kann es sein das der Controller durch die defekten Optokoppler in der TWI-Optoisolation einen Schaden genommen hat?



Es sind 6N137er Koppler.

Die Optische Isolation ist nach dem Bsp. von Phillips aufgebaut und hat tadellos funktioniert.

Die Optokoppler habe ich nun auch mal extern durchgemessen und festgestellt das sie Ausgangsseitig keine richtigen Pegel mehr erzeugen.
Der Opencollector-Ausgang sperrt zeitweise nicht mehr völlig, so das im High zustand noch Strom fließen kann und so Spannung über den Pullup abfällt.

Dies sollte aber ja bei TWI keine zersörenden Wirkungen haben, da der Controller ja die Pins auch nur auf LOW zieht.

Ich würde den Fehler gerne finden oder eingrenzen, bevor ich bei Reichelt neue Teile bestell.

mfg Benedikt

dreadbrain
07.08.2008, 15:05
mhh, glaube ich hab den Fehler gefunden.

Hab nochmal den Controller nachgelötet und bis jetzt funktioniert er seit ca. 5 Minuten fehlerfrei so weit ich es ohne TWI festellen kann.

Hoffe das es so bleibt und er wieder mit dem Twi-Master spricht, nachdem die neuen 6N137 da sind.

mfg
Benedikt

PS: Der Thread kann wegen mir gelöscht werden