Forum: Mikrocontroller und Digitale Elektronik PICs ohne IDE programmieren


von Uwe B. (uwe_beis)


Lesenswert?

Hallo zusammen,

ich möchte jemanden (weit weg von mir) in die Lage versetzen, einzelne 
Prozessoren, vielleicht auch mal eine kleine Serie, z. B. mit einem 
PICkit 3 oder ggf. einem anderen preiswerten Programmer, In-Circuit zu 
programmieren bzw. zu re-programmieren. Ich suche eine schlanke Lösung 
für Windows, ohne dazu eine IDE zu installieren. Der Kauf eines großen 
Programmers kommt allein wegen der In-Circuit-Anforderung genau so wenig 
in Frage wie die Prozessoren programmiert zu bestellen. Tipps wie "Warum 
willst du denn keine IDE installieren?" sind auch nicht hilfreich. (Als 
gebranntes Kind suche ich nur eine Antwort auf die obige Frage und keine 
Vorwürfe zu meinem unsinnigen Vorhaben. Das schafft nur Frust. Sorry, 
das musste mal sein.)

Ist das möglich?

Es geht nicht um die "Programmer-To-Go Operation", denn dazu müsste ich 
den Programmer weiterreichen. Ich kann aber nur Files per E-Mail 
schicken. Zurzeit geht es um einen PIC32MZ, aber die Frage ist ja 
vielleicht auch von allgemeinem Interesse. PonyProg kann offensichtlich 
keine 32er PICs.

Nebenbei, ich hatte fast die selbe Frage kürzlich für MSP430 gestellt, 
die selbe Situation, nur ein anderes Projekt. Die damaligen Antworten 
haben mir zumindest so viel weiter geholfen, dass ich eine perfekte 
Lösung selber gefunden habe.

Und für Altera-FPGAs, auch wieder die selbe Situation mit einem weiteren 
Projekt, wird eine perfekte Lösung in Form einer separaten 
Programmer-Software gleich bei den Tools auf der Webseite angeboten. Das 
war ideal.

Danke schon mal

Uwe

: Bearbeitet durch User
von K. J. (Gast)


Lesenswert?

Nutze jetzt kein Windows aber Piklab in der Windows Version ist ohne IDE 
damit kannst gut arbeiten sind nur Brentools, ansonsten wen es etwas 
Klikibunti sein soll die "Brenner9" + das tool von Sprut wobei ich da 
gerade nicht sicher bin ob der die PIC32 kann.

von W.S. (Gast)


Lesenswert?

Da hast du ein Problem.

ich könnte dir ja mein eigenes PIC-Brennprogramm als Quelle schicken, 
aber du müßtest dazu folgendes selber leisten:
1. Die Algorithmen für die PIC32 selber implementieren
2. Die Anpassung für ein PIC-Kit oder irgend etwas Eigenes selber machen

Ich habe bloß ziemliche Zweifel, daß irgend jemand hier in diesem Forum 
tatsächlich bereit ist, solcherlei Arbeiten selbst zu leisten. Hier 
heißt es eigentlich immer "nimm dies und kaufe das und mache nix selber, 
denn es gibt sowas ja schon."

W.S.

von Uwe B. (uwe_beis)


Lesenswert?

W.S. schrieb:
> Da hast du ein Problem.
Irgendjemand sagte mal, ein Problem hat man, wenn man ungebremst mit 100 
auf einen Baum zufährt. Alles andere sind nur Aufgabenstellungen :-)

> ich könnte dir ja mein eigenes PIC-Brennprogramm als Quelle schicken,
> aber du müßtest dazu folgendes selber leisten:
> 1. Die Algorithmen für die PIC32 selber implementieren
> 2. Die Anpassung für ein PIC-Kit oder irgend etwas Eigenes selber machen
Ich bin kein Programmierer, zumindest nicht für Hochsprachen auf einem 
PC. Mit "Die Algorithmen für die PIC32" meinst du wahrscheinlich, 
welches Bit an welchem Pin wann angelegt werden muss, um ein bestimmtes 
File in den Prozessor zu bekommen. Das könnte ich notfalls auf einem 
Microcontroller unter Assembler, aber nicht unter C als Anwendung auf 
dem PC.

