Instalacija PICkit 2 programatora na Debian Linux

· #pickit 2 #microchip #pic #linux #debian

Sadržaj

PICkit 2 je stari, ali i dalje vrlo koristan programator za Microchipove PIC mikrokontrolere. Microchip za Linux nudi alat naredbenog retka pk2cmd samo kao izvorni kod, pa ga treba izgraditi ručno. Postupak je provjeren na Debianu 13 (Trixie, gcc 14), a radi i na Debianu 10–12 te na distribucijama izvedenima iz Debiana (Ubuntu, Mint, Raspberry Pi OS).

Microchip PICkit 2 programator

Foto: MichaelFrey, Wikimedia Commons, licenca CC BY-SA 3.0; zakrenuto za 90°.

Osvježena verzija

Ovo je ažurirana verzija tutorijala koji sam objavio u siječnju 2021. za Debian 10. Korak s dodavanjem i386 arhitekture izbačen je jer više nije potreban: pk2cmd se izgradi kao izvorni 64-bitni program.

Potrebni paketi

Za izgradnju trebaju prevoditelj i razvojne datoteke za libusb 0.1:

sudo apt update
sudo apt install build-essential libusb-dev wget

Preuzimanje izvornog koda

Izvorni kod pk2cmd v1.20 nalazi se na Microchipovim stranicama:

wget https://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz
tar xzvf pk2cmdv1.20LinuxMacSource.tar.gz
cd pk2cmdv1.20LinuxMacSource

Savjet

Microchip ovaj paket više ne održava. Dobro je spremiti kopiju arhive za slučaj da link jednog dana nestane.

Izgradnja i instalacija

make linux
sudo make install

Tijekom izgradnje pojavit će se niz upozorenja (-Wstringop-truncation, unused variable). Ona su bezopasna i ne utječu na rad programa.

make install kopira program u /usr/local/bin/pk2cmd, a datoteku s popisom podržanih čipova u /usr/share/pk2/PK2DeviceFile.dat.

Postavljanje PATH-a

pk2cmd traži datoteku PK2DeviceFile.dat u direktorijima navedenima u varijabli PATH, pa joj treba dodati /usr/share/pk2:

echo 'export PATH="$PATH:/usr/share/pk2"' >> ~/.bashrc
source ~/.bashrc

Ponovno pokretanje računala nije potrebno. Dovoljno je source ~/.bashrc ili otvoriti novi terminal.

Napomena

Umjesto mijenjanja PATH-a, putanja do datoteke može se zadati i pri svakom pokretanju opcijom -B, npr. pk2cmd -B/usr/share/pk2 -?v.

Pristup USB-u bez roota (preporučeno)

make install postavlja pk2cmd kao setuid root program (chmod u+s), kako bi mogao pristupiti USB-u bez sudo. Čišće rješenje je udev pravilo koje prijavljenom korisniku daje pristup samo PICkitu 2 (USB ID 04d8:0033):

echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0033", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/70-pickit2.rules
sudo udevadm control --reload-rules
sudo chmod u-s /usr/local/bin/pk2cmd

Nakon toga odspoji i ponovno spoji programator.

Provjera

pk2cmd -?v

Bez spojenog programatora ispis izgleda ovako:

Executable Version:    1.20.00
Device File Version:   1.55.00
OS Firmware Version:   PICkit 2 not found


Operation Succeeded

Sa spojenim programatorom umjesto “PICkit 2 not found” piše verzija firmwarea, npr. 2.32.00. Je li ga sustav prepoznao, možeš provjeriti i s lsusb | grep 04d8.

Primjeri korištenja

Automatsko prepoznavanje spojenog čipa:

pk2cmd -P

Brisanje, programiranje i provjera HEX datoteke (naziv čipa piše se odmah iza -P, bez razmaka):

pk2cmd -PPIC16F628A -E
pk2cmd -PPIC16F628A -F program.hex -M
pk2cmd -PPIC16F628A -F program.hex -Y

Opcija -T napaja ciljni sklop iz programatora, a -? ispisuje sve opcije.

Podrška za čipove

Datoteka s čipovima (v1.55) je iz 2009. godine, pa noviji PIC mikrokontroleri nisu podržani. Za njih treba noviji programator (PICkit 4/5, MPLAB Snap) i MPLAB IPE.

Uklanjanje

sudo rm /usr/local/bin/pk2cmd
sudo rm -r /usr/share/pk2
sudo rm -f /etc/udev/rules.d/70-pickit2.rules

Na kraju iz ~/.bashrc obriši redak export PATH="$PATH:/usr/share/pk2".