Um PIC Controller zu programmieren nutze ich immer den Pickit3 von Microchip. Funktioniert(e) prima, bis ich auf den Bolzen kam, den Programmer mal falsch, also um 180° verdreht anzuschliessen.
Interessanterweise funktioniert identifizieren und auslesen eines PIC immer noch, nur flashen geht nicht mehr.
Was also tun? Ich hatte bereits vor längerer Zeit einen Pickit2 geordert, der in der Bastelhölle der Erstverwendung harrte. Dies ist die Geschichte, wie ich den Pickit2 zur Mitarbeit überredet habe.
Einschub:
Der eigentlich nicht mehr supportete pickit2 ist immer noch sehr beliebt, der Riesenunterschied und nicht nur aus meiner Sicht Vorteil ist: + Der notwendige Linux Code ist nativ Cpp und nicht Java, man muß nicht ein knapp 1GB großes mplabx Paket downloaden. - Die unterstützen MCU sind statisch und werden wohl nicht mehr gepflegt. Ein Hobby (Maker
Im Netz findet man allerlei gute Anleitungen wie vorzugehen ist, wenn man den Pickit2 unter Linux zum Flashen benutzen möchte, hier meine Anleitung in gewohnt knapper Form.
Im Grunde habe ich mich hier orientiert: https://blog.toonormal.com/2016/01/26/using-a-pickit2-on-linux/
Die Sourcen sind nicht mehr direkt verlinkt, aber noch downloadbar. (Das Paket ist nur 3.6 MB klein.)
Schaut euch die Anleitung dazu im link oben an.
Wenn die Sourcen übersetzt sind und ein Test erfolgreich war, muß das Programm in einem sinvollen Pfad gepackt werden.
Ich habe mich für /opt/microchip/pk2cmd/release/ entschieden.
Dort findet man dann auch eine ausführliche Beschreibung:
/opt/microchip/pk2cmd/release/ReadmeForPK2CMDLinux2-6.txt
Es fehlt noch die Ergänzung der udev Rules, damit es auch als normaler User und nicht nur als root funktiert.
Dazu root werden und das File /lib/udev/rules.d/60-pickit2.rules
anlegen mit folgendem Inhalt:
cat /lib/udev/rules.d/60-pickit2.rules ATTR{idVendor}=="04d8", ATTR{idProduct}=="0033", MODE="0666"
Nun noch udev restarten, um sich einen reboot zu sparen.
# /etc/init.d/udev restart
Das wars auch schon.
(Wird noch weiter verfeinert)
Typische Aufrufe: Achtung: keine Leerzeichen zwischen den Optionen und deren Parametern!
pk2cmd -?V # Auch ohne angeschlossenen Programmer möglich
Executable Version: 1.21.00 Device File Version: 1.63.148 OS Firmware Version: PICkit 2 not found
mit dem Parameter -B kann eine alternative PK2DeviceFile.dat verwendet werden, um zum Beispiel zweifelfrei die neuere zu identifizieren
pk2cmd -B. -?V
Executable Version: 1.21.00 Device File Version: 1.62.00 OS Firmware Version: PICkit 2 not found
pk2cmd -T -PF5 -GF./drin.hex
pk2cmd -T -PF5 -R
pk2cmd -D/opt/microchip/pk2cmd/release/PK2V023200.hex # Eine Firmware in den Pickit 2 laden.
pk2cmd -P -M -YP -F"/home/bed/Projekte/Rollladensteuerung/rollladen.hex" # MCU flashen und den PIC automatisch erkennen
ist natürlich langsamer als die gezielte Angabe des Typs