Hallo, ich arbeite schon seit einiger Zeit mit meinem Atmega8. Seitdem ich mit ihm einen Motortreiber angesteuert habe, ist es nicht mehr möglich die I/O zu schalten. Man kann sie weder auf GND noch auf VCC schalten. Der µC wird aber korrekt erkannt, lässt sich korrekt programmieren, und liefert beim lesen des Flash's auch die korrekten Werte. Kennt jemand zufällig des Rätsels Lösung? Für jede Form der Hilfe wäre ich sehr dankbar MfG Batti
Nachtrag: Selbst ein Austausch des µC liefert das gleiche Fehlerbild... :-(
Keine oder zu langsame Schutzdioden verwendet oder zu hohen Strom aus dem Controller gezogen und damit die entsprechenden Pins abgeschoßen? Gruß, Frank
also ist der controller kaputt? War ein nagelneuer Controller, hab nur ne led angeschlossen (wollte nur sehn ob er die Ports schaltet). Ich vermute das der Controller garnicht das Programm abarbeitet...
@Batti Schau mal bei den Fusebits nach vileicht hast da was falsch eingestellt ??? Schik mir mal den code ich probiers dann mal aus. Gruss Lightning
Ich glaube ich muss das Problem noch ein wenig näher erleutern. Ich habe einen Motortreiber mit dem "letzten" Atmega8 angesteuert. Dieses funktionierte nicht so ganz, und als meine Fehlersuche ergab, das der µC, der vorher noch problemlos funktionierte, keine Pegel mehr ausgab hab ich diesen ausgetauscht. An dem neuen µC hab ich nur eine low-current led angeschlossen, aber auch der neue µC gibt nichts aus. Die Fusebits sind so eingestellt, wie auf dieser Seite beschrieben (AVR-Tutorial). Mit dieser EInstellung funktionierte der alte µC auch tadellos. Ich bin echt ratlos, denn die Erkennung und die Programmierung geschieht ohne Probleme. Der Test-Code ist der folgende: ldi r16, 0xFF out DDRD, r16 ldi r16, 0b00000000 out PORTD, r16 Mit freundlichen Grüßen Batti (Danke an alle, die mir mit ihren Tipps helfen)
Beim Code hab ich vergessen die m8def.inc einzubinden, dies hab ich natürlich beim testen gemacht...
@Batti OK. schließ mal eine led mit dem Pluspol an den AVR Pin D0 dann den minuspol auf masse. Sollte man zwar nicht machen aber für einen ganz kurzen test geht das schon Achtung! kurz machen sonst geht die led Flöten. Hier der code dazu: --------------------- .include "m8def.inc" ldi r16, 0xFF out DDRD, r16 ldi r16, 0x01 out PORTD, r16 loop: rjmp loop --------------------- Die led sollte leuchten. Gruss Lightning
ich muss leider noch etwas ergänzen (ist echt viel heute...) Zum Schluss des Programms ist natürlich ebenfalls eine Endlosschleife eingebaut. Und noch eine Frage, wie sind die Ports belegt, wenn sie nicht "angesteuert" werden? Dann dürfte auf denen doch weder Masse noch VCC liegen... Also quasi der Zustand den meine Ports trotz Programmierung auch gerade haben... MfG Batti
@Batti Ja wenn ein port nicht angesprochen wird is es weder masse noch VCC. Und funzt das programm?? Leuchtet die Led ?? Gruss Lightning
Danke Lightning für die Hilfe, aber es funktioniert nicht :-(. Die LED Leuchtet nicht. Er schaltet einfach überhaupt nicht die Ports. Dies hab ich ja mit der LED vorher auch schon getestet. Die LED hab ich angschlossen wie im AVR-Tutorial beschrieben. Wenn ich diese an GND gehalten habe, dann leuchtete sie, aber der µC schaltet seine Ports nie auf GND (auch nicht auf VCC). Werde daraus nicht schlau. MfG Batti
Danke an alle! Muss jetzt erstmal ne Pause mit dem Testen machen, heut Abend geht es aber ganz sicher weiter ;-). Wenn jemand noch des Rätsels Lösung einfällt (oder weitere Denkanstösse liefert), wäre ich ihm sehr verbunden, wenn er diese mir mitteilt. MfG Batti
@Batti hm. Dann setze mal statt 0x01 ähm 0xF0 ein und miss die ports durch. PortD sollte so geschaltet sein 11110000. Hast du vileicht am falschen port gemessen ?? PortB oder PortC ?? Gruss Beni
Also hab einfach mal ALLE Ports auf null gesetzt, jetzt müsste ja eigentlich GND anliegen... Müsste ;-), an keinen Pin liegt GND. Trotzdem kann ich den Controller fehlerfrei programmieren, und auch das "programm" wieder aus dem µC downloaden. ??????????????????????????????????????? Ich bin ratlos. MfG Batti
@Batti Dann setze mal alle ports auf High und miss dann. Ich kanns jetzt nimma mit dem mega8 probieren. der hat den geist aufgegeben--> Geht garnimma wegen kurzzeitig zu viel Strom. Naja ich könnts höchstens mit dem alten 4433 weiter testen aber naja. Egal Gruss Lightning
Vielleicht liegt es ja doch an der Hardware. Funktioniert die Spannungsversorgung noch zuverlässig ? Die ist ja teilweise entkoppelt von der Versorgung des Programmers. Hast du vielleicht den Reset Pin durch einen Überwachungsbaustein auf GND gezogen ?
Reset liegt auf VCC, das hab ich auch schon getestet :-(. Die Spannungsversorgung liefert 5V. Kann aber nicht testen wie "sauber" die ist. Wenn ich nen Controller überlastet habe, "brennen" dann nur die I/o durch, oder ist der dann total kaputt und lässt sich nicht einmal mehr programmieren? @Lightning, musst doch nicht extra deinen Controller für mich grillen. Danke für die Unterstützung! MfG Batti
@Batti Naja. Mich hats e schon gewundert das der noch geht weil der hätte schon vor längerer zeit kaputt gehn müssen da ich ihn verkehrt in die schaltung eingebaut habe. vileicht war es ne verzögerte zerstörung--> Zeitbombe :-)) Naja muss e wieder mal welche bestellen dann nehm ich gleich um die 10 ATmgea8 dann hab ich immer genug auf lager. Gruss Lightning
Ich hab jetzt noch meinen Atmega32 aufgebaut, auch dieser ist programmierbar und wird korrekt erkannt. Es ist auch möglich die zuvor programmierten Programme wieder korrekt zu laden. Doch leider ist es wieder das gleiche, es ist nicht möglich die Ports zu schalten. Ich teste momentan mit folgenden Programm: .include "m32def.inc" ldi r16, 0xFF out DDRA, r16 ldi r16, 0x00 out PORTA, r16 ldi r16, 0xFF out DDRB, r16 ldi r16, 0x00 out PORTB, r16 ldi r16, 0xFF out DDRC, r16 ldi r16, 0x00 out PORTC, r16 ldi r16, 0xFF out DDRD, r16 ldi r16, 0x00 out PORTD, r16 ende: rjmp ende Die Spannungsversorgung liefert 5V, ich kann leider nicht überprüfen wie sauber diese Spannung ist. Kann es sein, das die Spannungsversorgung einen weg hat? Oder der Programmer, obwohl er offensichtlich seinen Job tut. Die Fusebits sind auf jedenfall richtig gesetzt. Bin langsam echt verzweifelt. MfG Batti
Das Problem ist gelöst! Der Grund war ein Problem mit der Programmiersoftware (yaap). Zufällig hab ich ein altes Projekt geladen, und es funktionierte. Mehr kann ich dazu mom. nicht sagen, werde das mal genauer untersuchen. Danke an alle die mich so tatkräftig unterstützt haben! MfG Batti
@Batti Nim doch PonyProg das geht immer mit allen programmen. Ich benutze es auch und hatte bisher keine probleme mit dem brennen der software. Gruss Lightning
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.