- Inizia con i requisiti del progetto
- Guarda i parametri in primo piano
- Tensione di lavoro
- Connettori di destinazione
- Interfacce avanzate
- Sviluppo dell'ambiente
- Prezzo e disponibilità
- Altre caratteristiche
- Conclusione
Quando si tratta di scegliere un microcontrollore, è davvero un compito confuso in quanto sul mercato sono disponibili vari microcontrollori con le stesse specifiche. Quindi ogni parametro diventa importante quando si tratta di selezionare un microcontrollore. Qui stiamo confrontando due microcontrollori più comunemente usati: microcontrollore PIC e microcontrollore AVR. Qui vengono confrontati su vari livelli che saranno utili nella selezione del microcontrollore per il tuo progetto.
Inizia con i requisiti del progetto
Raccogli tutte le informazioni sul tuo progetto da avviare prima di iniziare a scegliere qualsiasi microcontrollore. È molto importante che le informazioni vengano raccolte il più possibile in quanto ciò giocherebbe un ruolo importante nella scelta del microcontrollore giusto.
- Raccogli le informazioni del progetto come le dimensioni del progetto
- Numero di periferiche e sensori utilizzati
- Requisiti di potenza
- Budget del progetto
- Requisiti delle interfacce (come USB, SPI, I2C, UART ecc.),
- Crea un diagramma a blocchi hardware di base,)
- Elenca quanti GPIO sono necessari
- Ingressi da analogico a digitale (ADC)
- PWM
- Selezionare l'architettura giusta necessaria, ad esempio (8 bit, 16 bit, 32 bit)
- Riconoscere i requisiti di memoria del progetto (RAM, Flash ecc.)
Guarda i parametri in primo piano
Quando tutte le informazioni vengono raccolte, è il momento giusto per scegliere il microcontrollore. In questo articolo i due microcontrollori concorrenti di marca PIC e AVR verranno confrontati su una varietà di parametri. A seconda della necessità del progetto per confrontare i due, guarda i seguenti parametri come,
- Frequenza: velocità alla quale funzionerà il microcontrollore
- Numero di pin I / O: porte e pin richiesti
- RAM: tutte le variabili e gli array dichiarati (DATA) nella maggior parte degli MCU
- Memoria Flash: qualunque codice tu scrivi va qui dopo la compilazione
- Interfacce avanzate: interfacce avanzate come USB, CAN ed Ethernet.
- Tensione di lavoro: tensione di lavoro dell'MCU come 5 V, 3,3 V o bassa tensione.
- Connettori di destinazione: i connettori per facilitare la progettazione e le dimensioni del circuito.
La maggior parte dei parametri sono simili sia in PIC che in AVR ma ci sono alcuni parametri che sicuramente differiscono se confrontati.
Tensione di lavoro
Con più prodotti a batteria, PIC e AVR sono riusciti a migliorare per le operazioni a bassa tensione. Gli AVR sono meglio conosciuti per il funzionamento a bassa tensione rispetto alle serie PIC precedenti come PIC16F e PIC18F perché queste serie PIC utilizzavano un metodo cancellato dal chip che richiedeva almeno 4,5 V per funzionare e i programmatori PIC inferiori a 4,5 V devono utilizzare l'algoritmo di cancellazione delle righe che non può cancellare il dispositivo bloccato. Tuttavia questo non è il caso di AVR.
AVR ha migliorato e lanciato le ultime varianti P (pico-power) come ATmega328P che sono a bassissima potenza. Anche l'attuale ATtiny1634 è migliorato e viene fornito con modalità di sospensione per ridurre il consumo energetico quando viene utilizzato il brownout, il che è molto utile nei dispositivi alimentati a batteria.
La conclusione è che in precedenza AVR si concentrava sulla bassa tensione, ma ora il PIC è stato trasformato per il funzionamento a bassa tensione e ha lanciato alcuni prodotti basati su picPower.
Connettori di destinazione
I connettori di destinazione sono molto importanti quando si tratta di progettazione e sviluppo. AVR ha definito interfacce ISP a 6 e 10 vie, il che lo rende facile da usare mentre il PIC non ce l'ha, quindi i programmatori PIC sono dotati di cavi volanti o prese RJ11 che sono difficili da inserire nel circuito.
La conclusione è che l' AVR lo ha reso semplice in termini di progettazione e sviluppo del circuito con i connettori di destinazione, mentre PIC deve ancora correggere questo problema.
Interfacce avanzate
In termini di interfacce avanzate, quindi il PIC è sicuramente l'opzione in quanto dispone di funzionalità avanzate come USB, CAN ed Ethernet, cosa che non è il caso di AVR. Tuttavia si possono usare chip esterni, come FTDI USB a chip seriali, controller Microchip Ethernet o chip Philips CAN.
La conclusione è che il PIC ha sicuramente le interfacce avanzate di AVR.
Sviluppo dell'ambiente
Oltre a questo ci sono caratteristiche importanti che rendono entrambi i microcontrollori diversi l'uno dall'altro. La facilità dell'ambiente di sviluppo è molto importante. Di seguito sono riportati alcuni parametri importanti che spiegheranno la facilità dell'ambiente di sviluppo:
- IDE di sviluppo
- Compilatori C.
- Assemblatori
IDE di sviluppo:
Sia PIC che AVR vengono forniti con i propri IDE di sviluppo . Lo sviluppo del PIC viene eseguito su MPLAB X, che è noto per essere l'IDE stabile e semplice rispetto all'Atmel Studio7 di AVR che ha una dimensione di 750 MB ed è un po 'goffo con più funzionalità aggiuntive che lo rendono difficile e complicato per gli appassionati di elettronica principianti.
Il PIC può essere programmato attraverso gli strumenti microchip PICKIT3 e MPLAB X. . L'AVR è programmato utilizzando strumenti come JTAGICE e AtmelStudio7. Tuttavia, gli utenti stanno passando alle versioni precedenti di AVR Studio come 4.18 con Service Pack3 poiché funziona molto più velocemente e ha funzionalità di base per lo sviluppo.
La conclusione è che il PIC MPLAB X è un po 'più veloce e facile da usare di AtmelStudio7.
Compilatori C:
Sia PIC che AVR vengono forniti rispettivamente con i compilatori XC8 e WINAVR C. Il PIC ha rilevato Hi-tech e ha lanciato il proprio compilatore XC8. Questo è completamente integrato in MPLAB X e funziona bene. Ma WINAVR è ANSI C basato sul compilatore GCC che semplifica il porting del codice e l'utilizzo di librerie standard. La versione gratuita limitata da 4KB di IAR C Compiler offre un sapore di compilatori professionali che costa molto. Poiché l'AVR è progettato per C all'inizio, l'output del codice è piccolo e veloce.
Il PIC ha molte caratteristiche che lo rendono bene rispetto all'AVR ma il suo codice diventa più grande a causa della struttura del PIC. La versione a pagamento è disponibile con maggiore ottimizzazione, tuttavia la versione gratuita non è ben ottimizzata.
La conclusione è che WINAVR è buono e veloce in termini di compilatori rispetto al PIC XC8.
Assemblatori:
Con tre registri del puntatore a 16 bit che semplificano l'indirizzamento e le operazioni con le parole, il linguaggio assembly dell'AVR è molto semplice con molte istruzioni e la possibilità di utilizzare tutti i 32 registri come accumulatori. Mentre l'assemblatore PIC non sta molto bene con tutto ciò che è costretto a funzionare tramite l'accumulatore, costringe a usare sempre la commutazione del banco per accedere a tutti i registri delle funzioni speciali. Sebbene MPLAB includa macro per semplificare il cambio di banca, è noioso e richiede tempo.
Anche la mancanza di istruzioni di ramo, basta saltare e GOTO, che forza in strutture contorte e codice un po 'confuso. La serie PIC ha alcune serie di microcontrollori molto più veloci ma ancora limitate a un accumulatore.
La conclusione è che, sebbene alcuni microcontrollori PIC siano più veloci, è meglio lavorare su AVR in termini di assemblatori.
Prezzo e disponibilità
Parlando in termini di prezzo, sia PIC che AVR sono molto simili. Entrambi sono disponibili per lo più allo stesso prezzo. In termini di disponibilità, il PIC è riuscito a consegnare i prodotti nei tempi stabiliti rispetto all'AVR poiché Microchip ha sempre avuto una politica di tempi di consegna brevi. Atmel ha vissuto momenti difficili poiché la sua vasta gamma di prodotti significa che gli AVR sono una piccola parte della loro attività, quindi altri mercati possono avere la priorità sugli AVR per la capacità di produzione. Quindi è consigliabile utilizzare PIC in termini di programmi di consegna, mentre AVR può essere fondamentale per la produzione. Le parti microchip tendono ad essere più facilmente disponibili soprattutto in piccole quantità.
Altre caratteristiche
Sia PIC che AVR sono disponibili in una varietà di pacchetti. Il PIC distribuisce più versioni di AVR. Questa implementazione della versione può avere vantaggi e svantaggi a seconda delle applicazioni, poiché più versioni creano confusione nella selezione del modello corretto, ma allo stesso tempo fornisce una migliore flessibilità. L'ultima versione sia di PIC che di AVR sono a bassissima potenza e funzionano in una varietà di range di tensione. I clock ei timer PIC sono più precisi ma in termini di velocità PIC e AVR sono molto simili.
Atmel Studio 7 ha aggiunto i file ELF di produzione, che includono dati EEPROM, Flash e fusibili in un unico file. Mentre AVR ha integrato i dati dei fusibili nel loro formato di file esadecimale, quindi il fusibile può essere impostato nel codice. Ciò consente il trasferimento del progetto alla produzione più facile per PIC.
Conclusione
PIC e AVR sono entrambi ottimi dispositivi a basso costo che non vengono utilizzati solo nelle industrie ma anche una scelta popolare tra studenti e hobbisti. Entrambi sono ampiamente utilizzati e hanno buone reti (forum, esempi di codice) con presenza online attiva. Entrambi hanno una buona copertura e supporto per la comunità ed entrambi sono disponibili in grandi dimensioni e fattore di forma con periferiche indipendenti dal nucleo. Microchip ha rilevato Atmel e ora si occupa sia di AVR che di PIC. Alla fine, è ben chiaro che l'apprendimento del microcontrollore è come imparare i linguaggi di programmazione, poiché impararne un altro sarà molto più facile una volta che ne avrai imparato uno.
Indipendentemente dal fatto che chi vince, ma in quasi tutti i rami dell'ingegneria, non esiste una parola come "migliore" mentre la frase "più appropriato per l'applicazione" è adatta. Tutto dipende dai requisiti di un particolare prodotto, metodo di sviluppo e processo di produzione. Quindi, a seconda del progetto, si può scegliere un microcontrollore adatto tra PIC e AVR.