|
Il bello della Microchip è che sforna nuovi modelli di PIC in continuazione, aggiungendo ogni volta nuove funzionalità e incrementando la dimensione della memoria programma, della RAM e dell'EEPROM. In ogni caso l'investimento fatto, in termini di ambiente di sviluppo (HW e SW) e di conoscenza, non è mai perso, si aggiungono sempre nuove funzioni a quelle già note.
All'interno della stessa famiglia poi, c'è anche una grossa compatibilità a livello elettrico, permettendo di passare al modello più potente con poche modifiche.
La controller board del Mark III usata per Dino, nata per il PIC16F877, è perfettamente compatibile con il PIC18F452.
Lo sforzo principale è stato quello di usare il compilatore C18 di Microchip al posto del PICC di Hi-Tech, entrambi usati nella versione lite (gratuita), in queste versioni il C18 ha molte meno limitazioni dell'equivalente Hi-Tech rispetto alle versioni full. Il C18 è più rispettoso delle specifiche ANSI confrontato con il PICC e quindi bisogna essere più attenti (tra le altre cose) alle inizializzazioni delle variabili. Entrambi sono comunque molto vicini all'ANSI C stsandard, il porting non è stato quindi assolutamente complicato.
Una volta verificata la compatibilità base senza alcuna modifica, ho cominciato ad usare la maggiore potenza cambiando il quarzo da 20 MHz con uno da 10MHz. In questo modo, moltiplicando per 4 la frequenza con il PLLx4 interno, il clock diventa a 40MHz e quindi la MCU lavora a 10Mips. La seconda modifica ha riguardato la gestione degli interrupt, molto più potente, che mi ha risolto molti problemi con gli encoder.
Appena finita la migrazione al 18F452, questo è andato fuori produzione, sostituito dal 18F4520 e compatibile con l'ancora migliore 18F4525, fratello minore del 18F4620.
In questo caso il passaggio è stato ancora più facile, il compilatore è lo stesso, ho una quantità di memoria sia per il programma che per le variabili che non mi fa più preoccupare per ogni flag che aggiungo e posso attivare tre breakpoint contemporamente durante il debug con l'ICD2. Ci sono più modi di lavorare con il PWM ma la configurazione a default consente una modalità compatibile con i precedenti modelli.
L'unica parte di codice che deve essere assolutamente cambiata per essere compatibili con i modelli precedenti, è quella relativa agli A/D converter.
Nella tabella seguente ho riassunto le differenze tra i registri di configurazione dell'A/D converter dei diversi PIC.
Fare riferimenti ai manuali Microchip per i dettagli.
|
|
|