> Ich habe bloß ziemliche Zweifel, daß irgend jemand hier in diesem Forum
> tatsächlich bereit ist, solcherlei Arbeiten selbst zu leisten. Hier
> heißt es eigentlich immer "nimm dies und kaufe das und mache nix selber,
> denn es gibt sowas ja schon."
Da gebe ich dir Recht (seufz). Ich habe erst kürzlich jemandem, der in 
Elektronik einsteigen wollte, den dringenden Rat gegeben, auf genau 
solche Ratschläge nicht zu hören. Hier will ich aber nichts lernen. 
Ich möchte nur wissen, ob ich eine einfache und preiswerte Lösung 
übersehe, oder ob ich die Kröte "IDE fern von hier zu installieren, zu 
erklären und zu warten) schlucken muss.

K. J. schrieb:
> Piklab in der Windows Version
Es sieht so aus, als ob kein Programmer, der die 32er unterstützt (also 
PICkit 3), unterstützt wird. Nebenbei wüsste ich nicht, wo ich 
hinklicken müsste, um den piklab-prog für Windows downzuladen.

Die Weiterentwicklung von Brenner9 scheint vor 7 Jahren eingestellt 
worden zu sein, so dass er nur wenige Reihen der PICs unterstützen kann 
und keinen PICkit 3 kennt (wobei ich nicht weiß, ob er darauf angewiesen 
wäre).

von K. J. (Gast)


Lesenswert?

Da hin ;) 
http://sourceforge.net/projects/piklab/files/piklab/0.16.1/win32/

obwohl da siehts auch nicht so rosig aus

http://piklab.sourceforge.net/devices.php

da ist ne liste was mit welchen Programmer geht obwohl die nicht aktuell 
zu sein scheint

von Klaus (Gast)


Lesenswert?

Uwe Beis schrieb:
> Mit "Die Algorithmen für die PIC32" meinst du wahrscheinlich,
> welches Bit an welchem Pin wann angelegt werden muss, um ein bestimmtes
> File in den Prozessor zu bekommen. Das könnte ich notfalls auf einem
> Microcontroller unter Assembler, aber nicht unter C als Anwendung auf
> dem PC.

Das wird nicht reichen. Für jede PIC-Familie, manchmal auch für eine 
Unterfamilie wird eine passende Firmware in den PICKit geladen. Die 
Firmware für PIC24F.. ist eine z.B. andere als die für PIC24E... Es gibt 
aber ein Standallone Programm zum Programmieren. IMHO kommt das aber bei 
MPLABX mit, ob es das einzeln gibt? Aber auch das ist nicht trivial, es 
muß ebenfalls alle PICs kennen und die passende Firmware bereithalten.

Wie wärs mit nem Bootloader?

MfG Klaus

von Frank K. (fchk)


Lesenswert?

Du könntest einen Segger JLink in Erwägung ziehen...

https://www.segger.com/jlink-microchip-pic32-support.html

von PICianer (Gast)


Lesenswert?

Wie wärs mit der MPLAB IPE?

von neuer PIC Freund (Gast)


Lesenswert?

Leider arbeite ich unter Linux, daher kann ich nicht verifizieren:
1
PK3CMD is a 32 bit command-line interface to MPLAB PK3CMD device programming support.
2
The PK3CMD executable may be found, by default, in: 
3
C:\Program Files\Microchip\MPLABX\mplab_ipe\

Vielleicht lässt sich da, wie unter Linux bei
1
pk2cmd-plus /etc/
2
pk2cmd-plus /etc/udev/
3
pk2cmd-plus /etc/udev/rules.d/
4
pk2cmd-plus /etc/udev/rules.d/60-pickit2.rules
5
pk2cmd-plus /usr/
6
pk2cmd-plus /usr/bin/
7
pk2cmd-plus /usr/bin/pk2cmd
8
pk2cmd-plus /usr/share/
9
pk2cmd-plus /usr/share/licenses/
10
pk2cmd-plus /usr/share/licenses/pk2cmd-plus/
11
pk2cmd-plus /usr/share/licenses/pk2cmd-plus/LICENSE
12
pk2cmd-plus /usr/share/pk2/
13
pk2cmd-plus /usr/share/pk2/PK2DeviceFile.dat
14
pk2cmd-plus /usr/share/pk2/PK2V023200.hex
eine exe mit ein paar zusätzlichen Dateien nutzen.

von Uwe B. (uwe_beis)


Lesenswert?

Klaus schrieb:
> Wie wärs mit nem Bootloader?

