Ninguna o suma de comprobación NMEA incorrecta para los datos GPS del MT3339

1

Tengo un módulo GPS LS20031 (creo que con el chip MT3339) conectado a Arduino. Usando SoftwareSerial leyendo datos cuando available() . 57600 es la velocidad en baudios para GPS. Sin embargo, rara vez recibo suma de comprobación en absoluto. Aquí está la salida de muestra.

$GPGGA,211152.400,4011.3996,N,04431.9971,E,1,3,5.75,135.5,M,14.37,,$GPGGA,211152.600,4011.3996,N,04431.9970,E,1,3,5.75,135.5,M,14.$67
2$GPGGA,211152.800,4011.3996,N,04431.9969,E,1,3,5.75,135.5,M,14.9802$GPGGA,211153.000,4011.3996,N,04431.9968,E,1,3,5.75,135.5,M,14.9000N$GPGGA,211153.200,4011.3997,N,04431.9967,E,1,3,5.75,135.5,M,14.,70M$GPGGA,211153.400,4011.3997,N,04431.9965,E,1,3,5.75,135.5,M,14.41,$GPGGA,211153.600,4011.3997,N,04431.9964,E,1,3,5.75,135.5,M,14.9602N$GPGGA,211153.800,4011.3998,N,04431.9963,E,1,3,5.75,135.5,M,14.950$,$GPGGA,211154.000,4011.3999,N,04431.9962,E,1,3,5.75,135.5,M,14.40.K$GPGGA,211154.200,4011.3999,N,04431.9961,E,1,3,5.75,135.5,M,14.L7,8$GPGGA,211154.400,4011.4000,N,04431.9959,E,1,3,5.75,135.5,M,14.4.8,$GPGGA,211154.600,4011.4000,N,04431.9958,E,1,3,5.75,135.5,M,14.960M,$GPGGA,211154.800,4011.4001,N,04431.9957,E,1,3,5.75,135.5,M,14.,,,3$GPGGA,211155.000,4011.4001,N,04431.9956,E,1,3,5.75,135.5,M,14.4784$GPGGA,211155.200,4011.4002,N,04431.9955,E,1,3,5.75,135.5,M,14.4.,$GPGGA,211155.400,4011.4002,N,04431.9955,E,1,3,5.75,135.5,M,14.4,$9$GPGGA,211155.600,4011.4002,N,04431.9954,E,1,3,5.75,135.5,M,14.4,7.$GPGGA,211155.800,4011.4003,N,04431.9953,E,1,3,5.75,135.5,M,14.1$P2$GPGGA,211156.000,4011.4003,N,04431.9953,E,1,3,5.75,135.5,M,14.,007,.$GPGGA,211156.078,4011.4003,N,04431.9953,E,1,3,5.75,135.5,M,14.2.,GAG$GPGGA,211156.400,4011.4004,N,04431.9953,E,1,3,5.75,135.5,M,14.,7,2$GPGGA,211156.600,4011.4005,N,04431.9952,E,1,3,5.75,135.5,M,14.962.K$GPGGA,211156.800,4011.4005,N,04431.9952,E,1,3,5.75,135.5,M,14.9*0N4$GPGGA,211157.000,4011.4005,N,04431.9952,E,1,3,5.75,135.5,M,14.9G22$GPGGA,211157.200,4011.4005,N,04431.9953,E,1,3,5.75,135.5,M,14.P*
2$GPGGA,211157.400,4011.4005,N,04431.9953,E,1,3,5.75,135.5,M,14.G7,.$GPGGA,211157.600,4011.4006,N,04431.9953,E,1,3,5.75,135.5,M,14.9S,N$GPGGA,211157.800,4011.4006,N,04431.9952,E,1,3,5.75,135.5,M,14.,.N$GPGGA,211158.000,4011.4006,N,04431.9952,E,1,3,5.75,135.6,M,14.,7,2$GPGGA,211158.200,4011.4006,N,04431.9952,E,1,3,5.75,135.6,M,14.,.

El módulo GPS está parpadeando en rojo, lo que significa que tiene suficientes satélites. También puedo ver 3 satélites que se encuentran en los mensajes y corregir. Este módulo es completamente nuevo y es menos probable que tenga errores.

También probé la biblioteca TinyGPS, particularmente ejemplos. Hay una cosa extraña. Si acabo de ejecutar el programa, no obtendré datos y los errores de suma de comprobación aumentarán lentamente.

Siabandonoelprogramaporuntiempo,ocasionalmenteproducirádatos(oración).

He intentado cambiar el pin RX, así como el propio Arduino, para excluir el error allí.

Actualización:

Aquí hay algunos datos, cuando llevo el módulo dentro de la casa, por lo que estará fuera de la cobertura satelital:

¿Cómo encontrar dónde está el problema? ¿Qué información adicional puedo proporcionar?

    
pregunta Pablo

1 respuesta

0

Probablemente no esté manejando los bytes entrantes lo suficientemente rápido y esté experimentando un desbordamiento del búfer en serie. ¿Puede escribir un boceto básico que no intente realizar otro proceso que no sea hacer eco de los bytes recibidos en el puerto serial del hardware? ¿Obtiene un comportamiento diferente si utiliza el puerto serial de hardware para recibir los datos en lugar de SoftSerial?

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas