Quali sono i buoni microcontrollori disponibili oggi? [chiuso]


40

Ho esperienza con assembly e programmazione C per microcontrollori, ma non ho familiarità con le varie famiglie MCU e DSP offerte dalle aziende di oggi. (ad es. Texas Instruments, Atmel, Renesas)

Mi piacerebbe conoscere i buoni microcontrollori / DSP e cosa vuol dire sviluppare con loro. Riassumi le tue conoscenze sulle varie famiglie MCU / DSP, una famiglia per risposta.

Sarebbe molto interessante anche se si dettaglia quali sono (sono) le applicazioni principali per questo (questo) microcontrollore, per favore.

(Questa è una "community-wiki", quindi chiunque abbia> 100 reputazione può affinare e migliorare le risposte)


Sto iniziando con alcune risposte, per favore gratuitamente per aggiungere la tua! o modifica le famiglie esistenti per aggiungere la tua saggezza. Un ringraziamento speciale a Jason S per tutta la saggezza di TI MCU / DSP. chiphacker.com/users/330/jason-s
Edward

@Edward, Questo sito è in modalità bootstrap in modo che tutti possano modificare i post in CW
Earlz

Mi piacerebbe vedere / sentire quali sono disponibili da dove e soprattutto se ne esistono di campioni.
XTL

1
Tutta questa domanda è inutile e non costruttiva . Come previsto, si ottengono opinioni ampiamente distorte a favore e contro varie linee di processori. Votare per chiudere.
Olin Lathrop,

1
@Ricardo Ricordo di aver scritto quel commento. Qualcuno cercava il distintivo dell'archeologo o qualcosa del genere. Indipendentemente da ciò, questa vecchia domanda non si adatta più allo scopo della vista e deve essere inviata.
Matt Young,

Risposte:


35

ARM è lo standard del settore per i controller a 32 bit, sebbene il PIC32 abbia alcune caratteristiche interessanti. Sono abbastanza facili da usare. Mi piacciono i chip ARM NXP LPC2000 e LPC1000, ma il nuovo chip Energy Micro ARM Cortex-M3 è molto interessante a causa del suo bassissimo consumo energetico, buono come l' MSP430 [Youtube]. Il supporto è molto variabile, i chip NXP hanno il gruppo LPC2000 che eseguo , cosa che la gente sembra apprezzare - abbiamo oltre 8.000 membri!


1
PIC32 utilizza un core MIPS M4K - simile a ARM in quanto il core è concesso in licenza ad altri produttori - come il microchip per imballare e aggiungere periferiche.
smashtastic,

Anche io voto ARM. compilatori e debugger completamente standard, un'interfaccia JTAG quasi universale, nessuna dipendenza da cose binarie proprietarie come PICASM e C18. :-)
akohlsmith il

1
Un altro fan di ARM qui. Ho prototipato un progetto e poi progettato e assemblato un PCB per la TI Stellaris LM3S6965. Documenti e librerie software decenti, prima di quel progetto avevo una preparazione software e i documenti forniti da TI erano sufficienti per imparare a programmare il dispositivo e usando i loro schemi di esempio come modello, mi sono insegnato a fare il layout della scheda e ho costruito qualcosa che lavori. Tonnellate di funzionalità e potenza per i soldi. Oggi darei un'occhiata alle varie offerte Cortex M4, TI ha appena rilasciato i suoi micro M4 ma non esiterei a dare un'occhiata alle offerte di altri fornitori.
Suboptimus,

27

Atmel AVR , forse in un Arduino : non sarei d'accordo con Leon, e direi che la linea AVR di Atmel è una grande famiglia per cominciare. È piuttosto diversificato, spaziando da ATtiny, attraverso ATmega, a Dragon (con cui non ho lavorato.) Direi che AVR32 e Xmega sono famiglie diverse.

