Programmare i PIC con il PROGRAMMATORE K150

Guida Completa per Imparare a Programmare i PIC e Risolvere i Problemi dell’Economico ma Validissimo Programmatore K150….


 
 
 
 



 
INTRODUZIONE
I microcontrollori hanno bisogno di un firmware che descrive il loro funzionamento. Il firmware può essere scritto in vari linguaggi, tra i principali vi è Assembly e C ma una volta scritti in questi linguaggi vengono tradotti in opcode, ovvero istruzioni in linguaggio macchina che specificano l’operazione che deve essere svolta. Gli opcode sono contenuti in un firmware che contiene altre informazioni utili al microcontrollore, bisogna quindi caricare il firmware nella flash del microcontrollore. Il firmware può essere caricato direttamente dal software con cui scriviamo il codice in C o in Assembly utilizzando un programmatore specifico. Si può utilizzare un programmatore autocostruito o una versione economica semplicemente utilizzando il file .HEX compilato con il software con cui scriviamo il codice in C o in Assembly. Consiglio di comprare su eBay un programmatore economico in quanto è più semplice comprarlo ed è più economico di uno autocostruito.

 



 

CONFIGURARE IL PROGRAMMATORE K150

Per programmare i PIC si utilizza un programmatore economico (15€) di nome “PIC Programmer K150” disponibile su eBay o altri siti che permette di programmare i PIC della famiglia 10F, 12C, 12F, 16C, 16F e 18F. Purtroppo non permette di programmare tutti i microcontrollori, quindi prima di scegliere i microcontrollori controllate se è possibile programmarli. In ogni caso il K150 permette di programmare oltre 100 tipi diversi di PIC. Il programmatore K150 si presenta così:

K150

E’ quindi necessario un cavetto USB per connetterlo al PC, i driver e un software per l’interfaccia utente del programmatore K150. Prima di tutto bisogna scaricare il pacchetto con il software e il driver. Potete scaricarlo gratuitamente qui.

Scaricato il software eseguite i seguenti passaggi:

  1. Entrate nella cartella “PIC Programmer Drivers”.
  2. Fate doppio clic su “PL2303_Prolific_DriverInstaller_v1.7.0.exe”.
  3. Istallate quindi i Driver del programmatore K150.
  4. Potete ora collegare il programmatore K150.

Ora create una cartella sul Dekstop o dovunque voi vogliate e inserite i file “fixhex2.exe” e “microbrn.exe” presenti nella cartella “PIC Programmer Software” che potete trovare nel file precedentemente scaricato. Questi due programmi sono necessari per programmare i PIC. Vi sono altri passaggi da eseguire:

  1. Cliccate su “Start” e cercate “Gestione dispositivi” e aprite questa cartella.
  2. Aprite il menù a tendina di “Porte (COM e LPT)”
  3. Se non vi sono presenti altri dispositivi sulla porta COM l’unico è il programmatore K150, a lato, tra parentesi c’è scritto il numero della porta COM dove è collegato il programmator. Ricordatevi il numero. (es. COM3)
  4. Aprite il file “microbrn.exe” che è il software del programmatore.
  5. Molte volte il software riconosce direttamente la porta COM, se così non fosse è necessaria indicarla manualmente come visibile nell’immagine sottostante:

COM

  1. Siamo quindi quasi pronti a interagire con il PIC, bisogna ora selezionare il tipo di PIC dal menù a tendina “Chip Selector”.
  2. Una volta selezionato il PIC che utilizzeremo apparirà nell’immagine sovrastante come inserire il PIC nel programmatore.
  3. Scollegate il programmatore dalla porta USB, inserite il PIC, e ricollegate il programmatore al computer. Se sapete come inserire il PIC eseguite l’inserimento prima di tutte le operazioni.

PIC in K150

E’ ora possibile leggere la memoria del PIC, cancellarla, programmare il PIC oppure configurare i Fuse.

 

PROGRAMMARE I PIC

Per programmare i PIC abbiamo bisogno fi un file HEX. Questo file può essere compilato usando Mikroc oppure può essere scaricato già compilato da qualcun altro. Nelle prossime guide vedremo come scrivere il firmware per il PIC e compilarlo per ottenere il file HEX, ma per ora potete scaricarlo da qui.

Per programmare il PIC sono necessari due software, “fixhex2” per riparare i bug del codice HEX e “microbrn” per programmare il PIC. Tutti e due i software sono presenti nella cartella precedentemente scaricata. Dopo aver scaricato il file HEX aprite “fixhex2”.

