Hallo,
ich habe eine Firmware für einen PIC, in der Firmware ist das Programm
und ein Bootloader, leider ist mir der Original PIC kaputt gegangen,
kann man mit der Firmware den Bootloader extrahieren damit man de
komplette Firmware flashen kann?
Charly
Wenn du sicher bist, daß im Firmware bootloader + Programm vorhanden
ist,
dann einfach auf Pic Brennen. Fuses müssen noch beim brennen eingestellt
werden. Sollte funktionieren. Ansonsten wenn Firmware unverschlüsselt,
dann
kann man auch herausfinden, welcher Bootloader verwendet wurde, bzw
einen
Equivalenten benutzen.
Dann probier es mal. Sieht nicht schlecht aus, da man aber nicht weiss
welche cpu genau kann ich nichts genaueres berichten. Teilweise sind
da illegale Opcodes drin, könnten ev. incrementelle Checksums sein.
Aber da zuwenig Infos passt sollte es so passen.
Danke fürs umwandeln, leider hab ich keinen programmer, den müste ich
mir erst bauen, was aber nichts bringt wenn ich dann die Firmware nicht
reinbekomme.
Die Fuses scheinen bei dem Typen schon aufwendig zu sein, ist das
rauszubekommen?
CPU ist PIC24HJ128 GP310i
such nach bin2hex . Ich habe offset 0 angenommen, es gibt eine app note,
AN1094 nach der die SW ab 0xc00 oder 0xc02 starten sollte.
Die Fuses, die bekommt man raus, nicht aber ohne Wissen was die HW tut
und wie sie angeschlossen ist. Ev kannst du auch die SW welche den
Bootloader downloaded mal starten, und schauen ob die AN da benutzt
wird,
und auch schauen was da die SW runterschreibt.
Hallo,
ich habe mir nun einen Programer besorgt PicKit 3.
Leider wird im MPlab der Prozessor nicht richtig erkannt.
Target Device ID (00000000) does not match expected Device
ID (00673000).
Das Gerät hat einen ISCP Anschluss, ich habe die Pins herausgemessen,
das müsste passen. Der 6. Pin PM (LVP) ist nicht belegt.
An einem Funktionierendem Gerät wird beim lesen der Prozessor
zurückgesetzt. Irgendeine Kommunikation scheint also zu laufen, wird
aber auch nicht erkannt.
Muß ich einen seperaten Takt anlegen?
http://ww1.microchip.com/downloads/en/DeviceDoc/70175H.pdf
An Pin 63 und pin 64 ist ein 8MHz Quarz angeschlossen, welcher aber bei
dem defekten Gerät wegen falschen Fuses nicht anläuft.
Wo könnte ich noch suchen?
Der Quarz wird beim Programmieren nicht benötigt, PICKIT schickt selbst
den Takt.
Evtl. mal den LVP-Anschluß ansehen. Der könnte bei falschem Anschluß und
gesetztem LVP-Fuse den Prozessor in den Programmiermodus versetzen ohne
daß der richtig läuft.
Ok, ich habe etwas gesucht und ich denke das der PIC24H keinen LVP Pin
braucht, der kann nur in LVP programmiert werden bzw. kennt weder LP
noch HVP. So steht es auch bei Sprut.
"Alle dsPIC33F- und PIC24H-Typen haben einen internen Spannungsregulator
zur Versorgung des Prozessorkerns mit 2,5V, der nicht extra
eingeschaltet werden muss. Es genügt, 3,3 V in Vdd einzuspeisen, und am
Vcore (oder Vddcore) Pin einen 10 uF-Kondensator nach Vss
anzuschließen."
http://www.sprut.de/electronic/pic/icsp/icsp.htm
Ca. Seitenmitte.
Welche "anderen" Pins's meinst du?
An PGC, PGD und Vpp dürfen bei der Programmierung keine
PullUp-Widestände, C's, Dioden oder sonstige Peripherie hängen.
mit anderen meine ich alle anderen außer diese welche zum Programmer
gehen.
VSS ist klar
VDD hängen natürlich noch in der Schaltung z.B. Kondensatoren auf Masse
PGD/PGC hängt nur der ICSP Steckplatz
MCLR ;darf da noch ein Pullup dran sein? Habe den ausgelötet hilft aber
nicht
am Pin von VCORE ist ein Kondensator nach Masse nicht nach VDD wie bei
Sprut, denke mir aber das sollte nichts machen.
alle anderen Pins der Rest :)