Newsgroup: it.hobby.elettronica.digitale
Titolo: DMIPS

Ciao,
	sto valutando se con un micro riesco a fare tutto quello che mi serve 
per un lavoro. Il datasheet dice che il processore raggiunge i 1.25 
DMIPS/MHz il che significa 62.5 DMPIS @ 50 MHz.
Come si confrontano i DMIPS con i MIPS?
Mi spiego con un esempio:
La versione iniziale del progetto prevedeva due ATmega644P @ 20 MHz. Il 
primo si occupava di leggere da una SD-card file wave PCM stereo 16 bit 
44100 Hz e di inviare su una seconda SPI i campioni a un DAC. Da una 
seriale asincrona avrebbe ricevuto i comandi di load, start e stop da 
parte del secondo micro. Questo avrebbe letto da una memoria esterna un 
file di testo (in realtà una 30ina di byte ogni secondo) e avrebbe 
gestito operazioni quali semplici I/O, un RTC e un "ripetitore" di 
comandi DMX tra due seriali asincrone oltre a ricevere comandi 
provenienti da un sensore infrarosso (telecomando Philips).
L'idea era di sostituire i due micro con un ARM (in particolare un 
LM3Sxxxx) in maniera che gestisse tutto lui (magari con una sola SPI 
condivisa tra SD e DAC).
Ora, a spanne ho verificato che l'Atmel che si occupava dell'audio 
sarebbe riuscito giusto giusto nel suo compito, e siamo a 20 MIPS.
Mi sembra abbastanza plausibile che sia possibile aggiungere le altre 
funzioni senza troppi problemi... ma non vorrei mai avere la brutta 
sorpresa dopo! Ho il tempo di imparare e sviluppare sul nuovo micro, ma 
non ne avrei a sufficienza per poi dover rifare tutto con i due Atmel...
Che dite... ce la si fa?
Marco / iw2nzm

 e DAC).
Gli ARM danno un vantaggio enorme quando devi
eseguire delle elaborazioni sui segnali, però a volte
sono piuttosto limitati nella gestione degli I/O. Mi è
capitato ad esempio di usare degli ARM7 che non
disponevano di clock maggiori di 3MHz per la SPI,
pur lavorando a 40MHz! Oppure altri che avevano
frequenze di aggiornamento delle porte piuttosto
ridotte... Per il resto per l'esecuzione delle routine
non ci dovrebbero essere problemi.
A.D.

 non ci dovrebbero essere problemi.
Nel mio caso le uniche cose veloci da fare sono leggere dalla sd-card e 
scrivere sul DAC, o meglio leggere dal file system e predisporre il 
buffer per i dati di uscita. Il datasheet dice che il clock della SPI 
può arrivare fino a 25 MHz. Sull'AVR andavo a 10 MHz. Non credo però che 
conti tanto la velocità di trasferimento sull'SPI: essendo hardware, una 
volta avviata la trasmissione il micro dovrebbe avere tempo di fare 
dell'altro mentre aspetta l'interrupt di fine trasmissione.
Uso la libreria fatfs, andrò a vedere che l'autore non abbia messo il 
micro in attesa di ogni byte, sarebbe assurdo!
Ciao!
Marco / iw2nzm

 ha scritto:

Gli ARM hanno 30 registri general purpose a 32 bits, anche se solo 15 sono
disponibili in ogni situazione.
Se devi fare delle elaborazioni si va molto più veloci che con un AVR, anche
perchè le istruzioni in ASM sono molto più performanti.
Leggi qui, cap.3 pag.37 e seguenti per approfondire la macchina, cosa che ti
sarà utile anche se usi il C.
http://www.arm.com/miscPDFs/9658.pdf
--
ciao
  Stefano

 pur lavorando a 40MHz!
Palando più o meno in generale, l'uso di due SPI rispetto a una sola 
condivisa di quanto aumenta il potenziale flusso di dati? Non certo del 
doppio visto che comunque occorre gestire i pacchetti in entrata e 
uscita... Mi sto chiedendo cioè se ha senso su un ARM del genere 
sceglierne uno con due SPI (uno per la SD e l'altro per il DAC) tenuto 
conto che il DAC viene impegnato per circa 4 us ogni 23 us. Il resto è a 
disposizione della SD... secondo me ne basta una...
Ciao!
Marco / iw2nzm

 
http://www.arm.com/miscPDFs/9658.pdf
Molto molto interessante! Grazie :)
Marco / iw2nzm

 ogni 23 us. Il resto è a disposizione della SD...
Controlla bene i tempi delle SD, perchè sono piuttosto lente
in alcune operazioni, e non sempre puoi fare "interleaving"
con il DAC in maniera efficiente... Comunque, vista
l'applicazione, dovresti farcela con una SPI.
A.D.