BaBBuino:
Giusto per cazzeggio, dovendo confrontare un ATMega328 contro un pari livello della serie PIC, che Chip dovrei prendere in considerazione?
Con uno qualunque della serie 18 che possiede la stessa quantità di ram/flash, tanto per darti una sigla 18F2520 per i 28 pin oppure 18F4520 per i 40/44 pin, se vuoi più memoria 18F2620/18F4620, se vuoi la USB hardware 18F2550/18F4550.
La serie 16 è vecchiotta, è normale che non può tenere il passo con gli AVR recenti, in teoria sarebbe da considerare obsoleta però esistono una miriade di applicazioni che la utilizzano e finché c'è richiesta di mercato va da se che Microchip continua a produrla.
BaBBuino:
Ma il fatto che lavorino a 1/4 di Fosc, quindi con un MIPS 4 volte inferiore, non li rende intrinsecamente più lenti di un ATMega?
La serie 18 ha un pll che moltiplica x4 la frequenza del quarzo, quindi 10 Mhz = 40 Mhz interni = 10 Mips reali, a differenza degli AVR i pic hanno la stragrande maggioranza delle istruzioni che richiedono solo un ciclo macchina, pochissime due cicli macchina, sugli AVR oltre la metà delle istruzioni richiede due cicli macchina, alcune richiedono da 3 a 4 cicli macchina, questa cosa pesa notevolmente sulle prestazioni reali degli AVR.
In pratica un pic con clok a 10 Mhz è veloce quanto un AVR con clock a 20 MHz, inoltre alcuni modelli di pic serie 18, p.e. il 18Fx450, hanno un sistema di pll e prescaler che permette di utilizzare quasi qualunque valore di quarzo, p.e. 4 MHz, per ottenere la massima frequenza operativa con sensibili vantaggi per le emi.
BaBBuino:
Ma il fatto che lavorino a 1/4 di Fosc, quindi con un MIPS 4 volte inferiore, non li rende intrinsecamente più lenti di un ATMega?
La serie 18 ha un pll che moltiplica x4 la frequenza del quarzo, quindi 10 Mhz = 40 Mhz interni = 10 Mips reali, a differenza degli AVR i pic hanno la stragrande maggioranza delle istruzioni che richiedono solo un ciclo macchina, pochissime due cicli macchina, sugli AVR oltre la metà delle istruzioni richiede due cicli macchina, alcune richiedono da 3 a 4 cicli macchina, questa cosa pesa notevolmente sulle prestazioni reali degli AVR.
In pratica un pic con clok a 10 Mhz è veloce quanto un AVR con clock a 20 MHz, inoltre alcuni modelli di pic serie 18, p.e. il 18Fx450, hanno un sistema di pll e prescaler che permette di utilizzare quasi qualunque valore di quarzo, p.e. 4 MHz, per ottenere la massima frequenza operativa con sensibili vantaggi per le emi.
Un' altra cosa importante, la serie 18 hanno 2 livelli di interrupt.
BaBBuino:
Cmq immagino che non costino 2 lire come il 328, e sempre immagino che Atmel abbia dei pari concorrenti.
A dire il vero costano di meno
Atmel non ha la stessa vastità di modelli, molti verticalizzati su applicazioni specifiche, come Microchip, è uno dei punti di forza dei pic.
Se poi mettiamo in campo i dsPIC33, costano solo poco di più dei pic18, allora non c'è proprio storia, 16 bit di word, core dsp, 40 Mips effettivi, ram e flash a volontà, DMA, una marea di periferiche molto performanti, pin assegnabili a piacere alle periferiche (sopratutto su i modelli con pochi pin), moltiplicatore e divisore hardware, supporto hardware per i fixed point e tante altre cose.
Un dsPIC33 può battere in performance un ARM7 @60 MHz, sopratutto se si parla di calcoli matematici complessi.
Non per scatenare una faida pic vs avr, però se Microchip è il leader assoluto del mercato MCU, parliamo di oltre il 50% in mano sua, un motivo c'è
Solo Samsung compra quasi un miliardo di mcu Microchip (assortite tra i vari modelli) ogni anno, questo per darti un'idea delle dimensioni del mercato, dei fatturati di queste aziende, e come un prodotto come Arduino sia in realtà una piccola fetta di mercato come numero di mcu vendute.
BaBBuino:
OK, mi sto ricredendo. I PIC non sono poi così porcheria.
Non dovrei dirlo, però i pic sono meglio degli AVR
Se devo iniziare a smanettarci un po' cosa mi serve? Anche senza partire proprio dal livello zero...
Ti consiglio l'acquisto di un Pickit 3 come programmatore, permette anche il debugger hardware, come ambiente di sviluppo MPLAB se usi Windows oppure MPLABX per Mac OS e Linux, attualmente MPLABX è ancora un prodotto nuovo e soffre di diversi problemi di gioventù, ecco perché ti consiglio un prodotto maturo come MPLAB per Windows, comunque la migrazione verso MPLABX sarà un obbligo entro pochi anni, in tutti i casi i progetti sviluppati con MPLAB sono importabili al 100% sotto MPLABX.
Come compilatore puoi scegliere se usare il C18 di Microchip, ottimo ma prossimo al pensionamento, oppure il neonato XC8, supporta tutte le famiglie di pic 8 bit, quest'ultimo è derivato dal C Hitec che è il miglior compilatore in assoluto per mcu a otto bit.
Tutto l'ambiente di sviluppo Microchip è free, in parte open source, per quanto riguarda l'IDE, free con licenze per uso personale/accademico per i compilatori, unico limite è che non sono disponibili le ottimizzazioni di livello superiore, cosa che non crea nessun problema per l'uso amatoriale, inoltre le licenze free di Microchip sono utilizzabili anche per usi commerciali.
IO ho un pickit2 e non mi lamento... ha il riconoscimento automatico del PIC (mi pare che non ci sia nel pickit3), funziona come analizzatore logico, adattatore seriale e un paio di altre cose, programma velocemente e costa poco, non vedo perchè comprare il Pickit3 (che tra l'altro su grix mi avevano sconsigliato come primo programmatore)
Ciao
C
cece99:
IO ho un pickit2 e non mi lamento... ha il riconoscimento automatico del PIC (mi pare che non ci sia nel pickit3),
Il PK3 è l'evoluzione del PK2, non solo ha tutte le sue funzionalità, ma è più veloce, supporta tutti i modelli di pic, anche i più recenti, usa un PIC24 invece di un 18F2550, può programmare i micro in modo totalmente stand alone, basta precaricare l'hex nella sua memoria interna e la board da programmare deve essere alimentata di suo, anche lui dispone di una sua gui standalone che permette di utilizzarlo senza passare per mplab e disporre di una modalità da riga di comando per poterlo utilizzare con altri ambienti di programmazione, p.e. MikroC.
Il Pikit 2 non è più in vendita perché Microchip l'ha reso obsoleto come prodotto, sono più di due anni che non ha aggiornamenti software e non avrà mai più, se trovi ancora dei PK2 sono avanzi di magazzino e non sono coperti dalla garanzia a vita di Microchip, tutti quelli acquistati prima della sua messa fuori mercato sono ancora coperti dalla garanzia e in caso di guasto vengono sostituiti con un PK3.
(che tra l'altro su grix mi avevano sconsigliato come primo programmatore)
Su Grix di cavolate ne dicono tante, questa è una di quelle
astrobeed:
Se poi mettiamo in campo i dsPIC33, costano solo poco di più dei pic18, allora non c'è proprio storia, 16 bit di word, core dsp, 40 Mips effettivi, ram e flash a volontà, DMA, una marea di periferiche molto performanti, pin assegnabili a piacere alle periferiche (sopratutto su i modelli con pochi pin), moltiplicatore e divisore hardware, supporto hardware per i fixed point e tante altre cose.
leo72:
E cosa non da meno sono anche in versione DIP!
Ti dirò di più, Microchip ha pure i PIC32 (32 bit con core MIPS) in formato pdip e sono pin to pin compatible con i pic24 e i dsPIC33 a parità di case, ovvero è possibile fare un considerevole upgrade hardware del tuo circuito semplicemente sostituendo il micro senza modificare una virgola nello schema/pcb
Mi aggrego anche io ai sostenitori dei pic (le motivazioni le ha già espresse astro perfettamente). Per progetti stand-alone i pic sono più professionali dal mio punto di vista.