AVRfreaks è uno dei migliori forum di elettronica sul web (presto superato da Chiphacker :), esiste anche la comunità Arduino, che è destinata agli hobbisti. Arduino è ottimo per l'apprendimento dell'hardware del microcontrollore, anche se non ti aiuterà con la programmazione (l'OP ha dichiarato di conoscere ASM e C).

La suite WinAVR è semplice come una torta rispetto ad altre toolchain. Basta scaricare, premere Avanti alcune volte, inserire un po 'di codice e premere F5. Non c'è niente di più facile di così. Certo, l'editor di AVR Studio non ha tutte le funzionalità che dovrebbe avere, ma molti IDE del fornitore non sono migliori o peggiori (* tosse * MPLAB * tosse *).

Non sono sicuro della consegna, ma direi che SOT23 ATtiny a 6 pin è un chip di nicchia e la versione SO8 o DIP è molto disponibile. In una nota correlata, fanno anche un ottimo lavoro nel reperirli sia in DIP (per prototipazione) sia in pacchetti SMT compatti.


3
Se usi Linux, probabilmente avrai una toolchain perfettamente funzionante in meno di mezzo minuto con "sudo apt-get install gcc-avr avr-libc avrdude". Winavr è essenzialmente completamente compatibile. Ho mantenuto una base di codice condivisa tra i due senza nemmeno una singola modifica in un Makefile. Se si dispone di una porta parallela hardware o anche seriale, l'hardware ISP completo è costituito da alcuni connettori standard e da un paio di elementi passivi (resistori). Sono disponibili diverse opzioni USB e Bus Pirate da $ 30 (spedito in tutto il mondo) esegue direttamente l'ISP AVR e molto altro.
XTL

2
AVR è anche uno dei pochissimi chip che il tuo negozio di elettronica nelle vicinanze potrebbe effettivamente avere sullo scaffale.
XTL

1
È possibile programmare per WINAVR (cioè avr-libc) dall'IDE Eclipse utilizzando il plugin AVR Eclipse. Eclipse rende tutto migliore!
vicatcu,

17

Serie TI MSP430

Hardware

La varietà di periferiche hardware non è flessibile come i PIC Microchip, ma il supporto della toolchain di debug del software è molto migliore rispetto ai componenti di Microchip. TI ha recentemente rilasciato la nuova versione di Code Composer per i microcontrollori MSP430 e DSP TMS320F28xx, che utilizza Eclipse. Il supporto per il debug è eccellente.

Questi sono anche molto facili da configurare i registri di controllo, molto più facili dei DSP 28xx.

MSP430 può essere eccellente per applicazioni ad alta intensità di temporizzazione poiché normalmente avrà più registri Capture / Compare disponibili per l'uso. Ciò può semplificare notevolmente i sistemi in cui è necessario gestire molte periferiche con tempismo intensivo.

Sviluppo

Puoi acquistare un sistema di sviluppo per $ 150 (c'è una variante più economica di $ 20 MSP430 su chiavetta USB, ma è un po 'limitante) e ottieni un vero hardware + sistema di prototipazione del debugger. Puoi anche ottenere il nuovo launchpad TI che viene fornito con 2 chip e costa $ 4,30.


GCC è disponibile. mspgcc.sourceforge.net (vecchio) mspgcc4.sourceforge.net (nuovo)
XTL

Il problema con TI recentemente sembra essere che il loro "e-store" semplicemente non funziona e che i nuovi kit sono sempre esauriti o altrimenti non disponibili. Sembra che ci sia molta richiesta per Chronos e Launchpad così come i kit RF EZ ed EZ, ma a volte sono quasi irraggiungibili a meno che non trovi un negozio che ne abbia in stock. Spero che questo si risolverà presto.
XTL

Apparentemente TI offre anche campioni dei loro chip.
XTL

Elektor offre anche una scheda che estenderà l'ez430 verso un devkit più tradizionale. elektor.com/products/kits-modules/modules/…
XTL

Quest'estate non abbiamo avuto problemi a procurarci i Launchpad. Il problema della fornitura potrebbe essere di breve durata.
Brian Knoblauch,

14

Microchip PIC 16F / 18F

Mercato di destinazione

Microprocessori a 8 bit economici. Il 16F è una delle prime linee di processori di Microchip e non è particolarmente adatto alla programmazione in C / C ++ a causa di:

  • le sue istruzioni impostano l'architettura di base e di memoria
  • la necessità di cambiare banca
  • mancanza di supporto per le operazioni di puntatore comuni
  • scarse prestazioni in C / C ++ a causa dell'architettura
  • richiede dimensioni del programma maggiori per implementare algoritmi

La serie 18F è più recente e dovrebbe essere presa in considerazione se puoi permetterla per il tuo progetto. È simile nel mercato target, nei set di periferiche, nei pacchetti IC, negli strumenti di sviluppo e nel prezzo della serie 16F. Il core 18F è stato progettato per essere più suscettibile a C e C ++, grazie a:

  • supporto per l'indirizzamento indiretto
  • banchi RAM particolari che sono sempre accessibili (non è necessario il cambio di banco)

Software

Abbastanza facile da programmare, è possibile scrivere utilizzando il set di 30 istruzioni di montaggio, o utilizzare un compilatore C . Si tratta di MCU a 8 bit, quindi se si desidera lavorare con valori> 255, è necessario trovare / scrivere codice di addizione / sottrazione / moltiplicazione / divisione a 2 byte. La sua RAM ha 4 "banchi", quindi se si scrive in assembly, è necessario continuare ad andare avanti e indietro per accedere alle variabili memorizzate in banchi diversi dalla corrente.

Hardware

Questi MCU funzionano abbastanza lentamente, con una velocità tipica di 4 MIPS e una velocità massima di 20 MIPS. Hanno alcune funzionalità hardware integrate che funzionano bene se configurate correttamente, come ADC, porta seriale, porta parallela, bus CAN, bus I2C, bus SPI, confronto di tensione, EEPROM e, naturalmente, porte I / O per tutti gli usi .

Documentazione

  • I fogli dati hanno tutte le informazioni richieste (piedinature, registri per la configurazione, ecc.) Ordinatamente classificati e ben documentati. Un manuale spiega inoltre in modo approfondito le funzionalità.

Strumenti di sviluppo

  • Microchip ha un nuovo strumento, il VDI che semplifica la configurazione delle varie funzionalità hardware della MCU, che genera assembly o codice C. Meglio che riversarsi sui fogli dati.

  • Microchip offre il suo IDE MPLAB da molti anni e, sebbene il programma stia lentamente migliorando, rispetto agli strumenti di sviluppo per PC (Visual C ++, Eclipse / NetBeans per Java / ecc.) L'interfaccia utente è molto scarsa e il software è ancora particolarmente difettoso. Inoltre non supporta C ++, nonostante il fatto che la differenza tra C e la maggior parte delle funzionalità C ++ (esclusa l'allocazione di memoria dinamica, funzioni virtuali e alcune altre funzionalità) sia molto leggera e C ++ incoraggia la modularità della programmazione. Esistono fornitori IDE di terze parti, in particolare IAR, ma sono costosi. (Hi-Tech è stata recentemente acquistata da Microchip.)

  • Il debug in-circuit è offerto in alcune parti dall'interfaccia ICD di Microchip, un'interfaccia seriale a 2 pin a cui è possibile accedere tramite gli adattatori di debug ICD2, ICD3 , REAL ICE , PICkit2 / 3, ecc. Assicurarsi di verificare se la parte scelta ha le funzionalità ICD! Le funzionalità di debug sono alquanto limitanti e hanno "skid" in cui si imposta un breakpoint su un'istruzione e il programma interrompe alcune istruzioni in seguito. Tuttavia, ICD è meglio di niente.

