Di cosa ho bisogno per inserire il mio codice su un microcontrollore?


8

Ho imparato a programmare un controller, ma in realtà non ho mai inserito il codice sul dispositivo fisico. Sto cercando di capire cosa devo ordinare per iniziare a sviluppare un sistema embedded di base.

Ad esempio, se ho un PIC18F1330, ho un compilatore IDE MPLAB e XC8. Fantastico, quindi ho compilato il codice e sono pronto per inserirlo nel controller. Cosa devo avere per trasferire il mio codice compilato sul mio PC, sul controller?

Ho visto cose come un debugger in-circuit e un kit PIC. Mi sono appena perso a questo punto.


Quindi una volta che ho un PICkit, PICkit mi permette di collegare fisicamente il mio PC al microcontrollore?
Adam,

Sì, c'è un connettore su PICKit, ICD ecc. Che si collega alla scheda per la programmazione e il debug in-circuit.
Spehro Pefhany,

Risposte:


4

Esistono diversi modi per inviare il codice a un microcontrollore.

Sul web troverai molti programmatori self made, ma di solito hanno anche software self made e non sono (bene) integrati nell'IDE MPLAB.

La soluzione più economica di Microchip è un PicKit per ~ 40 € che è appena collegato al PC tramite USB. Sebbene PicKit abbia alcune opzioni di debug, esiste anche il più potente ICD "In Circuit Debugger" per ~ 180 €, che ha più funzionalità di debug, ma ovviamente può anche far lampeggiare i chip.

Ho sempre pensato che PicKit fosse sufficiente per me.

Ci sono versioni di terze parti là fuori, poiché microchip pubblica firmware e schemi per PicKit, ma se li acquisti, assicurati di ottenere davvero quello che pensi che ottieni. Una volta ho visto un'offerta per PicKit 3, ma non ero sicuro che non fosse un PicKit 2.


Proprio come commento: ci sono MCU Microchip, che possono lampeggiare da soli. Ad esempio, abbiamo usato la famiglia PIC18F2450 / 2550/4450/4550 con USB incorporato e abbiamo inserito un caricatore di avvio. Quando un jumper viene chiuso, l'MCU entra in modalità caricatore di avvio all'avvio e puoi far lampeggiare l'MCU con il tuo codice. Quella roba è disponibile da Microchip.

Per usarlo, hai bisogno di alcune modifiche al tuo codice. E, naturalmente, è necessario un normale programmatore per eseguire inizialmente il flashing del boot loader sull'MCU. Quindi, questa funzione non ha senso se si dispone di un programmatore. Ma è bello se vuoi aggiornamenti del firmware per i tuoi clienti.


12

Dato che stai usando l'IDE MPLAB con il compilatore XC8 C, puoi verificare la compatibilità dal menu Configura-> Seleziona dispositivo (l'indicatore verde indica che è completamente supportato, il giallo è parziale e il rosso non è supportato).

In questo momento, le migliori scelte sarebbero Pickit 3, ICD3 o RealICE (in ordine di aumento del prezzo)

Ecco i programmatori compatibili, i debugger:

Volete davvero avere il supporto per il debug e supporto per la programmazione.

inserisci qui la descrizione dell'immagine

Una volta installati i driver di dispositivo è possibile selezionare e connettersi ad esso (un determinato dispositivo può essere installato solo come debugger o programmatore in un determinato momento):

inserisci qui la descrizione dell'immagine

Quindi quando il programma viene compilato (in debug o in versione) è possibile programmare il microcontrollore con i pulsanti mostrati di seguito:

inserisci qui la descrizione dell'immagine

Fisicamente, PICkit o altra unità di debug / programmatore ha un connettore che si collega al sistema. Ci sono 6 pin, di cui 5 utilizzati tra cui potenza e terra.

inserisci qui la descrizione dell'immagine


4

Al momento della scrittura, ci sono 3 modi principali per masterizzare un binario su un microcontrollore. A seconda di un particolare micro, possono essere disponibili 3 di essi. Il metodo più vecchio è il programmatore / debugger specifico del dispositivo. Quelli attuali per le parti Microchip sono Pickit3 / ICD3, sono compatibili con tutti i micro PIC attuali e alcuni vecchi. Non è possibile utilizzarli per programmare parti realizzate da altri produttori.

Il secondo metodo si chiama bootloader. È un piccolo programma masterizzato nel micro prima che tu prenda possesso della parte. Bootloader consente la programmazione tramite le interfacce standard micro: UART, SPI, Ethernet, ecc. I chip ARM spesso sono dotati di un bootloader precaricato e di un AVR. Non è necessario un dispositivo di programmazione proprietario se è presente un bootloader, ma non sarà possibile eseguire facilmente il debug a singolo passaggio.

Il terzo si chiama JTAG. È un'interfaccia semi-generica, puoi programmare molte parti diverse con essa e anche eseguire il debug. Avrai bisogno di un attrezzo chiamato dongle JTAG. Alcune parti PIC hanno JTAG. I chip ARM in genere hanno JTAG e molti non hanno altre interfacce di debug.


3

Ricetta generale:

  1. Digita il tuo codice in un editor di testo usando la lingua che preferisci
  2. Traduci quella lingua in codice macchina usando un compilatore. Il codice macchina è un elenco di numeri esadecimali: alcuni rappresentano un'istruzione, il resto sono argomenti / parametri per queste istruzioni. Comunemente chiamato "file HEX". Qualsiasi parte del programma si riduce a questa successione di istruzioni elementari + i loro parametri.
  3. Trasferire questo codice macchina nella memoria del programma del dispositivo. Questo viene fatto usando un programmatore. Il programmatore viene spedito con un driver, che è un software che controlla il programmatore: dagli un file HEX, farà il resto. Il programmatore leggerà il tuo file HEX e muoverà le linee di programmazione del dispositivo (tipo di codice Morse) in modo codificato per scrivere effettivamente la memoria del programma. Quando il programma viene caricato, il dispositivo viene riavviato e quindi il dispositivo avvia automaticamente l'esecuzione del codice all'inizio della memoria del programma. Questo è il tuo codice. Questo è grossolanamente detto, ma è praticamente quello che devi sapere per ora.

Ci sei quasi . Hai l'ambiente di sviluppo integrato che fa 1 e 2 in un modo molto intuitivo. Ha anche interfacce per i programmatori, quindi non devi preoccuparti di cosa sia un file HEX (premi "play" e il gioco è fatto).

Tuttavia, hai ancora bisogno del programmatore fisico per interfacciare il tuo dispositivo con il PC: esiste un numero per i PIC. Pickit è uno di questi. Se hai intenzione di fare sul serio con la programmazione integrata, probabilmente dovresti investire in un In Circuit Debugger (ICD). È un programmatore e anche qualcosa che ti consente di sbirciare o dare un'occhiata alle variabili e ai registri nel micro, e persino di scorrere e fermare un programma a piacimento.


3

Un dispositivo di programmazione per microcontrollori è ciò di cui hai bisogno. Questo è un componente hardware che si collega al PC e al microcontrollore, al fine di eseguire le funzioni necessarie per caricare il programma sul chip. Nel circuito il debugger è un dispositivo che ha più funzionalità di un programmatore, come il debug del codice mentre è in esecuzione sul chip. È possibile utilizzare l'ICD o il kit PIC per programmare l'UC. Oppure, se vuoi, puoi usare anche un circuito molto semplice come il programmatore JDM .

Si noti che MPLAB IDE supporta PIC Kit e ICD. Ma se usi un programmatore JDM, dovrai usare un altro software come PICPgm per caricare il tuo chip compilato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.