Qualche informazione sul microcontrollore PIC



Похожие документы
UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI

8 Microcontrollori PIC

introduzione I MICROCONTROLLORI

CORSO SERALE ( TDP ) DEMOBOARD FN1Z PER PIC 16F877/16F877A

Esame di INFORMATICA

C. P. U. MEMORIA CENTRALE

Architettura hardware

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S Microcontrollori Microchip PIC 8 bit. namoroso@mrscuole.

Architettura del calcolatore

Struttura del calcolatore

Ing. Paolo Domenici PREFAZIONE

Informatica - A.A. 2010/11

Architettura dei computer

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Architettura del PIC 18F452

Dispensa di Informatica I.1

CPU. Maurizio Palesi

LABORATORIO DI SISTEMI

Gerarchia delle memorie

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

Concetti fondamentali della Tecnologia Dell informazione Parte prima

Il Personal Computer

Introduzione ai microcontrollori PIC

Centro Iniziative Sociali Municipio III

La macchina programmata Instruction Set Architecture (1)

Hardware di un Computer

Laboratorio di Informatica

Vari tipi di computer

Corso di Sistemi di Elaborazione delle informazioni

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

ARCHITETTURA DEL CALCOLATORE

Sistemi Elettronici #1. Sistemi Elettronici. Definizioni e concetti generali. Sistemi Elettronici Laurea Triennale in Elettronica A.A.

Architettura di un calcolatore

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

minipic programmer / debugger per microcontrollori PIC Marco Calegari

Categorie di sistemi Digitali

Esame di Stato Materia: SISTEMI AUTOMATICI PRIMA PARTE

L architettura di riferimento

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Corso PLC - Manuale Pratico 1

Parte II.2 Elaboratore

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

I L C O M P U T E R COM E FATTO DENTRO (Unità 2)

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

Il Software. Il software del PC. Il BIOS

FONDAMENTI di INFORMATICA L. Mezzalira

Tecnologia dell Informazione

HARDWARE. Relazione di Informatica

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Lezione 3: Architettura del calcolatore

Elementi di informatica

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

La memoria centrale (RAM)

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Laboratorio di Informatica

SOMMARIO. La CPU I dispositivi iti i di memorizzazione Le periferiche di Input/Output. a Montagn Maria

Calcolo numerico e programmazione Architettura dei calcolatori

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

Collegamento al sistema

Introduzione all'architettura dei Calcolatori

ARCHITETTURA DELL ELABORATORE

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC

Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo. Dip switch Pulsante n.a. Octal tri-state buffer IC2 = MM 2114

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Alfabetizzazione Informatica. Prof. Giuseppe Patti

Il memory manager. Gestione della memoria centrale

Corso di Sistemi di Elaborazione A.A. 2008/2009

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

IRSplit. Istruzioni d uso 07/10-01 PC

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON ADCS1, ADCS CH2, CH1 E CH GO/DONE... 6 ADON...

DMA Accesso Diretto alla Memoria

Architettura dei calcolatori I parte Introduzione, CPU

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Il microprocessore 8086

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

INFORMATICA 1 L. Mezzalira

Si compone di: SI-Prog supporta: Le tre principali famiglie di..

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Sistema operativo: Gestione della memoria

1.4b: Hardware. (Memoria Centrale)

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

OSCILLATORI AL QUARZO: CONTASECONDI

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI

Gestione di una UART SOFTWARE.

Organizzazione della memoria

Arduino UNO. Single board microcontroller

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

STRUTTURE DEI SISTEMI DI CALCOLO

Транскрипт:

Qualche informazione sul microcontrollore PIC Il Web contiene un ampia quantità di informazioni sui microcontrollori e sulla famiglia PIC in particolare. Accanto ai siti dei produttori hardware e software (in testa a tutti www.microchip.com) esiste un gran numero di siti semiprofessionali e amatoriali dove vengono presentati corsi per principianti, esempi applicativi svolti con schemi elettrici, consigli, esperienze personali a livelli quanto mai vari. In un Istituto Professionale o Industriale la trattazione e l uso dei microcontrollori è ormai un argomento standard; compare nei libri di testo e nelle riviste tecniche; non si può cominciare a parlare di autronica, di domotica, in generale di controllistica senza tirare in ballo il microcontrollore. Quello che segue non è un corso sul PIC, nè una esauriente trattazione. E un insieme di indicazioni come possono essere date a lezione in una classe quarta IPSIA; è uno spunto per cominciare a discutere con gli studenti. E un approccio semplificato puramente didattico. La forma del testo è quello di Word, ma si può pensare di trasferire il testo in PowerPoint: così l esposizione risulta più gradevole con l uso di adatti strumenti grafici. Usando una presentazione si perde senz altro in completezza, perchè le slide di PowerPoint troppo cariche di testo e figure sono difficilmente digeribili; si acquista in agilità, se gli studenti sono disposti ad usare le slide come inizio di un lavoro (non come sunto da sunteggiare ancora finché non resta più niente!). Questo materiale è fornito anche come file.ppt da scaricare (zip 297 kb) per libero uso. Il microcontrollore Un microcontrollore (µc) è un dispositivo di elaborazione dati simile al microprocessore (µp) Sul µp sono basati tutti i calcolatori dai personal computer ai mainframe Sul µc sono basati dispositivi per scopi industriali o per applicazioni particolari (autronica, domotica) Il µp contiene: Una ALU (Arithmetic Logic Unit) dove avvengono i calcoli diversi registri per la memorizzazione temporanea dei dati e la gestione delle istruzioni Un bus interno ad alta velocità circuiti di controllo e di temporizzazione per coordinare tutte le attività tre bus (Data Bus, Address Bus, Control Bus) per comunicare col mondo esterno (dispositivi di memoria, dispositivi di ingresso-uscita)

