Hallo hab gestern mit dem MCS-Bootloader experimentiert, geht wirklich gut und schnell (abgesehen davon, dass er sinnlos für LEDs Port B.2 und B.3 als Output schaltet - was ich übersehen habe), es bleibt folgendes Problem: ich hab die RTS-Leitung an den Reset-PIN gehängt -damit startet der Bootloader automatisch. Allerdings: meine Applikation verwendet dieselbe RS232 wenn ich jetzt das Hyperterminal am PC einschalte und selbst wenn ich kein Hardware-Handshake schalte, ist RTS automatisch auf high - die Folge: der Prozessor ist damit im Dauerreset. Ist das immer so? Ansonst muss ich halt das Reset über einen Taster auslösen (über Watchdog oder geht auch GOTO _reset?)
Hallo Ich habe gerade vor ein paar tagen mit diesem Bootloader Gespielt und den auf rs485 umgebastelt... Also die Led's kannst du aus dem Quellcode rausnehmen sollte in wenigen sekunden gemacht sein :) Zu dem Reset ich glaube RTS auf Reset gibt immer nur Probleme. Du kannst in deinem Programm per Goto xxx zum Bootloader springen oder eben per watchdog neustarten Viel Spass
Hab weiter mit dem Bootloader experimentiert und von Mark ein paar Tipps geholt und es gibt einen entscheidenden Vorteil beim Updaten der Software mit Bootloader: - das Watchdog-Bit wird vom Bootloader ausgewertet und in einem Register zwischengespeichert. - Die Applikation kann damit erkennen, ob ein Watchdog oder ein normaler Reset für den Bootvorgang verantwortlich war. - wenn das Programm vom Bootloader "geflasht" wurde, setzt es ein weiteres Bit im Register und die Applikation wertet dieses Register aus - wurde das Programm neu geflasht, werden so die Default-Epromparameter ins Eprom geschrieben - das würde sonst nicht so einfach erkennbar sein. Die DTS oder RTS-Leitung ist auch nicht notwendig, die Applikation braucht nur den Wert 123 auswerten und den Watchdog auslösen. Wichtig ist, dass Bootloader und Applikation die gleiche Baudrate verwenden Ab sofort: alle Programme nur mehr mit Bootloader!
naja ... da gibts aber auch Ausnahmefälle. Hab mir den Bascom Bootloader auf IR-Übertragung umgebastelt, moduliert auf 38kHz Signal zur Übertragung bleiben da noch 2400 Baud übrig an Geschwindigkeit. Mit Handshake und Prüfsumme brauchts für nen Block von 128 Bytes zu übertragen ne volle Sekunde. Hab das als Reserve implementiert um zur Not an die Firmware ran kommen zu können, aber alle Baugruppen darüber flashen ist elendig, da bekommt man graue Haare dabei ... da gehts per ISP mit 2MHz ISP-Takt doch mehr zur Sache.
Schönen Abend, das klingt ja spannend - das heißt du hast einen Bootloader, der über IR-gesteuert wird - wie schaut denn da das Gegenstück am PC aus? Allerdings wundert mich, dass du nur auf 2400 Baud kommst, wo doch auch die handelsüblichen IR-Fernbedienungen Timings von ca. 10 kHz aufmoduliert auf einen 36-40kHz Receiver haben. An deinem Code hätte ich großes Interesse, ich denke, denn könnte man durchaus auf 19,2 kHz upgraden - da gehts dann schon flott das programmieren. Den Standard-Bascom Bootloader habe ich einmal mit 115k Baud (Baudratenquarz: 7372800 Hz) probiert, ging ganz problemlos, allerdings habe ich dabei "Angst bekommen", denn da war er ein Vielfaches schneller als mein myAVR mk2 ISP-Programmer.
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.