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.
Welches Programmiergerät benutzt du denn und welche Software?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.