×
MSP430, Microcontrollori 16 bit Ultra Low Power
Consumi MSP430 vs PICmicro XLP
13 Anni 1 Mese fa #1
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Consumi MSP430 vs PICmicro XLP è stato creato da Gianni
Apro questo topic per discutere della questione consumi su queste due fasce di MCU. Ho letto di recente questa pagina della Microchip:
www.microchip.com/en_us/technology/xlp/technology.html
Io parto dal presupposto che sicuramente un MSP430 deve essere confrontato con una MCU a 16bit, per cui inutile fare paragoni con i PIC16/PIC18. E fin qui ci siamo.
D'altro canto non so se è corretto fare un paragone con un PIC24F (con un DSPic non di certo), dal momento che sui 24F mancano alcune caratteristiche, tra cui molto importante il DMA che invece sugli MSP430 c'è. Per cui forse per me era più corretto fare una tabella contro un PIC24H.
In aggiunta: la tabella, alla penultima riga fa un confronto a 1MHz per entrambe le MCU. Un po sbagliato dal momento che gli MSP430 hanno la frequenza del ciclo istruzioni pari al clock, mentre i PIC24F richiedono due colpi di clock per eseguire un'istruzione. Per cui era corretto paragonare il 24F a 1MHz contro l'MSP430 a 500KHz. Sarebbe ragionevole pensare di moltiplicare per due il valore 292 per avere un confronto più veritiero.
L'ultimo dato ha più validità dal momento che il confronto viene fatto su 1MIPS, il 24F ha un consumo paragonabile all'MSP430 affianco ma ancora superiore all'ultimo in lista.
In modalità sleep invece? E' corretto fare quei paragoni considerando sempre la questione del clock?
www.microchip.com/en_us/technology/xlp/technology.html
Io parto dal presupposto che sicuramente un MSP430 deve essere confrontato con una MCU a 16bit, per cui inutile fare paragoni con i PIC16/PIC18. E fin qui ci siamo.
D'altro canto non so se è corretto fare un paragone con un PIC24F (con un DSPic non di certo), dal momento che sui 24F mancano alcune caratteristiche, tra cui molto importante il DMA che invece sugli MSP430 c'è. Per cui forse per me era più corretto fare una tabella contro un PIC24H.
In aggiunta: la tabella, alla penultima riga fa un confronto a 1MHz per entrambe le MCU. Un po sbagliato dal momento che gli MSP430 hanno la frequenza del ciclo istruzioni pari al clock, mentre i PIC24F richiedono due colpi di clock per eseguire un'istruzione. Per cui era corretto paragonare il 24F a 1MHz contro l'MSP430 a 500KHz. Sarebbe ragionevole pensare di moltiplicare per due il valore 292 per avere un confronto più veritiero.
L'ultimo dato ha più validità dal momento che il confronto viene fatto su 1MIPS, il 24F ha un consumo paragonabile all'MSP430 affianco ma ancora superiore all'ultimo in lista.
In modalità sleep invece? E' corretto fare quei paragoni considerando sempre la questione del clock?
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Gianni
- Autore della discussione
- Elite Member
Riduci
Di più
13 Anni 1 Mese fa - 12 Anni 3 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Consumi MSP430 vs PICmicro XLP
Ciao,
ottima domanda!
Prima di rispondere vorrei mettere in evidenza che ho un certo rispetto per i PIC della Microchip, e credo che questo sito lo dimostri. Conoscendo gli MSP430 posso leggere il documento che hai lincato con una certa criticità. Realizzare componenti come gli MSP430 e PIC XLP richiede conoscenze della fisica che vanno ben oltre la conoscenza comune. Purtroppo molti dei sacrifici dei progettisti vengono spesso deformati dal Marketing il cui compito e' vendere. I PIC XLP sono degli ottimi prodotti ma il documento presentato sul link pone mezze verità. I numeri piccoli attraggono allo stesso modo con cui i numeri grandi fanno vendere meglio i computer.
Le mie osservazioni sul un confronto tra MSP430 e PIC XLP presentati sull'articolo non fanno riferimento agli ultimi prodotti presentati dalla Texas Istruments, ma solo al documento stesso.
Sleep currents down to 20 nA
Il primo punto mette in evidenza che il PIC XLP puo' avere correnti in sleep mode di 20nA, mentre gli MSP430 scendono fino a 100nA (I nuovi MSP430 della famiglia Wolverine riducono questi consumi). Al fianco di questo punto viene messo in evidenza che il PIC, per applicazioni a batteria ha il BOR (Brown Out Reset), ovvero per le applicazioni in cui 20nA sarebbero utili. Il BOR pero' non e' includo nei 20nA (richiede almeno altri 45nA) per cui i 20nA divengono 65nA. Gli MSP430 nei 100nA includono invece il BOR. In 20nA non e' specificato che il PIC e' praticamente in stato di off, la RAM e ogni registro perde il suo contenuto, quindi ad ogni risveglio e' necessario impostare ogni periferica. Gli MSP430 con 100nA mantengono i dati in memoria RAM e relativi registri, dunque dopo il risveglio partono subito nell'esecuzione del codice utile e non devono impostare tutto da capo, il che permette di tornare prima in stato di sleep. Questo vantaggio non e' poco se si pensa di volere salvare dei dati in RAM in attesa di elaborarli in un secondo tempo. Molte applicazioni lo fanno per cui in questo caso potrebbe essere meglio un MSP430. Nel caso in cui questo non sia necessario o il BOR non sia utile, i 20nA del PIC sono un bel vantaggio ma come detto i nuovi MSP430 con FRAM eguagliano questo punto)
Active Mode currents down to 50 uA/MHz
Questo punto non so da dove esca, e' non vero, forse e' un errore...
Basta prendere il caso ad 1MHz riportato nella tabella sotto, in cui scrive che i consumi sono 292uA, ovvero 6 volte quanto dichiarato. Vedendo sul datasheet e usando altre frequenze i consumi sono sempre intorno a 300uA o piu'.
Un trucco in realta' c'e' ed e' quello di usare il clock al massimo e dividere per il numero di MHz. Quindi i 50uA/MHz si hanno solo se si ha il microcontrollore al massimo della frequenza che in applicazioni a batterie e' raro. Questo calcolo e' fatto anche per gli MSP430 ma non e' trasparente in nessun datasheet.
Al fine di avere dei valori reali e' sempre bene far riferimento alla tabella in cui sono riportati i consumi reali e la frequenza.
E' importante notare che i PIC18 eseguono una istruzione pgni 4 cicli di clock per cui in generale i consumi vanno moltiplicati per 4 mentre per i dsPIC vanno moltiplicati per 2. Per gli MSP430, Clock e cicli intrusioni sono 1:1 .
La ragione per cui a basse frequenze si ha una corrente maggiore e' dovuta al fatto che c'e' sempre una corrente necessaria per alimentare la circuiteria di "base" indipendente dal clock.
Diversi MSP430 hanno un LDO interno per alimentare la CPU ad una tensione piu' bassa. Questo permette di avere dei bassi consumi anche a basse frequenze.
Nella tabella riportata sul sito, confrontando le correnti allo stato attivo i PIC XLP risultano apparentemente migliori. Controllando il datasheet e' chiaro che confrontando i valori massimi (valori certificati) gli MSP sono migliori.
E' importante controllare anche la variazione della corrente necessaria per una periferica al variare della temperatura.
Non e' bello prendere il migliore dei PIC e metterlo al confronto con l'MSP430 che ha il valore peggiore. Hanno fatto anche un video su questo e dal per cui sembra che sia la verità. Questo non e' fatto solo dalla Microchip ma anche da altre società. Si prende il proprio componente migliore e lo si confronta con il peggiore componente con il quale si vuol fare il confronto. E' il datasheet il documento ufficiale e sono i valori massimi quelli che fanno testo. In questo caso vorrei ricordare anche gli MSP430 con FRAM che rispetto all'MSP430 preso per il confronto, dimezzano i consumi allo stato attivo, per cui il confronto e' a favore degli MSP430. La nuova famiglia con FRAM, nominata Wolverine, dimezza non solo la corrente allo stato attivo ma anche quella in stato di sleep.
Execute code smarter, sleep longer, maximize battery life
Questo punto mette ancora in evidenza quanto il marketing giochi un ruolo nelle vendite. Hanno messo assieme parole chiave che assieme non significano nulla ma attirano l'attenzione. E' interessante notare come molti valori nel datasheet del PIC hanno il valore tipico proprio uguale al valore che per gli MSP430 e' invece il caso peggiore (quindi gli MSP430 sono migliori se quei parametri sono importanti)! Si guardi per esempio la corrente di leakage e i tempi di risveglio dallo stato di sleep.
Riguardo agli stati di sleep, sono presenti varie fasi, in cui non tutti i clock sono disattivi (e' l'approccio degli MSP430). Per questa ragione ci sono i confronti anche con diversi clock.
In ultimo vorrei ricordare che spesso l'utilizzo di un microcontrollore rispetto ad un altro dipende dal prezzo finale quindi la vittoria o meno di un prodotto discende solamente da quanto una societa' e' disposta ad abbassare il prezzo del proprio componente, e non dal fatto che il componente sia effettivamente migliore per l'applicazione (tengo a sottolineare la parola applicazione).
E' anche interessante come la Microchip faccia il confronto con gli MSP430 per mostrare di essere i migliori. Altre società fanno lo stesso. Ma se se le altre società pensano realmente che la Microchip sia la migliore come vuole mostrare perché le altre società non si confrontano con la Microchip piuttosto che con gli MSP430?
Gli MSP430 non sono i migliori in assoluto, ma la maggior parte delle applicazioni che richiedono bassi consumi fanno degli MSP430 la soluzione ottimale.
La CPU non e' la sola a consumare corrente, quando si realizza un progetto e' importante anche controllare i consumi delle periferiche che si vuole utilizzare. Gli MSP430 hanno per ogni periferica impostazioni particolari che permettono di bilanciare correnti e prestazioni, ovvero piu' si vuole essere veloci maggiore e' la corrente da pagare...Normalmente si hanno 2-3 impostazioni possibili.
Ammetto che in questo confronto mi sono fatto prendere un po' dall'entusiasmo ma non me ne vogliate. Preferisco essere considerato un progettista piuttosto che una persona del marketing. Mi piace vendere soluzioni ottimali e non vendere per vendere!
Saluti,
Mauro
ottima domanda!
Prima di rispondere vorrei mettere in evidenza che ho un certo rispetto per i PIC della Microchip, e credo che questo sito lo dimostri. Conoscendo gli MSP430 posso leggere il documento che hai lincato con una certa criticità. Realizzare componenti come gli MSP430 e PIC XLP richiede conoscenze della fisica che vanno ben oltre la conoscenza comune. Purtroppo molti dei sacrifici dei progettisti vengono spesso deformati dal Marketing il cui compito e' vendere. I PIC XLP sono degli ottimi prodotti ma il documento presentato sul link pone mezze verità. I numeri piccoli attraggono allo stesso modo con cui i numeri grandi fanno vendere meglio i computer.
Le mie osservazioni sul un confronto tra MSP430 e PIC XLP presentati sull'articolo non fanno riferimento agli ultimi prodotti presentati dalla Texas Istruments, ma solo al documento stesso.
Sleep currents down to 20 nA
Il primo punto mette in evidenza che il PIC XLP puo' avere correnti in sleep mode di 20nA, mentre gli MSP430 scendono fino a 100nA (I nuovi MSP430 della famiglia Wolverine riducono questi consumi). Al fianco di questo punto viene messo in evidenza che il PIC, per applicazioni a batteria ha il BOR (Brown Out Reset), ovvero per le applicazioni in cui 20nA sarebbero utili. Il BOR pero' non e' includo nei 20nA (richiede almeno altri 45nA) per cui i 20nA divengono 65nA. Gli MSP430 nei 100nA includono invece il BOR. In 20nA non e' specificato che il PIC e' praticamente in stato di off, la RAM e ogni registro perde il suo contenuto, quindi ad ogni risveglio e' necessario impostare ogni periferica. Gli MSP430 con 100nA mantengono i dati in memoria RAM e relativi registri, dunque dopo il risveglio partono subito nell'esecuzione del codice utile e non devono impostare tutto da capo, il che permette di tornare prima in stato di sleep. Questo vantaggio non e' poco se si pensa di volere salvare dei dati in RAM in attesa di elaborarli in un secondo tempo. Molte applicazioni lo fanno per cui in questo caso potrebbe essere meglio un MSP430. Nel caso in cui questo non sia necessario o il BOR non sia utile, i 20nA del PIC sono un bel vantaggio ma come detto i nuovi MSP430 con FRAM eguagliano questo punto)
Active Mode currents down to 50 uA/MHz
Questo punto non so da dove esca, e' non vero, forse e' un errore...
Basta prendere il caso ad 1MHz riportato nella tabella sotto, in cui scrive che i consumi sono 292uA, ovvero 6 volte quanto dichiarato. Vedendo sul datasheet e usando altre frequenze i consumi sono sempre intorno a 300uA o piu'.
Un trucco in realta' c'e' ed e' quello di usare il clock al massimo e dividere per il numero di MHz. Quindi i 50uA/MHz si hanno solo se si ha il microcontrollore al massimo della frequenza che in applicazioni a batterie e' raro. Questo calcolo e' fatto anche per gli MSP430 ma non e' trasparente in nessun datasheet.
Al fine di avere dei valori reali e' sempre bene far riferimento alla tabella in cui sono riportati i consumi reali e la frequenza.
E' importante notare che i PIC18 eseguono una istruzione pgni 4 cicli di clock per cui in generale i consumi vanno moltiplicati per 4 mentre per i dsPIC vanno moltiplicati per 2. Per gli MSP430, Clock e cicli intrusioni sono 1:1 .
La ragione per cui a basse frequenze si ha una corrente maggiore e' dovuta al fatto che c'e' sempre una corrente necessaria per alimentare la circuiteria di "base" indipendente dal clock.
Diversi MSP430 hanno un LDO interno per alimentare la CPU ad una tensione piu' bassa. Questo permette di avere dei bassi consumi anche a basse frequenze.
Nella tabella riportata sul sito, confrontando le correnti allo stato attivo i PIC XLP risultano apparentemente migliori. Controllando il datasheet e' chiaro che confrontando i valori massimi (valori certificati) gli MSP sono migliori.
E' importante controllare anche la variazione della corrente necessaria per una periferica al variare della temperatura.
Non e' bello prendere il migliore dei PIC e metterlo al confronto con l'MSP430 che ha il valore peggiore. Hanno fatto anche un video su questo e dal per cui sembra che sia la verità. Questo non e' fatto solo dalla Microchip ma anche da altre società. Si prende il proprio componente migliore e lo si confronta con il peggiore componente con il quale si vuol fare il confronto. E' il datasheet il documento ufficiale e sono i valori massimi quelli che fanno testo. In questo caso vorrei ricordare anche gli MSP430 con FRAM che rispetto all'MSP430 preso per il confronto, dimezzano i consumi allo stato attivo, per cui il confronto e' a favore degli MSP430. La nuova famiglia con FRAM, nominata Wolverine, dimezza non solo la corrente allo stato attivo ma anche quella in stato di sleep.
Execute code smarter, sleep longer, maximize battery life
Questo punto mette ancora in evidenza quanto il marketing giochi un ruolo nelle vendite. Hanno messo assieme parole chiave che assieme non significano nulla ma attirano l'attenzione. E' interessante notare come molti valori nel datasheet del PIC hanno il valore tipico proprio uguale al valore che per gli MSP430 e' invece il caso peggiore (quindi gli MSP430 sono migliori se quei parametri sono importanti)! Si guardi per esempio la corrente di leakage e i tempi di risveglio dallo stato di sleep.
Riguardo agli stati di sleep, sono presenti varie fasi, in cui non tutti i clock sono disattivi (e' l'approccio degli MSP430). Per questa ragione ci sono i confronti anche con diversi clock.
In ultimo vorrei ricordare che spesso l'utilizzo di un microcontrollore rispetto ad un altro dipende dal prezzo finale quindi la vittoria o meno di un prodotto discende solamente da quanto una societa' e' disposta ad abbassare il prezzo del proprio componente, e non dal fatto che il componente sia effettivamente migliore per l'applicazione (tengo a sottolineare la parola applicazione).
E' anche interessante come la Microchip faccia il confronto con gli MSP430 per mostrare di essere i migliori. Altre società fanno lo stesso. Ma se se le altre società pensano realmente che la Microchip sia la migliore come vuole mostrare perché le altre società non si confrontano con la Microchip piuttosto che con gli MSP430?
Gli MSP430 non sono i migliori in assoluto, ma la maggior parte delle applicazioni che richiedono bassi consumi fanno degli MSP430 la soluzione ottimale.
La CPU non e' la sola a consumare corrente, quando si realizza un progetto e' importante anche controllare i consumi delle periferiche che si vuole utilizzare. Gli MSP430 hanno per ogni periferica impostazioni particolari che permettono di bilanciare correnti e prestazioni, ovvero piu' si vuole essere veloci maggiore e' la corrente da pagare...Normalmente si hanno 2-3 impostazioni possibili.
Ammetto che in questo confronto mi sono fatto prendere un po' dall'entusiasmo ma non me ne vogliate. Preferisco essere considerato un progettista piuttosto che una persona del marketing. Mi piace vendere soluzioni ottimali e non vendere per vendere!
Saluti,
Mauro
Ultima Modifica 12 Anni 3 Mesi fa da Mauro Laurenti.
Ringraziano per il messaggio: Gianni
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.