FixHex

Ora caricate il file Prova.HEX che avete scaricato:

  1. Clicca su “Load File”
  2. Inserisci il percorso del file Prova.HEX
  3. Clicca su “Convert”

L’operazione e quasi istantanea e dopo di che avremo il file Prova.fix.HEX pronto ad essere caricato sul microcontrollore. Il software crea il file Prova.fix.HEX nella stessa cartella dove è presente Prova.HEX.

Ora inserite correttamente il PIC nel programmatore, collegate il programmatore al PC e in caso configurate la porta COM come visto prima. Aprite il software “microbrn” ed eseguite i seguenti passaggi:

  1. Cliccate su Load, in basso a sinistra .
  2. Cercate il file Prova.fix.HEX e caricatelo.
  3. Ora cliccate su Fuses in basso a destra.

Si aprirà la seguente schermata:

fuses

Queste impostazioni devono essere configurate prima di programmare il PIC e vanno configurate in modo identico come fatto quando si va a scrivere il codice, cosa che vedremo nel prossimo capitolo. Leggendo le voci da sinistra a destra e da sopra a sotto avremo:

  1. Oscillator Enable: Si decide se l’oscillatore interno è abilitato o no. Afficnhè il PIC funzioni deve essere abilitato.
  2. Oscillator: Da qui si seleziona la modalità di clock utilizzato.
  3. Brownout Voltage & Brownout Detect: Se la tensione di alimentazione è al disotto di una soglia si può decidere di stoppare le operazoni del microcontrollore e riavviarlo. Grazie a queste due voci si seleziona la soglia e se attivare questa funzionalità.
  4. Dopo l’accensione del PIC si può far si che passi un certo tempo prima dell’inizio delle operazioni, in modo tale da mandare a regime tutti i componenti. Questa funzionalità si aziona grazie al Powerup Timer.
  5. Il Watchdog Timer è un sistema che invia una richiesta di reset alla CPU qual ora si dovesse presentare un problema Hardware all’interno del microcontrollore. Watchdog Postscale e Watchdog Timer selezionano rispettivamente la frequenza di questo sistema di controllo e se attivarlo o no.
  6. CCP2 Mux: premette di selezionare su quale uscita avere la periferica di comparazione.
  7. Backgound Debug e Low Voltage Program permetto di eseguire il debug e la programmazione a basso voltaggio, vanno disabilitati a meno di necessità.
  8. Lo stack è un registro che funge da puntatore e indica l’istruzione da eseguire; può succedere che vada in overflow, se abilitato questo fuses, in questo caso viene resettato il microcontrollore.
  9. Tutte le altre voci non sopracitate sono i fuses per la protezione scrittura/lettura delle memorie interne al PIC. Vanno tutte disabilitate a meno che non si vogliono proteggere banchi di memoria.

DISABLE

Prima di procedere con la scrittura quindi disabilitare tutte le protezioni delle memorie, selezionare il tipo di oscillatore e cliccare su OK in fondo alla pagina.

Ora avete quindi posizionato il PIC nel programmatore, avete collegato il programmatore al computer e l’avete connesso configurando la porta COM, avete caricato il firmware nel programma e settato i Fuses, potete finalmente scrivere la memoria del PIC cliccando su “Program”.

Program

Ora non rimane che verificare il corretto funzionamento del Firmware.

 



 

SIMULAZIONE O TEST FINALE DEL FIRMWARE

Per verificare il corretto funzionamento del microcontrollore e del firmware scritto vi sono due strade: la simulazione tramite un software oppure il montaggio su breadboard/circuito stampato.

Per la simulazione tramite software si può utilizzare “Isis Proteus”, un ottimo programma che contiene nelle sue librerie moltissimi microcontrollori. Aprite Proteus, cliccate su nuovo progetto, date un nome al progetto, selezionate come template per lo schema la voce DEFAULT e poi continuate a cliccare next fino ad arrivare a finish.

Vi apparirà il foglio di lavoro:

proteus

Per inserire i componenti cliccate prima sul simbolo evidenziato in viola e poi sulla “P” evidenziata in viola, cercate i componenti che vi servono, piazzateli e connetteteli tra loro. Per i contatti di massa e alimentazione cliccate sul simbolo evidenziato in rosso. Quello che dovete realizzare, ovvero lo schema di prova è il seguente:

schemapic

Ora bisogna caricare il firmware dentro il PIC virtuale. Fate doppio click sul PIC all’interno del foglio di lavoro e vi si aprirà la seguente finestra:

