Ntv programmatore pic microcontrollori compatibili jdm recensioni. Il programmatore JDM più semplice per PIC su componenti passivi. "Firmware" del microcontrollore PIC18F2550

Programmatore JDM che ho usato per i controller PIC16F676, PIC16F630 e PIC16F629... La mia versione differisce da quella iniziale in quanto la tensione di programmazione Vpp può essere applicato prima della tensione di alimentazione Vdd per la riprogrammazione dei controller. Il transistor superiore viene utilizzato per questo scopo. Si apre quando la tensione sul pin 3 della presa DB9F raggiunge circa 8 V rispetto al pin 5 della presa o 13 V rispetto al meno del controller. Vss... Interruttore Vdd_Vpp quando chiuso consente la tensione di alimentazione Vdd compaiono sulle uscite del controller prima della tensione di programmazione Vpp.

Circuito programmatore JDM

Per la programmazione, verrà utilizzata una porta COM, che utilizzerà i seguenti pin: 3, 4, 5, 7 e 8. Il circuito include la possibilità di programmare i chip di memoria della serie 24cXX... Per fare ciò, gli 8 contatti inferiori vengono utilizzati nel blocco DIP16, il primo contatto del microcircuito viene inserito nel quinto pin del blocco. Il jumper J1 consente di disabilitare la protezione da scrittura.

Il transistor inferiore nel circuito, come prima, viene utilizzato per spostare le tensioni, poiché il vantaggio dell'alimentazione del controller Vdd si collega al pin 5 della presa: il filo comune della porta e meno l'alimentazione Vss ottenuto utilizzando diodi collegati ai pin 3 e 7 della presa, e un diodo zener.

Transistor nel programmatore JDM utilizzato 2SC945 e BC548, diodi - 1N4148... Il condensatore u1 deve essere posizionato il più vicino possibile ai pin di alimentazione del microcontrollore. Il resistore da 1k è opzionale se il resistore da 10k e il ponticello J1 sono installati sull'intestazione DIP16.

Questo programmatore funziona con successo con programmi e

Dillo a:
Per molti radioamatori, non è un problema assemblare rapidamente un circuito che ti piace su un microcontrollore. Ma molti principianti che lavorano con i microcontrollori devono affrontare la domanda su come programmarlo. Una delle opzioni più semplici per i programmatori è il programmatore JDM.
Programma - programmatore ProgCode v 1.0 Questo programma funziona in WindowsXP. Consente di programmare i controller PIC della famiglia media (PIC16Fxxx) tramite la porta COM del computer. L'indicatore della connessione del programmatore (nell'angolo in alto a destra della finestra), se non è presente alcun programmatore sulla porta selezionata nelle impostazioni, diventa rosso. Se il programmatore è connesso, il programma lo rileva e l'indicatore nell'angolo in alto a destra assume la forma mostrata in Figura 1. Il pannello di controllo si trova nella parte sinistra della finestra del programma. Questo pannello può essere ridotto a icona facendo clic sul pulsante nella barra degli strumenti o facendo clic sul bordo sinistro della finestra (questo è utile quando la finestra del programma è ingrandita a schermo intero).

Figura (screenshot del programma ProgCode v1.0)


Se nel programma è caricato un file HEX, è consigliabile selezionare nell'elenco dei controller l'MC per il quale è progettato il firmware caricato. In caso contrario, il file progettato per un microcontrollore con una memoria maggiore di quella selezionata nell'elenco verrà tagliato e parti del programma andranno perse - con questa opzione di caricamento del file, viene visualizzato un avviso.

Se ciò non accade, è possibile selezionare il controller desiderato dopo aver caricato il file nel programma.

Formato file SFR Il programmatore ProgCode supporta l'utilizzo del proprio formato file. Questi file hanno l'estensione .sfr e consentono di memorizzare ulteriori informazioni sul programma destinato al microcontrollore. Questo file memorizza le informazioni sul tipo di microcontrollore. Ciò consente di caricare un file SFR senza preoccuparsi di preselezionare il tipo MK nelle impostazioni.

Impostazioni della porta e del protocollo quando si collega il programmatore Dopo aver installato il programma, per impostazione predefinita, vengono impostate tutte le impostazioni necessarie affinché il programmatore funzioni con lo schema JDM mostrato in questa pagina.
L'inversione del segnale nel circuito sopra è necessaria solo per l'uscita OutData, poiché in questo circuito il segnale è invertito dal transistor corrispondente. L'inversione è disabilitata su tutti gli altri pin.



Il ritardo dell'impulso può essere uguale a 0. La sua regolazione è prevista per i controller "particolarmente difficili" che non possono essere lampeggiati. Lo stesso vale per l'overhead della pausa di registrazione: è zero per impostazione predefinita. Se aumenti i valori di queste impostazioni, il tempo di programmazione del controller aumenterà in modo significativo.

