Tutorials - PIC18

 

Passare da PIC16 a PIC18

 



Come passare da mid range a enhanced

Per chi non intende fermarsi su prodotti datati,  ma vuole seguire lo svilupparsi della tecnologia e sfruttare nuove prestazioni, si presenta il problema di come sostituire i processori mid-range PIC16 con i PIC18 in una applicazione già esistente.

Questo passaggio non è drammatico, in quanto sia mid-range che enhanced appartengono alla stessa filosofia di progetto e Microchip ha cercato per quanto possibile di rendere simili i due prodotti.

Un primo bonus è dato dal fatto che i chip nei contenitori hanno praticamente la stessa  disposizione tra pin e funzioni : tra un 16F877A e 18F4550 c'è la piena compatibilità pin to pin, ovvero i PORT, le alimentazioni, i pin dell' oscillatore, il reset, si trovano nelle stesse posizioni. Quindi i chip sono intercambiabili sulla stessa base hardware a livello delle funzioni primarie.

In secondo luogo, le differenze software tra 16F e 18F sono sensibili, ma non tanto da impedire la traslazione di un progetto dall' una all' altra in modo abbastanza indolore. 

Microchip dedica 2 application notes (AN) alla migrazione da mid (16F) e high (17) range verso gli enhanced (18F) e sono rispettivamente l' AN716 e l' AN726, scaricabili gratuitamente.

Vediamo qui una guida rapida che dia le linee generali per facilitare il passaggio, tenendo ben presente che sarà comunque necessario prendere visone del foglio dati del nuovo componente e 


 

Una guida rapida

 

In generale, la conversione consiste nei seguenti passi :

  • verificare che l' oscillatore esterno, se usato, funzioni regolarmente

  • usare costanti in bank0 ed assegnare indirizzi a 12 bit

  • eliminare ogni riferimento a RP0 e RP1 e  BANKSEL/BANKISEL

  • modificare la lettura delle tabelle

  • modificare nomi, bit e locazioni dei registri speciali

  • eliminare gli indirizzamenti con il simbolo $ e sostituirli con label

  • se è abilitato il Brown-out Reset, selezionare il livello desiderato nel CONFIG iniziale

  • impostare nel CONFIG iniziale l' assegnazione dei PORTB come GPIO digitali

  • verificare che i nomi di eventuali macro non siano in conflitto con i nomi delle nuove istruzioni del set 18F, nè che eseguano operazioni improprie per il nuovo ambiente.

  • eliminare gli pseudo opcodes accettati da MPASM per i mid-range

  • nei test su bit e files verificare la differente risposta dello STATUS alle varie situazioni

In questo modo è possibili convertire la maggior parte dei programmi con un minimo di interventi sul sorgente.

Volendo, si possono usare utilmente le prestazioni addizionali della famiglia 18F :

  • modi oscillatore speciali senza quarzo esterno

  • system clock switch per ridurre il consumo

  • più memoria programma e dati disponibile

  • pin addizionali di interrupt

  • priorità degli interrupt

  • accesso allo stack e funzioni speciali di stack

  • istruzione RESET

  • Timer 0 a 8/16 bit

  • quarto timer disponibile

  • istruzioni del set esteso

Inoltre è essenziale verificare le differenze nelle funzioni comuni, come CCP, moduli seriali, moduli AD, ecc.
In generale, le funzioni speciali degli enhanced conservano in qualche modo una possibilità di "legacy" con le analoghe dei mid-range, per cui, trascurando di usare le prestazioni enhanced, possono essre praticamente impiegate identicamente.

Ad esempio, negli enhanced il Timer0 può essere usato a 16 bit, ma, escludendo questa possibilità, opera come l' equivalente non-enhanced. Così pure il modulo convertitore AD dispone di un automatismo per il tempo di acquisizione, ma, se non viene usato, il sorgente mid-range è facilmente adattabile.

Solitamente questi moduli la configurazione di default è proprio quella "legacy" per cui , non volendone utilizzare le funzioni estese, le modifiche al sorgente saranno limitate.

Vediamo qualche dettaglio dei punti salienti da tenere sotto controllo nel passare una applicazione funzionante su PIC16 ad un PIC18F, senza la pretesa di poter fornire una guida adeguata per ogni possibile circostanza.

 


 

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 08/11/10.