U-centre not receiving data over RS232 connection from NEO-6M

0 votes
I have this Ublox GPS receiver http://www.hobbytronics.co.uk/gps/ublox-gps-neo6m

I'm using it with U-center v8.29 running on a laptop with "Prolific" USB-RS232 interface. The computer port is configured to the default 9600 8-bit no parity 1-stop.

Board is powered off 5V PSU (specification for this board is 3.3 - 6V)

When I connect to the GPS the connection indicator goes green, I think the PC must be communicating with the module ok because initially current draw is very low, but when I send the command to activate the receiver the current jumps up to approx 35mA which is the specified current for the module.

However, I get no valid data: the status indicator at the bottom of the U-center screen shows COM4 9600, which is the same as my PC port setting, but the indicator is repeatedly flashing red, not green as it should, and I get nothing displayed in any of the GPS windows.

The antenna has a good view of the sky.

I have an RS232 protocol analyser (an old Thurlby DA100) and an oscilloscope which I have used to monitor the RS232 output from the module. The analyser confirms 9600 baud but just shows bursts of garbage and framing errors in the data display. The scope shows regular bursts of data (mark +5V space 0V) about one burst per second.

It appears that the module is just sending corrupt data.

The module spec says the TX serial connection is compatible with 3.3V/5V systems, and my RS232 converter has a 5V interface. However I have noticed that the spec also says RX input max 3.6V - it seems strange if the serial interface is compatible with 5V one way but not the other.

I'm new to using these modules (but not new to electronics) and I've exhausted all the steps I can think of, short of trying a new module. Is it likely that I have a faulty one or is there anything else I should try first?

Be grateful for any pointers.
by Rampak asked Apr 14
0 votes
A) If the Prolific device is truly RS232, then polarity of mark/space, logic 1/0 are reversed from TTL-level UART.  That is, the RS232 input pin expects a -5V to indicate mark bits, idle line/logic 1 and a +5 to indicate space/logic 0/open line. This results in garbage characters and framing errors when connected to  TTL level UART as on the NEO-6M.
B) the 0 to +3.3V output of the 6M is probably good enough to drive an RS232 input gate expecting -5V to +5V logic levels.  The -5V to +5V output of an RS232 output driver is high enough to damage the 3.3V input gate of the 6M.

Note that the hobbytronics board may not have been built by u-blox. Hence, without a schematic, you must verify just what the PCB is doing, regardless of the webpage description.  For example, u-blox GPS modules start sending NMEA messages within a fraction of a second after VCC is applied; they do not need a wakeup command as you describe.  So something else is intervening.

Verify exactly what the Prolific device is ---RS232 or TTL level interface?
Verify the PCB board product UART interface --- RS232 signalling or TTL level signalling AND at what voltages? The manufacturer of the PCB product may have included a buffer or level translator or TTL to RS232 interface converter on the PCB.

And, of course, the TX output of the GPS PCB must connect to the RX input of the Prolific and vice-versa, once you have the signalling interfaces verified/corrected.

You should also prepare yourself for the shock of discovering that the alleged  "NEO-6M" is fake, and not a real, bona-fide u-blox-made module.
by grampy answered Apr 14
by Rampak selected Apr 15
Best answer
Looking at the "other images" on the hobbytronics website shows a GY-GPS6MJ2 PCB product.  Look up this part number on the internet to find more details.  It appears that the UART interface is TTL.  Their statement that 6M TX is 3.3V/5V compatible relies on the receiving RX 5V input gate accepting 3.3V as a logic high which may not slways be a valid assumption (since 70% input threshold would be 3.5V).  AND if the 5V receiving gate had a pull-up R to 5V, then that may damage the 6M TX buffer through latch-up.
The 6M RX 3.3V input could accommodate a 5V driver with a simple resistive voltage divider.
I think you could well have hit the nail on the head with your suggestion that the levels are inverted. Assuming that the Prolific interface is intended to connect to "old school" RS232 equipment rather than TTL (although the actual levels are 0v/+5V).
I'll try inverting the signal, and also connect via a RS232 level shifter to give more isolation.
I have also noted your later reply.
I will certainly report back the results.
Your help is invaluable and much appreciated - when I worked for a large organisation I could bounce problems like this off my colleagues; as a 1-man band the internet has taken on that role!
Grampy, you were spot on. I put a MAX3232 TTL-to-RS232 level shifter/inverter in between and now everything seems to be hunky-dory, GPS data is displaying in the software.
Touch wood I haven't caused any damage by connecting directly to the 5V RS232 signal.
Most grateful for your quick and accurate diagnosis :-)
0 votes
So is this using RS232 levels or CMOS levels?


Can you review the bit timing of the signals you can see. Could it be a much higher rate?
by clive1 answered Apr 14
Timing is certainly right - my protocol analyser reports 9600 baud +/-1%, which is within RS232 tolerance.
Grampy's answer above looks like a good pointer.
Many thanks for your time though.