??? GPS / PIC interface problem

Hello,

This post is similar to:

viewtopic.php?p=27145&sid=20d8d24ed2c60 … ef697cb815

but my PIC is reading garbage from the GPS.

I’m trying to connect an Evermore EB-E36 GPS to my PICDem FS USB Demo board. (The EB-E36 is similar to the EB-85A sold on SparkFun, just slower baud and less accurate)

I am using the MCC18 USART functions…

void main (void)

{

unsigned char x;

OpenUSART(USART_TX_INT_OFF &

USART_RX_INT_OFF &

USART_ASYNCH_MODE &

USART_EIGHT_BIT &

USART_BRGH_LOW &

USART_CONT_RX, 64);

while( 1 )

{

if( DataRdyUSART() )

{

x=RCREG; // Received data

/* Do something with the new data here */

}

}

}

I only have the GPS TX pin connected to a RX pin on the PIC. (And a pullup resistor.) The output from the GPS in garbage, it looks nothing like the datasheet specs.

I believe I have the baud rate right - I have a 20MHz crystal on the PICDem board, and the GPS is output 4800 baud.

Am I missing something?

Do I need more pin connections to the PIC other than the GPS TX?

Do I need to be error checking any flags from the USART?

Thanks!

You may have a 20 MHz crystal, but that doesn’t necessarily mean the PIC’s clock frequency is 20 MHz - the USB PICs have a fancy PLL system that allows them to run at 48 MHz (as needed to support full-speed USB) even with a much slower crystal.

Either recalculate your baud rate value for a 48 MHz clock, or change the config words to turn off the PLL.