Versione N 1.0. LaurTec. Migrare un progetto da Freedom II a Freedom III. Autore : Mauro Laurenti ID: PJ7014-M-IT. Copyright 2016 Mauro Laurenti 1/15

Documenti analoghi
Versione N 1.1. LaurTec. KIT di espansione sistemi serie Freedom. Manuale Utente. Autore : Mauro Laurenti ID: PJ7010-IT. Copyright 2016 Mauro Laurenti

Versione N 1.0a LaurTec Scheda Millefori Model A Autore : ID:

Versione N 2.1. LaurTec. KIT di espansione sistemi serie Freedom. Manuale Utente. Autore : Mauro Laurenti ID: PJ7007-IT. Copyright 2016 Mauro Laurenti

LaurTec. KIT di espansione sistemi serie Freedom. Manuale Utente. Versione N 1.1. Autore : Mauro Laurenti ID: PJ7011-IT

LaurTec. Scheda LED con Pulsanti. Versione N 1.0. Autore : Mauro Laurenti. ID: PJ7004-IT

LaurTec. Scheda di controllo motori DC e Stepper bipolari. Versione N 1.0. Autore : Mauro Laurenti.

Versione N 1.0. LaurTec. minicom RS232. Autore : Mauro Laurenti ID: PJ4004-IT. Copyright 2013 Mauro Laurenti

Versione N 1.0. LaurTec. minicom Serie. Manuale Utente. Autore : Mauro Laurenti ID: PJ4000-IT. Copyright 2013 Mauro Laurenti

LaurTec. Alimentatore variabile 1.2V-25V, 1.5A. Versione N 1.0. Autore : Mauro Laurenti.

La comunicazione con l esterno

LaurTec. Prototipi su schede millefori. Millefori serie. Versione N 2.0. Autore : Mauro Laurenti. info.laurtec@gmail.

LaurTec. Alimentatori stabilizzati 5V 12V, 1A. Versione N 1.0. Autore : Mauro Laurenti.

Versione N 1.0. LaurTec. Scheda Millefori Model A. Autore : Mauro Laurenti. info.laurtec@gmail.com ID: PJ7013-IT. Copyright 2012 Mauro Laurenti

Versione N 1.0. LaurTec. minicom Relays. Autore : Mauro Laurenti ID: PJ4002-IT. Copyright 2013 Mauro Laurenti 1/16

LaurTec. RS232-CAN Protocol Converter. Versione N 1.0. Autore : Mauro Laurenti. info.laurtec@gmail.com ID: PJ2003-IT

M. Electronics. M.M.Electronics - Michele Marino - Stadio per il pilotaggio in corrente V 0.

LaurTec. Alimentatore Programmabile. Versione N 1.0. Autore : Mauro Laurenti. ID: PJ2003-IT

Davide Gennaretti, Matteo Nicolini

Versione N 1.1. LaurTec. Freedom III. Manuale Utente. Autore : Mauro Laurenti ID: PJ7014-IT. Copyright 2016 Mauro Laurenti

TUTORIAL GPL_BENZINA CON PIC16F1826 (UTILIZZO DELL ADC)

Apparecchiatura Kit KS.ino2.1 Preliminare 0.1c

Versione N 2.0. LaurTec. LaurTec PIC Bootloader. Autore : Mauro Laurenti ID: PJ11005-IT. Copyright 2016 Mauro Laurenti 1/17

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic.

17^ parte : Bluetooth Shield SLD63030P. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

EURO5 PASSTHRU RIPROGRAMMAZIONE DI CENTRALINE

M. Electronics. M.M.Electronics - Michele Marino - Controllo analogico di una tastiera a matrice V 0.

Manuale EnOcean V 0.1

Prefazione...IX. Capitolo 1 - La famiglia di Arduino...1

Arduino/Raspberry Board and GSM Library

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

Alimentatore master. Introduzione

ARCHIDUINO project. Manuale scheda CPU