Pic virtuale

Caricate il file “Prova.fix.hex”, precedentemente creato utilizzando il programma “FixHex”, cliccando sulla cartella evidenziata in blu.

La frequenza di funzionamento indicata nelle proprietà deve essere la stessa di quella settata durante la scrittura del codice.

Ora salvate queste impostazioni, cliccate sul pulsante evidenziato in verde nell’immagine precedente e a meno di errori vedrete lampeggiare il LED.

Per verificare su breadbord o circuito stampato il funzionamento del firmware avete bisogno del PIC18F252 con il firmware già caricato, dei condensatori, del cristallo al Quarzo, di due resistenze di un LED e di un alimentatore da 5V con almeno una corrente di 200mA, il carica batteria a 5V dei cellulari è perfetto come alimentatore.

Lo schema da realizzare questa volta è:

Schemapicxbreadboard

Realizzando lo schema appena visto su breadboard avremo:

ON BREADBOARD

Nello schema su breadbord sono stati usati led a bassa corrente, è stata necessaria quindi una resistenza di valore maggiore rispetto ai 220ohm indicati nello schema, si è usata una resistenza da 470ohm per proteggere il diodo che lampeggia, a destra nella foto. Il led a sinistra della foto è utile per segnalare la presenza della tensione di alimentazione. Per l’alimentazione è stato utilizzato un trasformatore switching da 5V, 1A. In particolare è stato riciclato un trasformatore che precedentemente era utilizzato come caricabatteria di un cellulare Samsung. Nella foto è possibile vedere l’oscillatore a quarzo con i condensatori da 22pf e la resistenza che permette di avere 5V sul piedino di reset MCLR.
 

K150 E WINDOWS 10
Windows 10 e Windows 8 potrebbero creare qualche problema con il programmatore K150, in particolare per problemi di compatibilità dei driver, il K150 non funziona con i sopracitati sistemi operativi (WIN10 e WIN8). Per questo motivo bisogna scaricare i driver adatti per il programmatore K150, essi sono presenti al link sottostante

 

DOWNLOAD
Per scaricare tutti i file citati in questo articolo, compresi i software, driver, firmware e simulazioni, cliccate sul segunte link LINK!!!

Per scaricare i driver per WIN10 cliccate sul segunte link LINK!!!




 

[Voti Totali: 0 Media Voti: 0]
Segui la Nostra Pagina Facebook: Facebook