La casella di controllo "verifica in scrittura" deve essere selezionata se è necessario controllare "al volo" tutto ciò che è scritto sul microcontrollore per la correttezza e la conformità con il file sorgente. Se questa casella di controllo è deselezionata, il controllo non viene eseguito affatto e non ci saranno messaggi di errore, anche se tali errori sono effettivamente presenti.
Selezione della velocità della porta: la velocità può essere qualsiasi. Per il programmatore JDM, questo parametro è irrilevante.

WindowsXP utilizza il buffering delle informazioni trasmesse tramite le porte COM. Questi sono chiamati buffer FIFO. Per evitare errori durante la programmazione con JDM, questo meccanismo deve essere disabilitato. Questo può essere fatto in Gestione dispositivi di Windows.

Andiamo al pannello di controllo, quindi:
Amministrazione - Gestione computer - Gestione dispositivi

Quindi selezioniamo la porta a cui è collegato il programmatore JDM (ad esempio COM1) - guarda le proprietà - la scheda dei parametri della porta - opzionale. E deseleziona la casella "Usa buffer FIFO"

Figura - Configurazione di una porta COM per lavorare con un programmatore JDM



Successivamente, riavviamo il computer.


Browser di progetti locali Oltre alla programmazione diretta dei controller, il programma implementa un comodo browser di progetti su MK, che si trova sia su cartelle locali del computer che su Internet. Questo è fatto per comodità di lavoro. Spesso i progetti di cui hai bisogno si trovano in cartelle diverse e devi dedicare del tempo a raggiungere la directory giusta per visualizzare il progetto. Qui è facile aggiungere le cartelle necessarie all'elenco delle cartelle e visualizzare qualsiasi progetto con due o tre clic del mouse.

