Sommario:

Comprensione di ICSP per microcontrollori PIC: 4 passaggi (con immagini)
Comprensione di ICSP per microcontrollori PIC: 4 passaggi (con immagini)

Video: Comprensione di ICSP per microcontrollori PIC: 4 passaggi (con immagini)

Video: Comprensione di ICSP per microcontrollori PIC: 4 passaggi (con immagini)
Video: How to Blink an LED - Part 6 Microcontroller Basics (PIC10F200) 2024, Dicembre
Anonim
Comprensione di ICSP per microcontrollori PIC
Comprensione di ICSP per microcontrollori PIC

La programmazione dei microcontrollori non è difficile. Costruire un programmatore è un ottimo primo progetto di elettronica. L'obiettivo di questo tutorial è spiegare il semplice metodo di "programmazione seriale in circuito" utilizzato con i Microchip PIC.

Passaggio 1: perché ICSP?

Perché ICSP?
Perché ICSP?

La programmazione di un grande chip DIP (through hole) è facile. Inseriscilo in un programmatore socketed, masterizza e torna al circuito dell'applicazione. Prova e ripeti.

Le cose si fanno più difficili con i chip più piccoli (a montaggio superficiale). Non ci sono socket standard per QFN, SSOP, QFP o anche i grandi pacchetti SOIC.300. Ci sono clip davvero costose ($ 100) che possono essere attaccate e programmate a questi chip. È necessaria una clip diversa per ogni tipo di chip e numero di pin utilizzati. C'è un'alternativa. Si chiama ICSP. ICSP significa "programmatore seriale in circuito (ing?)". È un modo per programmare un PIC mentre è ancora collegato al circuito dell'applicazione. Esatto, niente più scambio di chip. Perché ICSP? 1. Non ci sono socket di programmazione per chip di piccole dimensioni. Le clip sono costose. 2. È un problema spostare i chip dentro e fuori dal programmatore durante lo sviluppo. Impossibile per le parti a montaggio superficiale.

Passaggio 2: cos'è ICSP?

Che cos'è l'ICSP?
Che cos'è l'ICSP?
Che cos'è l'ICSP?
Che cos'è l'ICSP?
Che cos'è l'ICSP?
Che cos'è l'ICSP?
Che cos'è l'ICSP?
Che cos'è l'ICSP?

Sono necessarie cinque connessioni per programmare un PIC mentre è collegato a un circuito applicativo. Aggiungo un'intestazione a 5 pin ai miei circuiti stampati per rendere questa connessione facile e veloce. Le basi della programmazione PIC. Per programmare un PIC sono necessarie cinque connessioni. Alimentazione, massa, una tensione di programmazione, orologio e dati.+ (Vdd)/-(Vss) Queste sono le connessioni di alimentazione e massa (Vdd, Vss). Abbastanza standard. Se stai usando un programmatore con livelli di tensione "reali" (NON un JDM2!), la tua applicazione può funzionare dalla propria alimentazione quando programmata, eliminando queste connessioni. Vpp Questa è la tensione di programmazione. I PIC entrano in modalità di programmazione quando ~13 volt vengono posizionati sul pin MCLR/Vpp (di solito pin 1 sui PIC moderni, più su quello sotto). Orologio/Dati o PGC/PGD Le linee di clock e dati vengono utilizzate per scrivere e leggere il PIC firmware. Questi sono solitamente gli stessi pin di PORTB6 e PORTB7. Esercizio: identificare i punti di connessione ICSP sui PIC nelle immagini sottostanti. Se il PIC si adatta, indossalo. Ricevo molte domande sul mio progetto JDM2 su instructables. Il più frequente è "Programma PIC X?'"' - ecco come capirlo: 1) Guarda la scheda tecnica. Trova il "Diagramma dei pin" che assomiglia all'immagine qui sotto.2) Identifica la posizione dei pin che devono essere collegati per la programmazione (Vpp, Vdd, Vss, Data e Clock).3) Guarda la connessione della presa sul programmatore. Riesci ad abbinare i pin richiesti con una presa sul programmatore?

Passaggio 3: come ICSP?

