- Architettura e applicazioni del microcontrollore PIC:
- Selezione del microcontrollore PIC per i nostri tutorial:
- Selezione del software per i nostri tutorial:
- Prepararsi con l'hardware:
Nel 1980, Intel ha sviluppato il primo microcontrollore (8051) con Harvard Architecture 8051 e da allora i microcontrollori hanno portato una rivoluzione nell'industria elettronica e embedded. E con il progresso tecnologico nel tempo, ora abbiamo molti microcontrollori più efficienti ea bassa potenza come AVR, PIC, ARM. Questi microcontrollori sono più capaci e facili da usare, hanno i più recenti protocolli di comunicazione come USB, I2C, SPI, CAN ecc. Anche Arduino e Raspberry Pi hanno completamente cambiato la prospettiva verso i microcontrollori, e Raspberry Pi non è solo un microcontrollore ma ha un intero computer all'interno.
Questa sarà la prima parte di una serie di tutorial che devono ancora venire, che ti aiuteranno ad apprendere i microcontrollori PIC. Se hai un background di elettronica e hai sempre voluto iniziare con l'apprendimento di alcuni microcontrollori e entrare nel mondo della codifica e della creazione di cose, allora questa serie di tutorial sarà il tuo primo passo per iniziare.
Il microcontrollore PIC è una scelta molto conveniente per iniziare con i progetti di un microcontrollore, perché ha ottimi forum di supporto e fungerà da solida base per costruire su tutti i tuoi microcontrollori avanzati che devi ancora imparare.
Questi tutorial sono fatti per studenti assoluti o intermedi; abbiamo pianificato di iniziare dai progetti più elementari a quelli avanzati. Non ci aspettiamo alcun prerequisito dagli studenti poiché siamo qui per aiutarti a qualsiasi livello. Ogni tutorial avrà una spiegazione teorica e una simulazione seguita da un tutorial pratico. Questi tutorial non coinvolgeranno alcuna scheda di sviluppo, creeremo i nostri circuiti usando una scheda perf. Quindi preparati e trova un po 'di tempo ogni settimana per potenziarti con i microcontrollori.
Ora iniziamo con una semplice introduzione sui microcontrollori PIC e alcune configurazioni software per farci funzionare nel nostro prossimo tutorial. Controlla il video alla fine per l'installazione e la configurazione di MPLABX, XC8, Proteus e un rapido unboxing del programmatore PICkit 3.
Architettura e applicazioni del microcontrollore PIC:
Il microcontrollore PIC è stato introdotto da Microchip Technologies nell'anno 1993. Originariamente questi PIC sono stati sviluppati per far parte dei computer PDP (Programmed Data Processor) e ogni dispositivo periferico del computer è stato interfacciato utilizzando questo microcontrollore PIC. Quindi il PIC prende il nome come controller di interfaccia periferica. Successivamente Microchip ha sviluppato molti circuiti integrati della serie PIC che possono essere utilizzati per qualsiasi piccola applicazione come un'applicazione di illuminazione fino a quella avanzata.
Ogni microcontrollore deve essere costruito attorno ad un'architettura, il tipo di architettura più famoso è l'architettura di Harvard, il nostro PIC è basato su questa architettura in quanto appartiene alla classica famiglia 8051. Entriamo in una piccola introduzione sull'architettura di Harvard del PIC.
Il microcontrollore PIC16F877A è costituito da una CPU integrata, porte I / O, organizzazione della memoria, convertitore A / D, timer / contatori, interrupt, comunicazione seriale, oscillatore e modulo CCP che, riuniti, rende l'IC un potente microcontrollore per i principianti con cui iniziare. Di seguito è mostrato lo schema a blocchi generale dell'architettura PIC
CPU (Central Processing Unit):
Il microcontrollore ha una CPU per eseguire operazioni aritmetiche, decisioni logiche e operazioni relative alla memoria. La CPU deve coordinarsi tra la RAM e le altre periferiche del microcontrollore.
Consiste in una ALU (Arithmetic Logic Unit), utilizzando la quale esegue le operazioni aritmetiche e le decisioni logiche. È presente anche una MU (Memory unit) per memorizzare le istruzioni dopo che sono state eseguite. Questa MU decide la dimensione del programma del nostro MC. Consiste anche di una CU (Control Unit) che funge da bus di comunicazione tra la CPU e le altre periferiche del microcontrollore. Questo aiuta a recuperare i dati dopo che sono stati elaborati nei registri specificati.
Memoria ad accesso casuale (RAM):
Una memoria ad accesso casuale è quella che decide la velocità del nostro microcontrollore. La RAM è costituita da banchi di registri al suo interno, a ciascuno dei quali è assegnato un compito specifico. Nel complesso si possono classificare in due tipologie:
- General Purpose Register (GPR)
- Registro delle funzioni speciali (SFR)
Come suggerisce il nome, il GPR viene utilizzato per funzioni di registro generali come addizione, sottrazione, ecc. Queste operazioni sono limitate entro 8 bit. Tutti i registri sotto il GPR sono scrivibili e leggibili dall'utente. Non hanno alcuna funzione da soli a meno che non sia specificato dal software.
Mentre l' SFR viene utilizzato per eseguire complicate funzioni speciali che coinvolgono anche una gestione a 16 bit, i loro registri possono essere letti solo (R) e non possiamo scrivere (W) nulla su di essi. Quindi questi registri hanno funzioni predefinite da eseguire, che vengono impostate al momento della produzione e ci visualizzano solo il risultato, utilizzando il quale possiamo eseguire alcune operazioni correlate.
Memoria di sola lettura (ROM):
La memoria di sola lettura è il luogo in cui viene archiviato il nostro programma. Questo decide la dimensione massima del nostro programma; quindi è anche chiamato come memoria di programma. Quando l'MCU è in funzione, il programma memorizzato nella ROM viene eseguito come per ogni ciclo di istruzione. Questa unità di memoria può essere utilizzata solo durante la programmazione del PIC, durante l'esecuzione diventa una memoria di sola lettura.
Memoria di sola lettura programmabile cancellabile elettricamente (EEPROM):
EEPROM è un altro tipo di unità di memoria. In questa unità di memoria è possibile memorizzare i valori durante l'esecuzione del programma. I valori memorizzati qui sono cancellabili elettricamente, ovvero questi valori verranno conservati nel PIC anche quando l'IC è spento. Possono essere usati come piccolo spazio di memoria per memorizzare i valori eseguiti; tuttavia lo spazio di memoria sarà molto inferiore a turno di KB.
Memoria flash :
La memoria flash è anche una memoria di sola lettura programmabile (PROM) in cui possiamo leggere, scrivere e cancellare il programma migliaia di volte. Generalmente, il microcontrollore PIC utilizza questo tipo di ROM.
Porte I / O
- Il nostro PIC16F877A è composto da cinque porte: Porta A, Porta B, Porta C, Porta D e Porta E.
- Di tutte e cinque le PORTE solo la Porta A è a 16 bit e la PORTA E a 3 bit. Il resto delle PORTE sono a 8 bit.
- I pin su queste PORTE possono essere utilizzati come ingresso o uscita, in base alla configurazione del registro TRIS.
- Oltre a eseguire operazioni di I / O, i pin possono essere utilizzati anche per funzioni speciali come SPI, Interrupt, PWM ecc.
Autobus:
Il termine Bus è solo un mucchio di cavi che collega il dispositivo di input o output con CPU e RAM.
Il bus dati viene utilizzato per trasferire o ricevere i dati.
Il bus indirizzo viene utilizzato per trasmettere l'indirizzo di memoria dalle periferiche alla CPU. I pin I / O vengono utilizzati per interfacciare le periferiche esterne; UART e USART entrambi i protocolli di comunicazione seriale vengono utilizzati per interfacciare dispositivi seriali come GSM, GPS, Bluetooth, IR, ecc.
Selezione del microcontrollore PIC per i nostri tutorial:
I microcontrollori PIC di Microchip Company sono divisi in 4 grandi famiglie. Ogni famiglia ha una varietà di componenti che forniscono caratteristiche speciali integrate:
- La prima famiglia, PIC10 (10FXXX), si chiama Low End.
- La seconda famiglia, PIC12 (PIC12FXXX) - si chiama Mid-Range.
- La terza famiglia è PIC16 (16FXXX).
- La quarta famiglia è PIC 17/18 (18FXXX)
Dato che stiamo iniziando a conoscere PIC, selezioniamo un IC che viene utilizzato e disponibile universalmente. Questo IC appartiene alla famiglia 16F, il numero di parte dell'IC è PIC16F877A. Dal primo tutorial fino alla fine useremo lo stesso IC poiché questo IC è dotato di tutte le funzionalità avanzate come SPI, I2C e UART ecc. Ma se non ottieni nessuna di queste cose ora va completamente bene, lo faremo progredire in ogni tutorial e infine utilizza tutte le funzionalità sopra menzionate.
Una volta selezionato l'IC, è molto importante leggere la scheda tecnica dell'IC. Questo dovrebbe essere il primo passo in qualsiasi concetto che stiamo per provare. Ora, poiché abbiamo selezionato questo PIC16F877A, leggiamo le specifiche di questo IC nella scheda tecnica.
La caratteristica periferica, afferma che ha 3 timer, due dei quali sono a 8 bit e uno è il prescaler a 16 bit. Questi timer vengono utilizzati per creare funzioni di temporizzazione nel nostro programma. Possono anche essere usati come contatori. Mostra anche che ha le opzioni CCP (Capture Compare e PWM), che ci aiutano a generare segnali PWM e leggere i segnali di frequenza in ingresso. Per la comunicazione con il dispositivo esterno, dispone di SPI, I2C, PSP e USART. Per motivi di sicurezza è dotato di Brown-out Reset (BOR), che aiuta a ripristinare il programma while.
Le caratteristiche analogiche, indicano che l'IC ha un ADC a 8 canali a 10 bit. Ciò significa che il nostro IC può convertire i valori analogici in digitali con una risoluzione di 10 bit e dispone di 8 pin analogici per leggerli. Abbiamo anche due comparatori interni che possono essere utilizzati per confrontare direttamente la tensione in ingresso senza effettivamente leggerli attraverso il software.
Le caratteristiche speciali del microcontrollore, indicano che ha 100.000 cicli di cancellazione / scrittura, il che significa che puoi programmarlo per circa 100.000 volte. In-Circuit Serial Programming ™ (ICSP ™), ci aiuta a programmare l'IC direttamente utilizzando PICKIT3. Il debug può essere eseguito tramite In-Circuit Debug (ICD). Un'altra caratteristica di sicurezza è il Watchdog Timer (WDT), che è un timer autoaffidabile che azzera l'intero programma, se necessario.
L'immagine sotto rappresenta le piedinature del nostro IC PIC16F877A. Questa immagine rappresenta ogni pin contro il suo nome e le sue altre caratteristiche. Questo può anche essere trovato nella scheda tecnica. Tieni questa immagine a portata di mano perché ci aiuterà durante i nostri lavori hardware.
Selezione del software per i nostri tutorial:
Il microcontrollore PIC può essere programmato con diversi software disponibili sul mercato. Ci sono persone che usano ancora il linguaggio Assembly per programmare MCU PIC. Per i nostri tutorial abbiamo selezionato il software e il compilatore più avanzati sviluppati dalla stessa Microchip.
Per programmare il microcontrollore PIC avremo bisogno di un IDE (Integrated Development Environment), dove avviene la programmazione. Un compilatore, in cui il nostro programma viene convertito in un formato leggibile MCU chiamato file HEX. Un IPE (Integrated Programming Environment), che viene utilizzato per eseguire il dump del nostro file esadecimale nei nostri MCU PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compilatore: XC8
Microchip ha fornito gratuitamente tutti e tre questi software. Possono essere scaricati direttamente dalla loro pagina ufficiale. Ho anche fornito il link per tua comodità. Una volta scaricati, installali sul tuo computer. In caso di problemi, è possibile visualizzare il video fornito alla fine.
Per scopi di simulazione abbiamo utilizzato un software chiamato PROTEUS 8, fornito da Labcenter. Questo software può essere utilizzato per simulare il nostro codice generato utilizzando MPLABX. C'è un software dimostrativo gratuito che può essere scaricato dalla loro pagina ufficiale tramite il link.
Prepararsi con l'hardware:
Tutti i nostri tutorial finiranno con l'hardware. Per imparare il PIC nel miglior modo possibile è sempre consigliabile testare i nostri codici e circuiti su hardware, perché l'affidabilità della simulazione è molto inferiore. I codici che funzionano su un software di simulazione potrebbero non funzionare come previsto sull'hardware. Quindi costruiremo i nostri circuiti su una scheda Perf per scaricare i nostri codici.
Per scaricare o caricare il nostro codice in PIC, avremo bisogno di PICkit 3. Il programmatore / debugger PICkit 3 è un semplice debugger in-circuit a basso costo controllato da un PC che esegue il software MPLAB IDE (v8.20 o superiore) su una piattaforma Windows. Il programmatore / debugger PICkit 3 è parte integrante della suite di strumenti dell'ingegnere di sviluppo. Oltre a questo avremo bisogno anche di altro hardware come la scheda Perf, la stazione di saldatura, i circuiti integrati PIC, gli oscillatori a cristallo, i condensatori ecc. Ma li aggiungeremo alla nostra lista man mano che procediamo nei nostri tutorial.
Ho portato il mio PICkit 3 da amazon, il video di unboxing dello stesso può essere trovato nel video qui sotto. Viene fornito anche il collegamento per PICKIT3; il prezzo potrebbe essere un po 'alto ma credetemi vale la pena investire.