Autor Tema: Problema con baud rate  (Leído 3261 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado waltermet

  • PIC10
  • *
  • Mensajes: 25
Problema con baud rate
« en: 30 de Enero de 2004, 07:21:00 »
Debo transmitir por el puerto serie a un baud rate de 4800 y para ello estoy empleando la instrucción serout2 -serout2 portB.2,16572,[dat[j]] - . Esto lo hice en primera instancia con un cristal de 4MHz pero ahora debo aumentar el valor del cristal a por lo menos 10MHZ. Al hacerlo ya no puedo transmitir por el puerto serie. Por el momento estoy programando mayormente en pic basic pero si alguien puede darme una mano en asm estoy agradecido.
Tengo entendido que si pongo el bit BRGH a 0 del registro TXSTA con un cristal de 10 Mhz puedo transmitir a 4800.

Dede ya muchas gracias,
Waltermet

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Problema con baud rate
« Respuesta #1 en: 30 de Enero de 2004, 10:57:00 »
Hola waltermet,
Efectivamente si pones BRGH=0 tienes una velocidad baja en tu Usart, si estas usando un cristal a 4Mhz y tu salida serout (asincrona) no podras transmitir a ese baudrate (de acuerdo a las tablas de DS)
para ese baudrate necesitas cristales de 16 Mhz o (9.615) con un SPBRGH=25 o uno de 10 Mhz con SPBRGH=15.
En todo caso sale mas economico poner el de 4 Mhz con BRGH=1 y un SPBRGH=25.
Saludos

Una Razon asm para migrar a PBPP PLUS!!

Desconectado waltermet

  • PIC10
  • *
  • Mensajes: 25
RE: Problema con baud rate
« Respuesta #2 en: 31 de Enero de 2004, 06:10:00 »
Muchas Gracias Lager con el dato. Probé con una cristal de 10 MHz y le puse un SPBRGH=32 y funcionó la transmisión a través del puerto serie, así como con el SPBRGH=15 que me habías recomendado.
Ahora me pregunto ¿por qué con estos dos valores se genera el baud rate requerido?
Al número 32 llegué aplicacando la fórmula:
SPBRGH=(Fosc/(baudrate*64))-1

El valor 15 ¿cómo lo obtuviste?

Muchas Gracias.
Saludos,
Waltermet

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Problema con baud rate
« Respuesta #3 en: 31 de Enero de 2004, 13:03:00 »
Que tal Waltermet,
Que bueno que ya esta tranajando tu sistema, el SPBRG=15 es el valor indicado en la tabla 12-4 de la pagina 74 del DS de este Micro .
 Ahi viene la forma la config, de el  BRGH (alto o bajo) y las modalidades del SPRBGH para cada cristal, y su margen de error ya calculado.
Las formulas son las del DS:
para BRGH=0
(asincronico)----Baud Rate=Fosc/(64(x+1))
(sincronico)------Baud Rate=Fosc/(4(x+1))
Para BRGH=1
(asicronico)------Baud Rate=Fosc/(16(x+1))
(sincronico) -----NO EN USO
Donde x es SPBRGH
La verdad prefiero ver la tabla del DS del mico que use  y matar mis neuronas en otra funcion.
Saludos pana

Una razon asm Para migrar a PBP PLUS!!

Desconectado waltermet

  • PIC10
  • *
  • Mensajes: 25
RE: Problema con baud rate
« Respuesta #4 en: 03 de Febrero de 2004, 06:23:00 »
Muchas Gracias Lager, por tu ayuda ya tengo funcionando bastante bien la comunicación serie. Ahora voy a ver si puedo probar con un cristal de 20MHz porque necesito que el ciclo de instrucción sea más chico.

Saludos,
Waltermet

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Problema con baud rate
« Respuesta #5 en: 03 de Febrero de 2004, 11:06:00 »
Que tal Waltermert, espero que te haya servido de algo la info. y ya sabes entre todos siempre podremos resolver cualquier problema con estos micros y suerte con tu proyecto

Saludos pana