Quando fai doppio clic su di esso nel pannello del browser, qualsiasi file si aprirà nel programma stesso - questo vale per immagini, file html, doc, rtf, djvu (con plug-in installati), pdf, txt, asm. Il file può essere aperto anche facendo doppio clic nel browser utilizzando un programma esterno installato sul computer. Per fare ciò, l'estensione del tipo di file richiesto deve essere registrata nell'elenco "Associazioni file". Se non specifichi il percorso del programma di apertura, Windows aprirà il file nel programma per impostazione predefinita (questo è utile per l'apertura di archivi che non sono sempre aperti in modo univoco). Se il percorso del programma di apertura è specificato nell'elenco, il file verrà aperto nel programma specificato. È conveniente visualizzare file come SPL, LAY, DSN in questo modo.

Figura (schermata del browser del programma ProgCode v1.0)



Ecco come appare la finestra delle impostazioni delle associazioni di file:




Browser dei progetti su InternetIl Browser dei progetti su Internet, oltre a un esploratore di progetti locale, consente di accedere rapidamente al sito desiderato su Internet con un paio di clic, visualizzare il progetto e, se necessario, eseguire immediatamente il flashing del programma in il MC.



Durante la navigazione di progetti su Internet, se nella pagina del progetto è presente un collegamento a un file con estensione SFR (questo è il formato file del programma ProgCode), quando si fa clic su di esso, tale file si aprirà in una nuova scheda del programma ed è immediatamente pronto per il flashing nel microcontrollore.
L'elenco dei collegamenti può essere modificato utilizzando il pulsante "Modifica". Si aprirà una finestra per la modifica dell'elenco dei collegamenti:





Descrizione del processo di programmazione dei microcircuiti La maggior parte dei moderni microcircuiti contiene una memoria flash, che è programmata utilizzando il protocollo I2C o protocolli simili.
La memoria riscrivibile è in PIC, AVR e altri controller, chip di memoria 24Cxx e simili, varie schede di memoria MMC e SD, flash ordinario Schede USB, che sono collegati a un computer tramite un connettore USB Considera la possibilità di scrivere informazioni sulla memoria flash del microcontrollore PIC16F628A Ci sono 2 linee DATA e CLOCK, attraverso le quali vengono trasmesse le informazioni. La linea CLOCK viene utilizzata per fornire impulsi di clock e la linea DATA viene utilizzata per trasferire informazioni.
Per trasferire 1 bit di informazione al microcontrollore è necessario impostare 0 o 1 (a seconda del valore del bit) sulla linea dati (DATA) e creare una caduta di tensione (transizione da 1 a 0) sulla linea di clock (OROLOGIO).
Un bit non è sufficiente per un controller. Aspetta dopo altri cinque per prendere questo messaggio a 6 bit come comando. Al controller piacciono molto i comandi e dovrebbero consistere di 6 bit - questa è la natura del PIC16.
Ecco un elenco e il significato dei comandi che il PIC è in grado di comprendere. Non ci sono così tanti comandi - il vocabolario di questo controller è piccolo, ma non dovresti pensare che sia completamente stupido - ci sono dispositivi con meno comandi "LoadConfiguration" 000000 - Caricamento configurazione
"LoadDataForProgramMemory" 000010 - Caricamento dei dati nella memoria del programma
"LoadDataForDataMemory" - 000011 - Caricamento dati nella memoria dati (EEPROM)
"IncrementAddress" 000110 - Aumenta l'indirizzo del PC MK
"ReadDataFromProgramMemory" 000100 - Lettura dei dati dalla memoria del programma
"ReadDataFromDataMemory" 000101 - Lettura dati dalla memoria dati (EEPROM)
"BeginProgrammingOnlyCycle" 011000 - Avvia ciclo di programmazione
"BulkEraseProgramMemory" 001001 - Cancellazione completa della memoria del programma
"BulkEraseDataMemory" 001011 - Cancellazione completa della memoria dati (EEPROM)
"BeginEraseProgrammingCycle" 001000 - Avvia ciclo di programmazione Il controller risponde a questi comandi in modo diverso. In diversi modi, dopo aver impartito il comando, è necessario continuare la conversazione con lui.
Per avviare un processo di programmazione completo, è inoltre necessario applicare una tensione di 12 volt all'uscita del controller MCLR, quindi applicare ad essa una tensione di alimentazione. È in questa sequenza di alimentazione di tensione che c'è un certo significato. Dopo l'accensione, se il PIC è configurato per funzionare da un generatore RC interno, può iniziare a eseguire il proprio programma, cosa inaccettabile durante la programmazione, poiché un guasto è inevitabile.
La pre-alimentazione di 12 volt all'MCLR evita questo scenario.
Quando si scrivono informazioni nella memoria flash dei programmi MK dopo il comando "LoadDataForProgramMemory" 000010 - Caricamento dei dati nella memoria del programma, è necessario inviare i dati stessi al controller - 16 bit,
che assomiglia a questo: "0xxxxxxxxxxxxxx0." Le croci in questa parola sono i dati stessi e gli zeri ai bordi vengono inviati come framing - questo è lo standard PIC16. Ci sono solo 14 bit significativi in ​​una parola.Questa serie di controller ha un formato di comando a 14 bit.
Al termine del trasferimento della parola dati, il PIC attende il comando successivo.
Poiché il nostro obiettivo è scrivere una parola nella memoria del programma MK, il comando successivo dovrebbe essere il comando
"BeginEraseProgrammingCycle" 001000 - Avviare un ciclo di programmazione Ricevuto il controllore viene disconnesso dal mondo esterno per 6 millisecondi, necessari per completare il processo di registrazione.I segnali alle uscite del microcontrollore sono generati da un computer tramite appositi programmi - programmatori. Per la trasmissione del segnale possono essere utilizzate porte COM, LPT o USB. Programmi come PonyProg, IsProg, WinPic800 funzionano con il programmatore JDM.
Diagramma del programmatore JDM In figura è mostrato un diagramma del programmatore molto semplice. In questo circuito, sebbene il controllo della sequenza di alimentazione della tensione non sia implementato, ma è molto semplice ed è possibile assemblare un tale circuito molto rapidamente, utilizzando un minimo di parti.
Immagine (schema del programmatore JDM)


Una delle domande quando si collega un programmatore a un computer è come fornire un isolamento selettivo. Per evitare danni alla porta COM in caso di malfunzionamento del circuito. Alcuni circuiti utilizzano il chip MAX232, che fornisce isolamento selettivo e adattamento di livello. In questo schema, il problema viene risolto più facilmente, utilizzando la batteria. Il livello del segnale dal computer è limitato dai diodi Zener VD1, VD2 e VD3. Nonostante la semplicità del circuito programmatore JDM, può essere utilizzato per programmare la maggior parte dei tipi di microcontrollori PIC.Il ponticello tra i pin COM6 (DSR) e COM7 (RTS) è progettato in modo che il programma possa determinare che il programmatore è collegato al computer.

Il collegamento delle uscite del programmatore ad uno specifico MC dipende dal tipo di MC. Spesso sulla scheda del programmatore sono montati diversi pannelli, progettati per un determinato tipo di controller.

La tabella mostra lo scopo delle gambe di alcuni tipi di MK durante la programmazione.




Vengono mostrate le figure con lo scopo dei pin degli MCU più comuni durante la programmazione Pinout (pinout) dei microcontrollori PIC16F876A, PIC16F873A nel pacchetto DIP28.

Pinout (pinout) dei microcontrollori PIC16F874A, PIC16F877A in contenitore DIP40.
Pinout (pinout) dei microcontrollori PIC16F627A, PIC16F628A, PIC16F648A in contenitore DIP18.
Gli MCU PIC16F84, PIC16F84A hanno la stessa disposizione dei pin per la programmazione.

L'assegnazione dei pin per i microcontrollori della serie PIC16Fxxx, a seconda del tipo di pacchetto, è nella maggior parte dei casi standard, ma se ci sono dubbi su questo, è più affidabile controllare il foglio dati per una copia specifica dell'MK. Parte della documentazione è presente sul sito russo http://microchip.ru La raccolta completa dei datasheet e altra documentazione si trova sul sito del produttore del microcontrollore PIC: http://microchip.com
Indice dei progetti Il programma consente l'accesso diretto alla pagina dell'indice, un paio di click per visualizzare la descrizione del progetto desiderato e flashare immediatamente il programma nel controller.



Se necessario, flashare il controller con il firmware selezionato - fare clic sul file SFR, ad esempio Timer_a.sfr
Il programma scarica il file dal server in una nuova scheda.



Successivamente, resta solo da inserire l'MK nella presa del programmatore, se ciò non è ancora stato fatto, e fare clic sul pulsante "Scrivi tutto".
Il programma è registrato nell'MC. Successivamente, il controller viene inserito nella scheda del dispositivo e il dispositivo è pronto per l'uso.

È possibile scaricare il programma dalla pagina di download del file: http://cxema.my1.ru/load/proshivki/material_k_state_prostoj_jdm_programmator_dlja_pic_mikrokontrollerov/9-1-0-1613 Sezione:

Per molti radioamatori, non è un problema assemblare rapidamente un circuito che ti piace su un microcontrollore. Ma molti principianti che lavorano con i microcontrollori devono affrontare la domanda su come programmarlo. Una delle opzioni più semplici per i programmatori è il programmatore JDM.

Programma - programmatore ProgCode v 1.0

Questo programma funziona in Windows XP. Consente di programmare i controller PIC della famiglia media (PIC16Fxxx) tramite la porta COM del computer. L'indicatore della connessione del programmatore (nell'angolo in alto a destra della finestra), se non è presente alcun programmatore sulla porta selezionata nelle impostazioni, diventa rosso. Se il programmatore è connesso, il programma lo rileva e l'indicatore nell'angolo in alto a destra assume la forma mostrata in Figura 1.