Supporto

  • Le note applicative descrivono codice e circuiti per varie applicazioni comuni
  • Comunità attiva di utenti nei forum di microchip
  • Sito Web gratuito di supporto tecnico 24 ore su 24, 7 giorni su 7, in cui invii i tuoi problemi (biglietti) e il personale tecnico risponderà gratuitamente e ti consentirà anche di chiamare se hai bisogno di ulteriore aiuto
  • Presentazioni (seminari Web) che spiegano i vari moduli e applicazioni

SDCC supporta anche PIC, credo.
XTL

Sì, SDCC funziona molto bene per PIC18 e versioni successive. Si noti che la sintassi è leggermente diversa dai compilatori C di Microchip, quindi potrebbe essere necessario eseguire il porting se si desidera riutilizzare il codice.
Wim,

Sono stato riluttante a usare sdcc poiché la documentazione sembra descrivere la generazione del codice immagine come sperimentale.
John Burton,

In secondo luogo i commenti PIC16. Vecchia, stravagante, memoria organizzata in banche, non amichevole per C. Microchip utilizza il fatto che ha pochissime istruzioni per imparare come risorsa, il che è semplicemente stupido, IMO. MPLAB IDE è uno scherzo, sembra che sia ancora il 1998.
Gauthier,

11

Blackfin di Analog Devices La famiglia Blackfin è un DSP / microcontrollore ibrido con un forte core RISC e supporta istruzioni per l'elaborazione di segnali video. Alcune istruzioni supportano SIMD.