Real Time Clock, in I2C BUS, Provvisto di RAM.

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Manuale d uso e manutenzione

GMB HR84 MANUALE TECNICO. grifo. grifo Mini BLOCK Housing, 8 Ingressi Opto, 4 Uscite a Relè GMM 886. grifo Mini Modulo Microchip PIC16F886

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

CORSO DI PROGRAMMAZIONE MICROCONTROLLORI

LaurTec. Scheda di controllo per 5 Servi. Versione N 1.0a. Autore : Mauro Laurenti. ID: PJ3002-IT

Manuale Beckhoff 7300 V 0.1

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Versione N 1.0. LaurTec. Orologio con display 7 segmenti. 4 Digits Clock. Autore : Ivo Colleoni ID: UP0012-IT. Copyright 2016 Mauro Laurenti 1/19

Protocollo seriale di comunicazione per la scheda SX16B Versione 2.02

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

MANUALE PER L OPERATORE Versione software: 1.0

LINEE GUIDA PER LA CONNESSIONE DI MCP PLUS A VIDEOTERMINALI PROFACE SERIE GP

Le sintonie elettroniche per l ATV

Week Programmer v2.1 Week Programmer Rev2.1

DIMMER SX13 REL.1.1. Guida Utente

MANUALE TECNICO USB-OPTO485 Convertitore USB - RS232/RS485

Versione N 1.1. LaurTec. Progetto di un Orologio Digitale. Autore : Ivo Colleoni ID: UP0009-IT. Copyright 2015 Mauro Laurenti

Progetto 3: Termometro con convertitore A/D

Introduzione al PICmicro 16F877 PIC16F877

GAB H844 MANUALE TECNICO. grifo. grifo Analog BLOCK Housing, 8 in analogici, 4 in opto, 4 out Relè GMM 886. grifo Mini Modulo PIC16F886A

Samsung SSD Data Migration v.3.1. Introduzione e Guida all'installazione

Perché usarlo. Ritenete sicuro tenere i vostri programmi pezzo nella memoria del controllo?

Specifiche tecniche Generale: Contenuto della confezione:

Versione N 1.5. LaurTec. Freedom II. Manuale Utente. Autore : Mauro Laurenti ID: PJ7002-IT. Copyright 2016 Mauro Laurenti

CALCOLATORI ELETTRONICI II

SISTEMA DI TRASFERIMENTO STATICO TRIFASE

Architetture dei sistemi elettronici 14. Il microcontrollore

Versione N 1.0c LaurTec Metro ad Ultrasuoni Autore : ID:

LaurTec. Serratura Elettronica Microless. Versione N 1.0. Autore : Mauro Laurenti. ID: PJ7006-IT

