Autor Tema: No consigo ajustar a una velocidad de 31250 baudios el USART  (Leído 1653 veces)

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

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
No consigo ajustar a una velocidad de 31250 baudios el USART
« en: 13 de Junio de 2018, 15:26:40 »
Hola a todos, estoy usando un PIC18F4620 y he implementado el USART para enviar una transmisión de 31250 baudios pero no consigo configurara el USART para que trabaje a esa velocidad, según el datasheet del fabricante me dice la formula que tengo que aplicar para saber que valor tengo que poner en el registro SPBRG según la velocidad del cristal para conseguir esa velocidad, pero no la consigo, lo único que logro es sacar velocidades estándar de baudios, incluso poniendo los valores a mano en prueba y error me pasa de un valor de 38400 a 28800 de golpe aunque aproxime poco a poco.
Estoy usando las librerías estándar de USART del compilador XC8.



Según creo mi cristal es de 20MHz pero con un preescales que lo subo a 40MHz, lo tengo configurado a 8 bits en alta velocidad y según la formula el resultado es de 79 pero la velocidad que saco es de 57600 baudios



Si alguien ha implementado esto y sabe como configurar las velocidades agradecería la ayuda ;)
« Última modificación: 09 de Julio de 2018, 08:19:16 por Thulsa Doom »
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re:[SOLUCIONADO]No consigo ajustar a una velocidad de 31250 baudios el USART
« Respuesta #1 en: 13 de Junio de 2018, 16:57:34 »
El problema es el cristal y el PLL, no vale activar el PLL con un cristal de 20MHz por que no se ajusta a 40MHz, para obtener 40MHz hay que poner un cristal de 10MHz, si saco el PLL y hago el cálculo con el cristal de 20MHz si que se ajusta la velocidad de los baudios a los 31250.
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:[SOLUCIONADO]No consigo ajustar a una velocidad de 31250 baudios el USART
« Respuesta #2 en: 13 de Junio de 2018, 17:02:43 »
Bueno, justo escribi mientras respondiste, y era eso.. el PLL soporta una entrada de 4 a 10Mhz.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re:[SOLUCIONADO]No consigo ajustar a una velocidad de 31250 baudios el USART
« Respuesta #3 en: 13 de Junio de 2018, 19:15:25 »
Gracias compañero por tu inestimable ayuda  :lol:
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re:[SOLUCIONADO]No consigo ajustar a una velocidad de 31250 baudios el USART
« Respuesta #4 en: 27 de Junio de 2018, 18:22:41 »
Pues comienzo de nuevo con el problema, he cambiado a un cristal de 10MHz y le he activado el PLL y solo le cambié el dato de registro SPBRG al valor de 79 que según la firmula es el indicado para un cristal de 10MHz con PLL activado que llega a 40MHz y no funciona bien, hace cosas raras.
Me pasa igual que cuando hice la consulta, por mucho que le meto valores próximos al 79, no ajusta, con ese valor los BAUDIOS los tgengo en 25000, le voy bajando el valor y la velocidad es la misma hasta llegar al valor 75 que cambia a 50000, no entiendo si no he tocado nada del código porqué hace esto, es como si hubiera algún bug en el micro.
Vuelvo a poner el mismo cristal que tenía y dejar la misma configuración pero ya no funciona.

Si alguien quiere echarme una mano y prueba el proyecto a ver si le hace lo mismo.
USART_xc8


[ACTUALIZADO] Está solucionado, el problema era el modo de captura del analizador lógico  :lol:
« Última modificación: 09 de Julio de 2018, 08:21:04 por Thulsa Doom »
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...


 

anything