Hardware

Ha un core RISC. Le velocità vanno da 200 MHz single-core a 600 MHz dual-core. Possiede periferiche: 10/100 Ethernet MAC, UARTS, SPI, controller CAN, timer con supporto PWM, timer watchdog, orologio in tempo reale e un controller di memoria sincrono e asincrono senza colla. Ha una gestione dinamica dell'alimentazione, che spegne automaticamente parti del processore che non vengono utilizzate.

Sviluppo

I due strumenti di sviluppo principali sono VisualDSP ++ di AD e la toolchain GNU. C'è anche un SDK con un sacco di codice e note applicative. Il codice SDK funge da framework o da buoni esempi di codice. Esistono diversi sistemi operativi, incluso uCLinux, che verranno eseguiti su di esso. Sono disponibili numerose schede di valutazione . I manuali sono indispensabili.

Prezzi attualmente da 2 $ in quantità di 1000 unità.


Blackfin non ha un core MIPS!
Leon Heller,

E i prezzi?
bjarkef,

11

La Parallax Propeller è un oddbird 8-core (otto "ingranaggi" più un hub) microcontrollore che può fare cose molto interessanti / impressionante tra cui la produzione video SD / VGA.

Ha un proprio ambiente di sviluppo che include un linguaggio chiamato SPIN. Assembly (PASM) è naturalmente disponibile.

Vi è un notevole supporto da parte della comunità e progetti visibili che utilizzano il chip.

Non esiste una vasta gamma di modelli, ma il chip sembra essere il risultato di una progettazione molto attenta e di un lungo percorso di sviluppo svolto da persone estremamente talentuose e competenti. Potrebbe essere disponibile per circa $ 8.

L'hardware di programmazione (nel sistema) apparentemente consiste in una porta seriale a livello TTL e una linea di reset. È disponibile un dongle chiamato Prop Plug.

http://parallax.com

http://en.wikipedia.org/wiki/Parallax_Propeller



7

dsPIC33F e PIC24 : Microchip ha una famiglia di microcontrollori MIPS a 16 bit e 40 chiamati dsPIC33F che combinano il set di istruzioni PIC24F e le periferiche con funzionalità DSP come due accumulatori a 40 bit con opzioni di arrotondamento e saturazione; il ciclo singolo si moltiplica e si accumula; e turni fino a ± 16 bit per dati fino a 40 bit. I prezzi sono bassi (a partire da $ 2 in volume). Una cosa che mi piace dei microcontrollori Microchip è che molti dei loro dispositivi sono disponibili in pacchetti DIP ideali per breadboard. Ho usato uno di questi in un progetto in cui avevo bisogno di decodificare i segnali DTMF; era più conveniente di una soluzione hardware decoder DTMF dedicata. Un PIC24 viene utilizzato nel fantastico uWatch , "Il più potente (e unico!) orologio programmabile RPN / calcolatrice scientifica algebrica al mondo".


Grande voto per la serie pic24. Non vedi quasi online per loro quanto le foto a 8 bit ma sono più veloci, più potenti e più facili da usare e non costano più di quelle a 8 bit con specifiche simili.
John Burton,

6

Cypress PSoC1 (CY8C29466) ha un semplice core CPU a 8 bit circondato da blocchi digitali e analogici simili a FPGA.

Ha sia ingressi analogici che uscite analogiche. Molti progetti che richiederebbero un mucchio di parti esterne con qualsiasi altro microcontrollore - op-amp, PGA, ecc. - possono essere realizzati con un singolo chip PSoC. Molti mouse per computer usano un PSoC1. Ad esempio, può decodificare i toni DTMF che arrivano in un pin di ingresso e generare direttamente segnali DTMF analogici indipendenti su due pin di uscita: vero analogico, non PWM.

I blocchi digitali e analogici possono essere configurati per fare le cose in modo completamente indipendente dal core - e quindi con un tempo di risposta fisso garantito, anche se la CPU è occupata a gestire alcuni interruzioni durante quel periodo.

Abbastanza bassa potenza. Disponibile in pacchetti DIP e SMT.

Il core a 8 bit e 24 MHz equivale all'incirca al core PIC16F, alla stravagante commutazione del banco e tutto il resto. Sono disponibili compilatori C proprietari, ma è improbabile che GCC venga mai portato su nessuno dei due.

Il progetto "Gainer.cc" programma i sistemi basati su PSoC1 utilizzando Elaborazione tramite cavo USB, molto simile al successivo progetto "Arduino".

Il forum http://www.psocdeveloper.com/ è amichevole. Ci sono alcune utility disponibili per lo sviluppo su Linux: http://m8cutils.sourceforge.net/ .


PSoC1 mi fa impazzire. I nuovi PSoC3, tuttavia, sono fantastici.
Rocketmagnet,

5

I micro Freescale HCS08 sono concorrenti diretti dei PIC10-18 e degli AVR, generalmente a basso costo ma ancora con un set periferico abbastanza ricco. La loro libreria di note app e materiale di riferimento è abbastanza buona.

Il loro IDE CodeWarrior (compilatore gratuito per un codice fino a 32k) include alcune utili librerie di "inizializzazione del dispositivo" per un approccio guidato dalla GUI ai bit di lancio e un "Processor Expert" più avanzato che può generare driver di livello superiore per le periferiche. Non sei obbligato a utilizzare neanche, e puoi semplicemente fare tutto in codice C dritto se lo desideri.


4

Serie DSP TI TMS320F28xx .

Mercato di destinazione

Controllo motore e convertitori di potenza a controllo digitale: hanno periferiche PWM molto flessibili e ADC veloci.

Hardware

Questi DSP hanno due principali inconvenienti:

  • Più complesso da configurare: i file del linker e tutti i registri (stati di attesa della memoria, ecc.) Hanno troppe opzioni e devi davvero sapere cosa stai facendo per essere sicuro di farlo nel modo giusto
  • Sono necessarie due tensioni di alimentazione, 3,3 V per I / O e periferiche e 1,8-1,9 V per il core DSP.

Strumenti di sviluppo

Debug in tempo reale tramite la porta JTAG, usando Code Composer v4 (basato su Eclipse !!!).

Supportato da MatLAB simulink per la generazione automatica di codice (nessuna esperienza di programmazione richiesta)