LO HAI MAI REALIZZATO CON UN PIC? - I PICMICRO E I DISPLAY GRAFICI (PRIMA

Protocollo seriale di comunicazione per la scheda SX16B Versione 2.0

OPEN DRIVE OPEN DRIVE

GMB HR246 MANUALE TECNICO. grifo. grifo Mini BLOCK Housing, 24 ingressi opto, 16 uscite Relè GMM AM644. grifo Mini Modulo AT mega 644

MANUALE OPERATIVO LETTORE / SCRITTORE MIFARE RDM1 versione OEM

EcoRemote SISTEMA DI GESTIONE DI UNA STAZIONE DI MONITORAGGIO DELLA QUALITÀ DELL ARIA. Ingegneria dei sistemi

Domino - Contatto. BootTools - Aggiornamento Firmware dei moduli Domino - Contatto

ANXAPIC18 v1 Development Board

Ditec DMCS Manuale d uso del sistema di monitoraggio e controllo porta

LO HAI MAI REALIZZATO CON UN PIC? - L'AMBIENTE DI SVILUPPO MPLAB X 1

MANUALE DI INSTALLAZIONE

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

USER Manual. Version Date: Right reserved

LAMPEGGIO LED TRAMITE TIMER INTERRUPT - PARTE 4 1

GAB H844 MANUALE TECNICO. grifo. grifo Analog BLOCK Housing, 8 in analogici, 4 in opto, 4 out Relè GMM AM1284. grifo Mini Modulo AT mega 1284P

OBDH e DTS. - Progetto EduSAT - I.I.S.S. G. MARCONI - Piazza Poerio 2 - BARI ELOBORAZIONE DEI DATI DI BORDO DEL DIMOSTRATORE TECNOLOGICO SATELLITARE

Il tuo manuale d'uso. SONY ERICSSON W200I

Controllori programmabili serie AC31 Dati applicativi serie 90

ICCS Sistemi intelligenti di controllo e comando 5.25

Workshop Teachers For Teachers settembre 2013

Versione N 1.0. LaurTec. Freedom III. Montaggio e Collaudo della scheda. Autore : Mauro Laurenti ID: PJ7014-AT-IT. Copyright 2016 Mauro Laurenti

Raccolta Test di Laboratorio di Sistemi a Microcontrollore

Quaderni di Elettronica corso per creativi ed inventori

Aggiornamenti del software Guida per l'utente

Dell UltraSharp U2518D/U2518DX/U2518DR Dell Display Manager Guida all uso

Manuale tecnico. Rivelatore movimento IR con crepuscolare Easy GW GW GW

tramite software. Versione base con 955 utenti a bordo.

SGM2. Manuale dell'utente

EEPROM SERIALI IN I2C BUS.

Listino Prezzi 2016 Riservato Professionisti Prezzi IVA esclusa

MANUALE UTENTE P/N: GW-IMP-WEB-1(-S) Edizione 1.0

Transcript:

Versione N 1.0 Migrare un progetto da Freedom II a Freedom III Autore : Mauro Laurenti ID: PJ7014-M-IT Copyright 2016 Mauro Laurenti 1/15

Informativa sul diritto d'autore Avvertenze Marcatura CE Come prescritto dall'art. 1, comma 1, della legge 21 maggio 2004 n.128, l'autore avvisa di aver assolto, per la seguente opera dell'ingegno, a tutti gli obblighi della legge 22 Aprile del 1941 n. 633, sulla tutela del diritto d'autore. Tutti i diritti di questa opera sono riservati. Ogni riproduzione ed ogni altra forma di diffusione al pubblico dell'opera, o parte di essa, senza un'autorizzazione scritta dell'autore, rappresenta una violazione della legge che tutela il diritto d'autore, in particolare non ne è consentito un utilizzo per trarne profitto. La mancata osservanza della legge 22 Aprile del 1941 n. 633 è perseguibile con la reclusione o sanzione pecuniaria, come descritto al Titolo III, Capo III, Sezione II. A norma dell'art. 70 è comunque consentito, per scopi di critica o discussione, il riassunto e la citazione, accompagnati dalla menzione del titolo dell'opera e dal nome dell'autore. L'autore si riserva il diritto di aggiornare la documentazione tecnica e le specifiche del sistema, senza preavviso. Si raccomanda pertanto di controllare periodicamente sul sito www..it la presenza di nuove versioni e aggiornamenti del prodotto. Tutti i marchi citati in quest'opera sono dei rispettivi proprietari. Il KIT descritto nell'articolo può essere utilizzato in molteplici applicazioni. La responsabilità sul prodotto è limitata al KIT in se e non all'applicazione finale realizzata. Chiunque decida di far uso delle nozioni riportate nel seguente articolo o decida di realizzare i circuiti proposti, è tenuto a prestare la massima attenzione in osservanza alle normative in vigore sulla sicurezza. L'autore declina ogni responsabilità per eventuali danni causati a persone, animali o cose derivante dall'utilizzo diretto o indiretto del materiale, dei dispositivi e del software presentati o ai quali si rimanda nella seguente documentazione. L'autore ringrazia anticipatamente per la segnalazione di ogni errore. Il progetto PJ7014 (Freedom III) è conforme alla direttiva europea: 2011/65/UE Relativa alla restrizione di determinate sostanze pericolose nelle apparecchiature elettriche ed elettroniche. Smaltimento Secondo la Direttiva Europea 2012/19/EU tutti i dispositivi elettrici/elettronici devono essere considerati rifiuti speciali e non devono essere gettati tra i rifiuti domestici. La gestione e lo smaltimento dei rifiuti elettrici/elettronici viene a dipendere dalle autorità locali e governative. Un corretto smaltimento dei rifiuti permette di prevenire conseguenze negative per l'ambiente e ai suoi abitanti. È obbligo morale, nonché legale, di ogni singolo cittadino, di attenersi alla seguente Direttiva. Contatti Per maggiori informazioni è possibile contattare Mauro Laurenti al sito www..it sezione contatti o inviare richieste scritte all'indirizzo : Etichetta indirizzo. Fornito all'acquisto del prodotto. Copyright 2016 Mauro Laurenti 2/15

Indice Introduzione...4 Caratteristiche del sistema Freedom III...4 Hardware rimosso da Freedom III...5 Migrare un progetto da Freedom II a Freedom III...6 Modifiche relative all'uso del PIC18F46K22...6 Modifica 1 Microcontrollore usato nel progetto...6 Modifica 2 Configuration Words...6 Modifica 3 Modulo ADC...6 Modifica 4 Modulo Clock...8 Modifica 5 Modulo EUSART...8 Modifica 6 Modulo SPI/I2C...8 Modifica 7 PORTB Resistori di Pull-up...8 Modifica 8 PORTB Interrupt on Change...8 Modifica 9 Timer...9 Modifiche relative all'uso del nuovo Hardware...10 Modifica 1 Uso del modulo LCD...10 Modifica 2 Uso del modulo RTCC...10 Modifica 3 Uso del modulo USB...11 Modifica 4 Uso del modulo RS232...11 Modifica 5 Uso dei sensori analogici...11 Esempi di programmazione...12 Bibliografia...14 History...15 3/15

Introduzione Il sistema di sviluppo Freedom III introduce alcuni cambiamenti Hardware che richiedono al software sviluppato per Freedom II alcune modifiche prima di poter essere eseguito sulla scheda di sviluppo Freedom III. I miglioramenti apportati nella scheda rappresentano il riassunto dei feedback di numerosi utenti della scheda Freedom II ed un adeguamento alle esigenze odierne. Caratteristiche del sistema Freedom III Il sistema Freedom III differisce da Freedom II per tre aspetti: Nuove funzioni. Miglioramento e aggiornamento dell'hardware. Cambiamenti di tipo pratico. Tra le nuove funzioni si hanno: Supporto del protocollo RS485. Nuovi moduli interni al PIC18 Supporto del connettore di espansione LTB1. Supporto del protocollo USB per mezzo di un convertitore USB-UART. Supporto del modulo LCD per mezzo del bus I2C. Due porte SPI/I2C. Due porte UART Per supportare le nuove funzioni si è aggiornato l'hardware introducendo un nuovo PIC18 e nuovi integrati, in particolare: Introdotto il PIC18F46K22 in sostituzione del PIC18F4550. Introdotto il PIC18F14K50 (programmato) come bridge USB-UART Introdotto il MAX485 per il supporto del protocollo RS485. Introdotto MCP23008 I/O Extender per pilotare il modulo LCD. Introdotto il RTCC MCP7940M in sostituzione del PCF8563. In particolare i vari integrati sono stati selezionati per le seguenti ragioni: Il PIC18F46K22 introduce più memoria Flash, RAM e una frequenza di clock superiore (fino a 64MHz). Possiede inoltre nuovi moduli non presenti nel PIC18F4550 e possiede due UART e due moduli SPI/I2C. L'uso del PIC18F46K22 sacrifica il modulo USB ma in realtà la presenza del PIC18F14K50 mantiene la flessibilità della porta USB sulla scheda, con il vantaggio di usare il protocollo USB con una semplice interfaccia UART. Il PIC18F14K50 è fornito già programmato. Il MAX485 permettere di supportare, per mezzo del secondo modulo UART, il protocollo RS485. 4/15

L'uso dell'integrato MCP23008 permette di comandare il modulo LCD per mezzo del protocollo I2C. Tale scelta consente di liberare 8 pin del microcontrollore e lasciare maggior flessibilità alle applicazioni dell'utente. L'integrato MCP7940M è stato introdotto come alternativa al PCF8563, il cui package DIL è stato obsoleto. L'integrato MCP7940M è disponibile, nella versione N, con il supporto di una batteria per mantenere l'orario in caso di mancata alimentazione. Tra i cambiamenti di tipo pratico si hanno: Spostamento del sensore di Temperatura. Spostamento del sensore luminoso. Spostamento del connettore di programmazione PR1 sul lato sinistro della scheda. Spostamento del tasto di Reset. Ridotto il numero dei Jumper per impostare le funzioni della scheda. Questi semplici cambiamenti permettono di avere i vari sensori in una zona più accessibile, favorendo applicazioni didattiche. Lo spostamento del connettore PR1 permette di rendere più agevole l'utilizzo del connettore EX1, qualora si faccia uso di schede di espansione. Allo stesso modo il tasto di Reset è stato spostato in una zona facilmente raggiungibile. Hardware rimosso da Freedom III Freedom III introduce nuovo Hardware ma ne sacrifica altro. In particolare è stato rimosso il seguente hardware: CAN Transceiver. Connettore DB9 RS232. Il CAN transceiver è stato rimosso in favore del protocollo RS485, il quale richiede una semplice UART, mentre il CAN transceiver richiede un PIC ad hoc con modulo CAN integrato. Il protocollo RS232 è stato eliminato visto che ora la porta USB possiede un adattatore (bridge) USB-UART, per cui si può usare la porta UART del PIC e la porta COM sul PC. In particolare il bridge USB-UART genera una porta virtuale per mezzo della classe USB CDC. 5/15

Migrare un progetto da Freedom II a Freedom III Le modifiche apportate alla scheda Freedom III, richiedono, al fine di poter utilizzare del software scritto per la scheda Freedom II, alcune modifiche sul software stesso. L'aggiornamento del software viene a dipendere da due tipologie di modifiche apportate alla scheda Freedom III: Nuovo microcontrollore PIC18F46K22. Nuovo Hardware a bordo. In particolare il nuovo Hardware a bordo richiede nuove librerie software. Vediamo il dettaglio delle modifiche richieste per le due categorie di cambiamenti. Modifiche relative all'uso del PIC18F46K22 Le modifiche necessarie al software derivanti dall'uso del PIC18F46K22 sono le seguenti: Modifica 1 Microcontrollore usato nel progetto Bisogna cambiare il PIC selezionato nel progetto MPLAB X da PIC18F4550 in PIC18F46K22. Modifica 2 Configuration Words Dal momento che non si fa più uso del PIC18F4550 le configuration word devono essere cambiate. In particolare per i progetti che fanno uso della Libreria basta cambiare #include PIC18F4550_config.h con #include PIC18F46K22_config.h Per rendere il codice più indipendente dal PIC utilizzato, si consiglia di includere il file LTlib piuttosto che il file di configurazione. Modifica 3 Modulo ADC Il PIC18F46K22 possiede un modulo ADC più flessibile del PIC18F4550, in particolare permette di attivare i singoli canali con minor vincoli del PIC18F4550. Questa flessibilità introduce un registro di attivazione del singolo canale ADC nominato ANSELx ovvero Analog Selection Register. La lettera x viene a dipendere dalla Porta utilizzata. Per poter utilizzare una porta o bit come pin digitale, bisogna porre a 0 il relativo bit del 6/15

registro ANSELx. Una tipica inizializzazione del PIC18F4550 è: // Inizializzo PORTA LATA = 0x00; TRISA = 0xFF; // Inizializzo PORTB LATB = 0x00; TRISB = 0b11111111; // Inizializzo PORTC LATC = 0x00; TRISC = 0b10111100; // Inizializzo PORTD LATD = 0x00; TRISD = 0b00000000; // Inizializzo PORTE LATE = 0x00; TRISE = 0xFF; nel caso del PIC18F46K22, non volendo usare alcun ingresso analogico, le porte sono inizializzate nel seguente modo. // Inizializzo PORTA LATA = 0x00; ANSELA = 0x00; TRISA = 0xFF; // Inizializzo PORTB LATB = 0x00; ANSELB = 0x00; TRISB = 0b11111111; // Inizializzo PORTC LATC = 0x00; ANSELC = 0x00; TRISC = 0b10111100; // Inizializzo PORTD LATD = 0x00; ANSELD = 0x00; TRISD = 0b00000000; // Inizializzo PORTE LATE = 0x00; ANSELE = 0x00; TRISE = 0xFF; L'utilizzo della seguente istruzione non è più necessaria. // Set Analog Input come I/O ADCON1 = 0x0F; Se ci si scorda di impostare i registri ANSELx il programma potrebbe non funzionare in maniera corretta. 7/15

Modifica 4 Modulo Clock Il modulo del clock del PIC18F4550 differisce dal modulo clock del PIC18F46K22, per cui eventuali impostazioni devono essere cambiane in maniera opportuna per il PIC18F46K22. Modifica 5 Modulo EUSART Se si fa uso della libreria LTlib ( Library) non sono richieste modifiche. Facendo uso delle librerie Microchip ho riscontrato alcuni problemi di integrazione. Si fa presente che il PIC18F46K22 diversamente dal PIC18F4550 possiede due moduli EUSART, per cui bisogna specificare il nome del modulo con cui si vogliono inviare i dati. Modifica 6 Modulo SPI/I2C Allo stesso modo del modulo EUSART bisogna fare attenzione al fatto che il PIC18F46K22 possiede due moduli SPI/I2C per cui per il loro corretto utilizzo bisogna impostare i registri corretti. Se si fa uso della libreria LTlib ( Library) non sono richieste modifiche. Modifica 7 PORTB Resistori di Pull-up Il PIC18F46K22 come il PIC18F4550 ha i resistori di pull-up sulla PORTB. Diversamente dal PIC18F4550, il PIC18F46K22 ha la possibilità di abilitare i singoli resistori per mezzo del registro WPUB. Tale funzione è comunque compatibile con il PIC18F4550, infatti per abilitare i resitori bisogna comunque impostare a 0 il bit RBPU del registro INTCON2, come per il PIC18F4550. In particolare il registro WPUB di default vale 0xFF per cui abilitando i resistori di pull-up si abilitano automaticamente tutti, a meno di non impostare manualmente il registro WPUB. In ogni modo si consiglia di impostare sempre il valore WPUB per cui bisogna cambiare il codice di abilitazione dei resistori da: in // Abilita i resistori di pull-up sulla PORTB INTCON2bits.RBPU = 0x00; // Abilita i resistori di pull-up sulla PORTB WPUB = 0xF0; INTCON2bits.RBPU = 0x00; Modifica 8 PORTB Interrupt on Change Allo stesso modo del PIC18F4550, il PIC18F46K22 possiede la funzione Interrupt on Change, sui pin RB4-RB7. L'abilitazione delle interruzioni e relativo flag di interruzione è compatibile con il PIC18F4550, ma viene offerta la possibilità di abilitare la funzione sul singolo pin, mascherando eventualmente gli altri. Questo viene fatto per mezzo del registro IOCB (bit 4-7). 8/15

Attualmente il datasheet del PIC18F46K22 ha un errore perché segnala che il valore di IOCB dopo un POR, BOR vale 0xF0, mentre in realtà vale 0x00. Per tale ragione per abilitare la funzione Interrupt on Change bisogna obbligatoriamente abilitare la funzione all'interno del registro IOCB. Il problema potrebbe essere legato al compilatore o all'inizializzazione del PIC stesso. Oltre all'avere riscontrato il problema non ho fatto ulteriore Debug. Per abilitare le interruzioni, ovvero la funzione Interrupt on Change, bisogna abilitare in ogni modo il bit RBIE del registro INTCON, ma nel caso specifico del PIC18F46K22 bisogna cambiare il codice da: in // Abilito le interruzioni su PORTB INTCONbits.RBIE = 1; // Abilito le interruzioni su PORTB IOCB = 0xF0; INTCONbits.RBIE = 1; Modifica 9 Timer Il PIC18F46K22 possiede più Timer del PIC18F4550 ed in particolare i Timer 1,3 e 5 possiedono il Gate Control. Disattivando tale funzione per mezzo del bit TMRxGE del registro TxGCON, i Timer sono simili a quelli presenti nel PIC18F4550. I registri di configurazione sono leggermente diversi per cui sono necessari alcuni cambiamenti del software al fine di avviare il conteggio. In particolare sono presenti i due bit TMRxCS che vanno impostati per poter decidere la sorgente del Clock utilizzata. Per l'utilizzo del Timer in combinazione con un modulo CCP è necessario attivare il relativo bit enable nel registro CCPTMRS0 e CCPTMRS1. Questi registri permettono di rendere l'associazione dei vari Timer e il modulo CCP più flessibile rispetto al PIC18F4550. Per maggiori dettagli sul loro utilizzo si rimanda agli esempi dei relativi moduli Timer e CCP. Per l'utilizzo dei vari moduli interni, al fine di rendere il codice più indipendente dal PIC utilizzato, si consiglia di utilizzare la relativa libreria Library. 9/15

Modifiche relative all'uso del nuovo Hardware Freedom III introduce del nuovo Hardware la cui gestione richiede l'utilizzo di librerie diverse. Qualora si siano utilizzate le librerie, per mezzo di una semplice inclusione di nuove librerie si può mantenere il codice invariato, infatti diverse librerie, pur gestendo integrati diversi mantengono il nome delle funzioni invariato, favorendo la migrazione da un integrato ad un altro. Le modifiche necessarie per supportare il nuovo Hardware sono le seguenti: Modifica 1 Uso del modulo LCD Freedom II gestisce il modulo LCD per mezzo della PORTD. Freedom III rende invece disponibili i pin della PORTD facendo uso dell'i/o expander MCP23008. Programmi che fanno uso del modulo LCD, possono essere migrati semplicemente cambiando l'header file da: a #define LCD_DEFAULT #include <LCD_44780.h> #include <LCD_44780.c> #include <LCD_44780_I2C.h> #include <LCD_44780_I2C.c> e includere la libreria aggiuntiva dell'integrato MCP23008 prima della libreria LCD, ovvero: #include <MCP2300x.h> #include <MCP2300x.c> Modifica 2 Uso del modulo RTCC Freedom II utilizza il RTCC modello PCF8563 mentre Freedom III utilizza l'integrato MCP7940M. Per poter migrare il software è necessario cambiare la libreria inclusa da: a #include <PCF8563.h> #include <PCF8563.c> #include <MCP7940.h> #include <MCP7940.c> Nel codice bisogna apportare un semplice cambiamento della funzione di inizializzazione, cambiando: in PCF8563_initialize (20,100); RTCC_initialize (100); 10/15

La frequenza del cristallo e il baudrate possono essere diversi a seconda dell'applicazione. In particolare nella nuova libreria, il valore del cristallo è definito nel file LTlib. Modifica 3 Uso del modulo USB Freedom II è fornita con il PIC18F4550 che possiede il modulo USB integrato, mentre Freedom III è fornita con il PIC18F46K22, il quale non possiede il modulo USB, per cui applicazioni scritte facendo uso dello stack USB devono essere cambiate. In particolare Freedom III possiede il PIC18F14K50 per supportare il protocollo USB. Il microcontrollore è già programmato per mezzo della classe USB CDC, ed è collegato al PIC18F46K22 per mezzo del modulo EUSART1. Questo significa che la comunicazione via USB è supportata semplicemente facendo uso del modulo EUSART del PIC18F46K22. Modifica 4 Uso del modulo RS232 Freedom II supporta il protocollo RS232 per mezzo del modulo UART e il transceiver MAX232. Freedom III supporta la porta seriale virtuale per mezzo del protocollo USB CDC Class. Sebbene non sia richiesta alcuna variazione del codice, si consiglia di migrare i programmi facendo uso della libreria LTlib. In particolare la libreria supporta sia il modulo EUSART1 che EUSART2 in comunicazione asincrona. Modifica 5 Uso dei sensori analogici Freedom II possiede tre sensori analogici: Sensore Temperatura (AN2) Sensore Luminoso (AN0) Trimmer (AN1) Freedom III supporta gli stessi sensori ma in posizioni differenti: Sensore Temperatura (AN5) Sensore Luminoso (AN0) Trimmer (AN1) La diversa posizione del sensore di temperatura è stata scelta al fine di tenere liberi alcuni pin con funzioni speciali. Mentre il PIC18F4550 non permette di abilitare l'ingresso analogico AN5 senza dover pure abilitare AN4, AN3, AN2, AN1, AN0, il PIC18F46K22 fornisce la flessibilità di attivare singolarmente i singoli ingressi analogici. Il modulo ADC del PIC18F46K22 differisce dal PIC18F4550, per i dettagli si rimanda al datasheet e ai semplici esempi del testo XC8 Step by Step. Dopo aver apportato le varie modifiche, prima di poter ricompilare il progetto bisogna eseguire una operazione di Clean and Build in maniera da cancellare i vecchi file del progetto associati al PIC precedente. 11/15

Esempi di programmazione Il testo XC8 Step by Step fornisce numerosi esempi di programmazione basati su Freedom II e PIC18F4550. Ogni esempio del testo è inoltre disponibile per il download, sia per Freedom II che Freedom III, per cui si rimanda a questi esempi per una dettagliata analisi delle modifiche necessarie per il porting del software. 12/15

Indice Alfabetico A ADC...6 Analog Selection Register...6 ANSELA...7 ANSELB...7 ANSELC...7 ANSELD...7 ANSELE...7 ANSELx...7 B BOR...9 C Clean and Build...11 configuration word...6 E EUSART...8 EUSART1...11 EUSART2...11 G Gate Control...9 I I2C...8 INTCON...9 INTCON2...8 Interrupt on Change...9 IOCB...9 L LTlib...8, 11 M MAX232...11 MCP7940M...10 MPLAB X...6 P PCF8563...10 PIC18F14K50...11 POR...9 R resistori di pull-up...8 RTCC...10 S Sensore Luminoso...11 Sensore Temperatura...11 SPI...8 T TMRxGE...9 Trimmer...11 U USB...11 USB CDC Class...11 W WPUB...8 X XC8 Step by Step...12 13/15

Bibliografia [1] www..it : sito ufficiale della scheda PJ7014 (Freedom III) dove poter scaricare ogni aggiornamento e applicazione. Il PCB e il KIT sono disponibili alla sezione servizi. [2] Libreria LTlib : Libreria per PIC fornita da. [3] www.microchip.com : sito dove scaricare i datasheet del PIC18F46K22. 14/15

History Data Versione Autore Descrizione Cambiamento 31/10/16 1.0 Mauro Laurenti Versione Originale. 15/15