Sommario:
- Passaggio 1: perché ICSP?
- Passaggio 2: cos'è ICSP?
- Passaggio 3: come ICSP?
- Passaggio 4: programmatori ICSP
Video: Comprensione di ICSP per microcontrollori PIC: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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?
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?
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?
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
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:
Progettazione di una scheda di sviluppo per microcontrollori: 14 passaggi (con immagini)
Progettare una scheda di sviluppo per microcontrollori: sei un produttore, un hobbista o un hacker interessato a passare da progetti di perfboard, DIP IC e PCB fatti in casa a PCB multistrato fabbricati da case board e imballaggi SMD pronti per la produzione di massa? Allora questo istruibile è per te! Questa guida
Sistema di schede di sviluppo per microcontrollori PIC: 3 passaggi
PIC Microcontroller Development Board System: questo progetto è per la progettazione e l'uso di uno strumento di sviluppo PIC flessibile per adattarsi a un'ampia gamma di progetti elettronici basati su PIC. Spesso è più facile sviluppare progetti di microcontrollori con l'uso di strumenti di sviluppo; che consentono in base all'utente
Comprensione del protocollo IR dei telecomandi di Air Conditoner: 9 passaggi (con immagini)
Comprensione del protocollo IR dei telecomandi di Air Conditoner: ho imparato a conoscere i protocolli IR da un po' di tempo ormai. Come inviare e ricevere segnali IR. A questo punto, l'unica cosa rimasta è il protocollo IR dei telecomandi AC. A differenza dei telecomandi tradizionali di quasi tutti i dispositivi elettronici (diciamo una TV) dove
Comunicazione wireless utilizzando moduli RF a 433 MHz economici e microcontrollori Pic. Parte 2: 4 passaggi (con immagini)
Comunicazione wireless utilizzando moduli RF a 433 MHz economici e microcontrollori Pic. Parte 2: Nella prima parte di questa istruzione, ho dimostrato come programmare un PIC12F1822 utilizzando MPLAB IDE e il compilatore XC8, per inviare una semplice stringa in modalità wireless utilizzando moduli TX / RX 433 MHz economici. Il modulo ricevitore è stato collegato tramite USB a UART TTL annuncio via cavo
Comprensione del missaggio dei canali: 4 passaggi (con immagini)
Capire il missaggio dei canali: se hai mai guidato uno chassis con telecomando, ci sono buone probabilità che tu abbia usato il missaggio, anche se non lo sapevi. In particolare, se hai utilizzato un singolo joystick o gimble per controllare un veicolo che utilizza lo sterzo a slitta o