Il µp ha bisogno per funzionare: Di un ampia area di memoria esterna sia di lavoro (RAM) che di massa (hard disk ecc), dato che tratta grandi quantità di dati Di interfacce verso dispositivi esterni di Input (tastiera, mouse,scanner, hard disk, floppy, microfoni..) Di interfacce verso dispositivi esterni di Output (monitor, stampante, altoparlanti, hard disk, floppy,modem..) Di potenza di alimentazione anche di decine di watt Il µc invece possiede su un unico chip: Una CPU RISC Una piccola memoria di programma (EPROM-EEPROM) Una piccola memoria di lavoro RAM (alcuni KB) Porte di ingresso/uscita Contatori, timer, convertitore A/D Uart, Pwm, interfacce di comunicazione di vari tipi Contiene cioè, sia quello che possiede un µp (anche se in quantità molto ridotta), sia parti che il µp non possiede. Inoltre ha ingombro minimo e richiede poca potenza di alimentazione Le istruzioni perciò: sono poche decine sono eseguite molto velocemente RISC significa: Reduced Instruction Set Computing Elaborazione con insieme di istruzioni ridotto. non serve un clock molto elevato per un efficiente funzionamento (dai 4-8 MHz per i tipi più semplici, fino a 33-50 MHz per i tipi più evoluti) Il microcontrollore che si vuole usare qui è il PIC16F84 della Microchip Technology PIC = Peripheral Interface Controller

(Controllore di periferiche programmabile) La sua caratteristica più importante sta nella sigla F: Il programma risiede in una EEPROM FLASH (Electrically Erasable Programmable Read only Memory) è modificabile immediatamente anche senza togliere l integrato dal circuito (modalità: incircuit) Flash Program memory Program Counter Instruction Register RAM File Registers Address Mux ALU W register (accumulator) I/O Ports Schema sintetico del PIC Alcune sezioni del µc Program Counter: contatore che punta alla successiva istruzione da eseguire tra quelle contenute nel Program Memory Instruction Register: registro che contiene le istruzioni eseguibili; le confronta con il Program Memory e le dà per l esecuzione alla ALU

ALU: esegue calcoli matematici e logici sui dati in ingresso e deposita i risultati di calcolo nell Accumulatore Caratteristiche: Il PIC16F84 Set di 35 istruzioni a 14 bit, eseguite ognuna in 4 cicli di clock Bus dati a 8 bit Clock fino a 20 MHz Memoria di programma EEPROM: 1024 locazioni da 14 bit 36 registri da 8 bit 15 registri specializzati 68 byte di EEPROM dati memorizzabili Altre caratteristiche: Stack a 8 livelli (consente il richiamo di subroutine) 13 linee di I/O divise in due porte: porta A: RA0-RA4 (5 bit) porta B: RB0-RB7 (8 bit) Le porte forniscono: 25 ma in sink 20 ma in source (RA4 solo sink) Contatore - temporizzatore programmabile a 8 bit con prescaler a 8 bit Linee di interrupt sulla porta B autoreset all accensione La possibilità di stare in modo SLEEP (a bassissimo consumo) Il codice del programma può essere reso inaccessibile alla lettura Un Watch-dog Timer (temporizzatore "cane da guardia") che evita il blocco del funzionamento Due punti di forza del microcontrollore sono: l abbondanza di registri la presenza di porte di Ingresso/Uscita capaci di pilotare carichi esterni Quindi occorre saper gestire bene registri e porte. I registri sono celle, locazioni, di memoria dove il µc legge e scrive valori fondamentali per il funzionamento. Sono celle che hanno un indirizzo esadecimale (h) ; si dice che sono mappati in memoria.