39 pensieri su “Programmare i PIC con il PROGRAMMATORE K150

  1. Salve, sono alle prime armi, ho scaricato isis prometeus consigliato e ho eesguito tutti i passaggi proposti ma il programma va in errore in simulazione poichè non riconosce il microcontrollore. C’ è forse qualcosa da fare? ? Grazie e saluti

      • Salve , scusa se rispondo in ritardo; si ho usato il Pic18f252, ho coricato Proteus 6.3 ,la simulazione parte ma il simbolo del led non si accende. La simulazione sulla breadboard non l’ho ancora fatta perché dopo aver programmato il Pic mi mancano ancora dei componenti. Saluti

        • Ciao.
          Prova a scaricare il file allegato, ho controllato e li funziona tutto, ti basta aprire il file della simulazione con proteus. Molte volte, anche se nel simulatore i microcontrollori non hanno i pin di alimentazione va messo un punto di alimentaione a 5V altrimenti non funziona nulla.

  2. ciao
    ho preso 2 anni fa questo programmatore e non sono mai stato in grado di farlo funzionare.
    Allora ho installato i driver e configurato il programma MicroBrn selezionando COM3 e k150, fatto questo il programma mi dice che deve resettare ma non riesce a farlo e mi restituisce il messaggio di errore:
    reset failed.
    Sempre dal programma se faccio help, protocol mi da queste info:
    MicroBrn P18A Firmware yyyy
    System Missmatch
    Please use old MicroPro to update firmware to match new MicroBrn

    Riesci a darmi una mano?

    ps
    Uso come sistema operativo win7

    • Ho questo programmatore da molto… Ma non mi è mai piaciuto più di tanto… È semplice, sì… Ma da un sacco di problemi. Sono riuscito a programmarci solo i PIC più semplici… Con quelli di classe più alta, anche se nella lista dei device supportati, dà molti problemi… Alla fine alla stessa cifra alla quale acquistai il K150 ho acquistato un clone del PICkit 3 e non ho più avuto problemi di alcun tipo.

      • almeno tu sei riuscito ad usarlo almeno io ce l’avrò da 3/4 anni e fin da quando mi è arrivato continua a non funzionare. Ho installato i drivers v1.7.0 e anche provato con i drivers v1.16.0 ma niente il software PL2303CheckChipVersion mi restituisce:
        “This is a PL-2303 XA / HXA chip”. Mentre se apro il software microbrn e seleziono la porta a cui è collegato, vuole resettare ma non riesce e mi restituisce l’errore di reset fallito e mi dice di controllare se ho selezionato la porta corretta, se ho collegato il programmatore e se ho selezionato il programmatore k150.
        Era meglio che prendevo il programmatore originale spendendo di più almeno funzionava visto che l’usavo anche a scuola.

          • Io ho provato tutte le porte usb e pure su un altro pc ma non cambia, il programmatore non vuole funzionare. Lo provai pure su windows xp ma dava sempre lo stesso problema.
            Non so sarà difettato il mio programmatore a sto punto

  3. buongiorno a tutti.
    ho bisogno di un aiutino.
    ho seguito alla lettera tutti i passaggi di questo tutorial.
    mi sono fermato alle impostazioni dei fuses. a me esce una schermata di 9 voci 5dx e 4sx e non so come impostare.
    sto alle prime armi.
    qualcuno mi puo aiutare?
    grazie

      • ciao e grazie anticipate
        1) ho fatto un piccolo programma con ldmicro.
        2) ho impostato il pic 16f877 per sviluppare il file.hex
        3) il pic che uso è un 16f877a .
        4) ho impostato pic 16f877a nel compilatore.
        hai bisogno di altro?
        grazie ancora

        • devi mettere disable a tutti i fuses tranne a oscillator devi mettere HS o XT se usi un cristallo di quarzo, RC se usi un circuito RC o LP se usi un filtro

          • grazieeeeeeeeeeeee.
            fantasticooooooooo.
            dopo arduino adesso programmo anche i pic.
            non ti nego che con ldmicro a sviluppare il codice è facile.
            devo solo trovare un tutorial per capire i fuses.
            grazie ancora.

  4. Buonasera,
    non riesco a scaricare il software come indicato (link!!!) perchè l’antivirus avast mi blocca il download.
    Possibile che ci sia un virus nel pacchetto?

    • Ciao Franco.
      Assolutamente no, il sito web ha un antivirus interno, quindi nessuno può inserirvi virus nel codice o nei file interni al sito. Inoltre tutti i pacchetti vengono creati dal mio computer a cui faccio la scansione ogni settimana e non risulta mai niente. Sicuramente avast rileva un protocollo ftp (file transfer protocol, protocollo di trasferimento file) e ti avverte che stai scaricando un file che potrebbe contenere file, potrebbe ma ti assicuro che non ne contiene. Mai nessuno ha avuto problemi e inoltre io stesso scarico da qui i file quando devo lavorare da altri pc. Fammi sapere nel caso tu abbia problemi

      • Niente da fare. Non riesco.
        Avast blocca tutto.
        Proverò con un pc che non ha Avast.
        Ti terrò informato.
        Grazie e saluti.
        Franco

        • Ho scaricato il programma su un pc che non ha Avast. Ho scompattato il file. su una chiavetta. Su pc con avast mi avverte che il filefixex2.exe è infetto.
          Che faccio ?

          • Ciao Franco. Mi hai fatto venire il dubbio così ho scaricato il pacchetto e analizzato con due differenti antivirus nessuno dei due ha riscontrato problemi. Sicuro che non sia il tuo pc ad avere qualche virus che attacca il pacchetto appena lo scarichi? Questo articolo è il più letto del sito e conta più di 10 download al giorno, nessuno ha avuto mai problemi

  5. Caro NE555, Avast non sente ragioni. I files fixex2 e microbrn li trascina nel cestino.
    Prova fatta su due Pc con Windows XP ed uno con 7. Se disabilito l’antivirus sembra funzionare.
    Non ho ancora provato a programmare qualche PIC.
    Bisognerebbe provare ad inviare i due files al produttore di Avast perchè risolvano il problema.
    Comunque grazie della tua collaborazione.
    Franco

  6. Salve volevo sapere se questo programmatore si può usare anche per pic 12f615 . E se attaccando sulla basetta del programmatore io attacco un pic già programmato mi visualizza il programma sul pc o non è fatto per lettura ? Grazie mille

    • Ciao Tony,
      purtroppo della famiglia 12f permette di programmare solo questi: PIC12F508, PIC12F509, PIC12F629, PIC12F635, PIC12F675 e PIC12F683. Il 12F615 no.

      Per leggere un microcontrollore già scritto questo è possibile però solo se il proprietario non ha messo il blocco del codice. in ogni caso se vi è il blocco non è possibile leggerlo con nessun programmatore

  7. salve,
    io vorrei compilare un listato C per una PIC 12F629 ma il software indicato (mikroC) non è “free”!
    c’è qualcosa di altrettanto valido…ma gratuito!
    ho poi anche delle perplessità sul tipo di oscillatore da selezionare nella pagina “fuses”.

  8. salve ho un piccolo problema non riesco a programmare il pic12f675 come faccio per programmare mi appie
    questa scritta ERROR WRITING NEW CALIBRATION AND BANDGAPho un programmatore PIC Programmer K150 acquistato da internet mi potresti aiutare come fare

    • Ciao Giuseppe.
      Sembrerebbe un problema di fuses. potresti aprire una discussione nel forum allegando uno screen di come li stai configurando

    • non sei il primo che me lo scrive, purtroppo alcuni antivirus non riconoscono alcuni file al loro interno e li dichiarano malware, io li ho sempre scaricati da qui per ogni pc e mai problemi, prova a disattivare l’antivirus o forzare l’operazione

    • Ciao, se non è nella lista dei chip programmabili allora non è possibile programmare il microcontrollore. A breve publicherò la guida sul pickit3, ti consiglio di comprare quello, c’è la versione “cinese” a basso costo

  9. Ciao a tutti, e complimenti per il sito , possiedo un k150 e devo dire che non ho mai avuto problemi, ora poiché non sono tanto smanettato sulla programmazione di un pic ci sto studiando leggendo a più non posso qualcosina cmq ci sono arrivato. Quello che volevo chiedervi se c’è qualche codice sorgente o magari un riferimento in merito a far accendere 4 o 5 led in sequenza e regolare la velocità utilizzando degli 12f509 dico questo chip perchè ne ho un bel pò , un grazie Franco

  10. Ok per me va benissimo, diamo modo anche ad altri di poter visionare . Ascolta io ho cercato di farne uno ma non riesco ad inserire il regolatore per la velocità utilizzando sempre il 12F509 puoi vederlo e magari a modificarlo e finirlo?
    Un salutone
    Franco
    /*
    * 5 LED rotation
    *
    * Created: 2020/04/21
    * Author: Franco
    * Knight Mongillo

    sink output
    GP0–LED1
    GP1–LED2
    GP2–LED3
    GP4–LED4
    GP5–LED5

    */

    //#include “pic.h” //MPLAB V8
    #include

    //__CONFIG(UNPROTECT & MCLRDIS & WDTDIS & INTRC); //MPLAB V8
    #pragma config OSC = IntRC // internal RC oscillator
    #pragma config WDT = OFF // WDT disabled
    #pragma config CP = OFF // Code protection off
    #pragma config MCLRE = OFF // GP3/MCLR pin function is digital input

    #define LED_____0 0x01
    #define LED____0_ 0x02
    #define LED___0__ 0x04
    #define LED__0___ 0x10
    #define LED_0____ 0x20

    #define PAT_NUM 5
    const unsigned char led_patt[PAT_NUM] = {
    LED_____0,
    LED____0_,
    LED___0__,
    LED__0___,
    LED_0____
    };

    unsigned char pat_cnt;

    #define STEP 195 // 256us * 195 = 50ms
    #define T_STEP 256 – STEP

    int main(void) {
    TRIS = 0x00;
    // wake up disable, pull-up enable, clock source internal, prescaler 1/256
    // internal 4MHz -> 1/4 -> 1/256 -> TM0 256us clock
    OPTION = 0x87;
    TMR0 = T_STEP;
    pat_cnt = 0;
    while(1){
    if (TMR0 == 0){
    TMR0 = T_STEP;
    GPIO = ~led_patt[pat_cnt];
    pat_cnt++;
    pat_cnt %= PAT_NUM;
    }
    }
    }

  11. Hi ,
    I didn’t understand how to use a button ” CALIB”. Do you have any idea about it?
    This problem needs some serious consideration.

  12. Ciao ho acquistato una k150 recentemente ma durante l’installazione ho notato che sulla porta con creata in win 10 mi compare la scritta che questo chip non è più sopportati dal 2012 e non mi funzionano i tuoi programmi messi a disposizione. Hai qualche suggerimento?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *