SparkFun Forums 

Where electronics enthusiasts find answers.

Tips and questions relating to the GPS modules from SFE
By jneice
#52868
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!
By jasonharper
#52885
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.