Problema con PIC24F UART

1

El problema que tengo es con mi PIC24FJ64GA002 y el (los) módulo (s) UART. El 24F que tengo está en un paquete SPDIP28 y es un nuevo chip B5 (solo uno bajo la última revisión B8) de Microchip Direct. He comprobado los problemas de errata que me afectaron la última vez con el módulo I2C.

De todos modos, estoy configurando el módulo UART1 como un simple transmisor. Estoy usando el PPS pin RP8 como RX, RP9 como TX y RP11 como el pin CTS. Por ahora he puesto a tierra RX y CTS ya que no los necesito. He establecido el BRG en 115,200 (tasa real ~ 114,285.7, pero es lo suficientemente cerca). Estoy usando el código de abajo. Espero ver una serie de bytes transmitidos en RP9, pero no lo hago. RB15 es una salida de depuración: pulsa en cada byte que se envía. En RB15 recibo un reloj realmente lento, alrededor de 700 Hz, que es muy bajo para un enlace de 115.200 baudios; Yo esperaría unos 14 kHz.

#include <p24fj64ga002.h>

#include <uart.h>
#include <pps.h>

void init_osc()
{
    // Must be programmed for FRCPLL mode.
    //UNLOCK_OSC();
    CLKDIVbits.RCDIV = 0;
    //LOCK_OSC();
}

void main()
{
    int i = 0x55;
    PPSUnLock;
    // Initialize oscillator (set FRC to 8 MHz.)
    init_osc();
    // Initialize UART1 PPS.
    iPPSInput(IN_FN_PPS_U1RX, IN_PIN_PPS_RP8);
    iPPSInput(IN_FN_PPS_U1CTS, IN_PIN_PPS_RP11);
    iPPSOutput(OUT_PIN_PPS_RP9, OUT_FN_PPS_U1TX);
    PPSLock;
    // Interrupts disabled for now.
    //ConfigIntUART1(UART_RX_INT_EN | UART_RX_INT_PR6 | UART_TX_INT_EN | UART_TX_INT_PR6);
    OpenUART1(UART_EN & UART_BRGH_SIXTEEN & UART_NO_PAR_8BIT & UART_1STOPBIT, UART_TX_ENABLE, 34);
    TRISBbits.TRISB15 = 0;
    while(1)
    {
        LATBbits.RB15 = 1;
        LATBbits.RB15 = 0;
        while(BusyUART1());
        WriteUART1(i);
        i++;
    }
    CloseUART1();
}

Siento que me he perdido algo obvio, pero no puedo entender qué es. Si alguien ha tenido experiencia previa con el módulo UART en dispositivos de la serie 24F, ¡hágamelo saber! He tenido poca suerte con los foros de Microchip.

    
pregunta Thomas O

1 respuesta

2

Vea la página 110 de la hoja de datos.

Además, debe deshabilitar las entradas analógicas en los pines que está utilizando.

    
respondido por el Leon Heller

Lea otras preguntas en las etiquetas