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.
Liste der Anhänge anzeigen (Anzahl: 1)
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 :)