Unwanted Characters


#1

Hey

I’m connecting the ublox lea-4h GPS unit to UART2 port of the Wavecom q2687 dev kit. I’m receiving the data but with unwanted characters in my data as shown by the text below.

$ÃGPTXT,01,01,02,INT EXT0 (RCV) M4ÃH1.1 Jan 09 2006 15:39:5479
$ÃGPTXT,01,01,02,LIC 1EBF-BD07-E83ÃD-6BE1-0F7A
50
$GPTXT,01,01,02,ÃQDS 576181174722
$GPRMC,V,Ã,N
53
$GPVTG,N30Ã
$GPGGA,0,00,99.99,48Ã
$GPGSA,A,1,99.99,9Ã9.99,99.99
30
$GPGSV,1,1,00
79Ã
$GPGLL,V,N*64

This is how the data is received on the PC:

$GPTXT,01,01,02,INT EXT0 (RCV) M4H1.1 Jan 09 2006 15:39:5479
$GPTXT,01,01,02,LIC 1EBF-BD07-E83D-6BE1-0F7A
50
$GPTXT,01,01,02,QDS 576181174722
$GPRMC,V,N
53
$GPVTG,N30
$GPGGA,0,00,99.99,48
$GPGSA,A,1,99.99,99.99,99.99
30
$GPGSV,1,1,00
79
$GPGLL,V,N*64

I’m setting up UART2:

bool HandleWmfmUART2(adl_atResponse_t *response)
{
	adl_atCmdCreate ("AT+IPR=9600\r", ADL_AT_PORT_TYPE(ADL_PORT_UART2,FALSE), (adl_atRspHandler_t) NULL,NULL);
	       adl_atSendResponse ( ADL_AT_UNS, "UART2 set to 9600\32\r\n" );
    return FALSE;
}

void adl_main ( adl_InitType_e InitType )
{
    s32 returned_value;

    returned_value = adl_atCmdCreate ("AT+WMFM=0,1,2\r", FALSE,(adl_atRspHandler_t) HandleWmfmUART2,"*",NULL);
    TRACE((1,"adl_atCmdCreate: %d", returned_value));

    FCM_Handle = adl_fcmSubscribe(ADL_FCM_FLOW_V24_UART2, fcmCtrlHandler, fcmDataHandler);
    TRACE (( 1, "adl_fcmSubscribe: %d",FCM_Handle ));
}

My controlhandler:

bool fcmCtrlHandler(adl_fcmEvent_e event)
{
	TRACE((1, "Control event received --> %d", event));
	switch(event)
	{
		case ADL_FCM_EVENT_FLOW_OPENNED:
			TRACE((1, "Flow Opened"));
			// Switching v24 state from AT to DATA mode
			adl_fcmSwitchV24State(FCM_Handle, ADL_FCM_V24_STATE_DATA);
			break;
		case ADL_FCM_EVENT_V24_DATA_MODE:
			adl_fcmSendData(FCM_Handle, "DATA MODE", 10);
			break;
	}
	return TRUE;
}

My dataHandler:

bool fcmDataHandler(u16 DataLen, u8* Data)
{

	// The manipulation of the data to be done here
	adl_fcmSendData(FCM_Handle, Data, DataLen);
	adl_atSendResponse( ADL_AT_RSP, (ascii*)Data);
	Data = NULL;
	return TRUE;
}

If there is any one who may know what I should do, please help.

Thanks Tinus


#2

are you using hardware flow control?


#3

I’m connecting the GPS unit to a MAX232 and then to UART2 of the development kit. Then I’m using the FCM Service provided by ADL Library.


#4

Hiya,

Still doesn’t answer the question if you are using Hardware Flow Control.

To be specific, have you connected (at least) the RTS and CTS pins between your dev kit and your GPS? And yes, they will also have to go through the MAX232 level shifter…

ciao, Dave


#5

No, I’m only using the Rx, Tx and Ground. Well that is what is available to me.


#6

so you’e getting extra bytes (0xEE) in between your normal data?
maybe you’re picking up disturbances generated by the module?
you might want to double-check if your ground wires are in good order


#7

and try putting a 'scope on your data line…


#8

and use the module-ground as the ground for your scope


#9

and that the gound pins on the module are fully soldered.

Another one for the FAQ…?


#10

If i connect the PC to the UART2 of the dev kit i’m also receiving noice inbetwen my data. So I dont think this is on the GPS side.


#11

SO have you checked the module grounding?


#12

I’ve resoldered all of my pins on the GPS again and it is still getting extra bytes in my data.


#13

Not the GPS - the Wavecom GSM module!

The GSM module is the one with a transmitter in it that causes very large peaks in its current consumption - it’s those peaks that can give grief if the GSM module’s grounding is not totally solid…