Autor Tema: programa para testear 2 uart en DSPIC33FJ256GP710-I/PF  (Leído 4456 veces)

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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #15 en: 18 de Abril de 2016, 16:26:52 »
Mmm complicado el tema...

Pero usandolo a Fp=32Mhz ( Salida del PLL 64Mhz = Fosc ) te queda al cargar el registro del baudrate con 34, y tenes un baudrate de 57142 que es mucho mas proximo a 57600 que el anterior. Quedando esta ves un error de 0.08% ( 458 baudios de diferencia )

Para tener un punto de comparacion:

Fp = 16 Mhz, usando 4x, BGR = 68 => 57971 baudios, 371 baudios de error ( 0.06% )
Fp = 32 Mhz, usando 4x, BGR = 138 => 57553 baudios, 46 baudios de error ( 0.008% )

No esta tan lejos el de 16x al de 4x con 16Mhz ( 16 MIPS ),

Podrias seguir usando la CPU en 16MIPS si es que modifican el DOZE a 1:2

« Última modificación: 18 de Abril de 2016, 16:39:17 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #16 en: 18 de Abril de 2016, 18:46:37 »
mmm, no entendí esta parte... como sería el caso para usar 16x?
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #17 en: 18 de Abril de 2016, 19:04:25 »
x16 seria la "velocidad estándar"... sino la alta velocidad es cuando activas el bit BGRH, y la formula de los baud rate, en ves de dividirse por 16 se hace por 4. Este es el caso que usan en tu proyecto. Pero por el errata hay que limitarse a solo el de la velocidad estandar, es decir que la formula se calcula con el 16, por eso el x16

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #18 en: 18 de Abril de 2016, 21:42:22 »
ahi me pasaron los cambios. Si no veo mal pasaron a 32 MIPS, deshabilitaron el BGRH y la macro que calcula el U1BRG :

Código: C
  1. #define UDB_BAUD(x) ((int16_t)((FREQOSC / CLK_PHASES) / ((int32_t)4 * x) - 1))
a
Código: C
  1. #define UDB_BAUD(x) ((int16_t)((FREQOSC / CLK_PHASES) / ((int32_t)16 * x) - 1))

y lo usan así:

Código: C
  1. void udb_gps_set_rate(int32_t rate)
  2. {
  3. #if (CONSOLE_UART != 1)
  4.         U1BRG = UDB_BAUD(rate);
  5. #endif
  6. }

lo mismo que vos comentaste  :P
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #19 en: 18 de Abril de 2016, 21:49:02 »
por cierto, cada vez que editas un mensaje, me salteo lo que agregas casi siempre, ya que no me llega notificacion de mensaje nuevo. recien estuve releyendo y veo que ya me mandaste el proyecto para probar, antes no lo habia visto!

saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #20 en: 18 de Abril de 2016, 22:22:53 »
por cierto, cada vez que editas un mensaje, me salteo lo que agregas casi siempre, ya que no me llega notificacion de mensaje nuevo. recien estuve releyendo y veo que ya me mandaste el proyecto para probar, antes no lo habia visto!

Yo era para no crear otro post siendo yo el ultimo.
Si, por lo que veo solo le cambiaron la formula, la cual corresponde a la de "baja velocidad" ( por eso el 16 en el denominador ) o que es lo mismo que el BGRH en 0.

Recorda que en estos PICs el nucleo puede ir a diferente frecuencia que los perifericos. Asi que por mas que FREQOSC sea de 32Mhz puede que al nucleo este entrado menos frecuencia y estes trabajando a 16Mhz por ejemplo.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #21 en: 18 de Abril de 2016, 23:22:15 »
Bueno, ahi probe lo que me pasaron y funciona de 10.
Me deja mucho mas tranquilo que no haya sido un problema de harware, tipo ruteo o ruido o ground loop.

estaba pensando que te debo a vos la solucion porque yo ya me habia olvidado del tema que mi dsp era 710 y no 710A y fuiste vos quien trajo la errata sheet-

Gracias KILLER!!!!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:programa para testear 2 uart en DSPIC33FJ256GP710-I/PF
« Respuesta #22 en: 19 de Abril de 2016, 05:22:43 »
estaba pensando que te debo a vos la solucion porque yo ya me habia olvidado del tema que mi dsp era 710 y no 710A y fuiste vos quien trajo la errata sheet-

Gracias KILLER!!!!

De nada aunque yo no hice nada, cuando fui a seleccionar los dsPIC en el MPLAB aparecieron los 2, y luego cuando fui a buscar su datasheet me encuentro con un mensaje gigante que decia que no era recomendado para nuevos productos, lo cual sinceramente me parecio raro, fue ahi que me di cuenta el por que habia salido el 710A, y pense directamente en las erratas.