Archiv verlassen und diese Seite im Standarddesign anzeigen : failed to enter programming mode
Hallo, ich habe einen atmega8, das stk500 und meine selbst gebaute Schaltung fuer 2 Motoren. Wenn ich den mega8 auf das stk setze, kann ich das Programm immer uebertragen und alles. Funktioniert wunderbar.
Wenn ich den Controller auf meine Platine setze, geht das programmieren nur manchmal. Oefters bricht das Programm uisp mit oben genannter Fehlermeldung ab.
Frueher hatte ich einen externen 10MHz Oszilator mit auf der Platine, aber die Fusebits ware nicht gesetzt so, dass er garnicht benutzt wurde. Jetzt benutze ich den 8Mhz internen Ozi und habe den externen wieder ausgebaut. Seitdem fingen auch die Probleme an.
An den Programmieranschluessen vom Controller (MISO MOSI RST... (PORTB)) habe ich noch ein paar Buffer und Transistoren haengen.
Meint ihr es liegt daran?
Hat vllt jemand noch eine Idee warum ich den nur sporadisch flashen kann?
thx
PS. Ich hoffe das ist normal dass der Chip leicht Handwarm wird.
An den Programmieranschluessen vom Controller (MISO MOSI RST... (PORTB)) habe ich noch ein paar Buffer und Transistoren haengen.
Was genau hängt da denn dran? Auch Kondensatoren?
Nein keine Kondis. Ich liste mal auf was wo dranhaengt. Mit dem Hinweis das das frueher auch angeschlossen war und es hat funktioniert.
PB0: Ein Inverter von 74ls04 und der Chip Select Eingang von einem Digitalen Widerstand (X9C103).
PB2: Der Clock Eingang der beiden Widerstaende.
PB3: Ein Inverter und der Up/Down Eingang von Widerstand.
PB4 und PB5. Je ein INverter und ein Transistor mit 4k7 Vorwiderstand.
PB1 ist irgendwann mal kaputt gegangen. KA warum. Ich bekomm da nur noch 0,7V und keine 5V mehr raus.
Wenn es im STK500 funktioniert aber im selbstgebauten nicht, würd ich mir mal gedanken machen.
Bei mir wurde noch nie ein AVR handwarm und ein Port geht nicht von alleine kaputt. Kann es sein, das du irgendwo einen Kurzschluss drauf hast?
Weswegen das programmieren nicht klappen könnte:
Versorgungsspannung schwankt zu sehr.
ISP defekt.
Chip defekt.
Fehler im Schaltungsaufbau.
Die Invertrer und Potis und was sonst am ISP mit dranhängt wird beim programmieren mit angesteuert. Und das meiste sicherlich mit Strom. Also fehlt der Strom evtl zum flashen.
Wenn das ganze in einer Schaltung wäre die eine große Maschiene steuert könnte es tödliche Folgen haben wenn sich beim programmieren auf einmal ein Motor dreht! Auch wenn es nur für den Hausgebrauch ist, man sollte sich sowas nicht angewöhnen. Wer weiss, was in 10 Jahren ist. Wenn man dann sowas beruflich macht muss man ansowas immer denken.
Da es im STK500 problemlos funktionier kann es also nur an deiner Schaltung liegen, oder dadran, das der AVR jetzt schon ne Macke hat (das PB1 nicht funktioniert ist ja nicht normal). Überprüfe nochmal dein Aufbau und mess mal die Stromaufnahme der Schaltung wenn sich die Motoren nicht drehen und auch sonst kein (großer) Verbraucher angeschlossen ist.
Ich mach mir ja schon Gedanken ;)
Ja, den Port werd ich wohl durch einen Kurzschluss zerstoert haben. Aber nun ist er nicht mehr angeschlossen und zum Programmieren wird er auch nicht gebraucht. An der Versorgungsspannung kann es auch nicht liegen weil ich einen Akku und danach ein 5V Festspannungsregelr habe.
Wie macht es denn das STK beim flashen? Vllt fahre ich heute nochmal hin und ueberpruefe ob der ISP direkt mit dem Port verbunden ist oder ob man das umschalten kann.
Nun, bei relativ kleinen Roboter hat man wenig Platz und Akku Kapazitaet und komm in Versuchung Ports doppelt zu belegen. Ich werd den ganzen Kabelwurst nochmal abloeten und untersuchen wann der Fehler anfaengt.
Thx fuer die Ermutigung nicht alles in die Ecke zu werfen :)
Aber PB1 hat ja intern keine direkte Verbindung von VCC zum Ausgang. Da sind ja noch einige andere Stationen dazwischen. Wer sagt denn, das da nicht noch mehr Schaden entstanden ist?
In die Ecke würd ich nicht gleich alles werfen. Dann kannst es auch mir schenken ;)
Messmal die Stromaufnahme wenn möglichst wenig angeschlossen ist und der AVR handwarm ist. Dann zieh die Ströme ab die die noch angeschlossenen Sachen benötigen und berichte mal. Es dürften ja nur wenige mA sein die der AVR ausnimmt.
Und versuch mal den Stromfluss zu messen der durch die ISP-Leitungen geht. Das sollten ja nach Dongle auch nicht mehr als 20mA sein. (jeweils für MISO MOSI und SCK). Wie hast du denn Reset beschaltet? Ganz normal nit einem Pullup-Widerstand?
Auch wenn mein PB1 intern nur noch ein Haeufchen Asche ist, auf dem Stk geht es *g*
Der Reset ist mit 10k gegen 5V und mit einem kleinen Kondi gegen Masse geschaltet.
Ich mach noch mein NFS fertig, dann mess ich das mal nach.
Ok, habe das Teil nun komplett auseinander genommen, es geht aber immer noch nicht. Der ATMega8 verbaucht bei mir ca. 25mA. Das ist etwas mehr als wenn er im stk steckt. Ich habe auch gleich den Schaltplan dazu gezeichnet und eine kleines Fehler korrigiert. Ich hatte naemlich die Ausgaenger zweier NAND Gatte zusammengeschaltte, was die hohe Stromaufnahme von fast 100mA erklaert. %-)
Ich machs kurz. Stecke ich den mega8 auf ein Breadboard und schliese ihn an den ISP, dann geht es auch nicht. Lasse ich aber den MC auf dem Board und verbinde ihn mit dem Socket auf dem stk, dann geht es. Aber absolut keine Ahnung warum. Wir koennen erst naechsten Monat einen neuen mega8 kaufen und hoffentlich funktionier es dann damit.
Hier ist der Schaltplan der Drehzahlreglung. Der X9C103 ist ein digitaler Wiederstand der anktiev ist, wenn CipsSelect auf Low liegt. Eine Lichtschranke am Motor erzeugt Impulse die der Controller zaehlt und mit einem Wert vergleicht. Alle paar 100mS schaltet er dabei zwischen den Lichtschraken um.
Der Wiederstand wird durch Impulse erhoeht oder erniedrigt. der Controller veraendert immer mit ein paar Impulsen den Widerstand, der letzendlich die Motorgeschwindigkeit bestimmt und misst dann erneut.
Ich hoffe die Schaltung ist verstaendlich. Bei Fragen fragen :)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.