Il pannello di controllo si trova nella parte sinistra della finestra del programma. Questo pannello può essere ridotto a icona facendo clic sul pulsante nella barra degli strumenti o facendo clic sul bordo sinistro della finestra (questo è utile quando la finestra del programma è ingrandita a schermo intero).

Figura (screenshot del programma ProgCode v1.0)


Se nel programma è caricato un file HEX, è consigliabile selezionare nell'elenco dei controller l'MC per il quale è progettato il firmware caricato. In caso contrario, il file progettato per un microcontrollore con una memoria maggiore di quella selezionata nell'elenco verrà tagliato e parti del programma andranno perse - con questa opzione di caricamento del file, viene visualizzato un avviso.

Se ciò non accade, è possibile selezionare il controller desiderato dopo aver caricato il file nel programma.

Il formato di file SFR

Il programmatore ProgCode supporta il lavoro con il proprio formato di file. Questi file hanno l'estensione .sfr e consentono di memorizzare ulteriori informazioni sul programma destinato al microcontrollore. Questo file memorizza le informazioni sul tipo di microcontrollore. Ciò consente di caricare un file SFR senza preoccuparsi di preselezionare il tipo MK nelle impostazioni.

Impostazioni della porta e del protocollo quando si collega il programmatore

Dopo aver installato il programma, per impostazione predefinita, vengono impostate tutte le impostazioni necessarie affinché il programmatore funzioni con lo schema JDM mostrato in questa pagina.
L'inversione del segnale nel circuito sopra è necessaria solo per l'uscita OutData, poiché in questo circuito il segnale è invertito dal transistor corrispondente. L'inversione è disabilitata su tutti gli altri pin.



Il ritardo dell'impulso può essere uguale a 0. La sua regolazione è prevista per i controller "particolarmente difficili" che non possono essere lampeggiati. Lo stesso vale per l'overhead della pausa di registrazione: è zero per impostazione predefinita. Se aumenti i valori di queste impostazioni, il tempo di programmazione del controller aumenterà in modo significativo.

La casella di controllo "verifica in scrittura" deve essere selezionata se è necessario controllare "al volo" tutto ciò che è scritto sul microcontrollore per la correttezza e la conformità con il file sorgente. Se questa casella di controllo è deselezionata, il controllo non viene eseguito affatto e non ci saranno messaggi di errore, anche se tali errori sono effettivamente presenti.
Selezione della velocità della porta: la velocità può essere qualsiasi. Per il programmatore JDM, questo parametro è irrilevante.

WindowsXP utilizza il buffering delle informazioni trasmesse tramite le porte COM. Questi sono chiamati buffer FIFO. Per evitare errori durante la programmazione con JDM, questo meccanismo deve essere disabilitato. Questo può essere fatto in Gestione dispositivi di Windows.

Andiamo al pannello di controllo, quindi:
Amministrazione - Gestione computer - Gestione dispositivi

Quindi selezioniamo la porta a cui è collegato il programmatore JDM (ad esempio COM1) - guarda le proprietà - la scheda dei parametri della porta - opzionale. E deseleziona la casella "Usa buffer FIFO"

Figura - Configurazione di una porta COM per lavorare con un programmatore JDM



Successivamente, riavviamo il computer.


Browser di progetto locale

