Hallo, ich habe mich ein wenig mit der Hard/Software des STK500 Boards beschäftigt. Den Schaltplan habe von den AVR-Freaks, und eine disassemblierte, überarbeitete Firmware von dem AT90S1200 habe ich auch gefunden (im dem Archiv fixSTK500.zip). Die Funktionsweise von dem 1200 und dem 8535 ist mir soweit auch klar. Was ich nicht verstehe ist, wie ein automatisches Update im AVRStudio erfolgt. Wenn ich die Firmware im 1200 richtig verstehe, macht der solange nichts, bis der Pin PB0 auf GND gezogen wird. Jetzt finde ich allerdings nirgends eine Verbindung, so dass der 8535 diese Aktion im normalen Betrieb selbst auslösen könnte. Zum Vergleich: Im Schaltplan des AVRisp von Atmel gibt es so eine Verbindung. Da ich selbst keinen STK500-Board habe, kann ich derzeit die Sache leider nicht näher untersuchen - möglicherweise ist der Schaltplan ja nicht mehr aktuell, oder ich habe irgendetwas übersehen? Grüße, key
Es gibt einen extra Taster auf dem STK, der mit "Programm" beschriftet ist. Laut Anleitung sollte dieser schon während dem Einschalten gedrückt werden, wenn man ein Firmware-Upgrade machen will. Bye Thomas
SW200 und SW201 (die Schalter) sind auf dem Stk mit dem 165 verbunden und mit dem 1200. Dadurch kann das Programmieren ausgelöst werden. Ausserdem lauscth der 1200 dauerhaft an der seriellen Schnittstelle und kann sich wahrscheinlich bei Bedarf einschalten
@Thomas was Du beschreibst ist - soweit ich es den Anleitungen entnehmen kann - das manuelle Upgrade für den Fall, dass beim automatischen Upgrade was schief läuft. @Tobi AFAIK hat der 165 lediglich Eingänge (bis auf Q, Q\) und kann daher die Portpins des 1200 selbst nicht aktiv auf GND ziehen. Durch den 165 bekommt der 8535 lediglich mit, dass jemand die Taster gedrückt hat. Das mit dem dauerhaften Lauschen auf der seriellen Schnittstelle hab ich mir auch schon gedacht, aber das konnte ich aus der mir vorliegenden Firmware des 1200 nicht erkennen (aus "stk500_at90s1200_mega8535.asm" im Archiv "fixSTK500.zip"): ... RESET: clr write_page ; clear the 'page needs writing' flag clr temp1 out GIMSK,temp1 ; disable external interrupt ser temp1 ; Initialize out PORTD,temp1 out PORTB,temp1 set_reset ; set RESET=1 ddrb_release sbis PINB, 0 ; program button held down? clr_reset sbic PINB, 0 ; program button held down? rjmp RESET rcall u_init ; Initialize UART sei ; Enable interrupts ....
@KEy: Bist du sicher das er auch automatische Updates durchführen kann? Bei mir im Handbuch steht auch nur, das man aufgefordert wird, beim Update diesen während des einschalten des Boards zu drücken, So liefs dann auch, wie mich AVR Studio zum Upgrade aufgefordert hat. Bye Thomas
So, inzwischen kann ich die Sache nachvollziehen (Danke für die Hinweise). AVRStudio prüft beim Verbinden, ob ein AVRisp oder ein STK500 angeschlossen ist. Beim AVRisp kann die Firmware dann ggf. automatisch aufgespielt werden; auch nachträglich durch den Upgrade-Button in der "Board"-Seite. Wenn ein STK500 angeschlossen ist und eine ältere Firmware erkannt wird, wird man hingegen aufgefordert den STK500 neu einzuschalten und dabei den Prog-Knopf zu drücken - wie von Euch beschrieben. Der Upgrade-Button ist auf der "Board"-Seite deaktiviert. Überprüft habe ich das Ganze mit dem USBisp von Matthias Weiß. Durch Modifikation der Firmware konnte ich dem AVRStudio ein AVRisp oder ein STK500 mit veralteter Firmware vorgaukeln. Hier macht ein Updaten zwar kein Sinn, da die Hardware inkompatibel ist, aber mich hat eben die Funktionsweise eines Original-STK500 interessiert.
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.