Forum: Mikrocontroller und Digitale Elektronik PIC Bootloader: wie programm übertragen


von A. S. (rava)


Lesenswert?

Hallo,

ich habe beim letzten platinenlayout einen Fehler gemacht und muss jetzt 
die software umgestalten. Mein Fehler: der Enable-Eingang eines 
LED-Treiber-Schieberegister-ICs ist nicht (an die RESET-Leitung) 
angeschlossen. Daher treibt er immer die LEDs. Der Strom ist für den 
gepulsten MUX-Betrieb ausgelegt. Während ich den µC aber programmiere, 
steht der Multiplexer und der Treiber verbrennt die LEDs.

Der beste Vorschlag hier im board, war es, einen bootloader einzusetzen. 
So kann ich in jedem Fall den Treiber erstmal abschalten, bevor die 
Möglichkeit besteht, dass der µC programmiert wird.
So etwas habe ich bislang noch nicht gemacht und hätte jetzt gerne ein 
paar Tips.

1. Wie den Bootloader übertragen:
Ich gehe davon aus, dass ich den einfach über ISP in den PIC bekomme. 
Ich habe ein picKit3 zur Verfügung. Aber wie stelle ich sicher, dass er 
an der richtigen Adresse im Flash landet?

2. Verbindung für die Übertragung der eigentlichen Programme:
Ich habe auf meiner platine nur PGC und PGD herausgeführt. An die 
seriellen Schnittstellen komme ich nicht heran. Höchstens ISP/I²C käme 
noch in Frage. Oder ich fummel etwas mit pogo-pins hin, was mir aber 
direkt an den TQFP-Pads nicht so sehr gefällt.

3. Verbindung PC-seitig:
Am besten wäre es natürlich, wenn ich zum Übertragen der Software wieder 
das picKit verwenden kann. Gibt's hierfür geeignete PC-Tools?
Ansonsten brauche ich wohl oder übel noch einen Wandler für die unter 2. 
gewählte Schnittstelle. Habt ihr da Vorschläge?
Lochraster oder fertiges Gerät kämen in Frage. Eine neue SMD-Platine 
möche ich hierfür nicht herstellen lassen.

4. Welchen Bootloader verwenden?
auf der webseite habe ich nur diesen hier gefunden:
http://ww1.microchip.com/downloads/en/DeviceDoc/srlbootl.zip
Der ist allerdings für die Serielle Schnittstelle gedacht. An die beiden 
EUSARTs komme ja nicht ran.
Gibt's irgendwelche bootloaderprojekte, auf die ich zurückgreifen 
könnte?
Ich programmiere fast nur in C. Aber wenn sich ASM-lernen nicht 
vermeiden lässt, muss es eben sein!



ihr seht, es bleiben also einige freiheitsgrade:
welche Schnittstelle am µC?
welche Schnittstelle am PC?
welche Software am PC?
welche Firmware aufspielen?

mein pic:
PIC18F46K22-IPT @ 4x16MHz

von Frank M. (frank_m35)


Lesenswert?

Wenn du einen Bootloader einspielen willst, wirst du, wie du schon 
selbst angemerkt hast, zwangsläufig den PIC neu programmieren müssen. 
Somit ist das immer noch keine Lösung, da dann immer noch deine LEDs 
gebraten werden. Natürlich dann nur einmalig, aber das ist in deiner 
Situtation egal da nach einmal die LEDs wohl hinüber sind.

Falls du doch deine Zeit mit Bootloadern, die dir ja wegen oben 
genannten Problem nichts bringen werden, 'verschwenden' willst:
http://www.sprut.de/electronic/pic/bootloader/bootloader.htm
Wie das aber ohne Schnittstelle nach außen funktionieren soll, ist mir 
ein Rätsel.

Ansonsten:
Warum schließt du nicht einfach den RESET Eingang noch nachträglich an? 
Dafür gibt es Haardraht.

Du könntest ihn ja auch auf einen Schalter legen, oder an eine Lötbrücke 
um ihn beim Programmieren manuell ausschalten zu können.

Alternativ kannst du die Versorgungsleitung auf der Platine für die LEDs 
mit einem kleinen Cutter-Messer kappen, Lötstopplack abkratzen und eine 
Lötbrücke setzen. Wenn du programmieren willst musst du die Lötbrücke 
eben entfernen, danach wieder hinsetzen.

von Dirk F. (dirkf)


Lesenswert?

Google mal nach Tiny Bootloader. Sehr klein.

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.