TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: RodrigoAndres en 24 de Enero de 2016, 10:41:54

Título: UART a 921600 baudios (SOLUCIONADO)
Publicado por: RodrigoAndres en 24 de Enero de 2016, 10:41:54
ola a todos, lo que pasa es que necesito hacer correr el puerto uart a 921600 baudios con el PIC18F4550, pero el problema es que haciendo los calculos la velocidad mas cercana que alcanza es un millon de baudios, eso seria como 8% de error y no creo que sea bueno. lo que me pregunto es si hay algun pic parecido que no tenga tanto error y alcanze 921600 baudios??
Título: Re:UART a 921600 baudios
Publicado por: RodrigoAndres en 24 de Enero de 2016, 11:44:41
la clave era colocar el BAUDCONbits.BRG16=1; para que quedara con la formula de 48000000/(4*(n+1))

Código: [Seleccionar]

    OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE &
    USART_EIGHT_BIT & USART_SINGLE_RX & USART_BRGH_HIGH,12);
    BAUDCONbits.BRG16=1;

Título: Re:UART a 921600 baudios (SOLUCIONADO)
Publicado por: RodrigoAndres en 24 de Enero de 2016, 21:06:50
En realidad es asi:

Código: [Seleccionar]
    OpenUSART(USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE &
             USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH,12);
    BAUDCONbits.BRG16=1;   
    RCONbits.IPEN = 1; // abilitamos Prioridades
    IPR1bits.RCIP = 1; //alta priorida usar

la diferencia es el USART_SINGLE_RX, no se que es esa cosa rara pero hace que no alla interrupcion, se la cambie por USART_CONT_RX  y funsiono muy bien. se lo recomiendo mucho a la gente que programa pics