Autor Tema: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.  (Leído 24863 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #30 en: 30 de Enero de 2010, 08:52:23 »
Como extra a los resultados de Cerebro puedo confirmar que esta split radix se ejecuta correctamente en un PIC24 en CCS. Tarda 674us en entregar resultados corriendo el pic a 16MIPS.  :mrgreen:

Excelente! Yo estaba por probarlo en un PIC24H en C30, si nadie se me adelanta les comento los resultados  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #31 en: 30 de Enero de 2010, 11:19:14 »
Podría augurar que se ejecutará en 360us aproximadamente  :mrgreen:

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #32 en: 30 de Enero de 2010, 16:04:20 »
Podría augurar que se ejecutará en 360us aproximadamente  :mrgreen:

 :? me parece que tendría que ser 270 us  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #33 en: 30 de Enero de 2010, 16:44:55 »
No creo que podáis hacer una extrapolación de 16MIPS a 40MIPS directamente porque los PIC24F y los PIC24H no son idénticos en cuanto a prestaciones, ¿no?.
No me toméis muy en serio pero creo recordar que los 24H tienen operaciones de multiplicación y división complejas que los acercan a los dsPIC.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #34 en: 30 de Enero de 2010, 16:48:55 »
Ahhhh 40MIPS... yo usé 30MIPS  :P

Quiero un PIC24H  :mrgreen:

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #35 en: 30 de Enero de 2010, 17:00:34 »
No creo que podáis hacer una extrapolación de 16MIPS a 40MIPS directamente porque los PIC24F y los PIC24H no son idénticos en cuanto a prestaciones, ¿no?.
No me toméis muy en serio pero creo recordar que los 24H tienen operaciones de multiplicación y división complejas que los acercan a los dsPIC.

Nop, no tienen operaciones con complejos. Algunas diferencias son, los PIC24 tienen USB y los PIC24H no, pero estos últimos tienen DMA y trabajan a 40 MIPS, entre otras cosas.

Ahhhh 40MIPS... yo usé 30MIPS  :P

Quiero un PIC24H  :mrgreen:

 :D :D Pero fallaste!!! Ahora hay que ver en realidad que sucede  :?

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #36 en: 30 de Enero de 2010, 17:36:43 »
Bueno, el simulador dice que necesita 11266 ciclos de reloj y a 40 MIPS en un PIC24HJ serían ~282us, compilado en C30.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #37 en: 28 de Marzo de 2010, 14:26:25 »
Hola

Estoy haciendo pruebas con el algortimo de la FFT split radix y un PIC32 corriendo a 80MIPS. La velocidad de cálculo en MPLAB SIM es de 76us aproximadamente, superando por mucho a la del PIC24 (casi 9 veces más rápido).

http://img138.imageshack.us/img138/3999/pic32fft.png


Pero tengo un problema, coloqué el siguiente código...

Código: [Seleccionar]
while(1)
   {
   R16SRFFT(data, out);
   PORTWrite(IOPORT_B, i++);
   }

... el cual hace un toggle a un led conectado a B0. La frecuencia que debería medir en tal pin es de 6.5kHz (2 veces 74us), pero haciendo la medición con el pickit observo que la señal es mucho más lenta...

http://img696.imageshack.us/img696/3931/pickit.png


No sé qué esté pasando. Al menos la velocidad de la FFT parece ser buena en simulación.

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #38 en: 28 de Marzo de 2010, 15:16:56 »
 :? porque tan lento el calculo... será que esta corriendo a 80 MIPS el micro? como se puede chequear eso?
LAS MALVINAS SON ARGENTINAS!

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #39 en: 28 de Marzo de 2010, 15:21:09 »
En MPLAB SIM el cálculo toma 76us. El problema que tengo está en la salida de B0, que es más lenta que el cálculo (600us aprox.).  :(

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #40 en: 28 de Marzo de 2010, 15:38:40 »
Podes poner el desassembling list? para poder ver que codigo ASM genera cada linea?
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #41 en: 28 de Marzo de 2010, 15:54:14 »
Podes poner el desassembling list? para poder ver que codigo ASM genera cada linea?

Aquí lo tienes Bruno.

Código: [Seleccionar]
69:                  while(1)
70:                     {
71:                     //PORTToggleBits(IOPORT_B, BIT_0);
72:                     R16SRFFT(data, out);
9D000864  27A40010   addiu       a0,sp,16
9D000868  0F400006   jal         0x9d000018
9D00086C  27A50050   addiu       a1,sp,80
73:                     PORTWrite(IOPORT_B, i++);
9D000870  02002821   addu        a1,s0,zero
9D000874  00002021   addu        a0,zero,zero
9D000878  0F4009F4   jal         0x9d0027d0
9D00087C  26100001   addiu       s0,s0,1
9D000880  1000FFF9   beq         zero,zero,0x9d000868
9D000884  27A40010   addiu       a0,sp,16
74:                     }

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #42 en: 28 de Marzo de 2010, 23:22:33 »
Bueno, ya quedó solucionado el asunto del puerto B.

El problema estaba en que la memoria de programa de los PIC32 es lenta y para solucionarlo se debe usar la Prefetch Caché. El cálculo de la FFT tardaba mucho más tiempo en ejecutarse porque se cargaba directamente de la rom. Al escribir la siguiente línea:

Código: [Seleccionar]
int main()
{
    //STEP 1. Configure cache, wait states and peripheral bus clock
    // Configure the device for maximum performance but do not change the PBDIV
    // Given the options, this function will change the flash wait states, RAM
    // wait state and enable prefetch cache but will not change the PBDIV.
    // The PBDIV value is already set via the pragma FPBDIV option above..
    SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);

se carga el contenido de la rom en la caché antes de ejecutarse y posteriormente se ejecuta desde ella... habilitando así una más rápida ejecución.

Usando la caché la FFT toma 98u y sin caché 604us.

http://img31.imageshack.us/img31/6021/cachey.png

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #43 en: 29 de Marzo de 2010, 00:22:06 »
Por la syntaxis noto que son bits de configuracion , eso es cierto???
O estoy confundiendo eso con el pragma del PPBDIV?

Le estas sacando jugo al pickit2 n_n

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: SOLUCIONADO-problemas con FFT con 18f4550, queriendo inventar la rueda.
« Respuesta #44 en: 29 de Marzo de 2010, 00:26:00 »
Bueno, ya quedó solucionado el asunto del puerto B.

El problema estaba en que la memoria de programa de los PIC32 es lenta y para solucionarlo se debe usar la Prefetch Caché. El cálculo de la FFT tardaba mucho más tiempo en ejecutarse porque se cargaba directamente de la rom. Al escribir la siguiente línea:

 :shock: Todos los días se aprende algo nuevo!  :lol: De cuanto es la cache del micro?
No contesto mensajes privados, las consultas en el foro