Das ist zumindest ein interessantes Stichwort. Der PIC32MZ hat keinen 
seriellen, sondern nur einen USB-Bootloader, soviel ich weiß. Was ich 
nicht beurteilen kann, ist, ob man eine PC-Anwendung erwarten oder 
erhoffen kann, mit der sich der PIC32MZ "einfach so" programmieren oder 
re-programmieren lässt, oder ob man sowohl diese Anwendung als auch den 
Bootloader im µC selber erstellen muss (letzteres wahrscheinlich nicht).

Ich habe die Firmware nicht selber erstellt (es ist ein USB Hi-Speed 
Interface) und kenne mich nur so weit aus, wie ich aus meiner 
Assembler-Programmierung (versuchsweise auch mal für PIC, sonst andere 
Prozessoren) erfahren habe. Mit MPLAB-X komme ich so leidlich klar, eine 
einfache Modifikation im Sourcecode kann ich vornehmen und testen, aber 
was darüber hinaus geht, ist nicht mehr meine Kragenweite. Aber ich bin 
derjenige, der einen (oder mehrere) Dritte(n) in Lage versetzen will, 
die Prozessoren zu (re-)programmieren. Und für die ist MPLAB der 
absolute und völlig undurchschaubare Overkill. Deswegen will ich es 
vermeiden, aber wenn's keine entsprechende Alternative gibt, muss es 
halt sein.

von Bernd K. (prof7bit)


Lesenswert?

Frank K. schrieb:
> Du könntest einen Segger JLink in Erwägung ziehen...

Haha, dann hat er aber 400 Jahre eisernes Sparen durch Einsatz von Pic 
statt AVR wieder mit einem Schlag zunichte gemacht!

von PICianer (Gast)


Lesenswert?

Uwe Beis schrieb:
> Und für die ist MPLAB der
> absolute und völlig undurchschaubare Overkill.
Du musst ja nicht die ganze IDE + Compiler nehmen, du kannst ja auch nur 
die IPE nehmen:
http://microchip.wikidot.com/ipe:start

von Uwe B. (uwe_beis)


Lesenswert?

Frank K. schrieb:
> Du könntest einen Segger JLink in Erwägung ziehen...
>
> https://www.segger.com/jlink-microchip-pic32-support.html
Da ich hier JLinks (sogar mehrere) habe, macht mich das natürlich 
hellhörig. Der Webseite entnehme ich auf die Schnelle, dass JLink auch 
von MPLAB X unterstützt wird. Dann würde ich ja keine weiteren PICkits 
brauchen, allerdings muss ich erst mal erforschen, ob das alles wirklich 
so einfach geht. Vielleicht ist es nur der 14-auf-6-Pol-Adapter. 
Interessant wird es insbesondere mit dem Hinweis:

