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
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