Oltre a programmare direttamente i controllori, il programma implementa un comodo browser per progetti su MK, che si trova sia nelle cartelle del computer locale che su Internet. Questo è fatto per comodità di lavoro. Spesso i progetti di cui hai bisogno si trovano in cartelle diverse e devi dedicare del tempo a raggiungere la directory giusta per visualizzare il progetto. Qui è facile aggiungere le cartelle necessarie all'elenco delle cartelle e visualizzare qualsiasi progetto con due o tre clic del mouse.

Quando fai doppio clic su di esso nel pannello del browser, qualsiasi file si aprirà nel programma stesso - questo vale per immagini, file html, doc, rtf, djvu (con plug-in installati), pdf, txt, asm. Il file può essere aperto anche facendo doppio clic nel browser utilizzando un programma esterno installato sul computer. Per fare ciò, l'estensione del tipo di file richiesto deve essere registrata nell'elenco "Associazioni file". Se non specifichi il percorso del programma di apertura, Windows aprirà il file nel programma per impostazione predefinita (questo è utile per l'apertura di archivi che non sono sempre aperti in modo univoco). Se il percorso del programma di apertura è specificato nell'elenco, il file verrà aperto nel programma specificato. È conveniente visualizzare file come SPL, LAY, DSN in questo modo.

Figura (schermata del browser del programma ProgCode v1.0)



Ecco come appare la finestra delle impostazioni delle associazioni di file:




Browser di progetto Internet

Il browser dei progetti su Internet, così come il browser locale dei progetti, consente di accedere rapidamente al sito desiderato su Internet con un paio di clic, visualizzare il progetto e, se necessario, eseguire immediatamente il flashing del programma nell'MC .



Durante la navigazione di progetti su Internet, se nella pagina del progetto è presente un collegamento a un file con estensione SFR (questo è il formato file del programma ProgCode), quando si fa clic su di esso, tale file si aprirà in una nuova scheda del programma ed è immediatamente pronto per il flashing nel microcontrollore.
L'elenco dei collegamenti può essere modificato utilizzando il pulsante "Modifica". Si aprirà una finestra per la modifica dell'elenco dei collegamenti:





Descrizione del processo di programmazione dei microcircuiti

La maggior parte dei microcircuiti moderni contiene una memoria flash programmata utilizzando il protocollo I2C o protocolli simili.
La memoria riscrivibile è in PIC, AVR e altri controller, chip di memoria 24Cxx e simili, varie schede di memoria MMC e SD, normali schede flash USB collegate a un computer tramite un connettore USB.

Considera la possibilità di scrivere informazioni nella memoria flash di un microcontrollore FIG 16 F 628 LA

Ci sono 2 righe DATI e OROLOGIO attraverso il quale si trasmetteinformazione. Linea OROLOGIO serve per fornire impulsi di clock, e la linea DATI per trasferire informazioni.

Per trasferire 1 bit di informazione al microcontrollore è necessario impostare 0 o 1 (a seconda del valore del bit) sulla linea dati (DATA) e creare una caduta di tensione (transizione da 1 a 0) sulla linea di clock (OROLOGIO).
Un bit non è sufficiente per un controller. Aspetta dopo altri cinque per prendere questo messaggio a 6 bit come comando. Al controller piacciono molto i comandi e dovrebbero consistere esattamente di 6 bit: questa è la natura del PIC 16.
Ecco un elenco e il significato dei comandi che il PIC è in grado di comprendere. Non ci sono così tanti comandi - il vocabolario di questo controller è piccolo, ma non dovresti pensare che sia completamente stupido - ci sono dispositivi con meno comandi

"LoadConfiguration" 000000 - Carica configurazione

"LoadDataForDataMemory" - 000011 - Caricamento dati nella memoria dati (EEPROM)
"IncrementAddress" 000110 - Aumenta l'indirizzo del PC MK
"ReadDataFromProgramMemory" 000100 - Lettura dei dati dalla memoria del programma
"ReadDataFromDataMemory" 000101 - Lettura dati dalla memoria dati (EEPROM)
"BeginProgrammingOnlyCycle" 011000 - Avvia ciclo di programmazione
"BulkEraseProgramMemory" 001001 - Cancellazione completa della memoria del programma
"BulkEraseDataMemory" 001011 - Cancellazione completa della memoria dati (EEPROM)

Il controller risponde a questi comandi in modo diverso. In diversi modi, dopo aver impartito il comando, è necessario continuare la conversazione con lui.
Per avviare un processo di programmazione completo, è inoltre necessario applicare una tensione di 12 volt all'uscita del controller MCLR, quindi applicare una tensione di alimentazione ad essa. È in questa sequenza di alimentazione di tensione che c'è un certo significato. Dopo l'accensione, se il PIC è configurato per funzionare da un generatore RC interno, può iniziare a eseguire il proprio programma, cosa inaccettabile durante la programmazione, poiché un guasto è inevitabile.
La pre-alimentazione di 12 volt all'MCLR evita questo scenario.
Quando si scrivono informazioni nella memoria flash dei programmi MK dopo il comando

"LoadDataForProgramMemory" 000010 - Caricamento dei dati nella memoria del programma

è necessario inviare i dati stessi al controller - 16 bit,
che assomigliano a questo:

"0xxxxxxxxxxxxxxx 0".

Le croci in questa parola sono i dati stessi e gli zeri ai bordi vengono inviati come bordo - questo è lo standard per PIC 16. Ci sono solo 14 bit significativi nella parola.Questa serie di controller ha un comando a 14 bit formato.
Al termine del trasferimento della parola dati, il PIC attende il comando successivo.
Poiché il nostro obiettivo è scrivere una parola nella memoria del programma MK, il comando successivo dovrebbe essere il comando

"BeginEraseProgrammingCycle" 001000 - Avvia ciclo di programmazione

Dopo averlo ricevuto, il controller viene disconnesso dal mondo esterno per 6 millisecondi, necessari per completare il processo di registrazione.

I segnali alle uscite del microcontrollore sono generati da un computer utilizzando programmi speciali - programmatori. Per la trasmissione del segnale possono essere utilizzate porte COM, LPT o USB. Programmi come PonyProg, IsProg, WinPic800 funzionano con il programmatore JDM.


Circuito programmatore JDM

In figura è mostrato uno schema molto semplice del programmatore. In questo circuito, sebbene il controllo della sequenza di alimentazione della tensione non sia implementato, ma è molto semplice ed è possibile assemblare un tale circuito molto rapidamente, utilizzando un minimo di parti.
Immagine (schema del programmatore JDM)


Una delle domande quando si collega un programmatore a un computer è come fornire un isolamento selettivo. Per evitare danni alla porta COM in caso di malfunzionamento del circuito. Alcuni circuiti utilizzano il chip MAX232, che fornisce isolamento selettivo e adattamento di livello. In questo schema, il problema viene risolto più facilmente, utilizzando la batteria. Il livello del segnale dal computer è limitato dai diodi Zener VD1, VD2 e VD3. Nonostante la semplicità del circuito del programmatore JDM, la maggior parte dei tipi di microcontrollori PIC può essere programmata con esso.

Un ponticello tra i pin COM6 (DSR) e COM7 (RTS) è progettato in modo che il programma possa determinare che il programmatore è connesso al computer.

Il collegamento delle uscite del programmatore ad uno specifico MC dipende dal tipo di MC. Spesso sulla scheda del programmatore sono montati diversi pannelli, progettati per un determinato tipo di controller.

La tabella mostra lo scopo delle gambe di alcuni tipi di MK durante la programmazione.

Gli MCU PIC16F84, PIC16F84A hanno la stessa disposizione dei pin per la programmazione.



L'assegnazione dei pin per i microcontrollori della serie PIC16Fxxx, a seconda del tipo di pacchetto, è nella maggior parte dei casi standard, ma se ci sono dubbi su questo, è più affidabile controllare il foglio dati per una copia specifica dell'MK. Parte della documentazione è presente sul sito russo http://microchip.ru Una raccolta completa di schede tecniche e altra documentazione si trova sul sito Web del produttore del microcontrollore PIC: http://microchip.com

Indice dei progetti

Il programma consente di accedere direttamente alla pagina dell'indice, visualizzare la descrizione del progetto desiderato in un paio di clic e installare immediatamente il programma nel controller.



Se necessario, flashare il controller con il firmware selezionato - fare clic sul file SFR, ad esempio Timer_a.sfr
Il programma scarica il file dal server in una nuova scheda.



Successivamente, resta solo da inserire l'MK nella presa del programmatore, se ciò non è ancora stato fatto, e fare clic sul pulsante "Scrivi tutto".
Il programma è registrato nell'MC. Successivamente, il controller viene inserito nella scheda del dispositivo e il dispositivo è pronto per l'uso.

Lo sviluppo dell'elettronica sta procedendo a ritmo sostenuto e sempre più spesso l'elemento principale di un dispositivo è un microcontrollore. Fa il grosso del lavoro e libera il progettista dalla necessità di creare circuiti sofisticati, riducendo così al minimo le dimensioni del PCB. Come tutti sanno, il microcontrollore è controllato da un programma scritto nella sua memoria interna. E se un programmatore elettronico esperto non ha problemi con l'uso dei microcontrollori nei suoi dispositivi, allora per un radioamatore principiante, un tentativo di scrivere un programma in un controller (specialmente un PIC) può trasformarsi in una grande delusione, e talvolta un piccolo spettacolo pirotecnico sotto forma di microcircuito fumante.

Stranamente, ma con tutta la grandezza di Internet, ci sono pochissime informazioni sul firmware al suo interno. Controllori PIC, e il materiale che si può trovare è di una qualità molto dubbia. Certo, puoi acquistare un programmatore di fabbrica a un prezzo inadeguato e cucire quanto vuoi, ma cosa fare se una persona non è impegnata nella produzione di massa. Per questi scopi, puoi assemblare un prodotto fatto in casa semplice ed economico chiamato Programmatore JDM secondo lo schema sottostante (Figura 1):



Figura n. 1 - diagramma del programmatore


Immediatamente fornisco un elenco di elementi per coloro che sono troppo pigri per sbirciare il diagramma:

  • R1 - 10 kOhm
  • R2 - 10 kOhm (pedice). Regolando la resistenza di questo resistore, è necessario raggiungere circa 13V al pin n. 4 (VPP) durante la programmazione. Nel mio caso, la resistenza è 1.2 kOhm
  • R3 - 200 Ohm
  • R4, R5 - 1,5 kOhm
  • VD1, VD2, VD3, VD4, VD6 - 1N4148
  • VD5 - 1N4733A (tensione di stabilizzazione 5.1V)
  • VD7 - 1N4743A (stabilizzazione di tensione 13V)
  • C1 - 100 nF (0,1 μF)
  • C2 - 470 μF x 16 V (elettrolitico)
  • SUB-D9F - Connettore porta COM (MAMA o SOCKET)
  • Presa DIP8 - dipende dal controller che stai utilizzando

Il diagramma utilizza un esempio di collegamento di controller comuni come PIC12F675 e PIC12F629, ma questo non significa affatto che il firmware di altre serie PIC sarà impossibile. Per scrivere un programma su un controller di tipo diverso, è sufficiente lanciare i fili del programmatore secondo la figura 2, che viene fornita di seguito.



Figura n. 2 - opzioni per i pacchetti di controller PIC con i pin richiesti


Come puoi immaginare, il caso viene utilizzato nel circuito del mio programmatore DIP8... Con un forte desiderio, puoi realizzare un adattatore universale per ogni tipo di microcircuito, ottenendo così un programmatore universale. Ma poiché con Controllori PIC Lavoro raramente, mi basta.

Sebbene il circuito stesso sia abbastanza semplice e non crei difficoltà nel montaggio, richiede anche rispetto. Pertanto, sarebbe bello realizzare un circuito stampato per questo. Dopo alcune manipolazioni con il programma SprintLayout, con textolite, un trapano e un ferro, è nato un tale vuoto (foto n. 3).



Foto n.3 - circuito stampato del programmatore


Scarica il sorgente del circuito stampato per il programma SprintLayout puoi seguire questo link:
(download: 680)
Se lo si desidera, è possibile modificarlo per adattarlo al tipo di controller PIC. Per chi ha deciso di lasciare inalterata la scheda, posto una vista laterale delle parti per facilitare l'installazione (Figura 4).



Figura №4 - scheda dal lato di montaggio


Un po' più di stregoneria con un saldatore e abbiamo un dispositivo già pronto che può lampeggiare Controllore PIC attraverso porta COM il tuo computer. Il risultato dei miei sforzi, ancora caldo e non lavato dal flusso, è mostrato nella foto n. 5.



Foto n. 5 - programmatore completo


D'ora in poi, la prima tappa verso il firmware Controllore PIC, è giunto al termine. La seconda fase includerà il collegamento del programmatore a un computer e l'utilizzo del programma IC-Prog.
Sfortunatamente, non tutti i computer e laptop moderni sono in grado di funzionare con questo programmatore a causa della banale assenza su di essi porte COM, e quelli che sono installati sui laptop non rilasciano il necessario per la programmazione 12V... Così ho deciso di rivolgermi al mio primo PC, che tanto tempo fa prendeva polvere e aspettava la sua ora più bella (e aspettava ancora).
Quindi accendiamo il computer e prima di tutto installiamo il programma IC-Prog... Puoi scaricarlo dal sito dell'autore o seguire questo link:
(download: 778)
Colleghiamo il programmatore a porta COM e inizia applicazione installata... Per il corretto funzionamento, è necessario eseguire una serie di manipolazioni. Inizialmente, è necessario selezionare il tipo di controller che si intende cucire. ce l'ho PIC12F675... Nello screenshot n. 6, il campo per la scelta di un controller è evidenziato in rosso.



Schermata 6 - scelta del tipo di microcontrollore




Schermata n. 7 - Impostazione del metodo di registrazione del controller


Nella stessa finestra, vai su " Programmazione"e seleziona l'elemento" Controllo della programmazione". Il controllo dopo la programmazione può causare un errore, poiché in alcuni casi il firmware stesso installa i fusibili di blocco lettura. mer... Per non illuderti, è meglio disabilitare questo controllo. In breve, segui lo screenshot # 8.



Schermata n. 8 - impostazione di verifica


Continuiamo a lavorare con questa finestra e andiamo al " Generale". Qui è necessario impostare la priorità del programma e assicurarsi di utilizzare NT/2000/XP driver (schermata n. 9). In alcuni casi, il programma potrebbe offrire l'installazione di questo driver ed è necessario riavviare. IC-Prog.



Schermata 9 - impostazioni generali


Quindi, il lavoro è finito con questa finestra. Passiamo ora alle impostazioni del programmatore stesso. Scegli dal menù " Impostazioni "->" Impostazioni del programmatore"o semplicemente premere il tasto F3... Viene visualizzata la finestra seguente, mostrata nello screenshot n. 10.



Schermata n. 10 - Finestra delle impostazioni del programmatore


Prima di tutto, selezioniamo il tipo di programmatore - Programmatore JDM... Quindi, imposta il pulsante di opzione per utilizzare il driver finestre... Il prossimo passo prevede la scelta porta COM a cui è collegato il programmatore. Se è solo, non ci sono domande, e se ce ne sono più di una, cerca in Gestione dispositivi quale è attualmente in uso. Il cursore della latenza I/O serve per regolare la velocità di scrittura e lettura. Questo può essere necessario su computer veloci e in caso di problemi con il firmware - questo parametro deve essere aumentato. Nel mio caso, è rimasto di default uguale a 10 e tutto ha funzionato bene.

Questo completa l'impostazione del programma IC-Progè finita e si può procedere al processo del firmware stesso, ma prima leggiamo i dati dal microcontrollore e vediamo cosa c'è scritto dentro. Per fare ciò, sulla barra degli strumenti, fare clic sull'icona del microcircuito con una freccia verde, come mostrato nello screenshot n. 11.



Schermata 11 - il processo di lettura delle informazioni dal microcontrollore


Se il microcontrollore è nuovo e non è stato flashato prima, tutte le sue celle di memoria verranno riempite con valori 3FFF tranne l'ultimo. Conterrà il valore della costante di calibrazione. Questo è un valore molto importante e unico per ogni controller. Da essa dipende la precisione della timbratura, che, selezionando e impostando questa molto costante, viene impostata dal produttore. La schermata 12 mostra la cella di memoria in cui verrà memorizzata la costante durante la lettura del controller.



Schermata n. 12 - Valore costante di calibrazione


Ripeto che il valore è unico per ogni microcircuito e non deve essere lo stesso della figura. Molti, per inesperienza, sovrascrivono questa costante e successivamente Controllore PIC inizia a funzionare in modo errato se il progetto utilizza il clock da un generatore interno. Ti consiglio di annotare questa costante e di attaccare una scritta con il suo valore direttamente sul controller. In questo modo eviterai molti problemi in futuro. Quindi, il valore è annotato - andiamo avanti. Apriamo il file del firmware, che di solito ha l'estensione .esadecimale... Ora invece delle etichette 3FFF, il buffer di programmazione contiene il codice del nostro programma (schermata n. 13).



Schermata 13 - firmware caricato nel buffer di programmazione


Sopra, ho scritto che molti sovrascrivono la costante di calibrazione per negligenza. Quando succede? Questo accade quando viene aperto il file del firmware. Il valore della costante viene modificato automaticamente in 3FFF e se si avvia il processo di programmazione, non si torna indietro. Nella schermata n. 14, è evidenziata la cella di memoria in cui era precedente la costante. 3450 (prima di aprire file esadecimale).

Come programmatore elementare, ti suggeriamo di assemblare un programmatore compatibile secondo lo schema JDM dell'autore, che abbiamo chiamato programmatore NTV. Di seguito è riportato un diagramma schematico di un programmatore NTV (viene utilizzata una presa DB9, da non confondere con una spina).

Il programmatore assemblato secondo questo schema ha ripetutamente e accuratamente lampeggiato i controller (e un certo numero di altri) e può essere raccomandato per la ripetizione per i radioamatori alle prime armi.

Questo programmatore NON FUNZIONA quando è collegato a laptop. i livelli di segnale dell'interfaccia RS-232 (porta COM) nei sistemi mobili sono sottostimati. Inoltre, potrebbe non funzionare sui PC moderni, dove l'hardware salva la corrente sulla porta. Quindi non prendetevela con me, raccogliete e controllate tutti i computer che vi vengono a portata di mano.

Strutturalmente, la scheda del programmatore è inserita tra i pin del connettore DB-9, che sono saldati alle piazzole di contatto del circuito stampato. Di seguito è riportato un disegno della scheda e una fotografia del programmatore assemblato.



Per completezza, va detto che esiste un altro programmatore simile che ho assemblato per i microcontrollori in un pacchetto a 8 pin. Il programmatore funziona benissimo anche con questi microcontrollori. Di seguito è riportato un disegno della tavola e delle foto.

Pubblicazioni correlate

  • Conti del deserto nero (RU) Conti del deserto nero (RU)

    Account esteso GameNet Vantaggi di un account esteso: Possibilità di giocare con due account (in due finestre) contemporaneamente in, e ....

  • Canale televisivo La cui stella non è in TV adesso? Canale televisivo La cui stella non è in TV adesso?

    Dov'è il canale televisivo Zvezda, perché non è in TV? Molti abbonati dell'operatore Kol TV hanno dovuto affrontare un problema: il loro canale televisivo Zvezda preferito è scomparso ....