Forum: Mikrocontroller und Digitale Elektronik Bascom-MCS Bootloader RTS-Dauerreset


von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

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?)

von Sven (Gast)


Lesenswert?

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

von Auchbootloadernutzer (Gast)


Lesenswert?

Macht es per Watchdog, alles andere ist unschöhn

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

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!

von Weingut P. (weinbauer)


Lesenswert?

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.

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

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
Noch kein Account? Hier anmelden.