Ad esempio scrivendo o leggendo nelle locazioni 05h e 06h si scrive o si legge nelle porte A e B. Se si programma il PIC in linguaggio macchina (Assembler) occorre precisare molti dettagli per i registri, con istruzioni da mettere all inizio del programma. Se si usa un linguaggio ad alto livello (Basic), le istruzioni da aggiungere sono minori. Tuttavia la mappa di memoria (cioè l allocazione dei registri) deve sempre essere conosciuta. La gestione delle porte A e B di IN/OUT E fondamentale saper programmare le porte di ingresso/uscita. Ognuno dei pin della porta A (05h) può essere impostato in modo indipendente come ingresso o come uscita in base al contenuto del registro di controllo TRISA (85h): impostando a 1 il bit di TRISA la porta corrispondente è un ingresso (se è 0 diventa uscita). Lo stesso vale per la porta B (06h) gestita da TRISB (86h). Esempio: con TRISB = 00111111, RB6 e RB7 sono linee di uscita (possono comandare un carico), e le altre linee sono ingressi (possono accettare un segnale esterno). Pin function - OSC1/CLKIN: oscillator crystal input - OSC2/CLKOUT: oscillator crystal output - MCLR: master clear (reset) - RA0..RA4: 5 linee porta A - RB0.. RB7: 8 linee porta B - Vss: massa - Vdd: alimentazione positiva

Oscillatore a quarzo per il clock L oscillatore del PIC può funzionare in quattro modi: 1. LP Low Power Crystal 32 KHz.. 200 KHz 2. XT Crystal/Resonator 100 KHz.. 4 MHz 3. HS High Speed Crystal/Resonator 8 MHz.. 20 MHz 4. RC Resistor Capacitor Si può usare un quarzo o un risonatore ceramico, a varie frequenze, oppure un circuito RC con scarsa precisione in frequenza. Occorre scegliere un modo, sia per costruire il circuito, sia per impostare le opzioni del dispositivo programmatore: l opzione più comune è XT. Il software per il PIC - 1 modo Il programma per il PIC si può scrivere in linguaggio assembly o assembler, usando direttamente le 35 istruzioni riconosciute dal PIC. Il programma si scrive come un file di testo. Esso viene convertito in codice binario da un programma chiamato Assemblatore. Il file creato contiene codici esadecimali e ha estensione. HEX Per trasferire poi il file HEX nella memoria di programma del PIC occorre un dispositivo chiamato Programmatore. Si usa un Personal Computer: per scrivere il testo del programma,con un editor di testi (non Word!) per convertirlo in codice eseguibile, usando l Assemblatore per scriverlo nel PIC, usando un Programmatore. La casa costruttrice Microchip fornisce un pacchetto integrato chiamato MPLAB. Esso comprende: MPLAB Editor: editor di testo per scrivere il testo del programma MPASM: il compilatore che traduce il testo in codice eseguibile (usando il codice esadecimale) Il compilatore MPASM è liberamente usabile. Si scarica dal sito della Microchip e si può usare indipendentemente dall editor.

Lavorando in Assembler, la parte più difficile è il debug, cioè l eliminazione degli errori di programmazione. Esistono software di simulazione, a pagamento in genere, che consentono di controllare il funzionamento del programma Programmazione fisica del PIC La famiglia PIC16F8X, che comprende il 16F84, il 16F877 ecc., può essere programmata: separatamente, con un Programmatore (programmazione out of circuit) direttamente, mentre si trova già montato nel circuito finale, aggiungendo nello schema del progetto un adatto connettore in più (programmazione in-circuit) Dato che il PIC ha una memoria Flash di programma, sono possibili veloci variazioni o aggiornamenti del codice programma. Sistema di programmazione out of circuit. Dopo aver scritto il programma, cioè il codice sorgente, lo si compila con il MPASM: viene creato un file oggetto con estensione.hex, il quale deve essere caricato nella memoria di programma del PIC, inserito in uno zoccolo del programmatore Per caricare il file.hex nella memoria programma del PIC occorre: Un personal computer Un programmatore Il software di gestione del programmatore Il PC: tramite un semplice software di gestione, legge il file.hex; riconosce l area di memoria del PIC dove scaricarlo Il programmatore: Imposta la tensione di scrittura (+13V) e adatta il segnale in arrivo ai circuiti interni del PIC Il PC: Trasferisce i dati nel PIC attraverso il collegamento seriale/parallelo. Dopo la scrittura fatta dal programmatore, verifica i dati scritti

