Forum: Compiler & IDEs Bootloader für µC - System über Bus


von mgiaco (Gast)


Lesenswert?

Hallo Zusammen, mal kurz eine Frage bezüglich Bootloader.

Ich Arbeite zurzeit an einem Design mit LPC2138 und Attiny261. Die 
beiden sind über eine UART verbunden nur als neben Info.

Ich möchte später die beiden über eine Software updaten können 
(Bootloader). Der LPC hat ja einen, ob ich diese verwenden kann oder 
nicht weis ich noch nicht. Für den AVR gibt’s ja auch einiges im 
Internet was man eventuell anpassen könnte.

Es soll mal so funktionieren, dass ich über RS485 nur dem LPC ein File 
schicke in dem beide Hexfiles verpackt sind. Der ARM schnappt sich seins 
und das für den AVR sendet er weiter. Ich denke ihr wisst was ich meine, 
ist ja auch nichts besonders. Dennoch habe ich davon noch sehr viel 
Respekt und es erstmal ganz nach hinten geschoben. Geht so was auch wie 
ich mir das Vorstelle? Ich denke schon oder!

Jetzt noch zum eigentlichen Problem ich möchte nicht einen Pin nach 
Masse ziehen beim einschalten. Die LPC´s (es sind mehrere) hängen an 
einem Bus und ich möchte dies über diesen Bus updaten. Es gibt dann ein 
spezielles Kommando für den Update  usw. Geht auch da bin ich mir sicher 
nur muss ich was Spezielles in der Hardware vorsehen? Ich habe auf dem 
Bus ja kein RTS und CTS. :-)

Besten Dank im Voraus

mathias

von Peter D. (peda)


Lesenswert?

mgiaco wrote:
> Ich Arbeite zurzeit an einem Design mit LPC2138 und Attiny261. Die
> beiden sind über eine UART verbunden nur als neben Info.

Daß der ATtiny261 keine UART hat, weißt Du aber?


> Jetzt noch zum eigentlichen Problem ich möchte nicht einen Pin nach
> Masse ziehen beim einschalten. Die LPC´s (es sind mehrere) hängen an
> einem Bus und ich möchte dies über diesen Bus updaten. Es gibt dann ein
> spezielles Kommando für den Update  usw. Geht auch da bin ich mir sicher
> nur muss ich was Spezielles in der Hardware vorsehen? Ich habe auf dem
> Bus ja kein RTS und CTS. :-)

Ich mach das einfach so, daß nach nem Reset etwa 0,3s geprüft wird, ob 
ein bestimmter String über die UART reinkommt. Wenn nicht, dann startet 
der Bootloader die Applikation.
Damit braucht man keine extra Schalter und der Bootloader kann nicht 
versehentlich unerreichbar werden.


Peter

von mgiaco (Gast)


Lesenswert?

Okay super danke. Der hat aber ein USI. Wird aber dann mit deinem 
Bootlaoder nicht gehen oder :-(. Habe ich übersehen danke.

Mathias

von Peter D. (peda)


Lesenswert?

mgiaco wrote:
> Okay super danke. Der hat aber ein USI. Wird aber dann mit deinem
> Bootlaoder nicht gehen oder :-(.

Ne, mein Bootloader läuft ab ATtiny13, macht also ne SW-UART.
Er hat ja auch nichts weiter zu tun.

Und nur mit SW-UART kann man die Polung umdrehen (kein MAX232 notwendig) 
bzw. nur einen Pin für RXD und TXD nehmen.


Peter

von mgiaco (Gast)


Lesenswert?

Danke.

Das mit der Polung, keine Ahnung was du da meinst aber werde ich sicher 
noch drauf kommen.

Okay das heisst aber es müsste doch gehen ich kann ja genau die Pin´s 
nehmen die ich dan auch für die UART(mit USI) nehmen.

Stell mir das so vor: Ich sende einen Befehl an den AVR dieser springt 
dann in den Bootloader an (ich hoffe man kann das, weis ich nocht nicht) 
und von da an läufts mit der SW UART des Bootloaders. -> Klingt ja 
einfach, wird aber sicher sehr kompliziert denke ich. Aber müsste gehen 
oder nicht?

danke

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.