I DSP di TI erano molto costosi da prototipare perché avevi bisogno di un pod di debug in tempo reale di $ 1500 (adattatore JTAG), ma il prezzo è sceso (ce n'è uno economico per $ 150-200) e vendono schede di valutazione con adattatori JTAG integrati.


Una cosa interessante di questi è che ogni indirizzo di memoria numerato individualmente contiene una parola di 16 bit.
JustJeff,

Byte a 16 bit?
Nick T,

4

XMOS produce una gamma di chip di elaborazione parallela a 32 bit molto potenti (1600 MIPS da quattro core con 32 thread hardware). Sono abbastanza veloci da eseguire USB ed Ethernet ad alta velocità nel software. I loro strumenti sono molto buoni, le chips sono superbe, hanno un prezzo ragionevole (partono da $ 7,50) e le persone sono molto disponibili. Hanno due ottimi forum di supporto; uno è gestito dall'azienda, l'altro è indipendente.


Io uso XMOS; Sono contento dei loro prodotti.

3

Dovrò votare per il Cypress PSoC3. Uso i PIC da circa 10 anni (PIC16, PIC18, dsPIC e PIC32). Mi fanno impazzire con la loro irritante configurazione periferica e la costante ricerca nel foglio dati per trovare quel bit che deve essere cancellato per far funzionare alcuni pin.

D'altra parte, l'esperienza che ho avuto finora con i PSoC3 è stata una delizia. Ancora più importante, la configurazione delle periferiche digitali e analogiche è una gioia totale. Le porte seriali, i clock, gli interrupt, i driver, i comparatori ADC e DAC possono essere collegati su un foglio schematico e funzionano perfettamente.

Ad esempio, è possibile collegare il PWM per attivare l'ADC per campionare nel mezzo di un impulso, rendendo più accurata la misurazione della corrente del motore. Prova a farlo su un PIC.

Vuoi 5 PWM, 5 decodificatori in quadratura, un ADC, una porta SPI e un generatore CRC sullo stesso chip? Avete capito bene. Vuoi configurare l'ADC per campionare sequenzialmente la corrente in ciascun motore al centro dell'impulso? Avete capito bene. Inoltre puoi collegare tutti questi ingressi e uscite a quasi tutti i pin che desideri.

Oh sì, E, se non c'è una periferica disponibile nella libreria, puoi scriverne una tua in verilog!


1

Cypress PSoC5 ha un ARM Cortex M3 a 32 bit circondato da blocchi digitali e analogici simili a FPGA.

ADC e DAC con risoluzione a 20 bit.

I blocchi digitali e analogici possono essere configurati per fare le cose in modo completamente indipendente dal core - e quindi con un tempo di risposta fisso garantito, anche se la CPU è occupata a gestire alcuni interruzioni durante quel periodo.

Abbastanza bassa potenza.

Il core ARM Cortex-M3 a 32 bit e 80 MHz equivale all'incirca al ...

Il forum http://www.psocdeveloper.com/ è amichevole.


1
Non mi fiderei dell'A / D a 20 bit sullo stesso die di un microcontrollore. Il rumore proveniente dall'UC renderà probabilmente inutili almeno 4 bit.
Stevenvh,

Potresti crederci se sapessi che era solo 180ps.
Rocketmagnet,

0

Il supporto di Atmel per l'AVR non è molto buono e i loro strumenti hardware sono un po 'traballanti, tuttavia i chip sono belli e il forum di AVR Freaks è molto buono. Hanno seri problemi di consegna con i loro chip più recenti come l'XMega e i chip Tiny a 6 pin.


Si prega di approfondire gli strumenti hardware e i problemi di consegna. Ho usato i chip AVR per un po 'ed erano molto belli e facili da entrare nel mondo dell'informatica fisica.
Earlz,

Dai un'occhiata al forum di AVR Freaks: le persone si lamentano sempre del drago e di altri strumenti e della non disponibilità di molti chip. Si lamentano anche della mancanza di supporto da parte di Atmel.
Leon Heller,

1
Non sono sicuro se stai supportando o votando contro l'AVR. Puoi pubblicare alcune delle tue esperienze personali? È facile trovare recensioni negative da poster frustrati, ma è più difficile trovare belle patatine e un buon forum di supporto. Non penso che ci sarebbe una comunità in grado di generare 500.000 post su 75.000 argomenti se il consenso generale fosse negativo.
Kevin Vermeer,

Il supporto open source per Atmel AVR è molto bello (avr-gcc e avrdude).
Starblue,

0

Zilog ha anche alcuni microcontrollori. Personalmente non ho provato a programmare la linea di chip Z8 Encore , ma inviano campioni. Hanno molti chip diversi che vanno da 1 KB a 16 KB (forse più) con periferiche tra cui UART, ADC, I2C , SPI, ecc.

Secondo me, questo non è un ottimo microcontrollore per hobbisti.


0

Ho usato diverse famiglie di processori. Il problema principale nell'apprendimento di un nuovo processore è imparare a codificare centinaia di registri di configurazione dei registri periferici, questo sarà il processo che richiede molto tempo quando si passa da una famiglia all'altra. il codice dell'applicazione principale è scritto in c, non importa quale famiglia stiamo usando, vorrei che ci fosse uno standard evoluto per i registri periferici. Se qualcuno è a conoscenza di qualsiasi sviluppo in questa direzione, lo condivida.


-1

Uso PIC, ARM, MSP430, AVR e pochi altri.

Microchip ha un eccellente supporto e buoni strumenti hardware e software, il debug è particolarmente facile e veloce. L'architettura a 8 bit è un po 'datata. I loro nuovi chip a 16 bit sono eccellenti. Sono i leader di mercato negli MCU a 8 bit.


2
Se hai saggezza da condividere, suggerisco invece di modificare le risposte del wiki della community. Tutti i tuoi punti sono già stati menzionati nella risposta del 18F.
Edward,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.