Los dsPIC traen un PLL para multiplicar la frecuencia del micro .. como novedad (creo ) la serie dsPIC30F puede llegar a ejecutar 30millones de instrucciones por segundo (30MIPS) eso es muy rapido comparado con los pics de la serie 18F y de ahi para abajo .. el dsPIC ejecuta una instruccion cada cuatro ciclos del reloj del micro .. es decir para lograr los 30MIPS el reloj tiene que ser de 120MHz ... no vamos a poner un cristal de 120Mhz
dudo mucho que lo consigamos en la tiendita de componentes ... lo que se hace es utilizar un PLL el cual tiene miles de aplicaciones (no tantas!!
) una de ellas es como funcion de oscilador .. lo encontramos mucho en aplicaciones de RF donde la frecuencia del oscilador debe ser sumamente precisa ... el PLL nos da muchas ventajas ya que aplica conceptos de control para mantener la frecuencia de oscilacion muy muy exacta, una precision increible y casi inmune respecto a cambios en la temperatura ... como oscilador podemos multiplicar la frecuencia respecto a una referencia, en este caso, el cristal externo que le ponemos al micro ... para lograr los 120MHz debemos poner un cristal de 7.5MHz (maximo) ya que el PLL nos lo multipica por 16 .. de hecho una de las ventajas .. es que podemos cambiar la frecuencia de oscilacion en caliente ... a x8 o x4 o x1 ... no lo he intentado aun pero se que se puede ... Ademas un detalle interesante es que se puede overclockear pero el daño que pueda sufrir el dsPIC los desconozco ... yo le puse un cristal de 10Mhz y con PLL a x16 y no paso nada .. de hecho el programa funciono perfectamente .. Ahora para seleccionar el PLL se efectua desde los bits de configuracion con la siguiente linea .. en C30 ... no se en mikroC:
_FOSC(CSW_FSCM_OFF & XT_PLL16); //para los casi 30MIPS y con cristal de 7.3728MHz
Ahora la serie dsPIC33F puede correr a 40MIPS
La velocidad del dsPIC es sumamente importante porque para lograr muestrear señales de audio debemos generar interrupciones del timer a 44.1kHz o 23us aprox ... ahora ... debemos procesar una muestra dentro de ese tiempo ... un filtro IIR de orden 2 toma al menos 3 o 5 us procesarlo con punto fijo a 30MIPS ... previamente debimos sumarle el tiempo que duramos conviertiendo la muestra analogica .. a 200k samples per second nos toma como 5 o 7 us segun las mediciones que he hecho .. y luego de haberla procesado debemos sumarle el tiempo que nos toma poniendola en la salida o mas bien en el DAC ... que puede ser de unos 4us ... en total nos toma 16us tomar una muestra completa .. los 7 us restantes debemos poner el micro hacer tonto o lo ponemos en idle para esperar la proxima interrupcion
El dsPIC para audio de calidad CD no lo siento muy potente pero su precio (los 33F estan a $4
.. increible!), y la cantidad de foros, proyectos y codigo de ejemplo, appnotes .. no la encuentro en ningun otro micro .. ademas a mi me gusta trabajar en control automatico donde si acaso se muestrea a 1ms para aplicaciones de motores, robotica etc .. es genial ..
Saludos!