Monday, December 14, 2009

Piklab e pk2cmd integrare gli strumenti

Nella prededente post "pk2cmd PicKit2 microchip con Linux ubuntu" abbiamo preso in considerazione il PICkit 2 di microchip per programmare una vasta serie di CHIP di MicroChip della serie PIC.

Il tools di piklab integrato con sdcc e con pk2cmd diventa un ottimo strumento per lo sviluppo rapido di applicazioni in linguaggio C e ASM per Pic. Il problema maggiormente sentito รจ che il rapido sviluppo di prodotti propietari mal si concila con lo sviluppo opensource affidato da un volontariato di sempre meno mani esperte che modificano e seguono il codice sorgente opensource di prodotti specifici. Pare che le case di produzioni abbiano anche poco interesse a pagare chi potrebbe dare piattaforme alternative a sviluppatori di microchip o silicon slide programmabili. Tra queste possiamo fare un lungo elenco di produttori di Chip programmabilie che vendono o sponsorizzano semi free tools di programazione ma solo per piattaforma Windows, senza tener conto che ampliando l'offerta di software anche con licenza proprietaria ma ben supportata e disponibile per il free of download farebbe crescere il mercato di vendita del loro prodotto (silicio) programmabile e dei tools di programmazione e/o debug.

Bando alle polemiche e passiamo al problema della integrazione del comando descritto nel precedente post con l'interfaccia grafica di piklab.

Nel sito di piklab non ho trovato indicazioni su come "custom comand" prendendo variabili dal programma (es: tipo processore, nome file, eccc....) pertanto vi faccio vedere come ho usato delle stringhe per la customizzazione del programma a mio vantaggio per il PICKit 2.

Come vedete dalla seguente schermata le impostazioni interne al piklab per Pickit2 non vedono neppure il probe installato sulla USB ( problemi con ID e revision del SW del probe).




Selezionate la voce "programmatore->configuratore" e selezionate il pannello come segue:





Ora chiudete questo pannello e da comandi posizionate il file dati in modo che sia ricercabile dal pk2cmd. Piklab ignora il vostro path di percorso in .bashrc e qundi con questo comando risolviamo il problema.

ln -s /usr/share/pk2/PK2DeviceFile.dat /usr/local/bin/PK2DeviceFile.dat

questo link fa credere a pk2cmd che il file sia corretamente posizionato quando richiamato da pikLab.

ora provate a programmare il vostro Pic come qui sotto ottendo il success del comando.



Spero di essere stato utile alla sistemazione dell'itegrazione tra piklab e pk2cmd di microchip. La ricerca continua e spero di rendere autonomo il sistema di stringhe per allinearlo automaticamente al nome del file *.hex e al tipo di processore in conformita con il file di progetto aperto e i vari setup impostati.

Thursday, December 03, 2009

pk2cmd PicKit2 microchip con linux

Dopo aver comperato il pickit2 ho verificato con mano che non sempre un probe di programmazione propietario sono supportati nativamente nell'ambiente Linux, tool come piklab eccezionali per semplicita' ed immediatezza sono penalizzati per funzionalita' quando interagiscono con prodotti proprietari, spingendo gli utenti all'autocostruzioni di programmatori seriali e paralleli.

Ho trovato conveniente non investire tempo per autocostruire un programmatore e ho acquistato un PICkit 2 di microchip per 35,00 euro, convinto che comunque sarebbe stato facile implementarlo nel ciclo di programmazione e sviluppo prodotto.

Naturalmente i driver ed il CD sono rigorosamante per Windows dell'uso con linux nessuna indicazione. Con un po' di ricerche sono arrivato al programma opensource da compilare per MAC osx e Linux distribuito dalla MicroChip.

Procedete scaricando questo file pk2cmdv1.20LinuxMacSource.tar.gz (click qui)

Scompattate nella directory che selezionate o direttamente sulla Scrivania (Desktop) il file qui sopra.

Aprite un terminale seguendo il menu alto a sinistra Applicazioni-->Accessory-->Terminale

Andate nella cartella dei sorgenti per compilare,

$ cd Scrivania/pk2cmdv1.20LinuxMacSource/
$ sudo su
# make linux

Se non compila probabilmente dovete installare il tool base per compilare da sorgenti.

# apt-get install build-essential

Poi ripetete il comando di make linux che crea il comando pk2cmd.
Completate l'installazione come prescritto nel file
ReadmeForPK2CMDLinux2-6.txt

Con
nano editate il file /home/vostronomeutente/.bashrc ed in fondo al file aggiungete queste due righe.

...
PATH=$PATH:/usr/share/pk2
export PATH

Salvate ed uscite completate l'installazione con il comando che installa il nuovo comando nella apposita cartella dei programmi di linux.

#make install

Ora siamo pronti per usare il nostro PICKit2

Aprite un nuovo terminale
( cosi il sistema carica la definizione inserita in .bashrc), chiudete quello usato per compilare il package ora potete anche rimuovere la cartella dalla vostra scrivania mettendola nel cestino.

Inserite nella interfaccia USB il vostro PICKit2 e verificate se e' in linea con il comando
lsusb

$ lsusb
...
Bus 007 Device 002: ID 04d8:0033 Microchip Technology, Inc.
...

Poi digitare per verificare se funziona la connessione del dispositivo vi a USB.

$ pk2cmd ?V

Executable Version: 1.20.00
Device File Version: 1.55.00
OS Firmware Version: 2.32.00

Se avete il chip PIC 16F690 inserito nello zoccolo del vostro demokit:

# pk2cmd -PPIC16F690 -I
Device ID = 1400
Revision = 0006
Device Name = PIC16F690

Come si puo' vedere il dispositivo funziona correttamente ed identifica il chip installato correttamente.

Passiamo ora alla gestione utile all'impiego del dispositivo con le nostre applicazioni.

Leggiamo il chip e mettiamo i dati in un file

$ pk2cmd -PPIC16F690 -GF test.hex

-GF legge tuttoil contenuto RAM/EEPROM e zone di configurazione

Cancelliamo il chip:

$ pk2cmd -PPIC16F690 -E

Verifichiamo che il chip sia cancellato

$ pk2cmd -PPIC16F690 -C

Scriviamo il nostro programma nel chip

$ pk2cmd -PPIC16F690 -F test.hex -M

Verifichiamo che il chip sia programmato

$ pk2cmd -PPIC16F690 -F test.hex -Y

Ora attraverso il probe siamo pronti ad alimentare la nostra applicazione ( sempre che sia compatibile con il livello di tensione e assorbimento, se no staccate il probe evitando di danneggialo)

$ pk2cmd -PPIC16F690 -T

Ora potete spegnete l'alimentazione attraverso il probe.

$ pk2cmd -PPIC16F690 -W

Bene ora abbiamo un probe di programmazione perfettamente funzionante e pronto per l'impiego. Visto il costo della probe e visto che e' semplice implementare il comando nel vostro sistema linux diciamo che il compromesso e' accettabile senza dover costruire un probe che rispetto a questo potrebbe essere limitato dal numero di dispositivi compatibili alla programmazione di MicroChip. Provate digitando questo comando e leggete quanti sono i device che programma il probe.


$ pk2cmd -?P

Sto vedendo se e' possibile una integrazione di questo command attraverso il sistema di piklab in maniera da non dover impiegare i comandi ed eseguire tutto attraverso l'interfaccia grafica di piklab.


Buon Lavoro.