Come ICSP?
Come ICSP?
Come ICSP?
Come ICSP?
Come ICSP?
Come ICSP?
Come ICSP?
Come ICSP?

A seconda del tuo progetto, ora puoi effettuare tutte le connessioni necessarie e programmare il tuo PIC. Ci sono alcune catture che dovresti conoscere. Il design per ICSP è importante. Microchip fornisce una bella nota applicativa PDF sulla progettazione per ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744Ecco alcuni suggerimenti ed esempi di progetti ICSP dalle mie precedenti istruzioni. Suggerimento n. 1, livello di minaccia: importante non collegare nient'altro all'OROLOGIO e pin DATI (di solito RB6 e RB7, PGC e PGD). Basta non farlo. Ci sono situazioni in cui tipi di ingegneria molto intelligenti la fanno franca, ma non lo fanno. I componenti collegati ai pin distorceranno i segnali di clock e dati, determinando una programmazione imprevedibile. Inoltre, se si desidera utilizzare un debugger seriale in-circuit, non è possibile. Basta non farlo. Suggerimento n. 2 Livello di minaccia: esplosivo Utilizzare sempre un diodo tra la tensione di programmazione e la tensione di sistema. Se si utilizza MCLR (master clear) su un PIC, è necessario fornire un po' di tensione sul pin MCLR tramite un resistore da 10 Kish. Questo è anche il pin a cui applicherai ~13 volt per accedere alla modalità di programmazione. Ho inserito un diodo 1n4148 (equivalente) tra il resistore e il pin MCLR/Vpp (come mostrato nello schema e nel rendering di seguito). Ciò mantiene la tensione di programmazione sul pin Vpp, prevenendo la distruzione di altri componenti sulla scheda. Consiglio n. 3 Livello di minaccia: (ri) stanco La programmazione a bassa tensione ti sta trattenendo, amico. Non ho mai avuto successo con LVP. Non l'ho mai visto funzionare (coerentemente) con i miei occhi. Basta stringere i denti e spendere $ 2,50 per costruire un programmatore JDM2.

Passaggio 4: programmatori ICSP

Programmatori ICSP
Programmatori ICSP
Programmatori ICSP
Programmatori ICSP

ICSP non richiede un protocollo di programmazione diverso. Un programmatore basato su socket produce già la segnalazione richiesta, ma la invia al socket anziché tramite fili. La maggior parte dei programmatori socket può essere utilizzata come ICSP collegando i cavi dal socket al circuito dell'applicazione. Ad esempio, il programmatore JDM2 originale (qui: https://www.jdm.homepage.dk/newpic.htm) può essere utilizzato per eseguire la programmazione ICSP portando i 5 segnali richiesti a un'intestazione. Questo può essere visto nel programmatore qui: https://www.belza.cz/digital/jdm.htm. Per tenere le cose a portata di mano, ho rifatto questo disegno in Eagle Cad e l'ho allegato a questo istruibile. Guarda l'orientamento del transistor, una delle impronte potrebbe essere errata (l'ho fatto più di un anno fa, non ricordo più). Allo stesso modo, il mio programmatore JDM2 aggiornato (qui: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) può essere utilizzato per ICSP inserendo i cavi nelle prese DIP e collegandoli al PIC di destinazione. *****I JDM2 utilizzano tensioni stravaganti … collegalo al circuito SENZA alimentazione esterna (o anche a terra) collegata al circuito dell'applicazione. Rimuovere le connessioni ICSP prima di applicare l'alimentazione. La mancata osservanza di questa operazione non è distruttiva, ma risulterà in una programmazione fallita ******* Un'altra opzione è un programmatore ICD (semi) appropriato. ICD consente di controllare l'esecuzione del firmware sul PIC impostando punti di interruzione nel codice o leggendo i valori di memoria e porta. Un ICD può anche animare l'esecuzione del codice, alimentare il circuito dell'applicazione e programmare il PIC. Fa tutto questo attraverso la stessa connessione ICSP a 5 pin di cui abbiamo discusso. Diversi cloni ICSP che puoi creare da solo possono essere visti qui: https://www.icd2clone.com/wiki/Main_Page. Ho costruito il PiCS (rev B) alcuni mesi fa e lo adoro.

Consigliato: