Le risposte alle tue domande sono diverse a seconda del tuo obiettivo finale. Se hai bisogno di una manciata o meno di questi dispositivi, dovresti rendere lo sviluppo più semplice e non preoccuparti del costo delle parti. Se hai intenzione di realizzarne mille o più, vale la pena analizzare le tue esigenze e ridurre i costi dell'hardware del dispositivo.
Piccole quantità
Se stai eseguendo una singola o piccola serie di questi dispositivi, i tuoi sforzi di sviluppo sommergeranno i costi per articolo e dovresti concentrarti su ciò che sarà più facile / veloce da sviluppare, piuttosto che sul costo / dimensione del microelettronico.
In generale, l'incapsulamento può ridurre la complessità, aumentando la produttività. Se hai alcuni requisiti in tempo reale difficili, come il controllo BLDC, i loop PID, ecc., Potresti trovare più velocemente l'uso di controller separati specificamente per quelle attività che comunicano con i controller in cui mantieni l'interfaccia utente e altri non-real- compiti a tempo.
Quindi, in questo caso, la risposta alle tue domande è:
L'approccio all-in-one è una buona idea quando si deve fare molto multitasking o è meglio segmentare e isolare, e
La scala punta leggermente verso la segmentazione e l'isolamento. Il motivo principale è che il debug di un sistema in tempo reale può richiedere molto tempo e mantenere tali attività sul proprio processore limita le variabili che devi misurare o controllare quando cerchi di scoprire perché qualcosa non funziona correttamente.
Come posso scoprire intuitivamente se il microcontrollore che sto guardando ha abbastanza potenza di calcolo per fare ciò di cui ho bisogno in base al mio elenco di attività?
In questo caso la differenza di costo tra un processore a 32 bit con molte risorse e un processore a 8 bit con risorse limitate è piccola rispetto alla quantità di tempo che trascorrerai lavorando allo sviluppo. Ci sono pochi motivi per provare a capire quanta potenza hai bisogno: basta ottenere il processore più grande che ritieni di poter sviluppare e utilizzarlo. Se in un secondo momento è necessario ottimizzare i costi di progettazione, è relativamente facile misurare l'utilizzo effettivo delle risorse del processore, quindi scegliere un processore minore in grado di gestire il carico effettivo. Fino ad allora, usa il più grande e non preoccuparti di trovare la "soluzione migliore".
Produzione di massa
Se prevedi di realizzare molti di questi dispositivi, un'attenta analisi comporterà un notevole risparmio sui costi. In generale, un microcontrollore più grande costerà meno di due microcontrollori in grado di sostituire il singolo microcontrollore, anche se ci sono certamente delle eccezioni a seconda delle attività specifiche richieste. A queste quantità, il costo dell'hardware sarà probabilmente molto più grande del costo di sviluppo, quindi dovresti aspettarti di dedicare più tempo all'analisi dei tuoi requisiti e allo sviluppo di quanto faresti se ne facessi solo alcuni.
L'approccio all-in-one è una buona idea quando si deve fare molto multitasking o è meglio segmentare e isolare?
L'approccio all-in-one sarà generalmente meno costoso durante la vita dell'intero progetto rispetto a più processori. Richiederà più tempo per lo sviluppo e il debug per assicurarsi che le varie attività non siano in conflitto, ma una progettazione rigorosa del software limiterà quasi quanto farebbe un hardware separato.
Come posso scoprire intuitivamente se il microcontrollore che sto guardando ha abbastanza potenza di calcolo per fare ciò di cui ho bisogno in base al mio elenco di attività?
Dovrai comprendere le attività che desideri eseguire e quante risorse prendono. Supponiamo che quanto segue fosse vero:
Le routine BLDC PI consumano X cicli di tempo del processore 100 volte al secondo e ciascuno richiede circa 50 byte di RAM per il funzionamento, 16 byte di EEPROM per l'ottimizzazione e 1k di flash per il codice. Ciascuno avrà bisogno di 3 periferiche PWM a sedici bit nel microcontrollore. Potrebbe essere necessario specificare il jitter, che avrà requisiti di latenza di interrupt specifici.
Le routine USB e seriali consumeranno Y cicli di tempo del processore in base alle necessità, 2k RAM, 64 byte EEPROM e 8k flash. Richiede USB e periferiche seriali.
La tua GUI consumerà Z cicli di potenza del processore 30 volte al secondo e avrà bisogno di 2k di RAM, 128 byte di EEPROM e 10k di flash. Utilizzerà 19 I / O per comunicazioni con LCD, pulsanti, manopole, ecc.
Al primo avvio, potrebbe essere difficile capire cosa siano effettivamente X, Y, Z e questo cambierà un po 'a seconda dell'architettura del processore. Tuttavia, dovresti essere in grado di capire, all'interno di una stima del ballpark, la quantità di ram, eeprom e flash di cui il tuo design avrà bisogno e di quali periferiche hai bisogno. Puoi scegliere una famiglia di processori che soddisfi i tuoi requisiti di memoria e periferiche e abbia una vasta gamma di opzioni di prestazioni all'interno di quella famiglia. A quel punto, per lo sviluppo, puoi semplicemente utilizzare il processore più potente della famiglia. Dopo aver implementato il tuo design, puoi facilmente spostare la famiglia in termini di potenza a un'opzione a basso costo senza modificare l'ambiente di progettazione o sviluppo.
Dopo aver fatto abbastanza di questi disegni, sarai in grado di stimare meglio X, Y e Z. Saprai che le routine BLDC PI, anche se eseguite spesso, sono piuttosto piccole e richiedono pochissimi cicli. Le routine USB e seriali richiedono molto ciclo, ma si verificano raramente. L'interfaccia utente richiede alcuni cicli frequentemente per trovare le modifiche, ma richiederà molti cicli raramente per aggiornare un display, ad esempio.