Hallo,
ich habe folgendes Problem, ich programmiere meine 18F-PICs mit einem
Evalboard. Jetzt hab ich ein Projekt bei dem ich ein LV PIC 18F45J11
vewendet habe, die Platine auch soweit geätzt und bestückt (SMD), was
jede menge Arbeit war.
Jetzt sagt mir mein Programmer, dass es sich um den falschen
PIC-Programmer handelt. Da es ein LV Typ ist. Dafür benötigt man
natürlich wieder einen anderen Programmer der natürlich gleich wieder
incl. Versand 100€ kosten würde (brauch ihn auch verm. nur einmal).
Jetzt zu meiner Frage. Kann ich mit einem Compiler das hex File
erstellen und mit einem anderen Compiler/Programmer (den ein Freund von
mir hat), das hex file draufziehen? In dem hex file steht doch am Anfang
jeder Zeile eine Adresse und dahinter der Code, der dort abgelegt werden
muss (oder hab ich da was falsch verstanden?)
Vielen Dank im vorraus.
frank85 schrieb:> Jetzt zu meiner Frage. Kann ich mit einem Compiler das hex File> erstellen und mit einem anderen Compiler/Programmer (den ein Freund von> mir hat), das hex file draufziehen? In dem hex file steht doch am Anfang> jeder Zeile eine Adresse und dahinter der Code, der dort abgelegt werden> muss (oder hab ich da was falsch verstanden?)
Ein Compiler macht aus ASM-Code einen Hex-Code (Maschinencode) oder aus
C einen Hex-Code bzw Maschinencode, ggf. zusätzlich noch ein ASM-Code.
Ein Compiler kann aber keinen µC beschreiben. Das macht ein
Brenner/Programmer. Der Hex-Code beinhaltet dein Programm + Settings +
PIC-Typ. Diesen Hex-Code kannst du mit jedem Brenner/Programmer auf den
µC bringen. Also Hex erstellen, µC und Code nehmen, zu deinem Freund
fahren und da brennen.
frank85 schrieb:> Jetzt sagt mir mein Programmer, dass es sich um den falschen> PIC-Programmer handelt.
Da scheint mir was nicht zu stimmen. Der Programmer sagt, dass er selbst
der falsche ist? Das hab ich noch nie gesehen. Kann es sein, dass der
Programmer sagt, dass der falsche (oder kein) PIC angeschlossen ist?
Soweit es keine brandaktuellen PICs sein müssen, kannst du den Brenner8
von Sprut nehmen, der kann auch LV PICs beschreiben und kostet an
Bauteilen ca 15-20€. Das PICKIT3 von Microchip direkt kostet incl.
Versand knapp 70€ und ein Nachbau bzw PICKIT2, der auch nicht viel
weniger kann kostet bei ebay unter 50€.
frank85 schrieb:> Dafür benötigt man> natürlich wieder einen anderen Programmer der natürlich gleich wieder> incl. Versand 100€ kosten würde (brauch ihn auch verm. nur einmal)
frank85 schrieb:> Jetzt zu meiner Frage. Kann ich mit einem Compiler das hex File> erstellen und mit einem anderen Compiler/Programmer (den ein Freund von> mir hat), das hex file draufziehen? In dem hex file steht doch am Anfang> jeder Zeile eine Adresse und dahinter der Code, der dort abgelegt werden> muss (oder hab ich da was falsch verstanden?)
Musst du ausprobieren.
Aber normalerweise lautet die Antwort: ja das geht.
Das Hex-File ist meistens ein sog. Intel-Hex File und dessen Format ist
standardisiert.
>Da scheint mir was nicht zu stimmen. Der Programmer sagt, dass er selbst>der falsche ist? Das hab ich noch nie gesehen. Kann es sein, dass der>Programmer sagt, dass der falsche (oder kein) PIC angeschlossen ist?
Ja, wirklich doof beschrieben. Natürlich meinte ich, dass die Software
erkennt dass der falsche Programmer dran hängt.
Trotzdem vielen Dank. Ich werd mal schauen was ich mit einem von Spruts
Brennern anfangen kann.
frank85 schrieb:> Hallo,>> ich habe folgendes Problem, ich programmiere meine 18F-PICs mit einem> Evalboard. Jetzt hab ich ein Projekt bei dem ich ein LV PIC 18F45J11> vewendet habe, die Platine auch soweit geätzt und bestückt (SMD), was> jede menge Arbeit war.> Jetzt sagt mir mein Programmer, dass es sich um den falschen> PIC-Programmer handelt. Da es ein LV Typ ist. Dafür benötigt man> natürlich wieder einen anderen Programmer der natürlich gleich wieder> incl. Versand 100€ kosten würde (brauch ihn auch verm. nur einmal).
Welchen Programmer verwendest du denn Jetzt?
Sicher keinen halbwegs aktuellen von Microchip?
Die 18LF45J11 können laut Liste ohne weiteres Zubehör mit dem PK2, dem
PK3 sowie ICD2 & 3 gebrannt werden.
Falls du einen Programmer davon hast versuche mal die aktuellste "Final"
Version von MPLAB (Nicht MPLAB X beta, geht evtl auch aber ist 1. noch
beta, 2. Riesig) zu installieren, evtl ist deine Version auch einfach
nur zu alt.
Ach ja: Wenn du gewillt bist etwas mehr mitzubestellen kannst du für zum
Beispiel 70 Euro den PK3 Original plus weiteres Elektronikzeugs im Wert
von 30-40 Euro bekommen. (Mindestbestellwert)
Ansonsten kostet der PK3 original incl Versand hier in DL so ab 50-60
Eur.
Einen Nachbau bekommst du bereits für unter 30 Euro!
Und eins noch:
Finger weg von diesen ganzen nicht kompatiblen Selbstbaudingern...
Die Zeiten sind vorbei, Der Materialaufwand liegt nur geringfügig unter
den Kosten eines gekauften Pickit (evtl. Clones) das 100% von Microchip
in MPLAB unterstützt wird. Dafür braucht es Zeitaufwand den aufzubauen
und deutlich mehr umstand bei jedem einzelnen Schreibvorgang. Und die
Unterstützung zhukünftiger Pics ist mehr als ungewiss. Die Zeiten der
Selbstbaudinger sind vorbei!
Gruß
Carsten
>Welchen Programmer verwendest du denn Jetzt?
Also ich benutze das BigPIC4 von Microelektronika, welches ich
modifiziert habe, damit ich viele andere PICs brennen kann. Dazu benutze
ich den mikroC Pro for PIC Compiler.
Ich glaube ich werde mir das PICkit2 bestellen. Wobei ich mir irgendwie
noch nicht sicher bin, ob ich ohne weiteres mit einem anderen Programmer
den hex-Code aufspielen kann.
Das mikroC Pro for PIC ist zwar super comfehtortabel was das
programmieren angeht, sprich fertige Funktionen, man muss sich selten um
die Hardwaredetails kümmern usw.
Aber was schon mal blöd ist, ist das die ganzen headerfiles geschützt
sind, ich meine ich kann sie nicht öffnen.
Dazu kommt noch, dass im Programmer der sich nach dem compilieren
öffnet, es noch weitere Einstellmöglichkeiten gibt, sprich Watchdog,
Brown-Out usw.
Und deshalb weiß ich nicht wie sehr eventuell das hexfile zusätzliche
Informationen beinhaltet.
Aber ich hoffe, wie Karl Heinz Buchegger schrieb es sich um ein Standart
handelt und somit keine Rolle spielt welchen Compiler man benutzt.
(Übrigens mein o.g. Freund sein Brenner unterstüzt die 18FJ PICs nicht).
Also eigentlich sollte das gehen. Ich verwende die Microchip IDE+C18 und
mir ist an dieser Stelle nichts davon bekannt, daß irgendein Programmer
Fuse-Bits ändert oder ähnliches. Was allerdings geht, ist, per IDE die
Bits zu setzen (vermutlich geht das auch mit deiner Softw, was sich aber
bestimmt unterbinden lässt.)
Schade, daß es hier so wenig PIC-Enthsiasten und PIC-Projekte gibt.
Ich mag diese Biester eigentlich, habe vor Urzeiten mal mit nem 452
einen Datenkonverter gemacht, aktuell hab' ich auf Olimex-Basis mit
einem 18F67J60 einen Belichtungsreihen-Auslöser (z.B. für
Zeitrafferaufnahmen für Sonnenuntergänge) zu Übungszwecken, damit Finger
und Geist geschmeidig bleiben, gestrickt. Aber wahrscheinlich juckt das
Dingens eh keinen...
Joachim
Ich benutze auch den mikroC Compiler von Mikroelektronika. Bei den
Projekteigenschaften kannst du den PIC und die Frequenz auswählen.
Zusätzlich werden aus einer Datenbank die passenden Configs gelesen,
sodass man nicht im Datenblatt nachgucken muss, für was jetzt z.b. das
Config-Bit 10 steht. Dort hast du dann eine Überschrift, z.b. für den
OSC, und dort kannst du dann einstellen, ob LP, RC, intern usw. Durch
die ganzen Auswahlen wird dann das Configwort/wörter erstellt. Die
Config und der PIC-Typ wird in der Hex-Datei gespeichert, damit die
Brenn-Software (egal welche) kontrollieren kann, ob das richtige Bauteil
drinne ist. Manche Brennsoftware, wie z.B. usburn, kann nachträglich die
Configbits ändern. Das Programm erkennt aus der Hex-File, für welchen
PIC-Typ das Programm ist und guckt dann in der Datenbank nach, welches
Config-Bit für was steht und zeigt es an. Mit dem ändern der
Einstellungen, ändert er nur den Bereich der Hex-Datei, wo auch die
Config steht. Die Angabe der Taktung vom PIC hat ansich nichts mit der
Hex-Datei zutun. Die wird nur dazu benutzt, um z.b. den Delay-Funktionen
oder Software-I²C-Funktionen zu sagen, wielange sie warten müssen. Ein
delay_ms(50) wartet 50 ms, dazu muss der Compiler bzw. die
Delay-Funktion wissen, wie schnell der PIC läuft.
Hast du einmal die ("genormte") Hex-Datei kannst du es mit MPLab oder
usburn oder Microelektronika brennen. Ich z.B. programmiere und
compiliere den C-Code in mikroC, lade dann mit PicKit3 die Hex-File und
brenne es auf den PIC.
Nebenbei, hat es schon jemand geschaft, den PICKIT3 in den mikroC zu
integrieren? Bei mir ist er nie in der Liste der angeschlossenen
Brenner.