As described in the following picture, we would like to receive data from Grove GPS sensor to UART0_RX serial interface on Dragon Board 410c.
Unfortunately, when using command “cat /dev/tty96B0” on Dragon Board 410c, it produced trash data and sometimes unexpectedly stopped:
About the Mezzanine Sensors, we used Revision C and has programmed both P0 and P1 pins as Input using Arduino USBasp programmer.
About Dragon Board 410c, we used Linux environment download at: www.96boards.org (SD card image title > Option 2) and installed some packages from step 5 to step 7
Before receiving GPS data from UART0 serial port, we:
- Checked baud-rate, data, parity, stop bit. According to the GPS SIM28 schematic, the GPS sensor worked at 9600bps, 8-bit data, no parity, 1 stop bit. We set these settings on Dragon Board 410c => It still received trash data.
- Checked GPS sensor by connecting it to the Ubuntu PC through USB serial => It worked OK.
- Checked Mezzanine Board => It worked OK too. We could burn boot-loader of ATMEGA328p and could use 3.3V I2C Grove Port.
- Checked the connection of Mezzanine Board and GPS data using Oscilloscope. The data signal (5V) probed at TX pin (plugged into Arduino Pin P1) of GPS sensor and data signal (1.8V) probed at Pin 7 (UART0_RX) of 40-pin Low Speed Header was visually the same.
Strangely, when we started to plug Pin 7 (UART0_RX) of 40-pin Low Speed Header on Mezzanine Sensors to (40-pin Low Speed Header of) Dragon Board 410c, data signal was extremely noisy.
You know, after trying many different cases, we found out that Dragon Board 410c could receive data if and only if we plugged the Oscilloscope probe in to the TX pin (plugged into Arduino Pin P1) of GPS sensor. If we unplugged it, the data became trash again.
Because Oscilloscope probe pins usually have internal resistor(s) in it. So, we started to add pull-up resistor (560Ohm/2) at TX pin (plugged into Arduino Pin P1) of GPS sensor. And It worked!!!
Note that the resistor value 560Ohm/2 was just a trial value. We did not know the exact value.
Then, Dragon Board 410c could receive correct NMEA strings from Grove GPS device.
Note that the terminal was connected to the console debug port of Dragon Board 410c.
Is this issue come from Mezzanine Sensors?
If so, could we update the pull-up resistor to the next version of Mezzanine Sensors?
I hope that this work-a-round helps.
Regards,
Loc Pham