Programmatore industriale Un insieme completo e di livello professionale è il PICSTART Plus fornito dalla stessa casa costruttrice Microchip Inc. Svantaggio: alto costo Vantaggio: è aggiornabile agli ultimi modelli Microchip Esistono molti programmatori industriali di terze parti, a costo minore, o di tipo hobbystico, già pronti o in kit da costruire. In genere se sono di basso costo, programmano solo alcuni tipi di PIC e non sono aggiornabili agli ultimi modelli. Si collega alla porta parallela del PC. Programmatore di PIC in scatola di montaggio - FT386 Ha uno zoccolo ZIF (Zero Insertion Force) a 40 pin e accetta diversi tipi di PIC. Ha costo limitato Funziona col software free EPIC, il quale legge dal PC il file.hex creato con l assemblatore, e lo scrive nella Flash EEPROM

Programmatore a più zoccoli Data la varietà di PIC esistenti, il programmatore può anche comprendere diversi zoccoli (a 8 pin, 18 pin, 40 pin), che sono meno costosi ma meno comodi dello zoccolo ZIF

Tipi di PIC da 8 pin a 40 pin Demoboard Dopo aver programmato il PIC, si può usare una scheda di valutazione o dimostrativa per controllare l esattezza del programma. Una demoboard contiene alcuni semplici dispositivi di ingresso (pulsanti ad esempio) e di uscita (led, relè) e si usa in genere per apprendere i fondamenti della programmazione. Esistono demoboard molto sofisticate e costose (con sensori di temperatura, interfacce di vario tipo, display alfanumerici e grafici) e altre di costo limitato. Dato che la frequenza di clock è di pochi MHz, i circuiti con PIC si possono montare, con qualche precauzione, anche su breadboard millefori senza saldatura. La demoboard FT215-K in scatola di montaggio contiene: 8 led 1 display LCD 1 tastiera a matrice 1 display a 7 segmenti, 2 pulsanti, 2 relè, 1 cicalino piezo tutti controllabili dal PIC per verificare immediatamente il programma appena memorizzato La PROTON BOARD contiene interfacce e anche una breadboard per piccoli montaggi senza saldature

Questi sono alcuni siti dove trovare compilatori in Basic per il PIC, sia a pagamento, sia in versione demo, con limitazioni. http://www.picbasic.co.uk http://www.crownhill.co.uk http://www.picbasic.it http://www.melabs.com http://www.letbasic.com http://www.microengineeringlabs.com Nel sito http://www.picbasic.org è presente l ultima versione del software di programmazione, che sostituisce tutti i precedenti presentati negli anni passati nel sito, perché ha una caratteristica innovativa. L ambiente integrato PROTON DS Proton Development Suite Il sistema più aggiornato disponibile oggi è un ambiente dove è presente: Un compilatore basic Proton+ Un collegamento verso un Programmatore Un ambiente di simulazione basato su una Virtual Evaluation Board

Il compilatore (Proton + Compiler versione 2.1.3 della ditta Crownhill) consente di scrivere programmi in Basic e di tradurli in file.hex, usando il MPASM della Microchip. Il Programmatore di default può essere sostituito da uno a piacere. La board virtuale permette la simulazione a video del circuito: comprende il PIC e alcune periferiche simulate: Temperature sensor PortB Monitor Alphanumeric LCD display 128x64 graphic LCD display Serial terminal 9600 Baud Serial eeprom 16 button Keypad Oscilloscope Variable resistor Uso della Virtual Board Dopo aver scritto il programma Basic, il comando Compile and Program ha un menù dove si può: inviare il codice creato al Programmatore di default installare un nuovo Programmatore (ad esempio EPIC) inviare il codice al Labcenter Electronics PROTEUS, ossia ad una delle possibili Virtual Board. Ognuno dei PIC supportati ha una diversa Virtual Board:

Questa è una parte della Virtual Board per il PIC16F628A (PIC16_18PIN). E presente un PORTB Monitor con il quale è possibile verificare la correttezza di sequenze programmate di azionamenti di carichi (led o relè) collegati sulla porta B. Questa è invece una parte della Virtual Board per PIC16F877 (PIC16_ALCD), comprendente tra l altro un display alfanumerico, un tastierino numerico, dei carichi, un oscilloscopio per visualizzare forme d onda.

La suite intera ha un costo significativo. Esiste anche una versione LITE di libero uso, scaricabile dal sito, con importanti limitazioni, che non impediscono però un uso didattico efficace: Programmi Basic con massimo 50 linee di codice La virtual board non è collegabile a piacere Sono supportati solo 4 tipi di PIC: 1. 12C508 (8 pin.. 12 bit) 2. 12F675 (8 pin.. 14 bit) 3. 16F628A (18 pin.. 14 bit) (sostituisce il 16F84) 4. 16F877 (40 pin.. 14 bit) Dato che non è più supportato il classico 16F84, occorre un programmatore adatto.