PICianer schrieb:
> Du musst ja nicht die ganze IDE + Compiler nehmen, du kannst ja auch nur
> die IPE nehmen:
Die Existenz einer (eines) IPE war mir nicht bekannt, dabei steht es 
sogar im Startmenü. (So viel zu dem, was ich vorher schrieb: "Ich möchte 
nur wissen, ob ich eine einfache und preiswerte Lösung übersehe".) Es 
ist zwar offensichtlich die Installation der gesamten IDE erforderlich, 
aber der Anwender bekommt sie nicht zu Gesicht. Das ist schon mal ein 
großer Fortschritt! Ich habe die IPE eben aufgerufen, noch nicht 
ausprobiert, aber was ich da sehe, entspricht genau dem, was ich von 
einer übersichtlichen Programmieranwendung erwarte.

Damit bin ich schon erheblich weiter!

von PICianer (Gast)


Lesenswert?

Uwe Beis schrieb:
> Es ist zwar offensichtlich die Installation der gesamten IDE erforderlich
Nicht zwingend:
http://microchip.wikidot.com/ipe:installation schreib:
> The installer can install both MPLAB X IDE and MPLAB IPE, or you
> can choose to install just one of the programs during the installation
> process.

von Uwe B. (uwe_beis)


Lesenswert?

PICianer schrieb:
> Uwe Beis schrieb:
>> Es ist zwar offensichtlich die Installation der gesamten IDE erforderlich
> Nicht zwingend:
> http://microchip.wikidot.com/ipe:installation schreib:
>> The installer can install both MPLAB X IDE and MPLAB IPE, or you
>> can choose to install just one of the programs during the installation
>> process.
Ja dann... Dann ist der Tipp der von mir erträumte *100%ige 
Volltreffer*! Den kleinen Teil im Satz habe ich beim flüchtigen Lesen 
glatt übersehen.

Ich habe die Programmierung eben ausprobiert. Außer, dass ich etwas nach 
dem Verzeichnis für die Programmierfiles (*.HEX, wahrscheinlich wird er 
ja auch *.ELF akzeptieren) suchen musste und dass ich eine Warnung "The 
imported hex file contained debug information and has been cleared by 
MPLABX IPE" ignoriert habe, hat es sofort geklappt.

Beim Build sollte eigentlich die Production-Version generiert worden 
sein, was ist das also für eine Meldung ist?

PS: Gegoogelt hatte ich natürlich auch schon, bevor ich hier gefragt 
hatte, aber ohne diesen Erfolg.

von Frank K. (fchk)


Lesenswert?

Bernd K. schrieb:
> Frank K. schrieb:
>> Du könntest einen Segger JLink in Erwägung ziehen...
>
> Haha, dann hat er aber 400 Jahre eisernes Sparen durch Einsatz von Pic
> statt AVR wieder mit einem Schlag zunichte gemacht!

Der PIC32MZ ist ein 32 Bit 200 MHz MIPS-Prozessor, Du Pflaume! Und um 
den gehts hier.

von Michael R. (elektr-hobbyist)


Lesenswert?

Hallo Uwe,

ein PicKit 3 und dazu:

Beitrag "PICs ohne IDE programmieren"

und

https://microchip.wikidot.com/ipe:installation

Vielleicht nützt Dir das was.

L.G.

Micha

: Bearbeitet durch User
von chris (Gast)


Lesenswert?

Pic32prog . geht mit div ftdi jtag oder pickit2 oder usbasp.

von Uwe B. (uwe_beis)


Lesenswert?

Frank K und Bernd K:
Um was geht es bei eurer Diskussion? Aus reiner Neugier und "nicht dumm 
bleiben wollen": Welchen Nachteil habe/hätte ich durch J-Link unter 
welchen Umständen? Und warum habe ich diesen Nachteil dann doch nicht? 
MIPS oder nicht: Ich habe mal im Datenblatt nachgesehen, da steht 
zunächst nur, dass er einen "microAptiv™ Core" mit bis zu 330 DMIPs hat, 
einen "microMIPS™ mode" kennt und dass er ein "4-wire MIPS® Enhanced 
JTAG interface" hat. Ganz am Ende fand ich: "The CPU in the PIC32MZ 
family of devices has been changed to the MIPS microAptiv™ MPU 
architecture." Also ist es ein MIPS-Prozessor. Ein bisschen schlauer bin 
ich jetzt.

Micha: Danke, die Seite ist die, auf die mich  PICianer aufmerksam 
machte, daher kannte ich sie schon. Sie enthält, wie oben schon 
geschrieben, meine Traum-Lösung. Ist es ein Versehen, dass du auf den 
Thread verwiesen hast, in dem wir uns hier gerade befinden?

Chris: Auch danke, aber ich habe ja schon meine Ideal-Lösung, für die 
ich auch keine neue bzw. andere Hardware brauche, und sie läuft bereits.

von Bernd K. (prof7bit)


Lesenswert?

Uwe Beis schrieb:
> aus reiner Neugier und "nicht dumm
> bleiben wollen": Welchen Nachteil habe/hätte ich durch J-Link unter
> welchen Umständen?

Es war keine Diskussion, Ich habe nur sträflicherweise überlesen daß es 
sich um einen großen PIC handelt und nicht um einen der kleinen 8-Bit 
Pfennig-Artikel die sich gegen die kleinen AVR positionieren, meine 
Bemerkung spielte auf den doch recht beachtlichen Preis eines J-Link an 
welcher dann wohl Kanonenschießen auf Spatzen gewesen wäre (wenn der die 
kleinen PIC überhaupt programmieren kann), also ein Irrtum meinerseits.

von Michael R. (elektr-hobbyist)


Lesenswert?

Hallo Uwe,

entschuldige bitte, der Link von PICianer ist mir leider entgangen, sry.

Uwe Beis schrieb:
> ist es ein Versehen, dass du auf den
> Thread verwiesen hast, in dem wir uns hier gerade befinden?

Ja ist es. Ich muss mich nochmal entschuldigen.
Man merkt, der Tag war schon weit vorangeschritten.
Dies ist der richtige Link:

http://www.microchip.com/webinars.microchip.com/WebinarDetails.aspx?dDocName=en565585

L.G.

Micha

: Bearbeitet durch User
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.