Forum: Mikrocontroller und Digitale Elektronik IOs beim Bootloader


von Mike (Gast)


Lesenswert?

Hallo Leute,
ich schreibe gerade einen (universellen) Bootloader, er wird bei 
mehreren Platinen eingesetzt.

JE nach Platine werden die IOs anders benutzt oder gar nicht, wie sind 
sie am besten zu konfigurieren? Inputs/Outputs?

von Bronco (Gast)


Lesenswert?

Nach dem Reset sind alle GPIOs normalerweise als Eingang konfiguriert.
Der µC kann zu diesem Zeitpunkt ja noch nicht wissen, ob ein Pin als 
Eingang oder Ausgang verwendet wird.
Spricht was dagegen, die Pins im Bootloader einfach auf Resetzustand zu 
belassen?

von Michael D. (etzen_michi)


Lesenswert?

Ich würde sie zunächst so konfigurieren, das sie einfach nur in der Luft 
hängen (werder Pull Up noch Down) -> bei AVR DDR 0, PORT 0.

von Reinhard Kern (Gast)


Lesenswert?

Mike schrieb:
> JE nach Platine werden die IOs anders benutzt oder gar nicht

Da sehe ich nur 2 Möglichkeiten: entweder du lässt sie wie sie sind und 
verlässt dich drauf, dass das aktuelle Programm das regelt - aber das 
könnte ein Sicherheitsproblem geben, wenn z.B. der Bootloader erst mal 
eine Weile auf eine Eingabe wartet und die Ausgänge solange nicht sicher 
abgeschaltet sind. Oder du versiehst deine Platinen mit einer Kennung 
und schreibst für jede Version ein Basic Init, dass vorerst mal alles in 
den sicheren Zustand versetzt.

Nicht nur in diesem Fall sondern überhaupt ist es hilfreich, die 
Peripherie so zu entwerfen, dass sie bei einem Reset von selbst in einem 
sicheren Zustand bleibt, ohne dass der Prozessor eingreifen muss. Dann 
stellt sich deine Frage garnicht erst.

Gruss Reinhard

von Peter D. (peda)


Lesenswert?

Der Bootloader läßt alles, was er nicht selber braucht, im Resetzustand,

Und der Anwender hat mit Pullups/Pulldowns dafür zu sorgen, daß die 
Hardware keinen Unfug macht.

Es kann ja noch andere Ursachen geben, daß die CPU in Reset geht (z.B. 
Watchdog, Brownout).


Peter

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.