Site icon NE555

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ì:

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:

  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.

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”.

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:

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.

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”.

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:

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:

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:

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 è:

Realizzando lo schema appena visto su breadboard avremo:

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:
Exit mobile version

Fatal error: Uncaught Error: Call to a member function listFiles() on null in /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/CdnEngine_GoogleDrive.php:591 Stack trace: #0 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/CdnEngine_GoogleDrive.php(611): W3TC\CdnEngine_GoogleDrive->path_get_id('wp-content/uplo...') #1 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Cdn_Core.php(736): W3TC\CdnEngine_GoogleDrive->format_url('wp-content/uplo...') #2 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Cdn_Plugin.php(1331): W3TC\Cdn_Core->url_to_cdn_url('https://www.ne5...', 'wp-content/uplo...') #3 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Cdn_Plugin.php(979): W3TC\_Cdn_Plugin_ContentFilter->_link_replace_callback_ask_cdn('"https://www.ne...', '"', 'https://www.ne5...', 'wp-content/uplo...') #4 [internal function]: W3TC\_Cdn_Plugin_ContentFilter->_link_replace_callback(Array) #5 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Cdn_Plugin.php(934): preg_replace_callback('~(["'(=])\\s*(((...', Array, '<!DOCTYPE html>...') #6 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Cdn_Plugin.php(331): W3TC\_Cdn_Plugin_ContentFilter->replace_all_links('<!DOCTYPE html>...') #7 [internal function]: W3TC\Cdn_Plugin->ob_callback('<!DOCTYPE html>...') #8 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Util_Bus.php(21): call_user_func(Array, '<!DOCTYPE html>...') #9 /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/Generic_Plugin.php(544): W3TC\Util_Bus::do_ob_callbacks(Array, '<!DOCTYPE html>...') #10 [internal function]: W3TC\Generic_Plugin->ob_callback('<!DOCTYPE html>...', 9) #11 /home/mhd-01/www.ne555.it/htdocs/wp-includes/functions.php(5420): ob_end_flush() #12 /home/mhd-01/www.ne555.it/htdocs/wp-includes/class-wp-hook.php(324): wp_ob_end_flush_all('') #13 /home/mhd-01/www.ne555.it/htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array) #14 /home/mhd-01/www.ne555.it/htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #15 /home/mhd-01/www.ne555.it/htdocs/wp-includes/load.php(1270): do_action('shutdown') #16 [internal function]: shutdown_action_hook() #17 {main} thrown in /home/mhd-01/www.ne555.it/htdocs/wp-content/plugins/w3-total-cache/CdnEngine_GoogleDrive.php on line 591