Hola a todos,
Estoy tratando de adaptar las librerias que provee Microchip para una de sus placas de desarrollo (M2M) para comunicarse con un modulo GPRS y GPS de UBlox, pero para un micro PIC32MX440F512h.
El caso es que tengo un problema de lo mas tonto con la UART. Resulta que consigo transmitir un comando al modulo GPRS, y este envia una respuesta (lo he comprobado con un osciloscopio y con un "espia USB".
Sin embargo, esos datos enviados nunca llegan a estar disponibles en el micro (si justo despues de enviar de enviar ejecuto while (!UARTReceivedDataIsAvailable(UART2)); se queda bloqueado ahi).
Y claro, obviamente la interrupcion no salta.
Como datos os pongo como inicializo la UART:
INTSetVectorPriority(INT_UART_2_VECTOR, INT_PRIORITY_LEVEL_5);
INTSetVectorSubPriority(INT_UART_2_VECTOR, INT_SUB_PRIORITY_LEVEL_1);
INTEnable(INT_U2RX, INT_ENABLED);
INTClearFlag(INT_SOURCE_UART_RX(UART2));
INTClearFlag(INT_SOURCE_UART_TX(UART2));
UARTConfigure(UART2 , UART_ENABLE_PINS_CTS_RTS | UART_RTS_WHEN_RX_NOT_FULL);
UARTSetDataRate(UART2 , p32GetPeripheralBusClock(), 19200);
UARTSetLineControl(UART2 , UART_DATA_SIZE_8_BITS | UART_PARITY_NONE | UART_STOP_BITS_1);
UARTSetFifoMode(UART2 , UART_INTERRUPT_ON_RX_NOT_EMPTY);
UARTEnable(UART2 , UART_ENABLE_FLAGS(UART_PERIPHERAL | UART_TX | UART_RX));
Estoy usando MPLAB X .
Mis bits de configuracion:
#pragma config UPLLEN = ON
#pragma config UPLLIDIV = DIV_2
#pragma config FPLLMUL = MUL_16
#pragma config FPLLIDIV = DIV_2
#pragma config FPLLODIV = DIV_4
#pragma config FPBDIV = DIV_2
#pragma config FWDTEN = OFF
#pragma config WDTPS = PS2048
#pragma config FCKSM = CSECME
#pragma config OSCIOFNC = OFF
#pragma config POSCMOD = XT
#pragma config IESO = OFF
#pragma config FSOSCEN = ON
#pragma config FNOSC = PRIPLL
#pragma config CP = OFF
#pragma config BWP = OFF
#pragma config PWP = OFF
#pragma config ICESEL = ICS_PGx2
#pragma config DEBUG = OFF
Alguna idea de que puede estar pasando???
Gracias!